{"version":3,"file":"js/chunk-vendors.d4f99fc3.js","mappings":"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","sources":["webpack://berkstresser-llc/./node_modules/compare-versions/index.mjs","webpack://berkstresser-llc/../../src/okta-vue.ts","webpack://berkstresser-llc/../../src/components/LoginCallback.vue","webpack://berkstresser-llc/./node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js","webpack://berkstresser-llc/./node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js","webpack://berkstresser-llc/./node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js","webpack://berkstresser-llc/./node_modules/@vue/shared/dist/shared.esm-bundler.js","webpack://berkstresser-llc/./node_modules/cross-fetch/dist/browser-ponyfill.js","webpack://berkstresser-llc/./node_modules/detect-node/browser.js","webpack://berkstresser-llc/./node_modules/p-cancelable/index.js","webpack://berkstresser-llc/../src/index.js","webpack://berkstresser-llc/../src/util.js","webpack://berkstresser-llc/../src/PureComponent.js","webpack://berkstresser-llc/../src/memo.js","webpack://berkstresser-llc/../src/forwardRef.js","webpack://berkstresser-llc/../src/Children.js","webpack://berkstresser-llc/../src/suspense.js","webpack://berkstresser-llc/../src/suspense-list.js","webpack://berkstresser-llc/../src/portals.js","webpack://berkstresser-llc/../src/render.js","webpack://berkstresser-llc/../src/options.js","webpack://berkstresser-llc/../src/create-element.js","webpack://berkstresser-llc/../src/diff/props.js","webpack://berkstresser-llc/../src/component.js","webpack://berkstresser-llc/../src/create-context.js","webpack://berkstresser-llc/../src/constants.js","webpack://berkstresser-llc/../src/diff/children.js","webpack://berkstresser-llc/../src/diff/index.js","webpack://berkstresser-llc/../src/clone-element.js","webpack://berkstresser-llc/../src/diff/catch-error.js","webpack://berkstresser-llc/./node_modules/tiny-emitter/index.js","webpack://berkstresser-llc/./node_modules/core-js/internals/a-callable.js","webpack://berkstresser-llc/./node_modules/core-js/internals/a-constructor.js","webpack://berkstresser-llc/./node_modules/core-js/internals/a-possible-prototype.js","webpack://berkstresser-llc/./node_modules/core-js/internals/a-set.js","webpack://berkstresser-llc/./node_modules/core-js/internals/add-to-unscopables.js","webpack://berkstresser-llc/./node_modules/core-js/internals/advance-string-index.js","webpack://berkstresser-llc/./node_modules/core-js/internals/an-instance.js","webpack://berkstresser-llc/./node_modules/core-js/internals/an-object.js","webpack://berkstresser-llc/./node_modules/core-js/internals/array-buffer-basic-detection.js","webpack://berkstresser-llc/./node_modules/core-js/internals/array-buffer-byte-length.js","webpack://berkstresser-llc/./node_modules/core-js/internals/array-buffer-is-detached.js","webpack://berkstresser-llc/./node_modules/core-js/internals/array-buffer-non-extensible.js","webpack://berkstresser-llc/./node_modules/core-js/internals/array-buffer-not-detached.js","webpack://berkstresser-llc/./node_modules/core-js/internals/array-buffer-transfer.js","webpack://berkstresser-llc/./node_modules/core-js/internals/array-buffer-view-core.js","webpack://berkstresser-llc/./node_modules/core-js/internals/array-buffer.js","webpack://berkstresser-llc/./node_modules/core-js/internals/array-copy-within.js","webpack://berkstresser-llc/./node_modules/core-js/internals/array-fill.js","webpack://berkstresser-llc/./node_modules/core-js/internals/array-for-each.js","webpack://berkstresser-llc/./node_modules/core-js/internals/array-from-constructor-and-list.js","webpack://berkstresser-llc/./node_modules/core-js/internals/array-from.js","webpack://berkstresser-llc/./node_modules/core-js/internals/array-includes.js","webpack://berkstresser-llc/./node_modules/core-js/internals/array-iteration-from-last.js","webpack://berkstresser-llc/./node_modules/core-js/internals/array-iteration.js","webpack://berkstresser-llc/./node_modules/core-js/internals/array-last-index-of.js","webpack://berkstresser-llc/./node_modules/core-js/internals/array-method-has-species-support.js","webpack://berkstresser-llc/./node_modules/core-js/internals/array-method-is-strict.js","webpack://berkstresser-llc/./node_modules/core-js/internals/array-reduce.js","webpack://berkstresser-llc/./node_modules/core-js/internals/array-set-length.js","webpack://berkstresser-llc/./node_modules/core-js/internals/array-slice.js","webpack://berkstresser-llc/./node_modules/core-js/internals/array-sort.js","webpack://berkstresser-llc/./node_modules/core-js/internals/array-species-constructor.js","webpack://berkstresser-llc/./node_modules/core-js/internals/array-species-create.js","webpack://berkstresser-llc/./node_modules/core-js/internals/array-to-reversed.js","webpack://berkstresser-llc/./node_modules/core-js/internals/array-with.js","webpack://berkstresser-llc/./node_modules/core-js/internals/base64-map.js","webpack://berkstresser-llc/./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack://berkstresser-llc/./node_modules/core-js/internals/check-correctness-of-iteration.js","webpack://berkstresser-llc/./node_modules/core-js/internals/classof-raw.js","webpack://berkstresser-llc/./node_modules/core-js/internals/classof.js","webpack://berkstresser-llc/./node_modules/core-js/internals/collection-strong.js","webpack://berkstresser-llc/./node_modules/core-js/internals/collection-weak.js","webpack://berkstresser-llc/./node_modules/core-js/internals/collection.js","webpack://berkstresser-llc/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://berkstresser-llc/./node_modules/core-js/internals/correct-is-regexp-logic.js","webpack://berkstresser-llc/./node_modules/core-js/internals/correct-prototype-getter.js","webpack://berkstresser-llc/./node_modules/core-js/internals/create-html.js","webpack://berkstresser-llc/./node_modules/core-js/internals/create-iter-result-object.js","webpack://berkstresser-llc/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://berkstresser-llc/./node_modules/core-js/internals/create-property-descriptor.js","webpack://berkstresser-llc/./node_modules/core-js/internals/create-property.js","webpack://berkstresser-llc/./node_modules/core-js/internals/date-to-iso-string.js","webpack://berkstresser-llc/./node_modules/core-js/internals/date-to-primitive.js","webpack://berkstresser-llc/./node_modules/core-js/internals/define-built-in-accessor.js","webpack://berkstresser-llc/./node_modules/core-js/internals/define-built-in.js","webpack://berkstresser-llc/./node_modules/core-js/internals/define-built-ins.js","webpack://berkstresser-llc/./node_modules/core-js/internals/define-global-property.js","webpack://berkstresser-llc/./node_modules/core-js/internals/delete-property-or-throw.js","webpack://berkstresser-llc/./node_modules/core-js/internals/descriptors.js","webpack://berkstresser-llc/./node_modules/core-js/internals/detach-transferable.js","webpack://berkstresser-llc/./node_modules/core-js/internals/document-create-element.js","webpack://berkstresser-llc/./node_modules/core-js/internals/does-not-exceed-safe-integer.js","webpack://berkstresser-llc/./node_modules/core-js/internals/dom-exception-constants.js","webpack://berkstresser-llc/./node_modules/core-js/internals/dom-iterables.js","webpack://berkstresser-llc/./node_modules/core-js/internals/dom-token-list-prototype.js","webpack://berkstresser-llc/./node_modules/core-js/internals/enum-bug-keys.js","webpack://berkstresser-llc/./node_modules/core-js/internals/environment-ff-version.js","webpack://berkstresser-llc/./node_modules/core-js/internals/environment-is-ie-or-edge.js","webpack://berkstresser-llc/./node_modules/core-js/internals/environment-is-ios-pebble.js","webpack://berkstresser-llc/./node_modules/core-js/internals/environment-is-ios.js","webpack://berkstresser-llc/./node_modules/core-js/internals/environment-is-node.js","webpack://berkstresser-llc/./node_modules/core-js/internals/environment-is-webos-webkit.js","webpack://berkstresser-llc/./node_modules/core-js/internals/environment-user-agent.js","webpack://berkstresser-llc/./node_modules/core-js/internals/environment-v8-version.js","webpack://berkstresser-llc/./node_modules/core-js/internals/environment-webkit-version.js","webpack://berkstresser-llc/./node_modules/core-js/internals/environment.js","webpack://berkstresser-llc/./node_modules/core-js/internals/error-stack-clear.js","webpack://berkstresser-llc/./node_modules/core-js/internals/error-stack-install.js","webpack://berkstresser-llc/./node_modules/core-js/internals/error-stack-installable.js","webpack://berkstresser-llc/./node_modules/core-js/internals/error-to-string.js","webpack://berkstresser-llc/./node_modules/core-js/internals/export.js","webpack://berkstresser-llc/./node_modules/core-js/internals/fails.js","webpack://berkstresser-llc/./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack://berkstresser-llc/./node_modules/core-js/internals/flatten-into-array.js","webpack://berkstresser-llc/./node_modules/core-js/internals/freezing.js","webpack://berkstresser-llc/./node_modules/core-js/internals/function-apply.js","webpack://berkstresser-llc/./node_modules/core-js/internals/function-bind-context.js","webpack://berkstresser-llc/./node_modules/core-js/internals/function-bind-native.js","webpack://berkstresser-llc/./node_modules/core-js/internals/function-bind.js","webpack://berkstresser-llc/./node_modules/core-js/internals/function-call.js","webpack://berkstresser-llc/./node_modules/core-js/internals/function-name.js","webpack://berkstresser-llc/./node_modules/core-js/internals/function-uncurry-this-accessor.js","webpack://berkstresser-llc/./node_modules/core-js/internals/function-uncurry-this-clause.js","webpack://berkstresser-llc/./node_modules/core-js/internals/function-uncurry-this.js","webpack://berkstresser-llc/./node_modules/core-js/internals/get-built-in-node-module.js","webpack://berkstresser-llc/./node_modules/core-js/internals/get-built-in-prototype-method.js","webpack://berkstresser-llc/./node_modules/core-js/internals/get-built-in.js","webpack://berkstresser-llc/./node_modules/core-js/internals/get-iterator-direct.js","webpack://berkstresser-llc/./node_modules/core-js/internals/get-iterator-method.js","webpack://berkstresser-llc/./node_modules/core-js/internals/get-iterator.js","webpack://berkstresser-llc/./node_modules/core-js/internals/get-json-replacer-function.js","webpack://berkstresser-llc/./node_modules/core-js/internals/get-method.js","webpack://berkstresser-llc/./node_modules/core-js/internals/get-set-record.js","webpack://berkstresser-llc/./node_modules/core-js/internals/get-substitution.js","webpack://berkstresser-llc/./node_modules/core-js/internals/global-this.js","webpack://berkstresser-llc/./node_modules/core-js/internals/has-own-property.js","webpack://berkstresser-llc/./node_modules/core-js/internals/hidden-keys.js","webpack://berkstresser-llc/./node_modules/core-js/internals/host-report-errors.js","webpack://berkstresser-llc/./node_modules/core-js/internals/html.js","webpack://berkstresser-llc/./node_modules/core-js/internals/ie8-dom-define.js","webpack://berkstresser-llc/./node_modules/core-js/internals/ieee754.js","webpack://berkstresser-llc/./node_modules/core-js/internals/indexed-object.js","webpack://berkstresser-llc/./node_modules/core-js/internals/inherit-if-required.js","webpack://berkstresser-llc/./node_modules/core-js/internals/inspect-source.js","webpack://berkstresser-llc/./node_modules/core-js/internals/install-error-cause.js","webpack://berkstresser-llc/./node_modules/core-js/internals/internal-metadata.js","webpack://berkstresser-llc/./node_modules/core-js/internals/internal-state.js","webpack://berkstresser-llc/./node_modules/core-js/internals/is-array-iterator-method.js","webpack://berkstresser-llc/./node_modules/core-js/internals/is-array.js","webpack://berkstresser-llc/./node_modules/core-js/internals/is-big-int-array.js","webpack://berkstresser-llc/./node_modules/core-js/internals/is-callable.js","webpack://berkstresser-llc/./node_modules/core-js/internals/is-constructor.js","webpack://berkstresser-llc/./node_modules/core-js/internals/is-data-descriptor.js","webpack://berkstresser-llc/./node_modules/core-js/internals/is-forced.js","webpack://berkstresser-llc/./node_modules/core-js/internals/is-integral-number.js","webpack://berkstresser-llc/./node_modules/core-js/internals/is-null-or-undefined.js","webpack://berkstresser-llc/./node_modules/core-js/internals/is-object.js","webpack://berkstresser-llc/./node_modules/core-js/internals/is-possible-prototype.js","webpack://berkstresser-llc/./node_modules/core-js/internals/is-pure.js","webpack://berkstresser-llc/./node_modules/core-js/internals/is-regexp.js","webpack://berkstresser-llc/./node_modules/core-js/internals/is-symbol.js","webpack://berkstresser-llc/./node_modules/core-js/internals/iterate-simple.js","webpack://berkstresser-llc/./node_modules/core-js/internals/iterate.js","webpack://berkstresser-llc/./node_modules/core-js/internals/iterator-close.js","webpack://berkstresser-llc/./node_modules/core-js/internals/iterator-create-constructor.js","webpack://berkstresser-llc/./node_modules/core-js/internals/iterator-define.js","webpack://berkstresser-llc/./node_modules/core-js/internals/iterators-core.js","webpack://berkstresser-llc/./node_modules/core-js/internals/iterators.js","webpack://berkstresser-llc/./node_modules/core-js/internals/length-of-array-like.js","webpack://berkstresser-llc/./node_modules/core-js/internals/make-built-in.js","webpack://berkstresser-llc/./node_modules/core-js/internals/math-float-round.js","webpack://berkstresser-llc/./node_modules/core-js/internals/math-fround.js","webpack://berkstresser-llc/./node_modules/core-js/internals/math-sign.js","webpack://berkstresser-llc/./node_modules/core-js/internals/math-trunc.js","webpack://berkstresser-llc/./node_modules/core-js/internals/microtask.js","webpack://berkstresser-llc/./node_modules/core-js/internals/new-promise-capability.js","webpack://berkstresser-llc/./node_modules/core-js/internals/normalize-string-argument.js","webpack://berkstresser-llc/./node_modules/core-js/internals/not-a-regexp.js","webpack://berkstresser-llc/./node_modules/core-js/internals/number-is-finite.js","webpack://berkstresser-llc/./node_modules/core-js/internals/number-parse-float.js","webpack://berkstresser-llc/./node_modules/core-js/internals/number-parse-int.js","webpack://berkstresser-llc/./node_modules/core-js/internals/object-assign.js","webpack://berkstresser-llc/./node_modules/core-js/internals/object-create.js","webpack://berkstresser-llc/./node_modules/core-js/internals/object-define-properties.js","webpack://berkstresser-llc/./node_modules/core-js/internals/object-define-property.js","webpack://berkstresser-llc/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://berkstresser-llc/./node_modules/core-js/internals/object-get-own-property-names-external.js","webpack://berkstresser-llc/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://berkstresser-llc/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://berkstresser-llc/./node_modules/core-js/internals/object-get-prototype-of.js","webpack://berkstresser-llc/./node_modules/core-js/internals/object-is-extensible.js","webpack://berkstresser-llc/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://berkstresser-llc/./node_modules/core-js/internals/object-keys-internal.js","webpack://berkstresser-llc/./node_modules/core-js/internals/object-keys.js","webpack://berkstresser-llc/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://berkstresser-llc/./node_modules/core-js/internals/object-set-prototype-of.js","webpack://berkstresser-llc/./node_modules/core-js/internals/object-to-array.js","webpack://berkstresser-llc/./node_modules/core-js/internals/object-to-string.js","webpack://berkstresser-llc/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://berkstresser-llc/./node_modules/core-js/internals/own-keys.js","webpack://berkstresser-llc/./node_modules/core-js/internals/path.js","webpack://berkstresser-llc/./node_modules/core-js/internals/perform.js","webpack://berkstresser-llc/./node_modules/core-js/internals/promise-constructor-detection.js","webpack://berkstresser-llc/./node_modules/core-js/internals/promise-native-constructor.js","webpack://berkstresser-llc/./node_modules/core-js/internals/promise-resolve.js","webpack://berkstresser-llc/./node_modules/core-js/internals/promise-statics-incorrect-iteration.js","webpack://berkstresser-llc/./node_modules/core-js/internals/proxy-accessor.js","webpack://berkstresser-llc/./node_modules/core-js/internals/queue.js","webpack://berkstresser-llc/./node_modules/core-js/internals/regexp-exec-abstract.js","webpack://berkstresser-llc/./node_modules/core-js/internals/regexp-exec.js","webpack://berkstresser-llc/./node_modules/core-js/internals/regexp-flags.js","webpack://berkstresser-llc/./node_modules/core-js/internals/regexp-get-flags.js","webpack://berkstresser-llc/./node_modules/core-js/internals/regexp-sticky-helpers.js","webpack://berkstresser-llc/./node_modules/core-js/internals/regexp-unsupported-dot-all.js","webpack://berkstresser-llc/./node_modules/core-js/internals/regexp-unsupported-ncg.js","webpack://berkstresser-llc/./node_modules/core-js/internals/require-object-coercible.js","webpack://berkstresser-llc/./node_modules/core-js/internals/safe-get-built-in.js","webpack://berkstresser-llc/./node_modules/core-js/internals/same-value.js","webpack://berkstresser-llc/./node_modules/core-js/internals/schedulers-fix.js","webpack://berkstresser-llc/./node_modules/core-js/internals/set-clone.js","webpack://berkstresser-llc/./node_modules/core-js/internals/set-difference.js","webpack://berkstresser-llc/./node_modules/core-js/internals/set-helpers.js","webpack://berkstresser-llc/./node_modules/core-js/internals/set-intersection.js","webpack://berkstresser-llc/./node_modules/core-js/internals/set-is-disjoint-from.js","webpack://berkstresser-llc/./node_modules/core-js/internals/set-is-subset-of.js","webpack://berkstresser-llc/./node_modules/core-js/internals/set-is-superset-of.js","webpack://berkstresser-llc/./node_modules/core-js/internals/set-iterate.js","webpack://berkstresser-llc/./node_modules/core-js/internals/set-method-accept-set-like.js","webpack://berkstresser-llc/./node_modules/core-js/internals/set-size.js","webpack://berkstresser-llc/./node_modules/core-js/internals/set-species.js","webpack://berkstresser-llc/./node_modules/core-js/internals/set-symmetric-difference.js","webpack://berkstresser-llc/./node_modules/core-js/internals/set-to-string-tag.js","webpack://berkstresser-llc/./node_modules/core-js/internals/set-union.js","webpack://berkstresser-llc/./node_modules/core-js/internals/shared-key.js","webpack://berkstresser-llc/./node_modules/core-js/internals/shared-store.js","webpack://berkstresser-llc/./node_modules/core-js/internals/shared.js","webpack://berkstresser-llc/./node_modules/core-js/internals/species-constructor.js","webpack://berkstresser-llc/./node_modules/core-js/internals/string-html-forced.js","webpack://berkstresser-llc/./node_modules/core-js/internals/string-multibyte.js","webpack://berkstresser-llc/./node_modules/core-js/internals/string-pad-webkit-bug.js","webpack://berkstresser-llc/./node_modules/core-js/internals/string-pad.js","webpack://berkstresser-llc/./node_modules/core-js/internals/string-punycode-to-ascii.js","webpack://berkstresser-llc/./node_modules/core-js/internals/string-repeat.js","webpack://berkstresser-llc/./node_modules/core-js/internals/string-trim-forced.js","webpack://berkstresser-llc/./node_modules/core-js/internals/string-trim.js","webpack://berkstresser-llc/./node_modules/core-js/internals/structured-clone-proper-transfer.js","webpack://berkstresser-llc/./node_modules/core-js/internals/symbol-constructor-detection.js","webpack://berkstresser-llc/./node_modules/core-js/internals/symbol-define-to-primitive.js","webpack://berkstresser-llc/./node_modules/core-js/internals/symbol-registry-detection.js","webpack://berkstresser-llc/./node_modules/core-js/internals/task.js","webpack://berkstresser-llc/./node_modules/core-js/internals/this-number-value.js","webpack://berkstresser-llc/./node_modules/core-js/internals/to-absolute-index.js","webpack://berkstresser-llc/./node_modules/core-js/internals/to-big-int.js","webpack://berkstresser-llc/./node_modules/core-js/internals/to-index.js","webpack://berkstresser-llc/./node_modules/core-js/internals/to-indexed-object.js","webpack://berkstresser-llc/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://berkstresser-llc/./node_modules/core-js/internals/to-length.js","webpack://berkstresser-llc/./node_modules/core-js/internals/to-object.js","webpack://berkstresser-llc/./node_modules/core-js/internals/to-offset.js","webpack://berkstresser-llc/./node_modules/core-js/internals/to-positive-integer.js","webpack://berkstresser-llc/./node_modules/core-js/internals/to-primitive.js","webpack://berkstresser-llc/./node_modules/core-js/internals/to-property-key.js","webpack://berkstresser-llc/./node_modules/core-js/internals/to-string-tag-support.js","webpack://berkstresser-llc/./node_modules/core-js/internals/to-string.js","webpack://berkstresser-llc/./node_modules/core-js/internals/to-uint8-clamped.js","webpack://berkstresser-llc/./node_modules/core-js/internals/try-to-string.js","webpack://berkstresser-llc/./node_modules/core-js/internals/typed-array-constructor.js","webpack://berkstresser-llc/./node_modules/core-js/internals/typed-array-constructors-require-wrappers.js","webpack://berkstresser-llc/./node_modules/core-js/internals/typed-array-from-species-and-list.js","webpack://berkstresser-llc/./node_modules/core-js/internals/typed-array-from.js","webpack://berkstresser-llc/./node_modules/core-js/internals/typed-array-species-constructor.js","webpack://berkstresser-llc/./node_modules/core-js/internals/uid.js","webpack://berkstresser-llc/./node_modules/core-js/internals/url-constructor-detection.js","webpack://berkstresser-llc/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://berkstresser-llc/./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://berkstresser-llc/./node_modules/core-js/internals/validate-arguments-length.js","webpack://berkstresser-llc/./node_modules/core-js/internals/weak-map-basic-detection.js","webpack://berkstresser-llc/./node_modules/core-js/internals/well-known-symbol-define.js","webpack://berkstresser-llc/./node_modules/core-js/internals/well-known-symbol-wrapped.js","webpack://berkstresser-llc/./node_modules/core-js/internals/well-known-symbol.js","webpack://berkstresser-llc/./node_modules/core-js/internals/whitespaces.js","webpack://berkstresser-llc/./node_modules/core-js/internals/wrap-error-constructor-with-cause.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.array-buffer.constructor.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.array-buffer.detached.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.array-buffer.is-view.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.array-buffer.slice.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.array-buffer.transfer-to-fixed-length.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.array-buffer.transfer.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.array.concat.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.array.every.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.array.fill.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.array.filter.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.array.find-index.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.array.find-last-index.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.array.find-last.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.array.find.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.array.flat.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.array.for-each.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.array.from.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.array.includes.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.array.index-of.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.array.is-array.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.array.iterator.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.array.join.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.array.last-index-of.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.array.map.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.array.push.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.array.reduce.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.array.reverse.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.array.slice.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.array.some.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.array.sort.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.array.splice.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.array.to-reversed.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.array.to-sorted.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.array.to-spliced.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.array.unscopables.flat.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.array.unshift.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.data-view.constructor.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.data-view.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.date.get-year.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.date.now.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.date.to-iso-string.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.date.to-json.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.date.to-primitive.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.date.to-string.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.error.cause.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.error.to-string.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.escape.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.function.bind.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.function.name.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.global-this.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.json.stringify.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.json.to-string-tag.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.map.constructor.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.map.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.math.to-string-tag.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.number.constructor.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.number.is-finite.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.number.is-integer.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.number.parse-int.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.object.assign.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.object.create.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.object.define-properties.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.object.define-property.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.object.entries.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.object.freeze.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.object.from-entries.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.object.get-own-property-descriptor.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.object.get-own-property-descriptors.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.object.get-own-property-names.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.object.get-own-property-symbols.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.object.get-prototype-of.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.object.is-extensible.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.object.is.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.object.keys.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.object.proto.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.object.set-prototype-of.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.object.to-string.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.object.values.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.parse-float.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.parse-int.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.promise.all.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.promise.catch.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.promise.constructor.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.promise.finally.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.promise.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.promise.race.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.promise.reject.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.promise.resolve.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.reflect.construct.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.reflect.define-property.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.reflect.delete-property.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.reflect.get-prototype-of.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.reflect.get.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.reflect.has.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.reflect.own-keys.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.reflect.set.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.reflect.to-string-tag.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.regexp.constructor.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.regexp.dot-all.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.regexp.exec.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.regexp.flags.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.regexp.sticky.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.regexp.test.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.regexp.to-string.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.set.constructor.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.set.difference.v2.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.set.intersection.v2.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.set.is-disjoint-from.v2.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.set.is-subset-of.v2.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.set.is-superset-of.v2.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.set.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.set.symmetric-difference.v2.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.set.union.v2.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.string.anchor.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.string.ends-with.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.string.from-code-point.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.string.includes.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.string.iterator.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.string.match.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.string.pad-start.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.string.repeat.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.string.replace-all.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.string.replace.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.string.search.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.string.split.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.string.starts-with.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.string.sub.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.string.substr.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.string.trim.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.symbol.async-iterator.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.symbol.constructor.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.symbol.description.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.symbol.for.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.symbol.iterator.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.symbol.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.symbol.key-for.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.symbol.to-primitive.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.symbol.to-string-tag.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.symbol.unscopables.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.typed-array.at.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.typed-array.copy-within.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.typed-array.every.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.typed-array.fill.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.typed-array.filter.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.typed-array.find-index.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.typed-array.find-last-index.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.typed-array.find-last.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.typed-array.find.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.typed-array.for-each.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.typed-array.from.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.typed-array.includes.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.typed-array.index-of.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.typed-array.iterator.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.typed-array.join.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.typed-array.last-index-of.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.typed-array.map.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.typed-array.reduce-right.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.typed-array.reduce.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.typed-array.reverse.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.typed-array.set.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.typed-array.slice.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.typed-array.some.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.typed-array.sort.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.typed-array.subarray.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.typed-array.to-locale-string.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.typed-array.to-reversed.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.typed-array.to-sorted.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.typed-array.to-string.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.typed-array.uint8-array.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.typed-array.with.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.weak-map.constructor.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.weak-map.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.weak-set.constructor.js","webpack://berkstresser-llc/./node_modules/core-js/modules/es.weak-set.js","webpack://berkstresser-llc/./node_modules/core-js/modules/web.atob.js","webpack://berkstresser-llc/./node_modules/core-js/modules/web.btoa.js","webpack://berkstresser-llc/./node_modules/core-js/modules/web.dom-collections.for-each.js","webpack://berkstresser-llc/./node_modules/core-js/modules/web.dom-collections.iterator.js","webpack://berkstresser-llc/./node_modules/core-js/modules/web.dom-exception.constructor.js","webpack://berkstresser-llc/./node_modules/core-js/modules/web.dom-exception.stack.js","webpack://berkstresser-llc/./node_modules/core-js/modules/web.dom-exception.to-string-tag.js","webpack://berkstresser-llc/./node_modules/core-js/modules/web.self.js","webpack://berkstresser-llc/./node_modules/core-js/modules/web.set-interval.js","webpack://berkstresser-llc/./node_modules/core-js/modules/web.set-timeout.js","webpack://berkstresser-llc/./node_modules/core-js/modules/web.timers.js","webpack://berkstresser-llc/./node_modules/core-js/modules/web.url-search-params.constructor.js","webpack://berkstresser-llc/./node_modules/core-js/modules/web.url-search-params.delete.js","webpack://berkstresser-llc/./node_modules/core-js/modules/web.url-search-params.has.js","webpack://berkstresser-llc/./node_modules/core-js/modules/web.url-search-params.js","webpack://berkstresser-llc/./node_modules/core-js/modules/web.url-search-params.size.js","webpack://berkstresser-llc/./node_modules/core-js/modules/web.url.constructor.js","webpack://berkstresser-llc/./node_modules/core-js/modules/web.url.js","webpack://berkstresser-llc/./node_modules/core-js/modules/web.url.to-json.js","webpack://berkstresser-llc/./node_modules/@babel/runtime/helpers/arrayLikeToArray.js","webpack://berkstresser-llc/./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://berkstresser-llc/./node_modules/@babel/runtime/helpers/callSuper.js","webpack://berkstresser-llc/./node_modules/@babel/runtime/helpers/classCallCheck.js","webpack://berkstresser-llc/./node_modules/@babel/runtime/helpers/construct.js","webpack://berkstresser-llc/./node_modules/@babel/runtime/helpers/createClass.js","webpack://berkstresser-llc/./node_modules/@babel/runtime/helpers/createForOfIteratorHelper.js","webpack://berkstresser-llc/./node_modules/@babel/runtime/helpers/getPrototypeOf.js","webpack://berkstresser-llc/./node_modules/@babel/runtime/helpers/inherits.js","webpack://berkstresser-llc/./node_modules/@babel/runtime/helpers/isNativeFunction.js","webpack://berkstresser-llc/./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js","webpack://berkstresser-llc/./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","webpack://berkstresser-llc/./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://berkstresser-llc/./node_modules/@babel/runtime/helpers/toPrimitive.js","webpack://berkstresser-llc/./node_modules/@babel/runtime/helpers/toPropertyKey.js","webpack://berkstresser-llc/./node_modules/@babel/runtime/helpers/typeof.js","webpack://berkstresser-llc/./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","webpack://berkstresser-llc/./node_modules/@babel/runtime/helpers/wrapNativeSuper.js","webpack://berkstresser-llc/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://berkstresser-llc/./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://berkstresser-llc/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://berkstresser-llc/./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://berkstresser-llc/./node_modules/@babel/runtime/helpers/esm/callSuper.js","webpack://berkstresser-llc/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://berkstresser-llc/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://berkstresser-llc/./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack://berkstresser-llc/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://berkstresser-llc/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://berkstresser-llc/./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://berkstresser-llc/./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack://berkstresser-llc/./node_modules/@babel/runtime/helpers/esm/objectSpread2.js","webpack://berkstresser-llc/./node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js","webpack://berkstresser-llc/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://berkstresser-llc/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://berkstresser-llc/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://berkstresser-llc/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://berkstresser-llc/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://berkstresser-llc/./node_modules/@babel/runtime/helpers/esm/superPropBase.js","webpack://berkstresser-llc/./node_modules/@babel/runtime/helpers/esm/get.js","webpack://berkstresser-llc/./node_modules/@babel/runtime/helpers/esm/superPropGet.js","webpack://berkstresser-llc/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://berkstresser-llc/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://berkstresser-llc/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://berkstresser-llc/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://berkstresser-llc/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://berkstresser-llc/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://berkstresser-llc/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://berkstresser-llc/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://berkstresser-llc/./node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","webpack://berkstresser-llc/./node_modules/@babel/runtime/helpers/esm/construct.js","webpack://berkstresser-llc/./node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","webpack://berkstresser-llc/./node_modules/@fullcalendar/core/index.js","webpack://berkstresser-llc/./node_modules/@fullcalendar/core/internal-common.js","webpack://berkstresser-llc/./node_modules/@fullcalendar/daygrid/internal.js","webpack://berkstresser-llc/./node_modules/@fullcalendar/daygrid/index.js","webpack://berkstresser-llc/./node_modules/@fullcalendar/google-calendar/index.js","webpack://berkstresser-llc/../src/options.ts","webpack://berkstresser-llc/../src/FullCalendar.ts","webpack://berkstresser-llc/../src/index.ts","webpack://berkstresser-llc/../../../../lib/idx/types/api.ts","webpack://berkstresser-llc/../../../../lib/util/console.ts","webpack://berkstresser-llc/../../../../lib/util/object.ts","webpack://berkstresser-llc/../../../../lib/util/misc.ts","webpack://berkstresser-llc/../../../../lib/util/url.ts","webpack://berkstresser-llc/../../../../lib/errors/CustomError.ts","webpack://berkstresser-llc/../../../../lib/errors/AuthSdkError.ts","webpack://berkstresser-llc/../../../../lib/oidc/util/oauth.ts","webpack://berkstresser-llc/../../../../lib/oidc/util/oauthMeta.ts","webpack://berkstresser-llc/./node_modules/js-cookie/dist/js.cookie.mjs","webpack://berkstresser-llc/../../../../lib/idx/transactionMeta.ts","webpack://berkstresser-llc/../../../../lib/util/types.ts","webpack://berkstresser-llc/../../../lib/constants.ts","webpack://berkstresser-llc/../../../../lib/errors/AuthApiError.ts","webpack://berkstresser-llc/../../../../lib/errors/OAuthError.ts","webpack://berkstresser-llc/../../../../lib/http/request.ts","webpack://berkstresser-llc/../../../../lib/idx/interact.ts","webpack://berkstresser-llc/../../../../lib/idx/idxState/v1/actionParser.ts","webpack://berkstresser-llc/../../../../lib/idx/idxState/v1/generateIdxAction.ts","webpack://berkstresser-llc/../../../../lib/idx/idxState/v1/remediationParser.ts","webpack://berkstresser-llc/./node_modules/jsonpath-plus/dist/index-browser-esm.js","webpack://berkstresser-llc/../../../../lib/util/jsonpath.ts","webpack://berkstresser-llc/../../../../lib/idx/idxState/v1/idxResponseParser.ts","webpack://berkstresser-llc/../../../../lib/idx/idxState/v1/makeIdxState.ts","webpack://berkstresser-llc/../../../../lib/idx/idxState/v1/parsers.ts","webpack://berkstresser-llc/../../../../lib/idx/idxState/index.ts","webpack://berkstresser-llc/../../../../lib/idx/types/idx-js.ts","webpack://berkstresser-llc/../../../../lib/errors/index.ts","webpack://berkstresser-llc/../../../../lib/idx/introspect.ts","webpack://berkstresser-llc/../../../../lib/idx/remediators/util.ts","webpack://berkstresser-llc/../../../../lib/idx/authenticator/util.ts","webpack://berkstresser-llc/../../../../lib/idx/remediators/Base/Remediator.ts","webpack://berkstresser-llc/../../../../lib/idx/authenticator/Authenticator.ts","webpack://berkstresser-llc/../../../../lib/idx/authenticator/VerificationCodeAuthenticator.ts","webpack://berkstresser-llc/../../../../lib/idx/authenticator/OktaVerifyTotp.ts","webpack://berkstresser-llc/../../../../lib/idx/authenticator/OktaPassword.ts","webpack://berkstresser-llc/../../../../lib/idx/authenticator/SecurityQuestionEnrollment.ts","webpack://berkstresser-llc/../../../../lib/idx/authenticator/SecurityQuestionVerification.ts","webpack://berkstresser-llc/../../../../lib/idx/authenticator/WebauthnEnrollment.ts","webpack://berkstresser-llc/../../../../lib/idx/authenticator/WebauthnVerification.ts","webpack://berkstresser-llc/../../../../lib/idx/authenticator/getAuthenticator.ts","webpack://berkstresser-llc/../../../../lib/idx/remediators/Base/VerifyAuthenticator.ts","webpack://berkstresser-llc/../../../../lib/idx/remediators/EnrollAuthenticator.ts","webpack://berkstresser-llc/../../../../lib/idx/remediators/EnrollPoll.ts","webpack://berkstresser-llc/../../../../lib/idx/remediators/SelectEnrollmentChannel.ts","webpack://berkstresser-llc/../../../../lib/idx/remediators/EnrollmentChannelData.ts","webpack://berkstresser-llc/../../../../lib/idx/remediators/ChallengeAuthenticator.ts","webpack://berkstresser-llc/../../../../lib/idx/remediators/ChallengePoll.ts","webpack://berkstresser-llc/../../../../lib/idx/remediators/ResetAuthenticator.ts","webpack://berkstresser-llc/../../../../lib/idx/remediators/EnrollProfile.ts","webpack://berkstresser-llc/../../../../lib/idx/remediators/Identify.ts","webpack://berkstresser-llc/../../../../lib/idx/remediators/ReEnrollAuthenticator.ts","webpack://berkstresser-llc/../../../../lib/idx/remediators/RedirectIdp.ts","webpack://berkstresser-llc/../../../../lib/idx/remediators/Base/SelectAuthenticator.ts","webpack://berkstresser-llc/../../../../lib/idx/remediators/SelectAuthenticatorAuthenticate.ts","webpack://berkstresser-llc/../../../../lib/idx/remediators/SelectAuthenticatorEnroll.ts","webpack://berkstresser-llc/../../../../lib/idx/remediators/SelectAuthenticatorUnlockAccount.ts","webpack://berkstresser-llc/../../../../lib/idx/remediators/SelectEnrollProfile.ts","webpack://berkstresser-llc/../../../../lib/idx/remediators/Base/AuthenticatorData.ts","webpack://berkstresser-llc/../../../../lib/idx/remediators/AuthenticatorVerificationData.ts","webpack://berkstresser-llc/../../../../lib/idx/remediators/AuthenticatorEnrollmentData.ts","webpack://berkstresser-llc/../../../../lib/idx/remediators/Skip.ts","webpack://berkstresser-llc/../../../../lib/idx/remediators/GenericRemediator/util.ts","webpack://berkstresser-llc/../../../../lib/idx/remediators/GenericRemediator/GenericRemediator.ts","webpack://berkstresser-llc/../../../../lib/idx/util.ts","webpack://berkstresser-llc/../../../../lib/idx/remediate.ts","webpack://berkstresser-llc/../../../../lib/idx/flow/AuthenticationFlow.ts","webpack://berkstresser-llc/../../../../lib/idx/flow/PasswordRecoveryFlow.ts","webpack://berkstresser-llc/../../../../lib/idx/flow/RegistrationFlow.ts","webpack://berkstresser-llc/../../../../lib/idx/flow/AccountUnlockFlow.ts","webpack://berkstresser-llc/../../../../lib/idx/flow/FlowSpecification.ts","webpack://berkstresser-llc/../../../../lib/idx/run.ts","webpack://berkstresser-llc/../../../../lib/idx/authenticate.ts","webpack://berkstresser-llc/../../../../lib/idx/cancel.ts","webpack://berkstresser-llc/../../../../lib/oidc/util/urlParams.ts","webpack://berkstresser-llc/../../../../lib/idx/emailVerify.ts","webpack://berkstresser-llc/../../../../lib/idx/proceed.ts","webpack://berkstresser-llc/../../../../lib/idx/poll.ts","webpack://berkstresser-llc/../../../../lib/idx/startTransaction.ts","webpack://berkstresser-llc/../../../../lib/idx/register.ts","webpack://berkstresser-llc/../../../../lib/idx/recoverPassword.ts","webpack://berkstresser-llc/../../../../lib/idx/handleInteractionCodeRedirect.ts","webpack://berkstresser-llc/../../../../lib/idx/unlockAccount.ts","webpack://berkstresser-llc/../../../../lib/oidc/util/errors.ts","webpack://berkstresser-llc/../../../../lib/oidc/util/loginRedirect.ts","webpack://berkstresser-llc/../../../../lib/idx/factory/api.ts","webpack://berkstresser-llc/../../../../lib/crypto/browser.ts","webpack://berkstresser-llc/../../../lib/features.ts","webpack://berkstresser-llc/../../../../lib/base/factory.ts","webpack://berkstresser-llc/../../../../lib/storage/mixin.ts","webpack://berkstresser-llc/../../../../lib/http/OktaUserAgent.ts","webpack://berkstresser-llc/../../../../lib/http/headers.ts","webpack://berkstresser-llc/../../../../lib/http/mixin.ts","webpack://berkstresser-llc/../../../../lib/crypto/base64.ts","webpack://berkstresser-llc/../../../../lib/crypto/oidcHash.ts","webpack://berkstresser-llc/../../../../lib/crypto/verifyToken.ts","webpack://berkstresser-llc/../../../../lib/util/PromiseQueue.ts","webpack://berkstresser-llc/../../../../lib/oidc/util/pkce.ts","webpack://berkstresser-llc/../../../../lib/oidc/decodeToken.ts","webpack://berkstresser-llc/../../../../lib/oidc/util/defaultTokenParams.ts","webpack://berkstresser-llc/../../../../lib/oidc/endpoints/token.ts","webpack://berkstresser-llc/../../../../lib/oidc/endpoints/well-known.ts","webpack://berkstresser-llc/../../../../lib/oidc/util/validateClaims.ts","webpack://berkstresser-llc/../../../../lib/oidc/verifyToken.ts","webpack://berkstresser-llc/../../../../lib/oidc/handleOAuthResponse.ts","webpack://berkstresser-llc/../../../../lib/oidc/exchangeCodeForTokens.ts","webpack://berkstresser-llc/../../../../lib/oidc/types/Token.ts","webpack://berkstresser-llc/../../../../lib/oidc/getUserInfo.ts","webpack://berkstresser-llc/../../../../lib/oidc/util/browser.ts","webpack://berkstresser-llc/../../../../lib/oidc/util/prepareTokenParams.ts","webpack://berkstresser-llc/../../../../lib/oidc/endpoints/authorize.ts","webpack://berkstresser-llc/../../../../lib/oidc/getToken.ts","webpack://berkstresser-llc/../../../../lib/oidc/getWithoutPrompt.ts","webpack://berkstresser-llc/../../../../lib/oidc/getWithPopup.ts","webpack://berkstresser-llc/../../../../lib/oidc/getWithRedirect.ts","webpack://berkstresser-llc/../../../../lib/oidc/parseFromUrl.ts","webpack://berkstresser-llc/../../../../lib/oidc/util/refreshToken.ts","webpack://berkstresser-llc/../../../../lib/oidc/renewTokensWithRefresh.ts","webpack://berkstresser-llc/../../../../lib/oidc/renewToken.ts","webpack://berkstresser-llc/../../../../lib/oidc/renewTokens.ts","webpack://berkstresser-llc/../../../../lib/oidc/revokeToken.ts","webpack://berkstresser-llc/../../../../lib/oidc/util/enrollAuthenticatorMeta.ts","webpack://berkstresser-llc/../../../../lib/oidc/util/defaultEnrollAuthenticatorParams.ts","webpack://berkstresser-llc/../../../../lib/oidc/util/prepareEnrollAuthenticatorParams.ts","webpack://berkstresser-llc/../../../../lib/oidc/enrollAuthenticator.ts","webpack://berkstresser-llc/../../../../lib/oidc/factory/api.ts","webpack://berkstresser-llc/../../../../lib/oidc/util/validateToken.ts","webpack://berkstresser-llc/../../../lib/clock.ts","webpack://berkstresser-llc/../../../../lib/oidc/types/TokenManager.ts","webpack://berkstresser-llc/../../../../lib/oidc/TokenManager.ts","webpack://berkstresser-llc/../../../../lib/browser/browserStorage.ts","webpack://berkstresser-llc/../../../../lib/oidc/mixin/browser.ts","webpack://berkstresser-llc/../../../../lib/oidc/mixin/index.ts","webpack://berkstresser-llc/../../../../lib/core/AuthStateManager.ts","webpack://berkstresser-llc/../../../../lib/services/AutoRenewService.ts","webpack://berkstresser-llc/./node_modules/broadcast-channel/dist/esbrowser/util.js","webpack://berkstresser-llc/./node_modules/broadcast-channel/dist/esbrowser/methods/native.js","webpack://berkstresser-llc/../../src/index.ts","webpack://berkstresser-llc/./node_modules/broadcast-channel/dist/esbrowser/options.js","webpack://berkstresser-llc/./node_modules/broadcast-channel/dist/esbrowser/methods/indexed-db.js","webpack://berkstresser-llc/./node_modules/broadcast-channel/dist/esbrowser/methods/localstorage.js","webpack://berkstresser-llc/./node_modules/broadcast-channel/dist/esbrowser/methods/simulate.js","webpack://berkstresser-llc/./node_modules/broadcast-channel/dist/esbrowser/method-chooser.js","webpack://berkstresser-llc/./node_modules/broadcast-channel/dist/esbrowser/broadcast-channel.js","webpack://berkstresser-llc/./node_modules/unload/dist/es/browser.js","webpack://berkstresser-llc/./node_modules/unload/dist/es/index.js","webpack://berkstresser-llc/./node_modules/broadcast-channel/dist/esbrowser/leader-election.js","webpack://berkstresser-llc/../../../../lib/services/SyncStorageService.ts","webpack://berkstresser-llc/../../../../lib/services/LeaderElectionService.ts","webpack://berkstresser-llc/../../../../lib/core/ServiceManager/browser.ts","webpack://berkstresser-llc/../../../../lib/core/mixin.ts","webpack://berkstresser-llc/../../../../lib/session/api.ts","webpack://berkstresser-llc/../../../../lib/session/factory.ts","webpack://berkstresser-llc/../../../../lib/session/mixin.ts","webpack://berkstresser-llc/../../../../lib/core/factory.ts","webpack://berkstresser-llc/../../../../lib/idx/webauthn.ts","webpack://berkstresser-llc/../../../../lib/idx/mixin.ts","webpack://berkstresser-llc/../../../../lib/idx/factory/OktaAuthIdx.ts","webpack://berkstresser-llc/../../../../lib/base/options.ts","webpack://berkstresser-llc/../../../../lib/storage/options/browser.ts","webpack://berkstresser-llc/../../../../lib/storage/options/StorageOptionsConstructor.ts","webpack://berkstresser-llc/../../../../lib/fetch/fetchRequest.ts","webpack://berkstresser-llc/../../../../lib/http/options.ts","webpack://berkstresser-llc/../../../../lib/oidc/options/browser.ts","webpack://berkstresser-llc/../../../../lib/oidc/options/OAuthOptionsConstructor.ts","webpack://berkstresser-llc/../../../../lib/core/options.ts","webpack://berkstresser-llc/../../../../lib/idx/options.ts","webpack://berkstresser-llc/../../../../lib/storage/SavedObject.ts","webpack://berkstresser-llc/../../../../lib/storage/BaseStorageManager.ts","webpack://berkstresser-llc/../../../../lib/oidc/storage.ts","webpack://berkstresser-llc/../../../../lib/core/storage.ts","webpack://berkstresser-llc/../../../../lib/idx/storage.ts","webpack://berkstresser-llc/../../../../lib/oidc/types/Transaction.ts","webpack://berkstresser-llc/../../../../lib/oidc/util/sharedStorage.ts","webpack://berkstresser-llc/../../../../lib/oidc/TransactionManager.ts","webpack://berkstresser-llc/../../../../lib/idx/IdxTransactionManager.ts","webpack://berkstresser-llc/../../../../lib/myaccount/types.ts","webpack://berkstresser-llc/../../../../lib/myaccount/transactions/Base.ts","webpack://berkstresser-llc/../../../../lib/myaccount/transactions/ProfileTransaction.ts","webpack://berkstresser-llc/../../../../lib/myaccount/transactions/ProfileSchemaTransaction.ts","webpack://berkstresser-llc/../../../../lib/myaccount/transactions/EmailTransaction.ts","webpack://berkstresser-llc/../../../../lib/myaccount/transactions/EmailStatusTransaction.ts","webpack://berkstresser-llc/../../../../lib/myaccount/transactions/EmailChallengeTransaction.ts","webpack://berkstresser-llc/../../../../lib/myaccount/transactions/PhoneTransaction.ts","webpack://berkstresser-llc/../../../../lib/myaccount/transactions/PasswordTransaction.ts","webpack://berkstresser-llc/../../../../lib/myaccount/request.ts","webpack://berkstresser-llc/../../../../lib/myaccount/profileApi.ts","webpack://berkstresser-llc/../../../../lib/myaccount/emailApi.ts","webpack://berkstresser-llc/../../../../lib/myaccount/phoneApi.ts","webpack://berkstresser-llc/../../../../lib/myaccount/passwordApi.ts","webpack://berkstresser-llc/../../../../lib/myaccount/mixin.ts","webpack://berkstresser-llc/../../../../lib/authn/util/stateToken.ts","webpack://berkstresser-llc/../../../../lib/authn/api.ts","webpack://berkstresser-llc/../../../../lib/authn/util/link2fn.ts","webpack://berkstresser-llc/../../../../lib/errors/AuthPollStopError.ts","webpack://berkstresser-llc/../../../../lib/authn/util/poll.ts","webpack://berkstresser-llc/../../../../lib/authn/util/links2fns.ts","webpack://berkstresser-llc/../../../../lib/authn/util/flattenEmbedded.ts","webpack://berkstresser-llc/../../../../lib/authn/AuthnTransactionImpl.ts","webpack://berkstresser-llc/../../../../lib/authn/factory.ts","webpack://berkstresser-llc/../../../../lib/browser/fingerprint.ts","webpack://berkstresser-llc/../../../../lib/authn/mixin.ts","webpack://berkstresser-llc/../../../../lib/exports/default.ts","webpack://berkstresser-llc/../src/service/index.ts","webpack://berkstresser-llc/../src/utils/sharedUtils.ts","webpack://berkstresser-llc/../src/helpers/color/mix.ts","webpack://berkstresser-llc/../src/helpers/dt.ts","webpack://berkstresser-llc/../src/helpers/toVariables.ts","webpack://berkstresser-llc/../src/utils/themeUtils.ts","webpack://berkstresser-llc/../src/config/index.ts","webpack://berkstresser-llc/../../src/dom/methods/hasClass.ts","webpack://berkstresser-llc/../../src/dom/methods/addClass.ts","webpack://berkstresser-llc/../../src/dom/methods/removeClass.ts","webpack://berkstresser-llc/../../src/dom/methods/getOuterWidth.ts","webpack://berkstresser-llc/../../src/dom/methods/isElement.ts","webpack://berkstresser-llc/../../src/dom/methods/setAttributes.ts","webpack://berkstresser-llc/../../src/dom/methods/createElement.ts","webpack://berkstresser-llc/../../src/dom/methods/findSingle.ts","webpack://berkstresser-llc/../../src/dom/methods/focus.ts","webpack://berkstresser-llc/../../src/dom/methods/getAttribute.ts","webpack://berkstresser-llc/../../src/dom/methods/getHeight.ts","webpack://berkstresser-llc/../../src/dom/methods/getParentNode.ts","webpack://berkstresser-llc/../../src/dom/methods/getOffset.ts","webpack://berkstresser-llc/../../src/dom/methods/getOuterHeight.ts","webpack://berkstresser-llc/../../src/dom/methods/isExist.ts","webpack://berkstresser-llc/../../src/dom/methods/getWidth.ts","webpack://berkstresser-llc/../../src/dom/methods/isClient.ts","webpack://berkstresser-llc/../../src/dom/methods/isTouchDevice.ts","webpack://berkstresser-llc/../../src/dom/methods/setAttribute.ts","webpack://berkstresser-llc/../../src/eventbus/index.ts","webpack://berkstresser-llc/../../src/object/methods/isEmpty.ts","webpack://berkstresser-llc/../../src/object/methods/deepEquals.ts","webpack://berkstresser-llc/../../src/object/methods/isFunction.ts","webpack://berkstresser-llc/../../src/object/methods/isNotEmpty.ts","webpack://berkstresser-llc/../../src/object/methods/resolveFieldData.ts","webpack://berkstresser-llc/../../src/object/methods/equals.ts","webpack://berkstresser-llc/../../src/object/methods/findLastIndex.ts","webpack://berkstresser-llc/../../src/object/methods/isObject.ts","webpack://berkstresser-llc/../../src/object/methods/resolve.ts","webpack://berkstresser-llc/../../src/object/methods/isString.ts","webpack://berkstresser-llc/../../src/object/methods/toFlatCase.ts","webpack://berkstresser-llc/../../src/object/methods/getKeyValue.ts","webpack://berkstresser-llc/../../src/object/methods/isArray.ts","webpack://berkstresser-llc/../../src/object/methods/isNumber.ts","webpack://berkstresser-llc/../../src/object/methods/isPrintableCharacter.ts","webpack://berkstresser-llc/../../src/object/methods/matchRegex.ts","webpack://berkstresser-llc/../../src/object/methods/mergeKeys.ts","webpack://berkstresser-llc/../../src/object/methods/minifyCSS.ts","webpack://berkstresser-llc/../../src/object/methods/removeAccents.ts","webpack://berkstresser-llc/../../src/object/methods/toCapitalCase.ts","webpack://berkstresser-llc/../../src/object/methods/toKebabCase.ts","webpack://berkstresser-llc/../../src/object/methods/toTokenKey.ts","webpack://berkstresser-llc/../../src/uuid/index.ts","webpack://berkstresser-llc/../../src/zindex/index.ts","webpack://berkstresser-llc/../../src/base/Base.js","webpack://berkstresser-llc/../../src/usestyle/UseStyle.js","webpack://berkstresser-llc/../../../src/base/style/BaseStyle.js","webpack://berkstresser-llc/../../src/basecomponent/style/BaseComponentStyle.js","webpack://berkstresser-llc/../../src/basecomponent/BaseComponent.vue","webpack://berkstresser-llc/../../src/service/PrimeVueService.js","webpack://berkstresser-llc/../../src/utils/UniqueComponentId.js","webpack://berkstresser-llc/../../../src/presets/aura/accordion/index.js","webpack://berkstresser-llc/../../../src/presets/aura/autocomplete/index.js","webpack://berkstresser-llc/../../../src/presets/aura/avatar/index.js","webpack://berkstresser-llc/../../../src/presets/aura/badge/index.js","webpack://berkstresser-llc/../../../src/presets/aura/blockui/index.js","webpack://berkstresser-llc/../../../src/presets/aura/breadcrumb/index.js","webpack://berkstresser-llc/../../../src/presets/aura/button/index.js","webpack://berkstresser-llc/../../../src/presets/aura/card/index.js","webpack://berkstresser-llc/../../../src/presets/aura/carousel/index.js","webpack://berkstresser-llc/../../../src/presets/aura/cascadeselect/index.js","webpack://berkstresser-llc/../../../src/presets/aura/checkbox/index.js","webpack://berkstresser-llc/../../../src/presets/aura/chip/index.js","webpack://berkstresser-llc/../../../src/presets/aura/colorpicker/index.js","webpack://berkstresser-llc/../../../src/presets/aura/confirmdialog/index.js","webpack://berkstresser-llc/../../../src/presets/aura/confirmpopup/index.js","webpack://berkstresser-llc/../../../src/presets/aura/contextmenu/index.js","webpack://berkstresser-llc/../../../src/presets/aura/datatable/index.js","webpack://berkstresser-llc/../../../src/presets/aura/dataview/index.js","webpack://berkstresser-llc/../../../src/presets/aura/datepicker/index.js","webpack://berkstresser-llc/../../../src/presets/aura/dialog/index.js","webpack://berkstresser-llc/../../../src/presets/aura/divider/index.js","webpack://berkstresser-llc/../../../src/presets/aura/dock/index.js","webpack://berkstresser-llc/../../../src/presets/aura/drawer/index.js","webpack://berkstresser-llc/../../../src/presets/aura/editor/index.js","webpack://berkstresser-llc/../../../src/presets/aura/fieldset/index.js","webpack://berkstresser-llc/../../../src/presets/aura/fileupload/index.js","webpack://berkstresser-llc/../../../src/presets/aura/floatlabel/index.js","webpack://berkstresser-llc/../../../src/presets/aura/galleria/index.js","webpack://berkstresser-llc/../../../src/presets/aura/iconfield/index.js","webpack://berkstresser-llc/../../../src/presets/aura/image/index.js","webpack://berkstresser-llc/../../../src/presets/aura/inlinemessage/index.js","webpack://berkstresser-llc/../../../src/presets/aura/inplace/index.js","webpack://berkstresser-llc/../../../src/presets/aura/inputchips/index.js","webpack://berkstresser-llc/../../../src/presets/aura/inputgroup/index.js","webpack://berkstresser-llc/../../../src/presets/aura/inputnumber/index.js","webpack://berkstresser-llc/../../../src/presets/aura/inputtext/index.js","webpack://berkstresser-llc/../../../src/presets/aura/knob/index.js","webpack://berkstresser-llc/../../../src/presets/aura/listbox/index.js","webpack://berkstresser-llc/../../../src/presets/aura/megamenu/index.js","webpack://berkstresser-llc/../../../src/presets/aura/menu/index.js","webpack://berkstresser-llc/../../../src/presets/aura/menubar/index.js","webpack://berkstresser-llc/../../../src/presets/aura/message/index.js","webpack://berkstresser-llc/../../../src/presets/aura/metergroup/index.js","webpack://berkstresser-llc/../../../src/presets/aura/multiselect/index.js","webpack://berkstresser-llc/../../../src/presets/aura/orderlist/index.js","webpack://berkstresser-llc/../../../src/presets/aura/organizationchart/index.js","webpack://berkstresser-llc/../../../src/presets/aura/overlaybadge/index.js","webpack://berkstresser-llc/../../../src/presets/aura/paginator/index.js","webpack://berkstresser-llc/../../../src/presets/aura/panel/index.js","webpack://berkstresser-llc/../../../src/presets/aura/panelmenu/index.js","webpack://berkstresser-llc/../../../src/presets/aura/password/index.js","webpack://berkstresser-llc/../../../src/presets/aura/picklist/index.js","webpack://berkstresser-llc/../../../src/presets/aura/popover/index.js","webpack://berkstresser-llc/../../../src/presets/aura/progressbar/index.js","webpack://berkstresser-llc/../../../src/presets/aura/progressspinner/index.js","webpack://berkstresser-llc/../../../src/presets/aura/radiobutton/index.js","webpack://berkstresser-llc/../../../src/presets/aura/rating/index.js","webpack://berkstresser-llc/../../../src/presets/aura/ripple/index.js","webpack://berkstresser-llc/../../../src/presets/aura/scrollpanel/index.js","webpack://berkstresser-llc/../../../src/presets/aura/select/index.js","webpack://berkstresser-llc/../../../src/presets/aura/selectbutton/index.js","webpack://berkstresser-llc/../../../src/presets/aura/skeleton/index.js","webpack://berkstresser-llc/../../../src/presets/aura/slider/index.js","webpack://berkstresser-llc/../../../src/presets/aura/speeddial/index.js","webpack://berkstresser-llc/../../../src/presets/aura/splitbutton/index.js","webpack://berkstresser-llc/../../../src/presets/aura/splitter/index.js","webpack://berkstresser-llc/../../../src/presets/aura/stepper/index.js","webpack://berkstresser-llc/../../../src/presets/aura/steps/index.js","webpack://berkstresser-llc/../../../src/presets/aura/tabmenu/index.js","webpack://berkstresser-llc/../../../src/presets/aura/tabs/index.js","webpack://berkstresser-llc/../../../src/presets/aura/tabview/index.js","webpack://berkstresser-llc/../../../src/presets/aura/tag/index.js","webpack://berkstresser-llc/../../../src/presets/aura/terminal/index.js","webpack://berkstresser-llc/../../../src/presets/aura/textarea/index.js","webpack://berkstresser-llc/../../../src/presets/aura/tieredmenu/index.js","webpack://berkstresser-llc/../../../src/presets/aura/timeline/index.js","webpack://berkstresser-llc/../../../src/presets/aura/toast/index.js","webpack://berkstresser-llc/../../../src/presets/aura/togglebutton/index.js","webpack://berkstresser-llc/../../../src/presets/aura/toggleswitch/index.js","webpack://berkstresser-llc/../../../src/presets/aura/toolbar/index.js","webpack://berkstresser-llc/../../../src/presets/aura/tooltip/index.js","webpack://berkstresser-llc/../../../src/presets/aura/tree/index.js","webpack://berkstresser-llc/../../../src/presets/aura/treeselect/index.js","webpack://berkstresser-llc/../../../src/presets/aura/treetable/index.js","webpack://berkstresser-llc/../../../src/presets/aura/virtualscroller/index.js","webpack://berkstresser-llc/../../src/presets/aura/index.js","webpack://berkstresser-llc/../../../src/card/style/CardStyle.js","webpack://berkstresser-llc/../../src/card/BaseCard.vue","webpack://berkstresser-llc/../../src/card/Card.vue","webpack://berkstresser-llc/../../src/card/Card.vue?7fde","webpack://berkstresser-llc/../../src/api/FilterMatchMode.js","webpack://berkstresser-llc/../../src/api/FilterService.js","webpack://berkstresser-llc/../../src/config/PrimeVue.js","webpack://berkstresser-llc/../../../src/baseicon/style/BaseIconStyle.js","webpack://berkstresser-llc/../../src/baseicon/BaseIcon.vue","webpack://berkstresser-llc/../../src/bars/index.vue","webpack://berkstresser-llc/../../src/bars/index.vue?f08d","webpack://berkstresser-llc/../../../src/menubar/style/MenubarStyle.js","webpack://berkstresser-llc/../../src/angledown/index.vue","webpack://berkstresser-llc/../../src/angledown/index.vue?a5c8","webpack://berkstresser-llc/../../src/angleright/index.vue","webpack://berkstresser-llc/../../src/angleright/index.vue?060f","webpack://berkstresser-llc/../../src/basedirective/BaseDirective.js","webpack://berkstresser-llc/../../../src/ripple/style/RippleStyle.js","webpack://berkstresser-llc/../../src/ripple/BaseRipple.js","webpack://berkstresser-llc/../../src/ripple/Ripple.js","webpack://berkstresser-llc/../../src/menubar/BaseMenubar.vue","webpack://berkstresser-llc/../../src/menubar/MenubarSub.vue","webpack://berkstresser-llc/../../src/menubar/MenubarSub.vue?8f10","webpack://berkstresser-llc/../../src/menubar/Menubar.vue","webpack://berkstresser-llc/../../src/menubar/Menubar.vue?e882","webpack://berkstresser-llc/./node_modules/vue-router/dist/vue-router.mjs"],"sourcesContent":["export default function compareVersions(v1, v2) {\n // validate input and split into segments\n const n1 = validateAndParse(v1);\n const n2 = validateAndParse(v2);\n\n // pop off the patch\n const p1 = n1.pop();\n const p2 = n2.pop();\n\n // validate numbers\n const r = compareSegments(n1, n2);\n if (r !== 0) return r;\n\n // validate pre-release\n if (p1 && p2) {\n return compareSegments(p1.split('.'), p2.split('.'));\n } else if (p1 || p2) {\n return p1 ? -1 : 1;\n }\n\n return 0;\n}\n\nexport const validate = (v) =>\n typeof v === 'string' && /^[v\\d]/.test(v) && semver.test(v);\n\nexport const compare = (v1, v2, operator) => {\n // validate input operator\n assertValidOperator(operator);\n\n // since result of compareVersions can only be -1 or 0 or 1\n // a simple map can be used to replace switch\n const res = compareVersions(v1, v2);\n\n return operatorResMap[operator].includes(res);\n};\n\nexport const satisfies = (v, r) => {\n // if no range operator then \"=\"\n const m = r.match(/^([<>=~^]+)/);\n const op = m ? m[1] : '=';\n\n // if gt/lt/eq then operator compare\n if (op !== '^' && op !== '~') return compare(v, r, op);\n\n // else range of either \"~\" or \"^\" is assumed\n const [v1, v2, v3] = validateAndParse(v);\n const [r1, r2, r3] = validateAndParse(r);\n if (compareStrings(v1, r1) !== 0) return false;\n if (op === '^') {\n return compareSegments([v2, v3], [r2, r3]) >= 0;\n }\n if (compareStrings(v2, r2) !== 0) return false;\n return compareStrings(v3, r3) >= 0;\n};\n\n// export CJS style for parity\ncompareVersions.validate = validate;\ncompareVersions.compare = compare;\ncompareVersions.satisfies = satisfies;\n\nconst semver =\n /^[v^~<>=]*?(\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+))?(?:-([\\da-z\\-]+(?:\\.[\\da-z\\-]+)*))?(?:\\+[\\da-z\\-]+(?:\\.[\\da-z\\-]+)*)?)?)?$/i;\n\nconst validateAndParse = (v) => {\n if (typeof v !== 'string') {\n throw new TypeError('Invalid argument expected string');\n }\n const match = v.match(semver);\n if (!match) {\n throw new Error(`Invalid argument not valid semver ('${v}' received)`);\n }\n match.shift();\n return match;\n};\n\nconst isWildcard = (s) => s === '*' || s === 'x' || s === 'X';\n\nconst tryParse = (v) => {\n const n = parseInt(v, 10);\n return isNaN(n) ? v : n;\n};\n\nconst forceType = (a, b) =>\n typeof a !== typeof b ? [String(a), String(b)] : [a, b];\n\nconst compareStrings = (a, b) => {\n if (isWildcard(a) || isWildcard(b)) return 0;\n const [ap, bp] = forceType(tryParse(a), tryParse(b));\n if (ap > bp) return 1;\n if (ap < bp) return -1;\n return 0;\n};\n\nconst compareSegments = (a, b) => {\n for (let i = 0; i < Math.max(a.length, b.length); i++) {\n const r = compareStrings(a[i] || 0, b[i] || 0);\n if (r !== 0) return r;\n }\n return 0;\n};\n\nconst operatorResMap = {\n '>': [1],\n '>=': [0, 1],\n '=': [0],\n '<=': [-1, 0],\n '<': [-1],\n};\n\nconst allowedOperators = Object.keys(operatorResMap);\n\nconst assertValidOperator = (op) => {\n if (typeof op !== 'string') {\n throw new TypeError(\n `Invalid operator type, expected string but got ${typeof op}`\n );\n }\n if (allowedOperators.indexOf(op) === -1) {\n throw new Error(\n `Invalid operator, expected one of ${allowedOperators.join('|')}`\n );\n }\n};\n","/*!\n * Copyright (c) 2017-Present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { App } from 'vue'\nimport { Router, RouteLocationNormalized } from 'vue-router'\nimport { AuthSdkError, OktaAuth, AuthState, toRelativeUrl } from '@okta/okta-auth-js'\nimport { compare } from 'compare-versions';\nimport { OktaVueOptions, OnAuthRequiredFunction } from './types'\n\n// constants are defined in webpack.config.js\ndeclare const PACKAGE: {\n name: string;\n version: string;\n}\n\ndeclare const AUTH_JS: {\n minSupportedVersion: string;\n}\n\nlet _oktaAuth: OktaAuth\nlet _onAuthRequired: OnAuthRequiredFunction | undefined\nlet _router: Router\nlet originalUriTracker: string\n\nconst guardSecureRoute = async (authState: AuthState | null) => {\n if (authState && !authState.isAuthenticated) {\n _oktaAuth.setOriginalUri(originalUriTracker)\n if (_onAuthRequired) {\n await _onAuthRequired(_oktaAuth)\n } else {\n await _oktaAuth.signInWithRedirect()\n }\n }\n}\n\nexport const navigationGuard = async (to: RouteLocationNormalized) => {\n // clear any subscribed guardSecureRoute\n _oktaAuth.authStateManager.unsubscribe(guardSecureRoute)\n\n if (to.matched.some(record => record.meta.requiresAuth)) {\n // track the originalUri for guardSecureRoute\n originalUriTracker = to.fullPath\n\n // subscribe to authState change to protect secure routes when authState change\n // all secure routes should subscribe before enter the route\n _oktaAuth.authStateManager.subscribe(guardSecureRoute)\n\n // guard the secure route based on the authState when enter\n const isAuthenticated = await _oktaAuth.isAuthenticated()\n if (!isAuthenticated) {\n const authState = _oktaAuth.authStateManager.getAuthState()\n await guardSecureRoute(authState)\n return false\n }\n\n return true\n }\n \n return true\n}\n\n\nfunction install (app: App, {\n oktaAuth,\n onAuthRequired,\n onAuthResume\n} = {} as OktaVueOptions) {\n if (!oktaAuth) {\n throw new AuthSdkError('No oktaAuth instance passed to OktaVue.')\n }\n\n _oktaAuth = oktaAuth\n _onAuthRequired = onAuthRequired\n\n if (oktaAuth._oktaUserAgent) {\n const isAuthJsSupported = compare(oktaAuth._oktaUserAgent.getVersion(), AUTH_JS.minSupportedVersion, '>=');\n if (!isAuthJsSupported) {\n throw new AuthSdkError(`\n Passed in oktaAuth is not compatible with the SDK,\n minimum supported okta-auth-js version is ${AUTH_JS.minSupportedVersion}.\n `);\n }\n\n // customize user agent\n oktaAuth._oktaUserAgent.addEnvironment(`${PACKAGE.name}/${PACKAGE.version}`);\n } else {\n // TODO: just throw based on the minimum supported auth-js version in the next major version\n console.warn('_oktaUserAgent is not available on auth SDK instance. Please use okta-auth-js@^5.3.1 .');\n }\n\n // add default restoreOriginalUri callback\n if (!oktaAuth.options.restoreOriginalUri) {\n oktaAuth.options.restoreOriginalUri = async (oktaAuth: OktaAuth, originalUri: string) => {\n // If a router is available, provide a default implementation\n if (_router) {\n const path = toRelativeUrl(originalUri || '/', window.location.origin);\n _router.replace({ path })\n }\n }\n }\n\n // Calculates initial auth state and fires change event for listeners\n // Also starts services\n oktaAuth.start();\n\n app.mixin({\n data () {\n return {\n authState: oktaAuth.authStateManager.getAuthState()\n }\n },\n beforeCreate () {\n // assign router for the default restoreOriginalUri callback\n _router = this.$router\n },\n created () {\n // subscribe to the latest authState\n this.authState = oktaAuth.authStateManager.getAuthState()\n oktaAuth.authStateManager.subscribe(this.$_oktaVue_handleAuthStateUpdate)\n },\n beforeUnmount () {\n oktaAuth.authStateManager.unsubscribe(this.$_oktaVue_handleAuthStateUpdate)\n },\n // private property naming convention follows\n // https://vuejs.org/v2/style-guide/#Private-property-names-essential\n methods: {\n // eslint-disable-next-line @typescript-eslint/camelcase\n async $_oktaVue_handleAuthStateUpdate (authState: AuthState) {\n this.authState = Object.assign(this.authState || {}, authState)\n }\n }\n })\n\n // add additional options to oktaAuth options\n Object.assign(oktaAuth.options, {\n onAuthRequired,\n onAuthResume\n })\n\n // add oktaAuth instance to Vue\n app.config.globalProperties.$auth = oktaAuth\n}\n\nexport function useAuth() {\n if (!_oktaAuth) {\n throw new AuthSdkError('No oktaAuth instance has instantiated.')\n }\n\n return _oktaAuth\n}\n\nexport default { install }\n","/*!\n * Copyright (c) 2017-Present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\n<script>\nimport { defineComponent, h } from 'vue'\n\nexport default defineComponent({\n name: 'LoginCallback',\n data() {\n return {\n error: null\n };\n },\n async beforeMount () {\n try {\n await this.$auth.handleLoginRedirect();\n } catch (e) {\n const isInteractionRequiredError = this.$auth.isInteractionRequiredError || this.$auth.idx.isInteractionRequiredError;\n if (isInteractionRequiredError(e)) {\n const { onAuthResume, onAuthRequired } = this.$auth.options;\n const callbackFn = onAuthResume || onAuthRequired;\n if (callbackFn) {\n callbackFn(this.$auth);\n return;\n }\n }\n this.error = e.toString();\n }\n },\n render() {\n if (this.$slots.error) {\n return h('div', this.$slots.error({ error: this.error }));\n }\n\n return this.error;\n }\n})\n</script>\n","/**\n* @vue/reactivity v3.5.6\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { hasChanged, extend, isArray, isIntegerKey, isSymbol, isMap, hasOwn, isObject, makeMap, capitalize, toRawType, def, isFunction, EMPTY_OBJ, isSet, isPlainObject, NOOP, remove } 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._isPaused = false;\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 pause() {\n if (this._active) {\n this._isPaused = true;\n let i, l;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].pause();\n }\n }\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].pause();\n }\n }\n }\n /**\n * Resumes the effect scope, including all child scopes and effects.\n */\n resume() {\n if (this._active) {\n if (this._isPaused) {\n this._isPaused = false;\n let i, l;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].resume();\n }\n }\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].resume();\n }\n }\n }\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 getCurrentScope() {\n return activeEffectScope;\n}\nfunction onScopeDispose(fn, failSilently = false) {\n if (activeEffectScope) {\n activeEffectScope.cleanups.push(fn);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn(\n `onScopeDispose() is called when there is no active effect scope to be associated with.`\n );\n }\n}\n\nlet activeSub;\nconst EffectFlags = {\n \"ACTIVE\": 1,\n \"1\": \"ACTIVE\",\n \"RUNNING\": 2,\n \"2\": \"RUNNING\",\n \"TRACKING\": 4,\n \"4\": \"TRACKING\",\n \"NOTIFIED\": 8,\n \"8\": \"NOTIFIED\",\n \"DIRTY\": 16,\n \"16\": \"DIRTY\",\n \"ALLOW_RECURSE\": 32,\n \"32\": \"ALLOW_RECURSE\",\n \"PAUSED\": 64,\n \"64\": \"PAUSED\"\n};\nconst pausedQueueEffects = /* @__PURE__ */ new WeakSet();\nclass ReactiveEffect {\n constructor(fn) {\n this.fn = fn;\n /**\n * @internal\n */\n this.deps = void 0;\n /**\n * @internal\n */\n this.depsTail = void 0;\n /**\n * @internal\n */\n this.flags = 1 | 4;\n /**\n * @internal\n */\n this.next = void 0;\n /**\n * @internal\n */\n this.cleanup = void 0;\n this.scheduler = void 0;\n if (activeEffectScope && activeEffectScope.active) {\n activeEffectScope.effects.push(this);\n }\n }\n pause() {\n this.flags |= 64;\n }\n resume() {\n if (this.flags & 64) {\n this.flags &= ~64;\n if (pausedQueueEffects.has(this)) {\n pausedQueueEffects.delete(this);\n this.trigger();\n }\n }\n }\n /**\n * @internal\n */\n notify() {\n if (this.flags & 2 && !(this.flags & 32)) {\n return;\n }\n if (!(this.flags & 8)) {\n batch(this);\n }\n }\n run() {\n if (!(this.flags & 1)) {\n return this.fn();\n }\n this.flags |= 2;\n cleanupEffect(this);\n prepareDeps(this);\n const prevEffect = activeSub;\n const prevShouldTrack = shouldTrack;\n activeSub = this;\n shouldTrack = true;\n try {\n return this.fn();\n } finally {\n if (!!(process.env.NODE_ENV !== \"production\") && activeSub !== this) {\n warn(\n \"Active effect was not restored correctly - this is likely a Vue internal bug.\"\n );\n }\n cleanupDeps(this);\n activeSub = prevEffect;\n shouldTrack = prevShouldTrack;\n this.flags &= ~2;\n }\n }\n stop() {\n if (this.flags & 1) {\n for (let link = this.deps; link; link = link.nextDep) {\n removeSub(link);\n }\n this.deps = this.depsTail = void 0;\n cleanupEffect(this);\n this.onStop && this.onStop();\n this.flags &= ~1;\n }\n }\n trigger() {\n if (this.flags & 64) {\n pausedQueueEffects.add(this);\n } else if (this.scheduler) {\n this.scheduler();\n } else {\n this.runIfDirty();\n }\n }\n /**\n * @internal\n */\n runIfDirty() {\n if (isDirty(this)) {\n this.run();\n }\n }\n get dirty() {\n return isDirty(this);\n }\n}\nlet batchDepth = 0;\nlet batchedSub;\nfunction batch(sub) {\n sub.flags |= 8;\n sub.next = batchedSub;\n batchedSub = sub;\n}\nfunction startBatch() {\n batchDepth++;\n}\nfunction endBatch() {\n if (--batchDepth > 0) {\n return;\n }\n let error;\n while (batchedSub) {\n let e = batchedSub;\n batchedSub = void 0;\n while (e) {\n const next = e.next;\n e.next = void 0;\n e.flags &= ~8;\n if (e.flags & 1) {\n try {\n ;\n e.trigger();\n } catch (err) {\n if (!error) error = err;\n }\n }\n e = next;\n }\n }\n if (error) throw error;\n}\nfunction prepareDeps(sub) {\n for (let link = sub.deps; link; link = link.nextDep) {\n link.version = -1;\n link.prevActiveLink = link.dep.activeLink;\n link.dep.activeLink = link;\n }\n}\nfunction cleanupDeps(sub) {\n let head;\n let tail = sub.depsTail;\n let link = tail;\n while (link) {\n const prev = link.prevDep;\n if (link.version === -1) {\n if (link === tail) tail = prev;\n removeSub(link);\n removeDep(link);\n } else {\n head = link;\n }\n link.dep.activeLink = link.prevActiveLink;\n link.prevActiveLink = void 0;\n link = prev;\n }\n sub.deps = head;\n sub.depsTail = tail;\n}\nfunction isDirty(sub) {\n for (let link = sub.deps; link; link = link.nextDep) {\n if (link.dep.version !== link.version || link.dep.computed && (refreshComputed(link.dep.computed) || link.dep.version !== link.version)) {\n return true;\n }\n }\n if (sub._dirty) {\n return true;\n }\n return false;\n}\nfunction refreshComputed(computed) {\n if (computed.flags & 4 && !(computed.flags & 16)) {\n return;\n }\n computed.flags &= ~16;\n if (computed.globalVersion === globalVersion) {\n return;\n }\n computed.globalVersion = globalVersion;\n const dep = computed.dep;\n computed.flags |= 2;\n if (dep.version > 0 && !computed.isSSR && computed.deps && !isDirty(computed)) {\n computed.flags &= ~2;\n return;\n }\n const prevSub = activeSub;\n const prevShouldTrack = shouldTrack;\n activeSub = computed;\n shouldTrack = true;\n try {\n prepareDeps(computed);\n const value = computed.fn(computed._value);\n if (dep.version === 0 || hasChanged(value, computed._value)) {\n computed._value = value;\n dep.version++;\n }\n } catch (err) {\n dep.version++;\n throw err;\n } finally {\n activeSub = prevSub;\n shouldTrack = prevShouldTrack;\n cleanupDeps(computed);\n computed.flags &= ~2;\n }\n}\nfunction removeSub(link) {\n const { dep, prevSub, nextSub } = link;\n if (prevSub) {\n prevSub.nextSub = nextSub;\n link.prevSub = void 0;\n }\n if (nextSub) {\n nextSub.prevSub = prevSub;\n link.nextSub = void 0;\n }\n if (dep.subs === link) {\n dep.subs = prevSub;\n }\n if (!dep.subs && dep.computed) {\n dep.computed.flags &= ~4;\n for (let l = dep.computed.deps; l; l = l.nextDep) {\n removeSub(l);\n }\n }\n}\nfunction removeDep(link) {\n const { prevDep, nextDep } = link;\n if (prevDep) {\n prevDep.nextDep = nextDep;\n link.prevDep = void 0;\n }\n if (nextDep) {\n nextDep.prevDep = prevDep;\n link.nextDep = void 0;\n }\n}\nfunction effect(fn, options) {\n if (fn.effect instanceof ReactiveEffect) {\n fn = fn.effect.fn;\n }\n const e = new ReactiveEffect(fn);\n if (options) {\n extend(e, options);\n }\n try {\n e.run();\n } catch (err) {\n e.stop();\n throw err;\n }\n const runner = e.run.bind(e);\n runner.effect = e;\n return runner;\n}\nfunction stop(runner) {\n runner.effect.stop();\n}\nlet shouldTrack = true;\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 onEffectCleanup(fn, failSilently = false) {\n if (activeSub instanceof ReactiveEffect) {\n activeSub.cleanup = fn;\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn(\n `onEffectCleanup() was called when there was no active effect to associate with.`\n );\n }\n}\nfunction cleanupEffect(e) {\n const { cleanup } = e;\n e.cleanup = void 0;\n if (cleanup) {\n const prevSub = activeSub;\n activeSub = void 0;\n try {\n cleanup();\n } finally {\n activeSub = prevSub;\n }\n }\n}\n\nlet globalVersion = 0;\nclass Link {\n constructor(sub, dep) {\n this.sub = sub;\n this.dep = dep;\n this.version = dep.version;\n this.nextDep = this.prevDep = this.nextSub = this.prevSub = this.prevActiveLink = void 0;\n }\n}\nclass Dep {\n constructor(computed) {\n this.computed = computed;\n this.version = 0;\n /**\n * Link between this dep and the current active effect\n */\n this.activeLink = void 0;\n /**\n * Doubly linked list representing the subscribing effects (tail)\n */\n this.subs = void 0;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this.subsHead = void 0;\n }\n }\n track(debugInfo) {\n if (!activeSub || !shouldTrack || activeSub === this.computed) {\n return;\n }\n let link = this.activeLink;\n if (link === void 0 || link.sub !== activeSub) {\n link = this.activeLink = new Link(activeSub, this);\n if (!activeSub.deps) {\n activeSub.deps = activeSub.depsTail = link;\n } else {\n link.prevDep = activeSub.depsTail;\n activeSub.depsTail.nextDep = link;\n activeSub.depsTail = link;\n }\n if (activeSub.flags & 4) {\n addSub(link);\n }\n } else if (link.version === -1) {\n link.version = this.version;\n if (link.nextDep) {\n const next = link.nextDep;\n next.prevDep = link.prevDep;\n if (link.prevDep) {\n link.prevDep.nextDep = next;\n }\n link.prevDep = activeSub.depsTail;\n link.nextDep = void 0;\n activeSub.depsTail.nextDep = link;\n activeSub.depsTail = link;\n if (activeSub.deps === link) {\n activeSub.deps = next;\n }\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") && activeSub.onTrack) {\n activeSub.onTrack(\n extend(\n {\n effect: activeSub\n },\n debugInfo\n )\n );\n }\n return link;\n }\n trigger(debugInfo) {\n this.version++;\n globalVersion++;\n this.notify(debugInfo);\n }\n notify(debugInfo) {\n startBatch();\n try {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n for (let head = this.subsHead; head; head = head.nextSub) {\n if (head.sub.onTrigger && !(head.sub.flags & 8)) {\n head.sub.onTrigger(\n extend(\n {\n effect: head.sub\n },\n debugInfo\n )\n );\n }\n }\n }\n for (let link = this.subs; link; link = link.prevSub) {\n if (link.sub.notify()) {\n ;\n link.sub.dep.notify();\n }\n }\n } finally {\n endBatch();\n }\n }\n}\nfunction addSub(link) {\n const computed = link.dep.computed;\n if (computed && !link.dep.subs) {\n computed.flags |= 4 | 16;\n for (let l = computed.deps; l; l = l.nextDep) {\n addSub(l);\n }\n }\n const currentTail = link.dep.subs;\n if (currentTail !== link) {\n link.prevSub = currentTail;\n if (currentTail) currentTail.nextSub = link;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && link.dep.subsHead === void 0) {\n link.dep.subsHead = link;\n }\n link.dep.subs = link;\n}\nconst targetMap = /* @__PURE__ */ new WeakMap();\nconst ITERATE_KEY = Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Object iterate\" : \"\"\n);\nconst MAP_KEY_ITERATE_KEY = Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Map keys iterate\" : \"\"\n);\nconst ARRAY_ITERATE_KEY = Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Array iterate\" : \"\"\n);\nfunction track(target, type, key) {\n if (shouldTrack && activeSub) {\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 = new Dep());\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n dep.track({\n target,\n type,\n key\n });\n } else {\n dep.track();\n }\n }\n}\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\n const depsMap = targetMap.get(target);\n if (!depsMap) {\n globalVersion++;\n return;\n }\n const run = (dep) => {\n if (dep) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n dep.trigger({\n target,\n type,\n key,\n newValue,\n oldValue,\n oldTarget\n });\n } else {\n dep.trigger();\n }\n }\n };\n startBatch();\n if (type === \"clear\") {\n depsMap.forEach(run);\n } else {\n const targetIsArray = isArray(target);\n const isArrayIndex = targetIsArray && isIntegerKey(key);\n if (targetIsArray && key === \"length\") {\n const newLength = Number(newValue);\n depsMap.forEach((dep, key2) => {\n if (key2 === \"length\" || key2 === ARRAY_ITERATE_KEY || !isSymbol(key2) && key2 >= newLength) {\n run(dep);\n }\n });\n } else {\n if (key !== void 0) {\n run(depsMap.get(key));\n }\n if (isArrayIndex) {\n run(depsMap.get(ARRAY_ITERATE_KEY));\n }\n switch (type) {\n case \"add\":\n if (!targetIsArray) {\n run(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n run(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n } else if (isArrayIndex) {\n run(depsMap.get(\"length\"));\n }\n break;\n case \"delete\":\n if (!targetIsArray) {\n run(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n run(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n break;\n case \"set\":\n if (isMap(target)) {\n run(depsMap.get(ITERATE_KEY));\n }\n break;\n }\n }\n }\n endBatch();\n}\nfunction getDepFromReactive(object, key) {\n var _a;\n return (_a = targetMap.get(object)) == null ? void 0 : _a.get(key);\n}\n\nfunction reactiveReadArray(array) {\n const raw = toRaw(array);\n if (raw === array) return raw;\n track(raw, \"iterate\", ARRAY_ITERATE_KEY);\n return isShallow(array) ? raw : raw.map(toReactive);\n}\nfunction shallowReadArray(arr) {\n track(arr = toRaw(arr), \"iterate\", ARRAY_ITERATE_KEY);\n return arr;\n}\nconst arrayInstrumentations = {\n __proto__: null,\n [Symbol.iterator]() {\n return iterator(this, Symbol.iterator, toReactive);\n },\n concat(...args) {\n return reactiveReadArray(this).concat(\n ...args.map((x) => isArray(x) ? reactiveReadArray(x) : x)\n );\n },\n entries() {\n return iterator(this, \"entries\", (value) => {\n value[1] = toReactive(value[1]);\n return value;\n });\n },\n every(fn, thisArg) {\n return apply(this, \"every\", fn, thisArg, void 0, arguments);\n },\n filter(fn, thisArg) {\n return apply(this, \"filter\", fn, thisArg, (v) => v.map(toReactive), arguments);\n },\n find(fn, thisArg) {\n return apply(this, \"find\", fn, thisArg, toReactive, arguments);\n },\n findIndex(fn, thisArg) {\n return apply(this, \"findIndex\", fn, thisArg, void 0, arguments);\n },\n findLast(fn, thisArg) {\n return apply(this, \"findLast\", fn, thisArg, toReactive, arguments);\n },\n findLastIndex(fn, thisArg) {\n return apply(this, \"findLastIndex\", fn, thisArg, void 0, arguments);\n },\n // flat, flatMap could benefit from ARRAY_ITERATE but are not straight-forward to implement\n forEach(fn, thisArg) {\n return apply(this, \"forEach\", fn, thisArg, void 0, arguments);\n },\n includes(...args) {\n return searchProxy(this, \"includes\", args);\n },\n indexOf(...args) {\n return searchProxy(this, \"indexOf\", args);\n },\n join(separator) {\n return reactiveReadArray(this).join(separator);\n },\n // keys() iterator only reads `length`, no optimisation required\n lastIndexOf(...args) {\n return searchProxy(this, \"lastIndexOf\", args);\n },\n map(fn, thisArg) {\n return apply(this, \"map\", fn, thisArg, void 0, arguments);\n },\n pop() {\n return noTracking(this, \"pop\");\n },\n push(...args) {\n return noTracking(this, \"push\", args);\n },\n reduce(fn, ...args) {\n return reduce(this, \"reduce\", fn, args);\n },\n reduceRight(fn, ...args) {\n return reduce(this, \"reduceRight\", fn, args);\n },\n shift() {\n return noTracking(this, \"shift\");\n },\n // slice could use ARRAY_ITERATE but also seems to beg for range tracking\n some(fn, thisArg) {\n return apply(this, \"some\", fn, thisArg, void 0, arguments);\n },\n splice(...args) {\n return noTracking(this, \"splice\", args);\n },\n toReversed() {\n return reactiveReadArray(this).toReversed();\n },\n toSorted(comparer) {\n return reactiveReadArray(this).toSorted(comparer);\n },\n toSpliced(...args) {\n return reactiveReadArray(this).toSpliced(...args);\n },\n unshift(...args) {\n return noTracking(this, \"unshift\", args);\n },\n values() {\n return iterator(this, \"values\", toReactive);\n }\n};\nfunction iterator(self, method, wrapValue) {\n const arr = shallowReadArray(self);\n const iter = arr[method]();\n if (arr !== self && !isShallow(self)) {\n iter._next = iter.next;\n iter.next = () => {\n const result = iter._next();\n if (result.value) {\n result.value = wrapValue(result.value);\n }\n return result;\n };\n }\n return iter;\n}\nconst arrayProto = Array.prototype;\nfunction apply(self, method, fn, thisArg, wrappedRetFn, args) {\n const arr = shallowReadArray(self);\n const needsWrap = arr !== self && !isShallow(self);\n const methodFn = arr[method];\n if (methodFn !== arrayProto[method]) {\n const result2 = methodFn.apply(self, args);\n return needsWrap ? toReactive(result2) : result2;\n }\n let wrappedFn = fn;\n if (arr !== self) {\n if (needsWrap) {\n wrappedFn = function(item, index) {\n return fn.call(this, toReactive(item), index, self);\n };\n } else if (fn.length > 2) {\n wrappedFn = function(item, index) {\n return fn.call(this, item, index, self);\n };\n }\n }\n const result = methodFn.call(arr, wrappedFn, thisArg);\n return needsWrap && wrappedRetFn ? wrappedRetFn(result) : result;\n}\nfunction reduce(self, method, fn, args) {\n const arr = shallowReadArray(self);\n let wrappedFn = fn;\n if (arr !== self) {\n if (!isShallow(self)) {\n wrappedFn = function(acc, item, index) {\n return fn.call(this, acc, toReactive(item), index, self);\n };\n } else if (fn.length > 3) {\n wrappedFn = function(acc, item, index) {\n return fn.call(this, acc, item, index, self);\n };\n }\n }\n return arr[method](wrappedFn, ...args);\n}\nfunction searchProxy(self, method, args) {\n const arr = toRaw(self);\n track(arr, \"iterate\", ARRAY_ITERATE_KEY);\n const res = arr[method](...args);\n if ((res === -1 || res === false) && isProxy(args[0])) {\n args[0] = toRaw(args[0]);\n return arr[method](...args);\n }\n return res;\n}\nfunction noTracking(self, method, args = []) {\n pauseTracking();\n startBatch();\n const res = toRaw(self)[method].apply(self, args);\n endBatch();\n resetTracking();\n return res;\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);\nfunction hasOwnProperty(key) {\n if (!isSymbol(key)) key = String(key);\n const obj = toRaw(this);\n track(obj, \"has\", key);\n return obj.hasOwnProperty(key);\n}\nclass BaseReactiveHandler {\n constructor(_isReadonly = false, _isShallow = false) {\n this._isReadonly = _isReadonly;\n this._isShallow = _isShallow;\n }\n get(target, key, receiver) {\n const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow;\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 isShallow2;\n } else if (key === \"__v_raw\") {\n if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype\n // this means the receiver 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 let fn;\n if (targetIsArray && (fn = arrayInstrumentations[key])) {\n return fn;\n }\n if (key === \"hasOwnProperty\") {\n return hasOwnProperty;\n }\n }\n const res = Reflect.get(\n target,\n key,\n // if this is a proxy wrapping a ref, return methods using the raw ref\n // as receiver so that we don't have to call `toRaw` on the ref in all\n // its class methods\n isRef(target) ? target : receiver\n );\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n return res;\n }\n if (!isReadonly2) {\n track(target, \"get\", key);\n }\n if (isShallow2) {\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(isShallow2 = false) {\n super(false, isShallow2);\n }\n set(target, key, value, receiver) {\n let oldValue = target[key];\n if (!this._isShallow) {\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(\n target,\n key,\n value,\n isRef(target) ? target : receiver\n );\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(isShallow2 = false) {\n super(true, isShallow2);\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(true);\nconst shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);\n\nconst toShallow = (value) => value;\nconst getProto = (v) => Reflect.getPrototypeOf(v);\nfunction get(target, key, isReadonly2 = false, isShallow2 = false) {\n target = target[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly2) {\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 = isShallow2 ? toShallow : isReadonly2 ? 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, isReadonly2 = false) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly2) {\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, isReadonly2 = false) {\n target = target[\"__v_raw\"];\n !isReadonly2 && track(toRaw(target), \"iterate\", ITERATE_KEY);\n return Reflect.get(target, \"size\", target);\n}\nfunction add(value, _isShallow = false) {\n if (!_isShallow && !isShallow(value) && !isReadonly(value)) {\n value = toRaw(value);\n }\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, _isShallow = false) {\n if (!_isShallow && !isShallow(value) && !isReadonly(value)) {\n value = toRaw(value);\n }\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(isReadonly2, isShallow2) {\n return function forEach(callback, thisArg) {\n const observed = this;\n const target = observed[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive;\n !isReadonly2 && 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, isReadonly2, isShallow2) {\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 = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive;\n !isReadonly2 && 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 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(value) {\n return add.call(this, value, true);\n },\n set(key, value) {\n return set.call(this, key, value, true);\n },\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 = [\n \"keys\",\n \"values\",\n \"entries\",\n Symbol.iterator\n ];\n iteratorMethods.forEach((method) => {\n mutableInstrumentations2[method] = createIterableMethod(method, false, false);\n readonlyInstrumentations2[method] = createIterableMethod(method, true, false);\n shallowInstrumentations2[method] = createIterableMethod(method, false, true);\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(isReadonly2, shallow) {\n const instrumentations = shallow ? isReadonly2 ? shallowReadonlyInstrumentations : shallowInstrumentations : isReadonly2 ? readonlyInstrumentations : mutableInstrumentations;\n return (target, key, receiver) => {\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\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 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 warn(\n `value cannot be made ${isReadonly2 ? \"readonly\" : \"reactive\"}: ${String(\n target\n )}`\n );\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 value ? !!value[\"__v_raw\"] : false;\n}\nfunction toRaw(observed) {\n const raw = observed && observed[\"__v_raw\"];\n return raw ? toRaw(raw) : observed;\n}\nfunction markRaw(value) {\n if (!hasOwn(value, \"__v_skip\") && Object.isExtensible(value)) {\n def(value, \"__v_skip\", true);\n }\n return value;\n}\nconst toReactive = (value) => isObject(value) ? reactive(value) : value;\nconst toReadonly = (value) => isObject(value) ? readonly(value) : value;\n\nfunction isRef(r) {\n return r ? r[\"__v_isRef\"] === true : false;\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, isShallow2) {\n this.dep = new Dep();\n this[\"__v_isRef\"] = true;\n this[\"__v_isShallow\"] = false;\n this._rawValue = isShallow2 ? value : toRaw(value);\n this._value = isShallow2 ? value : toReactive(value);\n this[\"__v_isShallow\"] = isShallow2;\n }\n get value() {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this.dep.track({\n target: this,\n type: \"get\",\n key: \"value\"\n });\n } else {\n this.dep.track();\n }\n return this._value;\n }\n set value(newValue) {\n const oldValue = this._rawValue;\n const useDirectValue = this[\"__v_isShallow\"] || isShallow(newValue) || isReadonly(newValue);\n newValue = useDirectValue ? newValue : toRaw(newValue);\n if (hasChanged(newValue, oldValue)) {\n this._rawValue = newValue;\n this._value = useDirectValue ? newValue : toReactive(newValue);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this.dep.trigger({\n target: this,\n type: \"set\",\n key: \"value\",\n newValue,\n oldValue\n });\n } else {\n this.dep.trigger();\n }\n }\n }\n}\nfunction triggerRef(ref2) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n ref2.dep.trigger({\n target: ref2,\n type: \"set\",\n key: \"value\",\n newValue: ref2._value\n });\n } else {\n ref2.dep.trigger();\n }\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) => key === \"__v_raw\" ? target : 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[\"__v_isRef\"] = true;\n this._value = void 0;\n const dep = this.dep = new Dep();\n const { get, set } = factory(dep.track.bind(dep), dep.trigger.bind(dep));\n this._get = get;\n this._set = set;\n }\n get value() {\n return this._value = 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 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 this._value = void 0;\n }\n get value() {\n const val = this._object[this._key];\n return this._value = 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 this._value = void 0;\n }\n get value() {\n return this._value = 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\nclass ComputedRefImpl {\n constructor(fn, setter, isSSR) {\n this.fn = fn;\n this.setter = setter;\n /**\n * @internal\n */\n this._value = void 0;\n /**\n * @internal\n */\n this.dep = new Dep(this);\n /**\n * @internal\n */\n this.__v_isRef = true;\n // TODO isolatedDeclarations \"__v_isReadonly\"\n // A computed is also a subscriber that tracks other deps\n /**\n * @internal\n */\n this.deps = void 0;\n /**\n * @internal\n */\n this.depsTail = void 0;\n /**\n * @internal\n */\n this.flags = 16;\n /**\n * @internal\n */\n this.globalVersion = globalVersion - 1;\n // for backwards compat\n this.effect = this;\n this[\"__v_isReadonly\"] = !setter;\n this.isSSR = isSSR;\n }\n /**\n * @internal\n */\n notify() {\n this.flags |= 16;\n if (!(this.flags & 8) && // avoid infinite self recursion\n activeSub !== this) {\n batch(this);\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\")) ;\n }\n get value() {\n const link = !!(process.env.NODE_ENV !== \"production\") ? this.dep.track({\n target: this,\n type: \"get\",\n key: \"value\"\n }) : this.dep.track();\n refreshComputed(this);\n if (link) {\n link.version = this.dep.version;\n }\n return this._value;\n }\n set value(newValue) {\n if (this.setter) {\n this.setter(newValue);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\"Write operation failed: computed value is readonly\");\n }\n }\n}\nfunction computed(getterOrOptions, debugOptions, isSSR = false) {\n let getter;\n let setter;\n if (isFunction(getterOrOptions)) {\n getter = getterOrOptions;\n } else {\n getter = getterOrOptions.get;\n setter = getterOrOptions.set;\n }\n const cRef = new ComputedRefImpl(getter, setter, isSSR);\n if (!!(process.env.NODE_ENV !== \"production\") && debugOptions && !isSSR) {\n cRef.onTrack = debugOptions.onTrack;\n cRef.onTrigger = debugOptions.onTrigger;\n }\n return cRef;\n}\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 \"IS_REF\": \"__v_isRef\"\n};\n\nconst WatchErrorCodes = {\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};\nconst INITIAL_WATCHER_VALUE = {};\nconst cleanupMap = /* @__PURE__ */ new WeakMap();\nlet activeWatcher = void 0;\nfunction getCurrentWatcher() {\n return activeWatcher;\n}\nfunction onWatcherCleanup(cleanupFn, failSilently = false, owner = activeWatcher) {\n if (owner) {\n let cleanups = cleanupMap.get(owner);\n if (!cleanups) cleanupMap.set(owner, cleanups = []);\n cleanups.push(cleanupFn);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn(\n `onWatcherCleanup() was called when there was no active watcher to associate with.`\n );\n }\n}\nfunction watch(source, cb, options = EMPTY_OBJ) {\n const { immediate, deep, once, scheduler, augmentJob, call } = options;\n const warnInvalidSource = (s) => {\n (options.onWarn || warn)(\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 reactiveGetter = (source2) => {\n if (deep) return source2;\n if (isShallow(source2) || deep === false || deep === 0)\n return traverse(source2, 1);\n return traverse(source2);\n };\n let effect;\n let getter;\n let cleanup;\n let boundCleanup;\n let forceTrigger = false;\n let isMultiSource = false;\n if (isRef(source)) {\n getter = () => source.value;\n forceTrigger = isShallow(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(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 call ? call(s, 2) : s();\n } else {\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(s);\n }\n });\n } else if (isFunction(source)) {\n if (cb) {\n getter = call ? () => call(source, 2) : source;\n } else {\n getter = () => {\n if (cleanup) {\n pauseTracking();\n try {\n cleanup();\n } finally {\n resetTracking();\n }\n }\n const currentEffect = activeWatcher;\n activeWatcher = effect;\n try {\n return call ? call(source, 3, [boundCleanup]) : source(boundCleanup);\n } finally {\n activeWatcher = currentEffect;\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 const depth = deep === true ? Infinity : deep;\n getter = () => traverse(baseGetter(), depth);\n }\n const scope = getCurrentScope();\n const watchHandle = () => {\n effect.stop();\n if (scope) {\n remove(scope.effects, effect);\n }\n };\n if (once && cb) {\n const _cb = cb;\n cb = (...args) => {\n _cb(...args);\n watchHandle();\n };\n }\n let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;\n const job = (immediateFirstRun) => {\n if (!(effect.flags & 1) || !effect.dirty && !immediateFirstRun) {\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))) {\n if (cleanup) {\n cleanup();\n }\n const currentWatcher = activeWatcher;\n activeWatcher = effect;\n try {\n const args = [\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 boundCleanup\n ];\n call ? call(cb, 3, args) : (\n // @ts-expect-error\n cb(...args)\n );\n oldValue = newValue;\n } finally {\n activeWatcher = currentWatcher;\n }\n }\n } else {\n effect.run();\n }\n };\n if (augmentJob) {\n augmentJob(job);\n }\n effect = new ReactiveEffect(getter);\n effect.scheduler = scheduler ? () => scheduler(job, false) : job;\n boundCleanup = (fn) => onWatcherCleanup(fn, false, effect);\n cleanup = effect.onStop = () => {\n const cleanups = cleanupMap.get(effect);\n if (cleanups) {\n if (call) {\n call(cleanups, 4);\n } else {\n for (const cleanup2 of cleanups) cleanup2();\n }\n cleanupMap.delete(effect);\n }\n };\n if (!!(process.env.NODE_ENV !== \"production\")) {\n effect.onTrack = options.onTrack;\n effect.onTrigger = options.onTrigger;\n }\n if (cb) {\n if (immediate) {\n job(true);\n } else {\n oldValue = effect.run();\n }\n } else if (scheduler) {\n scheduler(job.bind(null, true), true);\n } else {\n effect.run();\n }\n watchHandle.pause = effect.pause.bind(effect);\n watchHandle.resume = effect.resume.bind(effect);\n watchHandle.stop = watchHandle;\n return watchHandle;\n}\nfunction traverse(value, depth = Infinity, seen) {\n if (depth <= 0 || !isObject(value) || value[\"__v_skip\"]) {\n return value;\n }\n seen = seen || /* @__PURE__ */ new Set();\n if (seen.has(value)) {\n return value;\n }\n seen.add(value);\n depth--;\n if (isRef(value)) {\n traverse(value.value, depth, seen);\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n traverse(value[i], depth, seen);\n }\n } else if (isSet(value) || isMap(value)) {\n value.forEach((v) => {\n traverse(v, depth, seen);\n });\n } else if (isPlainObject(value)) {\n for (const key in value) {\n traverse(value[key], depth, seen);\n }\n for (const key of Object.getOwnPropertySymbols(value)) {\n if (Object.prototype.propertyIsEnumerable.call(value, key)) {\n traverse(value[key], depth, seen);\n }\n }\n }\n return value;\n}\n\nexport { ARRAY_ITERATE_KEY, EffectFlags, EffectScope, ITERATE_KEY, MAP_KEY_ITERATE_KEY, ReactiveEffect, ReactiveFlags, TrackOpTypes, TriggerOpTypes, WatchErrorCodes, computed, customRef, effect, effectScope, enableTracking, getCurrentScope, getCurrentWatcher, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onEffectCleanup, onScopeDispose, onWatcherCleanup, pauseTracking, proxyRefs, reactive, reactiveReadArray, readonly, ref, resetTracking, shallowReactive, shallowReadArray, shallowReadonly, shallowRef, stop, toRaw, toReactive, toReadonly, toRef, toRefs, toValue, track, traverse, trigger, triggerRef, unref, watch };\n","/**\n* @vue/runtime-core v3.5.6\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { pauseTracking, resetTracking, isRef, toRaw, traverse, shallowRef, readonly, isReactive, ref, isShallow, shallowReadArray, toReactive, shallowReadonly, track, reactive, shallowReactive, trigger, ReactiveEffect, watch as watch$1, customRef, isProxy, proxyRefs, markRaw, EffectScope, computed as computed$1, isReadonly } from '@vue/reactivity';\nexport { EffectScope, ReactiveEffect, TrackOpTypes, TriggerOpTypes, customRef, effect, effectScope, getCurrentScope, getCurrentWatcher, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, onWatcherCleanup, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, triggerRef, unref } from '@vue/reactivity';\nimport { isString, isFunction, isPromise, isArray, EMPTY_OBJ, NOOP, getGlobalThis, extend, isBuiltInDirective, hasOwn, remove, def, isOn, isReservedProp, normalizeClass, stringifyStyle, normalizeStyle, isKnownSvgAttr, isBooleanAttr, isKnownHtmlAttr, includeBooleanAttr, isRenderableAttrValue, getEscapedCssVarName, isObject, isRegExp, invokeArrayFns, toHandlerKey, capitalize, camelize, isGloballyAllowed, NO, hyphenate, EMPTY_ARR, toRawType, makeMap, hasChanged, looseToNumber, isModelListener, toNumber } 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}\nlet isWarning = false;\nfunction warn$1(msg, ...args) {\n if (isWarning) return;\n isWarning = true;\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 // eslint-disable-next-line no-restricted-syntax\n msg + args.map((a) => {\n var _a, _b;\n return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a);\n }).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 isWarning = false;\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\")) 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 \"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 \"COMPONENT_UPDATE\": 15,\n \"15\": \"COMPONENT_UPDATE\",\n \"APP_UNMOUNT_CLEANUP\": 16,\n \"16\": \"APP_UNMOUNT_CLEANUP\"\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\",\n [15]: \"component update\",\n [16]: \"app unmount cleanup function\"\n};\nfunction callWithErrorHandling(fn, instance, type, args) {\n try {\n return args ? fn(...args) : fn();\n } catch (err) {\n handleError(err, instance, type);\n }\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 if (isArray(fn)) {\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 } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `Invalid value type passed to callWithAsyncErrorHandling(): ${typeof fn}`\n );\n }\n}\nfunction handleError(err, instance, type, throwInDev = true) {\n const contextVNode = instance ? instance.vnode : null;\n const { errorHandler, throwUnhandledErrorInProduction } = instance && instance.appContext.config || EMPTY_OBJ;\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/error-reference/#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 if (errorHandler) {\n pauseTracking();\n callWithErrorHandling(errorHandler, null, 10, [\n err,\n exposedInstance,\n errorInfo\n ]);\n resetTracking();\n return;\n }\n }\n logError(err, type, contextVNode, throwInDev, throwUnhandledErrorInProduction);\n}\nfunction logError(err, type, contextVNode, throwInDev = true, throwInProd = false) {\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 if (throwInProd) {\n throw err;\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 = isFlushing ? flushIndex + 1 : 0;\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.flags & 2) {\n start = middle + 1;\n } else {\n end = middle;\n }\n }\n return start;\n}\nfunction queueJob(job) {\n if (!(job.flags & 1)) {\n const jobId = getId(job);\n const lastJob = queue[queue.length - 1];\n if (!lastJob || // fast path when the job id is larger than the tail\n !(job.flags & 2) && jobId >= getId(lastJob)) {\n queue.push(job);\n } else {\n queue.splice(findInsertionIndex(jobId), 0, job);\n }\n job.flags |= 1;\n queueFlush();\n }\n}\nfunction queueFlush() {\n if (!isFlushing && !isFlushPending) {\n isFlushPending = true;\n currentFlushPromise = resolvedPromise.then(flushJobs);\n }\n}\nfunction queuePostFlushCb(cb) {\n if (!isArray(cb)) {\n if (activePostFlushCbs && cb.id === -1) {\n activePostFlushCbs.splice(postFlushIndex + 1, 0, cb);\n } else if (!(cb.flags & 1)) {\n pendingPostFlushCbs.push(cb);\n cb.flags |= 1;\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.flags & 2) {\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 if (cb.flags & 4) {\n cb.flags &= ~1;\n }\n cb();\n cb.flags &= ~1;\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 const cb = activePostFlushCbs[postFlushIndex];\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n if (cb.flags & 4) {\n cb.flags &= ~1;\n }\n if (!(cb.flags & 8)) cb();\n cb.flags &= ~1;\n }\n activePostFlushCbs = null;\n postFlushIndex = 0;\n }\n}\nconst getId = (job) => job.id == null ? job.flags & 2 ? -1 : Infinity : job.id;\nfunction flushJobs(seen) {\n isFlushPending = false;\n isFlushing = true;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\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.flags & 8)) {\n if (!!(process.env.NODE_ENV !== \"production\") && check(job)) {\n continue;\n }\n if (job.flags & 4) {\n job.flags &= ~1;\n }\n callWithErrorHandling(\n job,\n job.i,\n job.i ? 15 : 14\n );\n job.flags &= ~1;\n }\n }\n } finally {\n for (; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job) {\n job.flags &= ~1;\n }\n }\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 const count = seen.get(fn) || 0;\n if (count > RECURSION_LIMIT) {\n const instance = fn.i;\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 }\n seen.set(fn, count + 1);\n return false;\n}\n\nlet isHmrUpdating = false;\nconst hmrDirtyComponents = /* @__PURE__ */ new Map();\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.update();\n isHmrUpdating = false;\n });\n}\nfunction reload(id, newComp) {\n const record = map.get(id);\n if (!record) return;\n newComp = normalizeClassComponent(newComp);\n updateComponentDef(record.initialDef, newComp);\n const instances = [...record.instances];\n for (let i = 0; i < instances.length; i++) {\n const instance = instances[i];\n const oldComp = normalizeClassComponent(instance.type);\n let dirtyInstances = hmrDirtyComponents.get(oldComp);\n if (!dirtyInstances) {\n if (oldComp !== record.initialDef) {\n updateComponentDef(oldComp, newComp);\n }\n hmrDirtyComponents.set(oldComp, dirtyInstances = /* @__PURE__ */ new Set());\n }\n dirtyInstances.add(instance);\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 dirtyInstances.add(instance);\n instance.ceReload(newComp.styles);\n dirtyInstances.delete(instance);\n } else if (instance.parent) {\n queueJob(() => {\n isHmrUpdating = true;\n instance.parent.update();\n isHmrUpdating = false;\n dirtyInstances.delete(instance);\n });\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 if (instance.root.ce && instance !== instance.root) {\n instance.root.ce._removeChildStyle(oldComp);\n }\n }\n queuePostFlushCb(() => {\n hmrDirtyComponents.clear();\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 // eslint-disable-next-line no-restricted-syntax\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(\"component:added\" /* COMPONENT_ADDED */);\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};\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\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(\"perf:start\" /* PERFORMANCE_START */);\nconst devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook(\"perf:end\" /* PERFORMANCE_END */);\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\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) 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\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 if (currentRenderingInstance === null) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`withDirectives can only be used inside render functions.`);\n return vnode;\n }\n const instance = getComponentPublicInstance(currentRenderingInstance);\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 TeleportEndKey = Symbol(\"_vte\");\nconst isTeleport = (type) => type.__isTeleport;\nconst isTeleportDisabled = (props) => props && (props.disabled || props.disabled === \"\");\nconst isTeleportDeferred = (props) => props && (props.defer || props.defer === \"\");\nconst isTargetSVG = (target) => typeof SVGElement !== \"undefined\" && target instanceof SVGElement;\nconst isTargetMathML = (target) => typeof MathMLElement === \"function\" && target instanceof MathMLElement;\nconst resolveTarget = (props, select) => {\n const targetSelector = props && props.to;\n if (isString(targetSelector)) {\n if (!select) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Current renderer does not support string target for Teleports. (missing querySelector renderer option)`\n );\n return null;\n } else {\n const target = select(targetSelector);\n if (!!(process.env.NODE_ENV !== \"production\") && !target && !isTeleportDisabled(props)) {\n warn$1(\n `Failed to locate Teleport target with selector \"${targetSelector}\". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.`\n );\n }\n return target;\n }\n } else {\n if (!!(process.env.NODE_ENV !== \"production\") && !targetSelector && !isTeleportDisabled(props)) {\n warn$1(`Invalid Teleport target: ${targetSelector}`);\n }\n return targetSelector;\n }\n};\nconst TeleportImpl = {\n name: \"Teleport\",\n __isTeleport: true,\n process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, internals) {\n const {\n mc: mountChildren,\n pc: patchChildren,\n pbc: patchBlockChildren,\n o: { insert, querySelector, createText, createComment }\n } = internals;\n const disabled = isTeleportDisabled(n2.props);\n let { shapeFlag, children, dynamicChildren } = n2;\n if (!!(process.env.NODE_ENV !== \"production\") && isHmrUpdating) {\n optimized = false;\n dynamicChildren = null;\n }\n if (n1 == null) {\n const placeholder = n2.el = !!(process.env.NODE_ENV !== \"production\") ? createComment(\"teleport start\") : createText(\"\");\n const mainAnchor = n2.anchor = !!(process.env.NODE_ENV !== \"production\") ? createComment(\"teleport end\") : createText(\"\");\n insert(placeholder, container, anchor);\n insert(mainAnchor, container, anchor);\n const mount = (container2, anchor2) => {\n if (shapeFlag & 16) {\n if (parentComponent && parentComponent.isCE) {\n parentComponent.ce._teleportTarget = container2;\n }\n mountChildren(\n children,\n container2,\n anchor2,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n };\n const mountToTarget = () => {\n const target = n2.target = resolveTarget(n2.props, querySelector);\n const targetAnchor = prepareAnchor(target, n2, createText, insert);\n if (target) {\n if (namespace !== \"svg\" && isTargetSVG(target)) {\n namespace = \"svg\";\n } else if (namespace !== \"mathml\" && isTargetMathML(target)) {\n namespace = \"mathml\";\n }\n if (!disabled) {\n mount(target, targetAnchor);\n updateCssVars(n2);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && !disabled) {\n warn$1(\n \"Invalid Teleport target on mount:\",\n target,\n `(${typeof target})`\n );\n }\n };\n if (disabled) {\n mount(container, mainAnchor);\n updateCssVars(n2);\n }\n if (isTeleportDeferred(n2.props)) {\n queuePostRenderEffect(mountToTarget, parentSuspense);\n } else {\n mountToTarget();\n }\n } else {\n n2.el = n1.el;\n n2.targetStart = n1.targetStart;\n const mainAnchor = n2.anchor = n1.anchor;\n const target = n2.target = n1.target;\n const targetAnchor = n2.targetAnchor = n1.targetAnchor;\n const wasDisabled = isTeleportDisabled(n1.props);\n const currentContainer = wasDisabled ? container : target;\n const currentAnchor = wasDisabled ? mainAnchor : targetAnchor;\n if (namespace === \"svg\" || isTargetSVG(target)) {\n namespace = \"svg\";\n } else if (namespace === \"mathml\" || isTargetMathML(target)) {\n namespace = \"mathml\";\n }\n if (dynamicChildren) {\n patchBlockChildren(\n n1.dynamicChildren,\n dynamicChildren,\n currentContainer,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds\n );\n traverseStaticChildren(n1, n2, true);\n } else if (!optimized) {\n patchChildren(\n n1,\n n2,\n currentContainer,\n currentAnchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n false\n );\n }\n if (disabled) {\n if (!wasDisabled) {\n moveTeleport(\n n2,\n container,\n mainAnchor,\n internals,\n 1\n );\n } else {\n if (n2.props && n1.props && n2.props.to !== n1.props.to) {\n n2.props.to = n1.props.to;\n }\n }\n } else {\n if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) {\n const nextTarget = n2.target = resolveTarget(\n n2.props,\n querySelector\n );\n if (nextTarget) {\n moveTeleport(\n n2,\n nextTarget,\n null,\n internals,\n 0\n );\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n \"Invalid Teleport target on update:\",\n target,\n `(${typeof target})`\n );\n }\n } else if (wasDisabled) {\n moveTeleport(\n n2,\n target,\n targetAnchor,\n internals,\n 1\n );\n }\n }\n updateCssVars(n2);\n }\n },\n remove(vnode, parentComponent, parentSuspense, { um: unmount, o: { remove: hostRemove } }, doRemove) {\n const {\n shapeFlag,\n children,\n anchor,\n targetStart,\n targetAnchor,\n target,\n props\n } = vnode;\n if (target) {\n hostRemove(targetStart);\n hostRemove(targetAnchor);\n }\n doRemove && hostRemove(anchor);\n if (shapeFlag & 16) {\n const shouldRemove = doRemove || !isTeleportDisabled(props);\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n unmount(\n child,\n parentComponent,\n parentSuspense,\n shouldRemove,\n !!child.dynamicChildren\n );\n }\n }\n },\n move: moveTeleport,\n hydrate: hydrateTeleport\n};\nfunction moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }, moveType = 2) {\n if (moveType === 0) {\n insert(vnode.targetAnchor, container, parentAnchor);\n }\n const { el, anchor, shapeFlag, children, props } = vnode;\n const isReorder = moveType === 2;\n if (isReorder) {\n insert(el, container, parentAnchor);\n }\n if (!isReorder || isTeleportDisabled(props)) {\n if (shapeFlag & 16) {\n for (let i = 0; i < children.length; i++) {\n move(\n children[i],\n container,\n parentAnchor,\n 2\n );\n }\n }\n }\n if (isReorder) {\n insert(anchor, container, parentAnchor);\n }\n}\nfunction hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, {\n o: { nextSibling, parentNode, querySelector, insert, createText }\n}, hydrateChildren) {\n const target = vnode.target = resolveTarget(\n vnode.props,\n querySelector\n );\n if (target) {\n const targetNode = target._lpa || target.firstChild;\n if (vnode.shapeFlag & 16) {\n if (isTeleportDisabled(vnode.props)) {\n vnode.anchor = hydrateChildren(\n nextSibling(node),\n vnode,\n parentNode(node),\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n vnode.targetStart = targetNode;\n vnode.targetAnchor = targetNode && nextSibling(targetNode);\n } else {\n vnode.anchor = nextSibling(node);\n let targetAnchor = targetNode;\n while (targetAnchor) {\n if (targetAnchor && targetAnchor.nodeType === 8) {\n if (targetAnchor.data === \"teleport start anchor\") {\n vnode.targetStart = targetAnchor;\n } else if (targetAnchor.data === \"teleport anchor\") {\n vnode.targetAnchor = targetAnchor;\n target._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor);\n break;\n }\n }\n targetAnchor = nextSibling(targetAnchor);\n }\n if (!vnode.targetAnchor) {\n prepareAnchor(target, vnode, createText, insert);\n }\n hydrateChildren(\n targetNode && nextSibling(targetNode),\n vnode,\n target,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n }\n updateCssVars(vnode);\n }\n return vnode.anchor && nextSibling(vnode.anchor);\n}\nconst Teleport = TeleportImpl;\nfunction updateCssVars(vnode) {\n const ctx = vnode.ctx;\n if (ctx && ctx.ut) {\n let node = vnode.targetStart;\n while (node && node !== vnode.targetAnchor) {\n if (node.nodeType === 1) node.setAttribute(\"data-v-owner\", ctx.uid);\n node = node.nextSibling;\n }\n ctx.ut();\n }\n}\nfunction prepareAnchor(target, vnode, createText, insert) {\n const targetStart = vnode.targetStart = createText(\"\");\n const targetAnchor = vnode.targetAnchor = createText(\"\");\n targetStart[TeleportEndKey] = targetAnchor;\n if (target) {\n insert(targetStart, target);\n insert(targetAnchor, target);\n }\n return targetAnchor;\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 recursiveGetSubtree = (instance) => {\n const subTree = instance.subTree;\n return subTree.component ? recursiveGetSubtree(subTree.component) : subTree;\n};\nconst BaseTransitionImpl = {\n name: `BaseTransition`,\n props: BaseTransitionPropsValidators,\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const state = useTransitionState();\n return () => {\n const children = slots.default && getTransitionRawChildren(slots.default(), true);\n if (!children || !children.length) {\n return;\n }\n const child = findNonCommentChild(children);\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 <transition> mode: ${mode}`);\n }\n if (state.isLeaving) {\n return emptyPlaceholder(child);\n }\n const innerChild = getInnerChild$1(child);\n if (!innerChild) {\n return emptyPlaceholder(child);\n }\n let enterHooks = resolveTransitionHooks(\n innerChild,\n rawProps,\n state,\n instance,\n // #11061, ensure enterHooks is fresh after clone\n (hooks) => enterHooks = hooks\n );\n if (innerChild.type !== Comment) {\n setTransitionHooks(innerChild, enterHooks);\n }\n const oldChild = instance.subTree;\n const oldInnerChild = oldChild && getInnerChild$1(oldChild);\n if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(innerChild, oldInnerChild) && recursiveGetSubtree(instance).type !== Comment) {\n const leavingHooks = resolveTransitionHooks(\n oldInnerChild,\n rawProps,\n state,\n instance\n );\n setTransitionHooks(oldInnerChild, leavingHooks);\n if (mode === \"out-in\" && innerChild.type !== Comment) {\n state.isLeaving = true;\n leavingHooks.afterLeave = () => {\n state.isLeaving = false;\n if (!(instance.job.flags & 8)) {\n instance.update();\n }\n delete leavingHooks.afterLeave;\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};\nfunction findNonCommentChild(children) {\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 \"<transition> can only be used on a single element or component. Use <transition-group> for lists.\"\n );\n break;\n }\n child = c;\n hasFound = true;\n if (!!!(process.env.NODE_ENV !== \"production\")) break;\n }\n }\n }\n return child;\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, postClone) {\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)) 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) 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) 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 const hooks2 = resolveTransitionHooks(\n vnode2,\n props,\n state,\n instance,\n postClone\n );\n if (postClone) postClone(hooks2);\n return hooks2;\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 getInnerChild$1(vnode) {\n if (!isKeepAlive(vnode)) {\n if (isTeleport(vnode.type) && vnode.children) {\n return findNonCommentChild(vnode.children);\n }\n return vnode;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && vnode.component) {\n return vnode.component.subTree;\n }\n const { shapeFlag, children } = vnode;\n if (children) {\n if (shapeFlag & 16) {\n return children[0];\n }\n if (shapeFlag & 32 && isFunction(children.default)) {\n return children.default();\n }\n }\n}\nfunction setTransitionHooks(vnode, hooks) {\n if (vnode.shapeFlag & 6 && vnode.component) {\n vnode.transition = hooks;\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) 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 // #8236: 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\nfunction useId() {\n const i = getCurrentInstance();\n if (i) {\n return (i.appContext.config.idPrefix || \"v\") + \"-\" + i.ids[0] + i.ids[1]++;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `useId() is called when there is no active component instance to be associated with.`\n );\n }\n}\nfunction markAsyncBoundary(instance) {\n instance.ids = [instance.ids[0] + instance.ids[2]++ + \"-\", 0, 0];\n}\n\nconst knownTemplateRefs = /* @__PURE__ */ new WeakSet();\nfunction useTemplateRef(key) {\n const i = getCurrentInstance();\n const r = shallowRef(null);\n if (i) {\n const refs = i.refs === EMPTY_OBJ ? i.refs = {} : i.refs;\n let desc;\n if (!!(process.env.NODE_ENV !== \"production\") && (desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable) {\n warn$1(`useTemplateRef('${key}') already exists.`);\n } else {\n Object.defineProperty(refs, key, {\n enumerable: true,\n get: () => r.value,\n set: (val) => r.value = val\n });\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `useTemplateRef() is called when there is no active component instance to be associated with.`\n );\n }\n const ret = !!(process.env.NODE_ENV !== \"production\") ? readonly(r) : r;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n knownTemplateRefs.add(ret);\n }\n return ret;\n}\n\nfunction setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {\n if (isArray(rawRef)) {\n rawRef.forEach(\n (r, i) => setRef(\n r,\n oldRawRef && (isArray(oldRawRef) ? oldRawRef[i] : oldRawRef),\n parentSuspense,\n vnode,\n isUnmount\n )\n );\n return;\n }\n if (isAsyncWrapper(vnode) && !isUnmount) {\n return;\n }\n const refValue = vnode.shapeFlag & 4 ? getComponentPublicInstance(vnode.component) : vnode.el;\n const value = isUnmount ? null : refValue;\n const { i: owner, r: ref } = rawRef;\n if (!!(process.env.NODE_ENV !== \"production\") && !owner) {\n warn$1(\n `Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.`\n );\n return;\n }\n const oldRef = oldRawRef && oldRawRef.r;\n const refs = owner.refs === EMPTY_OBJ ? owner.refs = {} : owner.refs;\n const setupState = owner.setupState;\n const rawSetupState = toRaw(setupState);\n const canSetSetupRef = setupState === EMPTY_OBJ ? () => false : (key) => {\n if (!!(process.env.NODE_ENV !== \"production\") && knownTemplateRefs.has(rawSetupState[key])) {\n return false;\n }\n return hasOwn(rawSetupState, key);\n };\n if (oldRef != null && oldRef !== ref) {\n if (isString(oldRef)) {\n refs[oldRef] = null;\n if (canSetSetupRef(oldRef)) {\n setupState[oldRef] = null;\n }\n } else if (isRef(oldRef)) {\n oldRef.value = null;\n }\n }\n if (isFunction(ref)) {\n callWithErrorHandling(ref, owner, 12, [value, refs]);\n } else {\n const _isString = isString(ref);\n const _isRef = isRef(ref);\n if (_isString || _isRef) {\n const doSet = () => {\n if (rawRef.f) {\n const existing = _isString ? canSetSetupRef(ref) ? setupState[ref] : refs[ref] : ref.value;\n if (isUnmount) {\n isArray(existing) && remove(existing, refValue);\n } else {\n if (!isArray(existing)) {\n if (_isString) {\n refs[ref] = [refValue];\n if (canSetSetupRef(ref)) {\n setupState[ref] = refs[ref];\n }\n } else {\n ref.value = [refValue];\n if (rawRef.k) refs[rawRef.k] = ref.value;\n }\n } else if (!existing.includes(refValue)) {\n existing.push(refValue);\n }\n }\n } else if (_isString) {\n refs[ref] = value;\n if (canSetSetupRef(ref)) {\n setupState[ref] = value;\n }\n } else if (_isRef) {\n ref.value = value;\n if (rawRef.k) refs[rawRef.k] = value;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Invalid template ref type:\", ref, `(${typeof ref})`);\n }\n };\n if (value) {\n doSet.id = -1;\n queuePostRenderEffect(doSet, parentSuspense);\n } else {\n doSet();\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Invalid template ref type:\", ref, `(${typeof ref})`);\n }\n }\n}\n\nlet hasLoggedMismatchError = false;\nconst logMismatchError = () => {\n if (hasLoggedMismatchError) {\n return;\n }\n console.error(\"Hydration completed but contains mismatches.\");\n hasLoggedMismatchError = true;\n};\nconst isSVGContainer = (container) => container.namespaceURI.includes(\"svg\") && container.tagName !== \"foreignObject\";\nconst isMathMLContainer = (container) => container.namespaceURI.includes(\"MathML\");\nconst getContainerType = (container) => {\n if (container.nodeType !== 1) return void 0;\n if (isSVGContainer(container)) return \"svg\";\n if (isMathMLContainer(container)) return \"mathml\";\n return void 0;\n};\nconst isComment = (node) => node.nodeType === 8;\nfunction createHydrationFunctions(rendererInternals) {\n const {\n mt: mountComponent,\n p: patch,\n o: {\n patchProp,\n createText,\n nextSibling,\n parentNode,\n remove,\n insert,\n createComment\n }\n } = rendererInternals;\n const hydrate = (vnode, container) => {\n if (!container.hasChildNodes()) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Attempting to hydrate existing markup but container is empty. Performing full mount instead.`\n );\n patch(null, vnode, container);\n flushPostFlushCbs();\n container._vnode = vnode;\n return;\n }\n hydrateNode(container.firstChild, vnode, null, null, null);\n flushPostFlushCbs();\n container._vnode = vnode;\n };\n const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => {\n optimized = optimized || !!vnode.dynamicChildren;\n const isFragmentStart = isComment(node) && node.data === \"[\";\n const onMismatch = () => handleMismatch(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n isFragmentStart\n );\n const { type, ref, shapeFlag, patchFlag } = vnode;\n let domType = node.nodeType;\n vnode.el = node;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n def(node, \"__vnode\", vnode, true);\n def(node, \"__vueParentComponent\", parentComponent, true);\n }\n if (patchFlag === -2) {\n optimized = false;\n vnode.dynamicChildren = null;\n }\n let nextNode = null;\n switch (type) {\n case Text:\n if (domType !== 3) {\n if (vnode.children === \"\") {\n insert(vnode.el = createText(\"\"), parentNode(node), node);\n nextNode = node;\n } else {\n nextNode = onMismatch();\n }\n } else {\n if (node.data !== vnode.children) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration text mismatch in`,\n node.parentNode,\n `\n - rendered on server: ${JSON.stringify(\n node.data\n )}\n - expected on client: ${JSON.stringify(vnode.children)}`\n );\n logMismatchError();\n node.data = vnode.children;\n }\n nextNode = nextSibling(node);\n }\n break;\n case Comment:\n if (isTemplateNode(node)) {\n nextNode = nextSibling(node);\n replaceNode(\n vnode.el = node.content.firstChild,\n node,\n parentComponent\n );\n } else if (domType !== 8 || isFragmentStart) {\n nextNode = onMismatch();\n } else {\n nextNode = nextSibling(node);\n }\n break;\n case Static:\n if (isFragmentStart) {\n node = nextSibling(node);\n domType = node.nodeType;\n }\n if (domType === 1 || domType === 3) {\n nextNode = node;\n const needToAdoptContent = !vnode.children.length;\n for (let i = 0; i < vnode.staticCount; i++) {\n if (needToAdoptContent)\n vnode.children += nextNode.nodeType === 1 ? nextNode.outerHTML : nextNode.data;\n if (i === vnode.staticCount - 1) {\n vnode.anchor = nextNode;\n }\n nextNode = nextSibling(nextNode);\n }\n return isFragmentStart ? nextSibling(nextNode) : nextNode;\n } else {\n onMismatch();\n }\n break;\n case Fragment:\n if (!isFragmentStart) {\n nextNode = onMismatch();\n } else {\n nextNode = hydrateFragment(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n break;\n default:\n if (shapeFlag & 1) {\n if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode(node)) {\n nextNode = onMismatch();\n } else {\n nextNode = hydrateElement(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n } else if (shapeFlag & 6) {\n vnode.slotScopeIds = slotScopeIds;\n const container = parentNode(node);\n if (isFragmentStart) {\n nextNode = locateClosingAnchor(node);\n } else if (isComment(node) && node.data === \"teleport start\") {\n nextNode = locateClosingAnchor(node, node.data, \"teleport end\");\n } else {\n nextNode = nextSibling(node);\n }\n mountComponent(\n vnode,\n container,\n null,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n optimized\n );\n if (isAsyncWrapper(vnode)) {\n let subTree;\n if (isFragmentStart) {\n subTree = createVNode(Fragment);\n subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild;\n } else {\n subTree = node.nodeType === 3 ? createTextVNode(\"\") : createVNode(\"div\");\n }\n subTree.el = node;\n vnode.component.subTree = subTree;\n }\n } else if (shapeFlag & 64) {\n if (domType !== 8) {\n nextNode = onMismatch();\n } else {\n nextNode = vnode.type.hydrate(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized,\n rendererInternals,\n hydrateChildren\n );\n }\n } else if (shapeFlag & 128) {\n nextNode = vnode.type.hydrate(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n getContainerType(parentNode(node)),\n slotScopeIds,\n optimized,\n rendererInternals,\n hydrateNode\n );\n } else if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) {\n warn$1(\"Invalid HostVNode type:\", type, `(${typeof type})`);\n }\n }\n if (ref != null) {\n setRef(ref, null, parentSuspense, vnode);\n }\n return nextNode;\n };\n const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n optimized = optimized || !!vnode.dynamicChildren;\n const { type, props, patchFlag, shapeFlag, dirs, transition } = vnode;\n const forcePatch = type === \"input\" || type === \"option\";\n if (!!(process.env.NODE_ENV !== \"production\") || forcePatch || patchFlag !== -1) {\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"created\");\n }\n let needCallTransitionHooks = false;\n if (isTemplateNode(el)) {\n needCallTransitionHooks = needTransition(parentSuspense, transition) && parentComponent && parentComponent.vnode.props && parentComponent.vnode.props.appear;\n const content = el.content.firstChild;\n if (needCallTransitionHooks) {\n transition.beforeEnter(content);\n }\n replaceNode(content, el, parentComponent);\n vnode.el = el = content;\n }\n if (shapeFlag & 16 && // skip if element has innerHTML / textContent\n !(props && (props.innerHTML || props.textContent))) {\n let next = hydrateChildren(\n el.firstChild,\n vnode,\n el,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n let hasWarned = false;\n while (next) {\n if (!isMismatchAllowed(el, 1 /* CHILDREN */)) {\n if ((!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && !hasWarned) {\n warn$1(\n `Hydration children mismatch on`,\n el,\n `\nServer rendered element contains more child nodes than client vdom.`\n );\n hasWarned = true;\n }\n logMismatchError();\n }\n const cur = next;\n next = next.nextSibling;\n remove(cur);\n }\n } else if (shapeFlag & 8) {\n let clientText = vnode.children;\n if (clientText[0] === \"\\n\" && (el.tagName === \"PRE\" || el.tagName === \"TEXTAREA\")) {\n clientText = clientText.slice(1);\n }\n if (el.textContent !== clientText) {\n if (!isMismatchAllowed(el, 0 /* TEXT */)) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration text content mismatch on`,\n el,\n `\n - rendered on server: ${el.textContent}\n - expected on client: ${vnode.children}`\n );\n logMismatchError();\n }\n el.textContent = vnode.children;\n }\n }\n if (props) {\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__ || forcePatch || !optimized || patchFlag & (16 | 32)) {\n const isCustomElement = el.tagName.includes(\"-\");\n for (const key in props) {\n if ((!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && // #11189 skip if this node has directives that have created hooks\n // as it could have mutated the DOM in any possible way\n !(dirs && dirs.some((d) => d.dir.created)) && propHasMismatch(el, key, props[key], vnode, parentComponent)) {\n logMismatchError();\n }\n if (forcePatch && (key.endsWith(\"value\") || key === \"indeterminate\") || isOn(key) && !isReservedProp(key) || // force hydrate v-bind with .prop modifiers\n key[0] === \".\" || isCustomElement) {\n patchProp(el, key, null, props[key], void 0, parentComponent);\n }\n }\n } else if (props.onClick) {\n patchProp(\n el,\n \"onClick\",\n null,\n props.onClick,\n void 0,\n parentComponent\n );\n } else if (patchFlag & 4 && isReactive(props.style)) {\n for (const key in props.style) props.style[key];\n }\n }\n let vnodeHooks;\n if (vnodeHooks = props && props.onVnodeBeforeMount) {\n invokeVNodeHook(vnodeHooks, parentComponent, vnode);\n }\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"beforeMount\");\n }\n if ((vnodeHooks = props && props.onVnodeMounted) || dirs || needCallTransitionHooks) {\n queueEffectWithSuspense(() => {\n vnodeHooks && invokeVNodeHook(vnodeHooks, parentComponent, vnode);\n needCallTransitionHooks && transition.enter(el);\n dirs && invokeDirectiveHook(vnode, null, parentComponent, \"mounted\");\n }, parentSuspense);\n }\n }\n return el.nextSibling;\n };\n const hydrateChildren = (node, parentVNode, container, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n optimized = optimized || !!parentVNode.dynamicChildren;\n const children = parentVNode.children;\n const l = children.length;\n let hasWarned = false;\n for (let i = 0; i < l; i++) {\n const vnode = optimized ? children[i] : children[i] = normalizeVNode(children[i]);\n const isText = vnode.type === Text;\n if (node) {\n if (isText && !optimized) {\n if (i + 1 < l && normalizeVNode(children[i + 1]).type === Text) {\n insert(\n createText(\n node.data.slice(vnode.children.length)\n ),\n container,\n nextSibling(node)\n );\n node.data = vnode.children;\n }\n }\n node = hydrateNode(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n } else if (isText && !vnode.children) {\n insert(vnode.el = createText(\"\"), container);\n } else {\n if (!isMismatchAllowed(container, 1 /* CHILDREN */)) {\n if ((!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && !hasWarned) {\n warn$1(\n `Hydration children mismatch on`,\n container,\n `\nServer rendered element contains fewer child nodes than client vdom.`\n );\n hasWarned = true;\n }\n logMismatchError();\n }\n patch(\n null,\n vnode,\n container,\n null,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n slotScopeIds\n );\n }\n }\n return node;\n };\n const hydrateFragment = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n const { slotScopeIds: fragmentSlotScopeIds } = vnode;\n if (fragmentSlotScopeIds) {\n slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;\n }\n const container = parentNode(node);\n const next = hydrateChildren(\n nextSibling(node),\n vnode,\n container,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n if (next && isComment(next) && next.data === \"]\") {\n return nextSibling(vnode.anchor = next);\n } else {\n logMismatchError();\n insert(vnode.anchor = createComment(`]`), container, next);\n return next;\n }\n };\n const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => {\n if (!isMismatchAllowed(node.parentElement, 1 /* CHILDREN */)) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration node mismatch:\n- rendered on server:`,\n node,\n node.nodeType === 3 ? `(text)` : isComment(node) && node.data === \"[\" ? `(start of fragment)` : ``,\n `\n- expected on client:`,\n vnode.type\n );\n logMismatchError();\n }\n vnode.el = null;\n if (isFragment) {\n const end = locateClosingAnchor(node);\n while (true) {\n const next2 = nextSibling(node);\n if (next2 && next2 !== end) {\n remove(next2);\n } else {\n break;\n }\n }\n }\n const next = nextSibling(node);\n const container = parentNode(node);\n remove(node);\n patch(\n null,\n vnode,\n container,\n next,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n slotScopeIds\n );\n return next;\n };\n const locateClosingAnchor = (node, open = \"[\", close = \"]\") => {\n let match = 0;\n while (node) {\n node = nextSibling(node);\n if (node && isComment(node)) {\n if (node.data === open) match++;\n if (node.data === close) {\n if (match === 0) {\n return nextSibling(node);\n } else {\n match--;\n }\n }\n }\n }\n return node;\n };\n const replaceNode = (newNode, oldNode, parentComponent) => {\n const parentNode2 = oldNode.parentNode;\n if (parentNode2) {\n parentNode2.replaceChild(newNode, oldNode);\n }\n let parent = parentComponent;\n while (parent) {\n if (parent.vnode.el === oldNode) {\n parent.vnode.el = parent.subTree.el = newNode;\n }\n parent = parent.parent;\n }\n };\n const isTemplateNode = (node) => {\n return node.nodeType === 1 && node.tagName === \"TEMPLATE\";\n };\n return [hydrate, hydrateNode];\n}\nfunction propHasMismatch(el, key, clientValue, vnode, instance) {\n let mismatchType;\n let mismatchKey;\n let actual;\n let expected;\n if (key === \"class\") {\n actual = el.getAttribute(\"class\");\n expected = normalizeClass(clientValue);\n if (!isSetEqual(toClassSet(actual || \"\"), toClassSet(expected))) {\n mismatchType = 2 /* CLASS */;\n mismatchKey = `class`;\n }\n } else if (key === \"style\") {\n actual = el.getAttribute(\"style\") || \"\";\n expected = isString(clientValue) ? clientValue : stringifyStyle(normalizeStyle(clientValue));\n const actualMap = toStyleMap(actual);\n const expectedMap = toStyleMap(expected);\n if (vnode.dirs) {\n for (const { dir, value } of vnode.dirs) {\n if (dir.name === \"show\" && !value) {\n expectedMap.set(\"display\", \"none\");\n }\n }\n }\n if (instance) {\n resolveCssVars(instance, vnode, expectedMap);\n }\n if (!isMapEqual(actualMap, expectedMap)) {\n mismatchType = 3 /* STYLE */;\n mismatchKey = \"style\";\n }\n } else if (el instanceof SVGElement && isKnownSvgAttr(key) || el instanceof HTMLElement && (isBooleanAttr(key) || isKnownHtmlAttr(key))) {\n if (isBooleanAttr(key)) {\n actual = el.hasAttribute(key);\n expected = includeBooleanAttr(clientValue);\n } else if (clientValue == null) {\n actual = el.hasAttribute(key);\n expected = false;\n } else {\n if (el.hasAttribute(key)) {\n actual = el.getAttribute(key);\n } else if (key === \"value\" && el.tagName === \"TEXTAREA\") {\n actual = el.value;\n } else {\n actual = false;\n }\n expected = isRenderableAttrValue(clientValue) ? String(clientValue) : false;\n }\n if (actual !== expected) {\n mismatchType = 4 /* ATTRIBUTE */;\n mismatchKey = key;\n }\n }\n if (mismatchType != null && !isMismatchAllowed(el, mismatchType)) {\n const format = (v) => v === false ? `(not rendered)` : `${mismatchKey}=\"${v}\"`;\n const preSegment = `Hydration ${MismatchTypeString[mismatchType]} mismatch on`;\n const postSegment = `\n - rendered on server: ${format(actual)}\n - expected on client: ${format(expected)}\n Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead.\n You should fix the source of the mismatch.`;\n {\n warn$1(preSegment, el, postSegment);\n }\n return true;\n }\n return false;\n}\nfunction toClassSet(str) {\n return new Set(str.trim().split(/\\s+/));\n}\nfunction isSetEqual(a, b) {\n if (a.size !== b.size) {\n return false;\n }\n for (const s of a) {\n if (!b.has(s)) {\n return false;\n }\n }\n return true;\n}\nfunction toStyleMap(str) {\n const styleMap = /* @__PURE__ */ new Map();\n for (const item of str.split(\";\")) {\n let [key, value] = item.split(\":\");\n key = key.trim();\n value = value && value.trim();\n if (key && value) {\n styleMap.set(key, value);\n }\n }\n return styleMap;\n}\nfunction isMapEqual(a, b) {\n if (a.size !== b.size) {\n return false;\n }\n for (const [key, value] of a) {\n if (value !== b.get(key)) {\n return false;\n }\n }\n return true;\n}\nfunction resolveCssVars(instance, vnode, expectedMap) {\n const root = instance.subTree;\n if (instance.getCssVars && (vnode === root || root && root.type === Fragment && root.children.includes(vnode))) {\n const cssVars = instance.getCssVars();\n for (const key in cssVars) {\n expectedMap.set(\n `--${getEscapedCssVarName(key, false)}`,\n String(cssVars[key])\n );\n }\n }\n if (vnode === root && instance.parent) {\n resolveCssVars(instance.parent, instance.vnode, expectedMap);\n }\n}\nconst allowMismatchAttr = \"data-allow-mismatch\";\nconst MismatchTypeString = {\n [0 /* TEXT */]: \"text\",\n [1 /* CHILDREN */]: \"children\",\n [2 /* CLASS */]: \"class\",\n [3 /* STYLE */]: \"style\",\n [4 /* ATTRIBUTE */]: \"attribute\"\n};\nfunction isMismatchAllowed(el, allowedType) {\n if (allowedType === 0 /* TEXT */ || allowedType === 1 /* CHILDREN */) {\n while (el && !el.hasAttribute(allowMismatchAttr)) {\n el = el.parentElement;\n }\n }\n const allowedAttr = el && el.getAttribute(allowMismatchAttr);\n if (allowedAttr == null) {\n return false;\n } else if (allowedAttr === \"\") {\n return true;\n } else {\n const list = allowedAttr.split(\",\");\n if (allowedType === 0 /* TEXT */ && list.includes(\"children\")) {\n return true;\n }\n return allowedAttr.split(\",\").includes(MismatchTypeString[allowedType]);\n }\n}\n\nconst hydrateOnIdle = (timeout = 1e4) => (hydrate) => {\n const id = requestIdleCallback(hydrate, { timeout });\n return () => cancelIdleCallback(id);\n};\nconst hydrateOnVisible = (opts) => (hydrate, forEach) => {\n const ob = new IntersectionObserver((entries) => {\n for (const e of entries) {\n if (!e.isIntersecting) continue;\n ob.disconnect();\n hydrate();\n break;\n }\n }, opts);\n forEach((el) => ob.observe(el));\n return () => ob.disconnect();\n};\nconst hydrateOnMediaQuery = (query) => (hydrate) => {\n if (query) {\n const mql = matchMedia(query);\n if (mql.matches) {\n hydrate();\n } else {\n mql.addEventListener(\"change\", hydrate, { once: true });\n return () => mql.removeEventListener(\"change\", hydrate);\n }\n }\n};\nconst hydrateOnInteraction = (interactions = []) => (hydrate, forEach) => {\n if (isString(interactions)) interactions = [interactions];\n let hasHydrated = false;\n const doHydrate = (e) => {\n if (!hasHydrated) {\n hasHydrated = true;\n teardown();\n hydrate();\n e.target.dispatchEvent(new e.constructor(e.type, e));\n }\n };\n const teardown = () => {\n forEach((el) => {\n for (const i of interactions) {\n el.removeEventListener(i, doHydrate);\n }\n });\n };\n forEach((el) => {\n for (const i of interactions) {\n el.addEventListener(i, doHydrate, { once: true });\n }\n });\n return teardown;\n};\nfunction forEachElement(node, cb) {\n if (isComment(node) && node.data === \"[\") {\n let depth = 1;\n let next = node.nextSibling;\n while (next) {\n if (next.nodeType === 1) {\n cb(next);\n } else if (isComment(next)) {\n if (next.data === \"]\") {\n if (--depth === 0) break;\n } else if (next.data === \"[\") {\n depth++;\n }\n }\n next = next.nextSibling;\n }\n } else {\n cb(node);\n }\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 hydrate: hydrateStrategy,\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 __asyncHydrate(el, instance, hydrate) {\n const doHydrate = hydrateStrategy ? () => {\n const teardown = hydrateStrategy(\n hydrate,\n (cb) => forEachElement(el, cb)\n );\n if (teardown) {\n (instance.bum || (instance.bum = [])).push(teardown);\n }\n } : hydrate;\n if (resolvedComp) {\n doHydrate();\n } else {\n load().then(() => !instance.isUnmounted && doHydrate());\n }\n },\n get __asyncResolved() {\n return resolvedComp;\n },\n setup() {\n const instance = currentInstance;\n markAsyncBoundary(instance);\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.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 invalidateMount(instance2.m);\n invalidateMount(instance2.a);\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(name)) {\n pruneCacheEntry(key);\n }\n });\n }\n function pruneCacheEntry(key) {\n const cached = cache.get(key);\n if (cached && (!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 if (isSuspense(instance.subTree.type)) {\n queuePostRenderEffect(() => {\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n }, instance.subTree.suspense);\n } else {\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n }\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 current = 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 if (vnode.type === Comment) {\n current = null;\n return vnode;\n }\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 vnode.shapeFlag &= ~256;\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 pattern.lastIndex = 0;\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 pauseTracking();\n const reset = setCurrentInstance(target);\n const res = callWithAsyncErrorHandling(hook, target, type, args);\n reset();\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 if (!isInSSRComponentSetup || lifecycle === \"sp\") {\n injectHook(lifecycle, (...args) => hook(...args), target);\n }\n};\nconst onBeforeMount = createHook(\"bm\");\nconst onMounted = createHook(\"m\");\nconst onBeforeUpdate = createHook(\n \"bu\"\n);\nconst onUpdated = createHook(\"u\");\nconst onBeforeUnmount = createHook(\n \"bum\"\n);\nconst onUnmounted = createHook(\"um\");\nconst onServerPrefetch = createHook(\n \"sp\"\n);\nconst onRenderTriggered = createHook(\"rtg\");\nconst onRenderTracked = createHook(\"rtc\");\nfunction onErrorCaptured(hook, target = currentInstance) {\n injectHook(\"ec\", hook, target);\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\nfunction renderList(source, renderItem, cache, index) {\n let ret;\n const cached = cache && cache[index];\n const sourceIsArray = isArray(source);\n if (sourceIsArray || isString(source)) {\n const sourceIsReactiveArray = sourceIsArray && isReactive(source);\n let needsWrap = false;\n if (sourceIsReactiveArray) {\n needsWrap = !isShallow(source);\n source = shallowReadArray(source);\n }\n ret = new Array(source.length);\n for (let i = 0, l = source.length; i < l; i++) {\n ret[i] = renderItem(\n needsWrap ? toReactive(source[i]) : source[i],\n i,\n void 0,\n cached && cached[i]\n );\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) 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.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce) {\n if (name !== \"default\") props.name = name;\n return openBlock(), createBlock(\n Fragment,\n null,\n [createVNode(\"slot\", props, fallback && fallback())],\n 64\n );\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}`) + // #7256 force differentiate fallback content from actual content\n (!validSlotContent && fallback ? \"_fb\" : \"\")\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)) return true;\n if (child.type === Comment) 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) return null;\n if (isStatefulComponent(i)) return getComponentPublicInstance(i);\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 $host: (i) => i.ce,\n $emit: (i) => i.emit,\n $options: (i) => __VUE_OPTIONS_API__ ? resolveMergedOptions(i) : i.type,\n $forceUpdate: (i) => i.f || (i.f = () => {\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 if (key === \"__v_skip\") {\n return true;\n }\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.attrs, \"get\", \"\");\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 <script setup> binding \"${key}\" from Options API.`);\n return false;\n } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\n data[key] = value;\n return true;\n } else if (hasOwn(instance.props, key)) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`Attempting to mutate prop \"${key}\". Props are readonly.`);\n return false;\n }\n if (key[0] === \"$\" && key.slice(1) in instance) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Attempting to mutate public property \"${key}\". Properties starting with $ are reserved and readonly.`\n );\n return false;\n } else {\n if (!!(process.env.NODE_ENV !== \"production\") && key in instance.appContext.config.globalProperties) {\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n value\n });\n } else {\n ctx[key] = value;\n }\n }\n return true;\n },\n has({\n _: { data, setupState, accessCache, ctx, appContext, propsOptions }\n }, key) {\n let normalizedProps;\n return !!accessCache[key] || data !== EMPTY_OBJ && hasOwn(data, key) || hasSetupBinding(setupState, key) || (normalizedProps = propsOptions[0]) && hasOwn(normalizedProps, key) || hasOwn(ctx, key) || hasOwn(publicPropertiesMap, key) || hasOwn(appContext.config.globalProperties, key);\n },\n defineProperty(target, key, descriptor) {\n if (descriptor.get != null) {\n target._.accessCache[key] = 0;\n } else if (hasOwn(descriptor, \"value\")) {\n this.set(target, key, descriptor.value, null);\n }\n return Reflect.defineProperty(target, key, descriptor);\n }\n};\nif (!!(process.env.NODE_ENV !== \"production\") && true) {\n PublicInstanceProxyHandlers.ownKeys = (target) => {\n warn$1(\n `Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead.`\n );\n return Reflect.ownKeys(target);\n };\n}\nconst RuntimeCompiledPublicInstanceProxyHandlers = /* @__PURE__ */ extend({}, PublicInstanceProxyHandlers, {\n get(target, key) {\n if (key === Symbol.unscopables) {\n return;\n }\n return PublicInstanceProxyHandlers.get(target, key, target);\n },\n has(_, key) {\n const has = key[0] !== \"_\" && !isGloballyAllowed(key);\n if (!!(process.env.NODE_ENV !== \"production\") && !has && PublicInstanceProxyHandlers.has(_, key)) {\n warn$1(\n `Property ${JSON.stringify(\n key\n )} should not start with _ which is a reserved prefix for Vue internals.`\n );\n }\n return has;\n }\n});\nfunction createDevRenderContext(instance) {\n const target = {};\n Object.defineProperty(target, `_`, {\n configurable: true,\n enumerable: false,\n get: () => instance\n });\n Object.keys(publicPropertiesMap).forEach((key) => {\n Object.defineProperty(target, key, {\n configurable: true,\n enumerable: false,\n get: () => publicPropertiesMap[key](instance),\n // intercepted by the proxy so no need for implementation,\n // but needed to prevent set errors\n set: NOOP\n });\n });\n return target;\n}\nfunction exposePropsOnRenderContext(instance) {\n const {\n ctx,\n propsOptions: [propsOptions]\n } = instance;\n if (propsOptions) {\n Object.keys(propsOptions).forEach((key) => {\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => instance.props[key],\n set: NOOP\n });\n });\n }\n}\nfunction exposeSetupStateOnRenderContext(instance) {\n const { ctx, setupState } = instance;\n Object.keys(toRaw(setupState)).forEach((key) => {\n if (!setupState.__isScriptSetup) {\n if (isReservedPrefix(key[0])) {\n warn$1(\n `setup() return property ${JSON.stringify(\n key\n )} should not start with \"$\" or \"_\" which are reserved prefixes for Vue internals.`\n );\n return;\n }\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => setupState[key],\n set: NOOP\n });\n }\n });\n}\n\nconst warnRuntimeUsage = (method) => warn$1(\n `${method}() is a compiler-hint helper that is only usable inside <script setup> of a single file component. Its arguments should be compiled away and passing it at runtime has no effect.`\n);\nfunction defineProps() {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRuntimeUsage(`defineProps`);\n }\n return null;\n}\nfunction defineEmits() {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRuntimeUsage(`defineEmits`);\n }\n return null;\n}\nfunction defineExpose(exposed) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRuntimeUsage(`defineExpose`);\n }\n}\nfunction defineOptions(options) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRuntimeUsage(`defineOptions`);\n }\n}\nfunction defineSlots() {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRuntimeUsage(`defineSlots`);\n }\n return null;\n}\nfunction defineModel() {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRuntimeUsage(\"defineModel\");\n }\n}\nfunction withDefaults(props, defaults) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warnRuntimeUsage(`withDefaults`);\n }\n return null;\n}\nfunction useSlots() {\n return getContext().slots;\n}\nfunction useAttrs() {\n return getContext().attrs;\n}\nfunction getContext() {\n const i = getCurrentInstance();\n if (!!(process.env.NODE_ENV !== \"production\") && !i) {\n warn$1(`useContext() called without active instance.`);\n }\n return i.setupContext || (i.setupContext = createSetupContext(i));\n}\nfunction normalizePropsOrEmits(props) {\n return isArray(props) ? props.reduce(\n (normalized, p) => (normalized[p] = null, normalized),\n {}\n ) : props;\n}\nfunction mergeDefaults(raw, defaults) {\n const props = normalizePropsOrEmits(raw);\n for (const key in defaults) {\n if (key.startsWith(\"__skip\")) continue;\n let opt = props[key];\n if (opt) {\n if (isArray(opt) || isFunction(opt)) {\n opt = props[key] = { type: opt, default: defaults[key] };\n } else {\n opt.default = defaults[key];\n }\n } else if (opt === null) {\n opt = props[key] = { default: defaults[key] };\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`props default key \"${key}\" has no corresponding declaration.`);\n }\n if (opt && defaults[`__skip_${key}`]) {\n opt.skipFactory = true;\n }\n }\n return props;\n}\nfunction mergeModels(a, b) {\n if (!a || !b) return a || b;\n if (isArray(a) && isArray(b)) return a.concat(b);\n return extend({}, normalizePropsOrEmits(a), normalizePropsOrEmits(b));\n}\nfunction createPropsRestProxy(props, excludedKeys) {\n const ret = {};\n for (const key in props) {\n if (!excludedKeys.includes(key)) {\n Object.defineProperty(ret, key, {\n enumerable: true,\n get: () => props[key]\n });\n }\n }\n return ret;\n}\nfunction withAsyncContext(getAwaitable) {\n const ctx = getCurrentInstance();\n if (!!(process.env.NODE_ENV !== \"production\") && !ctx) {\n warn$1(\n `withAsyncContext called without active current instance. This is likely a bug.`\n );\n }\n let awaitable = getAwaitable();\n unsetCurrentInstance();\n if (isPromise(awaitable)) {\n awaitable = awaitable.catch((e) => {\n setCurrentInstance(ctx);\n throw e;\n });\n }\n return [awaitable, () => setCurrentInstance(ctx)];\n}\n\nfunction createDuplicateChecker() {\n const cache = /* @__PURE__ */ Object.create(null);\n return (type, key) => {\n if (cache[key]) {\n warn$1(`${type} property \"${key}\" is already defined in ${cache[key]}.`);\n } else {\n cache[key] = type;\n }\n };\n}\nlet shouldCacheAccess = true;\nfunction applyOptions(instance) {\n const options = resolveMergedOptions(instance);\n const publicThis = instance.proxy;\n const ctx = instance.ctx;\n shouldCacheAccess = false;\n if (options.beforeCreate) {\n callHook(options.beforeCreate, instance, \"bc\");\n }\n const {\n // state\n data: dataOptions,\n computed: computedOptions,\n methods,\n watch: watchOptions,\n provide: provideOptions,\n inject: injectOptions,\n // lifecycle\n created,\n beforeMount,\n mounted,\n beforeUpdate,\n updated,\n activated,\n deactivated,\n beforeDestroy,\n beforeUnmount,\n destroyed,\n unmounted,\n render,\n renderTracked,\n renderTriggered,\n errorCaptured,\n serverPrefetch,\n // public API\n expose,\n inheritAttrs,\n // assets\n components,\n directives,\n filters\n } = options;\n const checkDuplicateProperties = !!(process.env.NODE_ENV !== \"production\") ? createDuplicateChecker() : null;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const [propsOptions] = instance.propsOptions;\n if (propsOptions) {\n for (const key in propsOptions) {\n checkDuplicateProperties(\"Props\" /* PROPS */, key);\n }\n }\n }\n if (injectOptions) {\n resolveInjections(injectOptions, ctx, checkDuplicateProperties);\n }\n if (methods) {\n for (const key in methods) {\n const methodHandler = methods[key];\n if (isFunction(methodHandler)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n Object.defineProperty(ctx, key, {\n value: methodHandler.bind(publicThis),\n configurable: true,\n enumerable: true,\n writable: true\n });\n } else {\n ctx[key] = methodHandler.bind(publicThis);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n checkDuplicateProperties(\"Methods\" /* METHODS */, key);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `Method \"${key}\" has type \"${typeof methodHandler}\" in the component definition. Did you reference the function correctly?`\n );\n }\n }\n }\n if (dataOptions) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isFunction(dataOptions)) {\n warn$1(\n `The data option must be a function. Plain object usage is no longer supported.`\n );\n }\n const data = dataOptions.call(publicThis, publicThis);\n if (!!(process.env.NODE_ENV !== \"production\") && isPromise(data)) {\n warn$1(\n `data() returned a Promise - note data() cannot be async; If you intend to perform data fetching before component renders, use async setup() + <Suspense>.`\n );\n }\n if (!isObject(data)) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`data() should return an object.`);\n } else {\n instance.data = reactive(data);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n for (const key in data) {\n checkDuplicateProperties(\"Data\" /* DATA */, key);\n if (!isReservedPrefix(key[0])) {\n Object.defineProperty(ctx, key, {\n configurable: true,\n enumerable: true,\n get: () => data[key],\n set: NOOP\n });\n }\n }\n }\n }\n }\n shouldCacheAccess = true;\n if (computedOptions) {\n for (const key in computedOptions) {\n const opt = computedOptions[key];\n const get = isFunction(opt) ? opt.bind(publicThis, publicThis) : isFunction(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP;\n if (!!(process.env.NODE_ENV !== \"production\") && get === NOOP) {\n warn$1(`Computed property \"${key}\" has no getter.`);\n }\n const set = !isFunction(opt) && isFunction(opt.set) ? opt.set.bind(publicThis) : !!(process.env.NODE_ENV !== \"production\") ? () => {\n warn$1(\n `Write operation failed: computed property \"${key}\" is readonly.`\n );\n } : NOOP;\n const c = computed({\n get,\n set\n });\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => c.value,\n set: (v) => c.value = v\n });\n if (!!(process.env.NODE_ENV !== \"production\")) {\n checkDuplicateProperties(\"Computed\" /* COMPUTED */, key);\n }\n }\n }\n if (watchOptions) {\n for (const key in watchOptions) {\n createWatcher(watchOptions[key], ctx, publicThis, key);\n }\n }\n if (provideOptions) {\n const provides = isFunction(provideOptions) ? provideOptions.call(publicThis) : provideOptions;\n Reflect.ownKeys(provides).forEach((key) => {\n provide(key, provides[key]);\n });\n }\n if (created) {\n callHook(created, instance, \"c\");\n }\n function registerLifecycleHook(register, hook) {\n if (isArray(hook)) {\n hook.forEach((_hook) => register(_hook.bind(publicThis)));\n } else if (hook) {\n register(hook.bind(publicThis));\n }\n }\n registerLifecycleHook(onBeforeMount, beforeMount);\n registerLifecycleHook(onMounted, mounted);\n registerLifecycleHook(onBeforeUpdate, beforeUpdate);\n registerLifecycleHook(onUpdated, updated);\n registerLifecycleHook(onActivated, activated);\n registerLifecycleHook(onDeactivated, deactivated);\n registerLifecycleHook(onErrorCaptured, errorCaptured);\n registerLifecycleHook(onRenderTracked, renderTracked);\n registerLifecycleHook(onRenderTriggered, renderTriggered);\n registerLifecycleHook(onBeforeUnmount, beforeUnmount);\n registerLifecycleHook(onUnmounted, unmounted);\n registerLifecycleHook(onServerPrefetch, serverPrefetch);\n if (isArray(expose)) {\n if (expose.length) {\n const exposed = instance.exposed || (instance.exposed = {});\n expose.forEach((key) => {\n Object.defineProperty(exposed, key, {\n get: () => publicThis[key],\n set: (val) => publicThis[key] = val\n });\n });\n } else if (!instance.exposed) {\n instance.exposed = {};\n }\n }\n if (render && instance.render === NOOP) {\n instance.render = render;\n }\n if (inheritAttrs != null) {\n instance.inheritAttrs = inheritAttrs;\n }\n if (components) instance.components = components;\n if (directives) instance.directives = directives;\n if (serverPrefetch) {\n markAsyncBoundary(instance);\n }\n}\nfunction resolveInjections(injectOptions, ctx, checkDuplicateProperties = NOOP) {\n if (isArray(injectOptions)) {\n injectOptions = normalizeInject(injectOptions);\n }\n for (const key in injectOptions) {\n const opt = injectOptions[key];\n let injected;\n if (isObject(opt)) {\n if (\"default\" in opt) {\n injected = inject(\n opt.from || key,\n opt.default,\n true\n );\n } else {\n injected = inject(opt.from || key);\n }\n } else {\n injected = inject(opt);\n }\n if (isRef(injected)) {\n Object.defineProperty(ctx, key, {\n enumerable: true,\n configurable: true,\n get: () => injected.value,\n set: (v) => injected.value = v\n });\n } else {\n ctx[key] = injected;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n checkDuplicateProperties(\"Inject\" /* INJECT */, key);\n }\n }\n}\nfunction callHook(hook, instance, type) {\n callWithAsyncErrorHandling(\n isArray(hook) ? hook.map((h) => h.bind(instance.proxy)) : hook.bind(instance.proxy),\n instance,\n type\n );\n}\nfunction createWatcher(raw, ctx, publicThis, key) {\n let getter = key.includes(\".\") ? createPathGetter(publicThis, key) : () => publicThis[key];\n if (isString(raw)) {\n const handler = ctx[raw];\n if (isFunction(handler)) {\n {\n watch(getter, handler);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`Invalid watch handler specified by key \"${raw}\"`, handler);\n }\n } else if (isFunction(raw)) {\n {\n watch(getter, raw.bind(publicThis));\n }\n } else if (isObject(raw)) {\n if (isArray(raw)) {\n raw.forEach((r) => createWatcher(r, ctx, publicThis, key));\n } else {\n const handler = isFunction(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler];\n if (isFunction(handler)) {\n watch(getter, handler, raw);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`Invalid watch handler specified by key \"${raw.handler}\"`, handler);\n }\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`Invalid watch option: \"${key}\"`, raw);\n }\n}\nfunction resolveMergedOptions(instance) {\n const base = instance.type;\n const { mixins, extends: extendsOptions } = base;\n const {\n mixins: globalMixins,\n optionsCache: cache,\n config: { optionMergeStrategies }\n } = instance.appContext;\n const cached = cache.get(base);\n let resolved;\n if (cached) {\n resolved = cached;\n } else if (!globalMixins.length && !mixins && !extendsOptions) {\n {\n resolved = base;\n }\n } else {\n resolved = {};\n if (globalMixins.length) {\n globalMixins.forEach(\n (m) => mergeOptions(resolved, m, optionMergeStrategies, true)\n );\n }\n mergeOptions(resolved, base, optionMergeStrategies);\n }\n if (isObject(base)) {\n cache.set(base, resolved);\n }\n return resolved;\n}\nfunction mergeOptions(to, from, strats, asMixin = false) {\n const { mixins, extends: extendsOptions } = from;\n if (extendsOptions) {\n mergeOptions(to, extendsOptions, strats, true);\n }\n if (mixins) {\n mixins.forEach(\n (m) => mergeOptions(to, m, strats, true)\n );\n }\n for (const key in from) {\n if (asMixin && key === \"expose\") {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `\"expose\" option is ignored when declared in mixins or extends. It should only be declared in the base component itself.`\n );\n } else {\n const strat = internalOptionMergeStrats[key] || strats && strats[key];\n to[key] = strat ? strat(to[key], from[key]) : from[key];\n }\n }\n return to;\n}\nconst internalOptionMergeStrats = {\n data: mergeDataFn,\n props: mergeEmitsOrPropsOptions,\n emits: mergeEmitsOrPropsOptions,\n // objects\n methods: mergeObjectOptions,\n computed: mergeObjectOptions,\n // lifecycle\n beforeCreate: mergeAsArray,\n created: mergeAsArray,\n beforeMount: mergeAsArray,\n mounted: mergeAsArray,\n beforeUpdate: mergeAsArray,\n updated: mergeAsArray,\n beforeDestroy: mergeAsArray,\n beforeUnmount: mergeAsArray,\n destroyed: mergeAsArray,\n unmounted: mergeAsArray,\n activated: mergeAsArray,\n deactivated: mergeAsArray,\n errorCaptured: mergeAsArray,\n serverPrefetch: mergeAsArray,\n // assets\n components: mergeObjectOptions,\n directives: mergeObjectOptions,\n // watch\n watch: mergeWatchOptions,\n // provide / inject\n provide: mergeDataFn,\n inject: mergeInject\n};\nfunction mergeDataFn(to, from) {\n if (!from) {\n return to;\n }\n if (!to) {\n return from;\n }\n return function mergedDataFn() {\n return (extend)(\n isFunction(to) ? to.call(this, this) : to,\n isFunction(from) ? from.call(this, this) : from\n );\n };\n}\nfunction mergeInject(to, from) {\n return mergeObjectOptions(normalizeInject(to), normalizeInject(from));\n}\nfunction normalizeInject(raw) {\n if (isArray(raw)) {\n const res = {};\n for (let i = 0; i < raw.length; i++) {\n res[raw[i]] = raw[i];\n }\n return res;\n }\n return raw;\n}\nfunction mergeAsArray(to, from) {\n return to ? [...new Set([].concat(to, from))] : from;\n}\nfunction mergeObjectOptions(to, from) {\n return to ? extend(/* @__PURE__ */ Object.create(null), to, from) : from;\n}\nfunction mergeEmitsOrPropsOptions(to, from) {\n if (to) {\n if (isArray(to) && isArray(from)) {\n return [.../* @__PURE__ */ new Set([...to, ...from])];\n }\n return extend(\n /* @__PURE__ */ Object.create(null),\n normalizePropsOrEmits(to),\n normalizePropsOrEmits(from != null ? from : {})\n );\n } else {\n return from;\n }\n}\nfunction mergeWatchOptions(to, from) {\n if (!to) return from;\n if (!from) return to;\n const merged = extend(/* @__PURE__ */ Object.create(null), to);\n for (const key in from) {\n merged[key] = mergeAsArray(to[key], from[key]);\n }\n return merged;\n}\n\nfunction createAppContext() {\n return {\n app: null,\n config: {\n isNativeTag: NO,\n performance: false,\n globalProperties: {},\n optionMergeStrategies: {},\n errorHandler: void 0,\n warnHandler: void 0,\n compilerOptions: {}\n },\n mixins: [],\n components: {},\n directives: {},\n provides: /* @__PURE__ */ Object.create(null),\n optionsCache: /* @__PURE__ */ new WeakMap(),\n propsCache: /* @__PURE__ */ new WeakMap(),\n emitsCache: /* @__PURE__ */ new WeakMap()\n };\n}\nlet uid$1 = 0;\nfunction createAppAPI(render, hydrate) {\n return function createApp(rootComponent, rootProps = null) {\n if (!isFunction(rootComponent)) {\n rootComponent = extend({}, rootComponent);\n }\n if (rootProps != null && !isObject(rootProps)) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`root props passed to app.mount() must be an object.`);\n rootProps = null;\n }\n const context = createAppContext();\n const installedPlugins = /* @__PURE__ */ new WeakSet();\n const pluginCleanupFns = [];\n let isMounted = false;\n const app = context.app = {\n _uid: uid$1++,\n _component: rootComponent,\n _props: rootProps,\n _container: null,\n _context: context,\n _instance: null,\n version,\n get config() {\n return context.config;\n },\n set config(v) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `app.config cannot be replaced. Modify individual options instead.`\n );\n }\n },\n use(plugin, ...options) {\n if (installedPlugins.has(plugin)) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`Plugin has already been applied to target app.`);\n } else if (plugin && isFunction(plugin.install)) {\n installedPlugins.add(plugin);\n plugin.install(app, ...options);\n } else if (isFunction(plugin)) {\n installedPlugins.add(plugin);\n plugin(app, ...options);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `A plugin must either be a function or an object with an \"install\" function.`\n );\n }\n return app;\n },\n mixin(mixin) {\n if (__VUE_OPTIONS_API__) {\n if (!context.mixins.includes(mixin)) {\n context.mixins.push(mixin);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n \"Mixin has already been applied to target app\" + (mixin.name ? `: ${mixin.name}` : \"\")\n );\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Mixins are only available in builds supporting Options API\");\n }\n return app;\n },\n component(name, component) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n validateComponentName(name, context.config);\n }\n if (!component) {\n return context.components[name];\n }\n if (!!(process.env.NODE_ENV !== \"production\") && context.components[name]) {\n warn$1(`Component \"${name}\" has already been registered in target app.`);\n }\n context.components[name] = component;\n return app;\n },\n directive(name, directive) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n validateDirectiveName(name);\n }\n if (!directive) {\n return context.directives[name];\n }\n if (!!(process.env.NODE_ENV !== \"production\") && context.directives[name]) {\n warn$1(`Directive \"${name}\" has already been registered in target app.`);\n }\n context.directives[name] = directive;\n return app;\n },\n mount(rootContainer, isHydrate, namespace) {\n if (!isMounted) {\n if (!!(process.env.NODE_ENV !== \"production\") && rootContainer.__vue_app__) {\n warn$1(\n `There is already an app instance mounted on the host container.\n If you want to mount another app on the same host container, you need to unmount the previous app by calling \\`app.unmount()\\` first.`\n );\n }\n const vnode = app._ceVNode || createVNode(rootComponent, rootProps);\n vnode.appContext = context;\n if (namespace === true) {\n namespace = \"svg\";\n } else if (namespace === false) {\n namespace = void 0;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n context.reload = () => {\n render(\n cloneVNode(vnode),\n rootContainer,\n namespace\n );\n };\n }\n if (isHydrate && hydrate) {\n hydrate(vnode, rootContainer);\n } else {\n render(vnode, rootContainer, namespace);\n }\n isMounted = true;\n app._container = rootContainer;\n rootContainer.__vue_app__ = app;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n app._instance = vnode.component;\n devtoolsInitApp(app, version);\n }\n return getComponentPublicInstance(vnode.component);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `App has already been mounted.\nIf you want to remount the same app, move your app creation logic into a factory function and create fresh app instances for each mount - e.g. \\`const createMyApp = () => createApp(App)\\``\n );\n }\n },\n onUnmount(cleanupFn) {\n if (!!(process.env.NODE_ENV !== \"production\") && typeof cleanupFn !== \"function\") {\n warn$1(\n `Expected function as first argument to app.onUnmount(), but got ${typeof cleanupFn}`\n );\n }\n pluginCleanupFns.push(cleanupFn);\n },\n unmount() {\n if (isMounted) {\n callWithAsyncErrorHandling(\n pluginCleanupFns,\n app._instance,\n 16\n );\n render(null, app._container);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n app._instance = null;\n devtoolsUnmountApp(app);\n }\n delete app._container.__vue_app__;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`Cannot unmount an app that is not mounted.`);\n }\n },\n provide(key, value) {\n if (!!(process.env.NODE_ENV !== \"production\") && key in context.provides) {\n warn$1(\n `App already provides property with key \"${String(key)}\". It will be overwritten with the new value.`\n );\n }\n context.provides[key] = value;\n return app;\n },\n runWithContext(fn) {\n const lastApp = currentApp;\n currentApp = app;\n try {\n return fn();\n } finally {\n currentApp = lastApp;\n }\n }\n };\n return app;\n };\n}\nlet currentApp = null;\n\nfunction provide(key, value) {\n if (!currentInstance) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`provide() can only be used inside setup().`);\n }\n } else {\n let provides = currentInstance.provides;\n const parentProvides = currentInstance.parent && currentInstance.parent.provides;\n if (parentProvides === provides) {\n provides = currentInstance.provides = Object.create(parentProvides);\n }\n provides[key] = value;\n }\n}\nfunction inject(key, defaultValue, treatDefaultAsFactory = false) {\n const instance = currentInstance || currentRenderingInstance;\n if (instance || currentApp) {\n const provides = currentApp ? currentApp._context.provides : instance ? instance.parent == null ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : void 0;\n if (provides && key in provides) {\n return provides[key];\n } else if (arguments.length > 1) {\n return treatDefaultAsFactory && isFunction(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`injection \"${String(key)}\" not found.`);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`inject() can only be used inside setup() or functional components.`);\n }\n}\nfunction hasInjectionContext() {\n return !!(currentInstance || currentRenderingInstance || currentApp);\n}\n\nconst internalObjectProto = {};\nconst createInternalObject = () => Object.create(internalObjectProto);\nconst isInternalObject = (obj) => Object.getPrototypeOf(obj) === internalObjectProto;\n\nfunction initProps(instance, rawProps, isStateful, isSSR = false) {\n const props = {};\n const attrs = createInternalObject();\n instance.propsDefaults = /* @__PURE__ */ Object.create(null);\n setFullProps(instance, rawProps, props, attrs);\n for (const key in instance.propsOptions[0]) {\n if (!(key in props)) {\n props[key] = void 0;\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n validateProps(rawProps || {}, props, instance);\n }\n if (isStateful) {\n instance.props = isSSR ? props : shallowReactive(props);\n } else {\n if (!instance.type.props) {\n instance.props = attrs;\n } else {\n instance.props = props;\n }\n }\n instance.attrs = attrs;\n}\nfunction isInHmrContext(instance) {\n while (instance) {\n if (instance.type.__hmrId) return true;\n instance = instance.parent;\n }\n}\nfunction updateProps(instance, rawProps, rawPrevProps, optimized) {\n const {\n props,\n attrs,\n vnode: { patchFlag }\n } = instance;\n const rawCurrentProps = toRaw(props);\n const [options] = instance.propsOptions;\n let hasAttrsChanged = false;\n if (\n // always force full diff in dev\n // - #1942 if hmr is enabled with sfc component\n // - vite#872 non-sfc component used by sfc component\n !(!!(process.env.NODE_ENV !== \"production\") && isInHmrContext(instance)) && (optimized || patchFlag > 0) && !(patchFlag & 16)\n ) {\n if (patchFlag & 8) {\n const propsToUpdate = instance.vnode.dynamicProps;\n for (let i = 0; i < propsToUpdate.length; i++) {\n let key = propsToUpdate[i];\n if (isEmitListener(instance.emitsOptions, key)) {\n continue;\n }\n const value = rawProps[key];\n if (options) {\n if (hasOwn(attrs, key)) {\n if (value !== attrs[key]) {\n attrs[key] = value;\n hasAttrsChanged = true;\n }\n } else {\n const camelizedKey = camelize(key);\n props[camelizedKey] = resolvePropValue(\n options,\n rawCurrentProps,\n camelizedKey,\n value,\n instance,\n false\n );\n }\n } else {\n if (value !== attrs[key]) {\n attrs[key] = value;\n hasAttrsChanged = true;\n }\n }\n }\n }\n } else {\n if (setFullProps(instance, rawProps, props, attrs)) {\n hasAttrsChanged = true;\n }\n let kebabKey;\n for (const key in rawCurrentProps) {\n if (!rawProps || // for camelCase\n !hasOwn(rawProps, key) && // it's possible the original props was passed in as kebab-case\n // and converted to camelCase (#955)\n ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey))) {\n if (options) {\n if (rawPrevProps && // for camelCase\n (rawPrevProps[key] !== void 0 || // for kebab-case\n rawPrevProps[kebabKey] !== void 0)) {\n props[key] = resolvePropValue(\n options,\n rawCurrentProps,\n key,\n void 0,\n instance,\n true\n );\n }\n } else {\n delete props[key];\n }\n }\n }\n if (attrs !== rawCurrentProps) {\n for (const key in attrs) {\n if (!rawProps || !hasOwn(rawProps, key) && true) {\n delete attrs[key];\n hasAttrsChanged = true;\n }\n }\n }\n }\n if (hasAttrsChanged) {\n trigger(instance.attrs, \"set\", \"\");\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n validateProps(rawProps || {}, props, instance);\n }\n}\nfunction setFullProps(instance, rawProps, props, attrs) {\n const [options, needCastKeys] = instance.propsOptions;\n let hasAttrsChanged = false;\n let rawCastValues;\n if (rawProps) {\n for (let key in rawProps) {\n if (isReservedProp(key)) {\n continue;\n }\n const value = rawProps[key];\n let camelKey;\n if (options && hasOwn(options, camelKey = camelize(key))) {\n if (!needCastKeys || !needCastKeys.includes(camelKey)) {\n props[camelKey] = value;\n } else {\n (rawCastValues || (rawCastValues = {}))[camelKey] = value;\n }\n } else if (!isEmitListener(instance.emitsOptions, key)) {\n if (!(key in attrs) || value !== attrs[key]) {\n attrs[key] = value;\n hasAttrsChanged = true;\n }\n }\n }\n }\n if (needCastKeys) {\n const rawCurrentProps = toRaw(props);\n const castValues = rawCastValues || EMPTY_OBJ;\n for (let i = 0; i < needCastKeys.length; i++) {\n const key = needCastKeys[i];\n props[key] = resolvePropValue(\n options,\n rawCurrentProps,\n key,\n castValues[key],\n instance,\n !hasOwn(castValues, key)\n );\n }\n }\n return hasAttrsChanged;\n}\nfunction resolvePropValue(options, props, key, value, instance, isAbsent) {\n const opt = options[key];\n if (opt != null) {\n const hasDefault = hasOwn(opt, \"default\");\n if (hasDefault && value === void 0) {\n const defaultValue = opt.default;\n if (opt.type !== Function && !opt.skipFactory && isFunction(defaultValue)) {\n const { propsDefaults } = instance;\n if (key in propsDefaults) {\n value = propsDefaults[key];\n } else {\n const reset = setCurrentInstance(instance);\n value = propsDefaults[key] = defaultValue.call(\n null,\n props\n );\n reset();\n }\n } else {\n value = defaultValue;\n }\n if (instance.ce) {\n instance.ce._setProp(key, value);\n }\n }\n if (opt[0 /* shouldCast */]) {\n if (isAbsent && !hasDefault) {\n value = false;\n } else if (opt[1 /* shouldCastTrue */] && (value === \"\" || value === hyphenate(key))) {\n value = true;\n }\n }\n }\n return value;\n}\nconst mixinPropsCache = /* @__PURE__ */ new WeakMap();\nfunction normalizePropsOptions(comp, appContext, asMixin = false) {\n const cache = __VUE_OPTIONS_API__ && asMixin ? mixinPropsCache : appContext.propsCache;\n const cached = cache.get(comp);\n if (cached) {\n return cached;\n }\n const raw = comp.props;\n const normalized = {};\n const needCastKeys = [];\n let hasExtends = false;\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\n const extendProps = (raw2) => {\n hasExtends = true;\n const [props, keys] = normalizePropsOptions(raw2, appContext, true);\n extend(normalized, props);\n if (keys) needCastKeys.push(...keys);\n };\n if (!asMixin && appContext.mixins.length) {\n appContext.mixins.forEach(extendProps);\n }\n if (comp.extends) {\n extendProps(comp.extends);\n }\n if (comp.mixins) {\n comp.mixins.forEach(extendProps);\n }\n }\n if (!raw && !hasExtends) {\n if (isObject(comp)) {\n cache.set(comp, EMPTY_ARR);\n }\n return EMPTY_ARR;\n }\n if (isArray(raw)) {\n for (let i = 0; i < raw.length; i++) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isString(raw[i])) {\n warn$1(`props must be strings when using array syntax.`, raw[i]);\n }\n const normalizedKey = camelize(raw[i]);\n if (validatePropName(normalizedKey)) {\n normalized[normalizedKey] = EMPTY_OBJ;\n }\n }\n } else if (raw) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isObject(raw)) {\n warn$1(`invalid props options`, raw);\n }\n for (const key in raw) {\n const normalizedKey = camelize(key);\n if (validatePropName(normalizedKey)) {\n const opt = raw[key];\n const prop = normalized[normalizedKey] = isArray(opt) || isFunction(opt) ? { type: opt } : extend({}, opt);\n const propType = prop.type;\n let shouldCast = false;\n let shouldCastTrue = true;\n if (isArray(propType)) {\n for (let index = 0; index < propType.length; ++index) {\n const type = propType[index];\n const typeName = isFunction(type) && type.name;\n if (typeName === \"Boolean\") {\n shouldCast = true;\n break;\n } else if (typeName === \"String\") {\n shouldCastTrue = false;\n }\n }\n } else {\n shouldCast = isFunction(propType) && propType.name === \"Boolean\";\n }\n prop[0 /* shouldCast */] = shouldCast;\n prop[1 /* shouldCastTrue */] = shouldCastTrue;\n if (shouldCast || hasOwn(prop, \"default\")) {\n needCastKeys.push(normalizedKey);\n }\n }\n }\n }\n const res = [normalized, needCastKeys];\n if (isObject(comp)) {\n cache.set(comp, res);\n }\n return res;\n}\nfunction validatePropName(key) {\n if (key[0] !== \"$\" && !isReservedProp(key)) {\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`Invalid prop name: \"${key}\" is a reserved property.`);\n }\n return false;\n}\nfunction getType(ctor) {\n if (ctor === null) {\n return \"null\";\n }\n if (typeof ctor === \"function\") {\n return ctor.name || \"\";\n } else if (typeof ctor === \"object\") {\n const name = ctor.constructor && ctor.constructor.name;\n return name || \"\";\n }\n return \"\";\n}\nfunction validateProps(rawProps, props, instance) {\n const resolvedValues = toRaw(props);\n const options = instance.propsOptions[0];\n for (const key in options) {\n let opt = options[key];\n if (opt == null) continue;\n validateProp(\n key,\n resolvedValues[key],\n opt,\n !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(resolvedValues) : resolvedValues,\n !hasOwn(rawProps, key) && !hasOwn(rawProps, hyphenate(key))\n );\n }\n}\nfunction validateProp(name, value, prop, props, isAbsent) {\n const { type, required, validator, skipCheck } = prop;\n if (required && isAbsent) {\n warn$1('Missing required prop: \"' + name + '\"');\n return;\n }\n if (value == null && !required) {\n return;\n }\n if (type != null && type !== true && !skipCheck) {\n let isValid = false;\n const types = isArray(type) ? type : [type];\n const expectedTypes = [];\n for (let i = 0; i < types.length && !isValid; i++) {\n const { valid, expectedType } = assertType(value, types[i]);\n expectedTypes.push(expectedType || \"\");\n isValid = valid;\n }\n if (!isValid) {\n warn$1(getInvalidTypeMessage(name, value, expectedTypes));\n return;\n }\n }\n if (validator && !validator(value, props)) {\n warn$1('Invalid prop: custom validator check failed for prop \"' + name + '\".');\n }\n}\nconst isSimpleType = /* @__PURE__ */ makeMap(\n \"String,Number,Boolean,Function,Symbol,BigInt\"\n);\nfunction assertType(value, type) {\n let valid;\n const expectedType = getType(type);\n if (expectedType === \"null\") {\n valid = value === null;\n } else if (isSimpleType(expectedType)) {\n const t = typeof value;\n valid = t === expectedType.toLowerCase();\n if (!valid && t === \"object\") {\n valid = value instanceof type;\n }\n } else if (expectedType === \"Object\") {\n valid = isObject(value);\n } else if (expectedType === \"Array\") {\n valid = isArray(value);\n } else {\n valid = value instanceof type;\n }\n return {\n valid,\n expectedType\n };\n}\nfunction getInvalidTypeMessage(name, value, expectedTypes) {\n if (expectedTypes.length === 0) {\n return `Prop type [] for prop \"${name}\" won't match anything. Did you mean to use type Array instead?`;\n }\n let message = `Invalid prop: type check failed for prop \"${name}\". Expected ${expectedTypes.map(capitalize).join(\" | \")}`;\n const expectedType = expectedTypes[0];\n const receivedType = toRawType(value);\n const expectedValue = styleValue(value, expectedType);\n const receivedValue = styleValue(value, receivedType);\n if (expectedTypes.length === 1 && isExplicable(expectedType) && !isBoolean(expectedType, receivedType)) {\n message += ` with value ${expectedValue}`;\n }\n message += `, got ${receivedType} `;\n if (isExplicable(receivedType)) {\n message += `with value ${receivedValue}.`;\n }\n return message;\n}\nfunction styleValue(value, type) {\n if (type === \"String\") {\n return `\"${value}\"`;\n } else if (type === \"Number\") {\n return `${Number(value)}`;\n } else {\n return `${value}`;\n }\n}\nfunction isExplicable(type) {\n const explicitTypes = [\"string\", \"number\", \"boolean\"];\n return explicitTypes.some((elem) => type.toLowerCase() === elem);\n}\nfunction isBoolean(...args) {\n return args.some((elem) => elem.toLowerCase() === \"boolean\");\n}\n\nconst isInternalKey = (key) => key[0] === \"_\" || key === \"$stable\";\nconst normalizeSlotValue = (value) => isArray(value) ? value.map(normalizeVNode) : [normalizeVNode(value)];\nconst normalizeSlot = (key, rawSlot, ctx) => {\n if (rawSlot._n) {\n return rawSlot;\n }\n const normalized = withCtx((...args) => {\n if (!!(process.env.NODE_ENV !== \"production\") && currentInstance && (!ctx || ctx.root === currentInstance.root)) {\n warn$1(\n `Slot \"${key}\" invoked outside of the render function: this will not track dependencies used in the slot. Invoke the slot function inside the render function instead.`\n );\n }\n return normalizeSlotValue(rawSlot(...args));\n }, ctx);\n normalized._c = false;\n return normalized;\n};\nconst normalizeObjectSlots = (rawSlots, slots, instance) => {\n const ctx = rawSlots._ctx;\n for (const key in rawSlots) {\n if (isInternalKey(key)) continue;\n const value = rawSlots[key];\n if (isFunction(value)) {\n slots[key] = normalizeSlot(key, value, ctx);\n } else if (value != null) {\n if (!!(process.env.NODE_ENV !== \"production\") && true) {\n warn$1(\n `Non-function value encountered for slot \"${key}\". Prefer function slots for better performance.`\n );\n }\n const normalized = normalizeSlotValue(value);\n slots[key] = () => normalized;\n }\n }\n};\nconst normalizeVNodeSlots = (instance, children) => {\n if (!!(process.env.NODE_ENV !== \"production\") && !isKeepAlive(instance.vnode) && true) {\n warn$1(\n `Non-function value encountered for default slot. Prefer function slots for better performance.`\n );\n }\n const normalized = normalizeSlotValue(children);\n instance.slots.default = () => normalized;\n};\nconst assignSlots = (slots, children, optimized) => {\n for (const key in children) {\n if (optimized || key !== \"_\") {\n slots[key] = children[key];\n }\n }\n};\nconst initSlots = (instance, children, optimized) => {\n const slots = instance.slots = createInternalObject();\n if (instance.vnode.shapeFlag & 32) {\n const type = children._;\n if (type) {\n assignSlots(slots, children, optimized);\n if (optimized) {\n def(slots, \"_\", type, true);\n }\n } else {\n normalizeObjectSlots(children, slots);\n }\n } else if (children) {\n normalizeVNodeSlots(instance, children);\n }\n};\nconst updateSlots = (instance, children, optimized) => {\n const { vnode, slots } = instance;\n let needDeletionCheck = true;\n let deletionComparisonTarget = EMPTY_OBJ;\n if (vnode.shapeFlag & 32) {\n const type = children._;\n if (type) {\n if (!!(process.env.NODE_ENV !== \"production\") && isHmrUpdating) {\n assignSlots(slots, children, optimized);\n trigger(instance, \"set\", \"$slots\");\n } else if (optimized && type === 1) {\n needDeletionCheck = false;\n } else {\n assignSlots(slots, children, optimized);\n }\n } else {\n needDeletionCheck = !children.$stable;\n normalizeObjectSlots(children, slots);\n }\n deletionComparisonTarget = children;\n } else if (children) {\n normalizeVNodeSlots(instance, children);\n deletionComparisonTarget = { default: 1 };\n }\n if (needDeletionCheck) {\n for (const key in slots) {\n if (!isInternalKey(key) && deletionComparisonTarget[key] == null) {\n delete slots[key];\n }\n }\n }\n};\n\nlet supported;\nlet perf;\nfunction startMeasure(instance, type) {\n if (instance.appContext.config.performance && isSupported()) {\n perf.mark(`vue-${type}-${instance.uid}`);\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsPerfStart(instance, type, isSupported() ? perf.now() : Date.now());\n }\n}\nfunction endMeasure(instance, type) {\n if (instance.appContext.config.performance && isSupported()) {\n const startTag = `vue-${type}-${instance.uid}`;\n const endTag = startTag + `:end`;\n perf.mark(endTag);\n perf.measure(\n `<${formatComponentName(instance, instance.type)}> ${type}`,\n startTag,\n endTag\n );\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsPerfEnd(instance, type, isSupported() ? perf.now() : Date.now());\n }\n}\nfunction isSupported() {\n if (supported !== void 0) {\n return supported;\n }\n if (typeof window !== \"undefined\" && window.performance) {\n supported = true;\n perf = window.performance;\n } else {\n supported = false;\n }\n return supported;\n}\n\nfunction initFeatureFlags() {\n const needWarn = [];\n if (typeof __VUE_OPTIONS_API__ !== \"boolean\") {\n !!(process.env.NODE_ENV !== \"production\") && needWarn.push(`__VUE_OPTIONS_API__`);\n getGlobalThis().__VUE_OPTIONS_API__ = true;\n }\n if (typeof __VUE_PROD_DEVTOOLS__ !== \"boolean\") {\n !!(process.env.NODE_ENV !== \"production\") && needWarn.push(`__VUE_PROD_DEVTOOLS__`);\n getGlobalThis().__VUE_PROD_DEVTOOLS__ = false;\n }\n if (typeof __VUE_PROD_HYDRATION_MISMATCH_DETAILS__ !== \"boolean\") {\n !!(process.env.NODE_ENV !== \"production\") && needWarn.push(`__VUE_PROD_HYDRATION_MISMATCH_DETAILS__`);\n getGlobalThis().__VUE_PROD_HYDRATION_MISMATCH_DETAILS__ = false;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && needWarn.length) {\n const multi = needWarn.length > 1;\n console.warn(\n `Feature flag${multi ? `s` : ``} ${needWarn.join(\", \")} ${multi ? `are` : `is`} not explicitly defined. You are running the esm-bundler build of Vue, which expects these compile-time feature flags to be globally injected via the bundler config in order to get better tree-shaking in the production bundle.\n\nFor more details, see https://link.vuejs.org/feature-flags.`\n );\n }\n}\n\nconst queuePostRenderEffect = queueEffectWithSuspense ;\nfunction createRenderer(options) {\n return baseCreateRenderer(options);\n}\nfunction createHydrationRenderer(options) {\n return baseCreateRenderer(options, createHydrationFunctions);\n}\nfunction baseCreateRenderer(options, createHydrationFns) {\n {\n initFeatureFlags();\n }\n const target = getGlobalThis();\n target.__VUE__ = true;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n setDevtoolsHook$1(target.__VUE_DEVTOOLS_GLOBAL_HOOK__, target);\n }\n const {\n insert: hostInsert,\n remove: hostRemove,\n patchProp: hostPatchProp,\n createElement: hostCreateElement,\n createText: hostCreateText,\n createComment: hostCreateComment,\n setText: hostSetText,\n setElementText: hostSetElementText,\n parentNode: hostParentNode,\n nextSibling: hostNextSibling,\n setScopeId: hostSetScopeId = NOOP,\n insertStaticContent: hostInsertStaticContent\n } = options;\n const patch = (n1, n2, container, anchor = null, parentComponent = null, parentSuspense = null, namespace = void 0, slotScopeIds = null, optimized = !!(process.env.NODE_ENV !== \"production\") && isHmrUpdating ? false : !!n2.dynamicChildren) => {\n if (n1 === n2) {\n return;\n }\n if (n1 && !isSameVNodeType(n1, n2)) {\n anchor = getNextHostNode(n1);\n unmount(n1, parentComponent, parentSuspense, true);\n n1 = null;\n }\n if (n2.patchFlag === -2) {\n optimized = false;\n n2.dynamicChildren = null;\n }\n const { type, ref, shapeFlag } = n2;\n switch (type) {\n case Text:\n processText(n1, n2, container, anchor);\n break;\n case Comment:\n processCommentNode(n1, n2, container, anchor);\n break;\n case Static:\n if (n1 == null) {\n mountStaticNode(n2, container, anchor, namespace);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n patchStaticNode(n1, n2, container, namespace);\n }\n break;\n case Fragment:\n processFragment(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n break;\n default:\n if (shapeFlag & 1) {\n processElement(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else if (shapeFlag & 6) {\n processComponent(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else if (shapeFlag & 64) {\n type.process(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized,\n internals\n );\n } else if (shapeFlag & 128) {\n type.process(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized,\n internals\n );\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Invalid VNode type:\", type, `(${typeof type})`);\n }\n }\n if (ref != null && parentComponent) {\n setRef(ref, n1 && n1.ref, parentSuspense, n2 || n1, !n2);\n }\n };\n const processText = (n1, n2, container, anchor) => {\n if (n1 == null) {\n hostInsert(\n n2.el = hostCreateText(n2.children),\n container,\n anchor\n );\n } else {\n const el = n2.el = n1.el;\n if (n2.children !== n1.children) {\n hostSetText(el, n2.children);\n }\n }\n };\n const processCommentNode = (n1, n2, container, anchor) => {\n if (n1 == null) {\n hostInsert(\n n2.el = hostCreateComment(n2.children || \"\"),\n container,\n anchor\n );\n } else {\n n2.el = n1.el;\n }\n };\n const mountStaticNode = (n2, container, anchor, namespace) => {\n [n2.el, n2.anchor] = hostInsertStaticContent(\n n2.children,\n container,\n anchor,\n namespace,\n n2.el,\n n2.anchor\n );\n };\n const patchStaticNode = (n1, n2, container, namespace) => {\n if (n2.children !== n1.children) {\n const anchor = hostNextSibling(n1.anchor);\n removeStaticNode(n1);\n [n2.el, n2.anchor] = hostInsertStaticContent(\n n2.children,\n container,\n anchor,\n namespace\n );\n } else {\n n2.el = n1.el;\n n2.anchor = n1.anchor;\n }\n };\n const moveStaticNode = ({ el, anchor }, container, nextSibling) => {\n let next;\n while (el && el !== anchor) {\n next = hostNextSibling(el);\n hostInsert(el, container, nextSibling);\n el = next;\n }\n hostInsert(anchor, container, nextSibling);\n };\n const removeStaticNode = ({ el, anchor }) => {\n let next;\n while (el && el !== anchor) {\n next = hostNextSibling(el);\n hostRemove(el);\n el = next;\n }\n hostRemove(anchor);\n };\n const processElement = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n if (n2.type === \"svg\") {\n namespace = \"svg\";\n } else if (n2.type === \"math\") {\n namespace = \"mathml\";\n }\n if (n1 == null) {\n mountElement(\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else {\n patchElement(\n n1,\n n2,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n };\n const mountElement = (vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n let el;\n let vnodeHook;\n const { props, shapeFlag, transition, dirs } = vnode;\n el = vnode.el = hostCreateElement(\n vnode.type,\n namespace,\n props && props.is,\n props\n );\n if (shapeFlag & 8) {\n hostSetElementText(el, vnode.children);\n } else if (shapeFlag & 16) {\n mountChildren(\n vnode.children,\n el,\n null,\n parentComponent,\n parentSuspense,\n resolveChildrenNamespace(vnode, namespace),\n slotScopeIds,\n optimized\n );\n }\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"created\");\n }\n setScopeId(el, vnode, vnode.scopeId, slotScopeIds, parentComponent);\n if (props) {\n for (const key in props) {\n if (key !== \"value\" && !isReservedProp(key)) {\n hostPatchProp(el, key, null, props[key], namespace, parentComponent);\n }\n }\n if (\"value\" in props) {\n hostPatchProp(el, \"value\", null, props.value, namespace);\n }\n if (vnodeHook = props.onVnodeBeforeMount) {\n invokeVNodeHook(vnodeHook, parentComponent, vnode);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n def(el, \"__vnode\", vnode, true);\n def(el, \"__vueParentComponent\", parentComponent, true);\n }\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"beforeMount\");\n }\n const needCallTransitionHooks = needTransition(parentSuspense, transition);\n if (needCallTransitionHooks) {\n transition.beforeEnter(el);\n }\n hostInsert(el, container, anchor);\n if ((vnodeHook = props && props.onVnodeMounted) || needCallTransitionHooks || dirs) {\n queuePostRenderEffect(() => {\n vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);\n needCallTransitionHooks && transition.enter(el);\n dirs && invokeDirectiveHook(vnode, null, parentComponent, \"mounted\");\n }, parentSuspense);\n }\n };\n const setScopeId = (el, vnode, scopeId, slotScopeIds, parentComponent) => {\n if (scopeId) {\n hostSetScopeId(el, scopeId);\n }\n if (slotScopeIds) {\n for (let i = 0; i < slotScopeIds.length; i++) {\n hostSetScopeId(el, slotScopeIds[i]);\n }\n }\n if (parentComponent) {\n let subTree = parentComponent.subTree;\n if (!!(process.env.NODE_ENV !== \"production\") && subTree.patchFlag > 0 && subTree.patchFlag & 2048) {\n subTree = filterSingleRoot(subTree.children) || subTree;\n }\n if (vnode === subTree || isSuspense(subTree.type) && (subTree.ssContent === vnode || subTree.ssFallback === vnode)) {\n const parentVNode = parentComponent.vnode;\n setScopeId(\n el,\n parentVNode,\n parentVNode.scopeId,\n parentVNode.slotScopeIds,\n parentComponent.parent\n );\n }\n }\n };\n const mountChildren = (children, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, start = 0) => {\n for (let i = start; i < children.length; i++) {\n const child = children[i] = optimized ? cloneIfMounted(children[i]) : normalizeVNode(children[i]);\n patch(\n null,\n child,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n };\n const patchElement = (n1, n2, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n const el = n2.el = n1.el;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n el.__vnode = n2;\n }\n let { patchFlag, dynamicChildren, dirs } = n2;\n patchFlag |= n1.patchFlag & 16;\n const oldProps = n1.props || EMPTY_OBJ;\n const newProps = n2.props || EMPTY_OBJ;\n let vnodeHook;\n parentComponent && toggleRecurse(parentComponent, false);\n if (vnodeHook = newProps.onVnodeBeforeUpdate) {\n invokeVNodeHook(vnodeHook, parentComponent, n2, n1);\n }\n if (dirs) {\n invokeDirectiveHook(n2, n1, parentComponent, \"beforeUpdate\");\n }\n parentComponent && toggleRecurse(parentComponent, true);\n if (!!(process.env.NODE_ENV !== \"production\") && isHmrUpdating) {\n patchFlag = 0;\n optimized = false;\n dynamicChildren = null;\n }\n if (oldProps.innerHTML && newProps.innerHTML == null || oldProps.textContent && newProps.textContent == null) {\n hostSetElementText(el, \"\");\n }\n if (dynamicChildren) {\n patchBlockChildren(\n n1.dynamicChildren,\n dynamicChildren,\n el,\n parentComponent,\n parentSuspense,\n resolveChildrenNamespace(n2, namespace),\n slotScopeIds\n );\n if (!!(process.env.NODE_ENV !== \"production\")) {\n traverseStaticChildren(n1, n2);\n }\n } else if (!optimized) {\n patchChildren(\n n1,\n n2,\n el,\n null,\n parentComponent,\n parentSuspense,\n resolveChildrenNamespace(n2, namespace),\n slotScopeIds,\n false\n );\n }\n if (patchFlag > 0) {\n if (patchFlag & 16) {\n patchProps(el, oldProps, newProps, parentComponent, namespace);\n } else {\n if (patchFlag & 2) {\n if (oldProps.class !== newProps.class) {\n hostPatchProp(el, \"class\", null, newProps.class, namespace);\n }\n }\n if (patchFlag & 4) {\n hostPatchProp(el, \"style\", oldProps.style, newProps.style, namespace);\n }\n if (patchFlag & 8) {\n const propsToUpdate = n2.dynamicProps;\n for (let i = 0; i < propsToUpdate.length; i++) {\n const key = propsToUpdate[i];\n const prev = oldProps[key];\n const next = newProps[key];\n if (next !== prev || key === \"value\") {\n hostPatchProp(el, key, prev, next, namespace, parentComponent);\n }\n }\n }\n }\n if (patchFlag & 1) {\n if (n1.children !== n2.children) {\n hostSetElementText(el, n2.children);\n }\n }\n } else if (!optimized && dynamicChildren == null) {\n patchProps(el, oldProps, newProps, parentComponent, namespace);\n }\n if ((vnodeHook = newProps.onVnodeUpdated) || dirs) {\n queuePostRenderEffect(() => {\n vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, n2, n1);\n dirs && invokeDirectiveHook(n2, n1, parentComponent, \"updated\");\n }, parentSuspense);\n }\n };\n const patchBlockChildren = (oldChildren, newChildren, fallbackContainer, parentComponent, parentSuspense, namespace, slotScopeIds) => {\n for (let i = 0; i < newChildren.length; i++) {\n const oldVNode = oldChildren[i];\n const newVNode = newChildren[i];\n const container = (\n // oldVNode may be an errored async setup() component inside Suspense\n // which will not have a mounted element\n oldVNode.el && // - In the case of a Fragment, we need to provide the actual parent\n // of the Fragment itself so it can move its children.\n (oldVNode.type === Fragment || // - In the case of different nodes, there is going to be a replacement\n // which also requires the correct parent container\n !isSameVNodeType(oldVNode, newVNode) || // - In the case of a component, it could contain anything.\n oldVNode.shapeFlag & (6 | 64)) ? hostParentNode(oldVNode.el) : (\n // In other cases, the parent container is not actually used so we\n // just pass the block element here to avoid a DOM parentNode call.\n fallbackContainer\n )\n );\n patch(\n oldVNode,\n newVNode,\n container,\n null,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n true\n );\n }\n };\n const patchProps = (el, oldProps, newProps, parentComponent, namespace) => {\n if (oldProps !== newProps) {\n if (oldProps !== EMPTY_OBJ) {\n for (const key in oldProps) {\n if (!isReservedProp(key) && !(key in newProps)) {\n hostPatchProp(\n el,\n key,\n oldProps[key],\n null,\n namespace,\n parentComponent\n );\n }\n }\n }\n for (const key in newProps) {\n if (isReservedProp(key)) continue;\n const next = newProps[key];\n const prev = oldProps[key];\n if (next !== prev && key !== \"value\") {\n hostPatchProp(el, key, prev, next, namespace, parentComponent);\n }\n }\n if (\"value\" in newProps) {\n hostPatchProp(el, \"value\", oldProps.value, newProps.value, namespace);\n }\n }\n };\n const processFragment = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n const fragmentStartAnchor = n2.el = n1 ? n1.el : hostCreateText(\"\");\n const fragmentEndAnchor = n2.anchor = n1 ? n1.anchor : hostCreateText(\"\");\n let { patchFlag, dynamicChildren, slotScopeIds: fragmentSlotScopeIds } = n2;\n if (!!(process.env.NODE_ENV !== \"production\") && // #5523 dev root fragment may inherit directives\n (isHmrUpdating || patchFlag & 2048)) {\n patchFlag = 0;\n optimized = false;\n dynamicChildren = null;\n }\n if (fragmentSlotScopeIds) {\n slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;\n }\n if (n1 == null) {\n hostInsert(fragmentStartAnchor, container, anchor);\n hostInsert(fragmentEndAnchor, container, anchor);\n mountChildren(\n // #10007\n // such fragment like `<></>` will be compiled into\n // a fragment which doesn't have a children.\n // In this case fallback to an empty array\n n2.children || [],\n container,\n fragmentEndAnchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else {\n if (patchFlag > 0 && patchFlag & 64 && dynamicChildren && // #2715 the previous fragment could've been a BAILed one as a result\n // of renderSlot() with no valid children\n n1.dynamicChildren) {\n patchBlockChildren(\n n1.dynamicChildren,\n dynamicChildren,\n container,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds\n );\n if (!!(process.env.NODE_ENV !== \"production\")) {\n traverseStaticChildren(n1, n2);\n } else if (\n // #2080 if the stable fragment has a key, it's a <template v-for> that may\n // get moved around. Make sure all root level vnodes inherit el.\n // #2134 or if it's a component root, it may also get moved around\n // as the component is being moved.\n n2.key != null || parentComponent && n2 === parentComponent.subTree\n ) {\n traverseStaticChildren(\n n1,\n n2,\n true\n /* shallow */\n );\n }\n } else {\n patchChildren(\n n1,\n n2,\n container,\n fragmentEndAnchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n }\n };\n const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n n2.slotScopeIds = slotScopeIds;\n if (n1 == null) {\n if (n2.shapeFlag & 512) {\n parentComponent.ctx.activate(\n n2,\n container,\n anchor,\n namespace,\n optimized\n );\n } else {\n mountComponent(\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n optimized\n );\n }\n } else {\n updateComponent(n1, n2, optimized);\n }\n };\n const mountComponent = (initialVNode, container, anchor, parentComponent, parentSuspense, namespace, optimized) => {\n const instance = (initialVNode.component = createComponentInstance(\n initialVNode,\n parentComponent,\n parentSuspense\n ));\n if (!!(process.env.NODE_ENV !== \"production\") && instance.type.__hmrId) {\n registerHMR(instance);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n pushWarningContext(initialVNode);\n startMeasure(instance, `mount`);\n }\n if (isKeepAlive(initialVNode)) {\n instance.ctx.renderer = internals;\n }\n {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `init`);\n }\n setupComponent(instance, false, optimized);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `init`);\n }\n }\n if (instance.asyncDep) {\n if (!!(process.env.NODE_ENV !== \"production\") && isHmrUpdating) initialVNode.el = null;\n parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect, optimized);\n if (!initialVNode.el) {\n const placeholder = instance.subTree = createVNode(Comment);\n processCommentNode(null, placeholder, container, anchor);\n }\n } else {\n setupRenderEffect(\n instance,\n initialVNode,\n container,\n anchor,\n parentSuspense,\n namespace,\n optimized\n );\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n popWarningContext();\n endMeasure(instance, `mount`);\n }\n };\n const updateComponent = (n1, n2, optimized) => {\n const instance = n2.component = n1.component;\n if (shouldUpdateComponent(n1, n2, optimized)) {\n if (instance.asyncDep && !instance.asyncResolved) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n pushWarningContext(n2);\n }\n updateComponentPreRender(instance, n2, optimized);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n popWarningContext();\n }\n return;\n } else {\n instance.next = n2;\n instance.update();\n }\n } else {\n n2.el = n1.el;\n instance.vnode = n2;\n }\n };\n const setupRenderEffect = (instance, initialVNode, container, anchor, parentSuspense, namespace, optimized) => {\n const componentUpdateFn = () => {\n if (!instance.isMounted) {\n let vnodeHook;\n const { el, props } = initialVNode;\n const { bm, m, parent, root, type } = instance;\n const isAsyncWrapperVNode = isAsyncWrapper(initialVNode);\n toggleRecurse(instance, false);\n if (bm) {\n invokeArrayFns(bm);\n }\n if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeBeforeMount)) {\n invokeVNodeHook(vnodeHook, parent, initialVNode);\n }\n toggleRecurse(instance, true);\n if (el && hydrateNode) {\n const hydrateSubTree = () => {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `render`);\n }\n instance.subTree = renderComponentRoot(instance);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `render`);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `hydrate`);\n }\n hydrateNode(\n el,\n instance.subTree,\n instance,\n parentSuspense,\n null\n );\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `hydrate`);\n }\n };\n if (isAsyncWrapperVNode && type.__asyncHydrate) {\n type.__asyncHydrate(\n el,\n instance,\n hydrateSubTree\n );\n } else {\n hydrateSubTree();\n }\n } else {\n if (root.ce) {\n root.ce._injectChildStyle(type);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `render`);\n }\n const subTree = instance.subTree = renderComponentRoot(instance);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `render`);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `patch`);\n }\n patch(\n null,\n subTree,\n container,\n anchor,\n instance,\n parentSuspense,\n namespace\n );\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `patch`);\n }\n initialVNode.el = subTree.el;\n }\n if (m) {\n queuePostRenderEffect(m, parentSuspense);\n }\n if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeMounted)) {\n const scopedInitialVNode = initialVNode;\n queuePostRenderEffect(\n () => invokeVNodeHook(vnodeHook, parent, scopedInitialVNode),\n parentSuspense\n );\n }\n if (initialVNode.shapeFlag & 256 || parent && isAsyncWrapper(parent.vnode) && parent.vnode.shapeFlag & 256) {\n instance.a && queuePostRenderEffect(instance.a, parentSuspense);\n }\n instance.isMounted = true;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance);\n }\n initialVNode = container = anchor = null;\n } else {\n let { next, bu, u, parent, vnode } = instance;\n {\n const nonHydratedAsyncRoot = locateNonHydratedAsyncRoot(instance);\n if (nonHydratedAsyncRoot) {\n if (next) {\n next.el = vnode.el;\n updateComponentPreRender(instance, next, optimized);\n }\n nonHydratedAsyncRoot.asyncDep.then(() => {\n if (!instance.isUnmounted) {\n componentUpdateFn();\n }\n });\n return;\n }\n }\n let originNext = next;\n let vnodeHook;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n pushWarningContext(next || instance.vnode);\n }\n toggleRecurse(instance, false);\n if (next) {\n next.el = vnode.el;\n updateComponentPreRender(instance, next, optimized);\n } else {\n next = vnode;\n }\n if (bu) {\n invokeArrayFns(bu);\n }\n if (vnodeHook = next.props && next.props.onVnodeBeforeUpdate) {\n invokeVNodeHook(vnodeHook, parent, next, vnode);\n }\n toggleRecurse(instance, true);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `render`);\n }\n const nextTree = renderComponentRoot(instance);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `render`);\n }\n const prevTree = instance.subTree;\n instance.subTree = nextTree;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `patch`);\n }\n patch(\n prevTree,\n nextTree,\n // parent may have changed if it's in a teleport\n hostParentNode(prevTree.el),\n // anchor may have changed if it's in a fragment\n getNextHostNode(prevTree),\n instance,\n parentSuspense,\n namespace\n );\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `patch`);\n }\n next.el = nextTree.el;\n if (originNext === null) {\n updateHOCHostEl(instance, nextTree.el);\n }\n if (u) {\n queuePostRenderEffect(u, parentSuspense);\n }\n if (vnodeHook = next.props && next.props.onVnodeUpdated) {\n queuePostRenderEffect(\n () => invokeVNodeHook(vnodeHook, parent, next, vnode),\n parentSuspense\n );\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentUpdated(instance);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n popWarningContext();\n }\n }\n };\n instance.scope.on();\n const effect = instance.effect = new ReactiveEffect(componentUpdateFn);\n instance.scope.off();\n const update = instance.update = effect.run.bind(effect);\n const job = instance.job = effect.runIfDirty.bind(effect);\n job.i = instance;\n job.id = instance.uid;\n effect.scheduler = () => queueJob(job);\n toggleRecurse(instance, true);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n effect.onTrack = instance.rtc ? (e) => invokeArrayFns(instance.rtc, e) : void 0;\n effect.onTrigger = instance.rtg ? (e) => invokeArrayFns(instance.rtg, e) : void 0;\n }\n update();\n };\n const updateComponentPreRender = (instance, nextVNode, optimized) => {\n nextVNode.component = instance;\n const prevProps = instance.vnode.props;\n instance.vnode = nextVNode;\n instance.next = null;\n updateProps(instance, nextVNode.props, prevProps, optimized);\n updateSlots(instance, nextVNode.children, optimized);\n pauseTracking();\n flushPreFlushCbs(instance);\n resetTracking();\n };\n const patchChildren = (n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized = false) => {\n const c1 = n1 && n1.children;\n const prevShapeFlag = n1 ? n1.shapeFlag : 0;\n const c2 = n2.children;\n const { patchFlag, shapeFlag } = n2;\n if (patchFlag > 0) {\n if (patchFlag & 128) {\n patchKeyedChildren(\n c1,\n c2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n return;\n } else if (patchFlag & 256) {\n patchUnkeyedChildren(\n c1,\n c2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n return;\n }\n }\n if (shapeFlag & 8) {\n if (prevShapeFlag & 16) {\n unmountChildren(c1, parentComponent, parentSuspense);\n }\n if (c2 !== c1) {\n hostSetElementText(container, c2);\n }\n } else {\n if (prevShapeFlag & 16) {\n if (shapeFlag & 16) {\n patchKeyedChildren(\n c1,\n c2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else {\n unmountChildren(c1, parentComponent, parentSuspense, true);\n }\n } else {\n if (prevShapeFlag & 8) {\n hostSetElementText(container, \"\");\n }\n if (shapeFlag & 16) {\n mountChildren(\n c2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n }\n }\n };\n const patchUnkeyedChildren = (c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n c1 = c1 || EMPTY_ARR;\n c2 = c2 || EMPTY_ARR;\n const oldLength = c1.length;\n const newLength = c2.length;\n const commonLength = Math.min(oldLength, newLength);\n let i;\n for (i = 0; i < commonLength; i++) {\n const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);\n patch(\n c1[i],\n nextChild,\n container,\n null,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n if (oldLength > newLength) {\n unmountChildren(\n c1,\n parentComponent,\n parentSuspense,\n true,\n false,\n commonLength\n );\n } else {\n mountChildren(\n c2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized,\n commonLength\n );\n }\n };\n const patchKeyedChildren = (c1, c2, container, parentAnchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {\n let i = 0;\n const l2 = c2.length;\n let e1 = c1.length - 1;\n let e2 = l2 - 1;\n while (i <= e1 && i <= e2) {\n const n1 = c1[i];\n const n2 = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);\n if (isSameVNodeType(n1, n2)) {\n patch(\n n1,\n n2,\n container,\n null,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else {\n break;\n }\n i++;\n }\n while (i <= e1 && i <= e2) {\n const n1 = c1[e1];\n const n2 = c2[e2] = optimized ? cloneIfMounted(c2[e2]) : normalizeVNode(c2[e2]);\n if (isSameVNodeType(n1, n2)) {\n patch(\n n1,\n n2,\n container,\n null,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else {\n break;\n }\n e1--;\n e2--;\n }\n if (i > e1) {\n if (i <= e2) {\n const nextPos = e2 + 1;\n const anchor = nextPos < l2 ? c2[nextPos].el : parentAnchor;\n while (i <= e2) {\n patch(\n null,\n c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]),\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n i++;\n }\n }\n } else if (i > e2) {\n while (i <= e1) {\n unmount(c1[i], parentComponent, parentSuspense, true);\n i++;\n }\n } else {\n const s1 = i;\n const s2 = i;\n const keyToNewIndexMap = /* @__PURE__ */ new Map();\n for (i = s2; i <= e2; i++) {\n const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);\n if (nextChild.key != null) {\n if (!!(process.env.NODE_ENV !== \"production\") && keyToNewIndexMap.has(nextChild.key)) {\n warn$1(\n `Duplicate keys found during update:`,\n JSON.stringify(nextChild.key),\n `Make sure keys are unique.`\n );\n }\n keyToNewIndexMap.set(nextChild.key, i);\n }\n }\n let j;\n let patched = 0;\n const toBePatched = e2 - s2 + 1;\n let moved = false;\n let maxNewIndexSoFar = 0;\n const newIndexToOldIndexMap = new Array(toBePatched);\n for (i = 0; i < toBePatched; i++) newIndexToOldIndexMap[i] = 0;\n for (i = s1; i <= e1; i++) {\n const prevChild = c1[i];\n if (patched >= toBePatched) {\n unmount(prevChild, parentComponent, parentSuspense, true);\n continue;\n }\n let newIndex;\n if (prevChild.key != null) {\n newIndex = keyToNewIndexMap.get(prevChild.key);\n } else {\n for (j = s2; j <= e2; j++) {\n if (newIndexToOldIndexMap[j - s2] === 0 && isSameVNodeType(prevChild, c2[j])) {\n newIndex = j;\n break;\n }\n }\n }\n if (newIndex === void 0) {\n unmount(prevChild, parentComponent, parentSuspense, true);\n } else {\n newIndexToOldIndexMap[newIndex - s2] = i + 1;\n if (newIndex >= maxNewIndexSoFar) {\n maxNewIndexSoFar = newIndex;\n } else {\n moved = true;\n }\n patch(\n prevChild,\n c2[newIndex],\n container,\n null,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n patched++;\n }\n }\n const increasingNewIndexSequence = moved ? getSequence(newIndexToOldIndexMap) : EMPTY_ARR;\n j = increasingNewIndexSequence.length - 1;\n for (i = toBePatched - 1; i >= 0; i--) {\n const nextIndex = s2 + i;\n const nextChild = c2[nextIndex];\n const anchor = nextIndex + 1 < l2 ? c2[nextIndex + 1].el : parentAnchor;\n if (newIndexToOldIndexMap[i] === 0) {\n patch(\n null,\n nextChild,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n } else if (moved) {\n if (j < 0 || i !== increasingNewIndexSequence[j]) {\n move(nextChild, container, anchor, 2);\n } else {\n j--;\n }\n }\n }\n }\n };\n const move = (vnode, container, anchor, moveType, parentSuspense = null) => {\n const { el, type, transition, children, shapeFlag } = vnode;\n if (shapeFlag & 6) {\n move(vnode.component.subTree, container, anchor, moveType);\n return;\n }\n if (shapeFlag & 128) {\n vnode.suspense.move(container, anchor, moveType);\n return;\n }\n if (shapeFlag & 64) {\n type.move(vnode, container, anchor, internals);\n return;\n }\n if (type === Fragment) {\n hostInsert(el, container, anchor);\n for (let i = 0; i < children.length; i++) {\n move(children[i], container, anchor, moveType);\n }\n hostInsert(vnode.anchor, container, anchor);\n return;\n }\n if (type === Static) {\n moveStaticNode(vnode, container, anchor);\n return;\n }\n const needTransition2 = moveType !== 2 && shapeFlag & 1 && transition;\n if (needTransition2) {\n if (moveType === 0) {\n transition.beforeEnter(el);\n hostInsert(el, container, anchor);\n queuePostRenderEffect(() => transition.enter(el), parentSuspense);\n } else {\n const { leave, delayLeave, afterLeave } = transition;\n const remove2 = () => hostInsert(el, container, anchor);\n const performLeave = () => {\n leave(el, () => {\n remove2();\n afterLeave && afterLeave();\n });\n };\n if (delayLeave) {\n delayLeave(el, remove2, performLeave);\n } else {\n performLeave();\n }\n }\n } else {\n hostInsert(el, container, anchor);\n }\n };\n const unmount = (vnode, parentComponent, parentSuspense, doRemove = false, optimized = false) => {\n const {\n type,\n props,\n ref,\n children,\n dynamicChildren,\n shapeFlag,\n patchFlag,\n dirs,\n cacheIndex\n } = vnode;\n if (patchFlag === -2) {\n optimized = false;\n }\n if (ref != null) {\n setRef(ref, null, parentSuspense, vnode, true);\n }\n if (cacheIndex != null) {\n parentComponent.renderCache[cacheIndex] = void 0;\n }\n if (shapeFlag & 256) {\n parentComponent.ctx.deactivate(vnode);\n return;\n }\n const shouldInvokeDirs = shapeFlag & 1 && dirs;\n const shouldInvokeVnodeHook = !isAsyncWrapper(vnode);\n let vnodeHook;\n if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeBeforeUnmount)) {\n invokeVNodeHook(vnodeHook, parentComponent, vnode);\n }\n if (shapeFlag & 6) {\n unmountComponent(vnode.component, parentSuspense, doRemove);\n } else {\n if (shapeFlag & 128) {\n vnode.suspense.unmount(parentSuspense, doRemove);\n return;\n }\n if (shouldInvokeDirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"beforeUnmount\");\n }\n if (shapeFlag & 64) {\n vnode.type.remove(\n vnode,\n parentComponent,\n parentSuspense,\n internals,\n doRemove\n );\n } else if (dynamicChildren && // #5154\n // when v-once is used inside a block, setBlockTracking(-1) marks the\n // parent block with hasOnce: true\n // so that it doesn't take the fast path during unmount - otherwise\n // components nested in v-once are never unmounted.\n !dynamicChildren.hasOnce && // #1153: fast path should not be taken for non-stable (v-for) fragments\n (type !== Fragment || patchFlag > 0 && patchFlag & 64)) {\n unmountChildren(\n dynamicChildren,\n parentComponent,\n parentSuspense,\n false,\n true\n );\n } else if (type === Fragment && patchFlag & (128 | 256) || !optimized && shapeFlag & 16) {\n unmountChildren(children, parentComponent, parentSuspense);\n }\n if (doRemove) {\n remove(vnode);\n }\n }\n if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeUnmounted) || shouldInvokeDirs) {\n queuePostRenderEffect(() => {\n vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);\n shouldInvokeDirs && invokeDirectiveHook(vnode, null, parentComponent, \"unmounted\");\n }, parentSuspense);\n }\n };\n const remove = (vnode) => {\n const { type, el, anchor, transition } = vnode;\n if (type === Fragment) {\n if (!!(process.env.NODE_ENV !== \"production\") && vnode.patchFlag > 0 && vnode.patchFlag & 2048 && transition && !transition.persisted) {\n vnode.children.forEach((child) => {\n if (child.type === Comment) {\n hostRemove(child.el);\n } else {\n remove(child);\n }\n });\n } else {\n removeFragment(el, anchor);\n }\n return;\n }\n if (type === Static) {\n removeStaticNode(vnode);\n return;\n }\n const performRemove = () => {\n hostRemove(el);\n if (transition && !transition.persisted && transition.afterLeave) {\n transition.afterLeave();\n }\n };\n if (vnode.shapeFlag & 1 && transition && !transition.persisted) {\n const { leave, delayLeave } = transition;\n const performLeave = () => leave(el, performRemove);\n if (delayLeave) {\n delayLeave(vnode.el, performRemove, performLeave);\n } else {\n performLeave();\n }\n } else {\n performRemove();\n }\n };\n const removeFragment = (cur, end) => {\n let next;\n while (cur !== end) {\n next = hostNextSibling(cur);\n hostRemove(cur);\n cur = next;\n }\n hostRemove(end);\n };\n const unmountComponent = (instance, parentSuspense, doRemove) => {\n if (!!(process.env.NODE_ENV !== \"production\") && instance.type.__hmrId) {\n unregisterHMR(instance);\n }\n const { bum, scope, job, subTree, um, m, a } = instance;\n invalidateMount(m);\n invalidateMount(a);\n if (bum) {\n invokeArrayFns(bum);\n }\n scope.stop();\n if (job) {\n job.flags |= 8;\n unmount(subTree, instance, parentSuspense, doRemove);\n }\n if (um) {\n queuePostRenderEffect(um, parentSuspense);\n }\n queuePostRenderEffect(() => {\n instance.isUnmounted = true;\n }, parentSuspense);\n if (parentSuspense && parentSuspense.pendingBranch && !parentSuspense.isUnmounted && instance.asyncDep && !instance.asyncResolved && instance.suspenseId === parentSuspense.pendingId) {\n parentSuspense.deps--;\n if (parentSuspense.deps === 0) {\n parentSuspense.resolve();\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentRemoved(instance);\n }\n };\n const unmountChildren = (children, parentComponent, parentSuspense, doRemove = false, optimized = false, start = 0) => {\n for (let i = start; i < children.length; i++) {\n unmount(children[i], parentComponent, parentSuspense, doRemove, optimized);\n }\n };\n const getNextHostNode = (vnode) => {\n if (vnode.shapeFlag & 6) {\n return getNextHostNode(vnode.component.subTree);\n }\n if (vnode.shapeFlag & 128) {\n return vnode.suspense.next();\n }\n const el = hostNextSibling(vnode.anchor || vnode.el);\n const teleportEnd = el && el[TeleportEndKey];\n return teleportEnd ? hostNextSibling(teleportEnd) : el;\n };\n let isFlushing = false;\n const render = (vnode, container, namespace) => {\n if (vnode == null) {\n if (container._vnode) {\n unmount(container._vnode, null, null, true);\n }\n } else {\n patch(\n container._vnode || null,\n vnode,\n container,\n null,\n null,\n null,\n namespace\n );\n }\n container._vnode = vnode;\n if (!isFlushing) {\n isFlushing = true;\n flushPreFlushCbs();\n flushPostFlushCbs();\n isFlushing = false;\n }\n };\n const internals = {\n p: patch,\n um: unmount,\n m: move,\n r: remove,\n mt: mountComponent,\n mc: mountChildren,\n pc: patchChildren,\n pbc: patchBlockChildren,\n n: getNextHostNode,\n o: options\n };\n let hydrate;\n let hydrateNode;\n if (createHydrationFns) {\n [hydrate, hydrateNode] = createHydrationFns(\n internals\n );\n }\n return {\n render,\n hydrate,\n createApp: createAppAPI(render, hydrate)\n };\n}\nfunction resolveChildrenNamespace({ type, props }, currentNamespace) {\n return currentNamespace === \"svg\" && type === \"foreignObject\" || currentNamespace === \"mathml\" && type === \"annotation-xml\" && props && props.encoding && props.encoding.includes(\"html\") ? void 0 : currentNamespace;\n}\nfunction toggleRecurse({ effect, job }, allowed) {\n if (allowed) {\n effect.flags |= 32;\n job.flags |= 4;\n } else {\n effect.flags &= ~32;\n job.flags &= ~4;\n }\n}\nfunction needTransition(parentSuspense, transition) {\n return (!parentSuspense || parentSuspense && !parentSuspense.pendingBranch) && transition && !transition.persisted;\n}\nfunction traverseStaticChildren(n1, n2, shallow = false) {\n const ch1 = n1.children;\n const ch2 = n2.children;\n if (isArray(ch1) && isArray(ch2)) {\n for (let i = 0; i < ch1.length; i++) {\n const c1 = ch1[i];\n let c2 = ch2[i];\n if (c2.shapeFlag & 1 && !c2.dynamicChildren) {\n if (c2.patchFlag <= 0 || c2.patchFlag === 32) {\n c2 = ch2[i] = cloneIfMounted(ch2[i]);\n c2.el = c1.el;\n }\n if (!shallow && c2.patchFlag !== -2)\n traverseStaticChildren(c1, c2);\n }\n if (c2.type === Text) {\n c2.el = c1.el;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && c2.type === Comment && !c2.el) {\n c2.el = c1.el;\n }\n }\n }\n}\nfunction getSequence(arr) {\n const p = arr.slice();\n const result = [0];\n let i, j, u, v, c;\n const len = arr.length;\n for (i = 0; i < len; i++) {\n const arrI = arr[i];\n if (arrI !== 0) {\n j = result[result.length - 1];\n if (arr[j] < arrI) {\n p[i] = j;\n result.push(i);\n continue;\n }\n u = 0;\n v = result.length - 1;\n while (u < v) {\n c = u + v >> 1;\n if (arr[result[c]] < arrI) {\n u = c + 1;\n } else {\n v = c;\n }\n }\n if (arrI < arr[result[u]]) {\n if (u > 0) {\n p[i] = result[u - 1];\n }\n result[u] = i;\n }\n }\n }\n u = result.length;\n v = result[u - 1];\n while (u-- > 0) {\n result[u] = v;\n v = p[v];\n }\n return result;\n}\nfunction locateNonHydratedAsyncRoot(instance) {\n const subComponent = instance.subTree.component;\n if (subComponent) {\n if (subComponent.asyncDep && !subComponent.asyncResolved) {\n return subComponent;\n } else {\n return locateNonHydratedAsyncRoot(subComponent);\n }\n }\n}\nfunction invalidateMount(hooks) {\n if (hooks) {\n for (let i = 0; i < hooks.length; i++)\n hooks[i].flags |= 8;\n }\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}\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, options = EMPTY_OBJ) {\n const { immediate, deep, flush, once } = options;\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 baseWatchOptions = extend({}, options);\n if (!!(process.env.NODE_ENV !== \"production\")) baseWatchOptions.onWarn = warn$1;\n let ssrCleanup;\n if (isInSSRComponentSetup) {\n if (flush === \"sync\") {\n const ctx = useSSRContext();\n ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []);\n } else if (!cb || immediate) {\n baseWatchOptions.once = true;\n } else {\n const watchStopHandle = () => {\n };\n watchStopHandle.stop = NOOP;\n watchStopHandle.resume = NOOP;\n watchStopHandle.pause = NOOP;\n return watchStopHandle;\n }\n }\n const instance = currentInstance;\n baseWatchOptions.call = (fn, type, args) => callWithAsyncErrorHandling(fn, instance, type, args);\n let isPre = false;\n if (flush === \"post\") {\n baseWatchOptions.scheduler = (job) => {\n queuePostRenderEffect(job, instance && instance.suspense);\n };\n } else if (flush !== \"sync\") {\n isPre = true;\n baseWatchOptions.scheduler = (job, isFirstRun) => {\n if (isFirstRun) {\n job();\n } else {\n queueJob(job);\n }\n };\n }\n baseWatchOptions.augmentJob = (job) => {\n if (cb) {\n job.flags |= 4;\n }\n if (isPre) {\n job.flags |= 2;\n if (instance) {\n job.id = instance.uid;\n job.i = instance;\n }\n }\n };\n const watchHandle = watch$1(source, cb, baseWatchOptions);\n if (ssrCleanup) ssrCleanup.push(watchHandle);\n return watchHandle;\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 reset = setCurrentInstance(this);\n const res = doWatch(getter, cb.bind(publicThis), options);\n reset();\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}\n\nfunction useModel(props, name, options = EMPTY_OBJ) {\n const i = getCurrentInstance();\n if (!!(process.env.NODE_ENV !== \"production\") && !i) {\n warn$1(`useModel() called without active instance.`);\n return ref();\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !i.propsOptions[0][name]) {\n warn$1(`useModel() called with prop \"${name}\" which is not declared.`);\n return ref();\n }\n const camelizedName = camelize(name);\n const hyphenatedName = hyphenate(name);\n const modifiers = getModelModifiers(props, name);\n const res = customRef((track, trigger) => {\n let localValue;\n let prevSetValue = EMPTY_OBJ;\n let prevEmittedValue;\n watchSyncEffect(() => {\n const propValue = props[name];\n if (hasChanged(localValue, propValue)) {\n localValue = propValue;\n trigger();\n }\n });\n return {\n get() {\n track();\n return options.get ? options.get(localValue) : localValue;\n },\n set(value) {\n const emittedValue = options.set ? options.set(value) : value;\n if (!hasChanged(emittedValue, localValue) && !(prevSetValue !== EMPTY_OBJ && hasChanged(value, prevSetValue))) {\n return;\n }\n const rawProps = i.vnode.props;\n if (!(rawProps && // check if parent has passed v-model\n (name in rawProps || camelizedName in rawProps || hyphenatedName in rawProps) && (`onUpdate:${name}` in rawProps || `onUpdate:${camelizedName}` in rawProps || `onUpdate:${hyphenatedName}` in rawProps))) {\n localValue = value;\n trigger();\n }\n i.emit(`update:${name}`, emittedValue);\n if (hasChanged(value, emittedValue) && hasChanged(value, prevSetValue) && !hasChanged(emittedValue, prevEmittedValue)) {\n trigger();\n }\n prevSetValue = value;\n prevEmittedValue = emittedValue;\n }\n };\n });\n res[Symbol.iterator] = () => {\n let i2 = 0;\n return {\n next() {\n if (i2 < 2) {\n return { value: i2++ ? modifiers || EMPTY_OBJ : res, done: false };\n } else {\n return { done: true };\n }\n }\n };\n };\n return res;\n}\nconst getModelModifiers = (props, modelName) => {\n return modelName === \"modelValue\" || modelName === \"model-value\" ? props.modelModifiers : props[`${modelName}Modifiers`] || props[`${camelize(modelName)}Modifiers`] || props[`${hyphenate(modelName)}Modifiers`];\n};\n\nfunction emit(instance, event, ...rawArgs) {\n if (instance.isUnmounted) 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(camelize(event)) in propsOptions)) {\n warn$1(\n `Component emitted event \"${event}\" but it is neither declared in the emits option nor as an \"${toHandlerKey(camelize(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 modifiers = isModelListener && getModelModifiers(props, event.slice(7));\n if (modifiers) {\n if (modifiers.trim) {\n args = rawArgs.map((a) => isString(a) ? a.trim() : a);\n }\n if (modifiers.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 accessedAttrs = false;\nfunction markAttrsAccessed() {\n accessedAttrs = true;\n}\nfunction renderComponentRoot(instance) {\n const {\n type: Component,\n vnode,\n proxy,\n withProxy,\n propsOptions: [propsOptions],\n slots,\n attrs,\n emit,\n render,\n renderCache,\n props,\n data,\n setupState,\n ctx,\n inheritAttrs\n } = instance;\n const prev = setCurrentRenderingInstance(instance);\n let result;\n let fallthroughAttrs;\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 !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(props) : 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 !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(props) : props,\n !!(process.env.NODE_ENV !== \"production\") ? {\n get attrs() {\n markAttrsAccessed();\n return shallowReadonly(attrs);\n },\n slots,\n emit\n } : { attrs, slots, emit }\n ) : render2(\n !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(props) : props,\n null\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, false, true);\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, null, false, true);\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 <Transition> renders non-element root node that cannot be animated.`\n );\n }\n setTransitionHooks(root, 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, false);\n if (!childRoot) {\n return [vnode, void 0];\n } else if (!!(process.env.NODE_ENV !== \"production\") && childRoot.patchFlag > 0 && childRoot.patchFlag & 2048) {\n return getChildRoot(childRoot);\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, recurse = true) {\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 if (!!(process.env.NODE_ENV !== \"production\") && recurse && singleRoot.patchFlag > 0 && singleRoot.patchFlag & 2048) {\n return filterSingleRoot(singleRoot.children);\n }\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 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 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 if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback) {\n n2.suspense = n1.suspense;\n n2.suspense.vnode = n2;\n n2.el = n1.el;\n return;\n }\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 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 `<Suspense> 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 && 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) === container2) {\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, optimized2) {\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 optimized2\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(`<Suspense> 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 let el = branch.el;\n while (!el && branch.component) {\n branch = branch.component.subTree;\n el = branch.el;\n }\n vnode.el = el;\n if (parentComponent && parentComponent.subTree === vnode) {\n parentComponent.vnode.el = el;\n updateHOCHostEl(parentComponent, el);\n }\n}\nfunction isVNodeSuspensible(vnode) {\n const suspensible = vnode.props && vnode.props.suspensible;\n return suspensible != null && suspensible !== false;\n}\n\nconst Fragment = Symbol.for(\"v-fgt\");\nconst Text = Symbol.for(\"v-txt\");\nconst Comment = Symbol.for(\"v-cmt\");\nconst Static = Symbol.for(\"v-stc\");\nconst blockStack = [];\nlet currentBlock = null;\nfunction openBlock(disableTracking = false) {\n blockStack.push(currentBlock = disableTracking ? null : []);\n}\nfunction closeBlock() {\n blockStack.pop();\n currentBlock = blockStack[blockStack.length - 1] || null;\n}\nlet isBlockTreeEnabled = 1;\nfunction setBlockTracking(value) {\n isBlockTreeEnabled += value;\n if (value < 0 && currentBlock) {\n currentBlock.hasOnce = true;\n }\n}\nfunction setupBlock(vnode) {\n vnode.dynamicChildren = isBlockTreeEnabled > 0 ? currentBlock || EMPTY_ARR : null;\n closeBlock();\n if (isBlockTreeEnabled > 0 && currentBlock) {\n currentBlock.push(vnode);\n }\n return vnode;\n}\nfunction createElementBlock(type, props, children, patchFlag, dynamicProps, shapeFlag) {\n return setupBlock(\n createBaseVNode(\n type,\n props,\n children,\n patchFlag,\n dynamicProps,\n shapeFlag,\n true\n )\n );\n}\nfunction createBlock(type, props, children, patchFlag, dynamicProps) {\n return setupBlock(\n createVNode(\n type,\n props,\n children,\n patchFlag,\n dynamicProps,\n true\n )\n );\n}\nfunction isVNode(value) {\n return value ? value.__v_isVNode === true : false;\n}\nfunction isSameVNodeType(n1, n2) {\n if (!!(process.env.NODE_ENV !== \"production\") && n2.shapeFlag & 6 && n1.component) {\n const dirtyInstances = hmrDirtyComponents.get(n2.type);\n if (dirtyInstances && dirtyInstances.has(n1.component)) {\n n1.shapeFlag &= ~256;\n n2.shapeFlag &= ~512;\n return false;\n }\n }\n return n1.type === n2.type && n1.key === n2.key;\n}\nlet vnodeArgsTransformer;\nfunction transformVNodeArgs(transformer) {\n vnodeArgsTransformer = transformer;\n}\nconst createVNodeWithArgsTransform = (...args) => {\n return _createVNode(\n ...vnodeArgsTransformer ? vnodeArgsTransformer(args, currentRenderingInstance) : args\n );\n};\nconst normalizeKey = ({ key }) => key != null ? key : null;\nconst normalizeRef = ({\n ref,\n ref_key,\n ref_for\n}) => {\n if (typeof ref === \"number\") {\n ref = \"\" + ref;\n }\n return ref != null ? isString(ref) || isRef(ref) || isFunction(ref) ? { i: currentRenderingInstance, r: ref, k: ref_key, f: !!ref_for } : ref : null;\n};\nfunction createBaseVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, shapeFlag = type === Fragment ? 0 : 1, isBlockNode = false, needFullChildrenNormalization = false) {\n const vnode = {\n __v_isVNode: true,\n __v_skip: true,\n type,\n props,\n key: props && normalizeKey(props),\n ref: props && normalizeRef(props),\n scopeId: currentScopeId,\n slotScopeIds: null,\n children,\n component: null,\n suspense: null,\n ssContent: null,\n ssFallback: null,\n dirs: null,\n transition: null,\n el: null,\n anchor: null,\n target: null,\n targetStart: null,\n targetAnchor: null,\n staticCount: 0,\n shapeFlag,\n patchFlag,\n dynamicProps,\n dynamicChildren: null,\n appContext: null,\n ctx: currentRenderingInstance\n };\n if (needFullChildrenNormalization) {\n normalizeChildren(vnode, children);\n if (shapeFlag & 128) {\n type.normalize(vnode);\n }\n } else if (children) {\n vnode.shapeFlag |= isString(children) ? 8 : 16;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && vnode.key !== vnode.key) {\n warn$1(`VNode created with invalid key (NaN). VNode type:`, vnode.type);\n }\n if (isBlockTreeEnabled > 0 && // avoid a block node from tracking itself\n !isBlockNode && // has current parent block\n currentBlock && // presence of a patch flag indicates this node needs patching on updates.\n // component nodes also should always be patched, because even if the\n // component doesn't need to update, it needs to persist the instance on to\n // the next vnode so that it can be properly unmounted later.\n (vnode.patchFlag > 0 || shapeFlag & 6) && // the EVENTS flag is only for hydration and if it is the only flag, the\n // vnode should not be considered dynamic due to handler caching.\n vnode.patchFlag !== 32) {\n currentBlock.push(vnode);\n }\n return vnode;\n}\nconst createVNode = !!(process.env.NODE_ENV !== \"production\") ? createVNodeWithArgsTransform : _createVNode;\nfunction _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) {\n if (!type || type === NULL_DYNAMIC_COMPONENT) {\n if (!!(process.env.NODE_ENV !== \"production\") && !type) {\n warn$1(`Invalid vnode type when creating vnode: ${type}.`);\n }\n type = Comment;\n }\n if (isVNode(type)) {\n const cloned = cloneVNode(\n type,\n props,\n true\n /* mergeRef: true */\n );\n if (children) {\n normalizeChildren(cloned, children);\n }\n if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) {\n if (cloned.shapeFlag & 6) {\n currentBlock[currentBlock.indexOf(type)] = cloned;\n } else {\n currentBlock.push(cloned);\n }\n }\n cloned.patchFlag = -2;\n return cloned;\n }\n if (isClassComponent(type)) {\n type = type.__vccOpts;\n }\n if (props) {\n props = guardReactiveProps(props);\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (isObject(style)) {\n if (isProxy(style) && !isArray(style)) {\n style = extend({}, style);\n }\n props.style = normalizeStyle(style);\n }\n }\n const shapeFlag = isString(type) ? 1 : isSuspense(type) ? 128 : isTeleport(type) ? 64 : isObject(type) ? 4 : isFunction(type) ? 2 : 0;\n if (!!(process.env.NODE_ENV !== \"production\") && shapeFlag & 4 && isProxy(type)) {\n type = toRaw(type);\n warn$1(\n `Vue received a Component that was made a reactive object. This can lead to unnecessary performance overhead and should be avoided by marking the component with \\`markRaw\\` or using \\`shallowRef\\` instead of \\`ref\\`.`,\n `\nComponent that was made reactive: `,\n type\n );\n }\n return createBaseVNode(\n type,\n props,\n children,\n patchFlag,\n dynamicProps,\n shapeFlag,\n isBlockNode,\n true\n );\n}\nfunction guardReactiveProps(props) {\n if (!props) return null;\n return isProxy(props) || isInternalObject(props) ? extend({}, props) : props;\n}\nfunction cloneVNode(vnode, extraProps, mergeRef = false, cloneTransition = false) {\n const { props, ref, patchFlag, children, transition } = vnode;\n const mergedProps = extraProps ? mergeProps(props || {}, extraProps) : props;\n const cloned = {\n __v_isVNode: true,\n __v_skip: true,\n type: vnode.type,\n props: mergedProps,\n key: mergedProps && normalizeKey(mergedProps),\n ref: extraProps && extraProps.ref ? (\n // #2078 in the case of <component :is=\"vnode\" ref=\"extra\"/>\n // if the vnode itself already has a ref, cloneVNode will need to merge\n // the refs so the single vnode can be set on multiple refs\n mergeRef && ref ? isArray(ref) ? ref.concat(normalizeRef(extraProps)) : [ref, normalizeRef(extraProps)] : normalizeRef(extraProps)\n ) : ref,\n scopeId: vnode.scopeId,\n slotScopeIds: vnode.slotScopeIds,\n children: !!(process.env.NODE_ENV !== \"production\") && patchFlag === -1 && isArray(children) ? children.map(deepCloneVNode) : children,\n target: vnode.target,\n targetStart: vnode.targetStart,\n targetAnchor: vnode.targetAnchor,\n staticCount: vnode.staticCount,\n shapeFlag: vnode.shapeFlag,\n // if the vnode is cloned with extra props, we can no longer assume its\n // existing patch flag to be reliable and need to add the FULL_PROPS flag.\n // note: preserve flag for fragments since they use the flag for children\n // fast paths only.\n patchFlag: extraProps && vnode.type !== Fragment ? patchFlag === -1 ? 16 : patchFlag | 16 : patchFlag,\n dynamicProps: vnode.dynamicProps,\n dynamicChildren: vnode.dynamicChildren,\n appContext: vnode.appContext,\n dirs: vnode.dirs,\n transition,\n // These should technically only be non-null on mounted VNodes. However,\n // they *should* be copied for kept-alive vnodes. So we just always copy\n // them since them being non-null during a mount doesn't affect the logic as\n // they will simply be overwritten.\n component: vnode.component,\n suspense: vnode.suspense,\n ssContent: vnode.ssContent && cloneVNode(vnode.ssContent),\n ssFallback: vnode.ssFallback && cloneVNode(vnode.ssFallback),\n el: vnode.el,\n anchor: vnode.anchor,\n ctx: vnode.ctx,\n ce: vnode.ce\n };\n if (transition && cloneTransition) {\n setTransitionHooks(\n cloned,\n transition.clone(cloned)\n );\n }\n return cloned;\n}\nfunction deepCloneVNode(vnode) {\n const cloned = cloneVNode(vnode);\n if (isArray(vnode.children)) {\n cloned.children = vnode.children.map(deepCloneVNode);\n }\n return cloned;\n}\nfunction createTextVNode(text = \" \", flag = 0) {\n return createVNode(Text, null, text, flag);\n}\nfunction createStaticVNode(content, numberOfNodes) {\n const vnode = createVNode(Static, null, content);\n vnode.staticCount = numberOfNodes;\n return vnode;\n}\nfunction createCommentVNode(text = \"\", asBlock = false) {\n return asBlock ? (openBlock(), createBlock(Comment, null, text)) : createVNode(Comment, null, text);\n}\nfunction normalizeVNode(child) {\n if (child == null || typeof child === \"boolean\") {\n return createVNode(Comment);\n } else if (isArray(child)) {\n return createVNode(\n Fragment,\n null,\n // #3666, avoid reference pollution when reusing vnode\n child.slice()\n );\n } else if (typeof child === \"object\") {\n return cloneIfMounted(child);\n } else {\n return createVNode(Text, null, String(child));\n }\n}\nfunction cloneIfMounted(child) {\n return child.el === null && child.patchFlag !== -1 || child.memo ? child : cloneVNode(child);\n}\nfunction normalizeChildren(vnode, children) {\n let type = 0;\n const { shapeFlag } = vnode;\n if (children == null) {\n children = null;\n } else if (isArray(children)) {\n type = 16;\n } else if (typeof children === \"object\") {\n if (shapeFlag & (1 | 64)) {\n const slot = children.default;\n if (slot) {\n slot._c && (slot._d = false);\n normalizeChildren(vnode, slot());\n slot._c && (slot._d = true);\n }\n return;\n } else {\n type = 32;\n const slotFlag = children._;\n if (!slotFlag && !isInternalObject(children)) {\n children._ctx = currentRenderingInstance;\n } else if (slotFlag === 3 && currentRenderingInstance) {\n if (currentRenderingInstance.slots._ === 1) {\n children._ = 1;\n } else {\n children._ = 2;\n vnode.patchFlag |= 1024;\n }\n }\n }\n } else if (isFunction(children)) {\n children = { default: children, _ctx: currentRenderingInstance };\n type = 32;\n } else {\n children = String(children);\n if (shapeFlag & 64) {\n type = 16;\n children = [createTextVNode(children)];\n } else {\n type = 8;\n }\n }\n vnode.children = children;\n vnode.shapeFlag |= type;\n}\nfunction mergeProps(...args) {\n const ret = {};\n for (let i = 0; i < args.length; i++) {\n const toMerge = args[i];\n for (const key in toMerge) {\n if (key === \"class\") {\n if (ret.class !== toMerge.class) {\n ret.class = normalizeClass([ret.class, toMerge.class]);\n }\n } else if (key === \"style\") {\n ret.style = normalizeStyle([ret.style, toMerge.style]);\n } else if (isOn(key)) {\n const existing = ret[key];\n const incoming = toMerge[key];\n if (incoming && existing !== incoming && !(isArray(existing) && existing.includes(incoming))) {\n ret[key] = existing ? [].concat(existing, incoming) : incoming;\n }\n } else if (key !== \"\") {\n ret[key] = toMerge[key];\n }\n }\n }\n return ret;\n}\nfunction invokeVNodeHook(hook, instance, vnode, prevVNode = null) {\n callWithAsyncErrorHandling(hook, instance, 7, [\n vnode,\n prevVNode\n ]);\n}\n\nconst emptyAppContext = createAppContext();\nlet uid = 0;\nfunction createComponentInstance(vnode, parent, suspense) {\n const type = vnode.type;\n const appContext = (parent ? parent.appContext : vnode.appContext) || emptyAppContext;\n const instance = {\n uid: uid++,\n vnode,\n type,\n parent,\n appContext,\n root: null,\n // to be immediately set\n next: null,\n subTree: null,\n // will be set synchronously right after creation\n effect: null,\n update: null,\n // will be set synchronously right after creation\n job: null,\n scope: new EffectScope(\n true\n /* detached */\n ),\n render: null,\n proxy: null,\n exposed: null,\n exposeProxy: null,\n withProxy: null,\n provides: parent ? parent.provides : Object.create(appContext.provides),\n ids: parent ? parent.ids : [\"\", 0, 0],\n accessCache: null,\n renderCache: [],\n // local resolved assets\n components: null,\n directives: null,\n // resolved props and emits options\n propsOptions: normalizePropsOptions(type, appContext),\n emitsOptions: normalizeEmitsOptions(type, appContext),\n // emit\n emit: null,\n // to be set immediately\n emitted: null,\n // props default value\n propsDefaults: EMPTY_OBJ,\n // inheritAttrs\n inheritAttrs: type.inheritAttrs,\n // state\n ctx: EMPTY_OBJ,\n data: EMPTY_OBJ,\n props: EMPTY_OBJ,\n attrs: EMPTY_OBJ,\n slots: EMPTY_OBJ,\n refs: EMPTY_OBJ,\n setupState: EMPTY_OBJ,\n setupContext: null,\n // suspense related\n suspense,\n suspenseId: suspense ? suspense.pendingId : 0,\n asyncDep: null,\n asyncResolved: false,\n // lifecycle hooks\n // not using enums here because it results in computed properties\n isMounted: false,\n isUnmounted: false,\n isDeactivated: false,\n bc: null,\n c: null,\n bm: null,\n m: null,\n bu: null,\n u: null,\n um: null,\n bum: null,\n da: null,\n a: null,\n rtg: null,\n rtc: null,\n ec: null,\n sp: null\n };\n if (!!(process.env.NODE_ENV !== \"production\")) {\n instance.ctx = createDevRenderContext(instance);\n } else {\n instance.ctx = { _: instance };\n }\n instance.root = parent ? parent.root : instance;\n instance.emit = emit.bind(null, instance);\n if (vnode.ce) {\n vnode.ce(instance);\n }\n return instance;\n}\nlet currentInstance = null;\nconst getCurrentInstance = () => currentInstance || currentRenderingInstance;\nlet internalSetCurrentInstance;\nlet setInSSRSetupState;\n{\n const g = getGlobalThis();\n const registerGlobalSetter = (key, setter) => {\n let setters;\n if (!(setters = g[key])) setters = g[key] = [];\n setters.push(setter);\n return (v) => {\n if (setters.length > 1) setters.forEach((set) => set(v));\n else setters[0](v);\n };\n };\n internalSetCurrentInstance = registerGlobalSetter(\n `__VUE_INSTANCE_SETTERS__`,\n (v) => currentInstance = v\n );\n setInSSRSetupState = registerGlobalSetter(\n `__VUE_SSR_SETTERS__`,\n (v) => isInSSRComponentSetup = v\n );\n}\nconst setCurrentInstance = (instance) => {\n const prev = currentInstance;\n internalSetCurrentInstance(instance);\n instance.scope.on();\n return () => {\n instance.scope.off();\n internalSetCurrentInstance(prev);\n };\n};\nconst unsetCurrentInstance = () => {\n currentInstance && currentInstance.scope.off();\n internalSetCurrentInstance(null);\n};\nconst isBuiltInTag = /* @__PURE__ */ makeMap(\"slot,component\");\nfunction validateComponentName(name, { isNativeTag }) {\n if (isBuiltInTag(name) || isNativeTag(name)) {\n warn$1(\n \"Do not use built-in or reserved HTML elements as component id: \" + name\n );\n }\n}\nfunction isStatefulComponent(instance) {\n return instance.vnode.shapeFlag & 4;\n}\nlet isInSSRComponentSetup = false;\nfunction setupComponent(instance, isSSR = false, optimized = false) {\n isSSR && setInSSRSetupState(isSSR);\n const { props, children } = instance.vnode;\n const isStateful = isStatefulComponent(instance);\n initProps(instance, props, isStateful, isSSR);\n initSlots(instance, children, optimized);\n const setupResult = isStateful ? setupStatefulComponent(instance, isSSR) : void 0;\n isSSR && setInSSRSetupState(false);\n return setupResult;\n}\nfunction setupStatefulComponent(instance, isSSR) {\n var _a;\n const Component = instance.type;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (Component.name) {\n validateComponentName(Component.name, instance.appContext.config);\n }\n if (Component.components) {\n const names = Object.keys(Component.components);\n for (let i = 0; i < names.length; i++) {\n validateComponentName(names[i], instance.appContext.config);\n }\n }\n if (Component.directives) {\n const names = Object.keys(Component.directives);\n for (let i = 0; i < names.length; i++) {\n validateDirectiveName(names[i]);\n }\n }\n if (Component.compilerOptions && isRuntimeOnly()) {\n warn$1(\n `\"compilerOptions\" is only supported when using a build of Vue that includes the runtime compiler. Since you are using a runtime-only build, the options should be passed via your build tool config instead.`\n );\n }\n }\n instance.accessCache = /* @__PURE__ */ Object.create(null);\n instance.proxy = new Proxy(instance.ctx, PublicInstanceProxyHandlers);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n exposePropsOnRenderContext(instance);\n }\n const { setup } = Component;\n if (setup) {\n const setupContext = instance.setupContext = setup.length > 1 ? createSetupContext(instance) : null;\n const reset = setCurrentInstance(instance);\n pauseTracking();\n const setupResult = callWithErrorHandling(\n setup,\n instance,\n 0,\n [\n !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(instance.props) : instance.props,\n setupContext\n ]\n );\n resetTracking();\n reset();\n if (isPromise(setupResult)) {\n if (!isAsyncWrapper(instance)) markAsyncBoundary(instance);\n setupResult.then(unsetCurrentInstance, unsetCurrentInstance);\n if (isSSR) {\n return setupResult.then((resolvedResult) => {\n handleSetupResult(instance, resolvedResult, isSSR);\n }).catch((e) => {\n handleError(e, instance, 0);\n });\n } else {\n instance.asyncDep = setupResult;\n if (!!(process.env.NODE_ENV !== \"production\") && !instance.suspense) {\n const name = (_a = Component.name) != null ? _a : \"Anonymous\";\n warn$1(\n `Component <${name}>: setup function returned a promise, but no <Suspense> boundary was found in the parent component tree. A component with async setup() must be nested in a <Suspense> in order to be rendered.`\n );\n }\n }\n } else {\n handleSetupResult(instance, setupResult, isSSR);\n }\n } else {\n finishComponentSetup(instance, isSSR);\n }\n}\nfunction handleSetupResult(instance, setupResult, isSSR) {\n if (isFunction(setupResult)) {\n if (instance.type.__ssrInlineRender) {\n instance.ssrRender = setupResult;\n } else {\n instance.render = setupResult;\n }\n } else if (isObject(setupResult)) {\n if (!!(process.env.NODE_ENV !== \"production\") && isVNode(setupResult)) {\n warn$1(\n `setup() should not return VNodes directly - return a render function instead.`\n );\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n instance.devtoolsRawSetupState = setupResult;\n }\n instance.setupState = proxyRefs(setupResult);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n exposeSetupStateOnRenderContext(instance);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && setupResult !== void 0) {\n warn$1(\n `setup() should return an object. Received: ${setupResult === null ? \"null\" : typeof setupResult}`\n );\n }\n finishComponentSetup(instance, isSSR);\n}\nlet compile;\nlet installWithProxy;\nfunction registerRuntimeCompiler(_compile) {\n compile = _compile;\n installWithProxy = (i) => {\n if (i.render._rc) {\n i.withProxy = new Proxy(i.ctx, RuntimeCompiledPublicInstanceProxyHandlers);\n }\n };\n}\nconst isRuntimeOnly = () => !compile;\nfunction finishComponentSetup(instance, isSSR, skipOptions) {\n const Component = instance.type;\n if (!instance.render) {\n if (!isSSR && compile && !Component.render) {\n const template = Component.template || resolveMergedOptions(instance).template;\n if (template) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n startMeasure(instance, `compile`);\n }\n const { isCustomElement, compilerOptions } = instance.appContext.config;\n const { delimiters, compilerOptions: componentCompilerOptions } = Component;\n const finalCompilerOptions = extend(\n extend(\n {\n isCustomElement,\n delimiters\n },\n compilerOptions\n ),\n componentCompilerOptions\n );\n Component.render = compile(template, finalCompilerOptions);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n endMeasure(instance, `compile`);\n }\n }\n }\n instance.render = Component.render || NOOP;\n if (installWithProxy) {\n installWithProxy(instance);\n }\n }\n if (__VUE_OPTIONS_API__ && true) {\n const reset = setCurrentInstance(instance);\n pauseTracking();\n try {\n applyOptions(instance);\n } finally {\n resetTracking();\n reset();\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !Component.render && instance.render === NOOP && !isSSR) {\n if (!compile && Component.template) {\n warn$1(\n `Component provided template option but runtime compilation is not supported in this build of Vue.` + (` Configure your bundler to alias \"vue\" to \"vue/dist/vue.esm-bundler.js\".` )\n );\n } else {\n warn$1(`Component is missing template or render function: `, Component);\n }\n }\n}\nconst attrsProxyHandlers = !!(process.env.NODE_ENV !== \"production\") ? {\n get(target, key) {\n markAttrsAccessed();\n track(target, \"get\", \"\");\n return target[key];\n },\n set() {\n warn$1(`setupContext.attrs is readonly.`);\n return false;\n },\n deleteProperty() {\n warn$1(`setupContext.attrs is readonly.`);\n return false;\n }\n} : {\n get(target, key) {\n track(target, \"get\", \"\");\n return target[key];\n }\n};\nfunction getSlotsProxy(instance) {\n return new Proxy(instance.slots, {\n get(target, key) {\n track(instance, \"get\", \"$slots\");\n return target[key];\n }\n });\n}\nfunction createSetupContext(instance) {\n const expose = (exposed) => {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (instance.exposed) {\n warn$1(`expose() should be called only once per setup().`);\n }\n if (exposed != null) {\n let exposedType = typeof exposed;\n if (exposedType === \"object\") {\n if (isArray(exposed)) {\n exposedType = \"array\";\n } else if (isRef(exposed)) {\n exposedType = \"ref\";\n }\n }\n if (exposedType !== \"object\") {\n warn$1(\n `expose() should be passed a plain object, received ${exposedType}.`\n );\n }\n }\n }\n instance.exposed = exposed || {};\n };\n if (!!(process.env.NODE_ENV !== \"production\")) {\n let attrsProxy;\n let slotsProxy;\n return Object.freeze({\n get attrs() {\n return attrsProxy || (attrsProxy = new Proxy(instance.attrs, attrsProxyHandlers));\n },\n get slots() {\n return slotsProxy || (slotsProxy = getSlotsProxy(instance));\n },\n get emit() {\n return (event, ...args) => instance.emit(event, ...args);\n },\n expose\n });\n } else {\n return {\n attrs: new Proxy(instance.attrs, attrsProxyHandlers),\n slots: instance.slots,\n emit: instance.emit,\n expose\n };\n }\n}\nfunction getComponentPublicInstance(instance) {\n if (instance.exposed) {\n return instance.exposeProxy || (instance.exposeProxy = new Proxy(proxyRefs(markRaw(instance.exposed)), {\n get(target, key) {\n if (key in target) {\n return target[key];\n } else if (key in publicPropertiesMap) {\n return publicPropertiesMap[key](instance);\n }\n },\n has(target, key) {\n return key in target || key in publicPropertiesMap;\n }\n }));\n } else {\n return instance.proxy;\n }\n}\nconst classifyRE = /(?:^|[-_])(\\w)/g;\nconst classify = (str) => str.replace(classifyRE, (c) => c.toUpperCase()).replace(/[-_]/g, \"\");\nfunction getComponentName(Component, includeInferred = true) {\n return isFunction(Component) ? Component.displayName || Component.name : Component.name || includeInferred && Component.__name;\n}\nfunction formatComponentName(instance, Component, isRoot = false) {\n let name = getComponentName(Component);\n if (!name && Component.__file) {\n const match = Component.__file.match(/([^/\\\\]+)\\.\\w+$/);\n if (match) {\n name = match[1];\n }\n }\n if (!name && instance && instance.parent) {\n const inferFromRegistry = (registry) => {\n for (const key in registry) {\n if (registry[key] === Component) {\n return key;\n }\n }\n };\n name = inferFromRegistry(\n instance.components || instance.parent.type.components\n ) || inferFromRegistry(instance.appContext.components);\n }\n return name ? classify(name) : isRoot ? `App` : `Anonymous`;\n}\nfunction isClassComponent(value) {\n return isFunction(value) && \"__vccOpts\" in value;\n}\n\nconst computed = (getterOrOptions, debugOptions) => {\n const c = computed$1(getterOrOptions, debugOptions, isInSSRComponentSetup);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const i = getCurrentInstance();\n if (i && i.appContext.config.warnRecursiveComputed) {\n c._warnRecursive = true;\n }\n }\n return c;\n};\n\nfunction h(type, propsOrChildren, children) {\n const l = arguments.length;\n if (l === 2) {\n if (isObject(propsOrChildren) && !isArray(propsOrChildren)) {\n if (isVNode(propsOrChildren)) {\n return createVNode(type, null, [propsOrChildren]);\n }\n return createVNode(type, propsOrChildren);\n } else {\n return createVNode(type, null, propsOrChildren);\n }\n } else {\n if (l > 3) {\n children = Array.prototype.slice.call(arguments, 2);\n } else if (l === 3 && isVNode(children)) {\n children = [children];\n }\n return createVNode(type, propsOrChildren, children);\n }\n}\n\nfunction initCustomFormatter() {\n if (!!!(process.env.NODE_ENV !== \"production\") || typeof window === \"undefined\") {\n return;\n }\n const vueStyle = { style: \"color:#3ba776\" };\n const numberStyle = { style: \"color:#1677ff\" };\n const stringStyle = { style: \"color:#f5222d\" };\n const keywordStyle = { style: \"color:#eb2f96\" };\n const formatter = {\n __vue_custom_formatter: true,\n header(obj) {\n if (!isObject(obj)) {\n return null;\n }\n if (obj.__isVue) {\n return [\"div\", vueStyle, `VueInstance`];\n } else if (isRef(obj)) {\n return [\n \"div\",\n {},\n [\"span\", vueStyle, genRefFlag(obj)],\n \"<\",\n // avoid debugger accessing value affecting behavior\n formatValue(\"_value\" in obj ? obj._value : obj),\n `>`\n ];\n } else if (isReactive(obj)) {\n return [\n \"div\",\n {},\n [\"span\", vueStyle, isShallow(obj) ? \"ShallowReactive\" : \"Reactive\"],\n \"<\",\n formatValue(obj),\n `>${isReadonly(obj) ? ` (readonly)` : ``}`\n ];\n } else if (isReadonly(obj)) {\n return [\n \"div\",\n {},\n [\"span\", vueStyle, isShallow(obj) ? \"ShallowReadonly\" : \"Readonly\"],\n \"<\",\n formatValue(obj),\n \">\"\n ];\n }\n return null;\n },\n hasBody(obj) {\n return obj && obj.__isVue;\n },\n body(obj) {\n if (obj && obj.__isVue) {\n return [\n \"div\",\n {},\n ...formatInstance(obj.$)\n ];\n }\n }\n };\n function formatInstance(instance) {\n const blocks = [];\n if (instance.type.props && instance.props) {\n blocks.push(createInstanceBlock(\"props\", toRaw(instance.props)));\n }\n if (instance.setupState !== EMPTY_OBJ) {\n blocks.push(createInstanceBlock(\"setup\", instance.setupState));\n }\n if (instance.data !== EMPTY_OBJ) {\n blocks.push(createInstanceBlock(\"data\", toRaw(instance.data)));\n }\n const computed = extractKeys(instance, \"computed\");\n if (computed) {\n blocks.push(createInstanceBlock(\"computed\", computed));\n }\n const injected = extractKeys(instance, \"inject\");\n if (injected) {\n blocks.push(createInstanceBlock(\"injected\", injected));\n }\n blocks.push([\n \"div\",\n {},\n [\n \"span\",\n {\n style: keywordStyle.style + \";opacity:0.66\"\n },\n \"$ (internal): \"\n ],\n [\"object\", { object: instance }]\n ]);\n return blocks;\n }\n function createInstanceBlock(type, target) {\n target = extend({}, target);\n if (!Object.keys(target).length) {\n return [\"span\", {}];\n }\n return [\n \"div\",\n { style: \"line-height:1.25em;margin-bottom:0.6em\" },\n [\n \"div\",\n {\n style: \"color:#476582\"\n },\n type\n ],\n [\n \"div\",\n {\n style: \"padding-left:1.25em\"\n },\n ...Object.keys(target).map((key) => {\n return [\n \"div\",\n {},\n [\"span\", keywordStyle, key + \": \"],\n formatValue(target[key], false)\n ];\n })\n ]\n ];\n }\n function formatValue(v, asRaw = true) {\n if (typeof v === \"number\") {\n return [\"span\", numberStyle, v];\n } else if (typeof v === \"string\") {\n return [\"span\", stringStyle, JSON.stringify(v)];\n } else if (typeof v === \"boolean\") {\n return [\"span\", keywordStyle, v];\n } else if (isObject(v)) {\n return [\"object\", { object: asRaw ? toRaw(v) : v }];\n } else {\n return [\"span\", stringStyle, String(v)];\n }\n }\n function extractKeys(instance, type) {\n const Comp = instance.type;\n if (isFunction(Comp)) {\n return;\n }\n const extracted = {};\n for (const key in instance.ctx) {\n if (isKeyOfType(Comp, key, type)) {\n extracted[key] = instance.ctx[key];\n }\n }\n return extracted;\n }\n function isKeyOfType(Comp, key, type) {\n const opts = Comp[type];\n if (isArray(opts) && opts.includes(key) || isObject(opts) && key in opts) {\n return true;\n }\n if (Comp.extends && isKeyOfType(Comp.extends, key, type)) {\n return true;\n }\n if (Comp.mixins && Comp.mixins.some((m) => isKeyOfType(m, key, type))) {\n return true;\n }\n }\n function genRefFlag(v) {\n if (isShallow(v)) {\n return `ShallowRef`;\n }\n if (v.effect) {\n return `ComputedRef`;\n }\n return `Ref`;\n }\n if (window.devtoolsFormatters) {\n window.devtoolsFormatters.push(formatter);\n } else {\n window.devtoolsFormatters = [formatter];\n }\n}\n\nfunction withMemo(memo, render, cache, index) {\n const cached = cache[index];\n if (cached && isMemoSame(cached, memo)) {\n return cached;\n }\n const ret = render();\n ret.memo = memo.slice();\n ret.cacheIndex = index;\n return cache[index] = ret;\n}\nfunction isMemoSame(cached, memo) {\n const prev = cached.memo;\n if (prev.length != memo.length) {\n return false;\n }\n for (let i = 0; i < prev.length; i++) {\n if (hasChanged(prev[i], memo[i])) {\n return false;\n }\n }\n if (isBlockTreeEnabled > 0 && currentBlock) {\n currentBlock.push(cached);\n }\n return true;\n}\n\nconst version = \"3.5.6\";\nconst warn = !!(process.env.NODE_ENV !== \"production\") ? warn$1 : NOOP;\nconst ErrorTypeStrings = ErrorTypeStrings$1 ;\nconst devtools = !!(process.env.NODE_ENV !== \"production\") || true ? devtools$1 : void 0;\nconst setDevtoolsHook = !!(process.env.NODE_ENV !== \"production\") || true ? setDevtoolsHook$1 : NOOP;\nconst _ssrUtils = {\n createComponentInstance,\n setupComponent,\n renderComponentRoot,\n setCurrentRenderingInstance,\n isVNode: isVNode,\n normalizeVNode,\n getComponentPublicInstance,\n ensureValidVNode,\n pushWarningContext,\n popWarningContext\n};\nconst ssrUtils = _ssrUtils ;\nconst resolveFilter = null;\nconst compatUtils = null;\nconst DeprecationTypes = null;\n\nexport { BaseTransition, BaseTransitionPropsValidators, Comment, DeprecationTypes, ErrorCodes, ErrorTypeStrings, Fragment, KeepAlive, Static, Suspense, Teleport, Text, assertNumber, callWithAsyncErrorHandling, callWithErrorHandling, cloneVNode, compatUtils, computed, createBlock, createCommentVNode, createElementBlock, createBaseVNode as createElementVNode, createHydrationRenderer, createPropsRestProxy, createRenderer, createSlots, createStaticVNode, createTextVNode, createVNode, defineAsyncComponent, defineComponent, defineEmits, defineExpose, defineModel, defineOptions, defineProps, defineSlots, devtools, getCurrentInstance, getTransitionRawChildren, guardReactiveProps, h, handleError, hasInjectionContext, hydrateOnIdle, hydrateOnInteraction, hydrateOnMediaQuery, hydrateOnVisible, initCustomFormatter, inject, isMemoSame, isRuntimeOnly, isVNode, mergeDefaults, mergeModels, mergeProps, nextTick, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onServerPrefetch, onUnmounted, onUpdated, openBlock, popScopeId, provide, pushScopeId, queuePostFlushCb, registerRuntimeCompiler, renderList, renderSlot, resolveComponent, resolveDirective, resolveDynamicComponent, resolveFilter, resolveTransitionHooks, setBlockTracking, setDevtoolsHook, setTransitionHooks, ssrContextKey, ssrUtils, toHandlers, transformVNodeArgs, useAttrs, useId, useModel, useSSRContext, useSlots, useTemplateRef, useTransitionState, version, warn, watch, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext, withCtx, withDefaults, withDirectives, withMemo, withScopeId };\n","/**\n* @vue/runtime-dom v3.5.6\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { warn, h, BaseTransition, assertNumber, BaseTransitionPropsValidators, getCurrentInstance, onBeforeMount, watchPostEffect, onMounted, onUnmounted, Fragment, Static, camelize, callWithAsyncErrorHandling, defineComponent, nextTick, unref, createVNode, useTransitionState, onUpdated, toRaw, getTransitionRawChildren, setTransitionHooks, resolveTransitionHooks, Text, isRuntimeOnly, createRenderer, createHydrationRenderer } from '@vue/runtime-core';\nexport * from '@vue/runtime-core';\nimport { extend, isObject, toNumber, isArray, isString, hyphenate, capitalize, includeBooleanAttr, isSymbol, isSpecialBooleanAttr, isFunction, NOOP, isOn, isModelListener, isPlainObject, hasOwn, camelize as camelize$1, EMPTY_OBJ, looseToNumber, looseIndexOf, isSet, looseEqual, invokeArrayFns, isHTMLTag, isSVGTag, isMathMLTag } from '@vue/shared';\n\nlet policy = void 0;\nconst tt = typeof window !== \"undefined\" && window.trustedTypes;\nif (tt) {\n try {\n policy = /* @__PURE__ */ tt.createPolicy(\"vue\", {\n createHTML: (val) => val\n });\n } catch (e) {\n !!(process.env.NODE_ENV !== \"production\") && warn(`Error creating trusted types policy: ${e}`);\n }\n}\nconst unsafeToTrustedHTML = policy ? (val) => policy.createHTML(val) : (val) => val;\nconst svgNS = \"http://www.w3.org/2000/svg\";\nconst mathmlNS = \"http://www.w3.org/1998/Math/MathML\";\nconst doc = typeof document !== \"undefined\" ? document : null;\nconst templateContainer = doc && /* @__PURE__ */ doc.createElement(\"template\");\nconst nodeOps = {\n insert: (child, parent, anchor) => {\n parent.insertBefore(child, anchor || null);\n },\n remove: (child) => {\n const parent = child.parentNode;\n if (parent) {\n parent.removeChild(child);\n }\n },\n createElement: (tag, namespace, is, props) => {\n const el = namespace === \"svg\" ? doc.createElementNS(svgNS, tag) : namespace === \"mathml\" ? doc.createElementNS(mathmlNS, tag) : is ? doc.createElement(tag, { is }) : doc.createElement(tag);\n if (tag === \"select\" && props && props.multiple != null) {\n el.setAttribute(\"multiple\", props.multiple);\n }\n return el;\n },\n createText: (text) => doc.createTextNode(text),\n createComment: (text) => doc.createComment(text),\n setText: (node, text) => {\n node.nodeValue = text;\n },\n setElementText: (el, text) => {\n el.textContent = text;\n },\n parentNode: (node) => node.parentNode,\n nextSibling: (node) => node.nextSibling,\n querySelector: (selector) => doc.querySelector(selector),\n setScopeId(el, id) {\n el.setAttribute(id, \"\");\n },\n // __UNSAFE__\n // Reason: innerHTML.\n // Static content here can only come from compiled templates.\n // As long as the user only uses trusted templates, this is safe.\n insertStaticContent(content, parent, anchor, namespace, start, end) {\n const before = anchor ? anchor.previousSibling : parent.lastChild;\n if (start && (start === end || start.nextSibling)) {\n while (true) {\n parent.insertBefore(start.cloneNode(true), anchor);\n if (start === end || !(start = start.nextSibling)) break;\n }\n } else {\n templateContainer.innerHTML = unsafeToTrustedHTML(\n namespace === \"svg\" ? `<svg>${content}</svg>` : namespace === \"mathml\" ? `<math>${content}</math>` : content\n );\n const template = templateContainer.content;\n if (namespace === \"svg\" || namespace === \"mathml\") {\n const wrapper = template.firstChild;\n while (wrapper.firstChild) {\n template.appendChild(wrapper.firstChild);\n }\n template.removeChild(wrapper);\n }\n parent.insertBefore(template, anchor);\n }\n return [\n // first\n before ? before.nextSibling : parent.firstChild,\n // last\n anchor ? anchor.previousSibling : parent.lastChild\n ];\n }\n};\n\nconst TRANSITION = \"transition\";\nconst ANIMATION = \"animation\";\nconst vtcKey = Symbol(\"_vtc\");\nconst DOMTransitionPropsValidators = {\n name: String,\n type: String,\n css: {\n type: Boolean,\n default: true\n },\n duration: [String, Number, Object],\n enterFromClass: String,\n enterActiveClass: String,\n enterToClass: String,\n appearFromClass: String,\n appearActiveClass: String,\n appearToClass: String,\n leaveFromClass: String,\n leaveActiveClass: String,\n leaveToClass: String\n};\nconst TransitionPropsValidators = /* @__PURE__ */ extend(\n {},\n BaseTransitionPropsValidators,\n DOMTransitionPropsValidators\n);\nconst decorate$1 = (t) => {\n t.displayName = \"Transition\";\n t.props = TransitionPropsValidators;\n return t;\n};\nconst Transition = /* @__PURE__ */ decorate$1(\n (props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots)\n);\nconst callHook = (hook, args = []) => {\n if (isArray(hook)) {\n hook.forEach((h2) => h2(...args));\n } else if (hook) {\n hook(...args);\n }\n};\nconst hasExplicitCallback = (hook) => {\n return hook ? isArray(hook) ? hook.some((h2) => h2.length > 1) : hook.length > 1 : false;\n};\nfunction resolveTransitionProps(rawProps) {\n const baseProps = {};\n for (const key in rawProps) {\n if (!(key in DOMTransitionPropsValidators)) {\n baseProps[key] = rawProps[key];\n }\n }\n if (rawProps.css === false) {\n return baseProps;\n }\n const {\n name = \"v\",\n type,\n duration,\n enterFromClass = `${name}-enter-from`,\n enterActiveClass = `${name}-enter-active`,\n enterToClass = `${name}-enter-to`,\n appearFromClass = enterFromClass,\n appearActiveClass = enterActiveClass,\n appearToClass = enterToClass,\n leaveFromClass = `${name}-leave-from`,\n leaveActiveClass = `${name}-leave-active`,\n leaveToClass = `${name}-leave-to`\n } = rawProps;\n const durations = normalizeDuration(duration);\n const enterDuration = durations && durations[0];\n const leaveDuration = durations && durations[1];\n const {\n onBeforeEnter,\n onEnter,\n onEnterCancelled,\n onLeave,\n onLeaveCancelled,\n onBeforeAppear = onBeforeEnter,\n onAppear = onEnter,\n onAppearCancelled = onEnterCancelled\n } = baseProps;\n const finishEnter = (el, isAppear, done) => {\n removeTransitionClass(el, isAppear ? appearToClass : enterToClass);\n removeTransitionClass(el, isAppear ? appearActiveClass : enterActiveClass);\n done && done();\n };\n const finishLeave = (el, done) => {\n el._isLeaving = false;\n removeTransitionClass(el, leaveFromClass);\n removeTransitionClass(el, leaveToClass);\n removeTransitionClass(el, leaveActiveClass);\n done && done();\n };\n const makeEnterHook = (isAppear) => {\n return (el, done) => {\n const hook = isAppear ? onAppear : onEnter;\n const resolve = () => finishEnter(el, isAppear, done);\n callHook(hook, [el, resolve]);\n nextFrame(() => {\n removeTransitionClass(el, isAppear ? appearFromClass : enterFromClass);\n addTransitionClass(el, isAppear ? appearToClass : enterToClass);\n if (!hasExplicitCallback(hook)) {\n whenTransitionEnds(el, type, enterDuration, resolve);\n }\n });\n };\n };\n return extend(baseProps, {\n onBeforeEnter(el) {\n callHook(onBeforeEnter, [el]);\n addTransitionClass(el, enterFromClass);\n addTransitionClass(el, enterActiveClass);\n },\n onBeforeAppear(el) {\n callHook(onBeforeAppear, [el]);\n addTransitionClass(el, appearFromClass);\n addTransitionClass(el, appearActiveClass);\n },\n onEnter: makeEnterHook(false),\n onAppear: makeEnterHook(true),\n onLeave(el, done) {\n el._isLeaving = true;\n const resolve = () => finishLeave(el, done);\n addTransitionClass(el, leaveFromClass);\n addTransitionClass(el, leaveActiveClass);\n forceReflow();\n nextFrame(() => {\n if (!el._isLeaving) {\n return;\n }\n removeTransitionClass(el, leaveFromClass);\n addTransitionClass(el, leaveToClass);\n if (!hasExplicitCallback(onLeave)) {\n whenTransitionEnds(el, type, leaveDuration, resolve);\n }\n });\n callHook(onLeave, [el, resolve]);\n },\n onEnterCancelled(el) {\n finishEnter(el, false);\n callHook(onEnterCancelled, [el]);\n },\n onAppearCancelled(el) {\n finishEnter(el, true);\n callHook(onAppearCancelled, [el]);\n },\n onLeaveCancelled(el) {\n finishLeave(el);\n callHook(onLeaveCancelled, [el]);\n }\n });\n}\nfunction normalizeDuration(duration) {\n if (duration == null) {\n return null;\n } else if (isObject(duration)) {\n return [NumberOf(duration.enter), NumberOf(duration.leave)];\n } else {\n const n = NumberOf(duration);\n return [n, n];\n }\n}\nfunction NumberOf(val) {\n const res = toNumber(val);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n assertNumber(res, \"<transition> explicit duration\");\n }\n return res;\n}\nfunction addTransitionClass(el, cls) {\n cls.split(/\\s+/).forEach((c) => c && el.classList.add(c));\n (el[vtcKey] || (el[vtcKey] = /* @__PURE__ */ new Set())).add(cls);\n}\nfunction removeTransitionClass(el, cls) {\n cls.split(/\\s+/).forEach((c) => c && el.classList.remove(c));\n const _vtc = el[vtcKey];\n if (_vtc) {\n _vtc.delete(cls);\n if (!_vtc.size) {\n el[vtcKey] = void 0;\n }\n }\n}\nfunction nextFrame(cb) {\n requestAnimationFrame(() => {\n requestAnimationFrame(cb);\n });\n}\nlet endId = 0;\nfunction whenTransitionEnds(el, expectedType, explicitTimeout, resolve) {\n const id = el._endId = ++endId;\n const resolveIfNotStale = () => {\n if (id === el._endId) {\n resolve();\n }\n };\n if (explicitTimeout) {\n return setTimeout(resolveIfNotStale, explicitTimeout);\n }\n const { type, timeout, propCount } = getTransitionInfo(el, expectedType);\n if (!type) {\n return resolve();\n }\n const endEvent = type + \"end\";\n let ended = 0;\n const end = () => {\n el.removeEventListener(endEvent, onEnd);\n resolveIfNotStale();\n };\n const onEnd = (e) => {\n if (e.target === el && ++ended >= propCount) {\n end();\n }\n };\n setTimeout(() => {\n if (ended < propCount) {\n end();\n }\n }, timeout + 1);\n el.addEventListener(endEvent, onEnd);\n}\nfunction getTransitionInfo(el, expectedType) {\n const styles = window.getComputedStyle(el);\n const getStyleProperties = (key) => (styles[key] || \"\").split(\", \");\n const transitionDelays = getStyleProperties(`${TRANSITION}Delay`);\n const transitionDurations = getStyleProperties(`${TRANSITION}Duration`);\n const transitionTimeout = getTimeout(transitionDelays, transitionDurations);\n const animationDelays = getStyleProperties(`${ANIMATION}Delay`);\n const animationDurations = getStyleProperties(`${ANIMATION}Duration`);\n const animationTimeout = getTimeout(animationDelays, animationDurations);\n let type = null;\n let timeout = 0;\n let propCount = 0;\n if (expectedType === TRANSITION) {\n if (transitionTimeout > 0) {\n type = TRANSITION;\n timeout = transitionTimeout;\n propCount = transitionDurations.length;\n }\n } else if (expectedType === ANIMATION) {\n if (animationTimeout > 0) {\n type = ANIMATION;\n timeout = animationTimeout;\n propCount = animationDurations.length;\n }\n } else {\n timeout = Math.max(transitionTimeout, animationTimeout);\n type = timeout > 0 ? transitionTimeout > animationTimeout ? TRANSITION : ANIMATION : null;\n propCount = type ? type === TRANSITION ? transitionDurations.length : animationDurations.length : 0;\n }\n const hasTransform = type === TRANSITION && /\\b(transform|all)(,|$)/.test(\n getStyleProperties(`${TRANSITION}Property`).toString()\n );\n return {\n type,\n timeout,\n propCount,\n hasTransform\n };\n}\nfunction getTimeout(delays, durations) {\n while (delays.length < durations.length) {\n delays = delays.concat(delays);\n }\n return Math.max(...durations.map((d, i) => toMs(d) + toMs(delays[i])));\n}\nfunction toMs(s) {\n if (s === \"auto\") return 0;\n return Number(s.slice(0, -1).replace(\",\", \".\")) * 1e3;\n}\nfunction forceReflow() {\n return document.body.offsetHeight;\n}\n\nfunction patchClass(el, value, isSVG) {\n const transitionClasses = el[vtcKey];\n if (transitionClasses) {\n value = (value ? [value, ...transitionClasses] : [...transitionClasses]).join(\" \");\n }\n if (value == null) {\n el.removeAttribute(\"class\");\n } else if (isSVG) {\n el.setAttribute(\"class\", value);\n } else {\n el.className = value;\n }\n}\n\nconst vShowOriginalDisplay = Symbol(\"_vod\");\nconst vShowHidden = Symbol(\"_vsh\");\nconst vShow = {\n beforeMount(el, { value }, { transition }) {\n el[vShowOriginalDisplay] = el.style.display === \"none\" ? \"\" : el.style.display;\n if (transition && value) {\n transition.beforeEnter(el);\n } else {\n setDisplay(el, value);\n }\n },\n mounted(el, { value }, { transition }) {\n if (transition && value) {\n transition.enter(el);\n }\n },\n updated(el, { value, oldValue }, { transition }) {\n if (!value === !oldValue) return;\n if (transition) {\n if (value) {\n transition.beforeEnter(el);\n setDisplay(el, true);\n transition.enter(el);\n } else {\n transition.leave(el, () => {\n setDisplay(el, false);\n });\n }\n } else {\n setDisplay(el, value);\n }\n },\n beforeUnmount(el, { value }) {\n setDisplay(el, value);\n }\n};\nif (!!(process.env.NODE_ENV !== \"production\")) {\n vShow.name = \"show\";\n}\nfunction setDisplay(el, value) {\n el.style.display = value ? el[vShowOriginalDisplay] : \"none\";\n el[vShowHidden] = !value;\n}\nfunction initVShowForSSR() {\n vShow.getSSRProps = ({ value }) => {\n if (!value) {\n return { style: { display: \"none\" } };\n }\n };\n}\n\nconst CSS_VAR_TEXT = Symbol(!!(process.env.NODE_ENV !== \"production\") ? \"CSS_VAR_TEXT\" : \"\");\nfunction useCssVars(getter) {\n const instance = getCurrentInstance();\n if (!instance) {\n !!(process.env.NODE_ENV !== \"production\") && warn(`useCssVars is called without current active component instance.`);\n return;\n }\n const updateTeleports = instance.ut = (vars = getter(instance.proxy)) => {\n Array.from(\n document.querySelectorAll(`[data-v-owner=\"${instance.uid}\"]`)\n ).forEach((node) => setVarsOnNode(node, vars));\n };\n if (!!(process.env.NODE_ENV !== \"production\")) {\n instance.getCssVars = () => getter(instance.proxy);\n }\n const setVars = () => {\n const vars = getter(instance.proxy);\n if (instance.ce) {\n setVarsOnNode(instance.ce, vars);\n } else {\n setVarsOnVNode(instance.subTree, vars);\n }\n updateTeleports(vars);\n };\n onBeforeMount(() => {\n watchPostEffect(setVars);\n });\n onMounted(() => {\n const ob = new MutationObserver(setVars);\n ob.observe(instance.subTree.el.parentNode, { childList: true });\n onUnmounted(() => ob.disconnect());\n });\n}\nfunction setVarsOnVNode(vnode, vars) {\n if (vnode.shapeFlag & 128) {\n const suspense = vnode.suspense;\n vnode = suspense.activeBranch;\n if (suspense.pendingBranch && !suspense.isHydrating) {\n suspense.effects.push(() => {\n setVarsOnVNode(suspense.activeBranch, vars);\n });\n }\n }\n while (vnode.component) {\n vnode = vnode.component.subTree;\n }\n if (vnode.shapeFlag & 1 && vnode.el) {\n setVarsOnNode(vnode.el, vars);\n } else if (vnode.type === Fragment) {\n vnode.children.forEach((c) => setVarsOnVNode(c, vars));\n } else if (vnode.type === Static) {\n let { el, anchor } = vnode;\n while (el) {\n setVarsOnNode(el, vars);\n if (el === anchor) break;\n el = el.nextSibling;\n }\n }\n}\nfunction setVarsOnNode(el, vars) {\n if (el.nodeType === 1) {\n const style = el.style;\n let cssText = \"\";\n for (const key in vars) {\n style.setProperty(`--${key}`, vars[key]);\n cssText += `--${key}: ${vars[key]};`;\n }\n style[CSS_VAR_TEXT] = cssText;\n }\n}\n\nconst displayRE = /(^|;)\\s*display\\s*:/;\nfunction patchStyle(el, prev, next) {\n const style = el.style;\n const isCssString = isString(next);\n let hasControlledDisplay = false;\n if (next && !isCssString) {\n if (prev) {\n if (!isString(prev)) {\n for (const key in prev) {\n if (next[key] == null) {\n setStyle(style, key, \"\");\n }\n }\n } else {\n for (const prevStyle of prev.split(\";\")) {\n const key = prevStyle.slice(0, prevStyle.indexOf(\":\")).trim();\n if (next[key] == null) {\n setStyle(style, key, \"\");\n }\n }\n }\n }\n for (const key in next) {\n if (key === \"display\") {\n hasControlledDisplay = true;\n }\n setStyle(style, key, next[key]);\n }\n } else {\n if (isCssString) {\n if (prev !== next) {\n const cssVarText = style[CSS_VAR_TEXT];\n if (cssVarText) {\n next += \";\" + cssVarText;\n }\n style.cssText = next;\n hasControlledDisplay = displayRE.test(next);\n }\n } else if (prev) {\n el.removeAttribute(\"style\");\n }\n }\n if (vShowOriginalDisplay in el) {\n el[vShowOriginalDisplay] = hasControlledDisplay ? style.display : \"\";\n if (el[vShowHidden]) {\n style.display = \"none\";\n }\n }\n}\nconst semicolonRE = /[^\\\\];\\s*$/;\nconst importantRE = /\\s*!important$/;\nfunction setStyle(style, name, val) {\n if (isArray(val)) {\n val.forEach((v) => setStyle(style, name, v));\n } else {\n if (val == null) val = \"\";\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (semicolonRE.test(val)) {\n warn(\n `Unexpected semicolon at the end of '${name}' style value: '${val}'`\n );\n }\n }\n if (name.startsWith(\"--\")) {\n style.setProperty(name, val);\n } else {\n const prefixed = autoPrefix(style, name);\n if (importantRE.test(val)) {\n style.setProperty(\n hyphenate(prefixed),\n val.replace(importantRE, \"\"),\n \"important\"\n );\n } else {\n style[prefixed] = val;\n }\n }\n }\n}\nconst prefixes = [\"Webkit\", \"Moz\", \"ms\"];\nconst prefixCache = {};\nfunction autoPrefix(style, rawName) {\n const cached = prefixCache[rawName];\n if (cached) {\n return cached;\n }\n let name = camelize(rawName);\n if (name !== \"filter\" && name in style) {\n return prefixCache[rawName] = name;\n }\n name = capitalize(name);\n for (let i = 0; i < prefixes.length; i++) {\n const prefixed = prefixes[i] + name;\n if (prefixed in style) {\n return prefixCache[rawName] = prefixed;\n }\n }\n return rawName;\n}\n\nconst xlinkNS = \"http://www.w3.org/1999/xlink\";\nfunction patchAttr(el, key, value, isSVG, instance, isBoolean = isSpecialBooleanAttr(key)) {\n if (isSVG && key.startsWith(\"xlink:\")) {\n if (value == null) {\n el.removeAttributeNS(xlinkNS, key.slice(6, key.length));\n } else {\n el.setAttributeNS(xlinkNS, key, value);\n }\n } else {\n if (value == null || isBoolean && !includeBooleanAttr(value)) {\n el.removeAttribute(key);\n } else {\n el.setAttribute(\n key,\n isBoolean ? \"\" : isSymbol(value) ? String(value) : value\n );\n }\n }\n}\n\nfunction patchDOMProp(el, key, value, parentComponent) {\n if (key === \"innerHTML\" || key === \"textContent\") {\n if (value != null) {\n el[key] = key === \"innerHTML\" ? unsafeToTrustedHTML(value) : value;\n }\n return;\n }\n const tag = el.tagName;\n if (key === \"value\" && tag !== \"PROGRESS\" && // custom elements may use _value internally\n !tag.includes(\"-\")) {\n const oldValue = tag === \"OPTION\" ? el.getAttribute(\"value\") || \"\" : el.value;\n const newValue = value == null ? (\n // #11647: value should be set as empty string for null and undefined,\n // but <input type=\"checkbox\"> should be set as 'on'.\n el.type === \"checkbox\" ? \"on\" : \"\"\n ) : String(value);\n if (oldValue !== newValue || !(\"_value\" in el)) {\n el.value = newValue;\n }\n if (value == null) {\n el.removeAttribute(key);\n }\n el._value = value;\n return;\n }\n let needRemove = false;\n if (value === \"\" || value == null) {\n const type = typeof el[key];\n if (type === \"boolean\") {\n value = includeBooleanAttr(value);\n } else if (value == null && type === \"string\") {\n value = \"\";\n needRemove = true;\n } else if (type === \"number\") {\n value = 0;\n needRemove = true;\n }\n }\n try {\n el[key] = value;\n } catch (e) {\n if (!!(process.env.NODE_ENV !== \"production\") && !needRemove) {\n warn(\n `Failed setting prop \"${key}\" on <${tag.toLowerCase()}>: value ${value} is invalid.`,\n e\n );\n }\n }\n needRemove && el.removeAttribute(key);\n}\n\nfunction addEventListener(el, event, handler, options) {\n el.addEventListener(event, handler, options);\n}\nfunction removeEventListener(el, event, handler, options) {\n el.removeEventListener(event, handler, options);\n}\nconst veiKey = Symbol(\"_vei\");\nfunction patchEvent(el, rawName, prevValue, nextValue, instance = null) {\n const invokers = el[veiKey] || (el[veiKey] = {});\n const existingInvoker = invokers[rawName];\n if (nextValue && existingInvoker) {\n existingInvoker.value = !!(process.env.NODE_ENV !== \"production\") ? sanitizeEventValue(nextValue, rawName) : nextValue;\n } else {\n const [name, options] = parseName(rawName);\n if (nextValue) {\n const invoker = invokers[rawName] = createInvoker(\n !!(process.env.NODE_ENV !== \"production\") ? sanitizeEventValue(nextValue, rawName) : nextValue,\n instance\n );\n addEventListener(el, name, invoker, options);\n } else if (existingInvoker) {\n removeEventListener(el, name, existingInvoker, options);\n invokers[rawName] = void 0;\n }\n }\n}\nconst optionsModifierRE = /(?:Once|Passive|Capture)$/;\nfunction parseName(name) {\n let options;\n if (optionsModifierRE.test(name)) {\n options = {};\n let m;\n while (m = name.match(optionsModifierRE)) {\n name = name.slice(0, name.length - m[0].length);\n options[m[0].toLowerCase()] = true;\n }\n }\n const event = name[2] === \":\" ? name.slice(3) : hyphenate(name.slice(2));\n return [event, options];\n}\nlet cachedNow = 0;\nconst p = /* @__PURE__ */ Promise.resolve();\nconst getNow = () => cachedNow || (p.then(() => cachedNow = 0), cachedNow = Date.now());\nfunction createInvoker(initialValue, instance) {\n const invoker = (e) => {\n if (!e._vts) {\n e._vts = Date.now();\n } else if (e._vts <= invoker.attached) {\n return;\n }\n callWithAsyncErrorHandling(\n patchStopImmediatePropagation(e, invoker.value),\n instance,\n 5,\n [e]\n );\n };\n invoker.value = initialValue;\n invoker.attached = getNow();\n return invoker;\n}\nfunction sanitizeEventValue(value, propName) {\n if (isFunction(value) || isArray(value)) {\n return value;\n }\n warn(\n `Wrong type passed as event handler to ${propName} - did you forget @ or : in front of your prop?\nExpected function or array of functions, received type ${typeof value}.`\n );\n return NOOP;\n}\nfunction patchStopImmediatePropagation(e, value) {\n if (isArray(value)) {\n const originalStop = e.stopImmediatePropagation;\n e.stopImmediatePropagation = () => {\n originalStop.call(e);\n e._stopped = true;\n };\n return value.map(\n (fn) => (e2) => !e2._stopped && fn && fn(e2)\n );\n } else {\n return value;\n }\n}\n\nconst isNativeOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // lowercase letter\nkey.charCodeAt(2) > 96 && key.charCodeAt(2) < 123;\nconst patchProp = (el, key, prevValue, nextValue, namespace, parentComponent) => {\n const isSVG = namespace === \"svg\";\n if (key === \"class\") {\n patchClass(el, nextValue, isSVG);\n } else if (key === \"style\") {\n patchStyle(el, prevValue, nextValue);\n } else if (isOn(key)) {\n if (!isModelListener(key)) {\n patchEvent(el, key, prevValue, nextValue, parentComponent);\n }\n } else if (key[0] === \".\" ? (key = key.slice(1), true) : key[0] === \"^\" ? (key = key.slice(1), false) : shouldSetAsProp(el, key, nextValue, isSVG)) {\n patchDOMProp(el, key, nextValue);\n if (!el.tagName.includes(\"-\") && (key === \"value\" || key === \"checked\" || key === \"selected\")) {\n patchAttr(el, key, nextValue, isSVG, parentComponent, key !== \"value\");\n }\n } else {\n if (key === \"true-value\") {\n el._trueValue = nextValue;\n } else if (key === \"false-value\") {\n el._falseValue = nextValue;\n }\n patchAttr(el, key, nextValue, isSVG);\n }\n};\nfunction shouldSetAsProp(el, key, value, isSVG) {\n if (isSVG) {\n if (key === \"innerHTML\" || key === \"textContent\") {\n return true;\n }\n if (key in el && isNativeOn(key) && isFunction(value)) {\n return true;\n }\n return false;\n }\n if (key === \"spellcheck\" || key === \"draggable\" || key === \"translate\") {\n return false;\n }\n if (key === \"form\") {\n return false;\n }\n if (key === \"list\" && el.tagName === \"INPUT\") {\n return false;\n }\n if (key === \"type\" && el.tagName === \"TEXTAREA\") {\n return false;\n }\n if (key === \"width\" || key === \"height\") {\n const tag = el.tagName;\n if (tag === \"IMG\" || tag === \"VIDEO\" || tag === \"CANVAS\" || tag === \"SOURCE\") {\n return false;\n }\n }\n if (isNativeOn(key) && isString(value)) {\n return false;\n }\n if (key in el) {\n return true;\n }\n if (el._isVueCE && (/[A-Z]/.test(key) || !isString(value))) {\n return true;\n }\n return false;\n}\n\nconst REMOVAL = {};\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction defineCustomElement(options, extraOptions, _createApp) {\n const Comp = defineComponent(options, extraOptions);\n if (isPlainObject(Comp)) extend(Comp, extraOptions);\n class VueCustomElement extends VueElement {\n constructor(initialProps) {\n super(Comp, initialProps, _createApp);\n }\n }\n VueCustomElement.def = Comp;\n return VueCustomElement;\n}\n/*! #__NO_SIDE_EFFECTS__ */\nconst defineSSRCustomElement = /* @__NO_SIDE_EFFECTS__ */ (options, extraOptions) => {\n return /* @__PURE__ */ defineCustomElement(options, extraOptions, createSSRApp);\n};\nconst BaseClass = typeof HTMLElement !== \"undefined\" ? HTMLElement : class {\n};\nclass VueElement extends BaseClass {\n constructor(_def, _props = {}, _createApp = createApp) {\n super();\n this._def = _def;\n this._props = _props;\n this._createApp = _createApp;\n this._isVueCE = true;\n /**\n * @internal\n */\n this._instance = null;\n /**\n * @internal\n */\n this._app = null;\n /**\n * @internal\n */\n this._nonce = this._def.nonce;\n this._connected = false;\n this._resolved = false;\n this._numberProps = null;\n this._styleChildren = /* @__PURE__ */ new WeakSet();\n this._ob = null;\n if (this.shadowRoot && _createApp !== createApp) {\n this._root = this.shadowRoot;\n } else {\n if (!!(process.env.NODE_ENV !== \"production\") && this.shadowRoot) {\n warn(\n `Custom element has pre-rendered declarative shadow root but is not defined as hydratable. Use \\`defineSSRCustomElement\\`.`\n );\n }\n if (_def.shadowRoot !== false) {\n this.attachShadow({ mode: \"open\" });\n this._root = this.shadowRoot;\n } else {\n this._root = this;\n }\n }\n if (!this._def.__asyncLoader) {\n this._resolveProps(this._def);\n }\n }\n connectedCallback() {\n if (!this.isConnected) return;\n if (!this.shadowRoot) {\n this._parseSlots();\n }\n this._connected = true;\n let parent = this;\n while (parent = parent && (parent.parentNode || parent.host)) {\n if (parent instanceof VueElement) {\n this._parent = parent;\n break;\n }\n }\n if (!this._instance) {\n if (this._resolved) {\n this._setParent();\n this._update();\n } else {\n if (parent && parent._pendingResolve) {\n this._pendingResolve = parent._pendingResolve.then(() => {\n this._pendingResolve = void 0;\n this._resolveDef();\n });\n } else {\n this._resolveDef();\n }\n }\n }\n }\n _setParent(parent = this._parent) {\n if (parent) {\n this._instance.parent = parent._instance;\n this._instance.provides = parent._instance.provides;\n }\n }\n disconnectedCallback() {\n this._connected = false;\n nextTick(() => {\n if (!this._connected) {\n if (this._ob) {\n this._ob.disconnect();\n this._ob = null;\n }\n this._app && this._app.unmount();\n if (this._instance) this._instance.ce = void 0;\n this._app = this._instance = null;\n }\n });\n }\n /**\n * resolve inner component definition (handle possible async component)\n */\n _resolveDef() {\n if (this._pendingResolve) {\n return;\n }\n for (let i = 0; i < this.attributes.length; i++) {\n this._setAttr(this.attributes[i].name);\n }\n this._ob = new MutationObserver((mutations) => {\n for (const m of mutations) {\n this._setAttr(m.attributeName);\n }\n });\n this._ob.observe(this, { attributes: true });\n const resolve = (def, isAsync = false) => {\n this._resolved = true;\n this._pendingResolve = void 0;\n const { props, styles } = def;\n let numberProps;\n if (props && !isArray(props)) {\n for (const key in props) {\n const opt = props[key];\n if (opt === Number || opt && opt.type === Number) {\n if (key in this._props) {\n this._props[key] = toNumber(this._props[key]);\n }\n (numberProps || (numberProps = /* @__PURE__ */ Object.create(null)))[camelize$1(key)] = true;\n }\n }\n }\n this._numberProps = numberProps;\n if (isAsync) {\n this._resolveProps(def);\n }\n if (this.shadowRoot) {\n this._applyStyles(styles);\n } else if (!!(process.env.NODE_ENV !== \"production\") && styles) {\n warn(\n \"Custom element style injection is not supported when using shadowRoot: false\"\n );\n }\n this._mount(def);\n };\n const asyncDef = this._def.__asyncLoader;\n if (asyncDef) {\n this._pendingResolve = asyncDef().then(\n (def) => resolve(this._def = def, true)\n );\n } else {\n resolve(this._def);\n }\n }\n _mount(def) {\n if ((!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) && !def.name) {\n def.name = \"VueElement\";\n }\n this._app = this._createApp(def);\n if (def.configureApp) {\n def.configureApp(this._app);\n }\n this._app._ceVNode = this._createVNode();\n this._app.mount(this._root);\n const exposed = this._instance && this._instance.exposed;\n if (!exposed) return;\n for (const key in exposed) {\n if (!hasOwn(this, key)) {\n Object.defineProperty(this, key, {\n // unwrap ref to be consistent with public instance behavior\n get: () => unref(exposed[key])\n });\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(`Exposed property \"${key}\" already exists on custom element.`);\n }\n }\n }\n _resolveProps(def) {\n const { props } = def;\n const declaredPropKeys = isArray(props) ? props : Object.keys(props || {});\n for (const key of Object.keys(this)) {\n if (key[0] !== \"_\" && declaredPropKeys.includes(key)) {\n this._setProp(key, this[key]);\n }\n }\n for (const key of declaredPropKeys.map(camelize$1)) {\n Object.defineProperty(this, key, {\n get() {\n return this._getProp(key);\n },\n set(val) {\n this._setProp(key, val, true, true);\n }\n });\n }\n }\n _setAttr(key) {\n if (key.startsWith(\"data-v-\")) return;\n const has = this.hasAttribute(key);\n let value = has ? this.getAttribute(key) : REMOVAL;\n const camelKey = camelize$1(key);\n if (has && this._numberProps && this._numberProps[camelKey]) {\n value = toNumber(value);\n }\n this._setProp(camelKey, value, false, true);\n }\n /**\n * @internal\n */\n _getProp(key) {\n return this._props[key];\n }\n /**\n * @internal\n */\n _setProp(key, val, shouldReflect = true, shouldUpdate = false) {\n if (val !== this._props[key]) {\n if (val === REMOVAL) {\n delete this._props[key];\n } else {\n this._props[key] = val;\n if (key === \"key\" && this._app) {\n this._app._ceVNode.key = val;\n }\n }\n if (shouldUpdate && this._instance) {\n this._update();\n }\n if (shouldReflect) {\n if (val === true) {\n this.setAttribute(hyphenate(key), \"\");\n } else if (typeof val === \"string\" || typeof val === \"number\") {\n this.setAttribute(hyphenate(key), val + \"\");\n } else if (!val) {\n this.removeAttribute(hyphenate(key));\n }\n }\n }\n }\n _update() {\n render(this._createVNode(), this._root);\n }\n _createVNode() {\n const baseProps = {};\n if (!this.shadowRoot) {\n baseProps.onVnodeMounted = baseProps.onVnodeUpdated = this._renderSlots.bind(this);\n }\n const vnode = createVNode(this._def, extend(baseProps, this._props));\n if (!this._instance) {\n vnode.ce = (instance) => {\n this._instance = instance;\n instance.ce = this;\n instance.isCE = true;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n instance.ceReload = (newStyles) => {\n if (this._styles) {\n this._styles.forEach((s) => this._root.removeChild(s));\n this._styles.length = 0;\n }\n this._applyStyles(newStyles);\n this._instance = null;\n this._update();\n };\n }\n const dispatch = (event, args) => {\n this.dispatchEvent(\n new CustomEvent(\n event,\n isPlainObject(args[0]) ? extend({ detail: args }, args[0]) : { detail: args }\n )\n );\n };\n instance.emit = (event, ...args) => {\n dispatch(event, args);\n if (hyphenate(event) !== event) {\n dispatch(hyphenate(event), args);\n }\n };\n this._setParent();\n };\n }\n return vnode;\n }\n _applyStyles(styles, owner) {\n if (!styles) return;\n if (owner) {\n if (owner === this._def || this._styleChildren.has(owner)) {\n return;\n }\n this._styleChildren.add(owner);\n }\n const nonce = this._nonce;\n for (let i = styles.length - 1; i >= 0; i--) {\n const s = document.createElement(\"style\");\n if (nonce) s.setAttribute(\"nonce\", nonce);\n s.textContent = styles[i];\n this.shadowRoot.prepend(s);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (owner) {\n if (owner.__hmrId) {\n if (!this._childStyles) this._childStyles = /* @__PURE__ */ new Map();\n let entry = this._childStyles.get(owner.__hmrId);\n if (!entry) {\n this._childStyles.set(owner.__hmrId, entry = []);\n }\n entry.push(s);\n }\n } else {\n (this._styles || (this._styles = [])).push(s);\n }\n }\n }\n }\n /**\n * Only called when shadowRoot is false\n */\n _parseSlots() {\n const slots = this._slots = {};\n let n;\n while (n = this.firstChild) {\n const slotName = n.nodeType === 1 && n.getAttribute(\"slot\") || \"default\";\n (slots[slotName] || (slots[slotName] = [])).push(n);\n this.removeChild(n);\n }\n }\n /**\n * Only called when shadowRoot is false\n */\n _renderSlots() {\n const outlets = (this._teleportTarget || this).querySelectorAll(\"slot\");\n const scopeId = this._instance.type.__scopeId;\n for (let i = 0; i < outlets.length; i++) {\n const o = outlets[i];\n const slotName = o.getAttribute(\"name\") || \"default\";\n const content = this._slots[slotName];\n const parent = o.parentNode;\n if (content) {\n for (const n of content) {\n if (scopeId && n.nodeType === 1) {\n const id = scopeId + \"-s\";\n const walker = document.createTreeWalker(n, 1);\n n.setAttribute(id, \"\");\n let child;\n while (child = walker.nextNode()) {\n child.setAttribute(id, \"\");\n }\n }\n parent.insertBefore(n, o);\n }\n } else {\n while (o.firstChild) parent.insertBefore(o.firstChild, o);\n }\n parent.removeChild(o);\n }\n }\n /**\n * @internal\n */\n _injectChildStyle(comp) {\n this._applyStyles(comp.styles, comp);\n }\n /**\n * @internal\n */\n _removeChildStyle(comp) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this._styleChildren.delete(comp);\n if (this._childStyles && comp.__hmrId) {\n const oldStyles = this._childStyles.get(comp.__hmrId);\n if (oldStyles) {\n oldStyles.forEach((s) => this._root.removeChild(s));\n oldStyles.length = 0;\n }\n }\n }\n }\n}\nfunction useHost(caller) {\n const instance = getCurrentInstance();\n const el = instance && instance.ce;\n if (el) {\n return el;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n if (!instance) {\n warn(\n `${caller || \"useHost\"} called without an active component instance.`\n );\n } else {\n warn(\n `${caller || \"useHost\"} can only be used in components defined via defineCustomElement.`\n );\n }\n }\n return null;\n}\nfunction useShadowRoot() {\n const el = !!(process.env.NODE_ENV !== \"production\") ? useHost(\"useShadowRoot\") : useHost();\n return el && el.shadowRoot;\n}\n\nfunction useCssModule(name = \"$style\") {\n {\n const instance = getCurrentInstance();\n if (!instance) {\n !!(process.env.NODE_ENV !== \"production\") && warn(`useCssModule must be called inside setup()`);\n return EMPTY_OBJ;\n }\n const modules = instance.type.__cssModules;\n if (!modules) {\n !!(process.env.NODE_ENV !== \"production\") && warn(`Current instance does not have CSS modules injected.`);\n return EMPTY_OBJ;\n }\n const mod = modules[name];\n if (!mod) {\n !!(process.env.NODE_ENV !== \"production\") && warn(`Current instance does not have CSS module named \"${name}\".`);\n return EMPTY_OBJ;\n }\n return mod;\n }\n}\n\nconst positionMap = /* @__PURE__ */ new WeakMap();\nconst newPositionMap = /* @__PURE__ */ new WeakMap();\nconst moveCbKey = Symbol(\"_moveCb\");\nconst enterCbKey = Symbol(\"_enterCb\");\nconst decorate = (t) => {\n delete t.props.mode;\n return t;\n};\nconst TransitionGroupImpl = /* @__PURE__ */ decorate({\n name: \"TransitionGroup\",\n props: /* @__PURE__ */ extend({}, TransitionPropsValidators, {\n tag: String,\n moveClass: String\n }),\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const state = useTransitionState();\n let prevChildren;\n let children;\n onUpdated(() => {\n if (!prevChildren.length) {\n return;\n }\n const moveClass = props.moveClass || `${props.name || \"v\"}-move`;\n if (!hasCSSTransform(\n prevChildren[0].el,\n instance.vnode.el,\n moveClass\n )) {\n return;\n }\n prevChildren.forEach(callPendingCbs);\n prevChildren.forEach(recordPosition);\n const movedChildren = prevChildren.filter(applyTranslation);\n forceReflow();\n movedChildren.forEach((c) => {\n const el = c.el;\n const style = el.style;\n addTransitionClass(el, moveClass);\n style.transform = style.webkitTransform = style.transitionDuration = \"\";\n const cb = el[moveCbKey] = (e) => {\n if (e && e.target !== el) {\n return;\n }\n if (!e || /transform$/.test(e.propertyName)) {\n el.removeEventListener(\"transitionend\", cb);\n el[moveCbKey] = null;\n removeTransitionClass(el, moveClass);\n }\n };\n el.addEventListener(\"transitionend\", cb);\n });\n });\n return () => {\n const rawProps = toRaw(props);\n const cssTransitionProps = resolveTransitionProps(rawProps);\n let tag = rawProps.tag || Fragment;\n prevChildren = [];\n if (children) {\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (child.el && child.el instanceof Element) {\n prevChildren.push(child);\n setTransitionHooks(\n child,\n resolveTransitionHooks(\n child,\n cssTransitionProps,\n state,\n instance\n )\n );\n positionMap.set(\n child,\n child.el.getBoundingClientRect()\n );\n }\n }\n }\n children = slots.default ? getTransitionRawChildren(slots.default()) : [];\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (child.key != null) {\n setTransitionHooks(\n child,\n resolveTransitionHooks(child, cssTransitionProps, state, instance)\n );\n } else if (!!(process.env.NODE_ENV !== \"production\") && child.type !== Text) {\n warn(`<TransitionGroup> children must be keyed.`);\n }\n }\n return createVNode(tag, null, children);\n };\n }\n});\nconst TransitionGroup = TransitionGroupImpl;\nfunction callPendingCbs(c) {\n const el = c.el;\n if (el[moveCbKey]) {\n el[moveCbKey]();\n }\n if (el[enterCbKey]) {\n el[enterCbKey]();\n }\n}\nfunction recordPosition(c) {\n newPositionMap.set(c, c.el.getBoundingClientRect());\n}\nfunction applyTranslation(c) {\n const oldPos = positionMap.get(c);\n const newPos = newPositionMap.get(c);\n const dx = oldPos.left - newPos.left;\n const dy = oldPos.top - newPos.top;\n if (dx || dy) {\n const s = c.el.style;\n s.transform = s.webkitTransform = `translate(${dx}px,${dy}px)`;\n s.transitionDuration = \"0s\";\n return c;\n }\n}\nfunction hasCSSTransform(el, root, moveClass) {\n const clone = el.cloneNode();\n const _vtc = el[vtcKey];\n if (_vtc) {\n _vtc.forEach((cls) => {\n cls.split(/\\s+/).forEach((c) => c && clone.classList.remove(c));\n });\n }\n moveClass.split(/\\s+/).forEach((c) => c && clone.classList.add(c));\n clone.style.display = \"none\";\n const container = root.nodeType === 1 ? root : root.parentNode;\n container.appendChild(clone);\n const { hasTransform } = getTransitionInfo(clone);\n container.removeChild(clone);\n return hasTransform;\n}\n\nconst getModelAssigner = (vnode) => {\n const fn = vnode.props[\"onUpdate:modelValue\"] || false;\n return isArray(fn) ? (value) => invokeArrayFns(fn, value) : fn;\n};\nfunction onCompositionStart(e) {\n e.target.composing = true;\n}\nfunction onCompositionEnd(e) {\n const target = e.target;\n if (target.composing) {\n target.composing = false;\n target.dispatchEvent(new Event(\"input\"));\n }\n}\nconst assignKey = Symbol(\"_assign\");\nconst vModelText = {\n created(el, { modifiers: { lazy, trim, number } }, vnode) {\n el[assignKey] = getModelAssigner(vnode);\n const castToNumber = number || vnode.props && vnode.props.type === \"number\";\n addEventListener(el, lazy ? \"change\" : \"input\", (e) => {\n if (e.target.composing) return;\n let domValue = el.value;\n if (trim) {\n domValue = domValue.trim();\n }\n if (castToNumber) {\n domValue = looseToNumber(domValue);\n }\n el[assignKey](domValue);\n });\n if (trim) {\n addEventListener(el, \"change\", () => {\n el.value = el.value.trim();\n });\n }\n if (!lazy) {\n addEventListener(el, \"compositionstart\", onCompositionStart);\n addEventListener(el, \"compositionend\", onCompositionEnd);\n addEventListener(el, \"change\", onCompositionEnd);\n }\n },\n // set value on mounted so it's after min/max for type=\"range\"\n mounted(el, { value }) {\n el.value = value == null ? \"\" : value;\n },\n beforeUpdate(el, { value, oldValue, modifiers: { lazy, trim, number } }, vnode) {\n el[assignKey] = getModelAssigner(vnode);\n if (el.composing) return;\n const elValue = (number || el.type === \"number\") && !/^0\\d/.test(el.value) ? looseToNumber(el.value) : el.value;\n const newValue = value == null ? \"\" : value;\n if (elValue === newValue) {\n return;\n }\n if (document.activeElement === el && el.type !== \"range\") {\n if (lazy && value === oldValue) {\n return;\n }\n if (trim && el.value.trim() === newValue) {\n return;\n }\n }\n el.value = newValue;\n }\n};\nconst vModelCheckbox = {\n // #4096 array checkboxes need to be deep traversed\n deep: true,\n created(el, _, vnode) {\n el[assignKey] = getModelAssigner(vnode);\n addEventListener(el, \"change\", () => {\n const modelValue = el._modelValue;\n const elementValue = getValue(el);\n const checked = el.checked;\n const assign = el[assignKey];\n if (isArray(modelValue)) {\n const index = looseIndexOf(modelValue, elementValue);\n const found = index !== -1;\n if (checked && !found) {\n assign(modelValue.concat(elementValue));\n } else if (!checked && found) {\n const filtered = [...modelValue];\n filtered.splice(index, 1);\n assign(filtered);\n }\n } else if (isSet(modelValue)) {\n const cloned = new Set(modelValue);\n if (checked) {\n cloned.add(elementValue);\n } else {\n cloned.delete(elementValue);\n }\n assign(cloned);\n } else {\n assign(getCheckboxValue(el, checked));\n }\n });\n },\n // set initial checked on mount to wait for true-value/false-value\n mounted: setChecked,\n beforeUpdate(el, binding, vnode) {\n el[assignKey] = getModelAssigner(vnode);\n setChecked(el, binding, vnode);\n }\n};\nfunction setChecked(el, { value, oldValue }, vnode) {\n el._modelValue = value;\n let checked;\n if (isArray(value)) {\n checked = looseIndexOf(value, vnode.props.value) > -1;\n } else if (isSet(value)) {\n checked = value.has(vnode.props.value);\n } else {\n checked = looseEqual(value, getCheckboxValue(el, true));\n }\n if (el.checked !== checked) {\n el.checked = checked;\n }\n}\nconst vModelRadio = {\n created(el, { value }, vnode) {\n el.checked = looseEqual(value, vnode.props.value);\n el[assignKey] = getModelAssigner(vnode);\n addEventListener(el, \"change\", () => {\n el[assignKey](getValue(el));\n });\n },\n beforeUpdate(el, { value, oldValue }, vnode) {\n el[assignKey] = getModelAssigner(vnode);\n if (value !== oldValue) {\n el.checked = looseEqual(value, vnode.props.value);\n }\n }\n};\nconst vModelSelect = {\n // <select multiple> value need to be deep traversed\n deep: true,\n created(el, { value, modifiers: { number } }, vnode) {\n const isSetModel = isSet(value);\n addEventListener(el, \"change\", () => {\n const selectedVal = Array.prototype.filter.call(el.options, (o) => o.selected).map(\n (o) => number ? looseToNumber(getValue(o)) : getValue(o)\n );\n el[assignKey](\n el.multiple ? isSetModel ? new Set(selectedVal) : selectedVal : selectedVal[0]\n );\n el._assigning = true;\n nextTick(() => {\n el._assigning = false;\n });\n });\n el[assignKey] = getModelAssigner(vnode);\n },\n // set value in mounted & updated because <select> relies on its children\n // <option>s.\n mounted(el, { value, modifiers: { number } }) {\n setSelected(el, value);\n },\n beforeUpdate(el, _binding, vnode) {\n el[assignKey] = getModelAssigner(vnode);\n },\n updated(el, { value, modifiers: { number } }) {\n if (!el._assigning) {\n setSelected(el, value);\n }\n }\n};\nfunction setSelected(el, value, number) {\n const isMultiple = el.multiple;\n const isArrayValue = isArray(value);\n if (isMultiple && !isArrayValue && !isSet(value)) {\n !!(process.env.NODE_ENV !== \"production\") && warn(\n `<select multiple v-model> expects an Array or Set value for its binding, but got ${Object.prototype.toString.call(value).slice(8, -1)}.`\n );\n return;\n }\n for (let i = 0, l = el.options.length; i < l; i++) {\n const option = el.options[i];\n const optionValue = getValue(option);\n if (isMultiple) {\n if (isArrayValue) {\n const optionType = typeof optionValue;\n if (optionType === \"string\" || optionType === \"number\") {\n option.selected = value.some((v) => String(v) === String(optionValue));\n } else {\n option.selected = looseIndexOf(value, optionValue) > -1;\n }\n } else {\n option.selected = value.has(optionValue);\n }\n } else if (looseEqual(getValue(option), value)) {\n if (el.selectedIndex !== i) el.selectedIndex = i;\n return;\n }\n }\n if (!isMultiple && el.selectedIndex !== -1) {\n el.selectedIndex = -1;\n }\n}\nfunction getValue(el) {\n return \"_value\" in el ? el._value : el.value;\n}\nfunction getCheckboxValue(el, checked) {\n const key = checked ? \"_trueValue\" : \"_falseValue\";\n return key in el ? el[key] : checked;\n}\nconst vModelDynamic = {\n created(el, binding, vnode) {\n callModelHook(el, binding, vnode, null, \"created\");\n },\n mounted(el, binding, vnode) {\n callModelHook(el, binding, vnode, null, \"mounted\");\n },\n beforeUpdate(el, binding, vnode, prevVNode) {\n callModelHook(el, binding, vnode, prevVNode, \"beforeUpdate\");\n },\n updated(el, binding, vnode, prevVNode) {\n callModelHook(el, binding, vnode, prevVNode, \"updated\");\n }\n};\nfunction resolveDynamicModel(tagName, type) {\n switch (tagName) {\n case \"SELECT\":\n return vModelSelect;\n case \"TEXTAREA\":\n return vModelText;\n default:\n switch (type) {\n case \"checkbox\":\n return vModelCheckbox;\n case \"radio\":\n return vModelRadio;\n default:\n return vModelText;\n }\n }\n}\nfunction callModelHook(el, binding, vnode, prevVNode, hook) {\n const modelToUse = resolveDynamicModel(\n el.tagName,\n vnode.props && vnode.props.type\n );\n const fn = modelToUse[hook];\n fn && fn(el, binding, vnode, prevVNode);\n}\nfunction initVModelForSSR() {\n vModelText.getSSRProps = ({ value }) => ({ value });\n vModelRadio.getSSRProps = ({ value }, vnode) => {\n if (vnode.props && looseEqual(vnode.props.value, value)) {\n return { checked: true };\n }\n };\n vModelCheckbox.getSSRProps = ({ value }, vnode) => {\n if (isArray(value)) {\n if (vnode.props && looseIndexOf(value, vnode.props.value) > -1) {\n return { checked: true };\n }\n } else if (isSet(value)) {\n if (vnode.props && value.has(vnode.props.value)) {\n return { checked: true };\n }\n } else if (value) {\n return { checked: true };\n }\n };\n vModelDynamic.getSSRProps = (binding, vnode) => {\n if (typeof vnode.type !== \"string\") {\n return;\n }\n const modelToUse = resolveDynamicModel(\n // resolveDynamicModel expects an uppercase tag name, but vnode.type is lowercase\n vnode.type.toUpperCase(),\n vnode.props && vnode.props.type\n );\n if (modelToUse.getSSRProps) {\n return modelToUse.getSSRProps(binding, vnode);\n }\n };\n}\n\nconst systemModifiers = [\"ctrl\", \"shift\", \"alt\", \"meta\"];\nconst modifierGuards = {\n stop: (e) => e.stopPropagation(),\n prevent: (e) => e.preventDefault(),\n self: (e) => e.target !== e.currentTarget,\n ctrl: (e) => !e.ctrlKey,\n shift: (e) => !e.shiftKey,\n alt: (e) => !e.altKey,\n meta: (e) => !e.metaKey,\n left: (e) => \"button\" in e && e.button !== 0,\n middle: (e) => \"button\" in e && e.button !== 1,\n right: (e) => \"button\" in e && e.button !== 2,\n exact: (e, modifiers) => systemModifiers.some((m) => e[`${m}Key`] && !modifiers.includes(m))\n};\nconst withModifiers = (fn, modifiers) => {\n const cache = fn._withMods || (fn._withMods = {});\n const cacheKey = modifiers.join(\".\");\n return cache[cacheKey] || (cache[cacheKey] = (event, ...args) => {\n for (let i = 0; i < modifiers.length; i++) {\n const guard = modifierGuards[modifiers[i]];\n if (guard && guard(event, modifiers)) return;\n }\n return fn(event, ...args);\n });\n};\nconst keyNames = {\n esc: \"escape\",\n space: \" \",\n up: \"arrow-up\",\n left: \"arrow-left\",\n right: \"arrow-right\",\n down: \"arrow-down\",\n delete: \"backspace\"\n};\nconst withKeys = (fn, modifiers) => {\n const cache = fn._withKeys || (fn._withKeys = {});\n const cacheKey = modifiers.join(\".\");\n return cache[cacheKey] || (cache[cacheKey] = (event) => {\n if (!(\"key\" in event)) {\n return;\n }\n const eventKey = hyphenate(event.key);\n if (modifiers.some(\n (k) => k === eventKey || keyNames[k] === eventKey\n )) {\n return fn(event);\n }\n });\n};\n\nconst rendererOptions = /* @__PURE__ */ extend({ patchProp }, nodeOps);\nlet renderer;\nlet enabledHydration = false;\nfunction ensureRenderer() {\n return renderer || (renderer = createRenderer(rendererOptions));\n}\nfunction ensureHydrationRenderer() {\n renderer = enabledHydration ? renderer : createHydrationRenderer(rendererOptions);\n enabledHydration = true;\n return renderer;\n}\nconst render = (...args) => {\n ensureRenderer().render(...args);\n};\nconst hydrate = (...args) => {\n ensureHydrationRenderer().hydrate(...args);\n};\nconst createApp = (...args) => {\n const app = ensureRenderer().createApp(...args);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n injectNativeTagCheck(app);\n injectCompilerOptionsCheck(app);\n }\n const { mount } = app;\n app.mount = (containerOrSelector) => {\n const container = normalizeContainer(containerOrSelector);\n if (!container) return;\n const component = app._component;\n if (!isFunction(component) && !component.render && !component.template) {\n component.template = container.innerHTML;\n }\n if (container.nodeType === 1) {\n container.textContent = \"\";\n }\n const proxy = mount(container, false, resolveRootNamespace(container));\n if (container instanceof Element) {\n container.removeAttribute(\"v-cloak\");\n container.setAttribute(\"data-v-app\", \"\");\n }\n return proxy;\n };\n return app;\n};\nconst createSSRApp = (...args) => {\n const app = ensureHydrationRenderer().createApp(...args);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n injectNativeTagCheck(app);\n injectCompilerOptionsCheck(app);\n }\n const { mount } = app;\n app.mount = (containerOrSelector) => {\n const container = normalizeContainer(containerOrSelector);\n if (container) {\n return mount(container, true, resolveRootNamespace(container));\n }\n };\n return app;\n};\nfunction resolveRootNamespace(container) {\n if (container instanceof SVGElement) {\n return \"svg\";\n }\n if (typeof MathMLElement === \"function\" && container instanceof MathMLElement) {\n return \"mathml\";\n }\n}\nfunction injectNativeTagCheck(app) {\n Object.defineProperty(app.config, \"isNativeTag\", {\n value: (tag) => isHTMLTag(tag) || isSVGTag(tag) || isMathMLTag(tag),\n writable: false\n });\n}\nfunction injectCompilerOptionsCheck(app) {\n if (isRuntimeOnly()) {\n const isCustomElement = app.config.isCustomElement;\n Object.defineProperty(app.config, \"isCustomElement\", {\n get() {\n return isCustomElement;\n },\n set() {\n warn(\n `The \\`isCustomElement\\` config option is deprecated. Use \\`compilerOptions.isCustomElement\\` instead.`\n );\n }\n });\n const compilerOptions = app.config.compilerOptions;\n const msg = `The \\`compilerOptions\\` config option is only respected when using a build of Vue.js that includes the runtime compiler (aka \"full build\"). Since you are using the runtime-only build, \\`compilerOptions\\` must be passed to \\`@vue/compiler-dom\\` in the build setup instead.\n- For vue-loader: pass it via vue-loader's \\`compilerOptions\\` loader option.\n- For vue-cli: see https://cli.vuejs.org/guide/webpack.html#modifying-options-of-a-loader\n- For vite: pass it via @vitejs/plugin-vue options. See https://github.com/vitejs/vite-plugin-vue/tree/main/packages/plugin-vue#example-for-passing-options-to-vuecompiler-sfc`;\n Object.defineProperty(app.config, \"compilerOptions\", {\n get() {\n warn(msg);\n return compilerOptions;\n },\n set() {\n warn(msg);\n }\n });\n }\n}\nfunction normalizeContainer(container) {\n if (isString(container)) {\n const res = document.querySelector(container);\n if (!!(process.env.NODE_ENV !== \"production\") && !res) {\n warn(\n `Failed to mount app: mount target selector \"${container}\" returned null.`\n );\n }\n return res;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && window.ShadowRoot && container instanceof window.ShadowRoot && container.mode === \"closed\") {\n warn(\n `mounting on a ShadowRoot with \\`{mode: \"closed\"}\\` may lead to unpredictable bugs`\n );\n }\n return container;\n}\nlet ssrDirectiveInitialized = false;\nconst initDirectivesForSSR = () => {\n if (!ssrDirectiveInitialized) {\n ssrDirectiveInitialized = true;\n initVModelForSSR();\n initVShowForSSR();\n }\n} ;\n\nexport { Transition, TransitionGroup, VueElement, createApp, createSSRApp, defineCustomElement, defineSSRCustomElement, hydrate, initDirectivesForSSR, render, useCssModule, useCssVars, useHost, useShadowRoot, vModelCheckbox, vModelDynamic, vModelRadio, vModelSelect, vModelText, vShow, withKeys, withModifiers };\n","/**\n* @vue/shared v3.5.6\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction makeMap(str) {\n const map = /* @__PURE__ */ Object.create(null);\n for (const key of str.split(\",\")) map[key] = 1;\n return (val) => val in map;\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(\n (str) => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n }\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(\n (str) => {\n const s = str ? `on${capitalize(str)}` : ``;\n return s;\n }\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, writable = false) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n writable,\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 \"CACHED\": -1,\n \"-1\": \"CACHED\",\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,Symbol\";\nconst isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED);\nconst isGloballyWhitelisted = isGloballyAllowed;\n\nconst range = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n start = Math.max(0, Math.min(start, source.length));\n end = Math.max(0, Math.min(end, source.length));\n if (start > end) return \"\";\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) 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 if (isString(value) || typeof value === \"number\") {\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\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) 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);\nconst isKnownMathMLAttr = /* @__PURE__ */ makeMap(\n `accent,accentunder,actiontype,align,alignmentscope,altimg,altimg-height,altimg-valign,altimg-width,alttext,bevelled,close,columnsalign,columnlines,columnspan,denomalign,depth,dir,display,displaystyle,encoding,equalcolumns,equalrows,fence,fontstyle,fontweight,form,frame,framespacing,groupalign,height,href,id,indentalign,indentalignfirst,indentalignlast,indentshift,indentshiftfirst,indentshiftlast,indextype,justify,largetop,largeop,lquote,lspace,mathbackground,mathcolor,mathsize,mathvariant,maxsize,minlabelspacing,mode,other,overflow,position,rowalign,rowlines,rowspan,rquote,rspace,scriptlevel,scriptminsize,scriptsizemultiplier,selection,separator,separators,shift,side,src,stackalign,stretchy,subscriptshift,superscriptshift,symmetric,voffset,width,widths,xlink:href,xlink:show,xlink:type,xmlns`\n);\nfunction isRenderableAttrValue(value) {\n if (value == null) {\n return false;\n }\n const type = typeof value;\n return type === \"string\" || type === \"number\" || type === \"boolean\";\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 = /^-?>|<!--|-->|--!>|<!-$/g;\nfunction escapeHtmlComment(src) {\n return src.replace(commentStripRE, \"\");\n}\nconst cssVarNameEscapeSymbolsRE = /[ !\"#$%&'()*+,./:;<=>?@[\\\\\\]^`{|}~]/g;\nfunction getEscapedCssVarName(key, doubleEscape) {\n return key.replace(\n cssVarNameEscapeSymbolsRE,\n (s) => doubleEscape ? s === '\"' ? '\\\\\\\\\\\\\"' : `\\\\\\\\${s}` : `\\\\${s}`\n );\n}\n\nfunction looseCompareArrays(a, b) {\n if (a.length !== b.length) return false;\n let equal = true;\n for (let i = 0; equal && i < a.length; i++) {\n equal = looseEqual(a[i], b[i]);\n }\n return equal;\n}\nfunction looseEqual(a, b) {\n if (a === b) return true;\n let aValidType = isDate(a);\n let bValidType = isDate(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? a.getTime() === b.getTime() : false;\n }\n aValidType = isSymbol(a);\n bValidType = isSymbol(b);\n if (aValidType || bValidType) {\n return a === b;\n }\n aValidType = isArray(a);\n bValidType = isArray(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? looseCompareArrays(a, b) : false;\n }\n aValidType = isObject(a);\n bValidType = isObject(b);\n if (aValidType || bValidType) {\n if (!aValidType || !bValidType) {\n return false;\n }\n const aKeysCount = Object.keys(a).length;\n const bKeysCount = Object.keys(b).length;\n if (aKeysCount !== bKeysCount) {\n return false;\n }\n for (const key in a) {\n const aHasKey = a.hasOwnProperty(key);\n const bHasKey = b.hasOwnProperty(key);\n if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) {\n return false;\n }\n }\n }\n return String(a) === String(b);\n}\nfunction looseIndexOf(arr, val) {\n return arr.findIndex((item) => looseEqual(item, val));\n}\n\nconst isRef = (val) => {\n return !!(val && val[\"__v_isRef\"] === true);\n};\nconst toDisplayString = (val) => {\n return isString(val) ? val : val == null ? \"\" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? isRef(val) ? toDisplayString(val.value) : JSON.stringify(val, replacer, 2) : String(val);\n};\nconst replacer = (_key, val) => {\n if (isRef(val)) {\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 (\n // Symbol.description in es2019+ so we need to cast here to pass\n // the lib: es2016 check\n isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v\n );\n};\n\nexport { EMPTY_ARR, EMPTY_OBJ, NO, NOOP, PatchFlagNames, PatchFlags, ShapeFlags, SlotFlags, camelize, capitalize, cssVarNameEscapeSymbolsRE, def, escapeHtml, escapeHtmlComment, extend, genPropsAccessExp, generateCodeFrame, getEscapedCssVarName, getGlobalThis, hasChanged, hasOwn, hyphenate, includeBooleanAttr, invokeArrayFns, isArray, isBooleanAttr, isBuiltInDirective, isDate, isFunction, isGloballyAllowed, isGloballyWhitelisted, isHTMLTag, isIntegerKey, isKnownHtmlAttr, isKnownMathMLAttr, isKnownSvgAttr, isMap, isMathMLTag, isModelListener, isObject, isOn, isPlainObject, isPromise, isRegExp, isRenderableAttrValue, 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","var global = typeof self !== 'undefined' ? self : this;\nvar __self__ = (function () {\nfunction F() {\nthis.fetch = false;\nthis.DOMException = global.DOMException\n}\nF.prototype = global;\nreturn new F();\n})();\n(function(self) {\n\nvar irrelevant = (function (exports) {\n\n var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob:\n 'FileReader' in self &&\n 'Blob' in self &&\n (function() {\n try {\n new Blob();\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n };\n\n function isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ];\n\n var isArrayBufferView =\n ArrayBuffer.isView ||\n function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n };\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name);\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value);\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift();\n return {done: value === undefined, value: value}\n }\n };\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n };\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {};\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value);\n }, this);\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1]);\n }, this);\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name]);\n }, this);\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name);\n value = normalizeValue(value);\n var oldValue = this.map[name];\n this.map[name] = oldValue ? oldValue + ', ' + value : value;\n };\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)];\n };\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name);\n return this.has(name) ? this.map[name] : null\n };\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n };\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value);\n };\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this);\n }\n }\n };\n\n Headers.prototype.keys = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push(name);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.values = function() {\n var items = [];\n this.forEach(function(value) {\n items.push(value);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.entries = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push([name, value]);\n });\n return iteratorFor(items)\n };\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries;\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true;\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result);\n };\n reader.onerror = function() {\n reject(reader.error);\n };\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsArrayBuffer(blob);\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsText(blob);\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf);\n var chars = new Array(view.length);\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i]);\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength);\n view.set(new Uint8Array(buf));\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false;\n\n this._initBody = function(body) {\n this._bodyInit = body;\n if (!body) {\n this._bodyText = '';\n } else if (typeof body === 'string') {\n this._bodyText = body;\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body;\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body;\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString();\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer);\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer]);\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body);\n } else {\n this._bodyText = body = Object.prototype.toString.call(body);\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8');\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type);\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n }\n };\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n };\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n };\n }\n\n this.text = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n };\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n };\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n };\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT'];\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase();\n return methods.indexOf(upcased) > -1 ? upcased : method\n }\n\n function Request(input, options) {\n options = options || {};\n var body = options.body;\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url;\n this.credentials = input.credentials;\n if (!options.headers) {\n this.headers = new Headers(input.headers);\n }\n this.method = input.method;\n this.mode = input.mode;\n this.signal = input.signal;\n if (!body && input._bodyInit != null) {\n body = input._bodyInit;\n input.bodyUsed = true;\n }\n } else {\n this.url = String(input);\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin';\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers);\n }\n this.method = normalizeMethod(options.method || this.method || 'GET');\n this.mode = options.mode || this.mode || null;\n this.signal = options.signal || this.signal;\n this.referrer = null;\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body);\n }\n\n Request.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n };\n\n function decode(body) {\n var form = new FormData();\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=');\n var name = split.shift().replace(/\\+/g, ' ');\n var value = split.join('=').replace(/\\+/g, ' ');\n form.append(decodeURIComponent(name), decodeURIComponent(value));\n }\n });\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers();\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ');\n preProcessedHeaders.split(/\\r?\\n/).forEach(function(line) {\n var parts = line.split(':');\n var key = parts.shift().trim();\n if (key) {\n var value = parts.join(':').trim();\n headers.append(key, value);\n }\n });\n return headers\n }\n\n Body.call(Request.prototype);\n\n function Response(bodyInit, options) {\n if (!options) {\n options = {};\n }\n\n this.type = 'default';\n this.status = options.status === undefined ? 200 : options.status;\n this.ok = this.status >= 200 && this.status < 300;\n this.statusText = 'statusText' in options ? options.statusText : 'OK';\n this.headers = new Headers(options.headers);\n this.url = options.url || '';\n this._initBody(bodyInit);\n }\n\n Body.call(Response.prototype);\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n };\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''});\n response.type = 'error';\n return response\n };\n\n var redirectStatuses = [301, 302, 303, 307, 308];\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n };\n\n exports.DOMException = self.DOMException;\n try {\n new exports.DOMException();\n } catch (err) {\n exports.DOMException = function(message, name) {\n this.message = message;\n this.name = name;\n var error = Error(message);\n this.stack = error.stack;\n };\n exports.DOMException.prototype = Object.create(Error.prototype);\n exports.DOMException.prototype.constructor = exports.DOMException;\n }\n\n function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init);\n\n if (request.signal && request.signal.aborted) {\n return reject(new exports.DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest();\n\n function abortXhr() {\n xhr.abort();\n }\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n };\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL');\n var body = 'response' in xhr ? xhr.response : xhr.responseText;\n resolve(new Response(body, options));\n };\n\n xhr.onerror = function() {\n reject(new TypeError('Network request failed'));\n };\n\n xhr.ontimeout = function() {\n reject(new TypeError('Network request failed'));\n };\n\n xhr.onabort = function() {\n reject(new exports.DOMException('Aborted', 'AbortError'));\n };\n\n xhr.open(request.method, request.url, true);\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true;\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false;\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob';\n }\n\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value);\n });\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr);\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr);\n }\n };\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit);\n })\n }\n\n fetch.polyfill = true;\n\n if (!self.fetch) {\n self.fetch = fetch;\n self.Headers = Headers;\n self.Request = Request;\n self.Response = Response;\n }\n\n exports.Headers = Headers;\n exports.Request = Request;\n exports.Response = Response;\n exports.fetch = fetch;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n return exports;\n\n})({});\n})(__self__);\n__self__.fetch.ponyfill = true;\n// Remove \"polyfill\" property added by whatwg-fetch\ndelete __self__.fetch.polyfill;\n// Choose between native implementation (global) or custom implementation (__self__)\n// var ctx = global.fetch ? global : __self__;\nvar ctx = __self__; // this line disable service worker support temporarily\nexports = ctx.fetch // To enable: import fetch from 'cross-fetch'\nexports.default = ctx.fetch // For TypeScript consumers without esModuleInterop.\nexports.fetch = ctx.fetch // To enable: import {fetch} from 'cross-fetch'\nexports.Headers = ctx.Headers\nexports.Request = ctx.Request\nexports.Response = ctx.Response\nmodule.exports = exports\n","module.exports = false;\n\n","'use strict';\n\nclass CancelError extends Error {\n\tconstructor(reason) {\n\t\tsuper(reason || 'Promise was canceled');\n\t\tthis.name = 'CancelError';\n\t}\n\n\tget isCanceled() {\n\t\treturn true;\n\t}\n}\n\nclass PCancelable {\n\tstatic fn(userFn) {\n\t\treturn (...arguments_) => {\n\t\t\treturn new PCancelable((resolve, reject, onCancel) => {\n\t\t\t\targuments_.push(onCancel);\n\t\t\t\t// eslint-disable-next-line promise/prefer-await-to-then\n\t\t\t\tuserFn(...arguments_).then(resolve, reject);\n\t\t\t});\n\t\t};\n\t}\n\n\tconstructor(executor) {\n\t\tthis._cancelHandlers = [];\n\t\tthis._isPending = true;\n\t\tthis._isCanceled = false;\n\t\tthis._rejectOnCancel = true;\n\n\t\tthis._promise = new Promise((resolve, reject) => {\n\t\t\tthis._reject = reject;\n\n\t\t\tconst onResolve = value => {\n\t\t\t\tif (!this._isCanceled || !onCancel.shouldReject) {\n\t\t\t\t\tthis._isPending = false;\n\t\t\t\t\tresolve(value);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tconst onReject = error => {\n\t\t\t\tthis._isPending = false;\n\t\t\t\treject(error);\n\t\t\t};\n\n\t\t\tconst onCancel = handler => {\n\t\t\t\tif (!this._isPending) {\n\t\t\t\t\tthrow new Error('The `onCancel` handler was attached after the promise settled.');\n\t\t\t\t}\n\n\t\t\t\tthis._cancelHandlers.push(handler);\n\t\t\t};\n\n\t\t\tObject.defineProperties(onCancel, {\n\t\t\t\tshouldReject: {\n\t\t\t\t\tget: () => this._rejectOnCancel,\n\t\t\t\t\tset: boolean => {\n\t\t\t\t\t\tthis._rejectOnCancel = boolean;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn executor(onResolve, onReject, onCancel);\n\t\t});\n\t}\n\n\tthen(onFulfilled, onRejected) {\n\t\t// eslint-disable-next-line promise/prefer-await-to-then\n\t\treturn this._promise.then(onFulfilled, onRejected);\n\t}\n\n\tcatch(onRejected) {\n\t\treturn this._promise.catch(onRejected);\n\t}\n\n\tfinally(onFinally) {\n\t\treturn this._promise.finally(onFinally);\n\t}\n\n\tcancel(reason) {\n\t\tif (!this._isPending || this._isCanceled) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._isCanceled = true;\n\n\t\tif (this._cancelHandlers.length > 0) {\n\t\t\ttry {\n\t\t\t\tfor (const handler of this._cancelHandlers) {\n\t\t\t\t\thandler();\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tthis._reject(error);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif (this._rejectOnCancel) {\n\t\t\tthis._reject(new CancelError(reason));\n\t\t}\n\t}\n\n\tget isCanceled() {\n\t\treturn this._isCanceled;\n\t}\n}\n\nObject.setPrototypeOf(PCancelable.prototype, Promise.prototype);\n\nmodule.exports = PCancelable;\nmodule.exports.CancelError = CancelError;\n","import { options } from 'preact';\n\n/** @type {number} */\nlet currentIndex;\n\n/** @type {import('./internal').Component} */\nlet currentComponent;\n\n/** @type {import('./internal').Component} */\nlet previousComponent;\n\n/** @type {number} */\nlet currentHook = 0;\n\n/** @type {Array<import('./internal').Component>} */\nlet afterPaintEffects = [];\n\nlet EMPTY = [];\n\nlet oldBeforeDiff = options._diff;\nlet oldBeforeRender = options._render;\nlet oldAfterDiff = options.diffed;\nlet oldCommit = options._commit;\nlet oldBeforeUnmount = options.unmount;\n\nconst RAF_TIMEOUT = 100;\nlet prevRaf;\n\noptions._diff = vnode => {\n\tcurrentComponent = null;\n\tif (oldBeforeDiff) oldBeforeDiff(vnode);\n};\n\noptions._render = vnode => {\n\tif (oldBeforeRender) oldBeforeRender(vnode);\n\n\tcurrentComponent = vnode._component;\n\tcurrentIndex = 0;\n\n\tconst hooks = currentComponent.__hooks;\n\tif (hooks) {\n\t\tif (previousComponent === currentComponent) {\n\t\t\thooks._pendingEffects = [];\n\t\t\tcurrentComponent._renderCallbacks = [];\n\t\t\thooks._list.forEach(hookItem => {\n\t\t\t\tif (hookItem._nextValue) {\n\t\t\t\t\thookItem._value = hookItem._nextValue;\n\t\t\t\t}\n\t\t\t\thookItem._pendingValue = EMPTY;\n\t\t\t\thookItem._nextValue = hookItem._pendingArgs = undefined;\n\t\t\t});\n\t\t} else {\n\t\t\thooks._pendingEffects.forEach(invokeCleanup);\n\t\t\thooks._pendingEffects.forEach(invokeEffect);\n\t\t\thooks._pendingEffects = [];\n\t\t}\n\t}\n\tpreviousComponent = currentComponent;\n};\n\noptions.diffed = vnode => {\n\tif (oldAfterDiff) oldAfterDiff(vnode);\n\n\tconst c = vnode._component;\n\tif (c && c.__hooks) {\n\t\tif (c.__hooks._pendingEffects.length) afterPaint(afterPaintEffects.push(c));\n\t\tc.__hooks._list.forEach(hookItem => {\n\t\t\tif (hookItem._pendingArgs) {\n\t\t\t\thookItem._args = hookItem._pendingArgs;\n\t\t\t}\n\t\t\tif (hookItem._pendingValue !== EMPTY) {\n\t\t\t\thookItem._value = hookItem._pendingValue;\n\t\t\t}\n\t\t\thookItem._pendingArgs = undefined;\n\t\t\thookItem._pendingValue = EMPTY;\n\t\t});\n\t}\n\tpreviousComponent = currentComponent = null;\n};\n\noptions._commit = (vnode, commitQueue) => {\n\tcommitQueue.some(component => {\n\t\ttry {\n\t\t\tcomponent._renderCallbacks.forEach(invokeCleanup);\n\t\t\tcomponent._renderCallbacks = component._renderCallbacks.filter(cb =>\n\t\t\t\tcb._value ? invokeEffect(cb) : true\n\t\t\t);\n\t\t} catch (e) {\n\t\t\tcommitQueue.some(c => {\n\t\t\t\tif (c._renderCallbacks) c._renderCallbacks = [];\n\t\t\t});\n\t\t\tcommitQueue = [];\n\t\t\toptions._catchError(e, component._vnode);\n\t\t}\n\t});\n\n\tif (oldCommit) oldCommit(vnode, commitQueue);\n};\n\noptions.unmount = vnode => {\n\tif (oldBeforeUnmount) oldBeforeUnmount(vnode);\n\n\tconst c = vnode._component;\n\tif (c && c.__hooks) {\n\t\tlet hasErrored;\n\t\tc.__hooks._list.forEach(s => {\n\t\t\ttry {\n\t\t\t\tinvokeCleanup(s);\n\t\t\t} catch (e) {\n\t\t\t\thasErrored = e;\n\t\t\t}\n\t\t});\n\t\tc.__hooks = undefined;\n\t\tif (hasErrored) options._catchError(hasErrored, c._vnode);\n\t}\n};\n\n/**\n * Get a hook's state from the currentComponent\n * @param {number} index The index of the hook to get\n * @param {number} type The index of the hook to get\n * @returns {any}\n */\nfunction getHookState(index, type) {\n\tif (options._hook) {\n\t\toptions._hook(currentComponent, index, currentHook || type);\n\t}\n\tcurrentHook = 0;\n\n\t// Largely inspired by:\n\t// * https://github.com/michael-klein/funcy.js/blob/f6be73468e6ec46b0ff5aa3cc4c9baf72a29025a/src/hooks/core_hooks.mjs\n\t// * https://github.com/michael-klein/funcy.js/blob/650beaa58c43c33a74820a3c98b3c7079cf2e333/src/renderer.mjs\n\t// Other implementations to look at:\n\t// * https://codesandbox.io/s/mnox05qp8\n\tconst hooks =\n\t\tcurrentComponent.__hooks ||\n\t\t(currentComponent.__hooks = {\n\t\t\t_list: [],\n\t\t\t_pendingEffects: []\n\t\t});\n\n\tif (index >= hooks._list.length) {\n\t\thooks._list.push({ _pendingValue: EMPTY });\n\t}\n\treturn hooks._list[index];\n}\n\n/**\n * @param {import('./index').StateUpdater<any>} [initialState]\n */\nexport function useState(initialState) {\n\tcurrentHook = 1;\n\treturn useReducer(invokeOrReturn, initialState);\n}\n\n/**\n * @param {import('./index').Reducer<any, any>} reducer\n * @param {import('./index').StateUpdater<any>} initialState\n * @param {(initialState: any) => void} [init]\n * @returns {[ any, (state: any) => void ]}\n */\nexport function useReducer(reducer, initialState, init) {\n\t/** @type {import('./internal').ReducerHookState} */\n\tconst hookState = getHookState(currentIndex++, 2);\n\thookState._reducer = reducer;\n\tif (!hookState._component) {\n\t\thookState._value = [\n\t\t\t!init ? invokeOrReturn(undefined, initialState) : init(initialState),\n\n\t\t\taction => {\n\t\t\t\tconst currentValue = hookState._nextValue\n\t\t\t\t\t? hookState._nextValue[0]\n\t\t\t\t\t: hookState._value[0];\n\t\t\t\tconst nextValue = hookState._reducer(currentValue, action);\n\n\t\t\t\tif (currentValue !== nextValue) {\n\t\t\t\t\thookState._nextValue = [nextValue, hookState._value[1]];\n\t\t\t\t\thookState._component.setState({});\n\t\t\t\t}\n\t\t\t}\n\t\t];\n\n\t\thookState._component = currentComponent;\n\n\t\tif (!currentComponent._hasScuFromHooks) {\n\t\t\tcurrentComponent._hasScuFromHooks = true;\n\t\t\tconst prevScu = currentComponent.shouldComponentUpdate;\n\n\t\t\t// This SCU has the purpose of bailing out after repeated updates\n\t\t\t// to stateful hooks.\n\t\t\t// we store the next value in _nextValue[0] and keep doing that for all\n\t\t\t// state setters, if we have next states and\n\t\t\t// all next states within a component end up being equal to their original state\n\t\t\t// we are safe to bail out for this specific component.\n\t\t\tcurrentComponent.shouldComponentUpdate = function(p, s, c) {\n\t\t\t\tif (!hookState._component.__hooks) return true;\n\n\t\t\t\tconst stateHooks = hookState._component.__hooks._list.filter(\n\t\t\t\t\tx => x._component\n\t\t\t\t);\n\t\t\t\tconst allHooksEmpty = stateHooks.every(x => !x._nextValue);\n\t\t\t\t// When we have no updated hooks in the component we invoke the previous SCU or\n\t\t\t\t// traverse the VDOM tree further.\n\t\t\t\tif (allHooksEmpty) {\n\t\t\t\t\treturn prevScu ? prevScu.call(this, p, s, c) : true;\n\t\t\t\t}\n\n\t\t\t\t// We check whether we have components with a nextValue set that\n\t\t\t\t// have values that aren't equal to one another this pushes\n\t\t\t\t// us to update further down the tree\n\t\t\t\tlet shouldUpdate = false;\n\t\t\t\tstateHooks.forEach(hookItem => {\n\t\t\t\t\tif (hookItem._nextValue) {\n\t\t\t\t\t\tconst currentValue = hookItem._value[0];\n\t\t\t\t\t\thookItem._value = hookItem._nextValue;\n\t\t\t\t\t\thookItem._nextValue = undefined;\n\t\t\t\t\t\tif (currentValue !== hookItem._value[0]) shouldUpdate = true;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\treturn shouldUpdate || hookState._component.props !== p\n\t\t\t\t\t? prevScu\n\t\t\t\t\t\t? prevScu.call(this, p, s, c)\n\t\t\t\t\t\t: true\n\t\t\t\t\t: false;\n\t\t\t};\n\t\t}\n\t}\n\n\treturn hookState._nextValue || hookState._value;\n}\n\n/**\n * @param {import('./internal').Effect} callback\n * @param {any[]} args\n */\nexport function useEffect(callback, args) {\n\t/** @type {import('./internal').EffectHookState} */\n\tconst state = getHookState(currentIndex++, 3);\n\tif (!options._skipEffects && argsChanged(state._args, args)) {\n\t\tstate._value = callback;\n\t\tstate._pendingArgs = args;\n\n\t\tcurrentComponent.__hooks._pendingEffects.push(state);\n\t}\n}\n\n/**\n * @param {import('./internal').Effect} callback\n * @param {any[]} args\n */\nexport function useLayoutEffect(callback, args) {\n\t/** @type {import('./internal').EffectHookState} */\n\tconst state = getHookState(currentIndex++, 4);\n\tif (!options._skipEffects && argsChanged(state._args, args)) {\n\t\tstate._value = callback;\n\t\tstate._pendingArgs = args;\n\n\t\tcurrentComponent._renderCallbacks.push(state);\n\t}\n}\n\nexport function useRef(initialValue) {\n\tcurrentHook = 5;\n\treturn useMemo(() => ({ current: initialValue }), []);\n}\n\n/**\n * @param {object} ref\n * @param {() => object} createHandle\n * @param {any[]} args\n */\nexport function useImperativeHandle(ref, createHandle, args) {\n\tcurrentHook = 6;\n\tuseLayoutEffect(\n\t\t() => {\n\t\t\tif (typeof ref == 'function') {\n\t\t\t\tref(createHandle());\n\t\t\t\treturn () => ref(null);\n\t\t\t} else if (ref) {\n\t\t\t\tref.current = createHandle();\n\t\t\t\treturn () => (ref.current = null);\n\t\t\t}\n\t\t},\n\t\targs == null ? args : args.concat(ref)\n\t);\n}\n\n/**\n * @param {() => any} factory\n * @param {any[]} args\n */\nexport function useMemo(factory, args) {\n\t/** @type {import('./internal').MemoHookState} */\n\tconst state = getHookState(currentIndex++, 7);\n\tif (argsChanged(state._args, args)) {\n\t\tstate._pendingValue = factory();\n\t\tstate._pendingArgs = args;\n\t\tstate._factory = factory;\n\t\treturn state._pendingValue;\n\t}\n\n\treturn state._value;\n}\n\n/**\n * @param {() => void} callback\n * @param {any[]} args\n */\nexport function useCallback(callback, args) {\n\tcurrentHook = 8;\n\treturn useMemo(() => callback, args);\n}\n\n/**\n * @param {import('./internal').PreactContext} context\n */\nexport function useContext(context) {\n\tconst provider = currentComponent.context[context._id];\n\t// We could skip this call here, but than we'd not call\n\t// `options._hook`. We need to do that in order to make\n\t// the devtools aware of this hook.\n\t/** @type {import('./internal').ContextHookState} */\n\tconst state = getHookState(currentIndex++, 9);\n\t// The devtools needs access to the context object to\n\t// be able to pull of the default value when no provider\n\t// is present in the tree.\n\tstate._context = context;\n\tif (!provider) return context._defaultValue;\n\t// This is probably not safe to convert to \"!\"\n\tif (state._value == null) {\n\t\tstate._value = true;\n\t\tprovider.sub(currentComponent);\n\t}\n\treturn provider.props.value;\n}\n\n/**\n * Display a custom label for a custom hook for the devtools panel\n * @type {<T>(value: T, cb?: (value: T) => string | number) => void}\n */\nexport function useDebugValue(value, formatter) {\n\tif (options.useDebugValue) {\n\t\toptions.useDebugValue(formatter ? formatter(value) : value);\n\t}\n}\n\n/**\n * @param {(error: any, errorInfo: import('preact').ErrorInfo) => void} cb\n */\nexport function useErrorBoundary(cb) {\n\t/** @type {import('./internal').ErrorBoundaryHookState} */\n\tconst state = getHookState(currentIndex++, 10);\n\tconst errState = useState();\n\tstate._value = cb;\n\tif (!currentComponent.componentDidCatch) {\n\t\tcurrentComponent.componentDidCatch = (err, errorInfo) => {\n\t\t\tif (state._value) state._value(err, errorInfo);\n\t\t\terrState[1](err);\n\t\t};\n\t}\n\treturn [\n\t\terrState[0],\n\t\t() => {\n\t\t\terrState[1](undefined);\n\t\t}\n\t];\n}\n\nexport function useId() {\n\tconst state = getHookState(currentIndex++, 11);\n\tif (!state._value) {\n\t\t// Grab either the root node or the nearest async boundary node.\n\t\t/** @type {import('./internal.d').VNode} */\n\t\tlet root = currentComponent._vnode;\n\t\twhile (root !== null && !root._mask && root._parent !== null) {\n\t\t\troot = root._parent;\n\t\t}\n\n\t\tlet mask = root._mask || (root._mask = [0, 0]);\n\t\tstate._value = 'P' + mask[0] + '-' + mask[1]++;\n\t}\n\n\treturn state._value;\n}\n/**\n * After paint effects consumer.\n */\nfunction flushAfterPaintEffects() {\n\tlet component;\n\twhile ((component = afterPaintEffects.shift())) {\n\t\tif (!component._parentDom || !component.__hooks) continue;\n\t\ttry {\n\t\t\tcomponent.__hooks._pendingEffects.forEach(invokeCleanup);\n\t\t\tcomponent.__hooks._pendingEffects.forEach(invokeEffect);\n\t\t\tcomponent.__hooks._pendingEffects = [];\n\t\t} catch (e) {\n\t\t\tcomponent.__hooks._pendingEffects = [];\n\t\t\toptions._catchError(e, component._vnode);\n\t\t}\n\t}\n}\n\nlet HAS_RAF = typeof requestAnimationFrame == 'function';\n\n/**\n * Schedule a callback to be invoked after the browser has a chance to paint a new frame.\n * Do this by combining requestAnimationFrame (rAF) + setTimeout to invoke a callback after\n * the next browser frame.\n *\n * Also, schedule a timeout in parallel to the the rAF to ensure the callback is invoked\n * even if RAF doesn't fire (for example if the browser tab is not visible)\n *\n * @param {() => void} callback\n */\nfunction afterNextFrame(callback) {\n\tconst done = () => {\n\t\tclearTimeout(timeout);\n\t\tif (HAS_RAF) cancelAnimationFrame(raf);\n\t\tsetTimeout(callback);\n\t};\n\tconst timeout = setTimeout(done, RAF_TIMEOUT);\n\n\tlet raf;\n\tif (HAS_RAF) {\n\t\traf = requestAnimationFrame(done);\n\t}\n}\n\n// Note: if someone used options.debounceRendering = requestAnimationFrame,\n// then effects will ALWAYS run on the NEXT frame instead of the current one, incurring a ~16ms delay.\n// Perhaps this is not such a big deal.\n/**\n * Schedule afterPaintEffects flush after the browser paints\n * @param {number} newQueueLength\n */\nfunction afterPaint(newQueueLength) {\n\tif (newQueueLength === 1 || prevRaf !== options.requestAnimationFrame) {\n\t\tprevRaf = options.requestAnimationFrame;\n\t\t(prevRaf || afterNextFrame)(flushAfterPaintEffects);\n\t}\n}\n\n/**\n * @param {import('./internal').EffectHookState} hook\n */\nfunction invokeCleanup(hook) {\n\t// A hook cleanup can introduce a call to render which creates a new root, this will call options.vnode\n\t// and move the currentComponent away.\n\tconst comp = currentComponent;\n\tlet cleanup = hook._cleanup;\n\tif (typeof cleanup == 'function') {\n\t\thook._cleanup = undefined;\n\t\tcleanup();\n\t}\n\n\tcurrentComponent = comp;\n}\n\n/**\n * Invoke a Hook's effect\n * @param {import('./internal').EffectHookState} hook\n */\nfunction invokeEffect(hook) {\n\t// A hook call can introduce a call to render which creates a new root, this will call options.vnode\n\t// and move the currentComponent away.\n\tconst comp = currentComponent;\n\thook._cleanup = hook._value();\n\tcurrentComponent = comp;\n}\n\n/**\n * @param {any[]} oldArgs\n * @param {any[]} newArgs\n */\nfunction argsChanged(oldArgs, newArgs) {\n\treturn (\n\t\t!oldArgs ||\n\t\toldArgs.length !== newArgs.length ||\n\t\tnewArgs.some((arg, index) => arg !== oldArgs[index])\n\t);\n}\n\nfunction invokeOrReturn(arg, f) {\n\treturn typeof f == 'function' ? f(arg) : f;\n}\n","/**\n * Assign properties from `props` to `obj`\n * @template O, P The obj and props types\n * @param {O} obj The object to copy properties to\n * @param {P} props The object to copy properties from\n * @returns {O & P}\n */\nexport function assign(obj, props) {\n\tfor (let i in props) obj[i] = props[i];\n\treturn /** @type {O & P} */ (obj);\n}\n\n/**\n * Check if two objects have a different shape\n * @param {object} a\n * @param {object} b\n * @returns {boolean}\n */\nexport function shallowDiffers(a, b) {\n\tfor (let i in a) if (i !== '__source' && !(i in b)) return true;\n\tfor (let i in b) if (i !== '__source' && a[i] !== b[i]) return true;\n\treturn false;\n}\n\nexport function removeNode(node) {\n\tlet parentNode = node.parentNode;\n\tif (parentNode) parentNode.removeChild(node);\n}\n\n/**\n * Check if two values are the same value\n * @param {*} x\n * @param {*} y\n * @returns {boolean}\n */\nexport function is(x, y) {\n\treturn (x === y && (x !== 0 || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\n","import { Component } from 'preact';\nimport { shallowDiffers } from './util';\n\n/**\n * Component class with a predefined `shouldComponentUpdate` implementation\n */\nexport function PureComponent(p) {\n\tthis.props = p;\n}\nPureComponent.prototype = new Component();\n// Some third-party libraries check if this property is present\nPureComponent.prototype.isPureReactComponent = true;\nPureComponent.prototype.shouldComponentUpdate = function(props, state) {\n\treturn shallowDiffers(this.props, props) || shallowDiffers(this.state, state);\n};\n","import { createElement } from 'preact';\nimport { shallowDiffers } from './util';\n\n/**\n * Memoize a component, so that it only updates when the props actually have\n * changed. This was previously known as `React.pure`.\n * @param {import('./internal').FunctionComponent} c functional component\n * @param {(prev: object, next: object) => boolean} [comparer] Custom equality function\n * @returns {import('./internal').FunctionComponent}\n */\nexport function memo(c, comparer) {\n\tfunction shouldUpdate(nextProps) {\n\t\tlet ref = this.props.ref;\n\t\tlet updateRef = ref == nextProps.ref;\n\t\tif (!updateRef && ref) {\n\t\t\tref.call ? ref(null) : (ref.current = null);\n\t\t}\n\n\t\tif (!comparer) {\n\t\t\treturn shallowDiffers(this.props, nextProps);\n\t\t}\n\n\t\treturn !comparer(this.props, nextProps) || !updateRef;\n\t}\n\n\tfunction Memoed(props) {\n\t\tthis.shouldComponentUpdate = shouldUpdate;\n\t\treturn createElement(c, props);\n\t}\n\tMemoed.displayName = 'Memo(' + (c.displayName || c.name) + ')';\n\tMemoed.prototype.isReactComponent = true;\n\tMemoed._forwarded = true;\n\treturn Memoed;\n}\n","import { options } from 'preact';\nimport { assign } from './util';\n\nlet oldDiffHook = options._diff;\noptions._diff = vnode => {\n\tif (vnode.type && vnode.type._forwarded && vnode.ref) {\n\t\tvnode.props.ref = vnode.ref;\n\t\tvnode.ref = null;\n\t}\n\tif (oldDiffHook) oldDiffHook(vnode);\n};\n\nexport const REACT_FORWARD_SYMBOL =\n\t(typeof Symbol != 'undefined' &&\n\t\tSymbol.for &&\n\t\tSymbol.for('react.forward_ref')) ||\n\t0xf47;\n\n/**\n * Pass ref down to a child. This is mainly used in libraries with HOCs that\n * wrap components. Using `forwardRef` there is an easy way to get a reference\n * of the wrapped component instead of one of the wrapper itself.\n * @param {import('./index').ForwardFn} fn\n * @returns {import('./internal').FunctionComponent}\n */\nexport function forwardRef(fn) {\n\tfunction Forwarded(props) {\n\t\tlet clone = assign({}, props);\n\t\tdelete clone.ref;\n\t\treturn fn(clone, props.ref || null);\n\t}\n\n\t// mobx-react checks for this being present\n\tForwarded.$$typeof = REACT_FORWARD_SYMBOL;\n\t// mobx-react heavily relies on implementation details.\n\t// It expects an object here with a `render` property,\n\t// and prototype.render will fail. Without this\n\t// mobx-react throws.\n\tForwarded.render = Forwarded;\n\n\tForwarded.prototype.isReactComponent = Forwarded._forwarded = true;\n\tForwarded.displayName = 'ForwardRef(' + (fn.displayName || fn.name) + ')';\n\treturn Forwarded;\n}\n","import { toChildArray } from 'preact';\n\nconst mapFn = (children, fn) => {\n\tif (children == null) return null;\n\treturn toChildArray(toChildArray(children).map(fn));\n};\n\n// This API is completely unnecessary for Preact, so it's basically passthrough.\nexport const Children = {\n\tmap: mapFn,\n\tforEach: mapFn,\n\tcount(children) {\n\t\treturn children ? toChildArray(children).length : 0;\n\t},\n\tonly(children) {\n\t\tconst normalized = toChildArray(children);\n\t\tif (normalized.length !== 1) throw 'Children.only';\n\t\treturn normalized[0];\n\t},\n\ttoArray: toChildArray\n};\n","import { Component, createElement, options, Fragment } from 'preact';\nimport { assign } from './util';\n\nconst oldCatchError = options._catchError;\noptions._catchError = function(error, newVNode, oldVNode, errorInfo) {\n\tif (error.then) {\n\t\t/** @type {import('./internal').Component} */\n\t\tlet component;\n\t\tlet vnode = newVNode;\n\n\t\tfor (; (vnode = vnode._parent); ) {\n\t\t\tif ((component = vnode._component) && component._childDidSuspend) {\n\t\t\t\tif (newVNode._dom == null) {\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t\t}\n\t\t\t\t// Don't call oldCatchError if we found a Suspense\n\t\t\t\treturn component._childDidSuspend(error, newVNode);\n\t\t\t}\n\t\t}\n\t}\n\toldCatchError(error, newVNode, oldVNode, errorInfo);\n};\n\nconst oldUnmount = options.unmount;\noptions.unmount = function(vnode) {\n\t/** @type {import('./internal').Component} */\n\tconst component = vnode._component;\n\tif (component && component._onResolve) {\n\t\tcomponent._onResolve();\n\t}\n\n\t// if the component is still hydrating\n\t// most likely it is because the component is suspended\n\t// we set the vnode.type as `null` so that it is not a typeof function\n\t// so the unmount will remove the vnode._dom\n\tif (component && vnode._hydrating === true) {\n\t\tvnode.type = null;\n\t}\n\n\tif (oldUnmount) oldUnmount(vnode);\n};\n\nfunction detachedClone(vnode, detachedParent, parentDom) {\n\tif (vnode) {\n\t\tif (vnode._component && vnode._component.__hooks) {\n\t\t\tvnode._component.__hooks._list.forEach(effect => {\n\t\t\t\tif (typeof effect._cleanup == 'function') effect._cleanup();\n\t\t\t});\n\n\t\t\tvnode._component.__hooks = null;\n\t\t}\n\n\t\tvnode = assign({}, vnode);\n\t\tif (vnode._component != null) {\n\t\t\tif (vnode._component._parentDom === parentDom) {\n\t\t\t\tvnode._component._parentDom = detachedParent;\n\t\t\t}\n\t\t\tvnode._component = null;\n\t\t}\n\n\t\tvnode._children =\n\t\t\tvnode._children &&\n\t\t\tvnode._children.map(child =>\n\t\t\t\tdetachedClone(child, detachedParent, parentDom)\n\t\t\t);\n\t}\n\n\treturn vnode;\n}\n\nfunction removeOriginal(vnode, detachedParent, originalParent) {\n\tif (vnode) {\n\t\tvnode._original = null;\n\t\tvnode._children =\n\t\t\tvnode._children &&\n\t\t\tvnode._children.map(child =>\n\t\t\t\tremoveOriginal(child, detachedParent, originalParent)\n\t\t\t);\n\n\t\tif (vnode._component) {\n\t\t\tif (vnode._component._parentDom === detachedParent) {\n\t\t\t\tif (vnode._dom) {\n\t\t\t\t\toriginalParent.insertBefore(vnode._dom, vnode._nextDom);\n\t\t\t\t}\n\t\t\t\tvnode._component._force = true;\n\t\t\t\tvnode._component._parentDom = originalParent;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn vnode;\n}\n\n// having custom inheritance instead of a class here saves a lot of bytes\nexport function Suspense() {\n\t// we do not call super here to golf some bytes...\n\tthis._pendingSuspensionCount = 0;\n\tthis._suspenders = null;\n\tthis._detachOnNextRender = null;\n}\n\n// Things we do here to save some bytes but are not proper JS inheritance:\n// - call `new Component()` as the prototype\n// - do not set `Suspense.prototype.constructor` to `Suspense`\nSuspense.prototype = new Component();\n\n/**\n * @this {import('./internal').SuspenseComponent}\n * @param {Promise} promise The thrown promise\n * @param {import('./internal').VNode<any, any>} suspendingVNode The suspending component\n */\nSuspense.prototype._childDidSuspend = function(promise, suspendingVNode) {\n\tconst suspendingComponent = suspendingVNode._component;\n\n\t/** @type {import('./internal').SuspenseComponent} */\n\tconst c = this;\n\n\tif (c._suspenders == null) {\n\t\tc._suspenders = [];\n\t}\n\tc._suspenders.push(suspendingComponent);\n\n\tconst resolve = suspended(c._vnode);\n\n\tlet resolved = false;\n\tconst onResolved = () => {\n\t\tif (resolved) return;\n\n\t\tresolved = true;\n\t\tsuspendingComponent._onResolve = null;\n\n\t\tif (resolve) {\n\t\t\tresolve(onSuspensionComplete);\n\t\t} else {\n\t\t\tonSuspensionComplete();\n\t\t}\n\t};\n\n\tsuspendingComponent._onResolve = onResolved;\n\n\tconst onSuspensionComplete = () => {\n\t\tif (!--c._pendingSuspensionCount) {\n\t\t\t// If the suspension was during hydration we don't need to restore the\n\t\t\t// suspended children into the _children array\n\t\t\tif (c.state._suspended) {\n\t\t\t\tconst suspendedVNode = c.state._suspended;\n\t\t\t\tc._vnode._children[0] = removeOriginal(\n\t\t\t\t\tsuspendedVNode,\n\t\t\t\t\tsuspendedVNode._component._parentDom,\n\t\t\t\t\tsuspendedVNode._component._originalParentDom\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tc.setState({ _suspended: (c._detachOnNextRender = null) });\n\n\t\t\tlet suspended;\n\t\t\twhile ((suspended = c._suspenders.pop())) {\n\t\t\t\tsuspended.forceUpdate();\n\t\t\t}\n\t\t}\n\t};\n\n\t/**\n\t * We do not set `suspended: true` during hydration because we want the actual markup\n\t * to remain on screen and hydrate it when the suspense actually gets resolved.\n\t * While in non-hydration cases the usual fallback -> component flow would occour.\n\t */\n\tconst wasHydrating = suspendingVNode._hydrating === true;\n\tif (!c._pendingSuspensionCount++ && !wasHydrating) {\n\t\tc.setState({ _suspended: (c._detachOnNextRender = c._vnode._children[0]) });\n\t}\n\tpromise.then(onResolved, onResolved);\n};\n\nSuspense.prototype.componentWillUnmount = function() {\n\tthis._suspenders = [];\n};\n\n/**\n * @this {import('./internal').SuspenseComponent}\n * @param {import('./internal').SuspenseComponent[\"props\"]} props\n * @param {import('./internal').SuspenseState} state\n */\nSuspense.prototype.render = function(props, state) {\n\tif (this._detachOnNextRender) {\n\t\t// When the Suspense's _vnode was created by a call to createVNode\n\t\t// (i.e. due to a setState further up in the tree)\n\t\t// it's _children prop is null, in this case we \"forget\" about the parked vnodes to detach\n\t\tif (this._vnode._children) {\n\t\t\tconst detachedParent = document.createElement('div');\n\t\t\tconst detachedComponent = this._vnode._children[0]._component;\n\t\t\tthis._vnode._children[0] = detachedClone(\n\t\t\t\tthis._detachOnNextRender,\n\t\t\t\tdetachedParent,\n\t\t\t\t(detachedComponent._originalParentDom = detachedComponent._parentDom)\n\t\t\t);\n\t\t}\n\n\t\tthis._detachOnNextRender = null;\n\t}\n\n\t// Wrap fallback tree in a VNode that prevents itself from being marked as aborting mid-hydration:\n\t/** @type {import('./internal').VNode} */\n\tconst fallback =\n\t\tstate._suspended && createElement(Fragment, null, props.fallback);\n\tif (fallback) fallback._hydrating = null;\n\n\treturn [\n\t\tcreateElement(Fragment, null, state._suspended ? null : props.children),\n\t\tfallback\n\t];\n};\n\n/**\n * Checks and calls the parent component's _suspended method, passing in the\n * suspended vnode. This is a way for a parent (e.g. SuspenseList) to get notified\n * that one of its children/descendants suspended.\n *\n * The parent MAY return a callback. The callback will get called when the\n * suspension resolves, notifying the parent of the fact.\n * Moreover, the callback gets function `unsuspend` as a parameter. The resolved\n * child descendant will not actually get unsuspended until `unsuspend` gets called.\n * This is a way for the parent to delay unsuspending.\n *\n * If the parent does not return a callback then the resolved vnode\n * gets unsuspended immediately when it resolves.\n *\n * @param {import('./internal').VNode} vnode\n * @returns {((unsuspend: () => void) => void)?}\n */\nexport function suspended(vnode) {\n\t/** @type {import('./internal').Component} */\n\tlet component = vnode._parent._component;\n\treturn component && component._suspended && component._suspended(vnode);\n}\n\nexport function lazy(loader) {\n\tlet prom;\n\tlet component;\n\tlet error;\n\n\tfunction Lazy(props) {\n\t\tif (!prom) {\n\t\t\tprom = loader();\n\t\t\tprom.then(\n\t\t\t\texports => {\n\t\t\t\t\tcomponent = exports.default || exports;\n\t\t\t\t},\n\t\t\t\te => {\n\t\t\t\t\terror = e;\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\tif (error) {\n\t\t\tthrow error;\n\t\t}\n\n\t\tif (!component) {\n\t\t\tthrow prom;\n\t\t}\n\n\t\treturn createElement(component, props);\n\t}\n\n\tLazy.displayName = 'Lazy';\n\tLazy._forwarded = true;\n\treturn Lazy;\n}\n","import { Component, toChildArray } from 'preact';\nimport { suspended } from './suspense.js';\n\n// Indexes to linked list nodes (nodes are stored as arrays to save bytes).\nconst SUSPENDED_COUNT = 0;\nconst RESOLVED_COUNT = 1;\nconst NEXT_NODE = 2;\n\n// Having custom inheritance instead of a class here saves a lot of bytes.\nexport function SuspenseList() {\n\tthis._next = null;\n\tthis._map = null;\n}\n\n// Mark one of child's earlier suspensions as resolved.\n// Some pending callbacks may become callable due to this\n// (e.g. the last suspended descendant gets resolved when\n// revealOrder === 'together'). Process those callbacks as well.\nconst resolve = (list, child, node) => {\n\tif (++node[RESOLVED_COUNT] === node[SUSPENDED_COUNT]) {\n\t\t// The number a child (or any of its descendants) has been suspended\n\t\t// matches the number of times it's been resolved. Therefore we\n\t\t// mark the child as completely resolved by deleting it from ._map.\n\t\t// This is used to figure out when *all* children have been completely\n\t\t// resolved when revealOrder is 'together'.\n\t\tlist._map.delete(child);\n\t}\n\n\t// If revealOrder is falsy then we can do an early exit, as the\n\t// callbacks won't get queued in the node anyway.\n\t// If revealOrder is 'together' then also do an early exit\n\t// if all suspended descendants have not yet been resolved.\n\tif (\n\t\t!list.props.revealOrder ||\n\t\t(list.props.revealOrder[0] === 't' && list._map.size)\n\t) {\n\t\treturn;\n\t}\n\n\t// Walk the currently suspended children in order, calling their\n\t// stored callbacks on the way. Stop if we encounter a child that\n\t// has not been completely resolved yet.\n\tnode = list._next;\n\twhile (node) {\n\t\twhile (node.length > 3) {\n\t\t\tnode.pop()();\n\t\t}\n\t\tif (node[RESOLVED_COUNT] < node[SUSPENDED_COUNT]) {\n\t\t\tbreak;\n\t\t}\n\t\tlist._next = node = node[NEXT_NODE];\n\t}\n};\n\n// Things we do here to save some bytes but are not proper JS inheritance:\n// - call `new Component()` as the prototype\n// - do not set `Suspense.prototype.constructor` to `Suspense`\nSuspenseList.prototype = new Component();\n\nSuspenseList.prototype._suspended = function(child) {\n\tconst list = this;\n\tconst delegated = suspended(list._vnode);\n\n\tlet node = list._map.get(child);\n\tnode[SUSPENDED_COUNT]++;\n\n\treturn unsuspend => {\n\t\tconst wrappedUnsuspend = () => {\n\t\t\tif (!list.props.revealOrder) {\n\t\t\t\t// Special case the undefined (falsy) revealOrder, as there\n\t\t\t\t// is no need to coordinate a specific order or unsuspends.\n\t\t\t\tunsuspend();\n\t\t\t} else {\n\t\t\t\tnode.push(unsuspend);\n\t\t\t\tresolve(list, child, node);\n\t\t\t}\n\t\t};\n\t\tif (delegated) {\n\t\t\tdelegated(wrappedUnsuspend);\n\t\t} else {\n\t\t\twrappedUnsuspend();\n\t\t}\n\t};\n};\n\nSuspenseList.prototype.render = function(props) {\n\tthis._next = null;\n\tthis._map = new Map();\n\n\tconst children = toChildArray(props.children);\n\tif (props.revealOrder && props.revealOrder[0] === 'b') {\n\t\t// If order === 'backwards' (or, well, anything starting with a 'b')\n\t\t// then flip the child list around so that the last child will be\n\t\t// the first in the linked list.\n\t\tchildren.reverse();\n\t}\n\t// Build the linked list. Iterate through the children in reverse order\n\t// so that `_next` points to the first linked list node to be resolved.\n\tfor (let i = children.length; i--; ) {\n\t\t// Create a new linked list node as an array of form:\n\t\t// \t[suspended_count, resolved_count, next_node]\n\t\t// where suspended_count and resolved_count are numeric counters for\n\t\t// keeping track how many times a node has been suspended and resolved.\n\t\t//\n\t\t// Note that suspended_count starts from 1 instead of 0, so we can block\n\t\t// processing callbacks until componentDidMount has been called. In a sense\n\t\t// node is suspended at least until componentDidMount gets called!\n\t\t//\n\t\t// Pending callbacks are added to the end of the node:\n\t\t// \t[suspended_count, resolved_count, next_node, callback_0, callback_1, ...]\n\t\tthis._map.set(children[i], (this._next = [1, 0, this._next]));\n\t}\n\treturn props.children;\n};\n\nSuspenseList.prototype.componentDidUpdate = SuspenseList.prototype.componentDidMount = function() {\n\t// Iterate through all children after mounting for two reasons:\n\t// 1. As each node[SUSPENDED_COUNT] starts from 1, this iteration increases\n\t// each node[RELEASED_COUNT] by 1, therefore balancing the counters.\n\t// The nodes can now be completely consumed from the linked list.\n\t// 2. Handle nodes that might have gotten resolved between render and\n\t// componentDidMount.\n\tthis._map.forEach((node, child) => {\n\t\tresolve(this, child, node);\n\t});\n};\n","import { createElement, render } from 'preact';\n\n/**\n * @param {import('../../src/index').RenderableProps<{ context: any }>} props\n */\nfunction ContextProvider(props) {\n\tthis.getChildContext = () => props.context;\n\treturn props.children;\n}\n\n/**\n * Portal component\n * @this {import('./internal').Component}\n * @param {object | null | undefined} props\n *\n * TODO: use createRoot() instead of fake root\n */\nfunction Portal(props) {\n\tconst _this = this;\n\tlet container = props._container;\n\n\t_this.componentWillUnmount = function() {\n\t\trender(null, _this._temp);\n\t\t_this._temp = null;\n\t\t_this._container = null;\n\t};\n\n\t// When we change container we should clear our old container and\n\t// indicate a new mount.\n\tif (_this._container && _this._container !== container) {\n\t\t_this.componentWillUnmount();\n\t}\n\n\t// When props.vnode is undefined/false/null we are dealing with some kind of\n\t// conditional vnode. This should not trigger a render.\n\tif (props._vnode) {\n\t\tif (!_this._temp) {\n\t\t\t_this._container = container;\n\n\t\t\t// Create a fake DOM parent node that manages a subset of `container`'s children:\n\t\t\t_this._temp = {\n\t\t\t\tnodeType: 1,\n\t\t\t\tparentNode: container,\n\t\t\t\tchildNodes: [],\n\t\t\t\tappendChild(child) {\n\t\t\t\t\tthis.childNodes.push(child);\n\t\t\t\t\t_this._container.appendChild(child);\n\t\t\t\t},\n\t\t\t\tinsertBefore(child, before) {\n\t\t\t\t\tthis.childNodes.push(child);\n\t\t\t\t\t_this._container.appendChild(child);\n\t\t\t\t},\n\t\t\t\tremoveChild(child) {\n\t\t\t\t\tthis.childNodes.splice(this.childNodes.indexOf(child) >>> 1, 1);\n\t\t\t\t\t_this._container.removeChild(child);\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\t\t// Render our wrapping element into temp.\n\t\trender(\n\t\t\tcreateElement(ContextProvider, { context: _this.context }, props._vnode),\n\t\t\t_this._temp\n\t\t);\n\t}\n\t// When we come from a conditional render, on a mounted\n\t// portal we should clear the DOM.\n\telse if (_this._temp) {\n\t\t_this.componentWillUnmount();\n\t}\n}\n\n/**\n * Create a `Portal` to continue rendering the vnode tree at a different DOM node\n * @param {import('./internal').VNode} vnode The vnode to render\n * @param {import('./internal').PreactElement} container The DOM node to continue rendering in to.\n */\nexport function createPortal(vnode, container) {\n\tconst el = createElement(Portal, { _vnode: vnode, _container: container });\n\tel.containerInfo = container;\n\treturn el;\n}\n","import {\n\trender as preactRender,\n\thydrate as preactHydrate,\n\toptions,\n\ttoChildArray,\n\tComponent\n} from 'preact';\n\nexport const REACT_ELEMENT_TYPE =\n\t(typeof Symbol != 'undefined' && Symbol.for && Symbol.for('react.element')) ||\n\t0xeac7;\n\nconst CAMEL_PROPS = /^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/;\n\nconst IS_DOM = typeof document !== 'undefined';\n\n// Input types for which onchange should not be converted to oninput.\n// type=\"file|checkbox|radio\", plus \"range\" in IE11.\n// (IE11 doesn't support Symbol, which we use here to turn `rad` into `ra` which matches \"range\")\nconst onChangeInputType = type =>\n\t(typeof Symbol != 'undefined' && typeof Symbol() == 'symbol'\n\t\t? /fil|che|rad/i\n\t\t: /fil|che|ra/i\n\t).test(type);\n\n// Some libraries like `react-virtualized` explicitly check for this.\nComponent.prototype.isReactComponent = {};\n\n// `UNSAFE_*` lifecycle hooks\n// Preact only ever invokes the unprefixed methods.\n// Here we provide a base \"fallback\" implementation that calls any defined UNSAFE_ prefixed method.\n// - If a component defines its own `componentDidMount()` (including via defineProperty), use that.\n// - If a component defines `UNSAFE_componentDidMount()`, `componentDidMount` is the alias getter/setter.\n// - If anything assigns to an `UNSAFE_*` property, the assignment is forwarded to the unprefixed property.\n// See https://github.com/preactjs/preact/issues/1941\n[\n\t'componentWillMount',\n\t'componentWillReceiveProps',\n\t'componentWillUpdate'\n].forEach(key => {\n\tObject.defineProperty(Component.prototype, key, {\n\t\tconfigurable: true,\n\t\tget() {\n\t\t\treturn this['UNSAFE_' + key];\n\t\t},\n\t\tset(v) {\n\t\t\tObject.defineProperty(this, key, {\n\t\t\t\tconfigurable: true,\n\t\t\t\twritable: true,\n\t\t\t\tvalue: v\n\t\t\t});\n\t\t}\n\t});\n});\n\n/**\n * Proxy render() since React returns a Component reference.\n * @param {import('./internal').VNode} vnode VNode tree to render\n * @param {import('./internal').PreactElement} parent DOM node to render vnode tree into\n * @param {() => void} [callback] Optional callback that will be called after rendering\n * @returns {import('./internal').Component | null} The root component reference or null\n */\nexport function render(vnode, parent, callback) {\n\t// React destroys any existing DOM nodes, see #1727\n\t// ...but only on the first render, see #1828\n\tif (parent._children == null) {\n\t\tparent.textContent = '';\n\t}\n\n\tpreactRender(vnode, parent);\n\tif (typeof callback == 'function') callback();\n\n\treturn vnode ? vnode._component : null;\n}\n\nexport function hydrate(vnode, parent, callback) {\n\tpreactHydrate(vnode, parent);\n\tif (typeof callback == 'function') callback();\n\n\treturn vnode ? vnode._component : null;\n}\n\nlet oldEventHook = options.event;\noptions.event = e => {\n\tif (oldEventHook) e = oldEventHook(e);\n\te.persist = empty;\n\te.isPropagationStopped = isPropagationStopped;\n\te.isDefaultPrevented = isDefaultPrevented;\n\treturn (e.nativeEvent = e);\n};\n\nfunction empty() {}\n\nfunction isPropagationStopped() {\n\treturn this.cancelBubble;\n}\n\nfunction isDefaultPrevented() {\n\treturn this.defaultPrevented;\n}\n\nlet classNameDescriptor = {\n\tconfigurable: true,\n\tget() {\n\t\treturn this.class;\n\t}\n};\n\nlet oldVNodeHook = options.vnode;\noptions.vnode = vnode => {\n\tlet type = vnode.type;\n\tlet props = vnode.props;\n\tlet normalizedProps = props;\n\n\t// only normalize props on Element nodes\n\tif (typeof type === 'string') {\n\t\tconst nonCustomElement = type.indexOf('-') === -1;\n\t\tnormalizedProps = {};\n\n\t\tfor (let i in props) {\n\t\t\tlet value = props[i];\n\n\t\t\tif (IS_DOM && i === 'children' && type === 'noscript') {\n\t\t\t\t// Emulate React's behavior of not rendering the contents of noscript tags on the client.\n\t\t\t\tcontinue;\n\t\t\t} else if (i === 'value' && 'defaultValue' in props && value == null) {\n\t\t\t\t// Skip applying value if it is null/undefined and we already set\n\t\t\t\t// a default value\n\t\t\t\tcontinue;\n\t\t\t} else if (\n\t\t\t\ti === 'defaultValue' &&\n\t\t\t\t'value' in props &&\n\t\t\t\tprops.value == null\n\t\t\t) {\n\t\t\t\t// `defaultValue` is treated as a fallback `value` when a value prop is present but null/undefined.\n\t\t\t\t// `defaultValue` for Elements with no value prop is the same as the DOM defaultValue property.\n\t\t\t\ti = 'value';\n\t\t\t} else if (i === 'download' && value === true) {\n\t\t\t\t// Calling `setAttribute` with a truthy value will lead to it being\n\t\t\t\t// passed as a stringified value, e.g. `download=\"true\"`. React\n\t\t\t\t// converts it to an empty string instead, otherwise the attribute\n\t\t\t\t// value will be used as the file name and the file will be called\n\t\t\t\t// \"true\" upon downloading it.\n\t\t\t\tvalue = '';\n\t\t\t} else if (/ondoubleclick/i.test(i)) {\n\t\t\t\ti = 'ondblclick';\n\t\t\t} else if (\n\t\t\t\t/^onchange(textarea|input)/i.test(i + type) &&\n\t\t\t\t!onChangeInputType(props.type)\n\t\t\t) {\n\t\t\t\ti = 'oninput';\n\t\t\t} else if (/^onfocus$/i.test(i)) {\n\t\t\t\ti = 'onfocusin';\n\t\t\t} else if (/^onblur$/i.test(i)) {\n\t\t\t\ti = 'onfocusout';\n\t\t\t} else if (/^on(Ani|Tra|Tou|BeforeInp|Compo)/.test(i)) {\n\t\t\t\ti = i.toLowerCase();\n\t\t\t} else if (nonCustomElement && CAMEL_PROPS.test(i)) {\n\t\t\t\ti = i.replace(/[A-Z0-9]/g, '-$&').toLowerCase();\n\t\t\t} else if (value === null) {\n\t\t\t\tvalue = undefined;\n\t\t\t}\n\n\t\t\t// Add support for onInput and onChange, see #3561\n\t\t\t// if we have an oninput prop already change it to oninputCapture\n\t\t\tif (/^oninput$/i.test(i)) {\n\t\t\t\ti = i.toLowerCase();\n\t\t\t\tif (normalizedProps[i]) {\n\t\t\t\t\ti = 'oninputCapture';\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tnormalizedProps[i] = value;\n\t\t}\n\n\t\t// Add support for array select values: <select multiple value={[]} />\n\t\tif (\n\t\t\ttype == 'select' &&\n\t\t\tnormalizedProps.multiple &&\n\t\t\tArray.isArray(normalizedProps.value)\n\t\t) {\n\t\t\t// forEach() always returns undefined, which we abuse here to unset the value prop.\n\t\t\tnormalizedProps.value = toChildArray(props.children).forEach(child => {\n\t\t\t\tchild.props.selected =\n\t\t\t\t\tnormalizedProps.value.indexOf(child.props.value) != -1;\n\t\t\t});\n\t\t}\n\n\t\t// Adding support for defaultValue in select tag\n\t\tif (type == 'select' && normalizedProps.defaultValue != null) {\n\t\t\tnormalizedProps.value = toChildArray(props.children).forEach(child => {\n\t\t\t\tif (normalizedProps.multiple) {\n\t\t\t\t\tchild.props.selected =\n\t\t\t\t\t\tnormalizedProps.defaultValue.indexOf(child.props.value) != -1;\n\t\t\t\t} else {\n\t\t\t\t\tchild.props.selected =\n\t\t\t\t\t\tnormalizedProps.defaultValue == child.props.value;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tvnode.props = normalizedProps;\n\n\t\tif (props.class != props.className) {\n\t\t\tclassNameDescriptor.enumerable = 'className' in props;\n\t\t\tif (props.className != null) normalizedProps.class = props.className;\n\t\t\tObject.defineProperty(normalizedProps, 'className', classNameDescriptor);\n\t\t}\n\t}\n\n\tvnode.$$typeof = REACT_ELEMENT_TYPE;\n\n\tif (oldVNodeHook) oldVNodeHook(vnode);\n};\n\n// Only needed for react-relay\nlet currentComponent;\nconst oldBeforeRender = options._render;\noptions._render = function(vnode) {\n\tif (oldBeforeRender) {\n\t\toldBeforeRender(vnode);\n\t}\n\tcurrentComponent = vnode._component;\n};\n\n// This is a very very private internal function for React it\n// is used to sort-of do runtime dependency injection. So far\n// only `react-relay` makes use of it. It uses it to read the\n// context value.\nexport const __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = {\n\tReactCurrentDispatcher: {\n\t\tcurrent: {\n\t\t\treadContext(context) {\n\t\t\t\treturn currentComponent._globalContext[context._id].props.value;\n\t\t\t}\n\t\t}\n\t}\n};\n","import { _catchError } from './diff/catch-error';\n\n/**\n * The `option` object can potentially contain callback functions\n * that are called during various stages of our renderer. This is the\n * foundation on which all our addons like `preact/debug`, `preact/compat`,\n * and `preact/hooks` are based on. See the `Options` type in `internal.d.ts`\n * for a full list of available option hooks (most editors/IDEs allow you to\n * ctrl+click or cmd+click on mac the type definition below).\n * @type {import('./internal').Options}\n */\nconst options = {\n\t_catchError\n};\n\nexport default options;\n","import { slice } from './util';\nimport options from './options';\n\nlet vnodeId = 0;\n\n/**\n * Create an virtual node (used for JSX)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * constructor for this virtual node\n * @param {object | null | undefined} [props] The properties of the virtual node\n * @param {Array<import('.').ComponentChildren>} [children] The children of the virtual node\n * @returns {import('./internal').VNode}\n */\nexport function createElement(type, props, children) {\n\tlet normalizedProps = {},\n\t\tkey,\n\t\tref,\n\t\ti;\n\tfor (i in props) {\n\t\tif (i == 'key') key = props[i];\n\t\telse if (i == 'ref') ref = props[i];\n\t\telse normalizedProps[i] = props[i];\n\t}\n\n\tif (arguments.length > 2) {\n\t\tnormalizedProps.children =\n\t\t\targuments.length > 3 ? slice.call(arguments, 2) : children;\n\t}\n\n\t// If a Component VNode, check for and apply defaultProps\n\t// Note: type may be undefined in development, must never error here.\n\tif (typeof type == 'function' && type.defaultProps != null) {\n\t\tfor (i in type.defaultProps) {\n\t\t\tif (normalizedProps[i] === undefined) {\n\t\t\t\tnormalizedProps[i] = type.defaultProps[i];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn createVNode(type, normalizedProps, key, ref, null);\n}\n\n/**\n * Create a VNode (used internally by Preact)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * Constructor for this virtual node\n * @param {object | string | number | null} props The properties of this virtual node.\n * If this virtual node represents a text node, this is the text of the node (string or number).\n * @param {string | number | null} key The key for this virtual node, used when\n * diffing it against its children\n * @param {import('./internal').VNode[\"ref\"]} ref The ref property that will\n * receive a reference to its created child\n * @returns {import('./internal').VNode}\n */\nexport function createVNode(type, props, key, ref, original) {\n\t// V8 seems to be better at detecting type shapes if the object is allocated from the same call site\n\t// Do not inline into createElement and coerceToVNode!\n\tconst vnode = {\n\t\ttype,\n\t\tprops,\n\t\tkey,\n\t\tref,\n\t\t_children: null,\n\t\t_parent: null,\n\t\t_depth: 0,\n\t\t_dom: null,\n\t\t// _nextDom must be initialized to undefined b/c it will eventually\n\t\t// be set to dom.nextSibling which can return `null` and it is important\n\t\t// to be able to distinguish between an uninitialized _nextDom and\n\t\t// a _nextDom that has been set to `null`\n\t\t_nextDom: undefined,\n\t\t_component: null,\n\t\t_hydrating: null,\n\t\tconstructor: undefined,\n\t\t_original: original == null ? ++vnodeId : original\n\t};\n\n\t// Only invoke the vnode hook if this was *not* a direct copy:\n\tif (original == null && options.vnode != null) options.vnode(vnode);\n\n\treturn vnode;\n}\n\nexport function createRef() {\n\treturn { current: null };\n}\n\nexport function Fragment(props) {\n\treturn props.children;\n}\n\n/**\n * Check if a the argument is a valid Preact VNode.\n * @param {*} vnode\n * @returns {vnode is import('./internal').VNode}\n */\nexport const isValidElement = vnode =>\n\tvnode != null && vnode.constructor === undefined;\n","import { IS_NON_DIMENSIONAL } from '../constants';\nimport options from '../options';\n\n/**\n * Diff the old and new properties of a VNode and apply changes to the DOM node\n * @param {import('../internal').PreactElement} dom The DOM node to apply\n * changes to\n * @param {object} newProps The new props\n * @param {object} oldProps The old props\n * @param {boolean} isSvg Whether or not this node is an SVG node\n * @param {boolean} hydrate Whether or not we are in hydration mode\n */\nexport function diffProps(dom, newProps, oldProps, isSvg, hydrate) {\n\tlet i;\n\n\tfor (i in oldProps) {\n\t\tif (i !== 'children' && i !== 'key' && !(i in newProps)) {\n\t\t\tsetProperty(dom, i, null, oldProps[i], isSvg);\n\t\t}\n\t}\n\n\tfor (i in newProps) {\n\t\tif (\n\t\t\t(!hydrate || typeof newProps[i] == 'function') &&\n\t\t\ti !== 'children' &&\n\t\t\ti !== 'key' &&\n\t\t\ti !== 'value' &&\n\t\t\ti !== 'checked' &&\n\t\t\toldProps[i] !== newProps[i]\n\t\t) {\n\t\t\tsetProperty(dom, i, newProps[i], oldProps[i], isSvg);\n\t\t}\n\t}\n}\n\nfunction setStyle(style, key, value) {\n\tif (key[0] === '-') {\n\t\tstyle.setProperty(key, value == null ? '' : value);\n\t} else if (value == null) {\n\t\tstyle[key] = '';\n\t} else if (typeof value != 'number' || IS_NON_DIMENSIONAL.test(key)) {\n\t\tstyle[key] = value;\n\t} else {\n\t\tstyle[key] = value + 'px';\n\t}\n}\n\n/**\n * Set a property value on a DOM node\n * @param {import('../internal').PreactElement} dom The DOM node to modify\n * @param {string} name The name of the property to set\n * @param {*} value The value to set the property to\n * @param {*} oldValue The old value the property had\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node or not\n */\nexport function setProperty(dom, name, value, oldValue, isSvg) {\n\tlet useCapture;\n\n\to: if (name === 'style') {\n\t\tif (typeof value == 'string') {\n\t\t\tdom.style.cssText = value;\n\t\t} else {\n\t\t\tif (typeof oldValue == 'string') {\n\t\t\t\tdom.style.cssText = oldValue = '';\n\t\t\t}\n\n\t\t\tif (oldValue) {\n\t\t\t\tfor (name in oldValue) {\n\t\t\t\t\tif (!(value && name in value)) {\n\t\t\t\t\t\tsetStyle(dom.style, name, '');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (value) {\n\t\t\t\tfor (name in value) {\n\t\t\t\t\tif (!oldValue || value[name] !== oldValue[name]) {\n\t\t\t\t\t\tsetStyle(dom.style, name, value[name]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t// Benchmark for comparison: https://esbench.com/bench/574c954bdb965b9a00965ac6\n\telse if (name[0] === 'o' && name[1] === 'n') {\n\t\tuseCapture = name !== (name = name.replace(/Capture$/, ''));\n\n\t\t// Infer correct casing for DOM built-in events:\n\t\tif (name.toLowerCase() in dom) name = name.toLowerCase().slice(2);\n\t\telse name = name.slice(2);\n\n\t\tif (!dom._listeners) dom._listeners = {};\n\t\tdom._listeners[name + useCapture] = value;\n\n\t\tif (value) {\n\t\t\tif (!oldValue) {\n\t\t\t\tconst handler = useCapture ? eventProxyCapture : eventProxy;\n\t\t\t\tdom.addEventListener(name, handler, useCapture);\n\t\t\t}\n\t\t} else {\n\t\t\tconst handler = useCapture ? eventProxyCapture : eventProxy;\n\t\t\tdom.removeEventListener(name, handler, useCapture);\n\t\t}\n\t} else if (name !== 'dangerouslySetInnerHTML') {\n\t\tif (isSvg) {\n\t\t\t// Normalize incorrect prop usage for SVG:\n\t\t\t// - xlink:href / xlinkHref --> href (xlink:href was removed from SVG and isn't needed)\n\t\t\t// - className --> class\n\t\t\tname = name.replace(/xlink(H|:h)/, 'h').replace(/sName$/, 's');\n\t\t} else if (\n\t\t\tname !== 'width' &&\n\t\t\tname !== 'height' &&\n\t\t\tname !== 'href' &&\n\t\t\tname !== 'list' &&\n\t\t\tname !== 'form' &&\n\t\t\t// Default value in browsers is `-1` and an empty string is\n\t\t\t// cast to `0` instead\n\t\t\tname !== 'tabIndex' &&\n\t\t\tname !== 'download' &&\n\t\t\tname in dom\n\t\t) {\n\t\t\ttry {\n\t\t\t\tdom[name] = value == null ? '' : value;\n\t\t\t\t// labelled break is 1b smaller here than a return statement (sorry)\n\t\t\t\tbreak o;\n\t\t\t} catch (e) {}\n\t\t}\n\n\t\t// ARIA-attributes have a different notion of boolean values.\n\t\t// The value `false` is different from the attribute not\n\t\t// existing on the DOM, so we can't remove it. For non-boolean\n\t\t// ARIA-attributes we could treat false as a removal, but the\n\t\t// amount of exceptions would cost us too many bytes. On top of\n\t\t// that other VDOM frameworks also always stringify `false`.\n\n\t\tif (typeof value === 'function') {\n\t\t\t// never serialize functions as attribute values\n\t\t} else if (value != null && (value !== false || name.indexOf('-') != -1)) {\n\t\t\tdom.setAttribute(name, value);\n\t\t} else {\n\t\t\tdom.removeAttribute(name);\n\t\t}\n\t}\n}\n\nexport let inEvent = false;\n\n/**\n * Proxy an event to hooked event handlers\n * @param {Event} e The event object from the browser\n * @private\n */\nfunction eventProxy(e) {\n\tinEvent = true;\n\ttry {\n\t\treturn this._listeners[e.type + false](\n\t\t\toptions.event ? options.event(e) : e\n\t\t);\n\t} finally {\n\t\tinEvent = false;\n\t}\n}\n\nfunction eventProxyCapture(e) {\n\tinEvent = true;\n\ttry {\n\t\treturn this._listeners[e.type + true](options.event ? options.event(e) : e);\n\t} finally {\n\t\tinEvent = false;\n\t}\n}\n","import { assign } from './util';\nimport { diff, commitRoot } from './diff/index';\nimport options from './options';\nimport { Fragment } from './create-element';\nimport { inEvent } from './diff/props';\n\n/**\n * Base Component class. Provides `setState()` and `forceUpdate()`, which\n * trigger rendering\n * @param {object} props The initial component props\n * @param {object} context The initial context from parent components'\n * getChildContext\n */\nexport function Component(props, context) {\n\tthis.props = props;\n\tthis.context = context;\n}\n\n/**\n * Update component state and schedule a re-render.\n * @this {import('./internal').Component}\n * @param {object | ((s: object, p: object) => object)} update A hash of state\n * properties to update with new values or a function that given the current\n * state and props returns a new partial state\n * @param {() => void} [callback] A function to be called once component state is\n * updated\n */\nComponent.prototype.setState = function(update, callback) {\n\t// only clone state when copying to nextState the first time.\n\tlet s;\n\tif (this._nextState != null && this._nextState !== this.state) {\n\t\ts = this._nextState;\n\t} else {\n\t\ts = this._nextState = assign({}, this.state);\n\t}\n\n\tif (typeof update == 'function') {\n\t\t// Some libraries like `immer` mark the current state as readonly,\n\t\t// preventing us from mutating it, so we need to clone it. See #2716\n\t\tupdate = update(assign({}, s), this.props);\n\t}\n\n\tif (update) {\n\t\tassign(s, update);\n\t}\n\n\t// Skip update if updater function returned null\n\tif (update == null) return;\n\n\tif (this._vnode) {\n\t\tif (callback) {\n\t\t\tthis._stateCallbacks.push(callback);\n\t\t}\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Immediately perform a synchronous re-render of the component\n * @this {import('./internal').Component}\n * @param {() => void} [callback] A function to be called after component is\n * re-rendered\n */\nComponent.prototype.forceUpdate = function(callback) {\n\tif (this._vnode) {\n\t\t// Set render mode so that we can differentiate where the render request\n\t\t// is coming from. We need this because forceUpdate should never call\n\t\t// shouldComponentUpdate\n\t\tthis._force = true;\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Accepts `props` and `state`, and returns a new Virtual DOM tree to build.\n * Virtual DOM is generally constructed via [JSX](http://jasonformat.com/wtf-is-jsx).\n * @param {object} props Props (eg: JSX attributes) received from parent\n * element/component\n * @param {object} state The component's current state\n * @param {object} context Context object, as returned by the nearest\n * ancestor's `getChildContext()`\n * @returns {import('./index').ComponentChildren | void}\n */\nComponent.prototype.render = Fragment;\n\n/**\n * @param {import('./internal').VNode} vnode\n * @param {number | null} [childIndex]\n */\nexport function getDomSibling(vnode, childIndex) {\n\tif (childIndex == null) {\n\t\t// Use childIndex==null as a signal to resume the search from the vnode's sibling\n\t\treturn vnode._parent\n\t\t\t? getDomSibling(vnode._parent, vnode._parent._children.indexOf(vnode) + 1)\n\t\t\t: null;\n\t}\n\n\tlet sibling;\n\tfor (; childIndex < vnode._children.length; childIndex++) {\n\t\tsibling = vnode._children[childIndex];\n\n\t\tif (sibling != null && sibling._dom != null) {\n\t\t\t// Since updateParentDomPointers keeps _dom pointer correct,\n\t\t\t// we can rely on _dom to tell us if this subtree contains a\n\t\t\t// rendered DOM node, and what the first rendered DOM node is\n\t\t\treturn sibling._dom;\n\t\t}\n\t}\n\n\t// If we get here, we have not found a DOM node in this vnode's children.\n\t// We must resume from this vnode's sibling (in it's parent _children array)\n\t// Only climb up and search the parent if we aren't searching through a DOM\n\t// VNode (meaning we reached the DOM parent of the original vnode that began\n\t// the search)\n\treturn typeof vnode.type == 'function' ? getDomSibling(vnode) : null;\n}\n\n/**\n * Trigger in-place re-rendering of a component.\n * @param {import('./internal').Component} component The component to rerender\n */\nfunction renderComponent(component) {\n\tlet vnode = component._vnode,\n\t\toldDom = vnode._dom,\n\t\tparentDom = component._parentDom;\n\n\tif (parentDom) {\n\t\tlet commitQueue = [];\n\t\tconst oldVNode = assign({}, vnode);\n\t\toldVNode._original = vnode._original + 1;\n\n\t\tdiff(\n\t\t\tparentDom,\n\t\t\tvnode,\n\t\t\toldVNode,\n\t\t\tcomponent._globalContext,\n\t\t\tparentDom.ownerSVGElement !== undefined,\n\t\t\tvnode._hydrating != null ? [oldDom] : null,\n\t\t\tcommitQueue,\n\t\t\toldDom == null ? getDomSibling(vnode) : oldDom,\n\t\t\tvnode._hydrating\n\t\t);\n\t\tcommitRoot(commitQueue, vnode);\n\n\t\tif (vnode._dom != oldDom) {\n\t\t\tupdateParentDomPointers(vnode);\n\t\t}\n\t}\n}\n\n/**\n * @param {import('./internal').VNode} vnode\n */\nfunction updateParentDomPointers(vnode) {\n\tif ((vnode = vnode._parent) != null && vnode._component != null) {\n\t\tvnode._dom = vnode._component.base = null;\n\t\tfor (let i = 0; i < vnode._children.length; i++) {\n\t\t\tlet child = vnode._children[i];\n\t\t\tif (child != null && child._dom != null) {\n\t\t\t\tvnode._dom = vnode._component.base = child._dom;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn updateParentDomPointers(vnode);\n\t}\n}\n\n/**\n * The render queue\n * @type {Array<import('./internal').Component>}\n */\nlet rerenderQueue = [];\n\n/*\n * The value of `Component.debounce` must asynchronously invoke the passed in callback. It is\n * important that contributors to Preact can consistently reason about what calls to `setState`, etc.\n * do, and when their effects will be applied. See the links below for some further reading on designing\n * asynchronous APIs.\n * * [Designing APIs for Asynchrony](https://blog.izs.me/2013/08/designing-apis-for-asynchrony)\n * * [Callbacks synchronous and asynchronous](https://blog.ometer.com/2011/07/24/callbacks-synchronous-and-asynchronous/)\n */\n\nlet prevDebounce;\n\nconst microTick =\n\ttypeof Promise == 'function'\n\t\t? Promise.prototype.then.bind(Promise.resolve())\n\t\t: setTimeout;\nfunction defer(cb) {\n\tif (inEvent) {\n\t\tsetTimeout(cb);\n\t} else {\n\t\tmicroTick(cb);\n\t}\n}\n\n/**\n * Enqueue a rerender of a component\n * @param {import('./internal').Component} c The component to rerender\n */\nexport function enqueueRender(c) {\n\tif (\n\t\t(!c._dirty &&\n\t\t\t(c._dirty = true) &&\n\t\t\trerenderQueue.push(c) &&\n\t\t\t!process._rerenderCount++) ||\n\t\tprevDebounce !== options.debounceRendering\n\t) {\n\t\tprevDebounce = options.debounceRendering;\n\t\t(prevDebounce || defer)(process);\n\t}\n}\n\n/** Flush the render queue by rerendering all queued components */\nfunction process() {\n\tlet c;\n\trerenderQueue.sort((a, b) => a._vnode._depth - b._vnode._depth);\n\t// Don't update `renderCount` yet. Keep its value non-zero to prevent unnecessary\n\t// process() calls from getting scheduled while `queue` is still being consumed.\n\twhile ((c = rerenderQueue.shift())) {\n\t\tif (c._dirty) {\n\t\t\tlet renderQueueLength = rerenderQueue.length;\n\t\t\trenderComponent(c);\n\t\t\tif (rerenderQueue.length > renderQueueLength) {\n\t\t\t\t// When i.e. rerendering a provider additional new items can be injected, we want to\n\t\t\t\t// keep the order from top to bottom with those new items so we can handle them in a\n\t\t\t\t// single pass\n\t\t\t\trerenderQueue.sort((a, b) => a._vnode._depth - b._vnode._depth);\n\t\t\t}\n\t\t}\n\t}\n\tprocess._rerenderCount = 0;\n}\n\nprocess._rerenderCount = 0;\n","import { enqueueRender } from './component';\n\nexport let i = 0;\n\nexport function createContext(defaultValue, contextId) {\n\tcontextId = '__cC' + i++;\n\n\tconst context = {\n\t\t_id: contextId,\n\t\t_defaultValue: defaultValue,\n\t\t/** @type {import('./internal').FunctionComponent} */\n\t\tConsumer(props, contextValue) {\n\t\t\t// return props.children(\n\t\t\t// \tcontext[contextId] ? context[contextId].props.value : defaultValue\n\t\t\t// );\n\t\t\treturn props.children(contextValue);\n\t\t},\n\t\t/** @type {import('./internal').FunctionComponent} */\n\t\tProvider(props) {\n\t\t\tif (!this.getChildContext) {\n\t\t\t\t/** @type {import('./internal').Component[]} */\n\t\t\t\tlet subs = [];\n\t\t\t\tlet ctx = {};\n\t\t\t\tctx[contextId] = this;\n\n\t\t\t\tthis.getChildContext = () => ctx;\n\n\t\t\t\tthis.shouldComponentUpdate = function(_props) {\n\t\t\t\t\tif (this.props.value !== _props.value) {\n\t\t\t\t\t\t// I think the forced value propagation here was only needed when `options.debounceRendering` was being bypassed:\n\t\t\t\t\t\t// https://github.com/preactjs/preact/commit/4d339fb803bea09e9f198abf38ca1bf8ea4b7771#diff-54682ce380935a717e41b8bfc54737f6R358\n\t\t\t\t\t\t// In those cases though, even with the value corrected, we're double-rendering all nodes.\n\t\t\t\t\t\t// It might be better to just tell folks not to use force-sync mode.\n\t\t\t\t\t\t// Currently, using `useContext()` in a class component will overwrite its `this.context` value.\n\t\t\t\t\t\t// subs.some(c => {\n\t\t\t\t\t\t// \tc.context = _props.value;\n\t\t\t\t\t\t// \tenqueueRender(c);\n\t\t\t\t\t\t// });\n\n\t\t\t\t\t\t// subs.some(c => {\n\t\t\t\t\t\t// \tc.context[contextId] = _props.value;\n\t\t\t\t\t\t// \tenqueueRender(c);\n\t\t\t\t\t\t// });\n\t\t\t\t\t\tsubs.some(c => {\n\t\t\t\t\t\t\tc._force = true;\n\t\t\t\t\t\t\tenqueueRender(c);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tthis.sub = c => {\n\t\t\t\t\tsubs.push(c);\n\t\t\t\t\tlet old = c.componentWillUnmount;\n\t\t\t\t\tc.componentWillUnmount = () => {\n\t\t\t\t\t\tsubs.splice(subs.indexOf(c), 1);\n\t\t\t\t\t\tif (old) old.call(c);\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn props.children;\n\t\t}\n\t};\n\n\t// Devtools needs access to the context object when it\n\t// encounters a Provider. This is necessary to support\n\t// setting `displayName` on the context object instead\n\t// of on the component itself. See:\n\t// https://reactjs.org/docs/context.html#contextdisplayname\n\n\treturn (context.Provider._contextRef = context.Consumer.contextType = context);\n}\n","export const EMPTY_OBJ = {};\nexport const EMPTY_ARR = [];\nexport const IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;\n","import { diff, unmount, applyRef } from './index';\nimport { createVNode, Fragment } from '../create-element';\nimport { EMPTY_OBJ, EMPTY_ARR } from '../constants';\nimport { getDomSibling } from '../component';\n\n/**\n * Diff the children of a virtual node\n * @param {import('../internal').PreactElement} parentDom The DOM element whose\n * children are being diffed\n * @param {import('../internal').ComponentChildren[]} renderResult\n * @param {import('../internal').VNode} newParentVNode The new virtual\n * node whose children should be diff'ed against oldParentVNode\n * @param {import('../internal').VNode} oldParentVNode The old virtual\n * node whose children should be diff'ed against newParentVNode\n * @param {object} globalContext The current context object - modified by getChildContext\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {Array<import('../internal').PreactElement>} excessDomChildren\n * @param {Array<import('../internal').Component>} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').PreactElement} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} isHydrating Whether or not we are in hydration\n */\nexport function diffChildren(\n\tparentDom,\n\trenderResult,\n\tnewParentVNode,\n\toldParentVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet i, j, oldVNode, childVNode, newDom, firstChildDom, refs;\n\n\t// This is a compression of oldParentVNode!=null && oldParentVNode != EMPTY_OBJ && oldParentVNode._children || EMPTY_ARR\n\t// as EMPTY_OBJ._children should be `undefined`.\n\tlet oldChildren = (oldParentVNode && oldParentVNode._children) || EMPTY_ARR;\n\n\tlet oldChildrenLength = oldChildren.length;\n\n\tnewParentVNode._children = [];\n\tfor (i = 0; i < renderResult.length; i++) {\n\t\tchildVNode = renderResult[i];\n\n\t\tif (childVNode == null || typeof childVNode == 'boolean') {\n\t\t\tchildVNode = newParentVNode._children[i] = null;\n\t\t}\n\t\t// If this newVNode is being reused (e.g. <div>{reuse}{reuse}</div>) in the same diff,\n\t\t// or we are rendering a component (e.g. setState) copy the oldVNodes so it can have\n\t\t// it's own DOM & etc. pointers\n\t\telse if (\n\t\t\ttypeof childVNode == 'string' ||\n\t\t\ttypeof childVNode == 'number' ||\n\t\t\t// eslint-disable-next-line valid-typeof\n\t\t\ttypeof childVNode == 'bigint'\n\t\t) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tnull,\n\t\t\t\tchildVNode,\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tchildVNode\n\t\t\t);\n\t\t} else if (Array.isArray(childVNode)) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tFragment,\n\t\t\t\t{ children: childVNode },\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tnull\n\t\t\t);\n\t\t} else if (childVNode._depth > 0) {\n\t\t\t// VNode is already in use, clone it. This can happen in the following\n\t\t\t// scenario:\n\t\t\t// const reuse = <div />\n\t\t\t// <div>{reuse}<span />{reuse}</div>\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tchildVNode.type,\n\t\t\t\tchildVNode.props,\n\t\t\t\tchildVNode.key,\n\t\t\t\tchildVNode.ref ? childVNode.ref : null,\n\t\t\t\tchildVNode._original\n\t\t\t);\n\t\t} else {\n\t\t\tchildVNode = newParentVNode._children[i] = childVNode;\n\t\t}\n\n\t\t// Terser removes the `continue` here and wraps the loop body\n\t\t// in a `if (childVNode) { ... } condition\n\t\tif (childVNode == null) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tchildVNode._parent = newParentVNode;\n\t\tchildVNode._depth = newParentVNode._depth + 1;\n\n\t\t// Check if we find a corresponding element in oldChildren.\n\t\t// If found, delete the array item by setting to `undefined`.\n\t\t// We use `undefined`, as `null` is reserved for empty placeholders\n\t\t// (holes).\n\t\toldVNode = oldChildren[i];\n\n\t\tif (\n\t\t\toldVNode === null ||\n\t\t\t(oldVNode &&\n\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\tchildVNode.type === oldVNode.type)\n\t\t) {\n\t\t\toldChildren[i] = undefined;\n\t\t} else {\n\t\t\t// Either oldVNode === undefined or oldChildrenLength > 0,\n\t\t\t// so after this loop oldVNode == null or oldVNode is a valid value.\n\t\t\tfor (j = 0; j < oldChildrenLength; j++) {\n\t\t\t\toldVNode = oldChildren[j];\n\t\t\t\t// If childVNode is unkeyed, we only match similarly unkeyed nodes, otherwise we match by key.\n\t\t\t\t// We always match by type (in either case).\n\t\t\t\tif (\n\t\t\t\t\toldVNode &&\n\t\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\t\tchildVNode.type === oldVNode.type\n\t\t\t\t) {\n\t\t\t\t\toldChildren[j] = undefined;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\toldVNode = null;\n\t\t\t}\n\t\t}\n\n\t\toldVNode = oldVNode || EMPTY_OBJ;\n\n\t\t// Morph the old element into the new one, but don't append it to the dom yet\n\t\tdiff(\n\t\t\tparentDom,\n\t\t\tchildVNode,\n\t\t\toldVNode,\n\t\t\tglobalContext,\n\t\t\tisSvg,\n\t\t\texcessDomChildren,\n\t\t\tcommitQueue,\n\t\t\toldDom,\n\t\t\tisHydrating\n\t\t);\n\n\t\tnewDom = childVNode._dom;\n\n\t\tif ((j = childVNode.ref) && oldVNode.ref != j) {\n\t\t\tif (!refs) refs = [];\n\t\t\tif (oldVNode.ref) refs.push(oldVNode.ref, null, childVNode);\n\t\t\trefs.push(j, childVNode._component || newDom, childVNode);\n\t\t}\n\n\t\tif (newDom != null) {\n\t\t\tif (firstChildDom == null) {\n\t\t\t\tfirstChildDom = newDom;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\ttypeof childVNode.type == 'function' &&\n\t\t\t\tchildVNode._children === oldVNode._children\n\t\t\t) {\n\t\t\t\tchildVNode._nextDom = oldDom = reorderChildren(\n\t\t\t\t\tchildVNode,\n\t\t\t\t\toldDom,\n\t\t\t\t\tparentDom\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\toldDom = placeChild(\n\t\t\t\t\tparentDom,\n\t\t\t\t\tchildVNode,\n\t\t\t\t\toldVNode,\n\t\t\t\t\toldChildren,\n\t\t\t\t\tnewDom,\n\t\t\t\t\toldDom\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (typeof newParentVNode.type == 'function') {\n\t\t\t\t// Because the newParentVNode is Fragment-like, we need to set it's\n\t\t\t\t// _nextDom property to the nextSibling of its last child DOM node.\n\t\t\t\t//\n\t\t\t\t// `oldDom` contains the correct value here because if the last child\n\t\t\t\t// is a Fragment-like, then oldDom has already been set to that child's _nextDom.\n\t\t\t\t// If the last child is a DOM VNode, then oldDom will be set to that DOM\n\t\t\t\t// node's nextSibling.\n\t\t\t\tnewParentVNode._nextDom = oldDom;\n\t\t\t}\n\t\t} else if (\n\t\t\toldDom &&\n\t\t\toldVNode._dom == oldDom &&\n\t\t\toldDom.parentNode != parentDom\n\t\t) {\n\t\t\t// The above condition is to handle null placeholders. See test in placeholder.test.js:\n\t\t\t// `efficiently replace null placeholders in parent rerenders`\n\t\t\toldDom = getDomSibling(oldVNode);\n\t\t}\n\t}\n\n\tnewParentVNode._dom = firstChildDom;\n\n\t// Remove remaining oldChildren if there are any.\n\tfor (i = oldChildrenLength; i--; ) {\n\t\tif (oldChildren[i] != null) {\n\t\t\tif (\n\t\t\t\ttypeof newParentVNode.type == 'function' &&\n\t\t\t\toldChildren[i]._dom != null &&\n\t\t\t\toldChildren[i]._dom == newParentVNode._nextDom\n\t\t\t) {\n\t\t\t\t// If the newParentVNode.__nextDom points to a dom node that is about to\n\t\t\t\t// be unmounted, then get the next sibling of that vnode and set\n\t\t\t\t// _nextDom to it\n\t\t\t\tnewParentVNode._nextDom = getLastDom(oldParentVNode).nextSibling;\n\t\t\t}\n\n\t\t\tunmount(oldChildren[i], oldChildren[i]);\n\t\t}\n\t}\n\n\t// Set refs only after unmount\n\tif (refs) {\n\t\tfor (i = 0; i < refs.length; i++) {\n\t\t\tapplyRef(refs[i], refs[++i], refs[++i]);\n\t\t}\n\t}\n}\n\nfunction reorderChildren(childVNode, oldDom, parentDom) {\n\t// Note: VNodes in nested suspended trees may be missing _children.\n\tlet c = childVNode._children;\n\tlet tmp = 0;\n\tfor (; c && tmp < c.length; tmp++) {\n\t\tlet vnode = c[tmp];\n\t\tif (vnode) {\n\t\t\t// We typically enter this code path on sCU bailout, where we copy\n\t\t\t// oldVNode._children to newVNode._children. If that is the case, we need\n\t\t\t// to update the old children's _parent pointer to point to the newVNode\n\t\t\t// (childVNode here).\n\t\t\tvnode._parent = childVNode;\n\n\t\t\tif (typeof vnode.type == 'function') {\n\t\t\t\toldDom = reorderChildren(vnode, oldDom, parentDom);\n\t\t\t} else {\n\t\t\t\toldDom = placeChild(parentDom, vnode, vnode, c, vnode._dom, oldDom);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn oldDom;\n}\n\n/**\n * Flatten and loop through the children of a virtual node\n * @param {import('../index').ComponentChildren} children The unflattened\n * children of a virtual node\n * @returns {import('../internal').VNode[]}\n */\nexport function toChildArray(children, out) {\n\tout = out || [];\n\tif (children == null || typeof children == 'boolean') {\n\t} else if (Array.isArray(children)) {\n\t\tchildren.some(child => {\n\t\t\ttoChildArray(child, out);\n\t\t});\n\t} else {\n\t\tout.push(children);\n\t}\n\treturn out;\n}\n\nfunction placeChild(\n\tparentDom,\n\tchildVNode,\n\toldVNode,\n\toldChildren,\n\tnewDom,\n\toldDom\n) {\n\tlet nextDom;\n\tif (childVNode._nextDom !== undefined) {\n\t\t// Only Fragments or components that return Fragment like VNodes will\n\t\t// have a non-undefined _nextDom. Continue the diff from the sibling\n\t\t// of last DOM child of this child VNode\n\t\tnextDom = childVNode._nextDom;\n\n\t\t// Eagerly cleanup _nextDom. We don't need to persist the value because\n\t\t// it is only used by `diffChildren` to determine where to resume the diff after\n\t\t// diffing Components and Fragments. Once we store it the nextDOM local var, we\n\t\t// can clean up the property\n\t\tchildVNode._nextDom = undefined;\n\t} else if (\n\t\toldVNode == null ||\n\t\tnewDom != oldDom ||\n\t\tnewDom.parentNode == null\n\t) {\n\t\touter: if (oldDom == null || oldDom.parentNode !== parentDom) {\n\t\t\tparentDom.appendChild(newDom);\n\t\t\tnextDom = null;\n\t\t} else {\n\t\t\t// `j<oldChildrenLength; j+=2` is an alternative to `j++<oldChildrenLength/2`\n\t\t\tfor (\n\t\t\t\tlet sibDom = oldDom, j = 0;\n\t\t\t\t(sibDom = sibDom.nextSibling) && j < oldChildren.length;\n\t\t\t\tj += 1\n\t\t\t) {\n\t\t\t\tif (sibDom == newDom) {\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t}\n\t\t\tparentDom.insertBefore(newDom, oldDom);\n\t\t\tnextDom = oldDom;\n\t\t}\n\t}\n\n\t// If we have pre-calculated the nextDOM node, use it. Else calculate it now\n\t// Strictly check for `undefined` here cuz `null` is a valid value of `nextDom`.\n\t// See more detail in create-element.js:createVNode\n\tif (nextDom !== undefined) {\n\t\toldDom = nextDom;\n\t} else {\n\t\toldDom = newDom.nextSibling;\n\t}\n\n\treturn oldDom;\n}\n\n/**\n * @param {import('../internal').VNode} vnode\n */\nfunction getLastDom(vnode) {\n\tif (vnode.type == null || typeof vnode.type === 'string') {\n\t\treturn vnode._dom;\n\t}\n\n\tif (vnode._children) {\n\t\tfor (let i = vnode._children.length - 1; i >= 0; i--) {\n\t\t\tlet child = vnode._children[i];\n\t\t\tif (child) {\n\t\t\t\tlet lastDom = getLastDom(child);\n\t\t\t\tif (lastDom) {\n\t\t\t\t\treturn lastDom;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn null;\n}\n","import { EMPTY_OBJ } from '../constants';\nimport { Component, getDomSibling } from '../component';\nimport { Fragment } from '../create-element';\nimport { diffChildren } from './children';\nimport { diffProps, setProperty } from './props';\nimport { assign, removeNode, slice } from '../util';\nimport options from '../options';\n\n/**\n * Diff two virtual nodes and apply proper changes to the DOM\n * @param {import('../internal').PreactElement} parentDom The parent of the DOM element\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object. Modified by getChildContext\n * @param {boolean} isSvg Whether or not this element is an SVG node\n * @param {Array<import('../internal').PreactElement>} excessDomChildren\n * @param {Array<import('../internal').Component>} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').PreactElement} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} [isHydrating] Whether or not we are in hydration\n */\nexport function diff(\n\tparentDom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet tmp,\n\t\tnewType = newVNode.type;\n\n\t// When passing through createElement it assigns the object\n\t// constructor as undefined. This to prevent JSON-injection.\n\tif (newVNode.constructor !== undefined) return null;\n\n\t// If the previous diff bailed out, resume creating/hydrating.\n\tif (oldVNode._hydrating != null) {\n\t\tisHydrating = oldVNode._hydrating;\n\t\toldDom = newVNode._dom = oldVNode._dom;\n\t\t// if we resume, we want the tree to be \"unlocked\"\n\t\tnewVNode._hydrating = null;\n\t\texcessDomChildren = [oldDom];\n\t}\n\n\tif ((tmp = options._diff)) tmp(newVNode);\n\n\ttry {\n\t\touter: if (typeof newType == 'function') {\n\t\t\tlet c, isNew, oldProps, oldState, snapshot, clearProcessingException;\n\t\t\tlet newProps = newVNode.props;\n\n\t\t\t// Necessary for createContext api. Setting this property will pass\n\t\t\t// the context value as `this.context` just for this component.\n\t\t\ttmp = newType.contextType;\n\t\t\tlet provider = tmp && globalContext[tmp._id];\n\t\t\tlet componentContext = tmp\n\t\t\t\t? provider\n\t\t\t\t\t? provider.props.value\n\t\t\t\t\t: tmp._defaultValue\n\t\t\t\t: globalContext;\n\n\t\t\t// Get component and set it to `c`\n\t\t\tif (oldVNode._component) {\n\t\t\t\tc = newVNode._component = oldVNode._component;\n\t\t\t\tclearProcessingException = c._processingException = c._pendingError;\n\t\t\t} else {\n\t\t\t\t// Instantiate the new component\n\t\t\t\tif ('prototype' in newType && newType.prototype.render) {\n\t\t\t\t\t// @ts-ignore The check above verifies that newType is suppose to be constructed\n\t\t\t\t\tnewVNode._component = c = new newType(newProps, componentContext); // eslint-disable-line new-cap\n\t\t\t\t} else {\n\t\t\t\t\t// @ts-ignore Trust me, Component implements the interface we want\n\t\t\t\t\tnewVNode._component = c = new Component(newProps, componentContext);\n\t\t\t\t\tc.constructor = newType;\n\t\t\t\t\tc.render = doRender;\n\t\t\t\t}\n\t\t\t\tif (provider) provider.sub(c);\n\n\t\t\t\tc.props = newProps;\n\t\t\t\tif (!c.state) c.state = {};\n\t\t\t\tc.context = componentContext;\n\t\t\t\tc._globalContext = globalContext;\n\t\t\t\tisNew = c._dirty = true;\n\t\t\t\tc._renderCallbacks = [];\n\t\t\t\tc._stateCallbacks = [];\n\t\t\t}\n\n\t\t\t// Invoke getDerivedStateFromProps\n\t\t\tif (c._nextState == null) {\n\t\t\t\tc._nextState = c.state;\n\t\t\t}\n\n\t\t\tif (newType.getDerivedStateFromProps != null) {\n\t\t\t\tif (c._nextState == c.state) {\n\t\t\t\t\tc._nextState = assign({}, c._nextState);\n\t\t\t\t}\n\n\t\t\t\tassign(\n\t\t\t\t\tc._nextState,\n\t\t\t\t\tnewType.getDerivedStateFromProps(newProps, c._nextState)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\toldProps = c.props;\n\t\t\toldState = c.state;\n\t\t\tc._vnode = newVNode;\n\n\t\t\t// Invoke pre-render lifecycle methods\n\t\t\tif (isNew) {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tc.componentWillMount != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillMount();\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidMount != null) {\n\t\t\t\t\tc._renderCallbacks.push(c.componentDidMount);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tnewProps !== oldProps &&\n\t\t\t\t\tc.componentWillReceiveProps != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillReceiveProps(newProps, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t(!c._force &&\n\t\t\t\t\t\tc.shouldComponentUpdate != null &&\n\t\t\t\t\t\tc.shouldComponentUpdate(\n\t\t\t\t\t\t\tnewProps,\n\t\t\t\t\t\t\tc._nextState,\n\t\t\t\t\t\t\tcomponentContext\n\t\t\t\t\t\t) === false) ||\n\t\t\t\t\tnewVNode._original === oldVNode._original\n\t\t\t\t) {\n\t\t\t\t\t// More info about this here: https://gist.github.com/JoviDeCroock/bec5f2ce93544d2e6070ef8e0036e4e8\n\t\t\t\t\tif (newVNode._original !== oldVNode._original) {\n\t\t\t\t\t\t// When we are dealing with a bail because of sCU we have to update\n\t\t\t\t\t\t// the props, state and dirty-state.\n\t\t\t\t\t\t// when we are dealing with strict-equality we don't as the child could still\n\t\t\t\t\t\t// be dirtied see #3883\n\t\t\t\t\t\tc.props = newProps;\n\t\t\t\t\t\tc.state = c._nextState;\n\t\t\t\t\t\tc._dirty = false;\n\t\t\t\t\t}\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t\t\tnewVNode._children.forEach(vnode => {\n\t\t\t\t\t\tif (vnode) vnode._parent = newVNode;\n\t\t\t\t\t});\n\n\t\t\t\t\tfor (let i = 0; i < c._stateCallbacks.length; i++) {\n\t\t\t\t\t\tc._renderCallbacks.push(c._stateCallbacks[i]);\n\t\t\t\t\t}\n\t\t\t\t\tc._stateCallbacks = [];\n\n\t\t\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\t\t\tcommitQueue.push(c);\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\n\t\t\t\tif (c.componentWillUpdate != null) {\n\t\t\t\t\tc.componentWillUpdate(newProps, c._nextState, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidUpdate != null) {\n\t\t\t\t\tc._renderCallbacks.push(() => {\n\t\t\t\t\t\tc.componentDidUpdate(oldProps, oldState, snapshot);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tc.context = componentContext;\n\t\t\tc.props = newProps;\n\t\t\tc._parentDom = parentDom;\n\n\t\t\tlet renderHook = options._render,\n\t\t\t\tcount = 0;\n\t\t\tif ('prototype' in newType && newType.prototype.render) {\n\t\t\t\tc.state = c._nextState;\n\t\t\t\tc._dirty = false;\n\n\t\t\t\tif (renderHook) renderHook(newVNode);\n\n\t\t\t\ttmp = c.render(c.props, c.state, c.context);\n\n\t\t\t\tfor (let i = 0; i < c._stateCallbacks.length; i++) {\n\t\t\t\t\tc._renderCallbacks.push(c._stateCallbacks[i]);\n\t\t\t\t}\n\t\t\t\tc._stateCallbacks = [];\n\t\t\t} else {\n\t\t\t\tdo {\n\t\t\t\t\tc._dirty = false;\n\t\t\t\t\tif (renderHook) renderHook(newVNode);\n\n\t\t\t\t\ttmp = c.render(c.props, c.state, c.context);\n\n\t\t\t\t\t// Handle setState called in render, see #2553\n\t\t\t\t\tc.state = c._nextState;\n\t\t\t\t} while (c._dirty && ++count < 25);\n\t\t\t}\n\n\t\t\t// Handle setState called in render, see #2553\n\t\t\tc.state = c._nextState;\n\n\t\t\tif (c.getChildContext != null) {\n\t\t\t\tglobalContext = assign(assign({}, globalContext), c.getChildContext());\n\t\t\t}\n\n\t\t\tif (!isNew && c.getSnapshotBeforeUpdate != null) {\n\t\t\t\tsnapshot = c.getSnapshotBeforeUpdate(oldProps, oldState);\n\t\t\t}\n\n\t\t\tlet isTopLevelFragment =\n\t\t\t\ttmp != null && tmp.type === Fragment && tmp.key == null;\n\t\t\tlet renderResult = isTopLevelFragment ? tmp.props.children : tmp;\n\n\t\t\tdiffChildren(\n\t\t\t\tparentDom,\n\t\t\t\tArray.isArray(renderResult) ? renderResult : [renderResult],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\toldDom,\n\t\t\t\tisHydrating\n\t\t\t);\n\n\t\t\tc.base = newVNode._dom;\n\n\t\t\t// We successfully rendered this VNode, unset any stored hydration/bailout state:\n\t\t\tnewVNode._hydrating = null;\n\n\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\tcommitQueue.push(c);\n\t\t\t}\n\n\t\t\tif (clearProcessingException) {\n\t\t\t\tc._pendingError = c._processingException = null;\n\t\t\t}\n\n\t\t\tc._force = false;\n\t\t} else if (\n\t\t\texcessDomChildren == null &&\n\t\t\tnewVNode._original === oldVNode._original\n\t\t) {\n\t\t\tnewVNode._children = oldVNode._children;\n\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t} else {\n\t\t\tnewVNode._dom = diffElementNodes(\n\t\t\t\toldVNode._dom,\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\tisHydrating\n\t\t\t);\n\t\t}\n\n\t\tif ((tmp = options.diffed)) tmp(newVNode);\n\t} catch (e) {\n\t\tnewVNode._original = null;\n\t\t// if hydrating or creating initial tree, bailout preserves DOM:\n\t\tif (isHydrating || excessDomChildren != null) {\n\t\t\tnewVNode._dom = oldDom;\n\t\t\tnewVNode._hydrating = !!isHydrating;\n\t\t\texcessDomChildren[excessDomChildren.indexOf(oldDom)] = null;\n\t\t\t// ^ could possibly be simplified to:\n\t\t\t// excessDomChildren.length = 0;\n\t\t}\n\t\toptions._catchError(e, newVNode, oldVNode);\n\t}\n}\n\n/**\n * @param {Array<import('../internal').Component>} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').VNode} root\n */\nexport function commitRoot(commitQueue, root) {\n\tif (options._commit) options._commit(root, commitQueue);\n\n\tcommitQueue.some(c => {\n\t\ttry {\n\t\t\t// @ts-ignore Reuse the commitQueue variable here so the type changes\n\t\t\tcommitQueue = c._renderCallbacks;\n\t\t\tc._renderCallbacks = [];\n\t\t\tcommitQueue.some(cb => {\n\t\t\t\t// @ts-ignore See above ts-ignore on commitQueue\n\t\t\t\tcb.call(c);\n\t\t\t});\n\t\t} catch (e) {\n\t\t\toptions._catchError(e, c._vnode);\n\t\t}\n\t});\n}\n\n/**\n * Diff two virtual nodes representing DOM element\n * @param {import('../internal').PreactElement} dom The DOM element representing\n * the virtual nodes being diffed\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {*} excessDomChildren\n * @param {Array<import('../internal').Component>} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {boolean} isHydrating Whether or not we are in hydration\n * @returns {import('../internal').PreactElement}\n */\nfunction diffElementNodes(\n\tdom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\tisHydrating\n) {\n\tlet oldProps = oldVNode.props;\n\tlet newProps = newVNode.props;\n\tlet nodeType = newVNode.type;\n\tlet i = 0;\n\n\t// Tracks entering and exiting SVG namespace when descending through the tree.\n\tif (nodeType === 'svg') isSvg = true;\n\n\tif (excessDomChildren != null) {\n\t\tfor (; i < excessDomChildren.length; i++) {\n\t\t\tconst child = excessDomChildren[i];\n\n\t\t\t// if newVNode matches an element in excessDomChildren or the `dom`\n\t\t\t// argument matches an element in excessDomChildren, remove it from\n\t\t\t// excessDomChildren so it isn't later removed in diffChildren\n\t\t\tif (\n\t\t\t\tchild &&\n\t\t\t\t'setAttribute' in child === !!nodeType &&\n\t\t\t\t(nodeType ? child.localName === nodeType : child.nodeType === 3)\n\t\t\t) {\n\t\t\t\tdom = child;\n\t\t\t\texcessDomChildren[i] = null;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (dom == null) {\n\t\tif (nodeType === null) {\n\t\t\t// @ts-ignore createTextNode returns Text, we expect PreactElement\n\t\t\treturn document.createTextNode(newProps);\n\t\t}\n\n\t\tif (isSvg) {\n\t\t\tdom = document.createElementNS(\n\t\t\t\t'http://www.w3.org/2000/svg',\n\t\t\t\t// @ts-ignore We know `newVNode.type` is a string\n\t\t\t\tnodeType\n\t\t\t);\n\t\t} else {\n\t\t\tdom = document.createElement(\n\t\t\t\t// @ts-ignore We know `newVNode.type` is a string\n\t\t\t\tnodeType,\n\t\t\t\tnewProps.is && newProps\n\t\t\t);\n\t\t}\n\n\t\t// we created a new parent, so none of the previously attached children can be reused:\n\t\texcessDomChildren = null;\n\t\t// we are creating a new node, so we can assume this is a new subtree (in case we are hydrating), this deopts the hydrate\n\t\tisHydrating = false;\n\t}\n\n\tif (nodeType === null) {\n\t\t// During hydration, we still have to split merged text from SSR'd HTML.\n\t\tif (oldProps !== newProps && (!isHydrating || dom.data !== newProps)) {\n\t\t\tdom.data = newProps;\n\t\t}\n\t} else {\n\t\t// If excessDomChildren was not null, repopulate it with the current element's children:\n\t\texcessDomChildren = excessDomChildren && slice.call(dom.childNodes);\n\n\t\toldProps = oldVNode.props || EMPTY_OBJ;\n\n\t\tlet oldHtml = oldProps.dangerouslySetInnerHTML;\n\t\tlet newHtml = newProps.dangerouslySetInnerHTML;\n\n\t\t// During hydration, props are not diffed at all (including dangerouslySetInnerHTML)\n\t\t// @TODO we should warn in debug mode when props don't match here.\n\t\tif (!isHydrating) {\n\t\t\t// But, if we are in a situation where we are using existing DOM (e.g. replaceNode)\n\t\t\t// we should read the existing DOM attributes to diff them\n\t\t\tif (excessDomChildren != null) {\n\t\t\t\toldProps = {};\n\t\t\t\tfor (i = 0; i < dom.attributes.length; i++) {\n\t\t\t\t\toldProps[dom.attributes[i].name] = dom.attributes[i].value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (newHtml || oldHtml) {\n\t\t\t\t// Avoid re-applying the same '__html' if it did not changed between re-render\n\t\t\t\tif (\n\t\t\t\t\t!newHtml ||\n\t\t\t\t\t((!oldHtml || newHtml.__html != oldHtml.__html) &&\n\t\t\t\t\t\tnewHtml.__html !== dom.innerHTML)\n\t\t\t\t) {\n\t\t\t\t\tdom.innerHTML = (newHtml && newHtml.__html) || '';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tdiffProps(dom, newProps, oldProps, isSvg, isHydrating);\n\n\t\t// If the new vnode didn't have dangerouslySetInnerHTML, diff its children\n\t\tif (newHtml) {\n\t\t\tnewVNode._children = [];\n\t\t} else {\n\t\t\ti = newVNode.props.children;\n\t\t\tdiffChildren(\n\t\t\t\tdom,\n\t\t\t\tArray.isArray(i) ? i : [i],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg && nodeType !== 'foreignObject',\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\texcessDomChildren\n\t\t\t\t\t? excessDomChildren[0]\n\t\t\t\t\t: oldVNode._children && getDomSibling(oldVNode, 0),\n\t\t\t\tisHydrating\n\t\t\t);\n\n\t\t\t// Remove children that are not part of any vnode.\n\t\t\tif (excessDomChildren != null) {\n\t\t\t\tfor (i = excessDomChildren.length; i--; ) {\n\t\t\t\t\tif (excessDomChildren[i] != null) removeNode(excessDomChildren[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// (as above, don't diff props during hydration)\n\t\tif (!isHydrating) {\n\t\t\tif (\n\t\t\t\t'value' in newProps &&\n\t\t\t\t(i = newProps.value) !== undefined &&\n\t\t\t\t// #2756 For the <progress>-element the initial value is 0,\n\t\t\t\t// despite the attribute not being present. When the attribute\n\t\t\t\t// is missing the progress bar is treated as indeterminate.\n\t\t\t\t// To fix that we'll always update it when it is 0 for progress elements\n\t\t\t\t(i !== dom.value ||\n\t\t\t\t\t(nodeType === 'progress' && !i) ||\n\t\t\t\t\t// This is only for IE 11 to fix <select> value not being updated.\n\t\t\t\t\t// To avoid a stale select value we need to set the option.value\n\t\t\t\t\t// again, which triggers IE11 to re-evaluate the select value\n\t\t\t\t\t(nodeType === 'option' && i !== oldProps.value))\n\t\t\t) {\n\t\t\t\tsetProperty(dom, 'value', i, oldProps.value, false);\n\t\t\t}\n\t\t\tif (\n\t\t\t\t'checked' in newProps &&\n\t\t\t\t(i = newProps.checked) !== undefined &&\n\t\t\t\ti !== dom.checked\n\t\t\t) {\n\t\t\t\tsetProperty(dom, 'checked', i, oldProps.checked, false);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn dom;\n}\n\n/**\n * Invoke or update a ref, depending on whether it is a function or object ref.\n * @param {object|function} ref\n * @param {any} value\n * @param {import('../internal').VNode} vnode\n */\nexport function applyRef(ref, value, vnode) {\n\ttry {\n\t\tif (typeof ref == 'function') ref(value);\n\t\telse ref.current = value;\n\t} catch (e) {\n\t\toptions._catchError(e, vnode);\n\t}\n}\n\n/**\n * Unmount a virtual node from the tree and apply DOM changes\n * @param {import('../internal').VNode} vnode The virtual node to unmount\n * @param {import('../internal').VNode} parentVNode The parent of the VNode that\n * initiated the unmount\n * @param {boolean} [skipRemove] Flag that indicates that a parent node of the\n * current element is already detached from the DOM.\n */\nexport function unmount(vnode, parentVNode, skipRemove) {\n\tlet r;\n\tif (options.unmount) options.unmount(vnode);\n\n\tif ((r = vnode.ref)) {\n\t\tif (!r.current || r.current === vnode._dom) {\n\t\t\tapplyRef(r, null, parentVNode);\n\t\t}\n\t}\n\n\tif ((r = vnode._component) != null) {\n\t\tif (r.componentWillUnmount) {\n\t\t\ttry {\n\t\t\t\tr.componentWillUnmount();\n\t\t\t} catch (e) {\n\t\t\t\toptions._catchError(e, parentVNode);\n\t\t\t}\n\t\t}\n\n\t\tr.base = r._parentDom = null;\n\t\tvnode._component = undefined;\n\t}\n\n\tif ((r = vnode._children)) {\n\t\tfor (let i = 0; i < r.length; i++) {\n\t\t\tif (r[i]) {\n\t\t\t\tunmount(\n\t\t\t\t\tr[i],\n\t\t\t\t\tparentVNode,\n\t\t\t\t\tskipRemove || typeof vnode.type !== 'function'\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif (!skipRemove && vnode._dom != null) {\n\t\tremoveNode(vnode._dom);\n\t}\n\n\t// Must be set to `undefined` to properly clean up `_nextDom`\n\t// for which `null` is a valid value. See comment in `create-element.js`\n\tvnode._parent = vnode._dom = vnode._nextDom = undefined;\n}\n\n/** The `.render()` method for a PFC backing instance. */\nfunction doRender(props, state, context) {\n\treturn this.constructor(props, context);\n}\n","import { assign, slice } from './util';\nimport { createVNode } from './create-element';\n\n/**\n * Clones the given VNode, optionally adding attributes/props and replacing its children.\n * @param {import('./internal').VNode} vnode The virtual DOM element to clone\n * @param {object} props Attributes/props to add when cloning\n * @param {Array<import('./internal').ComponentChildren>} rest Any additional arguments will be used as replacement children.\n * @returns {import('./internal').VNode}\n */\nexport function cloneElement(vnode, props, children) {\n\tlet normalizedProps = assign({}, vnode.props),\n\t\tkey,\n\t\tref,\n\t\ti;\n\tfor (i in props) {\n\t\tif (i == 'key') key = props[i];\n\t\telse if (i == 'ref') ref = props[i];\n\t\telse normalizedProps[i] = props[i];\n\t}\n\n\tif (arguments.length > 2) {\n\t\tnormalizedProps.children =\n\t\t\targuments.length > 3 ? slice.call(arguments, 2) : children;\n\t}\n\n\treturn createVNode(\n\t\tvnode.type,\n\t\tnormalizedProps,\n\t\tkey || vnode.key,\n\t\tref || vnode.ref,\n\t\tnull\n\t);\n}\n","/**\n * Find the closest error boundary to a thrown error and call it\n * @param {object} error The thrown value\n * @param {import('../internal').VNode} vnode The vnode that threw\n * the error that was caught (except for unmounting when this parameter\n * is the highest parent that was being unmounted)\n * @param {import('../internal').VNode} [oldVNode]\n * @param {import('../internal').ErrorInfo} [errorInfo]\n */\nexport function _catchError(error, vnode, oldVNode, errorInfo) {\n\t/** @type {import('../internal').Component} */\n\tlet component, ctor, handled;\n\n\tfor (; (vnode = vnode._parent); ) {\n\t\tif ((component = vnode._component) && !component._processingException) {\n\t\t\ttry {\n\t\t\t\tctor = component.constructor;\n\n\t\t\t\tif (ctor && ctor.getDerivedStateFromError != null) {\n\t\t\t\t\tcomponent.setState(ctor.getDerivedStateFromError(error));\n\t\t\t\t\thandled = component._dirty;\n\t\t\t\t}\n\n\t\t\t\tif (component.componentDidCatch != null) {\n\t\t\t\t\tcomponent.componentDidCatch(error, errorInfo || {});\n\t\t\t\t\thandled = component._dirty;\n\t\t\t\t}\n\n\t\t\t\t// This is an error boundary. Mark it as having bailed out, and whether it was mid-hydration.\n\t\t\t\tif (handled) {\n\t\t\t\t\treturn (component._pendingError = component);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\terror = e;\n\t\t\t}\n\t\t}\n\t}\n\n\tthrow error;\n}\n","function E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n };\n\n listener._ = callback\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nmodule.exports = E;\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 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 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';\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 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 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 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 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';\n// eslint-disable-next-line es/no-typed-arrays -- safe\nmodule.exports = typeof ArrayBuffer != 'undefined' && typeof DataView != 'undefined';\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar classof = require('../internals/classof-raw');\n\nvar ArrayBuffer = globalThis.ArrayBuffer;\nvar TypeError = globalThis.TypeError;\n\n// Includes\n// - Perform ? RequireInternalSlot(O, [[ArrayBufferData]]).\n// - If IsSharedArrayBuffer(O) is true, throw a TypeError exception.\nmodule.exports = ArrayBuffer && 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 globalThis = require('../internals/global-this');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar arrayBufferByteLength = require('../internals/array-buffer-byte-length');\n\nvar ArrayBuffer = globalThis.ArrayBuffer;\nvar ArrayBufferPrototype = ArrayBuffer && ArrayBuffer.prototype;\nvar slice = ArrayBufferPrototype && uncurryThis(ArrayBufferPrototype.slice);\n\nmodule.exports = function (O) {\n if (arrayBufferByteLength(O) !== 0) return false;\n if (!slice) return false;\n try {\n slice(O, 0, 0);\n return false;\n } catch (error) {\n return true;\n }\n};\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 isDetached = require('../internals/array-buffer-is-detached');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it) {\n if (isDetached(it)) throw new $TypeError('ArrayBuffer is detached');\n return it;\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar toIndex = require('../internals/to-index');\nvar notDetached = require('../internals/array-buffer-not-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 = globalThis.structuredClone;\nvar ArrayBuffer = globalThis.ArrayBuffer;\nvar DataView = globalThis.DataView;\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 notDetached(arrayBuffer);\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 NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-basic-detection');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar globalThis = require('../internals/global-this');\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 = globalThis.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar Uint8ClampedArray = globalThis.Uint8ClampedArray;\nvar Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\nvar TypedArray = Int8Array && getPrototypeOf(Int8Array);\nvar TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\nvar ObjectPrototype = Object.prototype;\nvar TypeError = globalThis.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(globalThis.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 = globalThis[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 = globalThis[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 = globalThis[ARRAY];\n if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n defineBuiltIn(TypedArrayConstructor, KEY, property);\n }\n }\n};\n\nfor (NAME in TypedArrayConstructorsList) {\n Constructor = globalThis[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 = globalThis[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 (globalThis[NAME]) setPrototypeOf(globalThis[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 (globalThis[NAME]) setPrototypeOf(globalThis[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 (globalThis[NAME]) {\n createNonEnumerableProperty(globalThis[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 globalThis = require('../internals/global-this');\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 = globalThis[ARRAY_BUFFER];\nvar $ArrayBuffer = NativeArrayBuffer;\nvar ArrayBufferPrototype = $ArrayBuffer && $ArrayBuffer[PROTOTYPE];\nvar $DataView = globalThis[DATA_VIEW];\nvar DataViewPrototype = $DataView && $DataView[PROTOTYPE];\nvar ObjectPrototype = Object.prototype;\nvar Array = globalThis.Array;\nvar RangeError = globalThis.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, sonar/inconsistent-function-call -- 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, sonar/inconsistent-function-call -- 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 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 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 $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 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 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 result = IS_CONSTRUCTOR ? new this() : [];\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\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 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 if (length === 0) return !IS_INCLUDES && -1;\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 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 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';\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 if (length === 0) return -1;\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 fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/environment-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 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 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\nvar REDUCE_EMPTY = 'Reduce of empty array with no initial value';\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 if (length === 0 && argumentsLength < 2) throw new $TypeError(REDUCE_EMPTY);\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_EMPTY);\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 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 uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\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 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 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 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 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 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 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 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 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 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: null,\n last: null,\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: null,\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 = null;\n entry = entry.next;\n }\n state.first = state.last = null;\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: null\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 = null;\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 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: null\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 if (data) return data[state.id];\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 $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\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 = globalThis[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 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 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 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 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 + '</' + tag + '>';\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 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';\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 DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n if (DESCRIPTORS) definePropertyModule.f(object, key, createPropertyDescriptor(0, value));\n else object[key] = value;\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 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 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 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 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 globalThis = require('../internals/global-this');\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(globalThis, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n globalThis[key] = value;\n } return value;\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 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 globalThis = require('../internals/global-this');\nvar getBuiltInNodeModule = require('../internals/get-built-in-node-module');\nvar PROPER_STRUCTURED_CLONE_TRANSFER = require('../internals/structured-clone-proper-transfer');\n\nvar structuredClone = globalThis.structuredClone;\nvar $ArrayBuffer = globalThis.ArrayBuffer;\nvar $MessageChannel = globalThis.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 = getBuiltInNodeModule('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 globalThis = require('../internals/global-this');\nvar isObject = require('../internals/is-object');\n\nvar document = globalThis.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 $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';\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';\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';\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 userAgent = require('../internals/environment-user-agent');\n\nvar firefox = userAgent.match(/firefox\\/(\\d+)/i);\n\nmodule.exports = !!firefox && +firefox[1];\n","'use strict';\nvar UA = require('../internals/environment-user-agent');\n\nmodule.exports = /MSIE|Trident/.test(UA);\n","'use strict';\nvar userAgent = require('../internals/environment-user-agent');\n\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && typeof Pebble != 'undefined';\n","'use strict';\nvar userAgent = require('../internals/environment-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 ENVIRONMENT = require('../internals/environment');\n\nmodule.exports = ENVIRONMENT === 'NODE';\n","'use strict';\nvar userAgent = require('../internals/environment-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","'use strict';\nvar globalThis = require('../internals/global-this');\n\nvar navigator = globalThis.navigator;\nvar userAgent = navigator && navigator.userAgent;\n\nmodule.exports = userAgent ? String(userAgent) : '';\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar userAgent = require('../internals/environment-user-agent');\n\nvar process = globalThis.process;\nvar Deno = globalThis.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';\nvar userAgent = require('../internals/environment-user-agent');\n\nvar webkit = userAgent.match(/AppleWebKit\\/(\\d+)\\./);\n\nmodule.exports = !!webkit && +webkit[1];\n","'use strict';\n/* global Bun, Deno -- detection */\nvar globalThis = require('../internals/global-this');\nvar userAgent = require('../internals/environment-user-agent');\nvar classof = require('../internals/classof-raw');\n\nvar userAgentStartsWith = function (string) {\n return userAgent.slice(0, string.length) === string;\n};\n\nmodule.exports = (function () {\n if (userAgentStartsWith('Bun/')) return 'BUN';\n if (userAgentStartsWith('Cloudflare-Workers')) return 'CLOUDFLARE';\n if (userAgentStartsWith('Deno/')) return 'DENO';\n if (userAgentStartsWith('Node.js/')) return 'NODE';\n if (globalThis.Bun && typeof Bun.version == 'string') return 'BUN';\n if (globalThis.Deno && typeof Deno.version == 'object') return 'DENO';\n if (classof(globalThis.process) === 'process') return 'NODE';\n if (globalThis.window && globalThis.document) return 'BROWSER';\n return 'REST';\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 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 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 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 globalThis = require('../internals/global-this');\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 = globalThis;\n } else if (STATIC) {\n target = globalThis[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = globalThis[TARGET] && globalThis[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';\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\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 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 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 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 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-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 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 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';\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 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 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 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 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 globalThis = require('../internals/global-this');\nvar IS_NODE = require('../internals/environment-is-node');\n\nmodule.exports = function (name) {\n if (IS_NODE) {\n try {\n return globalThis.process.getBuiltinModule(name);\n } catch (error) { /* empty */ }\n try {\n // eslint-disable-next-line no-new-func -- safe\n return Function('return require(\"' + name + '\")')();\n } catch (error) { /* empty */ }\n }\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\n\nmodule.exports = function (CONSTRUCTOR, METHOD) {\n var Constructor = globalThis[CONSTRUCTOR];\n var Prototype = Constructor && Constructor.prototype;\n return Prototype && Prototype[METHOD];\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\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(globalThis[namespace]) : globalThis[namespace] && globalThis[namespace][method];\n};\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 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 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 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 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 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 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';\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';\nmodule.exports = {};\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';\nvar getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\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';\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 - 1] |= 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 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';\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 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 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 $ = 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 NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar globalThis = require('../internals/global-this');\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 = globalThis.TypeError;\nvar WeakMap = globalThis.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 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-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 classof = require('../internals/classof');\n\nmodule.exports = function (it) {\n var klass = classof(it);\n return klass === 'BigInt64Array' || klass === 'BigUint64Array';\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 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 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 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 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';\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 isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\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';\nmodule.exports = false;\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 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 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 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 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 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';\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';\nmodule.exports = {};\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 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 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// `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 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 globalThis = require('../internals/global-this');\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/environment-is-ios');\nvar IS_IOS_PEBBLE = require('../internals/environment-is-ios-pebble');\nvar IS_WEBOS_WEBKIT = require('../internals/environment-is-webos-webkit');\nvar IS_NODE = require('../internals/environment-is-node');\n\nvar MutationObserver = globalThis.MutationObserver || globalThis.WebKitMutationObserver;\nvar document = globalThis.document;\nvar process = globalThis.process;\nvar Promise = globalThis.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, globalThis);\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';\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 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 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 globalThis = require('../internals/global-this');\n\nvar globalIsFinite = globalThis.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 globalThis = require('../internals/global-this');\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 = globalThis.parseFloat;\nvar Symbol = globalThis.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 globalThis = require('../internals/global-this');\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 = globalThis.parseInt;\nvar Symbol = globalThis.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 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';\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 // eslint-disable-next-line no-useless-assignment -- avoid memory leak\n activeXDocument = null;\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 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 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 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';\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 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 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';\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 uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\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';\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 $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';\n/* eslint-disable no-proto -- safe */\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar isObject = require('../internals/is-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\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 requireObjectCoercible(O);\n aPossiblePrototype(proto);\n if (!isObject(O)) return O;\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\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 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 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';\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 globalThis = require('../internals/global-this');\n\nmodule.exports = globalThis;\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 globalThis = require('../internals/global-this');\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 ENVIRONMENT = require('../internals/environment');\nvar IS_PURE = require('../internals/is-pure');\nvar V8_VERSION = require('../internals/environment-v8-version');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar SPECIES = wellKnownSymbol('species');\nvar SUBCLASSING = false;\nvar NATIVE_PROMISE_REJECTION_EVENT = isCallable(globalThis.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 && (ENVIRONMENT === 'BROWSER' || ENVIRONMENT === '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 globalThis = require('../internals/global-this');\n\nmodule.exports = globalThis.Promise;\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 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 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 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 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';\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 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 globalThis = require('../internals/global-this');\n\n// babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\nvar $RegExp = globalThis.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 globalThis = require('../internals/global-this');\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError\nvar $RegExp = globalThis.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 globalThis = require('../internals/global-this');\n\n// babel-minify and Closure Compiler transpiles RegExp('(?<a>b)', 'g') -> /(?<a>b)/g and it causes SyntaxError\nvar $RegExp = globalThis.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('(?<a>b)', 'g');\n return re.exec('b').groups.a !== 'b' ||\n 'b'.replace(re, '$<a>c') !== 'bc';\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';\nvar globalThis = require('../internals/global-this');\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 globalThis[name];\n var descriptor = getOwnPropertyDescriptor(globalThis, name);\n return descriptor && descriptor.value;\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 globalThis = require('../internals/global-this');\nvar apply = require('../internals/function-apply');\nvar isCallable = require('../internals/is-callable');\nvar ENVIRONMENT = require('../internals/environment');\nvar USER_AGENT = require('../internals/environment-user-agent');\nvar arraySlice = require('../internals/array-slice');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\n\nvar Function = globalThis.Function;\n// dirty IE9- and Bun 0.3.0- checks\nvar WRAP = /MSIE .\\./.test(USER_AGENT) || ENVIRONMENT === 'BUN' && (function () {\n var version = globalThis.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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","'use strict';\nvar IS_PURE = require('../internals/is-pure');\nvar globalThis = require('../internals/global-this');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = module.exports = globalThis[SHARED] || defineGlobalProperty(SHARED, {});\n\n(store.versions || (store.versions = [])).push({\n version: '3.38.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.38.1/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","'use strict';\nvar store = require('../internals/shared-store');\n\nmodule.exports = function (key, value) {\n return store[key] || (store[key] = value || {});\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 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 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';\n// https://github.com/zloirock/core-js/issues/280\nvar userAgent = require('../internals/environment-user-agent');\n\nmodule.exports = /Version\\/10(?:\\.\\d+){1,2}(?: [\\w./]+)?(?: Mobile\\/\\w+)? Safari\\//.test(userAgent);\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';\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 <n,i> state to <m,0>, 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';\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';\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 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 globalThis = require('../internals/global-this');\nvar fails = require('../internals/fails');\nvar V8 = require('../internals/environment-v8-version');\nvar ENVIRONMENT = require('../internals/environment');\n\nvar structuredClone = globalThis.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 ((ENVIRONMENT === 'DENO' && V8 > 92) || (ENVIRONMENT === 'NODE' && V8 > 94) || (ENVIRONMENT === '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';\n/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/environment-v8-version');\nvar fails = require('../internals/fails');\nvar globalThis = require('../internals/global-this');\n\nvar $String = globalThis.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';\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 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 globalThis = require('../internals/global-this');\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/environment-is-ios');\nvar IS_NODE = require('../internals/environment-is-node');\n\nvar set = globalThis.setImmediate;\nvar clear = globalThis.clearImmediate;\nvar process = globalThis.process;\nvar Dispatch = globalThis.Dispatch;\nvar Function = globalThis.Function;\nvar MessageChannel = globalThis.MessageChannel;\nvar String = globalThis.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 = globalThis.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 globalThis.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 globalThis.addEventListener &&\n isCallable(globalThis.postMessage) &&\n !globalThis.importScripts &&\n $location && $location.protocol !== 'file:' &&\n !fails(globalPostMessageDefer)\n ) {\n defer = globalPostMessageDefer;\n globalThis.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 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';\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 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 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// 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';\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 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 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 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 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 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 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 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 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 $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 $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\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 = globalThis.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 = globalThis[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';\n/* eslint-disable no-new, sonar/inconsistent-function-call -- required for testing */\nvar globalThis = require('../internals/global-this');\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 = globalThis.ArrayBuffer;\nvar Int8Array = globalThis.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 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 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 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 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 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', 'https://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 !== 'https://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('https://теÑÑ‚').host !== 'xn--e1aybc'\n // not escaped in Chrome 62-\n || new URL('https://a#б').hash !== '#%D0%B1'\n // fails in Chrome 66-\n || result !== 'a1c3'\n // throws in Safari\n || new URL('https://x', undefined).host !== 'x';\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 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 $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 globalThis = require('../internals/global-this');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = globalThis.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\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 wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","'use strict';\nvar globalThis = require('../internals/global-this');\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 = globalThis.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';\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 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';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar arrayBufferModule = require('../internals/array-buffer');\nvar setSpecies = require('../internals/set-species');\n\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar ArrayBuffer = arrayBufferModule[ARRAY_BUFFER];\nvar NativeArrayBuffer = globalThis[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 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 $ = 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 $ = 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 $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 $ = 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 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/environment-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 $ = 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 $ = 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 $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 $ = 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 $ = 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 $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 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 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 $ = 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 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 = null;\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';\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 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 $ = require('../internals/export');\nvar $reduce = require('../internals/array-reduce').left;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar CHROME_VERSION = require('../internals/environment-v8-version');\nvar IS_NODE = require('../internals/environment-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 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 $ = 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/environment-ff-version');\nvar IE_OR_EDGE = require('../internals/environment-is-ie-or-edge');\nvar V8 = require('../internals/environment-v8-version');\nvar WEBKIT = require('../internals/environment-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 $ = 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 $ = 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 $ = 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';\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 $ = 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';\n// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.data-view.constructor');\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 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 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';\n/* eslint-disable no-unused-vars -- required for functions `.length` */\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar apply = require('../internals/function-apply');\nvar wrapErrorConstructorWithCause = require('../internals/wrap-error-constructor-with-cause');\n\nvar WEB_ASSEMBLY = 'WebAssembly';\nvar WebAssembly = globalThis[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 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 $ = 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';\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 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 globalThis = require('../internals/global-this');\n\n// `globalThis` object\n// https://tc39.es/ecma262/#sec-globalthis\n$({ global: true, forced: globalThis.globalThis !== globalThis }, {\n globalThis: globalThis\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 globalThis = require('../internals/global-this');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n// JSON[@@toStringTag] property\n// https://tc39.es/ecma262/#sec-json-@@tostringtag\nsetToStringTag(globalThis.JSON, 'JSON', true);\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';\n// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.map.constructor');\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 IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar globalThis = require('../internals/global-this');\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 = globalThis[NUMBER];\nvar PureNumberNamespace = path[NUMBER];\nvar NumberPrototype = NativeNumber.prototype;\nvar TypeError = globalThis.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');\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 $ = 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');\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 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 $ = 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 $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 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","'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 $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 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 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 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 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 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 $ = 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 IS_PURE = require('../internals/is-pure');\nvar IS_NODE = require('../internals/environment-is-node');\nvar globalThis = require('../internals/global-this');\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 = globalThis.TypeError;\nvar document = globalThis.document;\nvar process = globalThis.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\n\nvar DISPATCH_EVENT = !!(document && document.createEvent && globalThis.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 globalThis.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = globalThis['on' + name])) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n call(task, globalThis, 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, globalThis, 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: null\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 $ = 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';\n// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/es.promise.constructor');\nrequire('../modules/es.promise.all');\nrequire('../modules/es.promise.catch');\nrequire('../modules/es.promise.race');\nrequire('../modules/es.promise.reject');\nrequire('../modules/es.promise.resolve');\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 $ = 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 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 $ = 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');\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');\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 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 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 globalThis = require('../internals/global-this');\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(globalThis.Reflect, 'Reflect', true);\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar globalThis = require('../internals/global-this');\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 = globalThis.RegExp;\nvar RegExpPrototype = NativeRegExp.prototype;\nvar SyntaxError = globalThis.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 // eslint-disable-next-line sonar/inconsistent-function-call -- required for testing\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 result += chr;\n // ignore non-capturing groups\n if (stringSlice(string, index + 1, index + 3) === '?:') {\n continue;\n }\n if (exec(IS_NCG, stringSlice(string, index + 1))) {\n index += 2;\n ncg = true;\n }\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(globalThis, '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';\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 globalThis = require('../internals/global-this');\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 = globalThis.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 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 $ = 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 String(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 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 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 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';\n// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.set.constructor');\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 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 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 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 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';\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';\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 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 $ = 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, position, replacement;\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) return call(replacer, searchValue, O, replaceValue);\n if (IS_PURE && IS_REG_EXP) return replace(toString(O), searchValue, replaceValue);\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 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, '$<a>') !== '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 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 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 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 $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 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 $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\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 = globalThis.Symbol;\nvar SymbolPrototype = $Symbol && $Symbol[PROTOTYPE];\nvar RangeError = globalThis.RangeError;\nvar TypeError = globalThis.TypeError;\nvar QObject = globalThis.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 ? globalThis : 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","// `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 globalThis = require('../internals/global-this');\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 = globalThis.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 // eslint-disable-next-line sonar/inconsistent-function-call -- ok\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 $ = 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 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';\n// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/es.symbol.constructor');\nrequire('../modules/es.symbol.for');\nrequire('../modules/es.symbol.key-for');\nrequire('../modules/es.json.stringify');\nrequire('../modules/es.object.get-own-property-symbols');\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 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 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 $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 $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 $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 $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 $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 $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 globalThis = require('../internals/global-this');\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 = globalThis.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 $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');\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');\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 globalThis = require('../internals/global-this');\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 = globalThis.RangeError;\nvar Int8Array = globalThis.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 globalThis = require('../internals/global-this');\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/environment-ff-version');\nvar IE_OR_EDGE = require('../internals/environment-is-ie-or-edge');\nvar V8 = require('../internals/environment-v8-version');\nvar WEBKIT = require('../internals/environment-webkit-version');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar Uint16Array = globalThis.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 globalThis = require('../internals/global-this');\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 = globalThis.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 globalThis = require('../internals/global-this');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar Uint8Array = globalThis.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 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 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 FREEZING = require('../internals/freezing');\nvar globalThis = require('../internals/global-this');\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 = !globalThis.ActiveXObject && 'ActiveXObject' in globalThis;\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';\n// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.weak-map.constructor');\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';\n// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.weak-set.constructor');\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\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, globalThis, 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 globalThis = require('../internals/global-this');\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, globalThis, 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';\nvar globalThis = require('../internals/global-this');\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(globalThis[COLLECTION_NAME] && globalThis[COLLECTION_NAME].prototype);\n }\n}\n\nhandlePrototype(DOMTokenListPrototype);\n","'use strict';\nvar globalThis = require('../internals/global-this');\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(globalThis[COLLECTION_NAME] && globalThis[COLLECTION_NAME].prototype, COLLECTION_NAME);\n}\n\nhandlePrototype(DOMTokenListPrototype, 'DOMTokenList');\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar getBuiltInNodeModule = require('../internals/get-built-in-node-module');\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') || getBuiltInNodeModule('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 globalThis = require('../internals/global-this');\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(globalThis, 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 globalThis = require('../internals/global-this');\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 = globalThis.self !== globalThis;\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(globalThis, '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(globalThis, 'self', {\n get: function self() {\n return globalThis;\n },\n set: function self(value) {\n if (this !== globalThis) throw new $TypeError('Illegal invocation');\n defineProperty(globalThis, '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: globalThis\n });\n} catch (error) { /* empty */ }\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar schedulersFix = require('../internals/schedulers-fix');\n\nvar setInterval = schedulersFix(globalThis.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: globalThis.setInterval !== setInterval }, {\n setInterval: setInterval\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar schedulersFix = require('../internals/schedulers-fix');\n\nvar setTimeout = schedulersFix(globalThis.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: globalThis.setTimeout !== setTimeout }, {\n setTimeout: setTimeout\n});\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/web.set-interval');\nrequire('../modules/web.set-timeout');\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');\nrequire('../modules/es.string.from-code-point');\nvar $ = require('../internals/export');\nvar globalThis = require('../internals/global-this');\nvar safeGetBuiltIn = require('../internals/safe-get-built-in');\nvar getBuiltIn = require('../internals/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 TypeError = globalThis.TypeError;\nvar encodeURIComponent = globalThis.encodeURIComponent;\nvar fromCharCode = String.fromCharCode;\nvar fromCodePoint = getBuiltIn('String', 'fromCodePoint');\nvar $parseInt = parseInt;\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);\nvar exec = uncurryThis(/./.exec);\n\nvar plus = /\\+/g;\nvar FALLBACK_REPLACER = '\\uFFFD';\nvar VALID_HEX = /^[0-9a-f]+$/i;\n\nvar parseHexOctet = function (string, start) {\n var substr = stringSlice(string, start, start + 2);\n if (!exec(VALID_HEX, substr)) return NaN;\n\n return $parseInt(substr, 16);\n};\n\nvar getLeadingOnes = function (octet) {\n var count = 0;\n for (var mask = 0x80; mask > 0 && (octet & mask) !== 0; mask >>= 1) {\n count++;\n }\n return count;\n};\n\nvar utf8Decode = function (octets) {\n var codePoint = null;\n\n switch (octets.length) {\n case 1:\n codePoint = octets[0];\n break;\n case 2:\n codePoint = (octets[0] & 0x1F) << 6 | (octets[1] & 0x3F);\n break;\n case 3:\n codePoint = (octets[0] & 0x0F) << 12 | (octets[1] & 0x3F) << 6 | (octets[2] & 0x3F);\n break;\n case 4:\n codePoint = (octets[0] & 0x07) << 18 | (octets[1] & 0x3F) << 12 | (octets[2] & 0x3F) << 6 | (octets[3] & 0x3F);\n break;\n }\n\n return codePoint > 0x10FFFF ? null : codePoint;\n};\n\nvar decode = function (input) {\n input = replace(input, plus, ' ');\n var length = input.length;\n var result = '';\n var i = 0;\n\n while (i < length) {\n var decodedChar = charAt(input, i);\n\n if (decodedChar === '%') {\n if (charAt(input, i + 1) === '%' || i + 3 > length) {\n result += '%';\n i++;\n continue;\n }\n\n var octet = parseHexOctet(input, i + 1);\n\n // eslint-disable-next-line no-self-compare -- NaN check\n if (octet !== octet) {\n result += decodedChar;\n i++;\n continue;\n }\n\n i += 2;\n var byteSequenceLength = getLeadingOnes(octet);\n\n if (byteSequenceLength === 0) {\n decodedChar = fromCharCode(octet);\n } else {\n if (byteSequenceLength === 1 || byteSequenceLength > 4) {\n result += FALLBACK_REPLACER;\n i++;\n continue;\n }\n\n var octets = [octet];\n var sequenceIndex = 1;\n\n while (sequenceIndex < byteSequenceLength) {\n i++;\n if (i + 3 > length || charAt(input, i) !== '%') break;\n\n var nextByte = parseHexOctet(input, i + 1);\n\n // eslint-disable-next-line no-self-compare -- NaN check\n if (nextByte !== nextByte) {\n i += 3;\n break;\n }\n if (nextByte > 191 || nextByte < 128) break;\n\n push(octets, nextByte);\n i += 2;\n sequenceIndex++;\n }\n\n if (octets.length !== byteSequenceLength) {\n result += FALLBACK_REPLACER;\n continue;\n }\n\n var codePoint = utf8Decode(octets);\n if (codePoint === null) {\n result += FALLBACK_REPLACER;\n } else {\n decodedChar = fromCodePoint(codePoint);\n }\n }\n }\n\n result += decodedChar;\n i++;\n }\n\n return result;\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 = null;\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: decode(shift(entry)),\n value: decode(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';\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';\n// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/web.url-search-params.constructor');\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","'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 globalThis = require('../internals/global-this');\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 = globalThis.URL;\nvar TypeError = globalThis.TypeError;\nvar parseInt = globalThis.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 return currLength > maxLength ? currStart : maxIndex;\n};\n\n// https://url.spec.whatwg.org/#host-serializing\nvar serializeHost = function (host) {\n var result, index, compress, ignore0;\n\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 }\n return join(result, '.');\n }\n\n // ipv6\n 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 }\n\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';\n// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/web.url.constructor');\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","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nmodule.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\nmodule.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var getPrototypeOf = require(\"./getPrototypeOf.js\");\nvar isNativeReflectConstruct = require(\"./isNativeReflectConstruct.js\");\nvar possibleConstructorReturn = require(\"./possibleConstructorReturn.js\");\nfunction _callSuper(t, o, e) {\n return o = getPrototypeOf(o), possibleConstructorReturn(t, isNativeReflectConstruct() ? Reflect.construct(o, e || [], getPrototypeOf(t).constructor) : o.apply(t, e));\n}\nmodule.exports = _callSuper, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nmodule.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var isNativeReflectConstruct = require(\"./isNativeReflectConstruct.js\");\nvar setPrototypeOf = require(\"./setPrototypeOf.js\");\nfunction _construct(t, e, r) {\n if (isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);\n var o = [null];\n o.push.apply(o, e);\n var p = new (t.bind.apply(t, o))();\n return r && setPrototypeOf(p, r.prototype), p;\n}\nmodule.exports = _construct, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nfunction _createForOfIteratorHelper(r, e) {\n var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (!t) {\n if (Array.isArray(r) || (t = unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) {\n t && (r = t);\n var _n = 0,\n F = function F() {};\n return {\n s: F,\n n: function n() {\n return _n >= r.length ? {\n done: !0\n } : {\n done: !1,\n value: r[_n++]\n };\n },\n e: function e(r) {\n throw r;\n },\n f: F\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var o,\n a = !0,\n u = !1;\n return {\n s: function s() {\n t = t.call(r);\n },\n n: function n() {\n var r = t.next();\n return a = r.done, r;\n },\n e: function e(r) {\n u = !0, o = r;\n },\n f: function f() {\n try {\n a || null == t[\"return\"] || t[\"return\"]();\n } finally {\n if (u) throw o;\n }\n }\n };\n}\nmodule.exports = _createForOfIteratorHelper, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _getPrototypeOf(t) {\n return module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _getPrototypeOf(t);\n}\nmodule.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\nfunction _inherits(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), e && setPrototypeOf(t, e);\n}\nmodule.exports = _inherits, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _isNativeFunction(t) {\n try {\n return -1 !== Function.toString.call(t).indexOf(\"[native code]\");\n } catch (n) {\n return \"function\" == typeof t;\n }\n}\nmodule.exports = _isNativeFunction, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (t) {}\n return (module.exports = _isNativeReflectConstruct = function _isNativeReflectConstruct() {\n return !!t;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports)();\n}\nmodule.exports = _isNativeReflectConstruct, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar assertThisInitialized = require(\"./assertThisInitialized.js\");\nfunction _possibleConstructorReturn(t, e) {\n if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e;\n if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\");\n return assertThisInitialized(t);\n}\nmodule.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _setPrototypeOf(t, e) {\n return module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _setPrototypeOf(t, e);\n}\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nmodule.exports = toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar toPrimitive = require(\"./toPrimitive.js\");\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nmodule.exports = toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nmodule.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var getPrototypeOf = require(\"./getPrototypeOf.js\");\nvar setPrototypeOf = require(\"./setPrototypeOf.js\");\nvar isNativeFunction = require(\"./isNativeFunction.js\");\nvar construct = require(\"./construct.js\");\nfunction _wrapNativeSuper(t) {\n var r = \"function\" == typeof Map ? new Map() : void 0;\n return module.exports = _wrapNativeSuper = function _wrapNativeSuper(t) {\n if (null === t || !isNativeFunction(t)) return t;\n if (\"function\" != typeof t) throw new TypeError(\"Super expression must either be null or a function\");\n if (void 0 !== r) {\n if (r.has(t)) return r.get(t);\n r.set(t, Wrapper);\n }\n function Wrapper() {\n return construct(t, arguments, getPrototypeOf(this).constructor);\n }\n return Wrapper.prototype = Object.create(t.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: !1,\n writable: !0,\n configurable: !0\n }\n }), setPrototypeOf(Wrapper, t);\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _wrapNativeSuper(t);\n}\nmodule.exports = _wrapNativeSuper, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","function asyncGeneratorStep(n, t, e, r, o, a, c) {\n try {\n var i = n[a](c),\n u = i.value;\n } catch (n) {\n return void e(n);\n }\n i.done ? t(u) : Promise.resolve(u).then(r, o);\n}\nfunction _asyncToGenerator(n) {\n return function () {\n var t = this,\n e = arguments;\n return new Promise(function (r, o) {\n var a = n.apply(t, e);\n function _next(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n);\n }\n function _throw(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n);\n }\n _next(void 0);\n });\n };\n}\nexport { _asyncToGenerator as default };","function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\nexport { _assertThisInitialized as default };","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nfunction _possibleConstructorReturn(t, e) {\n if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e;\n if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\");\n return assertThisInitialized(t);\n}\nexport { _possibleConstructorReturn as default };","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nfunction _callSuper(t, o, e) {\n return o = getPrototypeOf(o), possibleConstructorReturn(t, isNativeReflectConstruct() ? Reflect.construct(o, e || [], getPrototypeOf(t).constructor) : o.apply(t, e));\n}\nexport { _callSuper as default };","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nexport { _createClass as default };","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nfunction _createForOfIteratorHelper(r, e) {\n var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (!t) {\n if (Array.isArray(r) || (t = unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) {\n t && (r = t);\n var _n = 0,\n F = function F() {};\n return {\n s: F,\n n: function n() {\n return _n >= r.length ? {\n done: !0\n } : {\n done: !1,\n value: r[_n++]\n };\n },\n e: function e(r) {\n throw r;\n },\n f: F\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var o,\n a = !0,\n u = !1;\n return {\n s: function s() {\n t = t.call(r);\n },\n n: function n() {\n var r = t.next();\n return a = r.done, r;\n },\n e: function e(r) {\n u = !0, o = r;\n },\n f: function f() {\n try {\n a || null == t[\"return\"] || t[\"return\"]();\n } finally {\n if (u) throw o;\n }\n }\n };\n}\nexport { _createForOfIteratorHelper as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","function _getPrototypeOf(t) {\n return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, _getPrototypeOf(t);\n}\nexport { _getPrototypeOf as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inherits(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), e && setPrototypeOf(t, e);\n}\nexport { _inherits as default };","function _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (t) {}\n return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {\n return !!t;\n })();\n}\nexport { _isNativeReflectConstruct as default };","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nexport { _objectSpread2 as default };","import _typeof from \"./typeof.js\";\nfunction _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n _regeneratorRuntime = function _regeneratorRuntime() {\n return e;\n };\n var t,\n e = {},\n r = Object.prototype,\n n = r.hasOwnProperty,\n o = Object.defineProperty || function (t, e, r) {\n t[e] = r.value;\n },\n i = \"function\" == typeof Symbol ? Symbol : {},\n a = i.iterator || \"@@iterator\",\n c = i.asyncIterator || \"@@asyncIterator\",\n u = i.toStringTag || \"@@toStringTag\";\n function define(t, e, r) {\n return Object.defineProperty(t, e, {\n value: r,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), t[e];\n }\n try {\n define({}, \"\");\n } catch (t) {\n define = function define(t, e, r) {\n return t[e] = r;\n };\n }\n function wrap(t, e, r, n) {\n var i = e && e.prototype instanceof Generator ? e : Generator,\n a = Object.create(i.prototype),\n c = new Context(n || []);\n return o(a, \"_invoke\", {\n value: makeInvokeMethod(t, r, c)\n }), a;\n }\n function tryCatch(t, e, r) {\n try {\n return {\n type: \"normal\",\n arg: t.call(e, r)\n };\n } catch (t) {\n return {\n type: \"throw\",\n arg: t\n };\n }\n }\n e.wrap = wrap;\n var h = \"suspendedStart\",\n l = \"suspendedYield\",\n f = \"executing\",\n s = \"completed\",\n y = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var p = {};\n define(p, a, function () {\n return this;\n });\n var d = Object.getPrototypeOf,\n v = d && d(d(values([])));\n v && v !== r && n.call(v, a) && (p = v);\n var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);\n function defineIteratorMethods(t) {\n [\"next\", \"throw\", \"return\"].forEach(function (e) {\n define(t, e, function (t) {\n return this._invoke(e, t);\n });\n });\n }\n function AsyncIterator(t, e) {\n function invoke(r, o, i, a) {\n var c = tryCatch(t[r], t, o);\n if (\"throw\" !== c.type) {\n var u = c.arg,\n h = u.value;\n return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) {\n invoke(\"next\", t, i, a);\n }, function (t) {\n invoke(\"throw\", t, i, a);\n }) : e.resolve(h).then(function (t) {\n u.value = t, i(u);\n }, function (t) {\n return invoke(\"throw\", t, i, a);\n });\n }\n a(c.arg);\n }\n var r;\n o(this, \"_invoke\", {\n value: function value(t, n) {\n function callInvokeWithMethodAndArg() {\n return new e(function (e, r) {\n invoke(t, n, e, r);\n });\n }\n return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(e, r, n) {\n var o = h;\n return function (i, a) {\n if (o === f) throw Error(\"Generator is already running\");\n if (o === s) {\n if (\"throw\" === i) throw a;\n return {\n value: t,\n done: !0\n };\n }\n for (n.method = i, n.arg = a;;) {\n var c = n.delegate;\n if (c) {\n var u = maybeInvokeDelegate(c, n);\n if (u) {\n if (u === y) continue;\n return u;\n }\n }\n if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) {\n if (o === h) throw o = s, n.arg;\n n.dispatchException(n.arg);\n } else \"return\" === n.method && n.abrupt(\"return\", n.arg);\n o = f;\n var p = tryCatch(e, r, n);\n if (\"normal\" === p.type) {\n if (o = n.done ? s : l, p.arg === y) continue;\n return {\n value: p.arg,\n done: n.done\n };\n }\n \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg);\n }\n };\n }\n function maybeInvokeDelegate(e, r) {\n var n = r.method,\n o = e.iterator[n];\n if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y;\n var i = tryCatch(o, e.iterator, r.arg);\n if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y;\n var a = i.arg;\n return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y);\n }\n function pushTryEntry(t) {\n var e = {\n tryLoc: t[0]\n };\n 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);\n }\n function resetTryEntry(t) {\n var e = t.completion || {};\n e.type = \"normal\", delete e.arg, t.completion = e;\n }\n function Context(t) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], t.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(e) {\n if (e || \"\" === e) {\n var r = e[a];\n if (r) return r.call(e);\n if (\"function\" == typeof e.next) return e;\n if (!isNaN(e.length)) {\n var o = -1,\n i = function next() {\n for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;\n return next.value = t, next.done = !0, next;\n };\n return i.next = i;\n }\n }\n throw new TypeError(_typeof(e) + \" is not iterable\");\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), o(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) {\n var e = \"function\" == typeof t && t.constructor;\n return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name));\n }, e.mark = function (t) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t;\n }, e.awrap = function (t) {\n return {\n __await: t\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {\n return this;\n }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {\n void 0 === i && (i = Promise);\n var a = new AsyncIterator(wrap(t, r, n, o), i);\n return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {\n return t.done ? t.value : a.next();\n });\n }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () {\n return this;\n }), define(g, \"toString\", function () {\n return \"[object Generator]\";\n }), e.keys = function (t) {\n var e = Object(t),\n r = [];\n for (var n in e) r.push(n);\n return r.reverse(), function next() {\n for (; r.length;) {\n var t = r.pop();\n if (t in e) return next.value = t, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, e.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(e) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);\n },\n stop: function stop() {\n this.done = !0;\n var t = this.tryEntries[0].completion;\n if (\"throw\" === t.type) throw t.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(e) {\n if (this.done) throw e;\n var r = this;\n function handle(n, o) {\n return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o;\n }\n for (var o = this.tryEntries.length - 1; o >= 0; --o) {\n var i = this.tryEntries[o],\n a = i.completion;\n if (\"root\" === i.tryLoc) return handle(\"end\");\n if (i.tryLoc <= this.prev) {\n var c = n.call(i, \"catchLoc\"),\n u = n.call(i, \"finallyLoc\");\n if (c && u) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n } else if (c) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n } else {\n if (!u) throw Error(\"try statement without catch or finally\");\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(t, e) {\n for (var r = this.tryEntries.length - 1; r >= 0; --r) {\n var o = this.tryEntries[r];\n if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) {\n var i = o;\n break;\n }\n }\n i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);\n var a = i ? i.completion : {};\n return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a);\n },\n complete: function complete(t, e) {\n if (\"throw\" === t.type) throw t.arg;\n return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y;\n },\n finish: function finish(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;\n }\n },\n \"catch\": function _catch(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.tryLoc === t) {\n var n = r.completion;\n if (\"throw\" === n.type) {\n var o = n.arg;\n resetTryEntry(r);\n }\n return o;\n }\n }\n throw Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(e, r, n) {\n return this.delegate = {\n iterator: values(e),\n resultName: r,\n nextLoc: n\n }, \"next\" === this.method && (this.arg = t), y;\n }\n }, e;\n}\nexport { _regeneratorRuntime as default };","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nexport { _iterableToArrayLimit as default };","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableRest as default };","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };","import getPrototypeOf from \"./getPrototypeOf.js\";\nfunction _superPropBase(t, o) {\n for (; !{}.hasOwnProperty.call(t, o) && null !== (t = getPrototypeOf(t)););\n return t;\n}\nexport { _superPropBase as default };","import superPropBase from \"./superPropBase.js\";\nfunction _get() {\n return _get = \"undefined\" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) {\n var p = superPropBase(e, t);\n if (p) {\n var n = Object.getOwnPropertyDescriptor(p, t);\n return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value;\n }\n }, _get.apply(null, arguments);\n}\nexport { _get as default };","import get from \"./get.js\";\nimport getPrototypeOf from \"./getPrototypeOf.js\";\nfunction _superPropertyGet(t, e, o, r) {\n var p = get(getPrototypeOf(1 & r ? t.prototype : t), e, o);\n return 2 & r && \"function\" == typeof p ? function (t) {\n return p.apply(o, t);\n } : p;\n}\nexport { _superPropertyGet as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableSpread as default };","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","function _isNativeFunction(t) {\n try {\n return -1 !== Function.toString.call(t).indexOf(\"[native code]\");\n } catch (n) {\n return \"function\" == typeof t;\n }\n}\nexport { _isNativeFunction as default };","import isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _construct(t, e, r) {\n if (isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);\n var o = [null];\n o.push.apply(o, e);\n var p = new (t.bind.apply(t, o))();\n return r && setPrototypeOf(p, r.prototype), p;\n}\nexport { _construct as default };","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nfunction _wrapNativeSuper(t) {\n var r = \"function\" == typeof Map ? new Map() : void 0;\n return _wrapNativeSuper = function _wrapNativeSuper(t) {\n if (null === t || !isNativeFunction(t)) return t;\n if (\"function\" != typeof t) throw new TypeError(\"Super expression must either be null or a function\");\n if (void 0 !== r) {\n if (r.has(t)) return r.get(t);\n r.set(t, Wrapper);\n }\n function Wrapper() {\n return construct(t, arguments, getPrototypeOf(this).constructor);\n }\n return Wrapper.prototype = Object.create(t.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: !1,\n writable: !0,\n configurable: !0\n }\n }), setPrototypeOf(Wrapper, t);\n }, _wrapNativeSuper(t);\n}\nexport { _wrapNativeSuper as default };","import { m as mergeProps, g as guid, i as isArraysEqual, T as Theme, a as mapHash, B as BaseComponent, V as ViewContextType, C as ContentContainer, b as buildViewClassNames, c as greatestDurationDenominator, d as createDuration, e as BASE_OPTION_DEFAULTS, f as arrayToHash, h as filterHash, j as buildEventSourceRefiners, p as parseEventSource, k as formatWithOrdinals, u as unpromisify, l as buildRangeApiWithTimeZone, n as identity, r as requestJson, s as subtractDurations, o as intersectRanges, q as startOfDay, t as addDays, v as hashValuesToArray, w as buildEventApis, D as DelayedRunner, x as createFormatter, y as diffWholeDays, z as memoize, A as memoizeObjArg, E as isPropsEqual, F as Emitter, G as getInitialDate, H as rangeContainsMarker, I as createEmptyEventStore, J as reduceCurrentDate, K as reduceEventStore, L as rezoneEventStoreDates, M as mergeRawOptions, N as BASE_OPTION_REFINERS, O as CALENDAR_LISTENER_REFINERS, P as CALENDAR_OPTION_REFINERS, Q as COMPLEX_OPTION_COMPARATORS, R as VIEW_OPTION_REFINERS, S as DateEnv, U as DateProfileGenerator, W as createEventUi, X as parseBusinessHours, Y as setRef, Z as Interaction, _ as getElSeg, $ as elementClosest, a0 as EventImpl, a1 as listenBySelector, a2 as listenToHoverBySelector, a3 as PureComponent, a4 as buildViewContext, a5 as getUniqueDomId, a6 as parseInteractionSettings, a7 as interactionSettingsStore, a8 as getNow, a9 as CalendarImpl, aa as flushSync, ab as CalendarRoot, ac as RenderId, ad as ensureElHasStyles, ae as applyStyleProp, af as sliceEventStore } from './internal-common.js';\nexport { ag as JsonRequestError } from './internal-common.js';\nimport { createElement, createRef, Fragment, render } from 'preact';\nimport 'preact/compat';\n\nconst globalLocales = [];\n\nconst MINIMAL_RAW_EN_LOCALE = {\n code: 'en',\n week: {\n dow: 0,\n doy: 4, // 4 days need to be within the year to be considered the first week\n },\n direction: 'ltr',\n buttonText: {\n prev: 'prev',\n next: 'next',\n prevYear: 'prev year',\n nextYear: 'next year',\n year: 'year',\n today: 'today',\n month: 'month',\n week: 'week',\n day: 'day',\n list: 'list',\n },\n weekText: 'W',\n weekTextLong: 'Week',\n closeHint: 'Close',\n timeHint: 'Time',\n eventHint: 'Event',\n allDayText: 'all-day',\n moreLinkText: 'more',\n noEventsText: 'No events to display',\n};\nconst RAW_EN_LOCALE = Object.assign(Object.assign({}, MINIMAL_RAW_EN_LOCALE), { \n // Includes things we don't want other locales to inherit,\n // things that derive from other translatable strings.\n buttonHints: {\n prev: 'Previous $0',\n next: 'Next $0',\n today(buttonText, unit) {\n return (unit === 'day')\n ? 'Today'\n : `This ${buttonText}`;\n },\n }, viewHint: '$0 view', navLinkHint: 'Go to $0', moreLinkHint(eventCnt) {\n return `Show ${eventCnt} more event${eventCnt === 1 ? '' : 's'}`;\n } });\nfunction organizeRawLocales(explicitRawLocales) {\n let defaultCode = explicitRawLocales.length > 0 ? explicitRawLocales[0].code : 'en';\n let allRawLocales = globalLocales.concat(explicitRawLocales);\n let rawLocaleMap = {\n en: RAW_EN_LOCALE,\n };\n for (let rawLocale of allRawLocales) {\n rawLocaleMap[rawLocale.code] = rawLocale;\n }\n return {\n map: rawLocaleMap,\n defaultCode,\n };\n}\nfunction buildLocale(inputSingular, available) {\n if (typeof inputSingular === 'object' && !Array.isArray(inputSingular)) {\n return parseLocale(inputSingular.code, [inputSingular.code], inputSingular);\n }\n return queryLocale(inputSingular, available);\n}\nfunction queryLocale(codeArg, available) {\n let codes = [].concat(codeArg || []); // will convert to array\n let raw = queryRawLocale(codes, available) || RAW_EN_LOCALE;\n return parseLocale(codeArg, codes, raw);\n}\nfunction queryRawLocale(codes, available) {\n for (let i = 0; i < codes.length; i += 1) {\n let parts = codes[i].toLocaleLowerCase().split('-');\n for (let j = parts.length; j > 0; j -= 1) {\n let simpleId = parts.slice(0, j).join('-');\n if (available[simpleId]) {\n return available[simpleId];\n }\n }\n }\n return null;\n}\nfunction parseLocale(codeArg, codes, raw) {\n let merged = mergeProps([MINIMAL_RAW_EN_LOCALE, raw], ['buttonText']);\n delete merged.code; // don't want this part of the options\n let { week } = merged;\n delete merged.week;\n return {\n codeArg,\n codes,\n week,\n simpleNumberFormat: new Intl.NumberFormat(codeArg),\n options: merged,\n };\n}\n\n// TODO: easier way to add new hooks? need to update a million things\nfunction createPlugin(input) {\n return {\n id: guid(),\n name: input.name,\n premiumReleaseDate: input.premiumReleaseDate ? new Date(input.premiumReleaseDate) : undefined,\n deps: input.deps || [],\n reducers: input.reducers || [],\n isLoadingFuncs: input.isLoadingFuncs || [],\n contextInit: [].concat(input.contextInit || []),\n eventRefiners: input.eventRefiners || {},\n eventDefMemberAdders: input.eventDefMemberAdders || [],\n eventSourceRefiners: input.eventSourceRefiners || {},\n isDraggableTransformers: input.isDraggableTransformers || [],\n eventDragMutationMassagers: input.eventDragMutationMassagers || [],\n eventDefMutationAppliers: input.eventDefMutationAppliers || [],\n dateSelectionTransformers: input.dateSelectionTransformers || [],\n datePointTransforms: input.datePointTransforms || [],\n dateSpanTransforms: input.dateSpanTransforms || [],\n views: input.views || {},\n viewPropsTransformers: input.viewPropsTransformers || [],\n isPropsValid: input.isPropsValid || null,\n externalDefTransforms: input.externalDefTransforms || [],\n viewContainerAppends: input.viewContainerAppends || [],\n eventDropTransformers: input.eventDropTransformers || [],\n componentInteractions: input.componentInteractions || [],\n calendarInteractions: input.calendarInteractions || [],\n themeClasses: input.themeClasses || {},\n eventSourceDefs: input.eventSourceDefs || [],\n cmdFormatter: input.cmdFormatter,\n recurringTypes: input.recurringTypes || [],\n namedTimeZonedImpl: input.namedTimeZonedImpl,\n initialView: input.initialView || '',\n elementDraggingImpl: input.elementDraggingImpl,\n optionChangeHandlers: input.optionChangeHandlers || {},\n scrollGridImpl: input.scrollGridImpl || null,\n listenerRefiners: input.listenerRefiners || {},\n optionRefiners: input.optionRefiners || {},\n propSetHandlers: input.propSetHandlers || {},\n };\n}\nfunction buildPluginHooks(pluginDefs, globalDefs) {\n let currentPluginIds = {};\n let hooks = {\n premiumReleaseDate: undefined,\n reducers: [],\n isLoadingFuncs: [],\n contextInit: [],\n eventRefiners: {},\n eventDefMemberAdders: [],\n eventSourceRefiners: {},\n isDraggableTransformers: [],\n eventDragMutationMassagers: [],\n eventDefMutationAppliers: [],\n dateSelectionTransformers: [],\n datePointTransforms: [],\n dateSpanTransforms: [],\n views: {},\n viewPropsTransformers: [],\n isPropsValid: null,\n externalDefTransforms: [],\n viewContainerAppends: [],\n eventDropTransformers: [],\n componentInteractions: [],\n calendarInteractions: [],\n themeClasses: {},\n eventSourceDefs: [],\n cmdFormatter: null,\n recurringTypes: [],\n namedTimeZonedImpl: null,\n initialView: '',\n elementDraggingImpl: null,\n optionChangeHandlers: {},\n scrollGridImpl: null,\n listenerRefiners: {},\n optionRefiners: {},\n propSetHandlers: {},\n };\n function addDefs(defs) {\n for (let def of defs) {\n const pluginName = def.name;\n const currentId = currentPluginIds[pluginName];\n if (currentId === undefined) {\n currentPluginIds[pluginName] = def.id;\n addDefs(def.deps);\n hooks = combineHooks(hooks, def);\n }\n else if (currentId !== def.id) {\n // different ID than the one already added\n console.warn(`Duplicate plugin '${pluginName}'`);\n }\n }\n }\n if (pluginDefs) {\n addDefs(pluginDefs);\n }\n addDefs(globalDefs);\n return hooks;\n}\nfunction buildBuildPluginHooks() {\n let currentOverrideDefs = [];\n let currentGlobalDefs = [];\n let currentHooks;\n return (overrideDefs, globalDefs) => {\n if (!currentHooks || !isArraysEqual(overrideDefs, currentOverrideDefs) || !isArraysEqual(globalDefs, currentGlobalDefs)) {\n currentHooks = buildPluginHooks(overrideDefs, globalDefs);\n }\n currentOverrideDefs = overrideDefs;\n currentGlobalDefs = globalDefs;\n return currentHooks;\n };\n}\nfunction combineHooks(hooks0, hooks1) {\n return {\n premiumReleaseDate: compareOptionalDates(hooks0.premiumReleaseDate, hooks1.premiumReleaseDate),\n reducers: hooks0.reducers.concat(hooks1.reducers),\n isLoadingFuncs: hooks0.isLoadingFuncs.concat(hooks1.isLoadingFuncs),\n contextInit: hooks0.contextInit.concat(hooks1.contextInit),\n eventRefiners: Object.assign(Object.assign({}, hooks0.eventRefiners), hooks1.eventRefiners),\n eventDefMemberAdders: hooks0.eventDefMemberAdders.concat(hooks1.eventDefMemberAdders),\n eventSourceRefiners: Object.assign(Object.assign({}, hooks0.eventSourceRefiners), hooks1.eventSourceRefiners),\n isDraggableTransformers: hooks0.isDraggableTransformers.concat(hooks1.isDraggableTransformers),\n eventDragMutationMassagers: hooks0.eventDragMutationMassagers.concat(hooks1.eventDragMutationMassagers),\n eventDefMutationAppliers: hooks0.eventDefMutationAppliers.concat(hooks1.eventDefMutationAppliers),\n dateSelectionTransformers: hooks0.dateSelectionTransformers.concat(hooks1.dateSelectionTransformers),\n datePointTransforms: hooks0.datePointTransforms.concat(hooks1.datePointTransforms),\n dateSpanTransforms: hooks0.dateSpanTransforms.concat(hooks1.dateSpanTransforms),\n views: Object.assign(Object.assign({}, hooks0.views), hooks1.views),\n viewPropsTransformers: hooks0.viewPropsTransformers.concat(hooks1.viewPropsTransformers),\n isPropsValid: hooks1.isPropsValid || hooks0.isPropsValid,\n externalDefTransforms: hooks0.externalDefTransforms.concat(hooks1.externalDefTransforms),\n viewContainerAppends: hooks0.viewContainerAppends.concat(hooks1.viewContainerAppends),\n eventDropTransformers: hooks0.eventDropTransformers.concat(hooks1.eventDropTransformers),\n calendarInteractions: hooks0.calendarInteractions.concat(hooks1.calendarInteractions),\n componentInteractions: hooks0.componentInteractions.concat(hooks1.componentInteractions),\n themeClasses: Object.assign(Object.assign({}, hooks0.themeClasses), hooks1.themeClasses),\n eventSourceDefs: hooks0.eventSourceDefs.concat(hooks1.eventSourceDefs),\n cmdFormatter: hooks1.cmdFormatter || hooks0.cmdFormatter,\n recurringTypes: hooks0.recurringTypes.concat(hooks1.recurringTypes),\n namedTimeZonedImpl: hooks1.namedTimeZonedImpl || hooks0.namedTimeZonedImpl,\n initialView: hooks0.initialView || hooks1.initialView,\n elementDraggingImpl: hooks0.elementDraggingImpl || hooks1.elementDraggingImpl,\n optionChangeHandlers: Object.assign(Object.assign({}, hooks0.optionChangeHandlers), hooks1.optionChangeHandlers),\n scrollGridImpl: hooks1.scrollGridImpl || hooks0.scrollGridImpl,\n listenerRefiners: Object.assign(Object.assign({}, hooks0.listenerRefiners), hooks1.listenerRefiners),\n optionRefiners: Object.assign(Object.assign({}, hooks0.optionRefiners), hooks1.optionRefiners),\n propSetHandlers: Object.assign(Object.assign({}, hooks0.propSetHandlers), hooks1.propSetHandlers),\n };\n}\nfunction compareOptionalDates(date0, date1) {\n if (date0 === undefined) {\n return date1;\n }\n if (date1 === undefined) {\n return date0;\n }\n return new Date(Math.max(date0.valueOf(), date1.valueOf()));\n}\n\nclass StandardTheme extends Theme {\n}\nStandardTheme.prototype.classes = {\n root: 'fc-theme-standard',\n tableCellShaded: 'fc-cell-shaded',\n buttonGroup: 'fc-button-group',\n button: 'fc-button fc-button-primary',\n buttonActive: 'fc-button-active',\n};\nStandardTheme.prototype.baseIconClass = 'fc-icon';\nStandardTheme.prototype.iconClasses = {\n close: 'fc-icon-x',\n prev: 'fc-icon-chevron-left',\n next: 'fc-icon-chevron-right',\n prevYear: 'fc-icon-chevrons-left',\n nextYear: 'fc-icon-chevrons-right',\n};\nStandardTheme.prototype.rtlIconClasses = {\n prev: 'fc-icon-chevron-right',\n next: 'fc-icon-chevron-left',\n prevYear: 'fc-icon-chevrons-right',\n nextYear: 'fc-icon-chevrons-left',\n};\nStandardTheme.prototype.iconOverrideOption = 'buttonIcons'; // TODO: make TS-friendly\nStandardTheme.prototype.iconOverrideCustomButtonOption = 'icon';\nStandardTheme.prototype.iconOverridePrefix = 'fc-icon-';\n\nfunction compileViewDefs(defaultConfigs, overrideConfigs) {\n let hash = {};\n let viewType;\n for (viewType in defaultConfigs) {\n ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs);\n }\n for (viewType in overrideConfigs) {\n ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs);\n }\n return hash;\n}\nfunction ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs) {\n if (hash[viewType]) {\n return hash[viewType];\n }\n let viewDef = buildViewDef(viewType, hash, defaultConfigs, overrideConfigs);\n if (viewDef) {\n hash[viewType] = viewDef;\n }\n return viewDef;\n}\nfunction buildViewDef(viewType, hash, defaultConfigs, overrideConfigs) {\n let defaultConfig = defaultConfigs[viewType];\n let overrideConfig = overrideConfigs[viewType];\n let queryProp = (name) => ((defaultConfig && defaultConfig[name] !== null) ? defaultConfig[name] :\n ((overrideConfig && overrideConfig[name] !== null) ? overrideConfig[name] : null));\n let theComponent = queryProp('component');\n let superType = queryProp('superType');\n let superDef = null;\n if (superType) {\n if (superType === viewType) {\n throw new Error('Can\\'t have a custom view type that references itself');\n }\n superDef = ensureViewDef(superType, hash, defaultConfigs, overrideConfigs);\n }\n if (!theComponent && superDef) {\n theComponent = superDef.component;\n }\n if (!theComponent) {\n return null; // don't throw a warning, might be settings for a single-unit view\n }\n return {\n type: viewType,\n component: theComponent,\n defaults: Object.assign(Object.assign({}, (superDef ? superDef.defaults : {})), (defaultConfig ? defaultConfig.rawOptions : {})),\n overrides: Object.assign(Object.assign({}, (superDef ? superDef.overrides : {})), (overrideConfig ? overrideConfig.rawOptions : {})),\n };\n}\n\nfunction parseViewConfigs(inputs) {\n return mapHash(inputs, parseViewConfig);\n}\nfunction parseViewConfig(input) {\n let rawOptions = typeof input === 'function' ?\n { component: input } :\n input;\n let { component } = rawOptions;\n if (rawOptions.content) {\n // TODO: remove content/classNames/didMount/etc from options?\n component = createViewHookComponent(rawOptions);\n }\n else if (component && !(component.prototype instanceof BaseComponent)) {\n // WHY?: people were using `component` property for `content`\n // TODO: converge on one setting name\n component = createViewHookComponent(Object.assign(Object.assign({}, rawOptions), { content: component }));\n }\n return {\n superType: rawOptions.type,\n component: component,\n rawOptions, // includes type and component too :(\n };\n}\nfunction createViewHookComponent(options) {\n return (viewProps) => (createElement(ViewContextType.Consumer, null, (context) => (createElement(ContentContainer, { elTag: \"div\", elClasses: buildViewClassNames(context.viewSpec), renderProps: Object.assign(Object.assign({}, viewProps), { nextDayThreshold: context.options.nextDayThreshold }), generatorName: undefined, customGenerator: options.content, classNameGenerator: options.classNames, didMount: options.didMount, willUnmount: options.willUnmount }))));\n}\n\nfunction buildViewSpecs(defaultInputs, optionOverrides, dynamicOptionOverrides, localeDefaults) {\n let defaultConfigs = parseViewConfigs(defaultInputs);\n let overrideConfigs = parseViewConfigs(optionOverrides.views);\n let viewDefs = compileViewDefs(defaultConfigs, overrideConfigs);\n return mapHash(viewDefs, (viewDef) => buildViewSpec(viewDef, overrideConfigs, optionOverrides, dynamicOptionOverrides, localeDefaults));\n}\nfunction buildViewSpec(viewDef, overrideConfigs, optionOverrides, dynamicOptionOverrides, localeDefaults) {\n let durationInput = viewDef.overrides.duration ||\n viewDef.defaults.duration ||\n dynamicOptionOverrides.duration ||\n optionOverrides.duration;\n let duration = null;\n let durationUnit = '';\n let singleUnit = '';\n let singleUnitOverrides = {};\n if (durationInput) {\n duration = createDurationCached(durationInput);\n if (duration) { // valid?\n let denom = greatestDurationDenominator(duration);\n durationUnit = denom.unit;\n if (denom.value === 1) {\n singleUnit = durationUnit;\n singleUnitOverrides = overrideConfigs[durationUnit] ? overrideConfigs[durationUnit].rawOptions : {};\n }\n }\n }\n let queryButtonText = (optionsSubset) => {\n let buttonTextMap = optionsSubset.buttonText || {};\n let buttonTextKey = viewDef.defaults.buttonTextKey;\n if (buttonTextKey != null && buttonTextMap[buttonTextKey] != null) {\n return buttonTextMap[buttonTextKey];\n }\n if (buttonTextMap[viewDef.type] != null) {\n return buttonTextMap[viewDef.type];\n }\n if (buttonTextMap[singleUnit] != null) {\n return buttonTextMap[singleUnit];\n }\n return null;\n };\n let queryButtonTitle = (optionsSubset) => {\n let buttonHints = optionsSubset.buttonHints || {};\n let buttonKey = viewDef.defaults.buttonTextKey; // use same key as text\n if (buttonKey != null && buttonHints[buttonKey] != null) {\n return buttonHints[buttonKey];\n }\n if (buttonHints[viewDef.type] != null) {\n return buttonHints[viewDef.type];\n }\n if (buttonHints[singleUnit] != null) {\n return buttonHints[singleUnit];\n }\n return null;\n };\n return {\n type: viewDef.type,\n component: viewDef.component,\n duration,\n durationUnit,\n singleUnit,\n optionDefaults: viewDef.defaults,\n optionOverrides: Object.assign(Object.assign({}, singleUnitOverrides), viewDef.overrides),\n buttonTextOverride: queryButtonText(dynamicOptionOverrides) ||\n queryButtonText(optionOverrides) || // constructor-specified buttonText lookup hash takes precedence\n viewDef.overrides.buttonText,\n buttonTextDefault: queryButtonText(localeDefaults) ||\n viewDef.defaults.buttonText ||\n queryButtonText(BASE_OPTION_DEFAULTS) ||\n viewDef.type,\n // not DRY\n buttonTitleOverride: queryButtonTitle(dynamicOptionOverrides) ||\n queryButtonTitle(optionOverrides) ||\n viewDef.overrides.buttonHint,\n buttonTitleDefault: queryButtonTitle(localeDefaults) ||\n viewDef.defaults.buttonHint ||\n queryButtonTitle(BASE_OPTION_DEFAULTS),\n // will eventually fall back to buttonText\n };\n}\n// hack to get memoization working\nlet durationInputMap = {};\nfunction createDurationCached(durationInput) {\n let json = JSON.stringify(durationInput);\n let res = durationInputMap[json];\n if (res === undefined) {\n res = createDuration(durationInput);\n durationInputMap[json] = res;\n }\n return res;\n}\n\nfunction reduceViewType(viewType, action) {\n switch (action.type) {\n case 'CHANGE_VIEW_TYPE':\n viewType = action.viewType;\n }\n return viewType;\n}\n\nfunction reduceDynamicOptionOverrides(dynamicOptionOverrides, action) {\n switch (action.type) {\n case 'SET_OPTION':\n return Object.assign(Object.assign({}, dynamicOptionOverrides), { [action.optionName]: action.rawOptionValue });\n default:\n return dynamicOptionOverrides;\n }\n}\n\nfunction reduceDateProfile(currentDateProfile, action, currentDate, dateProfileGenerator) {\n let dp;\n switch (action.type) {\n case 'CHANGE_VIEW_TYPE':\n return dateProfileGenerator.build(action.dateMarker || currentDate);\n case 'CHANGE_DATE':\n return dateProfileGenerator.build(action.dateMarker);\n case 'PREV':\n dp = dateProfileGenerator.buildPrev(currentDateProfile, currentDate);\n if (dp.isValid) {\n return dp;\n }\n break;\n case 'NEXT':\n dp = dateProfileGenerator.buildNext(currentDateProfile, currentDate);\n if (dp.isValid) {\n return dp;\n }\n break;\n }\n return currentDateProfile;\n}\n\nfunction initEventSources(calendarOptions, dateProfile, context) {\n let activeRange = dateProfile ? dateProfile.activeRange : null;\n return addSources({}, parseInitialSources(calendarOptions, context), activeRange, context);\n}\nfunction reduceEventSources(eventSources, action, dateProfile, context) {\n let activeRange = dateProfile ? dateProfile.activeRange : null; // need this check?\n switch (action.type) {\n case 'ADD_EVENT_SOURCES': // already parsed\n return addSources(eventSources, action.sources, activeRange, context);\n case 'REMOVE_EVENT_SOURCE':\n return removeSource(eventSources, action.sourceId);\n case 'PREV': // TODO: how do we track all actions that affect dateProfile :(\n case 'NEXT':\n case 'CHANGE_DATE':\n case 'CHANGE_VIEW_TYPE':\n if (dateProfile) {\n return fetchDirtySources(eventSources, activeRange, context);\n }\n return eventSources;\n case 'FETCH_EVENT_SOURCES':\n return fetchSourcesByIds(eventSources, action.sourceIds ? // why no type?\n arrayToHash(action.sourceIds) :\n excludeStaticSources(eventSources, context), activeRange, action.isRefetch || false, context);\n case 'RECEIVE_EVENTS':\n case 'RECEIVE_EVENT_ERROR':\n return receiveResponse(eventSources, action.sourceId, action.fetchId, action.fetchRange);\n case 'REMOVE_ALL_EVENT_SOURCES':\n return {};\n default:\n return eventSources;\n }\n}\nfunction reduceEventSourcesNewTimeZone(eventSources, dateProfile, context) {\n let activeRange = dateProfile ? dateProfile.activeRange : null; // need this check?\n return fetchSourcesByIds(eventSources, excludeStaticSources(eventSources, context), activeRange, true, context);\n}\nfunction computeEventSourcesLoading(eventSources) {\n for (let sourceId in eventSources) {\n if (eventSources[sourceId].isFetching) {\n return true;\n }\n }\n return false;\n}\nfunction addSources(eventSourceHash, sources, fetchRange, context) {\n let hash = {};\n for (let source of sources) {\n hash[source.sourceId] = source;\n }\n if (fetchRange) {\n hash = fetchDirtySources(hash, fetchRange, context);\n }\n return Object.assign(Object.assign({}, eventSourceHash), hash);\n}\nfunction removeSource(eventSourceHash, sourceId) {\n return filterHash(eventSourceHash, (eventSource) => eventSource.sourceId !== sourceId);\n}\nfunction fetchDirtySources(sourceHash, fetchRange, context) {\n return fetchSourcesByIds(sourceHash, filterHash(sourceHash, (eventSource) => isSourceDirty(eventSource, fetchRange, context)), fetchRange, false, context);\n}\nfunction isSourceDirty(eventSource, fetchRange, context) {\n if (!doesSourceNeedRange(eventSource, context)) {\n return !eventSource.latestFetchId;\n }\n return !context.options.lazyFetching ||\n !eventSource.fetchRange ||\n eventSource.isFetching || // always cancel outdated in-progress fetches\n fetchRange.start < eventSource.fetchRange.start ||\n fetchRange.end > eventSource.fetchRange.end;\n}\nfunction fetchSourcesByIds(prevSources, sourceIdHash, fetchRange, isRefetch, context) {\n let nextSources = {};\n for (let sourceId in prevSources) {\n let source = prevSources[sourceId];\n if (sourceIdHash[sourceId]) {\n nextSources[sourceId] = fetchSource(source, fetchRange, isRefetch, context);\n }\n else {\n nextSources[sourceId] = source;\n }\n }\n return nextSources;\n}\nfunction fetchSource(eventSource, fetchRange, isRefetch, context) {\n let { options, calendarApi } = context;\n let sourceDef = context.pluginHooks.eventSourceDefs[eventSource.sourceDefId];\n let fetchId = guid();\n sourceDef.fetch({\n eventSource,\n range: fetchRange,\n isRefetch,\n context,\n }, (res) => {\n let { rawEvents } = res;\n if (options.eventSourceSuccess) {\n rawEvents = options.eventSourceSuccess.call(calendarApi, rawEvents, res.response) || rawEvents;\n }\n if (eventSource.success) {\n rawEvents = eventSource.success.call(calendarApi, rawEvents, res.response) || rawEvents;\n }\n context.dispatch({\n type: 'RECEIVE_EVENTS',\n sourceId: eventSource.sourceId,\n fetchId,\n fetchRange,\n rawEvents,\n });\n }, (error) => {\n let errorHandled = false;\n if (options.eventSourceFailure) {\n options.eventSourceFailure.call(calendarApi, error);\n errorHandled = true;\n }\n if (eventSource.failure) {\n eventSource.failure(error);\n errorHandled = true;\n }\n if (!errorHandled) {\n console.warn(error.message, error);\n }\n context.dispatch({\n type: 'RECEIVE_EVENT_ERROR',\n sourceId: eventSource.sourceId,\n fetchId,\n fetchRange,\n error,\n });\n });\n return Object.assign(Object.assign({}, eventSource), { isFetching: true, latestFetchId: fetchId });\n}\nfunction receiveResponse(sourceHash, sourceId, fetchId, fetchRange) {\n let eventSource = sourceHash[sourceId];\n if (eventSource && // not already removed\n fetchId === eventSource.latestFetchId) {\n return Object.assign(Object.assign({}, sourceHash), { [sourceId]: Object.assign(Object.assign({}, eventSource), { isFetching: false, fetchRange }) });\n }\n return sourceHash;\n}\nfunction excludeStaticSources(eventSources, context) {\n return filterHash(eventSources, (eventSource) => doesSourceNeedRange(eventSource, context));\n}\nfunction parseInitialSources(rawOptions, context) {\n let refiners = buildEventSourceRefiners(context);\n let rawSources = [].concat(rawOptions.eventSources || []);\n let sources = []; // parsed\n if (rawOptions.initialEvents) {\n rawSources.unshift(rawOptions.initialEvents);\n }\n if (rawOptions.events) {\n rawSources.unshift(rawOptions.events);\n }\n for (let rawSource of rawSources) {\n let source = parseEventSource(rawSource, context, refiners);\n if (source) {\n sources.push(source);\n }\n }\n return sources;\n}\nfunction doesSourceNeedRange(eventSource, context) {\n let defs = context.pluginHooks.eventSourceDefs;\n return !defs[eventSource.sourceDefId].ignoreRange;\n}\n\nfunction reduceDateSelection(currentSelection, action) {\n switch (action.type) {\n case 'UNSELECT_DATES':\n return null;\n case 'SELECT_DATES':\n return action.selection;\n default:\n return currentSelection;\n }\n}\n\nfunction reduceSelectedEvent(currentInstanceId, action) {\n switch (action.type) {\n case 'UNSELECT_EVENT':\n return '';\n case 'SELECT_EVENT':\n return action.eventInstanceId;\n default:\n return currentInstanceId;\n }\n}\n\nfunction reduceEventDrag(currentDrag, action) {\n let newDrag;\n switch (action.type) {\n case 'UNSET_EVENT_DRAG':\n return null;\n case 'SET_EVENT_DRAG':\n newDrag = action.state;\n return {\n affectedEvents: newDrag.affectedEvents,\n mutatedEvents: newDrag.mutatedEvents,\n isEvent: newDrag.isEvent,\n };\n default:\n return currentDrag;\n }\n}\n\nfunction reduceEventResize(currentResize, action) {\n let newResize;\n switch (action.type) {\n case 'UNSET_EVENT_RESIZE':\n return null;\n case 'SET_EVENT_RESIZE':\n newResize = action.state;\n return {\n affectedEvents: newResize.affectedEvents,\n mutatedEvents: newResize.mutatedEvents,\n isEvent: newResize.isEvent,\n };\n default:\n return currentResize;\n }\n}\n\nfunction parseToolbars(calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi) {\n let header = calendarOptions.headerToolbar ? parseToolbar(calendarOptions.headerToolbar, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi) : null;\n let footer = calendarOptions.footerToolbar ? parseToolbar(calendarOptions.footerToolbar, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi) : null;\n return { header, footer };\n}\nfunction parseToolbar(sectionStrHash, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi) {\n let sectionWidgets = {};\n let viewsWithButtons = [];\n let hasTitle = false;\n for (let sectionName in sectionStrHash) {\n let sectionStr = sectionStrHash[sectionName];\n let sectionRes = parseSection(sectionStr, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi);\n sectionWidgets[sectionName] = sectionRes.widgets;\n viewsWithButtons.push(...sectionRes.viewsWithButtons);\n hasTitle = hasTitle || sectionRes.hasTitle;\n }\n return { sectionWidgets, viewsWithButtons, hasTitle };\n}\n/*\nBAD: querying icons and text here. should be done at render time\n*/\nfunction parseSection(sectionStr, calendarOptions, // defaults+overrides, then refined\ncalendarOptionOverrides, // overrides only!, unrefined :(\ntheme, viewSpecs, calendarApi) {\n let isRtl = calendarOptions.direction === 'rtl';\n let calendarCustomButtons = calendarOptions.customButtons || {};\n let calendarButtonTextOverrides = calendarOptionOverrides.buttonText || {};\n let calendarButtonText = calendarOptions.buttonText || {};\n let calendarButtonHintOverrides = calendarOptionOverrides.buttonHints || {};\n let calendarButtonHints = calendarOptions.buttonHints || {};\n let sectionSubstrs = sectionStr ? sectionStr.split(' ') : [];\n let viewsWithButtons = [];\n let hasTitle = false;\n let widgets = sectionSubstrs.map((buttonGroupStr) => (buttonGroupStr.split(',').map((buttonName) => {\n if (buttonName === 'title') {\n hasTitle = true;\n return { buttonName };\n }\n let customButtonProps;\n let viewSpec;\n let buttonClick;\n let buttonIcon; // only one of these will be set\n let buttonText; // \"\n let buttonHint;\n // ^ for the title=\"\" attribute, for accessibility\n if ((customButtonProps = calendarCustomButtons[buttonName])) {\n buttonClick = (ev) => {\n if (customButtonProps.click) {\n customButtonProps.click.call(ev.target, ev, ev.target); // TODO: use Calendar this context?\n }\n };\n (buttonIcon = theme.getCustomButtonIconClass(customButtonProps)) ||\n (buttonIcon = theme.getIconClass(buttonName, isRtl)) ||\n (buttonText = customButtonProps.text);\n buttonHint = customButtonProps.hint || customButtonProps.text;\n }\n else if ((viewSpec = viewSpecs[buttonName])) {\n viewsWithButtons.push(buttonName);\n buttonClick = () => {\n calendarApi.changeView(buttonName);\n };\n (buttonText = viewSpec.buttonTextOverride) ||\n (buttonIcon = theme.getIconClass(buttonName, isRtl)) ||\n (buttonText = viewSpec.buttonTextDefault);\n let textFallback = viewSpec.buttonTextOverride ||\n viewSpec.buttonTextDefault;\n buttonHint = formatWithOrdinals(viewSpec.buttonTitleOverride ||\n viewSpec.buttonTitleDefault ||\n calendarOptions.viewHint, [textFallback, buttonName], // view-name = buttonName\n textFallback);\n }\n else if (calendarApi[buttonName]) { // a calendarApi method\n buttonClick = () => {\n calendarApi[buttonName]();\n };\n (buttonText = calendarButtonTextOverrides[buttonName]) ||\n (buttonIcon = theme.getIconClass(buttonName, isRtl)) ||\n (buttonText = calendarButtonText[buttonName]); // everything else is considered default\n if (buttonName === 'prevYear' || buttonName === 'nextYear') {\n let prevOrNext = buttonName === 'prevYear' ? 'prev' : 'next';\n buttonHint = formatWithOrdinals(calendarButtonHintOverrides[prevOrNext] ||\n calendarButtonHints[prevOrNext], [\n calendarButtonText.year || 'year',\n 'year',\n ], calendarButtonText[buttonName]);\n }\n else {\n buttonHint = (navUnit) => formatWithOrdinals(calendarButtonHintOverrides[buttonName] ||\n calendarButtonHints[buttonName], [\n calendarButtonText[navUnit] || navUnit,\n navUnit,\n ], calendarButtonText[buttonName]);\n }\n }\n return { buttonName, buttonClick, buttonIcon, buttonText, buttonHint };\n })));\n return { widgets, viewsWithButtons, hasTitle };\n}\n\n// always represents the current view. otherwise, it'd need to change value every time date changes\nclass ViewImpl {\n constructor(type, getCurrentData, dateEnv) {\n this.type = type;\n this.getCurrentData = getCurrentData;\n this.dateEnv = dateEnv;\n }\n get calendar() {\n return this.getCurrentData().calendarApi;\n }\n get title() {\n return this.getCurrentData().viewTitle;\n }\n get activeStart() {\n return this.dateEnv.toDate(this.getCurrentData().dateProfile.activeRange.start);\n }\n get activeEnd() {\n return this.dateEnv.toDate(this.getCurrentData().dateProfile.activeRange.end);\n }\n get currentStart() {\n return this.dateEnv.toDate(this.getCurrentData().dateProfile.currentRange.start);\n }\n get currentEnd() {\n return this.dateEnv.toDate(this.getCurrentData().dateProfile.currentRange.end);\n }\n getOption(name) {\n return this.getCurrentData().options[name]; // are the view-specific options\n }\n}\n\nlet eventSourceDef$2 = {\n ignoreRange: true,\n parseMeta(refined) {\n if (Array.isArray(refined.events)) {\n return refined.events;\n }\n return null;\n },\n fetch(arg, successCallback) {\n successCallback({\n rawEvents: arg.eventSource.meta,\n });\n },\n};\nconst arrayEventSourcePlugin = createPlugin({\n name: 'array-event-source',\n eventSourceDefs: [eventSourceDef$2],\n});\n\nlet eventSourceDef$1 = {\n parseMeta(refined) {\n if (typeof refined.events === 'function') {\n return refined.events;\n }\n return null;\n },\n fetch(arg, successCallback, errorCallback) {\n const { dateEnv } = arg.context;\n const func = arg.eventSource.meta;\n unpromisify(func.bind(null, buildRangeApiWithTimeZone(arg.range, dateEnv)), (rawEvents) => successCallback({ rawEvents }), errorCallback);\n },\n};\nconst funcEventSourcePlugin = createPlugin({\n name: 'func-event-source',\n eventSourceDefs: [eventSourceDef$1],\n});\n\nconst JSON_FEED_EVENT_SOURCE_REFINERS = {\n method: String,\n extraParams: identity,\n startParam: String,\n endParam: String,\n timeZoneParam: String,\n};\n\nlet eventSourceDef = {\n parseMeta(refined) {\n if (refined.url && (refined.format === 'json' || !refined.format)) {\n return {\n url: refined.url,\n format: 'json',\n method: (refined.method || 'GET').toUpperCase(),\n extraParams: refined.extraParams,\n startParam: refined.startParam,\n endParam: refined.endParam,\n timeZoneParam: refined.timeZoneParam,\n };\n }\n return null;\n },\n fetch(arg, successCallback, errorCallback) {\n const { meta } = arg.eventSource;\n const requestParams = buildRequestParams(meta, arg.range, arg.context);\n requestJson(meta.method, meta.url, requestParams).then(([rawEvents, response]) => {\n successCallback({ rawEvents, response });\n }, errorCallback);\n },\n};\nconst jsonFeedEventSourcePlugin = createPlugin({\n name: 'json-event-source',\n eventSourceRefiners: JSON_FEED_EVENT_SOURCE_REFINERS,\n eventSourceDefs: [eventSourceDef],\n});\nfunction buildRequestParams(meta, range, context) {\n let { dateEnv, options } = context;\n let startParam;\n let endParam;\n let timeZoneParam;\n let customRequestParams;\n let params = {};\n startParam = meta.startParam;\n if (startParam == null) {\n startParam = options.startParam;\n }\n endParam = meta.endParam;\n if (endParam == null) {\n endParam = options.endParam;\n }\n timeZoneParam = meta.timeZoneParam;\n if (timeZoneParam == null) {\n timeZoneParam = options.timeZoneParam;\n }\n // retrieve any outbound GET/POST data from the options\n if (typeof meta.extraParams === 'function') {\n // supplied as a function that returns a key/value object\n customRequestParams = meta.extraParams();\n }\n else {\n // probably supplied as a straight key/value object\n customRequestParams = meta.extraParams || {};\n }\n Object.assign(params, customRequestParams);\n params[startParam] = dateEnv.formatIso(range.start);\n params[endParam] = dateEnv.formatIso(range.end);\n if (dateEnv.timeZone !== 'local') {\n params[timeZoneParam] = dateEnv.timeZone;\n }\n return params;\n}\n\nconst SIMPLE_RECURRING_REFINERS = {\n daysOfWeek: identity,\n startTime: createDuration,\n endTime: createDuration,\n duration: createDuration,\n startRecur: identity,\n endRecur: identity,\n};\n\nlet recurring = {\n parse(refined, dateEnv) {\n if (refined.daysOfWeek || refined.startTime || refined.endTime || refined.startRecur || refined.endRecur) {\n let recurringData = {\n daysOfWeek: refined.daysOfWeek || null,\n startTime: refined.startTime || null,\n endTime: refined.endTime || null,\n startRecur: refined.startRecur ? dateEnv.createMarker(refined.startRecur) : null,\n endRecur: refined.endRecur ? dateEnv.createMarker(refined.endRecur) : null,\n };\n let duration;\n if (refined.duration) {\n duration = refined.duration;\n }\n if (!duration && refined.startTime && refined.endTime) {\n duration = subtractDurations(refined.endTime, refined.startTime);\n }\n return {\n allDayGuess: Boolean(!refined.startTime && !refined.endTime),\n duration,\n typeData: recurringData, // doesn't need endTime anymore but oh well\n };\n }\n return null;\n },\n expand(typeData, framingRange, dateEnv) {\n let clippedFramingRange = intersectRanges(framingRange, { start: typeData.startRecur, end: typeData.endRecur });\n if (clippedFramingRange) {\n return expandRanges(typeData.daysOfWeek, typeData.startTime, clippedFramingRange, dateEnv);\n }\n return [];\n },\n};\nconst simpleRecurringEventsPlugin = createPlugin({\n name: 'simple-recurring-event',\n recurringTypes: [recurring],\n eventRefiners: SIMPLE_RECURRING_REFINERS,\n});\nfunction expandRanges(daysOfWeek, startTime, framingRange, dateEnv) {\n let dowHash = daysOfWeek ? arrayToHash(daysOfWeek) : null;\n let dayMarker = startOfDay(framingRange.start);\n let endMarker = framingRange.end;\n let instanceStarts = [];\n while (dayMarker < endMarker) {\n let instanceStart;\n // if everyday, or this particular day-of-week\n if (!dowHash || dowHash[dayMarker.getUTCDay()]) {\n if (startTime) {\n instanceStart = dateEnv.add(dayMarker, startTime);\n }\n else {\n instanceStart = dayMarker;\n }\n instanceStarts.push(instanceStart);\n }\n dayMarker = addDays(dayMarker, 1);\n }\n return instanceStarts;\n}\n\nconst changeHandlerPlugin = createPlugin({\n name: 'change-handler',\n optionChangeHandlers: {\n events(events, context) {\n handleEventSources([events], context);\n },\n eventSources: handleEventSources,\n },\n});\n/*\nBUG: if `event` was supplied, all previously-given `eventSources` will be wiped out\n*/\nfunction handleEventSources(inputs, context) {\n let unfoundSources = hashValuesToArray(context.getCurrentData().eventSources);\n if (unfoundSources.length === 1 &&\n inputs.length === 1 &&\n Array.isArray(unfoundSources[0]._raw) &&\n Array.isArray(inputs[0])) {\n context.dispatch({\n type: 'RESET_RAW_EVENTS',\n sourceId: unfoundSources[0].sourceId,\n rawEvents: inputs[0],\n });\n return;\n }\n let newInputs = [];\n for (let input of inputs) {\n let inputFound = false;\n for (let i = 0; i < unfoundSources.length; i += 1) {\n if (unfoundSources[i]._raw === input) {\n unfoundSources.splice(i, 1); // delete\n inputFound = true;\n break;\n }\n }\n if (!inputFound) {\n newInputs.push(input);\n }\n }\n for (let unfoundSource of unfoundSources) {\n context.dispatch({\n type: 'REMOVE_EVENT_SOURCE',\n sourceId: unfoundSource.sourceId,\n });\n }\n for (let newInput of newInputs) {\n context.calendarApi.addEventSource(newInput);\n }\n}\n\nfunction handleDateProfile(dateProfile, context) {\n context.emitter.trigger('datesSet', Object.assign(Object.assign({}, buildRangeApiWithTimeZone(dateProfile.activeRange, context.dateEnv)), { view: context.viewApi }));\n}\n\nfunction handleEventStore(eventStore, context) {\n let { emitter } = context;\n if (emitter.hasHandlers('eventsSet')) {\n emitter.trigger('eventsSet', buildEventApis(eventStore, context));\n }\n}\n\n/*\nthis array is exposed on the root namespace so that UMD plugins can add to it.\nsee the rollup-bundles script.\n*/\nconst globalPlugins = [\n arrayEventSourcePlugin,\n funcEventSourcePlugin,\n jsonFeedEventSourcePlugin,\n simpleRecurringEventsPlugin,\n changeHandlerPlugin,\n createPlugin({\n name: 'misc',\n isLoadingFuncs: [\n (state) => computeEventSourcesLoading(state.eventSources),\n ],\n propSetHandlers: {\n dateProfile: handleDateProfile,\n eventStore: handleEventStore,\n },\n }),\n];\n\nclass TaskRunner {\n constructor(runTaskOption, drainedOption) {\n this.runTaskOption = runTaskOption;\n this.drainedOption = drainedOption;\n this.queue = [];\n this.delayedRunner = new DelayedRunner(this.drain.bind(this));\n }\n request(task, delay) {\n this.queue.push(task);\n this.delayedRunner.request(delay);\n }\n pause(scope) {\n this.delayedRunner.pause(scope);\n }\n resume(scope, force) {\n this.delayedRunner.resume(scope, force);\n }\n drain() {\n let { queue } = this;\n while (queue.length) {\n let completedTasks = [];\n let task;\n while ((task = queue.shift())) {\n this.runTask(task);\n completedTasks.push(task);\n }\n this.drained(completedTasks);\n } // keep going, in case new tasks were added in the drained handler\n }\n runTask(task) {\n if (this.runTaskOption) {\n this.runTaskOption(task);\n }\n }\n drained(completedTasks) {\n if (this.drainedOption) {\n this.drainedOption(completedTasks);\n }\n }\n}\n\n// Computes what the title at the top of the calendarApi should be for this view\nfunction buildTitle(dateProfile, viewOptions, dateEnv) {\n let range;\n // for views that span a large unit of time, show the proper interval, ignoring stray days before and after\n if (/^(year|month)$/.test(dateProfile.currentRangeUnit)) {\n range = dateProfile.currentRange;\n }\n else { // for day units or smaller, use the actual day range\n range = dateProfile.activeRange;\n }\n return dateEnv.formatRange(range.start, range.end, createFormatter(viewOptions.titleFormat || buildTitleFormat(dateProfile)), {\n isEndExclusive: dateProfile.isRangeAllDay,\n defaultSeparator: viewOptions.titleRangeSeparator,\n });\n}\n// Generates the format string that should be used to generate the title for the current date range.\n// Attempts to compute the most appropriate format if not explicitly specified with `titleFormat`.\nfunction buildTitleFormat(dateProfile) {\n let { currentRangeUnit } = dateProfile;\n if (currentRangeUnit === 'year') {\n return { year: 'numeric' };\n }\n if (currentRangeUnit === 'month') {\n return { year: 'numeric', month: 'long' }; // like \"September 2014\"\n }\n let days = diffWholeDays(dateProfile.currentRange.start, dateProfile.currentRange.end);\n if (days !== null && days > 1) {\n // multi-day range. shorter, like \"Sep 9 - 10 2014\"\n return { year: 'numeric', month: 'short', day: 'numeric' };\n }\n // one day. longer, like \"September 9 2014\"\n return { year: 'numeric', month: 'long', day: 'numeric' };\n}\n\n// in future refactor, do the redux-style function(state=initial) for initial-state\n// also, whatever is happening in constructor, have it happen in action queue too\nclass CalendarDataManager {\n constructor(props) {\n this.computeCurrentViewData = memoize(this._computeCurrentViewData);\n this.organizeRawLocales = memoize(organizeRawLocales);\n this.buildLocale = memoize(buildLocale);\n this.buildPluginHooks = buildBuildPluginHooks();\n this.buildDateEnv = memoize(buildDateEnv$1);\n this.buildTheme = memoize(buildTheme);\n this.parseToolbars = memoize(parseToolbars);\n this.buildViewSpecs = memoize(buildViewSpecs);\n this.buildDateProfileGenerator = memoizeObjArg(buildDateProfileGenerator);\n this.buildViewApi = memoize(buildViewApi);\n this.buildViewUiProps = memoizeObjArg(buildViewUiProps);\n this.buildEventUiBySource = memoize(buildEventUiBySource, isPropsEqual);\n this.buildEventUiBases = memoize(buildEventUiBases);\n this.parseContextBusinessHours = memoizeObjArg(parseContextBusinessHours);\n this.buildTitle = memoize(buildTitle);\n this.emitter = new Emitter();\n this.actionRunner = new TaskRunner(this._handleAction.bind(this), this.updateData.bind(this));\n this.currentCalendarOptionsInput = {};\n this.currentCalendarOptionsRefined = {};\n this.currentViewOptionsInput = {};\n this.currentViewOptionsRefined = {};\n this.currentCalendarOptionsRefiners = {};\n this.optionsForRefining = [];\n this.optionsForHandling = [];\n this.getCurrentData = () => this.data;\n this.dispatch = (action) => {\n this.actionRunner.request(action); // protects against recursive calls to _handleAction\n };\n this.props = props;\n this.actionRunner.pause();\n let dynamicOptionOverrides = {};\n let optionsData = this.computeOptionsData(props.optionOverrides, dynamicOptionOverrides, props.calendarApi);\n let currentViewType = optionsData.calendarOptions.initialView || optionsData.pluginHooks.initialView;\n let currentViewData = this.computeCurrentViewData(currentViewType, optionsData, props.optionOverrides, dynamicOptionOverrides);\n // wire things up\n // TODO: not DRY\n props.calendarApi.currentDataManager = this;\n this.emitter.setThisContext(props.calendarApi);\n this.emitter.setOptions(currentViewData.options);\n let currentDate = getInitialDate(optionsData.calendarOptions, optionsData.dateEnv);\n let dateProfile = currentViewData.dateProfileGenerator.build(currentDate);\n if (!rangeContainsMarker(dateProfile.activeRange, currentDate)) {\n currentDate = dateProfile.currentRange.start;\n }\n let calendarContext = {\n dateEnv: optionsData.dateEnv,\n options: optionsData.calendarOptions,\n pluginHooks: optionsData.pluginHooks,\n calendarApi: props.calendarApi,\n dispatch: this.dispatch,\n emitter: this.emitter,\n getCurrentData: this.getCurrentData,\n };\n // needs to be after setThisContext\n for (let callback of optionsData.pluginHooks.contextInit) {\n callback(calendarContext);\n }\n // NOT DRY\n let eventSources = initEventSources(optionsData.calendarOptions, dateProfile, calendarContext);\n let initialState = {\n dynamicOptionOverrides,\n currentViewType,\n currentDate,\n dateProfile,\n businessHours: this.parseContextBusinessHours(calendarContext),\n eventSources,\n eventUiBases: {},\n eventStore: createEmptyEventStore(),\n renderableEventStore: createEmptyEventStore(),\n dateSelection: null,\n eventSelection: '',\n eventDrag: null,\n eventResize: null,\n selectionConfig: this.buildViewUiProps(calendarContext).selectionConfig,\n };\n let contextAndState = Object.assign(Object.assign({}, calendarContext), initialState);\n for (let reducer of optionsData.pluginHooks.reducers) {\n Object.assign(initialState, reducer(null, null, contextAndState));\n }\n if (computeIsLoading(initialState, calendarContext)) {\n this.emitter.trigger('loading', true); // NOT DRY\n }\n this.state = initialState;\n this.updateData();\n this.actionRunner.resume();\n }\n resetOptions(optionOverrides, changedOptionNames) {\n let { props } = this;\n if (changedOptionNames === undefined) {\n props.optionOverrides = optionOverrides;\n }\n else {\n props.optionOverrides = Object.assign(Object.assign({}, (props.optionOverrides || {})), optionOverrides);\n this.optionsForRefining.push(...changedOptionNames);\n }\n if (changedOptionNames === undefined || changedOptionNames.length) {\n this.actionRunner.request({\n type: 'NOTHING',\n });\n }\n }\n _handleAction(action) {\n let { props, state, emitter } = this;\n let dynamicOptionOverrides = reduceDynamicOptionOverrides(state.dynamicOptionOverrides, action);\n let optionsData = this.computeOptionsData(props.optionOverrides, dynamicOptionOverrides, props.calendarApi);\n let currentViewType = reduceViewType(state.currentViewType, action);\n let currentViewData = this.computeCurrentViewData(currentViewType, optionsData, props.optionOverrides, dynamicOptionOverrides);\n // wire things up\n // TODO: not DRY\n props.calendarApi.currentDataManager = this;\n emitter.setThisContext(props.calendarApi);\n emitter.setOptions(currentViewData.options);\n let calendarContext = {\n dateEnv: optionsData.dateEnv,\n options: optionsData.calendarOptions,\n pluginHooks: optionsData.pluginHooks,\n calendarApi: props.calendarApi,\n dispatch: this.dispatch,\n emitter,\n getCurrentData: this.getCurrentData,\n };\n let { currentDate, dateProfile } = state;\n if (this.data && this.data.dateProfileGenerator !== currentViewData.dateProfileGenerator) { // hack\n dateProfile = currentViewData.dateProfileGenerator.build(currentDate);\n }\n currentDate = reduceCurrentDate(currentDate, action);\n dateProfile = reduceDateProfile(dateProfile, action, currentDate, currentViewData.dateProfileGenerator);\n if (action.type === 'PREV' || // TODO: move this logic into DateProfileGenerator\n action.type === 'NEXT' || // \"\n !rangeContainsMarker(dateProfile.currentRange, currentDate)) {\n currentDate = dateProfile.currentRange.start;\n }\n let eventSources = reduceEventSources(state.eventSources, action, dateProfile, calendarContext);\n let eventStore = reduceEventStore(state.eventStore, action, eventSources, dateProfile, calendarContext);\n let isEventsLoading = computeEventSourcesLoading(eventSources); // BAD. also called in this func in computeIsLoading\n let renderableEventStore = (isEventsLoading && !currentViewData.options.progressiveEventRendering) ?\n (state.renderableEventStore || eventStore) : // try from previous state\n eventStore;\n let { eventUiSingleBase, selectionConfig } = this.buildViewUiProps(calendarContext); // will memoize obj\n let eventUiBySource = this.buildEventUiBySource(eventSources);\n let eventUiBases = this.buildEventUiBases(renderableEventStore.defs, eventUiSingleBase, eventUiBySource);\n let newState = {\n dynamicOptionOverrides,\n currentViewType,\n currentDate,\n dateProfile,\n eventSources,\n eventStore,\n renderableEventStore,\n selectionConfig,\n eventUiBases,\n businessHours: this.parseContextBusinessHours(calendarContext),\n dateSelection: reduceDateSelection(state.dateSelection, action),\n eventSelection: reduceSelectedEvent(state.eventSelection, action),\n eventDrag: reduceEventDrag(state.eventDrag, action),\n eventResize: reduceEventResize(state.eventResize, action),\n };\n let contextAndState = Object.assign(Object.assign({}, calendarContext), newState);\n for (let reducer of optionsData.pluginHooks.reducers) {\n Object.assign(newState, reducer(state, action, contextAndState)); // give the OLD state, for old value\n }\n let wasLoading = computeIsLoading(state, calendarContext);\n let isLoading = computeIsLoading(newState, calendarContext);\n // TODO: use propSetHandlers in plugin system\n if (!wasLoading && isLoading) {\n emitter.trigger('loading', true);\n }\n else if (wasLoading && !isLoading) {\n emitter.trigger('loading', false);\n }\n this.state = newState;\n if (props.onAction) {\n props.onAction(action);\n }\n }\n updateData() {\n let { props, state } = this;\n let oldData = this.data;\n let optionsData = this.computeOptionsData(props.optionOverrides, state.dynamicOptionOverrides, props.calendarApi);\n let currentViewData = this.computeCurrentViewData(state.currentViewType, optionsData, props.optionOverrides, state.dynamicOptionOverrides);\n let data = this.data = Object.assign(Object.assign(Object.assign({ viewTitle: this.buildTitle(state.dateProfile, currentViewData.options, optionsData.dateEnv), calendarApi: props.calendarApi, dispatch: this.dispatch, emitter: this.emitter, getCurrentData: this.getCurrentData }, optionsData), currentViewData), state);\n let changeHandlers = optionsData.pluginHooks.optionChangeHandlers;\n let oldCalendarOptions = oldData && oldData.calendarOptions;\n let newCalendarOptions = optionsData.calendarOptions;\n if (oldCalendarOptions && oldCalendarOptions !== newCalendarOptions) {\n if (oldCalendarOptions.timeZone !== newCalendarOptions.timeZone) {\n // hack\n state.eventSources = data.eventSources = reduceEventSourcesNewTimeZone(data.eventSources, state.dateProfile, data);\n state.eventStore = data.eventStore = rezoneEventStoreDates(data.eventStore, oldData.dateEnv, data.dateEnv);\n state.renderableEventStore = data.renderableEventStore = rezoneEventStoreDates(data.renderableEventStore, oldData.dateEnv, data.dateEnv);\n }\n for (let optionName in changeHandlers) {\n if (this.optionsForHandling.indexOf(optionName) !== -1 ||\n oldCalendarOptions[optionName] !== newCalendarOptions[optionName]) {\n changeHandlers[optionName](newCalendarOptions[optionName], data);\n }\n }\n }\n this.optionsForHandling = [];\n if (props.onData) {\n props.onData(data);\n }\n }\n computeOptionsData(optionOverrides, dynamicOptionOverrides, calendarApi) {\n // TODO: blacklist options that are handled by optionChangeHandlers\n if (!this.optionsForRefining.length &&\n optionOverrides === this.stableOptionOverrides &&\n dynamicOptionOverrides === this.stableDynamicOptionOverrides) {\n return this.stableCalendarOptionsData;\n }\n let { refinedOptions, pluginHooks, localeDefaults, availableLocaleData, extra, } = this.processRawCalendarOptions(optionOverrides, dynamicOptionOverrides);\n warnUnknownOptions(extra);\n let dateEnv = this.buildDateEnv(refinedOptions.timeZone, refinedOptions.locale, refinedOptions.weekNumberCalculation, refinedOptions.firstDay, refinedOptions.weekText, pluginHooks, availableLocaleData, refinedOptions.defaultRangeSeparator);\n let viewSpecs = this.buildViewSpecs(pluginHooks.views, this.stableOptionOverrides, this.stableDynamicOptionOverrides, localeDefaults);\n let theme = this.buildTheme(refinedOptions, pluginHooks);\n let toolbarConfig = this.parseToolbars(refinedOptions, this.stableOptionOverrides, theme, viewSpecs, calendarApi);\n return this.stableCalendarOptionsData = {\n calendarOptions: refinedOptions,\n pluginHooks,\n dateEnv,\n viewSpecs,\n theme,\n toolbarConfig,\n localeDefaults,\n availableRawLocales: availableLocaleData.map,\n };\n }\n // always called from behind a memoizer\n processRawCalendarOptions(optionOverrides, dynamicOptionOverrides) {\n let { locales, locale } = mergeRawOptions([\n BASE_OPTION_DEFAULTS,\n optionOverrides,\n dynamicOptionOverrides,\n ]);\n let availableLocaleData = this.organizeRawLocales(locales);\n let availableRawLocales = availableLocaleData.map;\n let localeDefaults = this.buildLocale(locale || availableLocaleData.defaultCode, availableRawLocales).options;\n let pluginHooks = this.buildPluginHooks(optionOverrides.plugins || [], globalPlugins);\n let refiners = this.currentCalendarOptionsRefiners = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, BASE_OPTION_REFINERS), CALENDAR_LISTENER_REFINERS), CALENDAR_OPTION_REFINERS), pluginHooks.listenerRefiners), pluginHooks.optionRefiners);\n let extra = {};\n let raw = mergeRawOptions([\n BASE_OPTION_DEFAULTS,\n localeDefaults,\n optionOverrides,\n dynamicOptionOverrides,\n ]);\n let refined = {};\n let currentRaw = this.currentCalendarOptionsInput;\n let currentRefined = this.currentCalendarOptionsRefined;\n let anyChanges = false;\n for (let optionName in raw) {\n if (this.optionsForRefining.indexOf(optionName) === -1 && (raw[optionName] === currentRaw[optionName] || (COMPLEX_OPTION_COMPARATORS[optionName] &&\n (optionName in currentRaw) &&\n COMPLEX_OPTION_COMPARATORS[optionName](currentRaw[optionName], raw[optionName])))) {\n refined[optionName] = currentRefined[optionName];\n }\n else if (refiners[optionName]) {\n refined[optionName] = refiners[optionName](raw[optionName]);\n anyChanges = true;\n }\n else {\n extra[optionName] = currentRaw[optionName];\n }\n }\n if (anyChanges) {\n this.currentCalendarOptionsInput = raw;\n this.currentCalendarOptionsRefined = refined;\n this.stableOptionOverrides = optionOverrides;\n this.stableDynamicOptionOverrides = dynamicOptionOverrides;\n }\n this.optionsForHandling.push(...this.optionsForRefining);\n this.optionsForRefining = [];\n return {\n rawOptions: this.currentCalendarOptionsInput,\n refinedOptions: this.currentCalendarOptionsRefined,\n pluginHooks,\n availableLocaleData,\n localeDefaults,\n extra,\n };\n }\n _computeCurrentViewData(viewType, optionsData, optionOverrides, dynamicOptionOverrides) {\n let viewSpec = optionsData.viewSpecs[viewType];\n if (!viewSpec) {\n throw new Error(`viewType \"${viewType}\" is not available. Please make sure you've loaded all neccessary plugins`);\n }\n let { refinedOptions, extra } = this.processRawViewOptions(viewSpec, optionsData.pluginHooks, optionsData.localeDefaults, optionOverrides, dynamicOptionOverrides);\n warnUnknownOptions(extra);\n let dateProfileGenerator = this.buildDateProfileGenerator({\n dateProfileGeneratorClass: viewSpec.optionDefaults.dateProfileGeneratorClass,\n duration: viewSpec.duration,\n durationUnit: viewSpec.durationUnit,\n usesMinMaxTime: viewSpec.optionDefaults.usesMinMaxTime,\n dateEnv: optionsData.dateEnv,\n calendarApi: this.props.calendarApi,\n slotMinTime: refinedOptions.slotMinTime,\n slotMaxTime: refinedOptions.slotMaxTime,\n showNonCurrentDates: refinedOptions.showNonCurrentDates,\n dayCount: refinedOptions.dayCount,\n dateAlignment: refinedOptions.dateAlignment,\n dateIncrement: refinedOptions.dateIncrement,\n hiddenDays: refinedOptions.hiddenDays,\n weekends: refinedOptions.weekends,\n nowInput: refinedOptions.now,\n validRangeInput: refinedOptions.validRange,\n visibleRangeInput: refinedOptions.visibleRange,\n fixedWeekCount: refinedOptions.fixedWeekCount,\n });\n let viewApi = this.buildViewApi(viewType, this.getCurrentData, optionsData.dateEnv);\n return { viewSpec, options: refinedOptions, dateProfileGenerator, viewApi };\n }\n processRawViewOptions(viewSpec, pluginHooks, localeDefaults, optionOverrides, dynamicOptionOverrides) {\n let raw = mergeRawOptions([\n BASE_OPTION_DEFAULTS,\n viewSpec.optionDefaults,\n localeDefaults,\n optionOverrides,\n viewSpec.optionOverrides,\n dynamicOptionOverrides,\n ]);\n let refiners = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, BASE_OPTION_REFINERS), CALENDAR_LISTENER_REFINERS), CALENDAR_OPTION_REFINERS), VIEW_OPTION_REFINERS), pluginHooks.listenerRefiners), pluginHooks.optionRefiners);\n let refined = {};\n let currentRaw = this.currentViewOptionsInput;\n let currentRefined = this.currentViewOptionsRefined;\n let anyChanges = false;\n let extra = {};\n for (let optionName in raw) {\n if (raw[optionName] === currentRaw[optionName] ||\n (COMPLEX_OPTION_COMPARATORS[optionName] &&\n COMPLEX_OPTION_COMPARATORS[optionName](raw[optionName], currentRaw[optionName]))) {\n refined[optionName] = currentRefined[optionName];\n }\n else {\n if (raw[optionName] === this.currentCalendarOptionsInput[optionName] ||\n (COMPLEX_OPTION_COMPARATORS[optionName] &&\n COMPLEX_OPTION_COMPARATORS[optionName](raw[optionName], this.currentCalendarOptionsInput[optionName]))) {\n if (optionName in this.currentCalendarOptionsRefined) { // might be an \"extra\" prop\n refined[optionName] = this.currentCalendarOptionsRefined[optionName];\n }\n }\n else if (refiners[optionName]) {\n refined[optionName] = refiners[optionName](raw[optionName]);\n }\n else {\n extra[optionName] = raw[optionName];\n }\n anyChanges = true;\n }\n }\n if (anyChanges) {\n this.currentViewOptionsInput = raw;\n this.currentViewOptionsRefined = refined;\n }\n return {\n rawOptions: this.currentViewOptionsInput,\n refinedOptions: this.currentViewOptionsRefined,\n extra,\n };\n }\n}\nfunction buildDateEnv$1(timeZone, explicitLocale, weekNumberCalculation, firstDay, weekText, pluginHooks, availableLocaleData, defaultSeparator) {\n let locale = buildLocale(explicitLocale || availableLocaleData.defaultCode, availableLocaleData.map);\n return new DateEnv({\n calendarSystem: 'gregory',\n timeZone,\n namedTimeZoneImpl: pluginHooks.namedTimeZonedImpl,\n locale,\n weekNumberCalculation,\n firstDay,\n weekText,\n cmdFormatter: pluginHooks.cmdFormatter,\n defaultSeparator,\n });\n}\nfunction buildTheme(options, pluginHooks) {\n let ThemeClass = pluginHooks.themeClasses[options.themeSystem] || StandardTheme;\n return new ThemeClass(options);\n}\nfunction buildDateProfileGenerator(props) {\n let DateProfileGeneratorClass = props.dateProfileGeneratorClass || DateProfileGenerator;\n return new DateProfileGeneratorClass(props);\n}\nfunction buildViewApi(type, getCurrentData, dateEnv) {\n return new ViewImpl(type, getCurrentData, dateEnv);\n}\nfunction buildEventUiBySource(eventSources) {\n return mapHash(eventSources, (eventSource) => eventSource.ui);\n}\nfunction buildEventUiBases(eventDefs, eventUiSingleBase, eventUiBySource) {\n let eventUiBases = { '': eventUiSingleBase };\n for (let defId in eventDefs) {\n let def = eventDefs[defId];\n if (def.sourceId && eventUiBySource[def.sourceId]) {\n eventUiBases[defId] = eventUiBySource[def.sourceId];\n }\n }\n return eventUiBases;\n}\nfunction buildViewUiProps(calendarContext) {\n let { options } = calendarContext;\n return {\n eventUiSingleBase: createEventUi({\n display: options.eventDisplay,\n editable: options.editable,\n startEditable: options.eventStartEditable,\n durationEditable: options.eventDurationEditable,\n constraint: options.eventConstraint,\n overlap: typeof options.eventOverlap === 'boolean' ? options.eventOverlap : undefined,\n allow: options.eventAllow,\n backgroundColor: options.eventBackgroundColor,\n borderColor: options.eventBorderColor,\n textColor: options.eventTextColor,\n color: options.eventColor,\n // classNames: options.eventClassNames // render hook will handle this\n }, calendarContext),\n selectionConfig: createEventUi({\n constraint: options.selectConstraint,\n overlap: typeof options.selectOverlap === 'boolean' ? options.selectOverlap : undefined,\n allow: options.selectAllow,\n }, calendarContext),\n };\n}\nfunction computeIsLoading(state, context) {\n for (let isLoadingFunc of context.pluginHooks.isLoadingFuncs) {\n if (isLoadingFunc(state)) {\n return true;\n }\n }\n return false;\n}\nfunction parseContextBusinessHours(calendarContext) {\n return parseBusinessHours(calendarContext.options.businessHours, calendarContext);\n}\nfunction warnUnknownOptions(options, viewName) {\n for (let optionName in options) {\n console.warn(`Unknown option '${optionName}'` +\n (viewName ? ` for view '${viewName}'` : ''));\n }\n}\n\nclass ToolbarSection extends BaseComponent {\n render() {\n let children = this.props.widgetGroups.map((widgetGroup) => this.renderWidgetGroup(widgetGroup));\n return createElement('div', { className: 'fc-toolbar-chunk' }, ...children);\n }\n renderWidgetGroup(widgetGroup) {\n let { props } = this;\n let { theme } = this.context;\n let children = [];\n let isOnlyButtons = true;\n for (let widget of widgetGroup) {\n let { buttonName, buttonClick, buttonText, buttonIcon, buttonHint } = widget;\n if (buttonName === 'title') {\n isOnlyButtons = false;\n children.push(createElement(\"h2\", { className: \"fc-toolbar-title\", id: props.titleId }, props.title));\n }\n else {\n let isPressed = buttonName === props.activeButton;\n let isDisabled = (!props.isTodayEnabled && buttonName === 'today') ||\n (!props.isPrevEnabled && buttonName === 'prev') ||\n (!props.isNextEnabled && buttonName === 'next');\n let buttonClasses = [`fc-${buttonName}-button`, theme.getClass('button')];\n if (isPressed) {\n buttonClasses.push(theme.getClass('buttonActive'));\n }\n children.push(createElement(\"button\", { type: \"button\", title: typeof buttonHint === 'function' ? buttonHint(props.navUnit) : buttonHint, disabled: isDisabled, \"aria-pressed\": isPressed, className: buttonClasses.join(' '), onClick: buttonClick }, buttonText || (buttonIcon ? createElement(\"span\", { className: buttonIcon, role: \"img\" }) : '')));\n }\n }\n if (children.length > 1) {\n let groupClassName = (isOnlyButtons && theme.getClass('buttonGroup')) || '';\n return createElement('div', { className: groupClassName }, ...children);\n }\n return children[0];\n }\n}\n\nclass Toolbar extends BaseComponent {\n render() {\n let { model, extraClassName } = this.props;\n let forceLtr = false;\n let startContent;\n let endContent;\n let sectionWidgets = model.sectionWidgets;\n let centerContent = sectionWidgets.center;\n if (sectionWidgets.left) {\n forceLtr = true;\n startContent = sectionWidgets.left;\n }\n else {\n startContent = sectionWidgets.start;\n }\n if (sectionWidgets.right) {\n forceLtr = true;\n endContent = sectionWidgets.right;\n }\n else {\n endContent = sectionWidgets.end;\n }\n let classNames = [\n extraClassName || '',\n 'fc-toolbar',\n forceLtr ? 'fc-toolbar-ltr' : '',\n ];\n return (createElement(\"div\", { className: classNames.join(' ') },\n this.renderSection('start', startContent || []),\n this.renderSection('center', centerContent || []),\n this.renderSection('end', endContent || [])));\n }\n renderSection(key, widgetGroups) {\n let { props } = this;\n return (createElement(ToolbarSection, { key: key, widgetGroups: widgetGroups, title: props.title, navUnit: props.navUnit, activeButton: props.activeButton, isTodayEnabled: props.isTodayEnabled, isPrevEnabled: props.isPrevEnabled, isNextEnabled: props.isNextEnabled, titleId: props.titleId }));\n }\n}\n\nclass ViewHarness extends BaseComponent {\n constructor() {\n super(...arguments);\n this.state = {\n availableWidth: null,\n };\n this.handleEl = (el) => {\n this.el = el;\n setRef(this.props.elRef, el);\n this.updateAvailableWidth();\n };\n this.handleResize = () => {\n this.updateAvailableWidth();\n };\n }\n render() {\n let { props, state } = this;\n let { aspectRatio } = props;\n let classNames = [\n 'fc-view-harness',\n (aspectRatio || props.liquid || props.height)\n ? 'fc-view-harness-active' // harness controls the height\n : 'fc-view-harness-passive', // let the view do the height\n ];\n let height = '';\n let paddingBottom = '';\n if (aspectRatio) {\n if (state.availableWidth !== null) {\n height = state.availableWidth / aspectRatio;\n }\n else {\n // while waiting to know availableWidth, we can't set height to *zero*\n // because will cause lots of unnecessary scrollbars within scrollgrid.\n // BETTER: don't start rendering ANYTHING yet until we know container width\n // NOTE: why not always use paddingBottom? Causes height oscillation (issue 5606)\n paddingBottom = `${(1 / aspectRatio) * 100}%`;\n }\n }\n else {\n height = props.height || '';\n }\n return (createElement(\"div\", { \"aria-labelledby\": props.labeledById, ref: this.handleEl, className: classNames.join(' '), style: { height, paddingBottom } }, props.children));\n }\n componentDidMount() {\n this.context.addResizeHandler(this.handleResize);\n }\n componentWillUnmount() {\n this.context.removeResizeHandler(this.handleResize);\n }\n updateAvailableWidth() {\n if (this.el && // needed. but why?\n this.props.aspectRatio // aspectRatio is the only height setting that needs availableWidth\n ) {\n this.setState({ availableWidth: this.el.offsetWidth });\n }\n }\n}\n\n/*\nDetects when the user clicks on an event within a DateComponent\n*/\nclass EventClicking extends Interaction {\n constructor(settings) {\n super(settings);\n this.handleSegClick = (ev, segEl) => {\n let { component } = this;\n let { context } = component;\n let seg = getElSeg(segEl);\n if (seg && // might be the <div> surrounding the more link\n component.isValidSegDownEl(ev.target)) {\n // our way to simulate a link click for elements that can't be <a> tags\n // grab before trigger fired in case trigger trashes DOM thru rerendering\n let hasUrlContainer = elementClosest(ev.target, '.fc-event-forced-url');\n let url = hasUrlContainer ? hasUrlContainer.querySelector('a[href]').href : '';\n context.emitter.trigger('eventClick', {\n el: segEl,\n event: new EventImpl(component.context, seg.eventRange.def, seg.eventRange.instance),\n jsEvent: ev,\n view: context.viewApi,\n });\n if (url && !ev.defaultPrevented) {\n window.location.href = url;\n }\n }\n };\n this.destroy = listenBySelector(settings.el, 'click', '.fc-event', // on both fg and bg events\n this.handleSegClick);\n }\n}\n\n/*\nTriggers events and adds/removes core classNames when the user's pointer\nenters/leaves event-elements of a component.\n*/\nclass EventHovering extends Interaction {\n constructor(settings) {\n super(settings);\n // for simulating an eventMouseLeave when the event el is destroyed while mouse is over it\n this.handleEventElRemove = (el) => {\n if (el === this.currentSegEl) {\n this.handleSegLeave(null, this.currentSegEl);\n }\n };\n this.handleSegEnter = (ev, segEl) => {\n if (getElSeg(segEl)) { // TODO: better way to make sure not hovering over more+ link or its wrapper\n this.currentSegEl = segEl;\n this.triggerEvent('eventMouseEnter', ev, segEl);\n }\n };\n this.handleSegLeave = (ev, segEl) => {\n if (this.currentSegEl) {\n this.currentSegEl = null;\n this.triggerEvent('eventMouseLeave', ev, segEl);\n }\n };\n this.removeHoverListeners = listenToHoverBySelector(settings.el, '.fc-event', // on both fg and bg events\n this.handleSegEnter, this.handleSegLeave);\n }\n destroy() {\n this.removeHoverListeners();\n }\n triggerEvent(publicEvName, ev, segEl) {\n let { component } = this;\n let { context } = component;\n let seg = getElSeg(segEl);\n if (!ev || component.isValidSegDownEl(ev.target)) {\n context.emitter.trigger(publicEvName, {\n el: segEl,\n event: new EventImpl(context, seg.eventRange.def, seg.eventRange.instance),\n jsEvent: ev,\n view: context.viewApi,\n });\n }\n }\n}\n\nclass CalendarContent extends PureComponent {\n constructor() {\n super(...arguments);\n this.buildViewContext = memoize(buildViewContext);\n this.buildViewPropTransformers = memoize(buildViewPropTransformers);\n this.buildToolbarProps = memoize(buildToolbarProps);\n this.headerRef = createRef();\n this.footerRef = createRef();\n this.interactionsStore = {};\n // eslint-disable-next-line\n this.state = {\n viewLabelId: getUniqueDomId(),\n };\n // Component Registration\n // -----------------------------------------------------------------------------------------------------------------\n this.registerInteractiveComponent = (component, settingsInput) => {\n let settings = parseInteractionSettings(component, settingsInput);\n let DEFAULT_INTERACTIONS = [\n EventClicking,\n EventHovering,\n ];\n let interactionClasses = DEFAULT_INTERACTIONS.concat(this.props.pluginHooks.componentInteractions);\n let interactions = interactionClasses.map((TheInteractionClass) => new TheInteractionClass(settings));\n this.interactionsStore[component.uid] = interactions;\n interactionSettingsStore[component.uid] = settings;\n };\n this.unregisterInteractiveComponent = (component) => {\n let listeners = this.interactionsStore[component.uid];\n if (listeners) {\n for (let listener of listeners) {\n listener.destroy();\n }\n delete this.interactionsStore[component.uid];\n }\n delete interactionSettingsStore[component.uid];\n };\n // Resizing\n // -----------------------------------------------------------------------------------------------------------------\n this.resizeRunner = new DelayedRunner(() => {\n this.props.emitter.trigger('_resize', true); // should window resizes be considered \"forced\" ?\n this.props.emitter.trigger('windowResize', { view: this.props.viewApi });\n });\n this.handleWindowResize = (ev) => {\n let { options } = this.props;\n if (options.handleWindowResize &&\n ev.target === window // avoid jqui events\n ) {\n this.resizeRunner.request(options.windowResizeDelay);\n }\n };\n }\n /*\n renders INSIDE of an outer div\n */\n render() {\n let { props } = this;\n let { toolbarConfig, options } = props;\n let toolbarProps = this.buildToolbarProps(props.viewSpec, props.dateProfile, props.dateProfileGenerator, props.currentDate, getNow(props.options.now, props.dateEnv), // TODO: use NowTimer????\n props.viewTitle);\n let viewVGrow = false;\n let viewHeight = '';\n let viewAspectRatio;\n if (props.isHeightAuto || props.forPrint) {\n viewHeight = '';\n }\n else if (options.height != null) {\n viewVGrow = true;\n }\n else if (options.contentHeight != null) {\n viewHeight = options.contentHeight;\n }\n else {\n viewAspectRatio = Math.max(options.aspectRatio, 0.5); // prevent from getting too tall\n }\n let viewContext = this.buildViewContext(props.viewSpec, props.viewApi, props.options, props.dateProfileGenerator, props.dateEnv, props.theme, props.pluginHooks, props.dispatch, props.getCurrentData, props.emitter, props.calendarApi, this.registerInteractiveComponent, this.unregisterInteractiveComponent);\n let viewLabelId = (toolbarConfig.header && toolbarConfig.header.hasTitle)\n ? this.state.viewLabelId\n : undefined;\n return (createElement(ViewContextType.Provider, { value: viewContext },\n toolbarConfig.header && (createElement(Toolbar, Object.assign({ ref: this.headerRef, extraClassName: \"fc-header-toolbar\", model: toolbarConfig.header, titleId: viewLabelId }, toolbarProps))),\n createElement(ViewHarness, { liquid: viewVGrow, height: viewHeight, aspectRatio: viewAspectRatio, labeledById: viewLabelId },\n this.renderView(props),\n this.buildAppendContent()),\n toolbarConfig.footer && (createElement(Toolbar, Object.assign({ ref: this.footerRef, extraClassName: \"fc-footer-toolbar\", model: toolbarConfig.footer, titleId: \"\" }, toolbarProps)))));\n }\n componentDidMount() {\n let { props } = this;\n this.calendarInteractions = props.pluginHooks.calendarInteractions\n .map((CalendarInteractionClass) => new CalendarInteractionClass(props));\n window.addEventListener('resize', this.handleWindowResize);\n let { propSetHandlers } = props.pluginHooks;\n for (let propName in propSetHandlers) {\n propSetHandlers[propName](props[propName], props);\n }\n }\n componentDidUpdate(prevProps) {\n let { props } = this;\n let { propSetHandlers } = props.pluginHooks;\n for (let propName in propSetHandlers) {\n if (props[propName] !== prevProps[propName]) {\n propSetHandlers[propName](props[propName], props);\n }\n }\n }\n componentWillUnmount() {\n window.removeEventListener('resize', this.handleWindowResize);\n this.resizeRunner.clear();\n for (let interaction of this.calendarInteractions) {\n interaction.destroy();\n }\n this.props.emitter.trigger('_unmount');\n }\n buildAppendContent() {\n let { props } = this;\n let children = props.pluginHooks.viewContainerAppends.map((buildAppendContent) => buildAppendContent(props));\n return createElement(Fragment, {}, ...children);\n }\n renderView(props) {\n let { pluginHooks } = props;\n let { viewSpec } = props;\n let viewProps = {\n dateProfile: props.dateProfile,\n businessHours: props.businessHours,\n eventStore: props.renderableEventStore,\n eventUiBases: props.eventUiBases,\n dateSelection: props.dateSelection,\n eventSelection: props.eventSelection,\n eventDrag: props.eventDrag,\n eventResize: props.eventResize,\n isHeightAuto: props.isHeightAuto,\n forPrint: props.forPrint,\n };\n let transformers = this.buildViewPropTransformers(pluginHooks.viewPropsTransformers);\n for (let transformer of transformers) {\n Object.assign(viewProps, transformer.transform(viewProps, props));\n }\n let ViewComponent = viewSpec.component;\n return (createElement(ViewComponent, Object.assign({}, viewProps)));\n }\n}\nfunction buildToolbarProps(viewSpec, dateProfile, dateProfileGenerator, currentDate, now, title) {\n // don't force any date-profiles to valid date profiles (the `false`) so that we can tell if it's invalid\n let todayInfo = dateProfileGenerator.build(now, undefined, false); // TODO: need `undefined` or else INFINITE LOOP for some reason\n let prevInfo = dateProfileGenerator.buildPrev(dateProfile, currentDate, false);\n let nextInfo = dateProfileGenerator.buildNext(dateProfile, currentDate, false);\n return {\n title,\n activeButton: viewSpec.type,\n navUnit: viewSpec.singleUnit,\n isTodayEnabled: todayInfo.isValid && !rangeContainsMarker(dateProfile.currentRange, now),\n isPrevEnabled: prevInfo.isValid,\n isNextEnabled: nextInfo.isValid,\n };\n}\n// Plugin\n// -----------------------------------------------------------------------------------------------------------------\nfunction buildViewPropTransformers(theClasses) {\n return theClasses.map((TheClass) => new TheClass());\n}\n\nclass Calendar extends CalendarImpl {\n constructor(el, optionOverrides = {}) {\n super();\n this.isRendering = false;\n this.isRendered = false;\n this.currentClassNames = [];\n this.customContentRenderId = 0;\n this.handleAction = (action) => {\n // actions we know we want to render immediately\n switch (action.type) {\n case 'SET_EVENT_DRAG':\n case 'SET_EVENT_RESIZE':\n this.renderRunner.tryDrain();\n }\n };\n this.handleData = (data) => {\n this.currentData = data;\n this.renderRunner.request(data.calendarOptions.rerenderDelay);\n };\n this.handleRenderRequest = () => {\n if (this.isRendering) {\n this.isRendered = true;\n let { currentData } = this;\n flushSync(() => {\n render(createElement(CalendarRoot, { options: currentData.calendarOptions, theme: currentData.theme, emitter: currentData.emitter }, (classNames, height, isHeightAuto, forPrint) => {\n this.setClassNames(classNames);\n this.setHeight(height);\n return (createElement(RenderId.Provider, { value: this.customContentRenderId },\n createElement(CalendarContent, Object.assign({ isHeightAuto: isHeightAuto, forPrint: forPrint }, currentData))));\n }), this.el);\n });\n }\n else if (this.isRendered) {\n this.isRendered = false;\n render(null, this.el);\n this.setClassNames([]);\n this.setHeight('');\n }\n };\n ensureElHasStyles(el);\n this.el = el;\n this.renderRunner = new DelayedRunner(this.handleRenderRequest);\n new CalendarDataManager({\n optionOverrides,\n calendarApi: this,\n onAction: this.handleAction,\n onData: this.handleData,\n });\n }\n render() {\n let wasRendering = this.isRendering;\n if (!wasRendering) {\n this.isRendering = true;\n }\n else {\n this.customContentRenderId += 1;\n }\n this.renderRunner.request();\n if (wasRendering) {\n this.updateSize();\n }\n }\n destroy() {\n if (this.isRendering) {\n this.isRendering = false;\n this.renderRunner.request();\n }\n }\n updateSize() {\n flushSync(() => {\n super.updateSize();\n });\n }\n batchRendering(func) {\n this.renderRunner.pause('batchRendering');\n func();\n this.renderRunner.resume('batchRendering');\n }\n pauseRendering() {\n this.renderRunner.pause('pauseRendering');\n }\n resumeRendering() {\n this.renderRunner.resume('pauseRendering', true);\n }\n resetOptions(optionOverrides, changedOptionNames) {\n this.currentDataManager.resetOptions(optionOverrides, changedOptionNames);\n }\n setClassNames(classNames) {\n if (!isArraysEqual(classNames, this.currentClassNames)) {\n let { classList } = this.el;\n for (let className of this.currentClassNames) {\n classList.remove(className);\n }\n for (let className of classNames) {\n classList.add(className);\n }\n this.currentClassNames = classNames;\n }\n }\n setHeight(height) {\n applyStyleProp(this.el, 'height', height);\n }\n}\n\nfunction formatDate(dateInput, options = {}) {\n let dateEnv = buildDateEnv(options);\n let formatter = createFormatter(options);\n let dateMeta = dateEnv.createMarkerMeta(dateInput);\n if (!dateMeta) { // TODO: warning?\n return '';\n }\n return dateEnv.format(dateMeta.marker, formatter, {\n forcedTzo: dateMeta.forcedTzo,\n });\n}\nfunction formatRange(startInput, endInput, options) {\n let dateEnv = buildDateEnv(typeof options === 'object' && options ? options : {}); // pass in if non-null object\n let formatter = createFormatter(options);\n let startMeta = dateEnv.createMarkerMeta(startInput);\n let endMeta = dateEnv.createMarkerMeta(endInput);\n if (!startMeta || !endMeta) { // TODO: warning?\n return '';\n }\n return dateEnv.formatRange(startMeta.marker, endMeta.marker, formatter, {\n forcedStartTzo: startMeta.forcedTzo,\n forcedEndTzo: endMeta.forcedTzo,\n isEndExclusive: options.isEndExclusive,\n defaultSeparator: BASE_OPTION_DEFAULTS.defaultRangeSeparator,\n });\n}\n// TODO: more DRY and optimized\nfunction buildDateEnv(settings) {\n let locale = buildLocale(settings.locale || 'en', organizeRawLocales([]).map); // TODO: don't hardcode 'en' everywhere\n return new DateEnv(Object.assign(Object.assign({ timeZone: BASE_OPTION_DEFAULTS.timeZone, calendarSystem: 'gregory' }, settings), { locale }));\n}\n\n// HELPERS\n/*\nif nextDayThreshold is specified, slicing is done in an all-day fashion.\nyou can get nextDayThreshold from context.nextDayThreshold\n*/\nfunction sliceEvents(props, allDay) {\n return sliceEventStore(props.eventStore, props.eventUiBases, props.dateProfile.activeRange, allDay ? props.nextDayThreshold : null).fg;\n}\n\nconst version = '6.1.15';\n\nexport { Calendar, createPlugin, formatDate, formatRange, globalLocales, globalPlugins, sliceEvents, version };\n","import * as preact from 'preact';\nimport { Component, createElement, isValidElement, Fragment } from 'preact';\nimport { createPortal } from 'preact/compat';\n\nconst styleTexts = [];\nconst styleEls = new Map();\nfunction injectStyles(styleText) {\n styleTexts.push(styleText);\n styleEls.forEach((styleEl) => {\n appendStylesTo(styleEl, styleText);\n });\n}\nfunction ensureElHasStyles(el) {\n if (el.isConnected && // sometimes true if SSR system simulates DOM\n el.getRootNode // sometimes undefined if SSR system simulates DOM\n ) {\n registerStylesRoot(el.getRootNode());\n }\n}\nfunction registerStylesRoot(rootNode) {\n let styleEl = styleEls.get(rootNode);\n if (!styleEl || !styleEl.isConnected) {\n styleEl = rootNode.querySelector('style[data-fullcalendar]');\n if (!styleEl) {\n styleEl = document.createElement('style');\n styleEl.setAttribute('data-fullcalendar', '');\n const nonce = getNonceValue();\n if (nonce) {\n styleEl.nonce = nonce;\n }\n const parentEl = rootNode === document ? document.head : rootNode;\n const insertBefore = rootNode === document\n ? parentEl.querySelector('script,link[rel=stylesheet],link[as=style],style')\n : parentEl.firstChild;\n parentEl.insertBefore(styleEl, insertBefore);\n }\n styleEls.set(rootNode, styleEl);\n hydrateStylesRoot(styleEl);\n }\n}\nfunction hydrateStylesRoot(styleEl) {\n for (const styleText of styleTexts) {\n appendStylesTo(styleEl, styleText);\n }\n}\nfunction appendStylesTo(styleEl, styleText) {\n const { sheet } = styleEl;\n const ruleCnt = sheet.cssRules.length;\n styleText.split('}').forEach((styleStr, i) => {\n styleStr = styleStr.trim();\n if (styleStr) {\n sheet.insertRule(styleStr + '}', ruleCnt + i);\n }\n });\n}\n// nonce\n// -------------------------------------------------------------------------------------------------\nlet queriedNonceValue;\nfunction getNonceValue() {\n if (queriedNonceValue === undefined) {\n queriedNonceValue = queryNonceValue();\n }\n return queriedNonceValue;\n}\n/*\nTODO: discourage meta tag and instead put nonce attribute on placeholder <style> tag\n*/\nfunction queryNonceValue() {\n const metaWithNonce = document.querySelector('meta[name=\"csp-nonce\"]');\n if (metaWithNonce && metaWithNonce.hasAttribute('content')) {\n return metaWithNonce.getAttribute('content');\n }\n const elWithNonce = document.querySelector('script[nonce]');\n if (elWithNonce) {\n return elWithNonce.nonce || '';\n }\n return '';\n}\n// main\n// -------------------------------------------------------------------------------------------------\nif (typeof document !== 'undefined') {\n registerStylesRoot(document);\n}\n\nvar css_248z = \":root{--fc-small-font-size:.85em;--fc-page-bg-color:#fff;--fc-neutral-bg-color:hsla(0,0%,82%,.3);--fc-neutral-text-color:grey;--fc-border-color:#ddd;--fc-button-text-color:#fff;--fc-button-bg-color:#2c3e50;--fc-button-border-color:#2c3e50;--fc-button-hover-bg-color:#1e2b37;--fc-button-hover-border-color:#1a252f;--fc-button-active-bg-color:#1a252f;--fc-button-active-border-color:#151e27;--fc-event-bg-color:#3788d8;--fc-event-border-color:#3788d8;--fc-event-text-color:#fff;--fc-event-selected-overlay-color:rgba(0,0,0,.25);--fc-more-link-bg-color:#d0d0d0;--fc-more-link-text-color:inherit;--fc-event-resizer-thickness:8px;--fc-event-resizer-dot-total-width:8px;--fc-event-resizer-dot-border-width:1px;--fc-non-business-color:hsla(0,0%,84%,.3);--fc-bg-event-color:#8fdf82;--fc-bg-event-opacity:0.3;--fc-highlight-color:rgba(188,232,241,.3);--fc-today-bg-color:rgba(255,220,40,.15);--fc-now-indicator-color:red}.fc-not-allowed,.fc-not-allowed .fc-event{cursor:not-allowed}.fc{display:flex;flex-direction:column;font-size:1em}.fc,.fc *,.fc :after,.fc :before{box-sizing:border-box}.fc table{border-collapse:collapse;border-spacing:0;font-size:1em}.fc th{text-align:center}.fc td,.fc th{padding:0;vertical-align:top}.fc a[data-navlink]{cursor:pointer}.fc a[data-navlink]:hover{text-decoration:underline}.fc-direction-ltr{direction:ltr;text-align:left}.fc-direction-rtl{direction:rtl;text-align:right}.fc-theme-standard td,.fc-theme-standard th{border:1px solid var(--fc-border-color)}.fc-liquid-hack td,.fc-liquid-hack th{position:relative}@font-face{font-family:fcicons;font-style:normal;font-weight:400;src:url(\\\"data:application/x-font-ttf;charset=utf-8;base64,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\\\") format(\\\"truetype\\\")}.fc-icon{speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;font-family:fcicons!important;font-style:normal;font-variant:normal;font-weight:400;height:1em;line-height:1;text-align:center;text-transform:none;-moz-user-select:none;user-select:none;width:1em}.fc-icon-chevron-left:before{content:\\\"\\\\e900\\\"}.fc-icon-chevron-right:before{content:\\\"\\\\e901\\\"}.fc-icon-chevrons-left:before{content:\\\"\\\\e902\\\"}.fc-icon-chevrons-right:before{content:\\\"\\\\e903\\\"}.fc-icon-minus-square:before{content:\\\"\\\\e904\\\"}.fc-icon-plus-square:before{content:\\\"\\\\e905\\\"}.fc-icon-x:before{content:\\\"\\\\e906\\\"}.fc .fc-button{border-radius:0;font-family:inherit;font-size:inherit;line-height:inherit;margin:0;overflow:visible;text-transform:none}.fc .fc-button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}.fc .fc-button{-webkit-appearance:button}.fc .fc-button:not(:disabled){cursor:pointer}.fc .fc-button{background-color:transparent;border:1px solid transparent;border-radius:.25em;display:inline-block;font-size:1em;font-weight:400;line-height:1.5;padding:.4em .65em;text-align:center;-moz-user-select:none;user-select:none;vertical-align:middle}.fc .fc-button:hover{text-decoration:none}.fc .fc-button:focus{box-shadow:0 0 0 .2rem rgba(44,62,80,.25);outline:0}.fc .fc-button:disabled{opacity:.65}.fc .fc-button-primary{background-color:var(--fc-button-bg-color);border-color:var(--fc-button-border-color);color:var(--fc-button-text-color)}.fc .fc-button-primary:hover{background-color:var(--fc-button-hover-bg-color);border-color:var(--fc-button-hover-border-color);color:var(--fc-button-text-color)}.fc .fc-button-primary:disabled{background-color:var(--fc-button-bg-color);border-color:var(--fc-button-border-color);color:var(--fc-button-text-color)}.fc .fc-button-primary:focus{box-shadow:0 0 0 .2rem rgba(76,91,106,.5)}.fc .fc-button-primary:not(:disabled).fc-button-active,.fc .fc-button-primary:not(:disabled):active{background-color:var(--fc-button-active-bg-color);border-color:var(--fc-button-active-border-color);color:var(--fc-button-text-color)}.fc .fc-button-primary:not(:disabled).fc-button-active:focus,.fc .fc-button-primary:not(:disabled):active:focus{box-shadow:0 0 0 .2rem rgba(76,91,106,.5)}.fc .fc-button .fc-icon{font-size:1.5em;vertical-align:middle}.fc .fc-button-group{display:inline-flex;position:relative;vertical-align:middle}.fc .fc-button-group>.fc-button{flex:1 1 auto;position:relative}.fc .fc-button-group>.fc-button.fc-button-active,.fc .fc-button-group>.fc-button:active,.fc .fc-button-group>.fc-button:focus,.fc .fc-button-group>.fc-button:hover{z-index:1}.fc-direction-ltr .fc-button-group>.fc-button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0;margin-left:-1px}.fc-direction-ltr .fc-button-group>.fc-button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.fc-direction-rtl .fc-button-group>.fc-button:not(:first-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}.fc-direction-rtl .fc-button-group>.fc-button:not(:last-child){border-bottom-left-radius:0;border-top-left-radius:0}.fc .fc-toolbar{align-items:center;display:flex;justify-content:space-between}.fc .fc-toolbar.fc-header-toolbar{margin-bottom:1.5em}.fc .fc-toolbar.fc-footer-toolbar{margin-top:1.5em}.fc .fc-toolbar-title{font-size:1.75em;margin:0}.fc-direction-ltr .fc-toolbar>*>:not(:first-child){margin-left:.75em}.fc-direction-rtl .fc-toolbar>*>:not(:first-child){margin-right:.75em}.fc-direction-rtl .fc-toolbar-ltr{flex-direction:row-reverse}.fc .fc-scroller{-webkit-overflow-scrolling:touch;position:relative}.fc .fc-scroller-liquid{height:100%}.fc .fc-scroller-liquid-absolute{bottom:0;left:0;position:absolute;right:0;top:0}.fc .fc-scroller-harness{direction:ltr;overflow:hidden;position:relative}.fc .fc-scroller-harness-liquid{height:100%}.fc-direction-rtl .fc-scroller-harness>.fc-scroller{direction:rtl}.fc-theme-standard .fc-scrollgrid{border:1px solid var(--fc-border-color)}.fc .fc-scrollgrid,.fc .fc-scrollgrid table{table-layout:fixed;width:100%}.fc .fc-scrollgrid table{border-left-style:hidden;border-right-style:hidden;border-top-style:hidden}.fc .fc-scrollgrid{border-bottom-width:0;border-collapse:separate;border-right-width:0}.fc .fc-scrollgrid-liquid{height:100%}.fc .fc-scrollgrid-section,.fc .fc-scrollgrid-section table,.fc .fc-scrollgrid-section>td{height:1px}.fc .fc-scrollgrid-section-liquid>td{height:100%}.fc .fc-scrollgrid-section>*{border-left-width:0;border-top-width:0}.fc .fc-scrollgrid-section-footer>*,.fc .fc-scrollgrid-section-header>*{border-bottom-width:0}.fc .fc-scrollgrid-section-body table,.fc .fc-scrollgrid-section-footer table{border-bottom-style:hidden}.fc .fc-scrollgrid-section-sticky>*{background:var(--fc-page-bg-color);position:sticky;z-index:3}.fc .fc-scrollgrid-section-header.fc-scrollgrid-section-sticky>*{top:0}.fc .fc-scrollgrid-section-footer.fc-scrollgrid-section-sticky>*{bottom:0}.fc .fc-scrollgrid-sticky-shim{height:1px;margin-bottom:-1px}.fc-sticky{position:sticky}.fc .fc-view-harness{flex-grow:1;position:relative}.fc .fc-view-harness-active>.fc-view{bottom:0;left:0;position:absolute;right:0;top:0}.fc .fc-col-header-cell-cushion{display:inline-block;padding:2px 4px}.fc .fc-bg-event,.fc .fc-highlight,.fc .fc-non-business{bottom:0;left:0;position:absolute;right:0;top:0}.fc .fc-non-business{background:var(--fc-non-business-color)}.fc .fc-bg-event{background:var(--fc-bg-event-color);opacity:var(--fc-bg-event-opacity)}.fc .fc-bg-event .fc-event-title{font-size:var(--fc-small-font-size);font-style:italic;margin:.5em}.fc .fc-highlight{background:var(--fc-highlight-color)}.fc .fc-cell-shaded,.fc .fc-day-disabled{background:var(--fc-neutral-bg-color)}a.fc-event,a.fc-event:hover{text-decoration:none}.fc-event.fc-event-draggable,.fc-event[href]{cursor:pointer}.fc-event .fc-event-main{position:relative;z-index:2}.fc-event-dragging:not(.fc-event-selected){opacity:.75}.fc-event-dragging.fc-event-selected{box-shadow:0 2px 7px rgba(0,0,0,.3)}.fc-event .fc-event-resizer{display:none;position:absolute;z-index:4}.fc-event-selected .fc-event-resizer,.fc-event:hover .fc-event-resizer{display:block}.fc-event-selected .fc-event-resizer{background:var(--fc-page-bg-color);border-color:inherit;border-radius:calc(var(--fc-event-resizer-dot-total-width)/2);border-style:solid;border-width:var(--fc-event-resizer-dot-border-width);height:var(--fc-event-resizer-dot-total-width);width:var(--fc-event-resizer-dot-total-width)}.fc-event-selected .fc-event-resizer:before{bottom:-20px;content:\\\"\\\";left:-20px;position:absolute;right:-20px;top:-20px}.fc-event-selected,.fc-event:focus{box-shadow:0 2px 5px rgba(0,0,0,.2)}.fc-event-selected:before,.fc-event:focus:before{bottom:0;content:\\\"\\\";left:0;position:absolute;right:0;top:0;z-index:3}.fc-event-selected:after,.fc-event:focus:after{background:var(--fc-event-selected-overlay-color);bottom:-1px;content:\\\"\\\";left:-1px;position:absolute;right:-1px;top:-1px;z-index:1}.fc-h-event{background-color:var(--fc-event-bg-color);border:1px solid var(--fc-event-border-color);display:block}.fc-h-event .fc-event-main{color:var(--fc-event-text-color)}.fc-h-event .fc-event-main-frame{display:flex}.fc-h-event .fc-event-time{max-width:100%;overflow:hidden}.fc-h-event .fc-event-title-container{flex-grow:1;flex-shrink:1;min-width:0}.fc-h-event .fc-event-title{display:inline-block;left:0;max-width:100%;overflow:hidden;right:0;vertical-align:top}.fc-h-event.fc-event-selected:before{bottom:-10px;top:-10px}.fc-direction-ltr .fc-daygrid-block-event:not(.fc-event-start),.fc-direction-rtl .fc-daygrid-block-event:not(.fc-event-end){border-bottom-left-radius:0;border-left-width:0;border-top-left-radius:0}.fc-direction-ltr .fc-daygrid-block-event:not(.fc-event-end),.fc-direction-rtl .fc-daygrid-block-event:not(.fc-event-start){border-bottom-right-radius:0;border-right-width:0;border-top-right-radius:0}.fc-h-event:not(.fc-event-selected) .fc-event-resizer{bottom:0;top:0;width:var(--fc-event-resizer-thickness)}.fc-direction-ltr .fc-h-event:not(.fc-event-selected) .fc-event-resizer-start,.fc-direction-rtl .fc-h-event:not(.fc-event-selected) .fc-event-resizer-end{cursor:w-resize;left:calc(var(--fc-event-resizer-thickness)*-.5)}.fc-direction-ltr .fc-h-event:not(.fc-event-selected) .fc-event-resizer-end,.fc-direction-rtl .fc-h-event:not(.fc-event-selected) .fc-event-resizer-start{cursor:e-resize;right:calc(var(--fc-event-resizer-thickness)*-.5)}.fc-h-event.fc-event-selected .fc-event-resizer{margin-top:calc(var(--fc-event-resizer-dot-total-width)*-.5);top:50%}.fc-direction-ltr .fc-h-event.fc-event-selected .fc-event-resizer-start,.fc-direction-rtl .fc-h-event.fc-event-selected .fc-event-resizer-end{left:calc(var(--fc-event-resizer-dot-total-width)*-.5)}.fc-direction-ltr .fc-h-event.fc-event-selected .fc-event-resizer-end,.fc-direction-rtl .fc-h-event.fc-event-selected .fc-event-resizer-start{right:calc(var(--fc-event-resizer-dot-total-width)*-.5)}.fc .fc-popover{box-shadow:0 2px 6px rgba(0,0,0,.15);position:absolute;z-index:9999}.fc .fc-popover-header{align-items:center;display:flex;flex-direction:row;justify-content:space-between;padding:3px 4px}.fc .fc-popover-title{margin:0 2px}.fc .fc-popover-close{cursor:pointer;font-size:1.1em;opacity:.65}.fc-theme-standard .fc-popover{background:var(--fc-page-bg-color);border:1px solid var(--fc-border-color)}.fc-theme-standard .fc-popover-header{background:var(--fc-neutral-bg-color)}\";\ninjectStyles(css_248z);\n\nclass DelayedRunner {\n constructor(drainedOption) {\n this.drainedOption = drainedOption;\n this.isRunning = false;\n this.isDirty = false;\n this.pauseDepths = {};\n this.timeoutId = 0;\n }\n request(delay) {\n this.isDirty = true;\n if (!this.isPaused()) {\n this.clearTimeout();\n if (delay == null) {\n this.tryDrain();\n }\n else {\n this.timeoutId = setTimeout(// NOT OPTIMAL! TODO: look at debounce\n this.tryDrain.bind(this), delay);\n }\n }\n }\n pause(scope = '') {\n let { pauseDepths } = this;\n pauseDepths[scope] = (pauseDepths[scope] || 0) + 1;\n this.clearTimeout();\n }\n resume(scope = '', force) {\n let { pauseDepths } = this;\n if (scope in pauseDepths) {\n if (force) {\n delete pauseDepths[scope];\n }\n else {\n pauseDepths[scope] -= 1;\n let depth = pauseDepths[scope];\n if (depth <= 0) {\n delete pauseDepths[scope];\n }\n }\n this.tryDrain();\n }\n }\n isPaused() {\n return Object.keys(this.pauseDepths).length;\n }\n tryDrain() {\n if (!this.isRunning && !this.isPaused()) {\n this.isRunning = true;\n while (this.isDirty) {\n this.isDirty = false;\n this.drained(); // might set isDirty to true again\n }\n this.isRunning = false;\n }\n }\n clear() {\n this.clearTimeout();\n this.isDirty = false;\n this.pauseDepths = {};\n }\n clearTimeout() {\n if (this.timeoutId) {\n clearTimeout(this.timeoutId);\n this.timeoutId = 0;\n }\n }\n drained() {\n if (this.drainedOption) {\n this.drainedOption();\n }\n }\n}\n\nfunction removeElement(el) {\n if (el.parentNode) {\n el.parentNode.removeChild(el);\n }\n}\n// Querying\n// ----------------------------------------------------------------------------------------------------------------\nfunction elementClosest(el, selector) {\n if (el.closest) {\n return el.closest(selector);\n // really bad fallback for IE\n // from https://developer.mozilla.org/en-US/docs/Web/API/Element/closest\n }\n if (!document.documentElement.contains(el)) {\n return null;\n }\n do {\n if (elementMatches(el, selector)) {\n return el;\n }\n el = (el.parentElement || el.parentNode);\n } while (el !== null && el.nodeType === 1);\n return null;\n}\nfunction elementMatches(el, selector) {\n let method = el.matches || el.matchesSelector || el.msMatchesSelector;\n return method.call(el, selector);\n}\n// accepts multiple subject els\n// returns a real array. good for methods like forEach\n// TODO: accept the document\nfunction findElements(container, selector) {\n let containers = container instanceof HTMLElement ? [container] : container;\n let allMatches = [];\n for (let i = 0; i < containers.length; i += 1) {\n let matches = containers[i].querySelectorAll(selector);\n for (let j = 0; j < matches.length; j += 1) {\n allMatches.push(matches[j]);\n }\n }\n return allMatches;\n}\n// accepts multiple subject els\n// only queries direct child elements // TODO: rename to findDirectChildren!\nfunction findDirectChildren(parent, selector) {\n let parents = parent instanceof HTMLElement ? [parent] : parent;\n let allMatches = [];\n for (let i = 0; i < parents.length; i += 1) {\n let childNodes = parents[i].children; // only ever elements\n for (let j = 0; j < childNodes.length; j += 1) {\n let childNode = childNodes[j];\n if (!selector || elementMatches(childNode, selector)) {\n allMatches.push(childNode);\n }\n }\n }\n return allMatches;\n}\n// Style\n// ----------------------------------------------------------------------------------------------------------------\nconst PIXEL_PROP_RE = /(top|left|right|bottom|width|height)$/i;\nfunction applyStyle(el, props) {\n for (let propName in props) {\n applyStyleProp(el, propName, props[propName]);\n }\n}\nfunction applyStyleProp(el, name, val) {\n if (val == null) {\n el.style[name] = '';\n }\n else if (typeof val === 'number' && PIXEL_PROP_RE.test(name)) {\n el.style[name] = `${val}px`;\n }\n else {\n el.style[name] = val;\n }\n}\n// Event Handling\n// ----------------------------------------------------------------------------------------------------------------\n// if intercepting bubbled events at the document/window/body level,\n// and want to see originating element (the 'target'), use this util instead\n// of `ev.target` because it goes within web-component boundaries.\nfunction getEventTargetViaRoot(ev) {\n var _a, _b;\n return (_b = (_a = ev.composedPath) === null || _a === void 0 ? void 0 : _a.call(ev)[0]) !== null && _b !== void 0 ? _b : ev.target;\n}\n// Unique ID for DOM attribute\nlet guid$1 = 0;\nfunction getUniqueDomId() {\n guid$1 += 1;\n return 'fc-dom-' + guid$1;\n}\n\n// Stops a mouse/touch event from doing it's native browser action\nfunction preventDefault(ev) {\n ev.preventDefault();\n}\n// Event Delegation\n// ----------------------------------------------------------------------------------------------------------------\nfunction buildDelegationHandler(selector, handler) {\n return (ev) => {\n let matchedChild = elementClosest(ev.target, selector);\n if (matchedChild) {\n handler.call(matchedChild, ev, matchedChild);\n }\n };\n}\nfunction listenBySelector(container, eventType, selector, handler) {\n let attachedHandler = buildDelegationHandler(selector, handler);\n container.addEventListener(eventType, attachedHandler);\n return () => {\n container.removeEventListener(eventType, attachedHandler);\n };\n}\nfunction listenToHoverBySelector(container, selector, onMouseEnter, onMouseLeave) {\n let currentMatchedChild;\n return listenBySelector(container, 'mouseover', selector, (mouseOverEv, matchedChild) => {\n if (matchedChild !== currentMatchedChild) {\n currentMatchedChild = matchedChild;\n onMouseEnter(mouseOverEv, matchedChild);\n let realOnMouseLeave = (mouseLeaveEv) => {\n currentMatchedChild = null;\n onMouseLeave(mouseLeaveEv, matchedChild);\n matchedChild.removeEventListener('mouseleave', realOnMouseLeave);\n };\n // listen to the next mouseleave, and then unattach\n matchedChild.addEventListener('mouseleave', realOnMouseLeave);\n }\n });\n}\n// Animation\n// ----------------------------------------------------------------------------------------------------------------\nconst transitionEventNames = [\n 'webkitTransitionEnd',\n 'otransitionend',\n 'oTransitionEnd',\n 'msTransitionEnd',\n 'transitionend',\n];\n// triggered only when the next single subsequent transition finishes\nfunction whenTransitionDone(el, callback) {\n let realCallback = (ev) => {\n callback(ev);\n transitionEventNames.forEach((eventName) => {\n el.removeEventListener(eventName, realCallback);\n });\n };\n transitionEventNames.forEach((eventName) => {\n el.addEventListener(eventName, realCallback); // cross-browser way to determine when the transition finishes\n });\n}\n// ARIA workarounds\n// ----------------------------------------------------------------------------------------------------------------\nfunction createAriaClickAttrs(handler) {\n return Object.assign({ onClick: handler }, createAriaKeyboardAttrs(handler));\n}\nfunction createAriaKeyboardAttrs(handler) {\n return {\n tabIndex: 0,\n onKeyDown(ev) {\n if (ev.key === 'Enter' || ev.key === ' ') {\n handler(ev);\n ev.preventDefault(); // if space, don't scroll down page\n }\n },\n };\n}\n\nlet guidNumber = 0;\nfunction guid() {\n guidNumber += 1;\n return String(guidNumber);\n}\n/* FullCalendar-specific DOM Utilities\n----------------------------------------------------------------------------------------------------------------------*/\n// Make the mouse cursor express that an event is not allowed in the current area\nfunction disableCursor() {\n document.body.classList.add('fc-not-allowed');\n}\n// Returns the mouse cursor to its original look\nfunction enableCursor() {\n document.body.classList.remove('fc-not-allowed');\n}\n/* Selection\n----------------------------------------------------------------------------------------------------------------------*/\nfunction preventSelection(el) {\n el.style.userSelect = 'none';\n el.style.webkitUserSelect = 'none';\n el.addEventListener('selectstart', preventDefault);\n}\nfunction allowSelection(el) {\n el.style.userSelect = '';\n el.style.webkitUserSelect = '';\n el.removeEventListener('selectstart', preventDefault);\n}\n/* Context Menu\n----------------------------------------------------------------------------------------------------------------------*/\nfunction preventContextMenu(el) {\n el.addEventListener('contextmenu', preventDefault);\n}\nfunction allowContextMenu(el) {\n el.removeEventListener('contextmenu', preventDefault);\n}\nfunction parseFieldSpecs(input) {\n let specs = [];\n let tokens = [];\n let i;\n let token;\n if (typeof input === 'string') {\n tokens = input.split(/\\s*,\\s*/);\n }\n else if (typeof input === 'function') {\n tokens = [input];\n }\n else if (Array.isArray(input)) {\n tokens = input;\n }\n for (i = 0; i < tokens.length; i += 1) {\n token = tokens[i];\n if (typeof token === 'string') {\n specs.push(token.charAt(0) === '-' ?\n { field: token.substring(1), order: -1 } :\n { field: token, order: 1 });\n }\n else if (typeof token === 'function') {\n specs.push({ func: token });\n }\n }\n return specs;\n}\nfunction compareByFieldSpecs(obj0, obj1, fieldSpecs) {\n let i;\n let cmp;\n for (i = 0; i < fieldSpecs.length; i += 1) {\n cmp = compareByFieldSpec(obj0, obj1, fieldSpecs[i]);\n if (cmp) {\n return cmp;\n }\n }\n return 0;\n}\nfunction compareByFieldSpec(obj0, obj1, fieldSpec) {\n if (fieldSpec.func) {\n return fieldSpec.func(obj0, obj1);\n }\n return flexibleCompare(obj0[fieldSpec.field], obj1[fieldSpec.field])\n * (fieldSpec.order || 1);\n}\nfunction flexibleCompare(a, b) {\n if (!a && !b) {\n return 0;\n }\n if (b == null) {\n return -1;\n }\n if (a == null) {\n return 1;\n }\n if (typeof a === 'string' || typeof b === 'string') {\n return String(a).localeCompare(String(b));\n }\n return a - b;\n}\n/* String Utilities\n----------------------------------------------------------------------------------------------------------------------*/\nfunction padStart(val, len) {\n let s = String(val);\n return '000'.substr(0, len - s.length) + s;\n}\nfunction formatWithOrdinals(formatter, args, fallbackText) {\n if (typeof formatter === 'function') {\n return formatter(...args);\n }\n if (typeof formatter === 'string') { // non-blank string\n return args.reduce((str, arg, index) => (str.replace('$' + index, arg || '')), formatter);\n }\n return fallbackText;\n}\n/* Number Utilities\n----------------------------------------------------------------------------------------------------------------------*/\nfunction compareNumbers(a, b) {\n return a - b;\n}\nfunction isInt(n) {\n return n % 1 === 0;\n}\n/* FC-specific DOM dimension stuff\n----------------------------------------------------------------------------------------------------------------------*/\nfunction computeSmallestCellWidth(cellEl) {\n let allWidthEl = cellEl.querySelector('.fc-scrollgrid-shrink-frame');\n let contentWidthEl = cellEl.querySelector('.fc-scrollgrid-shrink-cushion');\n if (!allWidthEl) {\n throw new Error('needs fc-scrollgrid-shrink-frame className'); // TODO: use const\n }\n if (!contentWidthEl) {\n throw new Error('needs fc-scrollgrid-shrink-cushion className');\n }\n return cellEl.getBoundingClientRect().width - allWidthEl.getBoundingClientRect().width + // the cell padding+border\n contentWidthEl.getBoundingClientRect().width;\n}\n\nconst INTERNAL_UNITS = ['years', 'months', 'days', 'milliseconds'];\nconst PARSE_RE = /^(-?)(?:(\\d+)\\.)?(\\d+):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?/;\n// Parsing and Creation\nfunction createDuration(input, unit) {\n if (typeof input === 'string') {\n return parseString(input);\n }\n if (typeof input === 'object' && input) { // non-null object\n return parseObject(input);\n }\n if (typeof input === 'number') {\n return parseObject({ [unit || 'milliseconds']: input });\n }\n return null;\n}\nfunction parseString(s) {\n let m = PARSE_RE.exec(s);\n if (m) {\n let sign = m[1] ? -1 : 1;\n return {\n years: 0,\n months: 0,\n days: sign * (m[2] ? parseInt(m[2], 10) : 0),\n milliseconds: sign * ((m[3] ? parseInt(m[3], 10) : 0) * 60 * 60 * 1000 + // hours\n (m[4] ? parseInt(m[4], 10) : 0) * 60 * 1000 + // minutes\n (m[5] ? parseInt(m[5], 10) : 0) * 1000 + // seconds\n (m[6] ? parseInt(m[6], 10) : 0) // ms\n ),\n };\n }\n return null;\n}\nfunction parseObject(obj) {\n let duration = {\n years: obj.years || obj.year || 0,\n months: obj.months || obj.month || 0,\n days: obj.days || obj.day || 0,\n milliseconds: (obj.hours || obj.hour || 0) * 60 * 60 * 1000 + // hours\n (obj.minutes || obj.minute || 0) * 60 * 1000 + // minutes\n (obj.seconds || obj.second || 0) * 1000 + // seconds\n (obj.milliseconds || obj.millisecond || obj.ms || 0), // ms\n };\n let weeks = obj.weeks || obj.week;\n if (weeks) {\n duration.days += weeks * 7;\n duration.specifiedWeeks = true;\n }\n return duration;\n}\n// Equality\nfunction durationsEqual(d0, d1) {\n return d0.years === d1.years &&\n d0.months === d1.months &&\n d0.days === d1.days &&\n d0.milliseconds === d1.milliseconds;\n}\nfunction asCleanDays(dur) {\n if (!dur.years && !dur.months && !dur.milliseconds) {\n return dur.days;\n }\n return 0;\n}\n// Simple Math\nfunction addDurations(d0, d1) {\n return {\n years: d0.years + d1.years,\n months: d0.months + d1.months,\n days: d0.days + d1.days,\n milliseconds: d0.milliseconds + d1.milliseconds,\n };\n}\nfunction subtractDurations(d1, d0) {\n return {\n years: d1.years - d0.years,\n months: d1.months - d0.months,\n days: d1.days - d0.days,\n milliseconds: d1.milliseconds - d0.milliseconds,\n };\n}\nfunction multiplyDuration(d, n) {\n return {\n years: d.years * n,\n months: d.months * n,\n days: d.days * n,\n milliseconds: d.milliseconds * n,\n };\n}\n// Conversions\n// \"Rough\" because they are based on average-case Gregorian months/years\nfunction asRoughYears(dur) {\n return asRoughDays(dur) / 365;\n}\nfunction asRoughMonths(dur) {\n return asRoughDays(dur) / 30;\n}\nfunction asRoughDays(dur) {\n return asRoughMs(dur) / 864e5;\n}\nfunction asRoughMinutes(dur) {\n return asRoughMs(dur) / (1000 * 60);\n}\nfunction asRoughSeconds(dur) {\n return asRoughMs(dur) / 1000;\n}\nfunction asRoughMs(dur) {\n return dur.years * (365 * 864e5) +\n dur.months * (30 * 864e5) +\n dur.days * 864e5 +\n dur.milliseconds;\n}\n// Advanced Math\nfunction wholeDivideDurations(numerator, denominator) {\n let res = null;\n for (let i = 0; i < INTERNAL_UNITS.length; i += 1) {\n let unit = INTERNAL_UNITS[i];\n if (denominator[unit]) {\n let localRes = numerator[unit] / denominator[unit];\n if (!isInt(localRes) || (res !== null && res !== localRes)) {\n return null;\n }\n res = localRes;\n }\n else if (numerator[unit]) {\n // needs to divide by something but can't!\n return null;\n }\n }\n return res;\n}\nfunction greatestDurationDenominator(dur) {\n let ms = dur.milliseconds;\n if (ms) {\n if (ms % 1000 !== 0) {\n return { unit: 'millisecond', value: ms };\n }\n if (ms % (1000 * 60) !== 0) {\n return { unit: 'second', value: ms / 1000 };\n }\n if (ms % (1000 * 60 * 60) !== 0) {\n return { unit: 'minute', value: ms / (1000 * 60) };\n }\n if (ms) {\n return { unit: 'hour', value: ms / (1000 * 60 * 60) };\n }\n }\n if (dur.days) {\n if (dur.specifiedWeeks && dur.days % 7 === 0) {\n return { unit: 'week', value: dur.days / 7 };\n }\n return { unit: 'day', value: dur.days };\n }\n if (dur.months) {\n return { unit: 'month', value: dur.months };\n }\n if (dur.years) {\n return { unit: 'year', value: dur.years };\n }\n return { unit: 'millisecond', value: 0 };\n}\n\n// TODO: new util arrayify?\nfunction removeExact(array, exactVal) {\n let removeCnt = 0;\n let i = 0;\n while (i < array.length) {\n if (array[i] === exactVal) {\n array.splice(i, 1);\n removeCnt += 1;\n }\n else {\n i += 1;\n }\n }\n return removeCnt;\n}\nfunction isArraysEqual(a0, a1, equalityFunc) {\n if (a0 === a1) {\n return true;\n }\n let len = a0.length;\n let i;\n if (len !== a1.length) { // not array? or not same length?\n return false;\n }\n for (i = 0; i < len; i += 1) {\n if (!(equalityFunc ? equalityFunc(a0[i], a1[i]) : a0[i] === a1[i])) {\n return false;\n }\n }\n return true;\n}\n\nconst DAY_IDS = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'];\n// Adding\nfunction addWeeks(m, n) {\n let a = dateToUtcArray(m);\n a[2] += n * 7;\n return arrayToUtcDate(a);\n}\nfunction addDays(m, n) {\n let a = dateToUtcArray(m);\n a[2] += n;\n return arrayToUtcDate(a);\n}\nfunction addMs(m, n) {\n let a = dateToUtcArray(m);\n a[6] += n;\n return arrayToUtcDate(a);\n}\n// Diffing (all return floats)\n// TODO: why not use ranges?\nfunction diffWeeks(m0, m1) {\n return diffDays(m0, m1) / 7;\n}\nfunction diffDays(m0, m1) {\n return (m1.valueOf() - m0.valueOf()) / (1000 * 60 * 60 * 24);\n}\nfunction diffHours(m0, m1) {\n return (m1.valueOf() - m0.valueOf()) / (1000 * 60 * 60);\n}\nfunction diffMinutes(m0, m1) {\n return (m1.valueOf() - m0.valueOf()) / (1000 * 60);\n}\nfunction diffSeconds(m0, m1) {\n return (m1.valueOf() - m0.valueOf()) / 1000;\n}\nfunction diffDayAndTime(m0, m1) {\n let m0day = startOfDay(m0);\n let m1day = startOfDay(m1);\n return {\n years: 0,\n months: 0,\n days: Math.round(diffDays(m0day, m1day)),\n milliseconds: (m1.valueOf() - m1day.valueOf()) - (m0.valueOf() - m0day.valueOf()),\n };\n}\n// Diffing Whole Units\nfunction diffWholeWeeks(m0, m1) {\n let d = diffWholeDays(m0, m1);\n if (d !== null && d % 7 === 0) {\n return d / 7;\n }\n return null;\n}\nfunction diffWholeDays(m0, m1) {\n if (timeAsMs(m0) === timeAsMs(m1)) {\n return Math.round(diffDays(m0, m1));\n }\n return null;\n}\n// Start-Of\nfunction startOfDay(m) {\n return arrayToUtcDate([\n m.getUTCFullYear(),\n m.getUTCMonth(),\n m.getUTCDate(),\n ]);\n}\nfunction startOfHour(m) {\n return arrayToUtcDate([\n m.getUTCFullYear(),\n m.getUTCMonth(),\n m.getUTCDate(),\n m.getUTCHours(),\n ]);\n}\nfunction startOfMinute(m) {\n return arrayToUtcDate([\n m.getUTCFullYear(),\n m.getUTCMonth(),\n m.getUTCDate(),\n m.getUTCHours(),\n m.getUTCMinutes(),\n ]);\n}\nfunction startOfSecond(m) {\n return arrayToUtcDate([\n m.getUTCFullYear(),\n m.getUTCMonth(),\n m.getUTCDate(),\n m.getUTCHours(),\n m.getUTCMinutes(),\n m.getUTCSeconds(),\n ]);\n}\n// Week Computation\nfunction weekOfYear(marker, dow, doy) {\n let y = marker.getUTCFullYear();\n let w = weekOfGivenYear(marker, y, dow, doy);\n if (w < 1) {\n return weekOfGivenYear(marker, y - 1, dow, doy);\n }\n let nextW = weekOfGivenYear(marker, y + 1, dow, doy);\n if (nextW >= 1) {\n return Math.min(w, nextW);\n }\n return w;\n}\nfunction weekOfGivenYear(marker, year, dow, doy) {\n let firstWeekStart = arrayToUtcDate([year, 0, 1 + firstWeekOffset(year, dow, doy)]);\n let dayStart = startOfDay(marker);\n let days = Math.round(diffDays(firstWeekStart, dayStart));\n return Math.floor(days / 7) + 1; // zero-indexed\n}\n// start-of-first-week - start-of-year\nfunction firstWeekOffset(year, dow, doy) {\n // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n let fwd = 7 + dow - doy;\n // first-week day local weekday -- which local weekday is fwd\n let fwdlw = (7 + arrayToUtcDate([year, 0, fwd]).getUTCDay() - dow) % 7;\n return -fwdlw + fwd - 1;\n}\n// Array Conversion\nfunction dateToLocalArray(date) {\n return [\n date.getFullYear(),\n date.getMonth(),\n date.getDate(),\n date.getHours(),\n date.getMinutes(),\n date.getSeconds(),\n date.getMilliseconds(),\n ];\n}\nfunction arrayToLocalDate(a) {\n return new Date(a[0], a[1] || 0, a[2] == null ? 1 : a[2], // day of month\n a[3] || 0, a[4] || 0, a[5] || 0);\n}\nfunction dateToUtcArray(date) {\n return [\n date.getUTCFullYear(),\n date.getUTCMonth(),\n date.getUTCDate(),\n date.getUTCHours(),\n date.getUTCMinutes(),\n date.getUTCSeconds(),\n date.getUTCMilliseconds(),\n ];\n}\nfunction arrayToUtcDate(a) {\n // according to web standards (and Safari), a month index is required.\n // massage if only given a year.\n if (a.length === 1) {\n a = a.concat([0]);\n }\n return new Date(Date.UTC(...a));\n}\n// Other Utils\nfunction isValidDate(m) {\n return !isNaN(m.valueOf());\n}\nfunction timeAsMs(m) {\n return m.getUTCHours() * 1000 * 60 * 60 +\n m.getUTCMinutes() * 1000 * 60 +\n m.getUTCSeconds() * 1000 +\n m.getUTCMilliseconds();\n}\n\n// timeZoneOffset is in minutes\nfunction buildIsoString(marker, timeZoneOffset, stripZeroTime = false) {\n let s = marker.toISOString();\n s = s.replace('.000', '');\n if (stripZeroTime) {\n s = s.replace('T00:00:00Z', '');\n }\n if (s.length > 10) { // time part wasn't stripped, can add timezone info\n if (timeZoneOffset == null) {\n s = s.replace('Z', '');\n }\n else if (timeZoneOffset !== 0) {\n s = s.replace('Z', formatTimeZoneOffset(timeZoneOffset, true));\n }\n // otherwise, its UTC-0 and we want to keep the Z\n }\n return s;\n}\n// formats the date, but with no time part\n// TODO: somehow merge with buildIsoString and stripZeroTime\n// TODO: rename. omit \"string\"\nfunction formatDayString(marker) {\n return marker.toISOString().replace(/T.*$/, '');\n}\nfunction formatIsoMonthStr(marker) {\n return marker.toISOString().match(/^\\d{4}-\\d{2}/)[0];\n}\n// TODO: use Date::toISOString and use everything after the T?\nfunction formatIsoTimeString(marker) {\n return padStart(marker.getUTCHours(), 2) + ':' +\n padStart(marker.getUTCMinutes(), 2) + ':' +\n padStart(marker.getUTCSeconds(), 2);\n}\nfunction formatTimeZoneOffset(minutes, doIso = false) {\n let sign = minutes < 0 ? '-' : '+';\n let abs = Math.abs(minutes);\n let hours = Math.floor(abs / 60);\n let mins = Math.round(abs % 60);\n if (doIso) {\n return `${sign + padStart(hours, 2)}:${padStart(mins, 2)}`;\n }\n return `GMT${sign}${hours}${mins ? `:${padStart(mins, 2)}` : ''}`;\n}\n\nfunction memoize(workerFunc, resEquality, teardownFunc) {\n let currentArgs;\n let currentRes;\n return function (...newArgs) {\n if (!currentArgs) {\n currentRes = workerFunc.apply(this, newArgs);\n }\n else if (!isArraysEqual(currentArgs, newArgs)) {\n if (teardownFunc) {\n teardownFunc(currentRes);\n }\n let res = workerFunc.apply(this, newArgs);\n if (!resEquality || !resEquality(res, currentRes)) {\n currentRes = res;\n }\n }\n currentArgs = newArgs;\n return currentRes;\n };\n}\nfunction memoizeObjArg(workerFunc, resEquality, teardownFunc) {\n let currentArg;\n let currentRes;\n return (newArg) => {\n if (!currentArg) {\n currentRes = workerFunc.call(this, newArg);\n }\n else if (!isPropsEqual(currentArg, newArg)) {\n if (teardownFunc) {\n teardownFunc(currentRes);\n }\n let res = workerFunc.call(this, newArg);\n if (!resEquality || !resEquality(res, currentRes)) {\n currentRes = res;\n }\n }\n currentArg = newArg;\n return currentRes;\n };\n}\nfunction memoizeArraylike(// used at all?\nworkerFunc, resEquality, teardownFunc) {\n let currentArgSets = [];\n let currentResults = [];\n return (newArgSets) => {\n let currentLen = currentArgSets.length;\n let newLen = newArgSets.length;\n let i = 0;\n for (; i < currentLen; i += 1) {\n if (!newArgSets[i]) { // one of the old sets no longer exists\n if (teardownFunc) {\n teardownFunc(currentResults[i]);\n }\n }\n else if (!isArraysEqual(currentArgSets[i], newArgSets[i])) {\n if (teardownFunc) {\n teardownFunc(currentResults[i]);\n }\n let res = workerFunc.apply(this, newArgSets[i]);\n if (!resEquality || !resEquality(res, currentResults[i])) {\n currentResults[i] = res;\n }\n }\n }\n for (; i < newLen; i += 1) {\n currentResults[i] = workerFunc.apply(this, newArgSets[i]);\n }\n currentArgSets = newArgSets;\n currentResults.splice(newLen); // remove excess\n return currentResults;\n };\n}\nfunction memoizeHashlike(workerFunc, resEquality, teardownFunc) {\n let currentArgHash = {};\n let currentResHash = {};\n return (newArgHash) => {\n let newResHash = {};\n for (let key in newArgHash) {\n if (!currentResHash[key]) {\n newResHash[key] = workerFunc.apply(this, newArgHash[key]);\n }\n else if (!isArraysEqual(currentArgHash[key], newArgHash[key])) {\n if (teardownFunc) {\n teardownFunc(currentResHash[key]);\n }\n let res = workerFunc.apply(this, newArgHash[key]);\n newResHash[key] = (resEquality && resEquality(res, currentResHash[key]))\n ? currentResHash[key]\n : res;\n }\n else {\n newResHash[key] = currentResHash[key];\n }\n }\n currentArgHash = newArgHash;\n currentResHash = newResHash;\n return newResHash;\n };\n}\n\nconst EXTENDED_SETTINGS_AND_SEVERITIES = {\n week: 3,\n separator: 0,\n omitZeroMinute: 0,\n meridiem: 0,\n omitCommas: 0,\n};\nconst STANDARD_DATE_PROP_SEVERITIES = {\n timeZoneName: 7,\n era: 6,\n year: 5,\n month: 4,\n day: 2,\n weekday: 2,\n hour: 1,\n minute: 1,\n second: 1,\n};\nconst MERIDIEM_RE = /\\s*([ap])\\.?m\\.?/i; // eats up leading spaces too\nconst COMMA_RE = /,/g; // we need re for globalness\nconst MULTI_SPACE_RE = /\\s+/g;\nconst LTR_RE = /\\u200e/g; // control character\nconst UTC_RE = /UTC|GMT/;\nclass NativeFormatter {\n constructor(formatSettings) {\n let standardDateProps = {};\n let extendedSettings = {};\n let severity = 0;\n for (let name in formatSettings) {\n if (name in EXTENDED_SETTINGS_AND_SEVERITIES) {\n extendedSettings[name] = formatSettings[name];\n severity = Math.max(EXTENDED_SETTINGS_AND_SEVERITIES[name], severity);\n }\n else {\n standardDateProps[name] = formatSettings[name];\n if (name in STANDARD_DATE_PROP_SEVERITIES) { // TODO: what about hour12? no severity\n severity = Math.max(STANDARD_DATE_PROP_SEVERITIES[name], severity);\n }\n }\n }\n this.standardDateProps = standardDateProps;\n this.extendedSettings = extendedSettings;\n this.severity = severity;\n this.buildFormattingFunc = memoize(buildFormattingFunc);\n }\n format(date, context) {\n return this.buildFormattingFunc(this.standardDateProps, this.extendedSettings, context)(date);\n }\n formatRange(start, end, context, betterDefaultSeparator) {\n let { standardDateProps, extendedSettings } = this;\n let diffSeverity = computeMarkerDiffSeverity(start.marker, end.marker, context.calendarSystem);\n if (!diffSeverity) {\n return this.format(start, context);\n }\n let biggestUnitForPartial = diffSeverity;\n if (biggestUnitForPartial > 1 && // the two dates are different in a way that's larger scale than time\n (standardDateProps.year === 'numeric' || standardDateProps.year === '2-digit') &&\n (standardDateProps.month === 'numeric' || standardDateProps.month === '2-digit') &&\n (standardDateProps.day === 'numeric' || standardDateProps.day === '2-digit')) {\n biggestUnitForPartial = 1; // make it look like the dates are only different in terms of time\n }\n let full0 = this.format(start, context);\n let full1 = this.format(end, context);\n if (full0 === full1) {\n return full0;\n }\n let partialDateProps = computePartialFormattingOptions(standardDateProps, biggestUnitForPartial);\n let partialFormattingFunc = buildFormattingFunc(partialDateProps, extendedSettings, context);\n let partial0 = partialFormattingFunc(start);\n let partial1 = partialFormattingFunc(end);\n let insertion = findCommonInsertion(full0, partial0, full1, partial1);\n let separator = extendedSettings.separator || betterDefaultSeparator || context.defaultSeparator || '';\n if (insertion) {\n return insertion.before + partial0 + separator + partial1 + insertion.after;\n }\n return full0 + separator + full1;\n }\n getLargestUnit() {\n switch (this.severity) {\n case 7:\n case 6:\n case 5:\n return 'year';\n case 4:\n return 'month';\n case 3:\n return 'week';\n case 2:\n return 'day';\n default:\n return 'time'; // really?\n }\n }\n}\nfunction buildFormattingFunc(standardDateProps, extendedSettings, context) {\n let standardDatePropCnt = Object.keys(standardDateProps).length;\n if (standardDatePropCnt === 1 && standardDateProps.timeZoneName === 'short') {\n return (date) => (formatTimeZoneOffset(date.timeZoneOffset));\n }\n if (standardDatePropCnt === 0 && extendedSettings.week) {\n return (date) => (formatWeekNumber(context.computeWeekNumber(date.marker), context.weekText, context.weekTextLong, context.locale, extendedSettings.week));\n }\n return buildNativeFormattingFunc(standardDateProps, extendedSettings, context);\n}\nfunction buildNativeFormattingFunc(standardDateProps, extendedSettings, context) {\n standardDateProps = Object.assign({}, standardDateProps); // copy\n extendedSettings = Object.assign({}, extendedSettings); // copy\n sanitizeSettings(standardDateProps, extendedSettings);\n standardDateProps.timeZone = 'UTC'; // we leverage the only guaranteed timeZone for our UTC markers\n let normalFormat = new Intl.DateTimeFormat(context.locale.codes, standardDateProps);\n let zeroFormat; // needed?\n if (extendedSettings.omitZeroMinute) {\n let zeroProps = Object.assign({}, standardDateProps);\n delete zeroProps.minute; // seconds and ms were already considered in sanitizeSettings\n zeroFormat = new Intl.DateTimeFormat(context.locale.codes, zeroProps);\n }\n return (date) => {\n let { marker } = date;\n let format;\n if (zeroFormat && !marker.getUTCMinutes()) {\n format = zeroFormat;\n }\n else {\n format = normalFormat;\n }\n let s = format.format(marker);\n return postProcess(s, date, standardDateProps, extendedSettings, context);\n };\n}\nfunction sanitizeSettings(standardDateProps, extendedSettings) {\n // deal with a browser inconsistency where formatting the timezone\n // requires that the hour/minute be present.\n if (standardDateProps.timeZoneName) {\n if (!standardDateProps.hour) {\n standardDateProps.hour = '2-digit';\n }\n if (!standardDateProps.minute) {\n standardDateProps.minute = '2-digit';\n }\n }\n // only support short timezone names\n if (standardDateProps.timeZoneName === 'long') {\n standardDateProps.timeZoneName = 'short';\n }\n // if requesting to display seconds, MUST display minutes\n if (extendedSettings.omitZeroMinute && (standardDateProps.second || standardDateProps.millisecond)) {\n delete extendedSettings.omitZeroMinute;\n }\n}\nfunction postProcess(s, date, standardDateProps, extendedSettings, context) {\n s = s.replace(LTR_RE, ''); // remove left-to-right control chars. do first. good for other regexes\n if (standardDateProps.timeZoneName === 'short') {\n s = injectTzoStr(s, (context.timeZone === 'UTC' || date.timeZoneOffset == null) ?\n 'UTC' : // important to normalize for IE, which does \"GMT\"\n formatTimeZoneOffset(date.timeZoneOffset));\n }\n if (extendedSettings.omitCommas) {\n s = s.replace(COMMA_RE, '').trim();\n }\n if (extendedSettings.omitZeroMinute) {\n s = s.replace(':00', ''); // zeroFormat doesn't always achieve this\n }\n // ^ do anything that might create adjacent spaces before this point,\n // because MERIDIEM_RE likes to eat up loading spaces\n if (extendedSettings.meridiem === false) {\n s = s.replace(MERIDIEM_RE, '').trim();\n }\n else if (extendedSettings.meridiem === 'narrow') { // a/p\n s = s.replace(MERIDIEM_RE, (m0, m1) => m1.toLocaleLowerCase());\n }\n else if (extendedSettings.meridiem === 'short') { // am/pm\n s = s.replace(MERIDIEM_RE, (m0, m1) => `${m1.toLocaleLowerCase()}m`);\n }\n else if (extendedSettings.meridiem === 'lowercase') { // other meridiem transformers already converted to lowercase\n s = s.replace(MERIDIEM_RE, (m0) => m0.toLocaleLowerCase());\n }\n s = s.replace(MULTI_SPACE_RE, ' ');\n s = s.trim();\n return s;\n}\nfunction injectTzoStr(s, tzoStr) {\n let replaced = false;\n s = s.replace(UTC_RE, () => {\n replaced = true;\n return tzoStr;\n });\n // IE11 doesn't include UTC/GMT in the original string, so append to end\n if (!replaced) {\n s += ` ${tzoStr}`;\n }\n return s;\n}\nfunction formatWeekNumber(num, weekText, weekTextLong, locale, display) {\n let parts = [];\n if (display === 'long') {\n parts.push(weekTextLong);\n }\n else if (display === 'short' || display === 'narrow') {\n parts.push(weekText);\n }\n if (display === 'long' || display === 'short') {\n parts.push(' ');\n }\n parts.push(locale.simpleNumberFormat.format(num));\n if (locale.options.direction === 'rtl') { // TODO: use control characters instead?\n parts.reverse();\n }\n return parts.join('');\n}\n// Range Formatting Utils\n// 0 = exactly the same\n// 1 = different by time\n// and bigger\nfunction computeMarkerDiffSeverity(d0, d1, ca) {\n if (ca.getMarkerYear(d0) !== ca.getMarkerYear(d1)) {\n return 5;\n }\n if (ca.getMarkerMonth(d0) !== ca.getMarkerMonth(d1)) {\n return 4;\n }\n if (ca.getMarkerDay(d0) !== ca.getMarkerDay(d1)) {\n return 2;\n }\n if (timeAsMs(d0) !== timeAsMs(d1)) {\n return 1;\n }\n return 0;\n}\nfunction computePartialFormattingOptions(options, biggestUnit) {\n let partialOptions = {};\n for (let name in options) {\n if (!(name in STANDARD_DATE_PROP_SEVERITIES) || // not a date part prop (like timeZone)\n STANDARD_DATE_PROP_SEVERITIES[name] <= biggestUnit) {\n partialOptions[name] = options[name];\n }\n }\n return partialOptions;\n}\nfunction findCommonInsertion(full0, partial0, full1, partial1) {\n let i0 = 0;\n while (i0 < full0.length) {\n let found0 = full0.indexOf(partial0, i0);\n if (found0 === -1) {\n break;\n }\n let before0 = full0.substr(0, found0);\n i0 = found0 + partial0.length;\n let after0 = full0.substr(i0);\n let i1 = 0;\n while (i1 < full1.length) {\n let found1 = full1.indexOf(partial1, i1);\n if (found1 === -1) {\n break;\n }\n let before1 = full1.substr(0, found1);\n i1 = found1 + partial1.length;\n let after1 = full1.substr(i1);\n if (before0 === before1 && after0 === after1) {\n return {\n before: before0,\n after: after0,\n };\n }\n }\n }\n return null;\n}\n\nfunction expandZonedMarker(dateInfo, calendarSystem) {\n let a = calendarSystem.markerToArray(dateInfo.marker);\n return {\n marker: dateInfo.marker,\n timeZoneOffset: dateInfo.timeZoneOffset,\n array: a,\n year: a[0],\n month: a[1],\n day: a[2],\n hour: a[3],\n minute: a[4],\n second: a[5],\n millisecond: a[6],\n };\n}\n\nfunction createVerboseFormattingArg(start, end, context, betterDefaultSeparator) {\n let startInfo = expandZonedMarker(start, context.calendarSystem);\n let endInfo = end ? expandZonedMarker(end, context.calendarSystem) : null;\n return {\n date: startInfo,\n start: startInfo,\n end: endInfo,\n timeZone: context.timeZone,\n localeCodes: context.locale.codes,\n defaultSeparator: betterDefaultSeparator || context.defaultSeparator,\n };\n}\n\n/*\nTODO: fix the terminology of \"formatter\" vs \"formatting func\"\n*/\n/*\nAt the time of instantiation, this object does not know which cmd-formatting system it will use.\nIt receives this at the time of formatting, as a setting.\n*/\nclass CmdFormatter {\n constructor(cmdStr) {\n this.cmdStr = cmdStr;\n }\n format(date, context, betterDefaultSeparator) {\n return context.cmdFormatter(this.cmdStr, createVerboseFormattingArg(date, null, context, betterDefaultSeparator));\n }\n formatRange(start, end, context, betterDefaultSeparator) {\n return context.cmdFormatter(this.cmdStr, createVerboseFormattingArg(start, end, context, betterDefaultSeparator));\n }\n}\n\nclass FuncFormatter {\n constructor(func) {\n this.func = func;\n }\n format(date, context, betterDefaultSeparator) {\n return this.func(createVerboseFormattingArg(date, null, context, betterDefaultSeparator));\n }\n formatRange(start, end, context, betterDefaultSeparator) {\n return this.func(createVerboseFormattingArg(start, end, context, betterDefaultSeparator));\n }\n}\n\nfunction createFormatter(input) {\n if (typeof input === 'object' && input) { // non-null object\n return new NativeFormatter(input);\n }\n if (typeof input === 'string') {\n return new CmdFormatter(input);\n }\n if (typeof input === 'function') {\n return new FuncFormatter(input);\n }\n return null;\n}\n\n// base options\n// ------------\nconst BASE_OPTION_REFINERS = {\n navLinkDayClick: identity,\n navLinkWeekClick: identity,\n duration: createDuration,\n bootstrapFontAwesome: identity,\n buttonIcons: identity,\n customButtons: identity,\n defaultAllDayEventDuration: createDuration,\n defaultTimedEventDuration: createDuration,\n nextDayThreshold: createDuration,\n scrollTime: createDuration,\n scrollTimeReset: Boolean,\n slotMinTime: createDuration,\n slotMaxTime: createDuration,\n dayPopoverFormat: createFormatter,\n slotDuration: createDuration,\n snapDuration: createDuration,\n headerToolbar: identity,\n footerToolbar: identity,\n defaultRangeSeparator: String,\n titleRangeSeparator: String,\n forceEventDuration: Boolean,\n dayHeaders: Boolean,\n dayHeaderFormat: createFormatter,\n dayHeaderClassNames: identity,\n dayHeaderContent: identity,\n dayHeaderDidMount: identity,\n dayHeaderWillUnmount: identity,\n dayCellClassNames: identity,\n dayCellContent: identity,\n dayCellDidMount: identity,\n dayCellWillUnmount: identity,\n initialView: String,\n aspectRatio: Number,\n weekends: Boolean,\n weekNumberCalculation: identity,\n weekNumbers: Boolean,\n weekNumberClassNames: identity,\n weekNumberContent: identity,\n weekNumberDidMount: identity,\n weekNumberWillUnmount: identity,\n editable: Boolean,\n viewClassNames: identity,\n viewDidMount: identity,\n viewWillUnmount: identity,\n nowIndicator: Boolean,\n nowIndicatorClassNames: identity,\n nowIndicatorContent: identity,\n nowIndicatorDidMount: identity,\n nowIndicatorWillUnmount: identity,\n showNonCurrentDates: Boolean,\n lazyFetching: Boolean,\n startParam: String,\n endParam: String,\n timeZoneParam: String,\n timeZone: String,\n locales: identity,\n locale: identity,\n themeSystem: String,\n dragRevertDuration: Number,\n dragScroll: Boolean,\n allDayMaintainDuration: Boolean,\n unselectAuto: Boolean,\n dropAccept: identity,\n eventOrder: parseFieldSpecs,\n eventOrderStrict: Boolean,\n handleWindowResize: Boolean,\n windowResizeDelay: Number,\n longPressDelay: Number,\n eventDragMinDistance: Number,\n expandRows: Boolean,\n height: identity,\n contentHeight: identity,\n direction: String,\n weekNumberFormat: createFormatter,\n eventResizableFromStart: Boolean,\n displayEventTime: Boolean,\n displayEventEnd: Boolean,\n weekText: String,\n weekTextLong: String,\n progressiveEventRendering: Boolean,\n businessHours: identity,\n initialDate: identity,\n now: identity,\n eventDataTransform: identity,\n stickyHeaderDates: identity,\n stickyFooterScrollbar: identity,\n viewHeight: identity,\n defaultAllDay: Boolean,\n eventSourceFailure: identity,\n eventSourceSuccess: identity,\n eventDisplay: String,\n eventStartEditable: Boolean,\n eventDurationEditable: Boolean,\n eventOverlap: identity,\n eventConstraint: identity,\n eventAllow: identity,\n eventBackgroundColor: String,\n eventBorderColor: String,\n eventTextColor: String,\n eventColor: String,\n eventClassNames: identity,\n eventContent: identity,\n eventDidMount: identity,\n eventWillUnmount: identity,\n selectConstraint: identity,\n selectOverlap: identity,\n selectAllow: identity,\n droppable: Boolean,\n unselectCancel: String,\n slotLabelFormat: identity,\n slotLaneClassNames: identity,\n slotLaneContent: identity,\n slotLaneDidMount: identity,\n slotLaneWillUnmount: identity,\n slotLabelClassNames: identity,\n slotLabelContent: identity,\n slotLabelDidMount: identity,\n slotLabelWillUnmount: identity,\n dayMaxEvents: identity,\n dayMaxEventRows: identity,\n dayMinWidth: Number,\n slotLabelInterval: createDuration,\n allDayText: String,\n allDayClassNames: identity,\n allDayContent: identity,\n allDayDidMount: identity,\n allDayWillUnmount: identity,\n slotMinWidth: Number,\n navLinks: Boolean,\n eventTimeFormat: createFormatter,\n rerenderDelay: Number,\n moreLinkText: identity,\n moreLinkHint: identity,\n selectMinDistance: Number,\n selectable: Boolean,\n selectLongPressDelay: Number,\n eventLongPressDelay: Number,\n selectMirror: Boolean,\n eventMaxStack: Number,\n eventMinHeight: Number,\n eventMinWidth: Number,\n eventShortHeight: Number,\n slotEventOverlap: Boolean,\n plugins: identity,\n firstDay: Number,\n dayCount: Number,\n dateAlignment: String,\n dateIncrement: createDuration,\n hiddenDays: identity,\n fixedWeekCount: Boolean,\n validRange: identity,\n visibleRange: identity,\n titleFormat: identity,\n eventInteractive: Boolean,\n // only used by list-view, but languages define the value, so we need it in base options\n noEventsText: String,\n viewHint: identity,\n navLinkHint: identity,\n closeHint: String,\n timeHint: String,\n eventHint: String,\n moreLinkClick: identity,\n moreLinkClassNames: identity,\n moreLinkContent: identity,\n moreLinkDidMount: identity,\n moreLinkWillUnmount: identity,\n monthStartFormat: createFormatter,\n // for connectors\n // (can't be part of plugin system b/c must be provided at runtime)\n handleCustomRendering: identity,\n customRenderingMetaMap: identity,\n customRenderingReplaces: Boolean,\n};\n// do NOT give a type here. need `typeof BASE_OPTION_DEFAULTS` to give real results.\n// raw values.\nconst BASE_OPTION_DEFAULTS = {\n eventDisplay: 'auto',\n defaultRangeSeparator: ' - ',\n titleRangeSeparator: ' \\u2013 ',\n defaultTimedEventDuration: '01:00:00',\n defaultAllDayEventDuration: { day: 1 },\n forceEventDuration: false,\n nextDayThreshold: '00:00:00',\n dayHeaders: true,\n initialView: '',\n aspectRatio: 1.35,\n headerToolbar: {\n start: 'title',\n center: '',\n end: 'today prev,next',\n },\n weekends: true,\n weekNumbers: false,\n weekNumberCalculation: 'local',\n editable: false,\n nowIndicator: false,\n scrollTime: '06:00:00',\n scrollTimeReset: true,\n slotMinTime: '00:00:00',\n slotMaxTime: '24:00:00',\n showNonCurrentDates: true,\n lazyFetching: true,\n startParam: 'start',\n endParam: 'end',\n timeZoneParam: 'timeZone',\n timeZone: 'local',\n locales: [],\n locale: '',\n themeSystem: 'standard',\n dragRevertDuration: 500,\n dragScroll: true,\n allDayMaintainDuration: false,\n unselectAuto: true,\n dropAccept: '*',\n eventOrder: 'start,-duration,allDay,title',\n dayPopoverFormat: { month: 'long', day: 'numeric', year: 'numeric' },\n handleWindowResize: true,\n windowResizeDelay: 100,\n longPressDelay: 1000,\n eventDragMinDistance: 5,\n expandRows: false,\n navLinks: false,\n selectable: false,\n eventMinHeight: 15,\n eventMinWidth: 30,\n eventShortHeight: 30,\n monthStartFormat: { month: 'long', day: 'numeric' },\n};\n// calendar listeners\n// ------------------\nconst CALENDAR_LISTENER_REFINERS = {\n datesSet: identity,\n eventsSet: identity,\n eventAdd: identity,\n eventChange: identity,\n eventRemove: identity,\n windowResize: identity,\n eventClick: identity,\n eventMouseEnter: identity,\n eventMouseLeave: identity,\n select: identity,\n unselect: identity,\n loading: identity,\n // internal\n _unmount: identity,\n _beforeprint: identity,\n _afterprint: identity,\n _noEventDrop: identity,\n _noEventResize: identity,\n _resize: identity,\n _scrollRequest: identity,\n};\n// calendar-specific options\n// -------------------------\nconst CALENDAR_OPTION_REFINERS = {\n buttonText: identity,\n buttonHints: identity,\n views: identity,\n plugins: identity,\n initialEvents: identity,\n events: identity,\n eventSources: identity,\n};\nconst COMPLEX_OPTION_COMPARATORS = {\n headerToolbar: isMaybeObjectsEqual,\n footerToolbar: isMaybeObjectsEqual,\n buttonText: isMaybeObjectsEqual,\n buttonHints: isMaybeObjectsEqual,\n buttonIcons: isMaybeObjectsEqual,\n dateIncrement: isMaybeObjectsEqual,\n plugins: isMaybeArraysEqual,\n events: isMaybeArraysEqual,\n eventSources: isMaybeArraysEqual,\n ['resources']: isMaybeArraysEqual,\n};\nfunction isMaybeObjectsEqual(a, b) {\n if (typeof a === 'object' && typeof b === 'object' && a && b) { // both non-null objects\n return isPropsEqual(a, b);\n }\n return a === b;\n}\nfunction isMaybeArraysEqual(a, b) {\n if (Array.isArray(a) && Array.isArray(b)) {\n return isArraysEqual(a, b);\n }\n return a === b;\n}\n// view-specific options\n// ---------------------\nconst VIEW_OPTION_REFINERS = {\n type: String,\n component: identity,\n buttonText: String,\n buttonTextKey: String,\n dateProfileGeneratorClass: identity,\n usesMinMaxTime: Boolean,\n classNames: identity,\n content: identity,\n didMount: identity,\n willUnmount: identity,\n};\n// util funcs\n// ----------------------------------------------------------------------------------------------------\nfunction mergeRawOptions(optionSets) {\n return mergeProps(optionSets, COMPLEX_OPTION_COMPARATORS);\n}\nfunction refineProps(input, refiners) {\n let refined = {};\n let extra = {};\n for (let propName in refiners) {\n if (propName in input) {\n refined[propName] = refiners[propName](input[propName]);\n }\n }\n for (let propName in input) {\n if (!(propName in refiners)) {\n extra[propName] = input[propName];\n }\n }\n return { refined, extra };\n}\nfunction identity(raw) {\n return raw;\n}\n\nconst { hasOwnProperty } = Object.prototype;\n// Merges an array of objects into a single object.\n// The second argument allows for an array of property names who's object values will be merged together.\nfunction mergeProps(propObjs, complexPropsMap) {\n let dest = {};\n if (complexPropsMap) {\n for (let name in complexPropsMap) {\n if (complexPropsMap[name] === isMaybeObjectsEqual) { // implies that it's object-mergeable\n let complexObjs = [];\n // collect the trailing object values, stopping when a non-object is discovered\n for (let i = propObjs.length - 1; i >= 0; i -= 1) {\n let val = propObjs[i][name];\n if (typeof val === 'object' && val) { // non-null object\n complexObjs.unshift(val);\n }\n else if (val !== undefined) {\n dest[name] = val; // if there were no objects, this value will be used\n break;\n }\n }\n // if the trailing values were objects, use the merged value\n if (complexObjs.length) {\n dest[name] = mergeProps(complexObjs);\n }\n }\n }\n }\n // copy values into the destination, going from last to first\n for (let i = propObjs.length - 1; i >= 0; i -= 1) {\n let props = propObjs[i];\n for (let name in props) {\n if (!(name in dest)) { // if already assigned by previous props or complex props, don't reassign\n dest[name] = props[name];\n }\n }\n }\n return dest;\n}\nfunction filterHash(hash, func) {\n let filtered = {};\n for (let key in hash) {\n if (func(hash[key], key)) {\n filtered[key] = hash[key];\n }\n }\n return filtered;\n}\nfunction mapHash(hash, func) {\n let newHash = {};\n for (let key in hash) {\n newHash[key] = func(hash[key], key);\n }\n return newHash;\n}\nfunction arrayToHash(a) {\n let hash = {};\n for (let item of a) {\n hash[item] = true;\n }\n return hash;\n}\n// TODO: reassess browser support\n// https://caniuse.com/?search=object.values\nfunction hashValuesToArray(obj) {\n let a = [];\n for (let key in obj) {\n a.push(obj[key]);\n }\n return a;\n}\nfunction isPropsEqual(obj0, obj1) {\n if (obj0 === obj1) {\n return true;\n }\n for (let key in obj0) {\n if (hasOwnProperty.call(obj0, key)) {\n if (!(key in obj1)) {\n return false;\n }\n }\n }\n for (let key in obj1) {\n if (hasOwnProperty.call(obj1, key)) {\n if (obj0[key] !== obj1[key]) {\n return false;\n }\n }\n }\n return true;\n}\nconst HANDLER_RE = /^on[A-Z]/;\nfunction isNonHandlerPropsEqual(obj0, obj1) {\n const keys = getUnequalProps(obj0, obj1);\n for (let key of keys) {\n if (!HANDLER_RE.test(key)) {\n return false;\n }\n }\n return true;\n}\nfunction getUnequalProps(obj0, obj1) {\n let keys = [];\n for (let key in obj0) {\n if (hasOwnProperty.call(obj0, key)) {\n if (!(key in obj1)) {\n keys.push(key);\n }\n }\n }\n for (let key in obj1) {\n if (hasOwnProperty.call(obj1, key)) {\n if (obj0[key] !== obj1[key]) {\n keys.push(key);\n }\n }\n }\n return keys;\n}\nfunction compareObjs(oldProps, newProps, equalityFuncs = {}) {\n if (oldProps === newProps) {\n return true;\n }\n for (let key in newProps) {\n if (key in oldProps && isObjValsEqual(oldProps[key], newProps[key], equalityFuncs[key])) ;\n else {\n return false;\n }\n }\n // check for props that were omitted in the new\n for (let key in oldProps) {\n if (!(key in newProps)) {\n return false;\n }\n }\n return true;\n}\n/*\nassumed \"true\" equality for handler names like \"onReceiveSomething\"\n*/\nfunction isObjValsEqual(val0, val1, comparator) {\n if (val0 === val1 || comparator === true) {\n return true;\n }\n if (comparator) {\n return comparator(val0, val1);\n }\n return false;\n}\nfunction collectFromHash(hash, startIndex = 0, endIndex, step = 1) {\n let res = [];\n if (endIndex == null) {\n endIndex = Object.keys(hash).length;\n }\n for (let i = startIndex; i < endIndex; i += step) {\n let val = hash[i];\n if (val !== undefined) { // will disregard undefined for sparse arrays\n res.push(val);\n }\n }\n return res;\n}\n\nlet calendarSystemClassMap = {};\nfunction registerCalendarSystem(name, theClass) {\n calendarSystemClassMap[name] = theClass;\n}\nfunction createCalendarSystem(name) {\n return new calendarSystemClassMap[name]();\n}\nclass GregorianCalendarSystem {\n getMarkerYear(d) {\n return d.getUTCFullYear();\n }\n getMarkerMonth(d) {\n return d.getUTCMonth();\n }\n getMarkerDay(d) {\n return d.getUTCDate();\n }\n arrayToMarker(arr) {\n return arrayToUtcDate(arr);\n }\n markerToArray(marker) {\n return dateToUtcArray(marker);\n }\n}\nregisterCalendarSystem('gregory', GregorianCalendarSystem);\n\nconst ISO_RE = /^\\s*(\\d{4})(-?(\\d{2})(-?(\\d{2})([T ](\\d{2}):?(\\d{2})(:?(\\d{2})(\\.(\\d+))?)?(Z|(([-+])(\\d{2})(:?(\\d{2}))?))?)?)?)?$/;\nfunction parse(str) {\n let m = ISO_RE.exec(str);\n if (m) {\n let marker = new Date(Date.UTC(Number(m[1]), m[3] ? Number(m[3]) - 1 : 0, Number(m[5] || 1), Number(m[7] || 0), Number(m[8] || 0), Number(m[10] || 0), m[12] ? Number(`0.${m[12]}`) * 1000 : 0));\n if (isValidDate(marker)) {\n let timeZoneOffset = null;\n if (m[13]) {\n timeZoneOffset = (m[15] === '-' ? -1 : 1) * (Number(m[16] || 0) * 60 +\n Number(m[18] || 0));\n }\n return {\n marker,\n isTimeUnspecified: !m[6],\n timeZoneOffset,\n };\n }\n }\n return null;\n}\n\nclass DateEnv {\n constructor(settings) {\n let timeZone = this.timeZone = settings.timeZone;\n let isNamedTimeZone = timeZone !== 'local' && timeZone !== 'UTC';\n if (settings.namedTimeZoneImpl && isNamedTimeZone) {\n this.namedTimeZoneImpl = new settings.namedTimeZoneImpl(timeZone);\n }\n this.canComputeOffset = Boolean(!isNamedTimeZone || this.namedTimeZoneImpl);\n this.calendarSystem = createCalendarSystem(settings.calendarSystem);\n this.locale = settings.locale;\n this.weekDow = settings.locale.week.dow;\n this.weekDoy = settings.locale.week.doy;\n if (settings.weekNumberCalculation === 'ISO') {\n this.weekDow = 1;\n this.weekDoy = 4;\n }\n if (typeof settings.firstDay === 'number') {\n this.weekDow = settings.firstDay;\n }\n if (typeof settings.weekNumberCalculation === 'function') {\n this.weekNumberFunc = settings.weekNumberCalculation;\n }\n this.weekText = settings.weekText != null ? settings.weekText : settings.locale.options.weekText;\n this.weekTextLong = (settings.weekTextLong != null ? settings.weekTextLong : settings.locale.options.weekTextLong) || this.weekText;\n this.cmdFormatter = settings.cmdFormatter;\n this.defaultSeparator = settings.defaultSeparator;\n }\n // Creating / Parsing\n createMarker(input) {\n let meta = this.createMarkerMeta(input);\n if (meta === null) {\n return null;\n }\n return meta.marker;\n }\n createNowMarker() {\n if (this.canComputeOffset) {\n return this.timestampToMarker(new Date().valueOf());\n }\n // if we can't compute the current date val for a timezone,\n // better to give the current local date vals than UTC\n return arrayToUtcDate(dateToLocalArray(new Date()));\n }\n createMarkerMeta(input) {\n if (typeof input === 'string') {\n return this.parse(input);\n }\n let marker = null;\n if (typeof input === 'number') {\n marker = this.timestampToMarker(input);\n }\n else if (input instanceof Date) {\n input = input.valueOf();\n if (!isNaN(input)) {\n marker = this.timestampToMarker(input);\n }\n }\n else if (Array.isArray(input)) {\n marker = arrayToUtcDate(input);\n }\n if (marker === null || !isValidDate(marker)) {\n return null;\n }\n return { marker, isTimeUnspecified: false, forcedTzo: null };\n }\n parse(s) {\n let parts = parse(s);\n if (parts === null) {\n return null;\n }\n let { marker } = parts;\n let forcedTzo = null;\n if (parts.timeZoneOffset !== null) {\n if (this.canComputeOffset) {\n marker = this.timestampToMarker(marker.valueOf() - parts.timeZoneOffset * 60 * 1000);\n }\n else {\n forcedTzo = parts.timeZoneOffset;\n }\n }\n return { marker, isTimeUnspecified: parts.isTimeUnspecified, forcedTzo };\n }\n // Accessors\n getYear(marker) {\n return this.calendarSystem.getMarkerYear(marker);\n }\n getMonth(marker) {\n return this.calendarSystem.getMarkerMonth(marker);\n }\n getDay(marker) {\n return this.calendarSystem.getMarkerDay(marker);\n }\n // Adding / Subtracting\n add(marker, dur) {\n let a = this.calendarSystem.markerToArray(marker);\n a[0] += dur.years;\n a[1] += dur.months;\n a[2] += dur.days;\n a[6] += dur.milliseconds;\n return this.calendarSystem.arrayToMarker(a);\n }\n subtract(marker, dur) {\n let a = this.calendarSystem.markerToArray(marker);\n a[0] -= dur.years;\n a[1] -= dur.months;\n a[2] -= dur.days;\n a[6] -= dur.milliseconds;\n return this.calendarSystem.arrayToMarker(a);\n }\n addYears(marker, n) {\n let a = this.calendarSystem.markerToArray(marker);\n a[0] += n;\n return this.calendarSystem.arrayToMarker(a);\n }\n addMonths(marker, n) {\n let a = this.calendarSystem.markerToArray(marker);\n a[1] += n;\n return this.calendarSystem.arrayToMarker(a);\n }\n // Diffing Whole Units\n diffWholeYears(m0, m1) {\n let { calendarSystem } = this;\n if (timeAsMs(m0) === timeAsMs(m1) &&\n calendarSystem.getMarkerDay(m0) === calendarSystem.getMarkerDay(m1) &&\n calendarSystem.getMarkerMonth(m0) === calendarSystem.getMarkerMonth(m1)) {\n return calendarSystem.getMarkerYear(m1) - calendarSystem.getMarkerYear(m0);\n }\n return null;\n }\n diffWholeMonths(m0, m1) {\n let { calendarSystem } = this;\n if (timeAsMs(m0) === timeAsMs(m1) &&\n calendarSystem.getMarkerDay(m0) === calendarSystem.getMarkerDay(m1)) {\n return (calendarSystem.getMarkerMonth(m1) - calendarSystem.getMarkerMonth(m0)) +\n (calendarSystem.getMarkerYear(m1) - calendarSystem.getMarkerYear(m0)) * 12;\n }\n return null;\n }\n // Range / Duration\n greatestWholeUnit(m0, m1) {\n let n = this.diffWholeYears(m0, m1);\n if (n !== null) {\n return { unit: 'year', value: n };\n }\n n = this.diffWholeMonths(m0, m1);\n if (n !== null) {\n return { unit: 'month', value: n };\n }\n n = diffWholeWeeks(m0, m1);\n if (n !== null) {\n return { unit: 'week', value: n };\n }\n n = diffWholeDays(m0, m1);\n if (n !== null) {\n return { unit: 'day', value: n };\n }\n n = diffHours(m0, m1);\n if (isInt(n)) {\n return { unit: 'hour', value: n };\n }\n n = diffMinutes(m0, m1);\n if (isInt(n)) {\n return { unit: 'minute', value: n };\n }\n n = diffSeconds(m0, m1);\n if (isInt(n)) {\n return { unit: 'second', value: n };\n }\n return { unit: 'millisecond', value: m1.valueOf() - m0.valueOf() };\n }\n countDurationsBetween(m0, m1, d) {\n // TODO: can use greatestWholeUnit\n let diff;\n if (d.years) {\n diff = this.diffWholeYears(m0, m1);\n if (diff !== null) {\n return diff / asRoughYears(d);\n }\n }\n if (d.months) {\n diff = this.diffWholeMonths(m0, m1);\n if (diff !== null) {\n return diff / asRoughMonths(d);\n }\n }\n if (d.days) {\n diff = diffWholeDays(m0, m1);\n if (diff !== null) {\n return diff / asRoughDays(d);\n }\n }\n return (m1.valueOf() - m0.valueOf()) / asRoughMs(d);\n }\n // Start-Of\n // these DON'T return zoned-dates. only UTC start-of dates\n startOf(m, unit) {\n if (unit === 'year') {\n return this.startOfYear(m);\n }\n if (unit === 'month') {\n return this.startOfMonth(m);\n }\n if (unit === 'week') {\n return this.startOfWeek(m);\n }\n if (unit === 'day') {\n return startOfDay(m);\n }\n if (unit === 'hour') {\n return startOfHour(m);\n }\n if (unit === 'minute') {\n return startOfMinute(m);\n }\n if (unit === 'second') {\n return startOfSecond(m);\n }\n return null;\n }\n startOfYear(m) {\n return this.calendarSystem.arrayToMarker([\n this.calendarSystem.getMarkerYear(m),\n ]);\n }\n startOfMonth(m) {\n return this.calendarSystem.arrayToMarker([\n this.calendarSystem.getMarkerYear(m),\n this.calendarSystem.getMarkerMonth(m),\n ]);\n }\n startOfWeek(m) {\n return this.calendarSystem.arrayToMarker([\n this.calendarSystem.getMarkerYear(m),\n this.calendarSystem.getMarkerMonth(m),\n m.getUTCDate() - ((m.getUTCDay() - this.weekDow + 7) % 7),\n ]);\n }\n // Week Number\n computeWeekNumber(marker) {\n if (this.weekNumberFunc) {\n return this.weekNumberFunc(this.toDate(marker));\n }\n return weekOfYear(marker, this.weekDow, this.weekDoy);\n }\n // TODO: choke on timeZoneName: long\n format(marker, formatter, dateOptions = {}) {\n return formatter.format({\n marker,\n timeZoneOffset: dateOptions.forcedTzo != null ?\n dateOptions.forcedTzo :\n this.offsetForMarker(marker),\n }, this);\n }\n formatRange(start, end, formatter, dateOptions = {}) {\n if (dateOptions.isEndExclusive) {\n end = addMs(end, -1);\n }\n return formatter.formatRange({\n marker: start,\n timeZoneOffset: dateOptions.forcedStartTzo != null ?\n dateOptions.forcedStartTzo :\n this.offsetForMarker(start),\n }, {\n marker: end,\n timeZoneOffset: dateOptions.forcedEndTzo != null ?\n dateOptions.forcedEndTzo :\n this.offsetForMarker(end),\n }, this, dateOptions.defaultSeparator);\n }\n /*\n DUMB: the omitTime arg is dumb. if we omit the time, we want to omit the timezone offset. and if we do that,\n might as well use buildIsoString or some other util directly\n */\n formatIso(marker, extraOptions = {}) {\n let timeZoneOffset = null;\n if (!extraOptions.omitTimeZoneOffset) {\n if (extraOptions.forcedTzo != null) {\n timeZoneOffset = extraOptions.forcedTzo;\n }\n else {\n timeZoneOffset = this.offsetForMarker(marker);\n }\n }\n return buildIsoString(marker, timeZoneOffset, extraOptions.omitTime);\n }\n // TimeZone\n timestampToMarker(ms) {\n if (this.timeZone === 'local') {\n return arrayToUtcDate(dateToLocalArray(new Date(ms)));\n }\n if (this.timeZone === 'UTC' || !this.namedTimeZoneImpl) {\n return new Date(ms);\n }\n return arrayToUtcDate(this.namedTimeZoneImpl.timestampToArray(ms));\n }\n offsetForMarker(m) {\n if (this.timeZone === 'local') {\n return -arrayToLocalDate(dateToUtcArray(m)).getTimezoneOffset(); // convert \"inverse\" offset to \"normal\" offset\n }\n if (this.timeZone === 'UTC') {\n return 0;\n }\n if (this.namedTimeZoneImpl) {\n return this.namedTimeZoneImpl.offsetForArray(dateToUtcArray(m));\n }\n return null;\n }\n // Conversion\n toDate(m, forcedTzo) {\n if (this.timeZone === 'local') {\n return arrayToLocalDate(dateToUtcArray(m));\n }\n if (this.timeZone === 'UTC') {\n return new Date(m.valueOf()); // make sure it's a copy\n }\n if (!this.namedTimeZoneImpl) {\n return new Date(m.valueOf() - (forcedTzo || 0));\n }\n return new Date(m.valueOf() -\n this.namedTimeZoneImpl.offsetForArray(dateToUtcArray(m)) * 1000 * 60);\n }\n}\n\nclass Theme {\n constructor(calendarOptions) {\n if (this.iconOverrideOption) {\n this.setIconOverride(calendarOptions[this.iconOverrideOption]);\n }\n }\n setIconOverride(iconOverrideHash) {\n let iconClassesCopy;\n let buttonName;\n if (typeof iconOverrideHash === 'object' && iconOverrideHash) { // non-null object\n iconClassesCopy = Object.assign({}, this.iconClasses);\n for (buttonName in iconOverrideHash) {\n iconClassesCopy[buttonName] = this.applyIconOverridePrefix(iconOverrideHash[buttonName]);\n }\n this.iconClasses = iconClassesCopy;\n }\n else if (iconOverrideHash === false) {\n this.iconClasses = {};\n }\n }\n applyIconOverridePrefix(className) {\n let prefix = this.iconOverridePrefix;\n if (prefix && className.indexOf(prefix) !== 0) { // if not already present\n className = prefix + className;\n }\n return className;\n }\n getClass(key) {\n return this.classes[key] || '';\n }\n getIconClass(buttonName, isRtl) {\n let className;\n if (isRtl && this.rtlIconClasses) {\n className = this.rtlIconClasses[buttonName] || this.iconClasses[buttonName];\n }\n else {\n className = this.iconClasses[buttonName];\n }\n if (className) {\n return `${this.baseIconClass} ${className}`;\n }\n return '';\n }\n getCustomButtonIconClass(customButtonProps) {\n let className;\n if (this.iconOverrideCustomButtonOption) {\n className = customButtonProps[this.iconOverrideCustomButtonOption];\n if (className) {\n return `${this.baseIconClass} ${this.applyIconOverridePrefix(className)}`;\n }\n }\n return '';\n }\n}\nTheme.prototype.classes = {};\nTheme.prototype.iconClasses = {};\nTheme.prototype.baseIconClass = '';\nTheme.prototype.iconOverridePrefix = '';\n\n/*\nNOTE: this can be a public API, especially createElement for hooks.\nSee examples/typescript-scheduler/src/index.ts\n*/\nfunction flushSync(runBeforeFlush) {\n runBeforeFlush();\n let oldDebounceRendering = preact.options.debounceRendering; // orig\n let callbackQ = [];\n function execCallbackSync(callback) {\n callbackQ.push(callback);\n }\n preact.options.debounceRendering = execCallbackSync;\n preact.render(preact.createElement(FakeComponent, {}), document.createElement('div'));\n while (callbackQ.length) {\n callbackQ.shift()();\n }\n preact.options.debounceRendering = oldDebounceRendering;\n}\nclass FakeComponent extends preact.Component {\n render() { return preact.createElement('div', {}); }\n componentDidMount() { this.setState({}); }\n}\n// TODO: use preact/compat instead?\nfunction createContext(defaultValue) {\n let ContextType = preact.createContext(defaultValue);\n let origProvider = ContextType.Provider;\n ContextType.Provider = function () {\n let isNew = !this.getChildContext;\n let children = origProvider.apply(this, arguments); // eslint-disable-line prefer-rest-params\n if (isNew) {\n let subs = [];\n this.shouldComponentUpdate = (_props) => {\n if (this.props.value !== _props.value) {\n subs.forEach((c) => {\n c.context = _props.value;\n c.forceUpdate();\n });\n }\n };\n this.sub = (c) => {\n subs.push(c);\n let old = c.componentWillUnmount;\n c.componentWillUnmount = () => {\n subs.splice(subs.indexOf(c), 1);\n old && old.call(c);\n };\n };\n }\n return children;\n };\n return ContextType;\n}\n\nclass ScrollResponder {\n constructor(execFunc, emitter, scrollTime, scrollTimeReset) {\n this.execFunc = execFunc;\n this.emitter = emitter;\n this.scrollTime = scrollTime;\n this.scrollTimeReset = scrollTimeReset;\n this.handleScrollRequest = (request) => {\n this.queuedRequest = Object.assign({}, this.queuedRequest || {}, request);\n this.drain();\n };\n emitter.on('_scrollRequest', this.handleScrollRequest);\n this.fireInitialScroll();\n }\n detach() {\n this.emitter.off('_scrollRequest', this.handleScrollRequest);\n }\n update(isDatesNew) {\n if (isDatesNew && this.scrollTimeReset) {\n this.fireInitialScroll(); // will drain\n }\n else {\n this.drain();\n }\n }\n fireInitialScroll() {\n this.handleScrollRequest({\n time: this.scrollTime,\n });\n }\n drain() {\n if (this.queuedRequest && this.execFunc(this.queuedRequest)) {\n this.queuedRequest = null;\n }\n }\n}\n\nconst ViewContextType = createContext({}); // for Components\nfunction buildViewContext(viewSpec, viewApi, viewOptions, dateProfileGenerator, dateEnv, theme, pluginHooks, dispatch, getCurrentData, emitter, calendarApi, registerInteractiveComponent, unregisterInteractiveComponent) {\n return {\n dateEnv,\n options: viewOptions,\n pluginHooks,\n emitter,\n dispatch,\n getCurrentData,\n calendarApi,\n viewSpec,\n viewApi,\n dateProfileGenerator,\n theme,\n isRtl: viewOptions.direction === 'rtl',\n addResizeHandler(handler) {\n emitter.on('_resize', handler);\n },\n removeResizeHandler(handler) {\n emitter.off('_resize', handler);\n },\n createScrollResponder(execFunc) {\n return new ScrollResponder(execFunc, emitter, createDuration(viewOptions.scrollTime), viewOptions.scrollTimeReset);\n },\n registerInteractiveComponent,\n unregisterInteractiveComponent,\n };\n}\n\n/* eslint max-classes-per-file: off */\nclass PureComponent extends Component {\n shouldComponentUpdate(nextProps, nextState) {\n if (this.debug) {\n // eslint-disable-next-line no-console\n console.log(getUnequalProps(nextProps, this.props), getUnequalProps(nextState, this.state));\n }\n return !compareObjs(this.props, nextProps, this.propEquality) ||\n !compareObjs(this.state, nextState, this.stateEquality);\n }\n // HACK for freakin' React StrictMode\n safeSetState(newState) {\n if (!compareObjs(this.state, Object.assign(Object.assign({}, this.state), newState), this.stateEquality)) {\n this.setState(newState);\n }\n }\n}\nPureComponent.addPropsEquality = addPropsEquality;\nPureComponent.addStateEquality = addStateEquality;\nPureComponent.contextType = ViewContextType;\nPureComponent.prototype.propEquality = {};\nPureComponent.prototype.stateEquality = {};\nclass BaseComponent extends PureComponent {\n}\nBaseComponent.contextType = ViewContextType;\nfunction addPropsEquality(propEquality) {\n let hash = Object.create(this.prototype.propEquality);\n Object.assign(hash, propEquality);\n this.prototype.propEquality = hash;\n}\nfunction addStateEquality(stateEquality) {\n let hash = Object.create(this.prototype.stateEquality);\n Object.assign(hash, stateEquality);\n this.prototype.stateEquality = hash;\n}\n// use other one\nfunction setRef(ref, current) {\n if (typeof ref === 'function') {\n ref(current);\n }\n else if (ref) {\n // see https://github.com/facebook/react/issues/13029\n ref.current = current;\n }\n}\n\nclass ContentInjector extends BaseComponent {\n constructor() {\n super(...arguments);\n this.id = guid();\n this.queuedDomNodes = [];\n this.currentDomNodes = [];\n this.handleEl = (el) => {\n const { options } = this.context;\n const { generatorName } = this.props;\n if (!options.customRenderingReplaces || !hasCustomRenderingHandler(generatorName, options)) {\n this.updateElRef(el);\n }\n };\n this.updateElRef = (el) => {\n if (this.props.elRef) {\n setRef(this.props.elRef, el);\n }\n };\n }\n render() {\n const { props, context } = this;\n const { options } = context;\n const { customGenerator, defaultGenerator, renderProps } = props;\n const attrs = buildElAttrs(props, [], this.handleEl);\n let useDefault = false;\n let innerContent;\n let queuedDomNodes = [];\n let currentGeneratorMeta;\n if (customGenerator != null) {\n const customGeneratorRes = typeof customGenerator === 'function' ?\n customGenerator(renderProps, createElement) :\n customGenerator;\n if (customGeneratorRes === true) {\n useDefault = true;\n }\n else {\n const isObject = customGeneratorRes && typeof customGeneratorRes === 'object'; // non-null\n if (isObject && ('html' in customGeneratorRes)) {\n attrs.dangerouslySetInnerHTML = { __html: customGeneratorRes.html };\n }\n else if (isObject && ('domNodes' in customGeneratorRes)) {\n queuedDomNodes = Array.prototype.slice.call(customGeneratorRes.domNodes);\n }\n else if (isObject\n ? isValidElement(customGeneratorRes) // vdom node\n : typeof customGeneratorRes !== 'function' // primitive value (like string or number)\n ) {\n // use in vdom\n innerContent = customGeneratorRes;\n }\n else {\n // an exotic object for handleCustomRendering\n currentGeneratorMeta = customGeneratorRes;\n }\n }\n }\n else {\n useDefault = !hasCustomRenderingHandler(props.generatorName, options);\n }\n if (useDefault && defaultGenerator) {\n innerContent = defaultGenerator(renderProps);\n }\n this.queuedDomNodes = queuedDomNodes;\n this.currentGeneratorMeta = currentGeneratorMeta;\n return createElement(props.elTag, attrs, innerContent);\n }\n componentDidMount() {\n this.applyQueueudDomNodes();\n this.triggerCustomRendering(true);\n }\n componentDidUpdate() {\n this.applyQueueudDomNodes();\n this.triggerCustomRendering(true);\n }\n componentWillUnmount() {\n this.triggerCustomRendering(false); // TODO: different API for removal?\n }\n triggerCustomRendering(isActive) {\n var _a;\n const { props, context } = this;\n const { handleCustomRendering, customRenderingMetaMap } = context.options;\n if (handleCustomRendering) {\n const generatorMeta = (_a = this.currentGeneratorMeta) !== null && _a !== void 0 ? _a : customRenderingMetaMap === null || customRenderingMetaMap === void 0 ? void 0 : customRenderingMetaMap[props.generatorName];\n if (generatorMeta) {\n handleCustomRendering(Object.assign(Object.assign({ id: this.id, isActive, containerEl: this.base, reportNewContainerEl: this.updateElRef, // front-end framework tells us about new container els\n generatorMeta }, props), { elClasses: (props.elClasses || []).filter(isTruthy) }));\n }\n }\n }\n applyQueueudDomNodes() {\n const { queuedDomNodes, currentDomNodes } = this;\n const el = this.base;\n if (!isArraysEqual(queuedDomNodes, currentDomNodes)) {\n currentDomNodes.forEach(removeElement);\n for (let newNode of queuedDomNodes) {\n el.appendChild(newNode);\n }\n this.currentDomNodes = queuedDomNodes;\n }\n }\n}\nContentInjector.addPropsEquality({\n elClasses: isArraysEqual,\n elStyle: isPropsEqual,\n elAttrs: isNonHandlerPropsEqual,\n renderProps: isPropsEqual,\n});\n// Util\n/*\nDoes UI-framework provide custom way of rendering that does not use Preact VDOM\nAND does the calendar's options define custom rendering?\nAKA. Should we NOT render the default content?\n*/\nfunction hasCustomRenderingHandler(generatorName, options) {\n var _a;\n return Boolean(options.handleCustomRendering &&\n generatorName &&\n ((_a = options.customRenderingMetaMap) === null || _a === void 0 ? void 0 : _a[generatorName]));\n}\nfunction buildElAttrs(props, extraClassNames, elRef) {\n const attrs = Object.assign(Object.assign({}, props.elAttrs), { ref: elRef });\n if (props.elClasses || extraClassNames) {\n attrs.className = (props.elClasses || [])\n .concat(extraClassNames || [])\n .concat(attrs.className || [])\n .filter(Boolean)\n .join(' ');\n }\n if (props.elStyle) {\n attrs.style = props.elStyle;\n }\n return attrs;\n}\nfunction isTruthy(val) {\n return Boolean(val);\n}\n\nconst RenderId = createContext(0);\n\nclass ContentContainer extends Component {\n constructor() {\n super(...arguments);\n this.InnerContent = InnerContentInjector.bind(undefined, this);\n this.handleEl = (el) => {\n this.el = el;\n if (this.props.elRef) {\n setRef(this.props.elRef, el);\n if (el && this.didMountMisfire) {\n this.componentDidMount();\n }\n }\n };\n }\n render() {\n const { props } = this;\n const generatedClassNames = generateClassNames(props.classNameGenerator, props.renderProps);\n if (props.children) {\n const elAttrs = buildElAttrs(props, generatedClassNames, this.handleEl);\n const children = props.children(this.InnerContent, props.renderProps, elAttrs);\n if (props.elTag) {\n return createElement(props.elTag, elAttrs, children);\n }\n else {\n return children;\n }\n }\n else {\n return createElement((ContentInjector), Object.assign(Object.assign({}, props), { elRef: this.handleEl, elTag: props.elTag || 'div', elClasses: (props.elClasses || []).concat(generatedClassNames), renderId: this.context }));\n }\n }\n componentDidMount() {\n var _a, _b;\n if (this.el) {\n (_b = (_a = this.props).didMount) === null || _b === void 0 ? void 0 : _b.call(_a, Object.assign(Object.assign({}, this.props.renderProps), { el: this.el }));\n }\n else {\n this.didMountMisfire = true;\n }\n }\n componentWillUnmount() {\n var _a, _b;\n (_b = (_a = this.props).willUnmount) === null || _b === void 0 ? void 0 : _b.call(_a, Object.assign(Object.assign({}, this.props.renderProps), { el: this.el }));\n }\n}\nContentContainer.contextType = RenderId;\nfunction InnerContentInjector(containerComponent, props) {\n const parentProps = containerComponent.props;\n return createElement((ContentInjector), Object.assign({ renderProps: parentProps.renderProps, generatorName: parentProps.generatorName, customGenerator: parentProps.customGenerator, defaultGenerator: parentProps.defaultGenerator, renderId: containerComponent.context }, props));\n}\n// Utils\nfunction generateClassNames(classNameGenerator, renderProps) {\n const classNames = typeof classNameGenerator === 'function' ?\n classNameGenerator(renderProps) :\n classNameGenerator || [];\n return typeof classNames === 'string' ? [classNames] : classNames;\n}\n\nclass ViewContainer extends BaseComponent {\n render() {\n let { props, context } = this;\n let { options } = context;\n let renderProps = { view: context.viewApi };\n return (createElement(ContentContainer, Object.assign({}, props, { elTag: props.elTag || 'div', elClasses: [\n ...buildViewClassNames(props.viewSpec),\n ...(props.elClasses || []),\n ], renderProps: renderProps, classNameGenerator: options.viewClassNames, generatorName: undefined, didMount: options.viewDidMount, willUnmount: options.viewWillUnmount }), () => props.children));\n }\n}\nfunction buildViewClassNames(viewSpec) {\n return [\n `fc-${viewSpec.type}-view`,\n 'fc-view',\n ];\n}\n\nfunction parseRange(input, dateEnv) {\n let start = null;\n let end = null;\n if (input.start) {\n start = dateEnv.createMarker(input.start);\n }\n if (input.end) {\n end = dateEnv.createMarker(input.end);\n }\n if (!start && !end) {\n return null;\n }\n if (start && end && end < start) {\n return null;\n }\n return { start, end };\n}\n// SIDE-EFFECT: will mutate ranges.\n// Will return a new array result.\nfunction invertRanges(ranges, constraintRange) {\n let invertedRanges = [];\n let { start } = constraintRange; // the end of the previous range. the start of the new range\n let i;\n let dateRange;\n // ranges need to be in order. required for our date-walking algorithm\n ranges.sort(compareRanges);\n for (i = 0; i < ranges.length; i += 1) {\n dateRange = ranges[i];\n // add the span of time before the event (if there is any)\n if (dateRange.start > start) { // compare millisecond time (skip any ambig logic)\n invertedRanges.push({ start, end: dateRange.start });\n }\n if (dateRange.end > start) {\n start = dateRange.end;\n }\n }\n // add the span of time after the last event (if there is any)\n if (start < constraintRange.end) { // compare millisecond time (skip any ambig logic)\n invertedRanges.push({ start, end: constraintRange.end });\n }\n return invertedRanges;\n}\nfunction compareRanges(range0, range1) {\n return range0.start.valueOf() - range1.start.valueOf(); // earlier ranges go first\n}\nfunction intersectRanges(range0, range1) {\n let { start, end } = range0;\n let newRange = null;\n if (range1.start !== null) {\n if (start === null) {\n start = range1.start;\n }\n else {\n start = new Date(Math.max(start.valueOf(), range1.start.valueOf()));\n }\n }\n if (range1.end != null) {\n if (end === null) {\n end = range1.end;\n }\n else {\n end = new Date(Math.min(end.valueOf(), range1.end.valueOf()));\n }\n }\n if (start === null || end === null || start < end) {\n newRange = { start, end };\n }\n return newRange;\n}\nfunction rangesEqual(range0, range1) {\n return (range0.start === null ? null : range0.start.valueOf()) === (range1.start === null ? null : range1.start.valueOf()) &&\n (range0.end === null ? null : range0.end.valueOf()) === (range1.end === null ? null : range1.end.valueOf());\n}\nfunction rangesIntersect(range0, range1) {\n return (range0.end === null || range1.start === null || range0.end > range1.start) &&\n (range0.start === null || range1.end === null || range0.start < range1.end);\n}\nfunction rangeContainsRange(outerRange, innerRange) {\n return (outerRange.start === null || (innerRange.start !== null && innerRange.start >= outerRange.start)) &&\n (outerRange.end === null || (innerRange.end !== null && innerRange.end <= outerRange.end));\n}\nfunction rangeContainsMarker(range, date) {\n return (range.start === null || date >= range.start) &&\n (range.end === null || date < range.end);\n}\n// If the given date is not within the given range, move it inside.\n// (If it's past the end, make it one millisecond before the end).\nfunction constrainMarkerToRange(date, range) {\n if (range.start != null && date < range.start) {\n return range.start;\n }\n if (range.end != null && date >= range.end) {\n return new Date(range.end.valueOf() - 1);\n }\n return date;\n}\n\n/* Date stuff that doesn't belong in datelib core\n----------------------------------------------------------------------------------------------------------------------*/\n// given a timed range, computes an all-day range that has the same exact duration,\n// but whose start time is aligned with the start of the day.\nfunction computeAlignedDayRange(timedRange) {\n let dayCnt = Math.floor(diffDays(timedRange.start, timedRange.end)) || 1;\n let start = startOfDay(timedRange.start);\n let end = addDays(start, dayCnt);\n return { start, end };\n}\n// given a timed range, computes an all-day range based on how for the end date bleeds into the next day\n// TODO: give nextDayThreshold a default arg\nfunction computeVisibleDayRange(timedRange, nextDayThreshold = createDuration(0)) {\n let startDay = null;\n let endDay = null;\n if (timedRange.end) {\n endDay = startOfDay(timedRange.end);\n let endTimeMS = timedRange.end.valueOf() - endDay.valueOf(); // # of milliseconds into `endDay`\n // If the end time is actually inclusively part of the next day and is equal to or\n // beyond the next day threshold, adjust the end to be the exclusive end of `endDay`.\n // Otherwise, leaving it as inclusive will cause it to exclude `endDay`.\n if (endTimeMS && endTimeMS >= asRoughMs(nextDayThreshold)) {\n endDay = addDays(endDay, 1);\n }\n }\n if (timedRange.start) {\n startDay = startOfDay(timedRange.start); // the beginning of the day the range starts\n // If end is within `startDay` but not past nextDayThreshold, assign the default duration of one day.\n if (endDay && endDay <= startDay) {\n endDay = addDays(startDay, 1);\n }\n }\n return { start: startDay, end: endDay };\n}\n// spans from one day into another?\nfunction isMultiDayRange(range) {\n let visibleRange = computeVisibleDayRange(range);\n return diffDays(visibleRange.start, visibleRange.end) > 1;\n}\nfunction diffDates(date0, date1, dateEnv, largeUnit) {\n if (largeUnit === 'year') {\n return createDuration(dateEnv.diffWholeYears(date0, date1), 'year');\n }\n if (largeUnit === 'month') {\n return createDuration(dateEnv.diffWholeMonths(date0, date1), 'month');\n }\n return diffDayAndTime(date0, date1); // returns a duration\n}\n\nfunction reduceCurrentDate(currentDate, action) {\n switch (action.type) {\n case 'CHANGE_DATE':\n return action.dateMarker;\n default:\n return currentDate;\n }\n}\nfunction getInitialDate(options, dateEnv) {\n let initialDateInput = options.initialDate;\n // compute the initial ambig-timezone date\n if (initialDateInput != null) {\n return dateEnv.createMarker(initialDateInput);\n }\n return getNow(options.now, dateEnv); // getNow already returns unzoned\n}\nfunction getNow(nowInput, dateEnv) {\n if (typeof nowInput === 'function') {\n nowInput = nowInput();\n }\n if (nowInput == null) {\n return dateEnv.createNowMarker();\n }\n return dateEnv.createMarker(nowInput);\n}\n\nclass DateProfileGenerator {\n constructor(props) {\n this.props = props;\n this.nowDate = getNow(props.nowInput, props.dateEnv);\n this.initHiddenDays();\n }\n /* Date Range Computation\n ------------------------------------------------------------------------------------------------------------------*/\n // Builds a structure with info about what the dates/ranges will be for the \"prev\" view.\n buildPrev(currentDateProfile, currentDate, forceToValid) {\n let { dateEnv } = this.props;\n let prevDate = dateEnv.subtract(dateEnv.startOf(currentDate, currentDateProfile.currentRangeUnit), // important for start-of-month\n currentDateProfile.dateIncrement);\n return this.build(prevDate, -1, forceToValid);\n }\n // Builds a structure with info about what the dates/ranges will be for the \"next\" view.\n buildNext(currentDateProfile, currentDate, forceToValid) {\n let { dateEnv } = this.props;\n let nextDate = dateEnv.add(dateEnv.startOf(currentDate, currentDateProfile.currentRangeUnit), // important for start-of-month\n currentDateProfile.dateIncrement);\n return this.build(nextDate, 1, forceToValid);\n }\n // Builds a structure holding dates/ranges for rendering around the given date.\n // Optional direction param indicates whether the date is being incremented/decremented\n // from its previous value. decremented = -1, incremented = 1 (default).\n build(currentDate, direction, forceToValid = true) {\n let { props } = this;\n let validRange;\n let currentInfo;\n let isRangeAllDay;\n let renderRange;\n let activeRange;\n let isValid;\n validRange = this.buildValidRange();\n validRange = this.trimHiddenDays(validRange);\n if (forceToValid) {\n currentDate = constrainMarkerToRange(currentDate, validRange);\n }\n currentInfo = this.buildCurrentRangeInfo(currentDate, direction);\n isRangeAllDay = /^(year|month|week|day)$/.test(currentInfo.unit);\n renderRange = this.buildRenderRange(this.trimHiddenDays(currentInfo.range), currentInfo.unit, isRangeAllDay);\n renderRange = this.trimHiddenDays(renderRange);\n activeRange = renderRange;\n if (!props.showNonCurrentDates) {\n activeRange = intersectRanges(activeRange, currentInfo.range);\n }\n activeRange = this.adjustActiveRange(activeRange);\n activeRange = intersectRanges(activeRange, validRange); // might return null\n // it's invalid if the originally requested date is not contained,\n // or if the range is completely outside of the valid range.\n isValid = rangesIntersect(currentInfo.range, validRange);\n // HACK: constrain to render-range so `currentDate` is more useful to view rendering\n if (!rangeContainsMarker(renderRange, currentDate)) {\n currentDate = renderRange.start;\n }\n return {\n currentDate,\n // constraint for where prev/next operations can go and where events can be dragged/resized to.\n // an object with optional start and end properties.\n validRange,\n // range the view is formally responsible for.\n // for example, a month view might have 1st-31st, excluding padded dates\n currentRange: currentInfo.range,\n // name of largest unit being displayed, like \"month\" or \"week\"\n currentRangeUnit: currentInfo.unit,\n isRangeAllDay,\n // dates that display events and accept drag-n-drop\n // will be `null` if no dates accept events\n activeRange,\n // date range with a rendered skeleton\n // includes not-active days that need some sort of DOM\n renderRange,\n // Duration object that denotes the first visible time of any given day\n slotMinTime: props.slotMinTime,\n // Duration object that denotes the exclusive visible end time of any given day\n slotMaxTime: props.slotMaxTime,\n isValid,\n // how far the current date will move for a prev/next operation\n dateIncrement: this.buildDateIncrement(currentInfo.duration),\n // pass a fallback (might be null) ^\n };\n }\n // Builds an object with optional start/end properties.\n // Indicates the minimum/maximum dates to display.\n // not responsible for trimming hidden days.\n buildValidRange() {\n let input = this.props.validRangeInput;\n let simpleInput = typeof input === 'function'\n ? input.call(this.props.calendarApi, this.nowDate)\n : input;\n return this.refineRange(simpleInput) ||\n { start: null, end: null }; // completely open-ended\n }\n // Builds a structure with info about the \"current\" range, the range that is\n // highlighted as being the current month for example.\n // See build() for a description of `direction`.\n // Guaranteed to have `range` and `unit` properties. `duration` is optional.\n buildCurrentRangeInfo(date, direction) {\n let { props } = this;\n let duration = null;\n let unit = null;\n let range = null;\n let dayCount;\n if (props.duration) {\n duration = props.duration;\n unit = props.durationUnit;\n range = this.buildRangeFromDuration(date, direction, duration, unit);\n }\n else if ((dayCount = this.props.dayCount)) {\n unit = 'day';\n range = this.buildRangeFromDayCount(date, direction, dayCount);\n }\n else if ((range = this.buildCustomVisibleRange(date))) {\n unit = props.dateEnv.greatestWholeUnit(range.start, range.end).unit;\n }\n else {\n duration = this.getFallbackDuration();\n unit = greatestDurationDenominator(duration).unit;\n range = this.buildRangeFromDuration(date, direction, duration, unit);\n }\n return { duration, unit, range };\n }\n getFallbackDuration() {\n return createDuration({ day: 1 });\n }\n // Returns a new activeRange to have time values (un-ambiguate)\n // slotMinTime or slotMaxTime causes the range to expand.\n adjustActiveRange(range) {\n let { dateEnv, usesMinMaxTime, slotMinTime, slotMaxTime } = this.props;\n let { start, end } = range;\n if (usesMinMaxTime) {\n // expand active range if slotMinTime is negative (why not when positive?)\n if (asRoughDays(slotMinTime) < 0) {\n start = startOfDay(start); // necessary?\n start = dateEnv.add(start, slotMinTime);\n }\n // expand active range if slotMaxTime is beyond one day (why not when negative?)\n if (asRoughDays(slotMaxTime) > 1) {\n end = startOfDay(end); // necessary?\n end = addDays(end, -1);\n end = dateEnv.add(end, slotMaxTime);\n }\n }\n return { start, end };\n }\n // Builds the \"current\" range when it is specified as an explicit duration.\n // `unit` is the already-computed greatestDurationDenominator unit of duration.\n buildRangeFromDuration(date, direction, duration, unit) {\n let { dateEnv, dateAlignment } = this.props;\n let start;\n let end;\n let res;\n // compute what the alignment should be\n if (!dateAlignment) {\n let { dateIncrement } = this.props;\n if (dateIncrement) {\n // use the smaller of the two units\n if (asRoughMs(dateIncrement) < asRoughMs(duration)) {\n dateAlignment = greatestDurationDenominator(dateIncrement).unit;\n }\n else {\n dateAlignment = unit;\n }\n }\n else {\n dateAlignment = unit;\n }\n }\n // if the view displays a single day or smaller\n if (asRoughDays(duration) <= 1) {\n if (this.isHiddenDay(start)) {\n start = this.skipHiddenDays(start, direction);\n start = startOfDay(start);\n }\n }\n function computeRes() {\n start = dateEnv.startOf(date, dateAlignment);\n end = dateEnv.add(start, duration);\n res = { start, end };\n }\n computeRes();\n // if range is completely enveloped by hidden days, go past the hidden days\n if (!this.trimHiddenDays(res)) {\n date = this.skipHiddenDays(date, direction);\n computeRes();\n }\n return res;\n }\n // Builds the \"current\" range when a dayCount is specified.\n buildRangeFromDayCount(date, direction, dayCount) {\n let { dateEnv, dateAlignment } = this.props;\n let runningCount = 0;\n let start = date;\n let end;\n if (dateAlignment) {\n start = dateEnv.startOf(start, dateAlignment);\n }\n start = startOfDay(start);\n start = this.skipHiddenDays(start, direction);\n end = start;\n do {\n end = addDays(end, 1);\n if (!this.isHiddenDay(end)) {\n runningCount += 1;\n }\n } while (runningCount < dayCount);\n return { start, end };\n }\n // Builds a normalized range object for the \"visible\" range,\n // which is a way to define the currentRange and activeRange at the same time.\n buildCustomVisibleRange(date) {\n let { props } = this;\n let input = props.visibleRangeInput;\n let simpleInput = typeof input === 'function'\n ? input.call(props.calendarApi, props.dateEnv.toDate(date))\n : input;\n let range = this.refineRange(simpleInput);\n if (range && (range.start == null || range.end == null)) {\n return null;\n }\n return range;\n }\n // Computes the range that will represent the element/cells for *rendering*,\n // but which may have voided days/times.\n // not responsible for trimming hidden days.\n buildRenderRange(currentRange, currentRangeUnit, isRangeAllDay) {\n return currentRange;\n }\n // Compute the duration value that should be added/substracted to the current date\n // when a prev/next operation happens.\n buildDateIncrement(fallback) {\n let { dateIncrement } = this.props;\n let customAlignment;\n if (dateIncrement) {\n return dateIncrement;\n }\n if ((customAlignment = this.props.dateAlignment)) {\n return createDuration(1, customAlignment);\n }\n if (fallback) {\n return fallback;\n }\n return createDuration({ days: 1 });\n }\n refineRange(rangeInput) {\n if (rangeInput) {\n let range = parseRange(rangeInput, this.props.dateEnv);\n if (range) {\n range = computeVisibleDayRange(range);\n }\n return range;\n }\n return null;\n }\n /* Hidden Days\n ------------------------------------------------------------------------------------------------------------------*/\n // Initializes internal variables related to calculating hidden days-of-week\n initHiddenDays() {\n let hiddenDays = this.props.hiddenDays || []; // array of day-of-week indices that are hidden\n let isHiddenDayHash = []; // is the day-of-week hidden? (hash with day-of-week-index -> bool)\n let dayCnt = 0;\n let i;\n if (this.props.weekends === false) {\n hiddenDays.push(0, 6); // 0=sunday, 6=saturday\n }\n for (i = 0; i < 7; i += 1) {\n if (!(isHiddenDayHash[i] = hiddenDays.indexOf(i) !== -1)) {\n dayCnt += 1;\n }\n }\n if (!dayCnt) {\n throw new Error('invalid hiddenDays'); // all days were hidden? bad.\n }\n this.isHiddenDayHash = isHiddenDayHash;\n }\n // Remove days from the beginning and end of the range that are computed as hidden.\n // If the whole range is trimmed off, returns null\n trimHiddenDays(range) {\n let { start, end } = range;\n if (start) {\n start = this.skipHiddenDays(start);\n }\n if (end) {\n end = this.skipHiddenDays(end, -1, true);\n }\n if (start == null || end == null || start < end) {\n return { start, end };\n }\n return null;\n }\n // Is the current day hidden?\n // `day` is a day-of-week index (0-6), or a Date (used for UTC)\n isHiddenDay(day) {\n if (day instanceof Date) {\n day = day.getUTCDay();\n }\n return this.isHiddenDayHash[day];\n }\n // Incrementing the current day until it is no longer a hidden day, returning a copy.\n // DOES NOT CONSIDER validRange!\n // If the initial value of `date` is not a hidden day, don't do anything.\n // Pass `isExclusive` as `true` if you are dealing with an end date.\n // `inc` defaults to `1` (increment one day forward each time)\n skipHiddenDays(date, inc = 1, isExclusive = false) {\n while (this.isHiddenDayHash[(date.getUTCDay() + (isExclusive ? inc : 0) + 7) % 7]) {\n date = addDays(date, inc);\n }\n return date;\n }\n}\n\nfunction createEventInstance(defId, range, forcedStartTzo, forcedEndTzo) {\n return {\n instanceId: guid(),\n defId,\n range,\n forcedStartTzo: forcedStartTzo == null ? null : forcedStartTzo,\n forcedEndTzo: forcedEndTzo == null ? null : forcedEndTzo,\n };\n}\n\nfunction parseRecurring(refined, defaultAllDay, dateEnv, recurringTypes) {\n for (let i = 0; i < recurringTypes.length; i += 1) {\n let parsed = recurringTypes[i].parse(refined, dateEnv);\n if (parsed) {\n let { allDay } = refined;\n if (allDay == null) {\n allDay = defaultAllDay;\n if (allDay == null) {\n allDay = parsed.allDayGuess;\n if (allDay == null) {\n allDay = false;\n }\n }\n }\n return {\n allDay,\n duration: parsed.duration,\n typeData: parsed.typeData,\n typeId: i,\n };\n }\n }\n return null;\n}\nfunction expandRecurring(eventStore, framingRange, context) {\n let { dateEnv, pluginHooks, options } = context;\n let { defs, instances } = eventStore;\n // remove existing recurring instances\n // TODO: bad. always expand events as a second step\n instances = filterHash(instances, (instance) => !defs[instance.defId].recurringDef);\n for (let defId in defs) {\n let def = defs[defId];\n if (def.recurringDef) {\n let { duration } = def.recurringDef;\n if (!duration) {\n duration = def.allDay ?\n options.defaultAllDayEventDuration :\n options.defaultTimedEventDuration;\n }\n let starts = expandRecurringRanges(def, duration, framingRange, dateEnv, pluginHooks.recurringTypes);\n for (let start of starts) {\n let instance = createEventInstance(defId, {\n start,\n end: dateEnv.add(start, duration),\n });\n instances[instance.instanceId] = instance;\n }\n }\n }\n return { defs, instances };\n}\n/*\nEvent MUST have a recurringDef\n*/\nfunction expandRecurringRanges(eventDef, duration, framingRange, dateEnv, recurringTypes) {\n let typeDef = recurringTypes[eventDef.recurringDef.typeId];\n let markers = typeDef.expand(eventDef.recurringDef.typeData, {\n start: dateEnv.subtract(framingRange.start, duration),\n end: framingRange.end,\n }, dateEnv);\n // the recurrence plugins don't guarantee that all-day events are start-of-day, so we have to\n if (eventDef.allDay) {\n markers = markers.map(startOfDay);\n }\n return markers;\n}\n\nconst EVENT_NON_DATE_REFINERS = {\n id: String,\n groupId: String,\n title: String,\n url: String,\n interactive: Boolean,\n};\nconst EVENT_DATE_REFINERS = {\n start: identity,\n end: identity,\n date: identity,\n allDay: Boolean,\n};\nconst EVENT_REFINERS = Object.assign(Object.assign(Object.assign({}, EVENT_NON_DATE_REFINERS), EVENT_DATE_REFINERS), { extendedProps: identity });\nfunction parseEvent(raw, eventSource, context, allowOpenRange, refiners = buildEventRefiners(context), defIdMap, instanceIdMap) {\n let { refined, extra } = refineEventDef(raw, context, refiners);\n let defaultAllDay = computeIsDefaultAllDay(eventSource, context);\n let recurringRes = parseRecurring(refined, defaultAllDay, context.dateEnv, context.pluginHooks.recurringTypes);\n if (recurringRes) {\n let def = parseEventDef(refined, extra, eventSource ? eventSource.sourceId : '', recurringRes.allDay, Boolean(recurringRes.duration), context, defIdMap);\n def.recurringDef = {\n typeId: recurringRes.typeId,\n typeData: recurringRes.typeData,\n duration: recurringRes.duration,\n };\n return { def, instance: null };\n }\n let singleRes = parseSingle(refined, defaultAllDay, context, allowOpenRange);\n if (singleRes) {\n let def = parseEventDef(refined, extra, eventSource ? eventSource.sourceId : '', singleRes.allDay, singleRes.hasEnd, context, defIdMap);\n let instance = createEventInstance(def.defId, singleRes.range, singleRes.forcedStartTzo, singleRes.forcedEndTzo);\n if (instanceIdMap && def.publicId && instanceIdMap[def.publicId]) {\n instance.instanceId = instanceIdMap[def.publicId];\n }\n return { def, instance };\n }\n return null;\n}\nfunction refineEventDef(raw, context, refiners = buildEventRefiners(context)) {\n return refineProps(raw, refiners);\n}\nfunction buildEventRefiners(context) {\n return Object.assign(Object.assign(Object.assign({}, EVENT_UI_REFINERS), EVENT_REFINERS), context.pluginHooks.eventRefiners);\n}\n/*\nWill NOT populate extendedProps with the leftover properties.\nWill NOT populate date-related props.\n*/\nfunction parseEventDef(refined, extra, sourceId, allDay, hasEnd, context, defIdMap) {\n let def = {\n title: refined.title || '',\n groupId: refined.groupId || '',\n publicId: refined.id || '',\n url: refined.url || '',\n recurringDef: null,\n defId: ((defIdMap && refined.id) ? defIdMap[refined.id] : '') || guid(),\n sourceId,\n allDay,\n hasEnd,\n interactive: refined.interactive,\n ui: createEventUi(refined, context),\n extendedProps: Object.assign(Object.assign({}, (refined.extendedProps || {})), extra),\n };\n for (let memberAdder of context.pluginHooks.eventDefMemberAdders) {\n Object.assign(def, memberAdder(refined));\n }\n // help out EventImpl from having user modify props\n Object.freeze(def.ui.classNames);\n Object.freeze(def.extendedProps);\n return def;\n}\nfunction parseSingle(refined, defaultAllDay, context, allowOpenRange) {\n let { allDay } = refined;\n let startMeta;\n let startMarker = null;\n let hasEnd = false;\n let endMeta;\n let endMarker = null;\n let startInput = refined.start != null ? refined.start : refined.date;\n startMeta = context.dateEnv.createMarkerMeta(startInput);\n if (startMeta) {\n startMarker = startMeta.marker;\n }\n else if (!allowOpenRange) {\n return null;\n }\n if (refined.end != null) {\n endMeta = context.dateEnv.createMarkerMeta(refined.end);\n }\n if (allDay == null) {\n if (defaultAllDay != null) {\n allDay = defaultAllDay;\n }\n else {\n // fall back to the date props LAST\n allDay = (!startMeta || startMeta.isTimeUnspecified) &&\n (!endMeta || endMeta.isTimeUnspecified);\n }\n }\n if (allDay && startMarker) {\n startMarker = startOfDay(startMarker);\n }\n if (endMeta) {\n endMarker = endMeta.marker;\n if (allDay) {\n endMarker = startOfDay(endMarker);\n }\n if (startMarker && endMarker <= startMarker) {\n endMarker = null;\n }\n }\n if (endMarker) {\n hasEnd = true;\n }\n else if (!allowOpenRange) {\n hasEnd = context.options.forceEventDuration || false;\n endMarker = context.dateEnv.add(startMarker, allDay ?\n context.options.defaultAllDayEventDuration :\n context.options.defaultTimedEventDuration);\n }\n return {\n allDay,\n hasEnd,\n range: { start: startMarker, end: endMarker },\n forcedStartTzo: startMeta ? startMeta.forcedTzo : null,\n forcedEndTzo: endMeta ? endMeta.forcedTzo : null,\n };\n}\nfunction computeIsDefaultAllDay(eventSource, context) {\n let res = null;\n if (eventSource) {\n res = eventSource.defaultAllDay;\n }\n if (res == null) {\n res = context.options.defaultAllDay;\n }\n return res;\n}\n\nfunction parseEvents(rawEvents, eventSource, context, allowOpenRange, defIdMap, instanceIdMap) {\n let eventStore = createEmptyEventStore();\n let eventRefiners = buildEventRefiners(context);\n for (let rawEvent of rawEvents) {\n let tuple = parseEvent(rawEvent, eventSource, context, allowOpenRange, eventRefiners, defIdMap, instanceIdMap);\n if (tuple) {\n eventTupleToStore(tuple, eventStore);\n }\n }\n return eventStore;\n}\nfunction eventTupleToStore(tuple, eventStore = createEmptyEventStore()) {\n eventStore.defs[tuple.def.defId] = tuple.def;\n if (tuple.instance) {\n eventStore.instances[tuple.instance.instanceId] = tuple.instance;\n }\n return eventStore;\n}\n// retrieves events that have the same groupId as the instance specified by `instanceId`\n// or they are the same as the instance.\n// why might instanceId not be in the store? an event from another calendar?\nfunction getRelevantEvents(eventStore, instanceId) {\n let instance = eventStore.instances[instanceId];\n if (instance) {\n let def = eventStore.defs[instance.defId];\n // get events/instances with same group\n let newStore = filterEventStoreDefs(eventStore, (lookDef) => isEventDefsGrouped(def, lookDef));\n // add the original\n // TODO: wish we could use eventTupleToStore or something like it\n newStore.defs[def.defId] = def;\n newStore.instances[instance.instanceId] = instance;\n return newStore;\n }\n return createEmptyEventStore();\n}\nfunction isEventDefsGrouped(def0, def1) {\n return Boolean(def0.groupId && def0.groupId === def1.groupId);\n}\nfunction createEmptyEventStore() {\n return { defs: {}, instances: {} };\n}\nfunction mergeEventStores(store0, store1) {\n return {\n defs: Object.assign(Object.assign({}, store0.defs), store1.defs),\n instances: Object.assign(Object.assign({}, store0.instances), store1.instances),\n };\n}\nfunction filterEventStoreDefs(eventStore, filterFunc) {\n let defs = filterHash(eventStore.defs, filterFunc);\n let instances = filterHash(eventStore.instances, (instance) => (defs[instance.defId] // still exists?\n ));\n return { defs, instances };\n}\nfunction excludeSubEventStore(master, sub) {\n let { defs, instances } = master;\n let filteredDefs = {};\n let filteredInstances = {};\n for (let defId in defs) {\n if (!sub.defs[defId]) { // not explicitly excluded\n filteredDefs[defId] = defs[defId];\n }\n }\n for (let instanceId in instances) {\n if (!sub.instances[instanceId] && // not explicitly excluded\n filteredDefs[instances[instanceId].defId] // def wasn't filtered away\n ) {\n filteredInstances[instanceId] = instances[instanceId];\n }\n }\n return {\n defs: filteredDefs,\n instances: filteredInstances,\n };\n}\n\nfunction normalizeConstraint(input, context) {\n if (Array.isArray(input)) {\n return parseEvents(input, null, context, true); // allowOpenRange=true\n }\n if (typeof input === 'object' && input) { // non-null object\n return parseEvents([input], null, context, true); // allowOpenRange=true\n }\n if (input != null) {\n return String(input);\n }\n return null;\n}\n\nfunction parseClassNames(raw) {\n if (Array.isArray(raw)) {\n return raw;\n }\n if (typeof raw === 'string') {\n return raw.split(/\\s+/);\n }\n return [];\n}\n\n// TODO: better called \"EventSettings\" or \"EventConfig\"\n// TODO: move this file into structs\n// TODO: separate constraint/overlap/allow, because selection uses only that, not other props\nconst EVENT_UI_REFINERS = {\n display: String,\n editable: Boolean,\n startEditable: Boolean,\n durationEditable: Boolean,\n constraint: identity,\n overlap: identity,\n allow: identity,\n className: parseClassNames,\n classNames: parseClassNames,\n color: String,\n backgroundColor: String,\n borderColor: String,\n textColor: String,\n};\nconst EMPTY_EVENT_UI = {\n display: null,\n startEditable: null,\n durationEditable: null,\n constraints: [],\n overlap: null,\n allows: [],\n backgroundColor: '',\n borderColor: '',\n textColor: '',\n classNames: [],\n};\nfunction createEventUi(refined, context) {\n let constraint = normalizeConstraint(refined.constraint, context);\n return {\n display: refined.display || null,\n startEditable: refined.startEditable != null ? refined.startEditable : refined.editable,\n durationEditable: refined.durationEditable != null ? refined.durationEditable : refined.editable,\n constraints: constraint != null ? [constraint] : [],\n overlap: refined.overlap != null ? refined.overlap : null,\n allows: refined.allow != null ? [refined.allow] : [],\n backgroundColor: refined.backgroundColor || refined.color || '',\n borderColor: refined.borderColor || refined.color || '',\n textColor: refined.textColor || '',\n classNames: (refined.className || []).concat(refined.classNames || []), // join singular and plural\n };\n}\n// TODO: prevent against problems with <2 args!\nfunction combineEventUis(uis) {\n return uis.reduce(combineTwoEventUis, EMPTY_EVENT_UI);\n}\nfunction combineTwoEventUis(item0, item1) {\n return {\n display: item1.display != null ? item1.display : item0.display,\n startEditable: item1.startEditable != null ? item1.startEditable : item0.startEditable,\n durationEditable: item1.durationEditable != null ? item1.durationEditable : item0.durationEditable,\n constraints: item0.constraints.concat(item1.constraints),\n overlap: typeof item1.overlap === 'boolean' ? item1.overlap : item0.overlap,\n allows: item0.allows.concat(item1.allows),\n backgroundColor: item1.backgroundColor || item0.backgroundColor,\n borderColor: item1.borderColor || item0.borderColor,\n textColor: item1.textColor || item0.textColor,\n classNames: item0.classNames.concat(item1.classNames),\n };\n}\n\nconst EVENT_SOURCE_REFINERS = {\n id: String,\n defaultAllDay: Boolean,\n url: String,\n format: String,\n events: identity,\n eventDataTransform: identity,\n // for any network-related sources\n success: identity,\n failure: identity,\n};\nfunction parseEventSource(raw, context, refiners = buildEventSourceRefiners(context)) {\n let rawObj;\n if (typeof raw === 'string') {\n rawObj = { url: raw };\n }\n else if (typeof raw === 'function' || Array.isArray(raw)) {\n rawObj = { events: raw };\n }\n else if (typeof raw === 'object' && raw) { // not null\n rawObj = raw;\n }\n if (rawObj) {\n let { refined, extra } = refineProps(rawObj, refiners);\n let metaRes = buildEventSourceMeta(refined, context);\n if (metaRes) {\n return {\n _raw: raw,\n isFetching: false,\n latestFetchId: '',\n fetchRange: null,\n defaultAllDay: refined.defaultAllDay,\n eventDataTransform: refined.eventDataTransform,\n success: refined.success,\n failure: refined.failure,\n publicId: refined.id || '',\n sourceId: guid(),\n sourceDefId: metaRes.sourceDefId,\n meta: metaRes.meta,\n ui: createEventUi(refined, context),\n extendedProps: extra,\n };\n }\n }\n return null;\n}\nfunction buildEventSourceRefiners(context) {\n return Object.assign(Object.assign(Object.assign({}, EVENT_UI_REFINERS), EVENT_SOURCE_REFINERS), context.pluginHooks.eventSourceRefiners);\n}\nfunction buildEventSourceMeta(raw, context) {\n let defs = context.pluginHooks.eventSourceDefs;\n for (let i = defs.length - 1; i >= 0; i -= 1) { // later-added plugins take precedence\n let def = defs[i];\n let meta = def.parseMeta(raw);\n if (meta) {\n return { sourceDefId: i, meta };\n }\n }\n return null;\n}\n\nfunction reduceEventStore(eventStore, action, eventSources, dateProfile, context) {\n switch (action.type) {\n case 'RECEIVE_EVENTS': // raw\n return receiveRawEvents(eventStore, eventSources[action.sourceId], action.fetchId, action.fetchRange, action.rawEvents, context);\n case 'RESET_RAW_EVENTS':\n return resetRawEvents(eventStore, eventSources[action.sourceId], action.rawEvents, dateProfile.activeRange, context);\n case 'ADD_EVENTS': // already parsed, but not expanded\n return addEvent(eventStore, action.eventStore, // new ones\n dateProfile ? dateProfile.activeRange : null, context);\n case 'RESET_EVENTS':\n return action.eventStore;\n case 'MERGE_EVENTS': // already parsed and expanded\n return mergeEventStores(eventStore, action.eventStore);\n case 'PREV': // TODO: how do we track all actions that affect dateProfile :(\n case 'NEXT':\n case 'CHANGE_DATE':\n case 'CHANGE_VIEW_TYPE':\n if (dateProfile) {\n return expandRecurring(eventStore, dateProfile.activeRange, context);\n }\n return eventStore;\n case 'REMOVE_EVENTS':\n return excludeSubEventStore(eventStore, action.eventStore);\n case 'REMOVE_EVENT_SOURCE':\n return excludeEventsBySourceId(eventStore, action.sourceId);\n case 'REMOVE_ALL_EVENT_SOURCES':\n return filterEventStoreDefs(eventStore, (eventDef) => (!eventDef.sourceId // only keep events with no source id\n ));\n case 'REMOVE_ALL_EVENTS':\n return createEmptyEventStore();\n default:\n return eventStore;\n }\n}\nfunction receiveRawEvents(eventStore, eventSource, fetchId, fetchRange, rawEvents, context) {\n if (eventSource && // not already removed\n fetchId === eventSource.latestFetchId // TODO: wish this logic was always in event-sources\n ) {\n let subset = parseEvents(transformRawEvents(rawEvents, eventSource, context), eventSource, context);\n if (fetchRange) {\n subset = expandRecurring(subset, fetchRange, context);\n }\n return mergeEventStores(excludeEventsBySourceId(eventStore, eventSource.sourceId), subset);\n }\n return eventStore;\n}\nfunction resetRawEvents(existingEventStore, eventSource, rawEvents, activeRange, context) {\n const { defIdMap, instanceIdMap } = buildPublicIdMaps(existingEventStore);\n let newEventStore = parseEvents(transformRawEvents(rawEvents, eventSource, context), eventSource, context, false, defIdMap, instanceIdMap);\n return expandRecurring(newEventStore, activeRange, context);\n}\nfunction transformRawEvents(rawEvents, eventSource, context) {\n let calEachTransform = context.options.eventDataTransform;\n let sourceEachTransform = eventSource ? eventSource.eventDataTransform : null;\n if (sourceEachTransform) {\n rawEvents = transformEachRawEvent(rawEvents, sourceEachTransform);\n }\n if (calEachTransform) {\n rawEvents = transformEachRawEvent(rawEvents, calEachTransform);\n }\n return rawEvents;\n}\nfunction transformEachRawEvent(rawEvents, func) {\n let refinedEvents;\n if (!func) {\n refinedEvents = rawEvents;\n }\n else {\n refinedEvents = [];\n for (let rawEvent of rawEvents) {\n let refinedEvent = func(rawEvent);\n if (refinedEvent) {\n refinedEvents.push(refinedEvent);\n }\n else if (refinedEvent == null) {\n refinedEvents.push(rawEvent);\n } // if a different falsy value, do nothing\n }\n }\n return refinedEvents;\n}\nfunction addEvent(eventStore, subset, expandRange, context) {\n if (expandRange) {\n subset = expandRecurring(subset, expandRange, context);\n }\n return mergeEventStores(eventStore, subset);\n}\nfunction rezoneEventStoreDates(eventStore, oldDateEnv, newDateEnv) {\n let { defs } = eventStore;\n let instances = mapHash(eventStore.instances, (instance) => {\n let def = defs[instance.defId];\n if (def.allDay) {\n return instance; // isn't dependent on timezone\n }\n return Object.assign(Object.assign({}, instance), { range: {\n start: newDateEnv.createMarker(oldDateEnv.toDate(instance.range.start, instance.forcedStartTzo)),\n end: newDateEnv.createMarker(oldDateEnv.toDate(instance.range.end, instance.forcedEndTzo)),\n }, forcedStartTzo: newDateEnv.canComputeOffset ? null : instance.forcedStartTzo, forcedEndTzo: newDateEnv.canComputeOffset ? null : instance.forcedEndTzo });\n });\n return { defs, instances };\n}\nfunction excludeEventsBySourceId(eventStore, sourceId) {\n return filterEventStoreDefs(eventStore, (eventDef) => eventDef.sourceId !== sourceId);\n}\n// QUESTION: why not just return instances? do a general object-property-exclusion util\nfunction excludeInstances(eventStore, removals) {\n return {\n defs: eventStore.defs,\n instances: filterHash(eventStore.instances, (instance) => !removals[instance.instanceId]),\n };\n}\nfunction buildPublicIdMaps(eventStore) {\n const { defs, instances } = eventStore;\n const defIdMap = {};\n const instanceIdMap = {};\n for (let defId in defs) {\n const def = defs[defId];\n const { publicId } = def;\n if (publicId) {\n defIdMap[publicId] = defId;\n }\n }\n for (let instanceId in instances) {\n const instance = instances[instanceId];\n const def = defs[instance.defId];\n const { publicId } = def;\n if (publicId) {\n instanceIdMap[publicId] = instanceId;\n }\n }\n return { defIdMap, instanceIdMap };\n}\n\nclass Emitter {\n constructor() {\n this.handlers = {};\n this.thisContext = null;\n }\n setThisContext(thisContext) {\n this.thisContext = thisContext;\n }\n setOptions(options) {\n this.options = options;\n }\n on(type, handler) {\n addToHash(this.handlers, type, handler);\n }\n off(type, handler) {\n removeFromHash(this.handlers, type, handler);\n }\n trigger(type, ...args) {\n let attachedHandlers = this.handlers[type] || [];\n let optionHandler = this.options && this.options[type];\n let handlers = [].concat(optionHandler || [], attachedHandlers);\n for (let handler of handlers) {\n handler.apply(this.thisContext, args);\n }\n }\n hasHandlers(type) {\n return Boolean((this.handlers[type] && this.handlers[type].length) ||\n (this.options && this.options[type]));\n }\n}\nfunction addToHash(hash, type, handler) {\n (hash[type] || (hash[type] = []))\n .push(handler);\n}\nfunction removeFromHash(hash, type, handler) {\n if (handler) {\n if (hash[type]) {\n hash[type] = hash[type].filter((func) => func !== handler);\n }\n }\n else {\n delete hash[type]; // remove all handler funcs for this type\n }\n}\n\nconst DEF_DEFAULTS = {\n startTime: '09:00',\n endTime: '17:00',\n daysOfWeek: [1, 2, 3, 4, 5],\n display: 'inverse-background',\n classNames: 'fc-non-business',\n groupId: '_businessHours', // so multiple defs get grouped\n};\n/*\nTODO: pass around as EventDefHash!!!\n*/\nfunction parseBusinessHours(input, context) {\n return parseEvents(refineInputs(input), null, context);\n}\nfunction refineInputs(input) {\n let rawDefs;\n if (input === true) {\n rawDefs = [{}]; // will get DEF_DEFAULTS verbatim\n }\n else if (Array.isArray(input)) {\n // if specifying an array, every sub-definition NEEDS a day-of-week\n rawDefs = input.filter((rawDef) => rawDef.daysOfWeek);\n }\n else if (typeof input === 'object' && input) { // non-null object\n rawDefs = [input];\n }\n else { // is probably false\n rawDefs = [];\n }\n rawDefs = rawDefs.map((rawDef) => (Object.assign(Object.assign({}, DEF_DEFAULTS), rawDef)));\n return rawDefs;\n}\n\nfunction triggerDateSelect(selection, pev, context) {\n context.emitter.trigger('select', Object.assign(Object.assign({}, buildDateSpanApiWithContext(selection, context)), { jsEvent: pev ? pev.origEvent : null, view: context.viewApi || context.calendarApi.view }));\n}\nfunction triggerDateUnselect(pev, context) {\n context.emitter.trigger('unselect', {\n jsEvent: pev ? pev.origEvent : null,\n view: context.viewApi || context.calendarApi.view,\n });\n}\nfunction buildDateSpanApiWithContext(dateSpan, context) {\n let props = {};\n for (let transform of context.pluginHooks.dateSpanTransforms) {\n Object.assign(props, transform(dateSpan, context));\n }\n Object.assign(props, buildDateSpanApi(dateSpan, context.dateEnv));\n return props;\n}\n// Given an event's allDay status and start date, return what its fallback end date should be.\n// TODO: rename to computeDefaultEventEnd\nfunction getDefaultEventEnd(allDay, marker, context) {\n let { dateEnv, options } = context;\n let end = marker;\n if (allDay) {\n end = startOfDay(end);\n end = dateEnv.add(end, options.defaultAllDayEventDuration);\n }\n else {\n end = dateEnv.add(end, options.defaultTimedEventDuration);\n }\n return end;\n}\n\n// applies the mutation to ALL defs/instances within the event store\nfunction applyMutationToEventStore(eventStore, eventConfigBase, mutation, context) {\n let eventConfigs = compileEventUis(eventStore.defs, eventConfigBase);\n let dest = createEmptyEventStore();\n for (let defId in eventStore.defs) {\n let def = eventStore.defs[defId];\n dest.defs[defId] = applyMutationToEventDef(def, eventConfigs[defId], mutation, context);\n }\n for (let instanceId in eventStore.instances) {\n let instance = eventStore.instances[instanceId];\n let def = dest.defs[instance.defId]; // important to grab the newly modified def\n dest.instances[instanceId] = applyMutationToEventInstance(instance, def, eventConfigs[instance.defId], mutation, context);\n }\n return dest;\n}\nfunction applyMutationToEventDef(eventDef, eventConfig, mutation, context) {\n let standardProps = mutation.standardProps || {};\n // if hasEnd has not been specified, guess a good value based on deltas.\n // if duration will change, there's no way the default duration will persist,\n // and thus, we need to mark the event as having a real end\n if (standardProps.hasEnd == null &&\n eventConfig.durationEditable &&\n (mutation.startDelta || mutation.endDelta)) {\n standardProps.hasEnd = true; // TODO: is this mutation okay?\n }\n let copy = Object.assign(Object.assign(Object.assign({}, eventDef), standardProps), { ui: Object.assign(Object.assign({}, eventDef.ui), standardProps.ui) });\n if (mutation.extendedProps) {\n copy.extendedProps = Object.assign(Object.assign({}, copy.extendedProps), mutation.extendedProps);\n }\n for (let applier of context.pluginHooks.eventDefMutationAppliers) {\n applier(copy, mutation, context);\n }\n if (!copy.hasEnd && context.options.forceEventDuration) {\n copy.hasEnd = true;\n }\n return copy;\n}\nfunction applyMutationToEventInstance(eventInstance, eventDef, // must first be modified by applyMutationToEventDef\neventConfig, mutation, context) {\n let { dateEnv } = context;\n let forceAllDay = mutation.standardProps && mutation.standardProps.allDay === true;\n let clearEnd = mutation.standardProps && mutation.standardProps.hasEnd === false;\n let copy = Object.assign({}, eventInstance);\n if (forceAllDay) {\n copy.range = computeAlignedDayRange(copy.range);\n }\n if (mutation.datesDelta && eventConfig.startEditable) {\n copy.range = {\n start: dateEnv.add(copy.range.start, mutation.datesDelta),\n end: dateEnv.add(copy.range.end, mutation.datesDelta),\n };\n }\n if (mutation.startDelta && eventConfig.durationEditable) {\n copy.range = {\n start: dateEnv.add(copy.range.start, mutation.startDelta),\n end: copy.range.end,\n };\n }\n if (mutation.endDelta && eventConfig.durationEditable) {\n copy.range = {\n start: copy.range.start,\n end: dateEnv.add(copy.range.end, mutation.endDelta),\n };\n }\n if (clearEnd) {\n copy.range = {\n start: copy.range.start,\n end: getDefaultEventEnd(eventDef.allDay, copy.range.start, context),\n };\n }\n // in case event was all-day but the supplied deltas were not\n // better util for this?\n if (eventDef.allDay) {\n copy.range = {\n start: startOfDay(copy.range.start),\n end: startOfDay(copy.range.end),\n };\n }\n // handle invalid durations\n if (copy.range.end < copy.range.start) {\n copy.range.end = getDefaultEventEnd(eventDef.allDay, copy.range.start, context);\n }\n return copy;\n}\n\nclass EventSourceImpl {\n constructor(context, internalEventSource) {\n this.context = context;\n this.internalEventSource = internalEventSource;\n }\n remove() {\n this.context.dispatch({\n type: 'REMOVE_EVENT_SOURCE',\n sourceId: this.internalEventSource.sourceId,\n });\n }\n refetch() {\n this.context.dispatch({\n type: 'FETCH_EVENT_SOURCES',\n sourceIds: [this.internalEventSource.sourceId],\n isRefetch: true,\n });\n }\n get id() {\n return this.internalEventSource.publicId;\n }\n get url() {\n return this.internalEventSource.meta.url;\n }\n get format() {\n return this.internalEventSource.meta.format; // TODO: bad. not guaranteed\n }\n}\n\nclass EventImpl {\n // instance will be null if expressing a recurring event that has no current instances,\n // OR if trying to validate an incoming external event that has no dates assigned\n constructor(context, def, instance) {\n this._context = context;\n this._def = def;\n this._instance = instance || null;\n }\n /*\n TODO: make event struct more responsible for this\n */\n setProp(name, val) {\n if (name in EVENT_DATE_REFINERS) {\n console.warn('Could not set date-related prop \\'name\\'. Use one of the date-related methods instead.');\n // TODO: make proper aliasing system?\n }\n else if (name === 'id') {\n val = EVENT_NON_DATE_REFINERS[name](val);\n this.mutate({\n standardProps: { publicId: val }, // hardcoded internal name\n });\n }\n else if (name in EVENT_NON_DATE_REFINERS) {\n val = EVENT_NON_DATE_REFINERS[name](val);\n this.mutate({\n standardProps: { [name]: val },\n });\n }\n else if (name in EVENT_UI_REFINERS) {\n let ui = EVENT_UI_REFINERS[name](val);\n if (name === 'color') {\n ui = { backgroundColor: val, borderColor: val };\n }\n else if (name === 'editable') {\n ui = { startEditable: val, durationEditable: val };\n }\n else {\n ui = { [name]: val };\n }\n this.mutate({\n standardProps: { ui },\n });\n }\n else {\n console.warn(`Could not set prop '${name}'. Use setExtendedProp instead.`);\n }\n }\n setExtendedProp(name, val) {\n this.mutate({\n extendedProps: { [name]: val },\n });\n }\n setStart(startInput, options = {}) {\n let { dateEnv } = this._context;\n let start = dateEnv.createMarker(startInput);\n if (start && this._instance) { // TODO: warning if parsed bad\n let instanceRange = this._instance.range;\n let startDelta = diffDates(instanceRange.start, start, dateEnv, options.granularity); // what if parsed bad!?\n if (options.maintainDuration) {\n this.mutate({ datesDelta: startDelta });\n }\n else {\n this.mutate({ startDelta });\n }\n }\n }\n setEnd(endInput, options = {}) {\n let { dateEnv } = this._context;\n let end;\n if (endInput != null) {\n end = dateEnv.createMarker(endInput);\n if (!end) {\n return; // TODO: warning if parsed bad\n }\n }\n if (this._instance) {\n if (end) {\n let endDelta = diffDates(this._instance.range.end, end, dateEnv, options.granularity);\n this.mutate({ endDelta });\n }\n else {\n this.mutate({ standardProps: { hasEnd: false } });\n }\n }\n }\n setDates(startInput, endInput, options = {}) {\n let { dateEnv } = this._context;\n let standardProps = { allDay: options.allDay };\n let start = dateEnv.createMarker(startInput);\n let end;\n if (!start) {\n return; // TODO: warning if parsed bad\n }\n if (endInput != null) {\n end = dateEnv.createMarker(endInput);\n if (!end) { // TODO: warning if parsed bad\n return;\n }\n }\n if (this._instance) {\n let instanceRange = this._instance.range;\n // when computing the diff for an event being converted to all-day,\n // compute diff off of the all-day values the way event-mutation does.\n if (options.allDay === true) {\n instanceRange = computeAlignedDayRange(instanceRange);\n }\n let startDelta = diffDates(instanceRange.start, start, dateEnv, options.granularity);\n if (end) {\n let endDelta = diffDates(instanceRange.end, end, dateEnv, options.granularity);\n if (durationsEqual(startDelta, endDelta)) {\n this.mutate({ datesDelta: startDelta, standardProps });\n }\n else {\n this.mutate({ startDelta, endDelta, standardProps });\n }\n }\n else { // means \"clear the end\"\n standardProps.hasEnd = false;\n this.mutate({ datesDelta: startDelta, standardProps });\n }\n }\n }\n moveStart(deltaInput) {\n let delta = createDuration(deltaInput);\n if (delta) { // TODO: warning if parsed bad\n this.mutate({ startDelta: delta });\n }\n }\n moveEnd(deltaInput) {\n let delta = createDuration(deltaInput);\n if (delta) { // TODO: warning if parsed bad\n this.mutate({ endDelta: delta });\n }\n }\n moveDates(deltaInput) {\n let delta = createDuration(deltaInput);\n if (delta) { // TODO: warning if parsed bad\n this.mutate({ datesDelta: delta });\n }\n }\n setAllDay(allDay, options = {}) {\n let standardProps = { allDay };\n let { maintainDuration } = options;\n if (maintainDuration == null) {\n maintainDuration = this._context.options.allDayMaintainDuration;\n }\n if (this._def.allDay !== allDay) {\n standardProps.hasEnd = maintainDuration;\n }\n this.mutate({ standardProps });\n }\n formatRange(formatInput) {\n let { dateEnv } = this._context;\n let instance = this._instance;\n let formatter = createFormatter(formatInput);\n if (this._def.hasEnd) {\n return dateEnv.formatRange(instance.range.start, instance.range.end, formatter, {\n forcedStartTzo: instance.forcedStartTzo,\n forcedEndTzo: instance.forcedEndTzo,\n });\n }\n return dateEnv.format(instance.range.start, formatter, {\n forcedTzo: instance.forcedStartTzo,\n });\n }\n mutate(mutation) {\n let instance = this._instance;\n if (instance) {\n let def = this._def;\n let context = this._context;\n let { eventStore } = context.getCurrentData();\n let relevantEvents = getRelevantEvents(eventStore, instance.instanceId);\n let eventConfigBase = {\n '': {\n display: '',\n startEditable: true,\n durationEditable: true,\n constraints: [],\n overlap: null,\n allows: [],\n backgroundColor: '',\n borderColor: '',\n textColor: '',\n classNames: [],\n },\n };\n relevantEvents = applyMutationToEventStore(relevantEvents, eventConfigBase, mutation, context);\n let oldEvent = new EventImpl(context, def, instance); // snapshot\n this._def = relevantEvents.defs[def.defId];\n this._instance = relevantEvents.instances[instance.instanceId];\n context.dispatch({\n type: 'MERGE_EVENTS',\n eventStore: relevantEvents,\n });\n context.emitter.trigger('eventChange', {\n oldEvent,\n event: this,\n relatedEvents: buildEventApis(relevantEvents, context, instance),\n revert() {\n context.dispatch({\n type: 'RESET_EVENTS',\n eventStore, // the ORIGINAL store\n });\n },\n });\n }\n }\n remove() {\n let context = this._context;\n let asStore = eventApiToStore(this);\n context.dispatch({\n type: 'REMOVE_EVENTS',\n eventStore: asStore,\n });\n context.emitter.trigger('eventRemove', {\n event: this,\n relatedEvents: [],\n revert() {\n context.dispatch({\n type: 'MERGE_EVENTS',\n eventStore: asStore,\n });\n },\n });\n }\n get source() {\n let { sourceId } = this._def;\n if (sourceId) {\n return new EventSourceImpl(this._context, this._context.getCurrentData().eventSources[sourceId]);\n }\n return null;\n }\n get start() {\n return this._instance ?\n this._context.dateEnv.toDate(this._instance.range.start) :\n null;\n }\n get end() {\n return (this._instance && this._def.hasEnd) ?\n this._context.dateEnv.toDate(this._instance.range.end) :\n null;\n }\n get startStr() {\n let instance = this._instance;\n if (instance) {\n return this._context.dateEnv.formatIso(instance.range.start, {\n omitTime: this._def.allDay,\n forcedTzo: instance.forcedStartTzo,\n });\n }\n return '';\n }\n get endStr() {\n let instance = this._instance;\n if (instance && this._def.hasEnd) {\n return this._context.dateEnv.formatIso(instance.range.end, {\n omitTime: this._def.allDay,\n forcedTzo: instance.forcedEndTzo,\n });\n }\n return '';\n }\n // computable props that all access the def\n // TODO: find a TypeScript-compatible way to do this at scale\n get id() { return this._def.publicId; }\n get groupId() { return this._def.groupId; }\n get allDay() { return this._def.allDay; }\n get title() { return this._def.title; }\n get url() { return this._def.url; }\n get display() { return this._def.ui.display || 'auto'; } // bad. just normalize the type earlier\n get startEditable() { return this._def.ui.startEditable; }\n get durationEditable() { return this._def.ui.durationEditable; }\n get constraint() { return this._def.ui.constraints[0] || null; }\n get overlap() { return this._def.ui.overlap; }\n get allow() { return this._def.ui.allows[0] || null; }\n get backgroundColor() { return this._def.ui.backgroundColor; }\n get borderColor() { return this._def.ui.borderColor; }\n get textColor() { return this._def.ui.textColor; }\n // NOTE: user can't modify these because Object.freeze was called in event-def parsing\n get classNames() { return this._def.ui.classNames; }\n get extendedProps() { return this._def.extendedProps; }\n toPlainObject(settings = {}) {\n let def = this._def;\n let { ui } = def;\n let { startStr, endStr } = this;\n let res = {\n allDay: def.allDay,\n };\n if (def.title) {\n res.title = def.title;\n }\n if (startStr) {\n res.start = startStr;\n }\n if (endStr) {\n res.end = endStr;\n }\n if (def.publicId) {\n res.id = def.publicId;\n }\n if (def.groupId) {\n res.groupId = def.groupId;\n }\n if (def.url) {\n res.url = def.url;\n }\n if (ui.display && ui.display !== 'auto') {\n res.display = ui.display;\n }\n // TODO: what about recurring-event properties???\n // TODO: include startEditable/durationEditable/constraint/overlap/allow\n if (settings.collapseColor && ui.backgroundColor && ui.backgroundColor === ui.borderColor) {\n res.color = ui.backgroundColor;\n }\n else {\n if (ui.backgroundColor) {\n res.backgroundColor = ui.backgroundColor;\n }\n if (ui.borderColor) {\n res.borderColor = ui.borderColor;\n }\n }\n if (ui.textColor) {\n res.textColor = ui.textColor;\n }\n if (ui.classNames.length) {\n res.classNames = ui.classNames;\n }\n if (Object.keys(def.extendedProps).length) {\n if (settings.collapseExtendedProps) {\n Object.assign(res, def.extendedProps);\n }\n else {\n res.extendedProps = def.extendedProps;\n }\n }\n return res;\n }\n toJSON() {\n return this.toPlainObject();\n }\n}\nfunction eventApiToStore(eventApi) {\n let def = eventApi._def;\n let instance = eventApi._instance;\n return {\n defs: { [def.defId]: def },\n instances: instance\n ? { [instance.instanceId]: instance }\n : {},\n };\n}\nfunction buildEventApis(eventStore, context, excludeInstance) {\n let { defs, instances } = eventStore;\n let eventApis = [];\n let excludeInstanceId = excludeInstance ? excludeInstance.instanceId : '';\n for (let id in instances) {\n let instance = instances[id];\n let def = defs[instance.defId];\n if (instance.instanceId !== excludeInstanceId) {\n eventApis.push(new EventImpl(context, def, instance));\n }\n }\n return eventApis;\n}\n\n/*\nSpecifying nextDayThreshold signals that all-day ranges should be sliced.\n*/\nfunction sliceEventStore(eventStore, eventUiBases, framingRange, nextDayThreshold) {\n let inverseBgByGroupId = {};\n let inverseBgByDefId = {};\n let defByGroupId = {};\n let bgRanges = [];\n let fgRanges = [];\n let eventUis = compileEventUis(eventStore.defs, eventUiBases);\n for (let defId in eventStore.defs) {\n let def = eventStore.defs[defId];\n let ui = eventUis[def.defId];\n if (ui.display === 'inverse-background') {\n if (def.groupId) {\n inverseBgByGroupId[def.groupId] = [];\n if (!defByGroupId[def.groupId]) {\n defByGroupId[def.groupId] = def;\n }\n }\n else {\n inverseBgByDefId[defId] = [];\n }\n }\n }\n for (let instanceId in eventStore.instances) {\n let instance = eventStore.instances[instanceId];\n let def = eventStore.defs[instance.defId];\n let ui = eventUis[def.defId];\n let origRange = instance.range;\n let normalRange = (!def.allDay && nextDayThreshold) ?\n computeVisibleDayRange(origRange, nextDayThreshold) :\n origRange;\n let slicedRange = intersectRanges(normalRange, framingRange);\n if (slicedRange) {\n if (ui.display === 'inverse-background') {\n if (def.groupId) {\n inverseBgByGroupId[def.groupId].push(slicedRange);\n }\n else {\n inverseBgByDefId[instance.defId].push(slicedRange);\n }\n }\n else if (ui.display !== 'none') {\n (ui.display === 'background' ? bgRanges : fgRanges).push({\n def,\n ui,\n instance,\n range: slicedRange,\n isStart: normalRange.start && normalRange.start.valueOf() === slicedRange.start.valueOf(),\n isEnd: normalRange.end && normalRange.end.valueOf() === slicedRange.end.valueOf(),\n });\n }\n }\n }\n for (let groupId in inverseBgByGroupId) { // BY GROUP\n let ranges = inverseBgByGroupId[groupId];\n let invertedRanges = invertRanges(ranges, framingRange);\n for (let invertedRange of invertedRanges) {\n let def = defByGroupId[groupId];\n let ui = eventUis[def.defId];\n bgRanges.push({\n def,\n ui,\n instance: null,\n range: invertedRange,\n isStart: false,\n isEnd: false,\n });\n }\n }\n for (let defId in inverseBgByDefId) {\n let ranges = inverseBgByDefId[defId];\n let invertedRanges = invertRanges(ranges, framingRange);\n for (let invertedRange of invertedRanges) {\n bgRanges.push({\n def: eventStore.defs[defId],\n ui: eventUis[defId],\n instance: null,\n range: invertedRange,\n isStart: false,\n isEnd: false,\n });\n }\n }\n return { bg: bgRanges, fg: fgRanges };\n}\nfunction hasBgRendering(def) {\n return def.ui.display === 'background' || def.ui.display === 'inverse-background';\n}\nfunction setElSeg(el, seg) {\n el.fcSeg = seg;\n}\nfunction getElSeg(el) {\n return el.fcSeg ||\n el.parentNode.fcSeg || // for the harness\n null;\n}\n// event ui computation\nfunction compileEventUis(eventDefs, eventUiBases) {\n return mapHash(eventDefs, (eventDef) => compileEventUi(eventDef, eventUiBases));\n}\nfunction compileEventUi(eventDef, eventUiBases) {\n let uis = [];\n if (eventUiBases['']) {\n uis.push(eventUiBases['']);\n }\n if (eventUiBases[eventDef.defId]) {\n uis.push(eventUiBases[eventDef.defId]);\n }\n uis.push(eventDef.ui);\n return combineEventUis(uis);\n}\nfunction sortEventSegs(segs, eventOrderSpecs) {\n let objs = segs.map(buildSegCompareObj);\n objs.sort((obj0, obj1) => compareByFieldSpecs(obj0, obj1, eventOrderSpecs));\n return objs.map((c) => c._seg);\n}\n// returns a object with all primitive props that can be compared\nfunction buildSegCompareObj(seg) {\n let { eventRange } = seg;\n let eventDef = eventRange.def;\n let range = eventRange.instance ? eventRange.instance.range : eventRange.range;\n let start = range.start ? range.start.valueOf() : 0; // TODO: better support for open-range events\n let end = range.end ? range.end.valueOf() : 0; // \"\n return Object.assign(Object.assign(Object.assign({}, eventDef.extendedProps), eventDef), { id: eventDef.publicId, start,\n end, duration: end - start, allDay: Number(eventDef.allDay), _seg: seg });\n}\nfunction computeSegDraggable(seg, context) {\n let { pluginHooks } = context;\n let transformers = pluginHooks.isDraggableTransformers;\n let { def, ui } = seg.eventRange;\n let val = ui.startEditable;\n for (let transformer of transformers) {\n val = transformer(val, def, ui, context);\n }\n return val;\n}\nfunction computeSegStartResizable(seg, context) {\n return seg.isStart && seg.eventRange.ui.durationEditable && context.options.eventResizableFromStart;\n}\nfunction computeSegEndResizable(seg, context) {\n return seg.isEnd && seg.eventRange.ui.durationEditable;\n}\nfunction buildSegTimeText(seg, timeFormat, context, defaultDisplayEventTime, // defaults to true\ndefaultDisplayEventEnd, // defaults to true\nstartOverride, endOverride) {\n let { dateEnv, options } = context;\n let { displayEventTime, displayEventEnd } = options;\n let eventDef = seg.eventRange.def;\n let eventInstance = seg.eventRange.instance;\n if (displayEventTime == null) {\n displayEventTime = defaultDisplayEventTime !== false;\n }\n if (displayEventEnd == null) {\n displayEventEnd = defaultDisplayEventEnd !== false;\n }\n let wholeEventStart = eventInstance.range.start;\n let wholeEventEnd = eventInstance.range.end;\n let segStart = startOverride || seg.start || seg.eventRange.range.start;\n let segEnd = endOverride || seg.end || seg.eventRange.range.end;\n let isStartDay = startOfDay(wholeEventStart).valueOf() === startOfDay(segStart).valueOf();\n let isEndDay = startOfDay(addMs(wholeEventEnd, -1)).valueOf() === startOfDay(addMs(segEnd, -1)).valueOf();\n if (displayEventTime && !eventDef.allDay && (isStartDay || isEndDay)) {\n segStart = isStartDay ? wholeEventStart : segStart;\n segEnd = isEndDay ? wholeEventEnd : segEnd;\n if (displayEventEnd && eventDef.hasEnd) {\n return dateEnv.formatRange(segStart, segEnd, timeFormat, {\n forcedStartTzo: startOverride ? null : eventInstance.forcedStartTzo,\n forcedEndTzo: endOverride ? null : eventInstance.forcedEndTzo,\n });\n }\n return dateEnv.format(segStart, timeFormat, {\n forcedTzo: startOverride ? null : eventInstance.forcedStartTzo, // nooooo, same\n });\n }\n return '';\n}\nfunction getSegMeta(seg, todayRange, nowDate) {\n let segRange = seg.eventRange.range;\n return {\n isPast: segRange.end <= (nowDate || todayRange.start),\n isFuture: segRange.start >= (nowDate || todayRange.end),\n isToday: todayRange && rangeContainsMarker(todayRange, segRange.start),\n };\n}\nfunction getEventClassNames(props) {\n let classNames = ['fc-event'];\n if (props.isMirror) {\n classNames.push('fc-event-mirror');\n }\n if (props.isDraggable) {\n classNames.push('fc-event-draggable');\n }\n if (props.isStartResizable || props.isEndResizable) {\n classNames.push('fc-event-resizable');\n }\n if (props.isDragging) {\n classNames.push('fc-event-dragging');\n }\n if (props.isResizing) {\n classNames.push('fc-event-resizing');\n }\n if (props.isSelected) {\n classNames.push('fc-event-selected');\n }\n if (props.isStart) {\n classNames.push('fc-event-start');\n }\n if (props.isEnd) {\n classNames.push('fc-event-end');\n }\n if (props.isPast) {\n classNames.push('fc-event-past');\n }\n if (props.isToday) {\n classNames.push('fc-event-today');\n }\n if (props.isFuture) {\n classNames.push('fc-event-future');\n }\n return classNames;\n}\nfunction buildEventRangeKey(eventRange) {\n return eventRange.instance\n ? eventRange.instance.instanceId\n : `${eventRange.def.defId}:${eventRange.range.start.toISOString()}`;\n // inverse-background events don't have specific instances. TODO: better solution\n}\nfunction getSegAnchorAttrs(seg, context) {\n let { def, instance } = seg.eventRange;\n let { url } = def;\n if (url) {\n return { href: url };\n }\n let { emitter, options } = context;\n let { eventInteractive } = options;\n if (eventInteractive == null) {\n eventInteractive = def.interactive;\n if (eventInteractive == null) {\n eventInteractive = Boolean(emitter.hasHandlers('eventClick'));\n }\n }\n // mock what happens in EventClicking\n if (eventInteractive) {\n // only attach keyboard-related handlers because click handler is already done in EventClicking\n return createAriaKeyboardAttrs((ev) => {\n emitter.trigger('eventClick', {\n el: ev.target,\n event: new EventImpl(context, def, instance),\n jsEvent: ev,\n view: context.viewApi,\n });\n });\n }\n return {};\n}\n\nconst STANDARD_PROPS = {\n start: identity,\n end: identity,\n allDay: Boolean,\n};\nfunction parseDateSpan(raw, dateEnv, defaultDuration) {\n let span = parseOpenDateSpan(raw, dateEnv);\n let { range } = span;\n if (!range.start) {\n return null;\n }\n if (!range.end) {\n if (defaultDuration == null) {\n return null;\n }\n range.end = dateEnv.add(range.start, defaultDuration);\n }\n return span;\n}\n/*\nTODO: somehow combine with parseRange?\nWill return null if the start/end props were present but parsed invalidly.\n*/\nfunction parseOpenDateSpan(raw, dateEnv) {\n let { refined: standardProps, extra } = refineProps(raw, STANDARD_PROPS);\n let startMeta = standardProps.start ? dateEnv.createMarkerMeta(standardProps.start) : null;\n let endMeta = standardProps.end ? dateEnv.createMarkerMeta(standardProps.end) : null;\n let { allDay } = standardProps;\n if (allDay == null) {\n allDay = (startMeta && startMeta.isTimeUnspecified) &&\n (!endMeta || endMeta.isTimeUnspecified);\n }\n return Object.assign({ range: {\n start: startMeta ? startMeta.marker : null,\n end: endMeta ? endMeta.marker : null,\n }, allDay }, extra);\n}\nfunction isDateSpansEqual(span0, span1) {\n return rangesEqual(span0.range, span1.range) &&\n span0.allDay === span1.allDay &&\n isSpanPropsEqual(span0, span1);\n}\n// the NON-DATE-RELATED props\nfunction isSpanPropsEqual(span0, span1) {\n for (let propName in span1) {\n if (propName !== 'range' && propName !== 'allDay') {\n if (span0[propName] !== span1[propName]) {\n return false;\n }\n }\n }\n // are there any props that span0 has that span1 DOESN'T have?\n // both have range/allDay, so no need to special-case.\n for (let propName in span0) {\n if (!(propName in span1)) {\n return false;\n }\n }\n return true;\n}\nfunction buildDateSpanApi(span, dateEnv) {\n return Object.assign(Object.assign({}, buildRangeApi(span.range, dateEnv, span.allDay)), { allDay: span.allDay });\n}\nfunction buildRangeApiWithTimeZone(range, dateEnv, omitTime) {\n return Object.assign(Object.assign({}, buildRangeApi(range, dateEnv, omitTime)), { timeZone: dateEnv.timeZone });\n}\nfunction buildRangeApi(range, dateEnv, omitTime) {\n return {\n start: dateEnv.toDate(range.start),\n end: dateEnv.toDate(range.end),\n startStr: dateEnv.formatIso(range.start, { omitTime }),\n endStr: dateEnv.formatIso(range.end, { omitTime }),\n };\n}\nfunction fabricateEventRange(dateSpan, eventUiBases, context) {\n let res = refineEventDef({ editable: false }, context);\n let def = parseEventDef(res.refined, res.extra, '', // sourceId\n dateSpan.allDay, true, // hasEnd\n context);\n return {\n def,\n ui: compileEventUi(def, eventUiBases),\n instance: createEventInstance(def.defId, dateSpan.range),\n range: dateSpan.range,\n isStart: true,\n isEnd: true,\n };\n}\n\n/*\ngiven a function that resolves a result asynchronously.\nthe function can either call passed-in success and failure callbacks,\nor it can return a promise.\nif you need to pass additional params to func, bind them first.\n*/\nfunction unpromisify(func, normalizedSuccessCallback, normalizedFailureCallback) {\n // guard against success/failure callbacks being called more than once\n // and guard against a promise AND callback being used together.\n let isResolved = false;\n let wrappedSuccess = function (res) {\n if (!isResolved) {\n isResolved = true;\n normalizedSuccessCallback(res);\n }\n };\n let wrappedFailure = function (error) {\n if (!isResolved) {\n isResolved = true;\n normalizedFailureCallback(error);\n }\n };\n let res = func(wrappedSuccess, wrappedFailure);\n if (res && typeof res.then === 'function') {\n res.then(wrappedSuccess, wrappedFailure);\n }\n}\n\nclass JsonRequestError extends Error {\n constructor(message, response) {\n super(message);\n this.response = response;\n }\n}\nfunction requestJson(method, url, params) {\n method = method.toUpperCase();\n const fetchOptions = {\n method,\n };\n if (method === 'GET') {\n url += (url.indexOf('?') === -1 ? '?' : '&') +\n new URLSearchParams(params);\n }\n else {\n fetchOptions.body = new URLSearchParams(params);\n fetchOptions.headers = {\n 'Content-Type': 'application/x-www-form-urlencoded',\n };\n }\n return fetch(url, fetchOptions).then((fetchRes) => {\n if (fetchRes.ok) {\n return fetchRes.json().then((parsedResponse) => {\n return [parsedResponse, fetchRes];\n }, () => {\n throw new JsonRequestError('Failure parsing JSON', fetchRes);\n });\n }\n else {\n throw new JsonRequestError('Request failed', fetchRes);\n }\n });\n}\n\nlet canVGrowWithinCell;\nfunction getCanVGrowWithinCell() {\n if (canVGrowWithinCell == null) {\n canVGrowWithinCell = computeCanVGrowWithinCell();\n }\n return canVGrowWithinCell;\n}\nfunction computeCanVGrowWithinCell() {\n // for SSR, because this function is call immediately at top-level\n // TODO: just make this logic execute top-level, immediately, instead of doing lazily\n if (typeof document === 'undefined') {\n return true;\n }\n let el = document.createElement('div');\n el.style.position = 'absolute';\n el.style.top = '0px';\n el.style.left = '0px';\n el.innerHTML = '<table><tr><td><div></div></td></tr></table>';\n el.querySelector('table').style.height = '100px';\n el.querySelector('div').style.height = '100%';\n document.body.appendChild(el);\n let div = el.querySelector('div');\n let possible = div.offsetHeight > 0;\n document.body.removeChild(el);\n return possible;\n}\n\nclass CalendarRoot extends BaseComponent {\n constructor() {\n super(...arguments);\n this.state = {\n forPrint: false,\n };\n this.handleBeforePrint = () => {\n flushSync(() => {\n this.setState({ forPrint: true });\n });\n };\n this.handleAfterPrint = () => {\n flushSync(() => {\n this.setState({ forPrint: false });\n });\n };\n }\n render() {\n let { props } = this;\n let { options } = props;\n let { forPrint } = this.state;\n let isHeightAuto = forPrint || options.height === 'auto' || options.contentHeight === 'auto';\n let height = (!isHeightAuto && options.height != null) ? options.height : '';\n let classNames = [\n 'fc',\n forPrint ? 'fc-media-print' : 'fc-media-screen',\n `fc-direction-${options.direction}`,\n props.theme.getClass('root'),\n ];\n if (!getCanVGrowWithinCell()) {\n classNames.push('fc-liquid-hack');\n }\n return props.children(classNames, height, isHeightAuto, forPrint);\n }\n componentDidMount() {\n let { emitter } = this.props;\n emitter.on('_beforeprint', this.handleBeforePrint);\n emitter.on('_afterprint', this.handleAfterPrint);\n }\n componentWillUnmount() {\n let { emitter } = this.props;\n emitter.off('_beforeprint', this.handleBeforePrint);\n emitter.off('_afterprint', this.handleAfterPrint);\n }\n}\n\nclass Interaction {\n constructor(settings) {\n this.component = settings.component;\n this.isHitComboAllowed = settings.isHitComboAllowed || null;\n }\n destroy() {\n }\n}\nfunction parseInteractionSettings(component, input) {\n return {\n component,\n el: input.el,\n useEventCenter: input.useEventCenter != null ? input.useEventCenter : true,\n isHitComboAllowed: input.isHitComboAllowed || null,\n };\n}\nfunction interactionSettingsToStore(settings) {\n return {\n [settings.component.uid]: settings,\n };\n}\n// global state\nconst interactionSettingsStore = {};\n\nclass CalendarImpl {\n getCurrentData() {\n return this.currentDataManager.getCurrentData();\n }\n dispatch(action) {\n this.currentDataManager.dispatch(action);\n }\n get view() { return this.getCurrentData().viewApi; }\n batchRendering(callback) {\n callback();\n }\n updateSize() {\n this.trigger('_resize', true);\n }\n // Options\n // -----------------------------------------------------------------------------------------------------------------\n setOption(name, val) {\n this.dispatch({\n type: 'SET_OPTION',\n optionName: name,\n rawOptionValue: val,\n });\n }\n getOption(name) {\n return this.currentDataManager.currentCalendarOptionsInput[name];\n }\n getAvailableLocaleCodes() {\n return Object.keys(this.getCurrentData().availableRawLocales);\n }\n // Trigger\n // -----------------------------------------------------------------------------------------------------------------\n on(handlerName, handler) {\n let { currentDataManager } = this;\n if (currentDataManager.currentCalendarOptionsRefiners[handlerName]) {\n currentDataManager.emitter.on(handlerName, handler);\n }\n else {\n console.warn(`Unknown listener name '${handlerName}'`);\n }\n }\n off(handlerName, handler) {\n this.currentDataManager.emitter.off(handlerName, handler);\n }\n // not meant for public use\n trigger(handlerName, ...args) {\n this.currentDataManager.emitter.trigger(handlerName, ...args);\n }\n // View\n // -----------------------------------------------------------------------------------------------------------------\n changeView(viewType, dateOrRange) {\n this.batchRendering(() => {\n this.unselect();\n if (dateOrRange) {\n if (dateOrRange.start && dateOrRange.end) { // a range\n this.dispatch({\n type: 'CHANGE_VIEW_TYPE',\n viewType,\n });\n this.dispatch({\n type: 'SET_OPTION',\n optionName: 'visibleRange',\n rawOptionValue: dateOrRange,\n });\n }\n else {\n let { dateEnv } = this.getCurrentData();\n this.dispatch({\n type: 'CHANGE_VIEW_TYPE',\n viewType,\n dateMarker: dateEnv.createMarker(dateOrRange),\n });\n }\n }\n else {\n this.dispatch({\n type: 'CHANGE_VIEW_TYPE',\n viewType,\n });\n }\n });\n }\n // Forces navigation to a view for the given date.\n // `viewType` can be a specific view name or a generic one like \"week\" or \"day\".\n // needs to change\n zoomTo(dateMarker, viewType) {\n let state = this.getCurrentData();\n let spec;\n viewType = viewType || 'day'; // day is default zoom\n spec = state.viewSpecs[viewType] || this.getUnitViewSpec(viewType);\n this.unselect();\n if (spec) {\n this.dispatch({\n type: 'CHANGE_VIEW_TYPE',\n viewType: spec.type,\n dateMarker,\n });\n }\n else {\n this.dispatch({\n type: 'CHANGE_DATE',\n dateMarker,\n });\n }\n }\n // Given a duration singular unit, like \"week\" or \"day\", finds a matching view spec.\n // Preference is given to views that have corresponding buttons.\n getUnitViewSpec(unit) {\n let { viewSpecs, toolbarConfig } = this.getCurrentData();\n let viewTypes = [].concat(toolbarConfig.header ? toolbarConfig.header.viewsWithButtons : [], toolbarConfig.footer ? toolbarConfig.footer.viewsWithButtons : []);\n let i;\n let spec;\n for (let viewType in viewSpecs) {\n viewTypes.push(viewType);\n }\n for (i = 0; i < viewTypes.length; i += 1) {\n spec = viewSpecs[viewTypes[i]];\n if (spec) {\n if (spec.singleUnit === unit) {\n return spec;\n }\n }\n }\n return null;\n }\n // Current Date\n // -----------------------------------------------------------------------------------------------------------------\n prev() {\n this.unselect();\n this.dispatch({ type: 'PREV' });\n }\n next() {\n this.unselect();\n this.dispatch({ type: 'NEXT' });\n }\n prevYear() {\n let state = this.getCurrentData();\n this.unselect();\n this.dispatch({\n type: 'CHANGE_DATE',\n dateMarker: state.dateEnv.addYears(state.currentDate, -1),\n });\n }\n nextYear() {\n let state = this.getCurrentData();\n this.unselect();\n this.dispatch({\n type: 'CHANGE_DATE',\n dateMarker: state.dateEnv.addYears(state.currentDate, 1),\n });\n }\n today() {\n let state = this.getCurrentData();\n this.unselect();\n this.dispatch({\n type: 'CHANGE_DATE',\n dateMarker: getNow(state.calendarOptions.now, state.dateEnv),\n });\n }\n gotoDate(zonedDateInput) {\n let state = this.getCurrentData();\n this.unselect();\n this.dispatch({\n type: 'CHANGE_DATE',\n dateMarker: state.dateEnv.createMarker(zonedDateInput),\n });\n }\n incrementDate(deltaInput) {\n let state = this.getCurrentData();\n let delta = createDuration(deltaInput);\n if (delta) { // else, warn about invalid input?\n this.unselect();\n this.dispatch({\n type: 'CHANGE_DATE',\n dateMarker: state.dateEnv.add(state.currentDate, delta),\n });\n }\n }\n getDate() {\n let state = this.getCurrentData();\n return state.dateEnv.toDate(state.currentDate);\n }\n // Date Formatting Utils\n // -----------------------------------------------------------------------------------------------------------------\n formatDate(d, formatter) {\n let { dateEnv } = this.getCurrentData();\n return dateEnv.format(dateEnv.createMarker(d), createFormatter(formatter));\n }\n // `settings` is for formatter AND isEndExclusive\n formatRange(d0, d1, settings) {\n let { dateEnv } = this.getCurrentData();\n return dateEnv.formatRange(dateEnv.createMarker(d0), dateEnv.createMarker(d1), createFormatter(settings), settings);\n }\n formatIso(d, omitTime) {\n let { dateEnv } = this.getCurrentData();\n return dateEnv.formatIso(dateEnv.createMarker(d), { omitTime });\n }\n // Date Selection / Event Selection / DayClick\n // -----------------------------------------------------------------------------------------------------------------\n select(dateOrObj, endDate) {\n let selectionInput;\n if (endDate == null) {\n if (dateOrObj.start != null) {\n selectionInput = dateOrObj;\n }\n else {\n selectionInput = {\n start: dateOrObj,\n end: null,\n };\n }\n }\n else {\n selectionInput = {\n start: dateOrObj,\n end: endDate,\n };\n }\n let state = this.getCurrentData();\n let selection = parseDateSpan(selectionInput, state.dateEnv, createDuration({ days: 1 }));\n if (selection) { // throw parse error otherwise?\n this.dispatch({ type: 'SELECT_DATES', selection });\n triggerDateSelect(selection, null, state);\n }\n }\n unselect(pev) {\n let state = this.getCurrentData();\n if (state.dateSelection) {\n this.dispatch({ type: 'UNSELECT_DATES' });\n triggerDateUnselect(pev, state);\n }\n }\n // Public Events API\n // -----------------------------------------------------------------------------------------------------------------\n addEvent(eventInput, sourceInput) {\n if (eventInput instanceof EventImpl) {\n let def = eventInput._def;\n let instance = eventInput._instance;\n let currentData = this.getCurrentData();\n // not already present? don't want to add an old snapshot\n if (!currentData.eventStore.defs[def.defId]) {\n this.dispatch({\n type: 'ADD_EVENTS',\n eventStore: eventTupleToStore({ def, instance }), // TODO: better util for two args?\n });\n this.triggerEventAdd(eventInput);\n }\n return eventInput;\n }\n let state = this.getCurrentData();\n let eventSource;\n if (sourceInput instanceof EventSourceImpl) {\n eventSource = sourceInput.internalEventSource;\n }\n else if (typeof sourceInput === 'boolean') {\n if (sourceInput) { // true. part of the first event source\n [eventSource] = hashValuesToArray(state.eventSources);\n }\n }\n else if (sourceInput != null) { // an ID. accepts a number too\n let sourceApi = this.getEventSourceById(sourceInput); // TODO: use an internal function\n if (!sourceApi) {\n console.warn(`Could not find an event source with ID \"${sourceInput}\"`); // TODO: test\n return null;\n }\n eventSource = sourceApi.internalEventSource;\n }\n let tuple = parseEvent(eventInput, eventSource, state, false);\n if (tuple) {\n let newEventApi = new EventImpl(state, tuple.def, tuple.def.recurringDef ? null : tuple.instance);\n this.dispatch({\n type: 'ADD_EVENTS',\n eventStore: eventTupleToStore(tuple),\n });\n this.triggerEventAdd(newEventApi);\n return newEventApi;\n }\n return null;\n }\n triggerEventAdd(eventApi) {\n let { emitter } = this.getCurrentData();\n emitter.trigger('eventAdd', {\n event: eventApi,\n relatedEvents: [],\n revert: () => {\n this.dispatch({\n type: 'REMOVE_EVENTS',\n eventStore: eventApiToStore(eventApi),\n });\n },\n });\n }\n // TODO: optimize\n getEventById(id) {\n let state = this.getCurrentData();\n let { defs, instances } = state.eventStore;\n id = String(id);\n for (let defId in defs) {\n let def = defs[defId];\n if (def.publicId === id) {\n if (def.recurringDef) {\n return new EventImpl(state, def, null);\n }\n for (let instanceId in instances) {\n let instance = instances[instanceId];\n if (instance.defId === def.defId) {\n return new EventImpl(state, def, instance);\n }\n }\n }\n }\n return null;\n }\n getEvents() {\n let currentData = this.getCurrentData();\n return buildEventApis(currentData.eventStore, currentData);\n }\n removeAllEvents() {\n this.dispatch({ type: 'REMOVE_ALL_EVENTS' });\n }\n // Public Event Sources API\n // -----------------------------------------------------------------------------------------------------------------\n getEventSources() {\n let state = this.getCurrentData();\n let sourceHash = state.eventSources;\n let sourceApis = [];\n for (let internalId in sourceHash) {\n sourceApis.push(new EventSourceImpl(state, sourceHash[internalId]));\n }\n return sourceApis;\n }\n getEventSourceById(id) {\n let state = this.getCurrentData();\n let sourceHash = state.eventSources;\n id = String(id);\n for (let sourceId in sourceHash) {\n if (sourceHash[sourceId].publicId === id) {\n return new EventSourceImpl(state, sourceHash[sourceId]);\n }\n }\n return null;\n }\n addEventSource(sourceInput) {\n let state = this.getCurrentData();\n if (sourceInput instanceof EventSourceImpl) {\n // not already present? don't want to add an old snapshot\n if (!state.eventSources[sourceInput.internalEventSource.sourceId]) {\n this.dispatch({\n type: 'ADD_EVENT_SOURCES',\n sources: [sourceInput.internalEventSource],\n });\n }\n return sourceInput;\n }\n let eventSource = parseEventSource(sourceInput, state);\n if (eventSource) { // TODO: error otherwise?\n this.dispatch({ type: 'ADD_EVENT_SOURCES', sources: [eventSource] });\n return new EventSourceImpl(state, eventSource);\n }\n return null;\n }\n removeAllEventSources() {\n this.dispatch({ type: 'REMOVE_ALL_EVENT_SOURCES' });\n }\n refetchEvents() {\n this.dispatch({ type: 'FETCH_EVENT_SOURCES', isRefetch: true });\n }\n // Scroll\n // -----------------------------------------------------------------------------------------------------------------\n scrollToTime(timeInput) {\n let time = createDuration(timeInput);\n if (time) {\n this.trigger('_scrollRequest', { time });\n }\n }\n}\n\nfunction pointInsideRect(point, rect) {\n return point.left >= rect.left &&\n point.left < rect.right &&\n point.top >= rect.top &&\n point.top < rect.bottom;\n}\n// Returns a new rectangle that is the intersection of the two rectangles. If they don't intersect, returns false\nfunction intersectRects(rect1, rect2) {\n let res = {\n left: Math.max(rect1.left, rect2.left),\n right: Math.min(rect1.right, rect2.right),\n top: Math.max(rect1.top, rect2.top),\n bottom: Math.min(rect1.bottom, rect2.bottom),\n };\n if (res.left < res.right && res.top < res.bottom) {\n return res;\n }\n return false;\n}\nfunction translateRect(rect, deltaX, deltaY) {\n return {\n left: rect.left + deltaX,\n right: rect.right + deltaX,\n top: rect.top + deltaY,\n bottom: rect.bottom + deltaY,\n };\n}\n// Returns a new point that will have been moved to reside within the given rectangle\nfunction constrainPoint(point, rect) {\n return {\n left: Math.min(Math.max(point.left, rect.left), rect.right),\n top: Math.min(Math.max(point.top, rect.top), rect.bottom),\n };\n}\n// Returns a point that is the center of the given rectangle\nfunction getRectCenter(rect) {\n return {\n left: (rect.left + rect.right) / 2,\n top: (rect.top + rect.bottom) / 2,\n };\n}\n// Subtracts point2's coordinates from point1's coordinates, returning a delta\nfunction diffPoints(point1, point2) {\n return {\n left: point1.left - point2.left,\n top: point1.top - point2.top,\n };\n}\n\nconst EMPTY_EVENT_STORE = createEmptyEventStore(); // for purecomponents. TODO: keep elsewhere\nclass Splitter {\n constructor() {\n this.getKeysForEventDefs = memoize(this._getKeysForEventDefs);\n this.splitDateSelection = memoize(this._splitDateSpan);\n this.splitEventStore = memoize(this._splitEventStore);\n this.splitIndividualUi = memoize(this._splitIndividualUi);\n this.splitEventDrag = memoize(this._splitInteraction);\n this.splitEventResize = memoize(this._splitInteraction);\n this.eventUiBuilders = {}; // TODO: typescript protection\n }\n splitProps(props) {\n let keyInfos = this.getKeyInfo(props);\n let defKeys = this.getKeysForEventDefs(props.eventStore);\n let dateSelections = this.splitDateSelection(props.dateSelection);\n let individualUi = this.splitIndividualUi(props.eventUiBases, defKeys); // the individual *bases*\n let eventStores = this.splitEventStore(props.eventStore, defKeys);\n let eventDrags = this.splitEventDrag(props.eventDrag);\n let eventResizes = this.splitEventResize(props.eventResize);\n let splitProps = {};\n this.eventUiBuilders = mapHash(keyInfos, (info, key) => this.eventUiBuilders[key] || memoize(buildEventUiForKey));\n for (let key in keyInfos) {\n let keyInfo = keyInfos[key];\n let eventStore = eventStores[key] || EMPTY_EVENT_STORE;\n let buildEventUi = this.eventUiBuilders[key];\n splitProps[key] = {\n businessHours: keyInfo.businessHours || props.businessHours,\n dateSelection: dateSelections[key] || null,\n eventStore,\n eventUiBases: buildEventUi(props.eventUiBases[''], keyInfo.ui, individualUi[key]),\n eventSelection: eventStore.instances[props.eventSelection] ? props.eventSelection : '',\n eventDrag: eventDrags[key] || null,\n eventResize: eventResizes[key] || null,\n };\n }\n return splitProps;\n }\n _splitDateSpan(dateSpan) {\n let dateSpans = {};\n if (dateSpan) {\n let keys = this.getKeysForDateSpan(dateSpan);\n for (let key of keys) {\n dateSpans[key] = dateSpan;\n }\n }\n return dateSpans;\n }\n _getKeysForEventDefs(eventStore) {\n return mapHash(eventStore.defs, (eventDef) => this.getKeysForEventDef(eventDef));\n }\n _splitEventStore(eventStore, defKeys) {\n let { defs, instances } = eventStore;\n let splitStores = {};\n for (let defId in defs) {\n for (let key of defKeys[defId]) {\n if (!splitStores[key]) {\n splitStores[key] = createEmptyEventStore();\n }\n splitStores[key].defs[defId] = defs[defId];\n }\n }\n for (let instanceId in instances) {\n let instance = instances[instanceId];\n for (let key of defKeys[instance.defId]) {\n if (splitStores[key]) { // must have already been created\n splitStores[key].instances[instanceId] = instance;\n }\n }\n }\n return splitStores;\n }\n _splitIndividualUi(eventUiBases, defKeys) {\n let splitHashes = {};\n for (let defId in eventUiBases) {\n if (defId) { // not the '' key\n for (let key of defKeys[defId]) {\n if (!splitHashes[key]) {\n splitHashes[key] = {};\n }\n splitHashes[key][defId] = eventUiBases[defId];\n }\n }\n }\n return splitHashes;\n }\n _splitInteraction(interaction) {\n let splitStates = {};\n if (interaction) {\n let affectedStores = this._splitEventStore(interaction.affectedEvents, this._getKeysForEventDefs(interaction.affectedEvents));\n // can't rely on defKeys because event data is mutated\n let mutatedKeysByDefId = this._getKeysForEventDefs(interaction.mutatedEvents);\n let mutatedStores = this._splitEventStore(interaction.mutatedEvents, mutatedKeysByDefId);\n let populate = (key) => {\n if (!splitStates[key]) {\n splitStates[key] = {\n affectedEvents: affectedStores[key] || EMPTY_EVENT_STORE,\n mutatedEvents: mutatedStores[key] || EMPTY_EVENT_STORE,\n isEvent: interaction.isEvent,\n };\n }\n };\n for (let key in affectedStores) {\n populate(key);\n }\n for (let key in mutatedStores) {\n populate(key);\n }\n }\n return splitStates;\n }\n}\nfunction buildEventUiForKey(allUi, eventUiForKey, individualUi) {\n let baseParts = [];\n if (allUi) {\n baseParts.push(allUi);\n }\n if (eventUiForKey) {\n baseParts.push(eventUiForKey);\n }\n let stuff = {\n '': combineEventUis(baseParts),\n };\n if (individualUi) {\n Object.assign(stuff, individualUi);\n }\n return stuff;\n}\n\nfunction getDateMeta(date, todayRange, nowDate, dateProfile) {\n return {\n dow: date.getUTCDay(),\n isDisabled: Boolean(dateProfile && !rangeContainsMarker(dateProfile.activeRange, date)),\n isOther: Boolean(dateProfile && !rangeContainsMarker(dateProfile.currentRange, date)),\n isToday: Boolean(todayRange && rangeContainsMarker(todayRange, date)),\n isPast: Boolean(nowDate ? (date < nowDate) : todayRange ? (date < todayRange.start) : false),\n isFuture: Boolean(nowDate ? (date > nowDate) : todayRange ? (date >= todayRange.end) : false),\n };\n}\nfunction getDayClassNames(meta, theme) {\n let classNames = [\n 'fc-day',\n `fc-day-${DAY_IDS[meta.dow]}`,\n ];\n if (meta.isDisabled) {\n classNames.push('fc-day-disabled');\n }\n else {\n if (meta.isToday) {\n classNames.push('fc-day-today');\n classNames.push(theme.getClass('today'));\n }\n if (meta.isPast) {\n classNames.push('fc-day-past');\n }\n if (meta.isFuture) {\n classNames.push('fc-day-future');\n }\n if (meta.isOther) {\n classNames.push('fc-day-other');\n }\n }\n return classNames;\n}\nfunction getSlotClassNames(meta, theme) {\n let classNames = [\n 'fc-slot',\n `fc-slot-${DAY_IDS[meta.dow]}`,\n ];\n if (meta.isDisabled) {\n classNames.push('fc-slot-disabled');\n }\n else {\n if (meta.isToday) {\n classNames.push('fc-slot-today');\n classNames.push(theme.getClass('today'));\n }\n if (meta.isPast) {\n classNames.push('fc-slot-past');\n }\n if (meta.isFuture) {\n classNames.push('fc-slot-future');\n }\n }\n return classNames;\n}\n\nconst DAY_FORMAT = createFormatter({ year: 'numeric', month: 'long', day: 'numeric' });\nconst WEEK_FORMAT = createFormatter({ week: 'long' });\nfunction buildNavLinkAttrs(context, dateMarker, viewType = 'day', isTabbable = true) {\n const { dateEnv, options, calendarApi } = context;\n let dateStr = dateEnv.format(dateMarker, viewType === 'week' ? WEEK_FORMAT : DAY_FORMAT);\n if (options.navLinks) {\n let zonedDate = dateEnv.toDate(dateMarker);\n const handleInteraction = (ev) => {\n let customAction = viewType === 'day' ? options.navLinkDayClick :\n viewType === 'week' ? options.navLinkWeekClick : null;\n if (typeof customAction === 'function') {\n customAction.call(calendarApi, dateEnv.toDate(dateMarker), ev);\n }\n else {\n if (typeof customAction === 'string') {\n viewType = customAction;\n }\n calendarApi.zoomTo(dateMarker, viewType);\n }\n };\n return Object.assign({ title: formatWithOrdinals(options.navLinkHint, [dateStr, zonedDate], dateStr), 'data-navlink': '' }, (isTabbable\n ? createAriaClickAttrs(handleInteraction)\n : { onClick: handleInteraction }));\n }\n return { 'aria-label': dateStr };\n}\n\nlet _isRtlScrollbarOnLeft = null;\nfunction getIsRtlScrollbarOnLeft() {\n if (_isRtlScrollbarOnLeft === null) {\n _isRtlScrollbarOnLeft = computeIsRtlScrollbarOnLeft();\n }\n return _isRtlScrollbarOnLeft;\n}\nfunction computeIsRtlScrollbarOnLeft() {\n let outerEl = document.createElement('div');\n applyStyle(outerEl, {\n position: 'absolute',\n top: -1000,\n left: 0,\n border: 0,\n padding: 0,\n overflow: 'scroll',\n direction: 'rtl',\n });\n outerEl.innerHTML = '<div></div>';\n document.body.appendChild(outerEl);\n let innerEl = outerEl.firstChild;\n let res = innerEl.getBoundingClientRect().left > outerEl.getBoundingClientRect().left;\n removeElement(outerEl);\n return res;\n}\n\nlet _scrollbarWidths;\nfunction getScrollbarWidths() {\n if (!_scrollbarWidths) {\n _scrollbarWidths = computeScrollbarWidths();\n }\n return _scrollbarWidths;\n}\nfunction computeScrollbarWidths() {\n let el = document.createElement('div');\n el.style.overflow = 'scroll';\n el.style.position = 'absolute';\n el.style.top = '-9999px';\n el.style.left = '-9999px';\n document.body.appendChild(el);\n let res = computeScrollbarWidthsForEl(el);\n document.body.removeChild(el);\n return res;\n}\n// WARNING: will include border\nfunction computeScrollbarWidthsForEl(el) {\n return {\n x: el.offsetHeight - el.clientHeight,\n y: el.offsetWidth - el.clientWidth,\n };\n}\n\nfunction computeEdges(el, getPadding = false) {\n let computedStyle = window.getComputedStyle(el);\n let borderLeft = parseInt(computedStyle.borderLeftWidth, 10) || 0;\n let borderRight = parseInt(computedStyle.borderRightWidth, 10) || 0;\n let borderTop = parseInt(computedStyle.borderTopWidth, 10) || 0;\n let borderBottom = parseInt(computedStyle.borderBottomWidth, 10) || 0;\n let badScrollbarWidths = computeScrollbarWidthsForEl(el); // includes border!\n let scrollbarLeftRight = badScrollbarWidths.y - borderLeft - borderRight;\n let scrollbarBottom = badScrollbarWidths.x - borderTop - borderBottom;\n let res = {\n borderLeft,\n borderRight,\n borderTop,\n borderBottom,\n scrollbarBottom,\n scrollbarLeft: 0,\n scrollbarRight: 0,\n };\n if (getIsRtlScrollbarOnLeft() && computedStyle.direction === 'rtl') { // is the scrollbar on the left side?\n res.scrollbarLeft = scrollbarLeftRight;\n }\n else {\n res.scrollbarRight = scrollbarLeftRight;\n }\n if (getPadding) {\n res.paddingLeft = parseInt(computedStyle.paddingLeft, 10) || 0;\n res.paddingRight = parseInt(computedStyle.paddingRight, 10) || 0;\n res.paddingTop = parseInt(computedStyle.paddingTop, 10) || 0;\n res.paddingBottom = parseInt(computedStyle.paddingBottom, 10) || 0;\n }\n return res;\n}\nfunction computeInnerRect(el, goWithinPadding = false, doFromWindowViewport) {\n let outerRect = doFromWindowViewport ? el.getBoundingClientRect() : computeRect(el);\n let edges = computeEdges(el, goWithinPadding);\n let res = {\n left: outerRect.left + edges.borderLeft + edges.scrollbarLeft,\n right: outerRect.right - edges.borderRight - edges.scrollbarRight,\n top: outerRect.top + edges.borderTop,\n bottom: outerRect.bottom - edges.borderBottom - edges.scrollbarBottom,\n };\n if (goWithinPadding) {\n res.left += edges.paddingLeft;\n res.right -= edges.paddingRight;\n res.top += edges.paddingTop;\n res.bottom -= edges.paddingBottom;\n }\n return res;\n}\nfunction computeRect(el) {\n let rect = el.getBoundingClientRect();\n return {\n left: rect.left + window.scrollX,\n top: rect.top + window.scrollY,\n right: rect.right + window.scrollX,\n bottom: rect.bottom + window.scrollY,\n };\n}\nfunction computeClippedClientRect(el) {\n let clippingParents = getClippingParents(el);\n let rect = el.getBoundingClientRect();\n for (let clippingParent of clippingParents) {\n let intersection = intersectRects(rect, clippingParent.getBoundingClientRect());\n if (intersection) {\n rect = intersection;\n }\n else {\n return null;\n }\n }\n return rect;\n}\n// does not return window\nfunction getClippingParents(el) {\n let parents = [];\n while (el instanceof HTMLElement) { // will stop when gets to document or null\n let computedStyle = window.getComputedStyle(el);\n if (computedStyle.position === 'fixed') {\n break;\n }\n if ((/(auto|scroll)/).test(computedStyle.overflow + computedStyle.overflowY + computedStyle.overflowX)) {\n parents.push(el);\n }\n el = el.parentNode;\n }\n return parents;\n}\n\n/*\nRecords offset information for a set of elements, relative to an origin element.\nCan record the left/right OR the top/bottom OR both.\nProvides methods for querying the cache by position.\n*/\nclass PositionCache {\n constructor(originEl, els, isHorizontal, isVertical) {\n this.els = els;\n let originClientRect = this.originClientRect = originEl.getBoundingClientRect(); // relative to viewport top-left\n if (isHorizontal) {\n this.buildElHorizontals(originClientRect.left);\n }\n if (isVertical) {\n this.buildElVerticals(originClientRect.top);\n }\n }\n // Populates the left/right internal coordinate arrays\n buildElHorizontals(originClientLeft) {\n let lefts = [];\n let rights = [];\n for (let el of this.els) {\n let rect = el.getBoundingClientRect();\n lefts.push(rect.left - originClientLeft);\n rights.push(rect.right - originClientLeft);\n }\n this.lefts = lefts;\n this.rights = rights;\n }\n // Populates the top/bottom internal coordinate arrays\n buildElVerticals(originClientTop) {\n let tops = [];\n let bottoms = [];\n for (let el of this.els) {\n let rect = el.getBoundingClientRect();\n tops.push(rect.top - originClientTop);\n bottoms.push(rect.bottom - originClientTop);\n }\n this.tops = tops;\n this.bottoms = bottoms;\n }\n // Given a left offset (from document left), returns the index of the el that it horizontally intersects.\n // If no intersection is made, returns undefined.\n leftToIndex(leftPosition) {\n let { lefts, rights } = this;\n let len = lefts.length;\n let i;\n for (i = 0; i < len; i += 1) {\n if (leftPosition >= lefts[i] && leftPosition < rights[i]) {\n return i;\n }\n }\n return undefined; // TODO: better\n }\n // Given a top offset (from document top), returns the index of the el that it vertically intersects.\n // If no intersection is made, returns undefined.\n topToIndex(topPosition) {\n let { tops, bottoms } = this;\n let len = tops.length;\n let i;\n for (i = 0; i < len; i += 1) {\n if (topPosition >= tops[i] && topPosition < bottoms[i]) {\n return i;\n }\n }\n return undefined; // TODO: better\n }\n // Gets the width of the element at the given index\n getWidth(leftIndex) {\n return this.rights[leftIndex] - this.lefts[leftIndex];\n }\n // Gets the height of the element at the given index\n getHeight(topIndex) {\n return this.bottoms[topIndex] - this.tops[topIndex];\n }\n similarTo(otherCache) {\n return similarNumArrays(this.tops || [], otherCache.tops || []) &&\n similarNumArrays(this.bottoms || [], otherCache.bottoms || []) &&\n similarNumArrays(this.lefts || [], otherCache.lefts || []) &&\n similarNumArrays(this.rights || [], otherCache.rights || []);\n }\n}\nfunction similarNumArrays(a, b) {\n const len = a.length;\n if (len !== b.length) {\n return false;\n }\n for (let i = 0; i < len; i++) {\n if (Math.round(a[i]) !== Math.round(b[i])) {\n return false;\n }\n }\n return true;\n}\n\n/* eslint max-classes-per-file: \"off\" */\n/*\nAn object for getting/setting scroll-related information for an element.\nInternally, this is done very differently for window versus DOM element,\nso this object serves as a common interface.\n*/\nclass ScrollController {\n getMaxScrollTop() {\n return this.getScrollHeight() - this.getClientHeight();\n }\n getMaxScrollLeft() {\n return this.getScrollWidth() - this.getClientWidth();\n }\n canScrollVertically() {\n return this.getMaxScrollTop() > 0;\n }\n canScrollHorizontally() {\n return this.getMaxScrollLeft() > 0;\n }\n canScrollUp() {\n return this.getScrollTop() > 0;\n }\n canScrollDown() {\n return this.getScrollTop() < this.getMaxScrollTop();\n }\n canScrollLeft() {\n return this.getScrollLeft() > 0;\n }\n canScrollRight() {\n return this.getScrollLeft() < this.getMaxScrollLeft();\n }\n}\nclass ElementScrollController extends ScrollController {\n constructor(el) {\n super();\n this.el = el;\n }\n getScrollTop() {\n return this.el.scrollTop;\n }\n getScrollLeft() {\n return this.el.scrollLeft;\n }\n setScrollTop(top) {\n this.el.scrollTop = top;\n }\n setScrollLeft(left) {\n this.el.scrollLeft = left;\n }\n getScrollWidth() {\n return this.el.scrollWidth;\n }\n getScrollHeight() {\n return this.el.scrollHeight;\n }\n getClientHeight() {\n return this.el.clientHeight;\n }\n getClientWidth() {\n return this.el.clientWidth;\n }\n}\nclass WindowScrollController extends ScrollController {\n getScrollTop() {\n return window.scrollY;\n }\n getScrollLeft() {\n return window.scrollX;\n }\n setScrollTop(n) {\n window.scroll(window.scrollX, n);\n }\n setScrollLeft(n) {\n window.scroll(n, window.scrollY);\n }\n getScrollWidth() {\n return document.documentElement.scrollWidth;\n }\n getScrollHeight() {\n return document.documentElement.scrollHeight;\n }\n getClientHeight() {\n return document.documentElement.clientHeight;\n }\n getClientWidth() {\n return document.documentElement.clientWidth;\n }\n}\n\n/*\nan INTERACTABLE date component\n\nPURPOSES:\n- hook up to fg, fill, and mirror renderers\n- interface for dragging and hits\n*/\nclass DateComponent extends BaseComponent {\n constructor() {\n super(...arguments);\n this.uid = guid();\n }\n // Hit System\n // -----------------------------------------------------------------------------------------------------------------\n prepareHits() {\n }\n queryHit(positionLeft, positionTop, elWidth, elHeight) {\n return null; // this should be abstract\n }\n // Pointer Interaction Utils\n // -----------------------------------------------------------------------------------------------------------------\n isValidSegDownEl(el) {\n return !this.props.eventDrag && // HACK\n !this.props.eventResize && // HACK\n !elementClosest(el, '.fc-event-mirror');\n }\n isValidDateDownEl(el) {\n return !elementClosest(el, '.fc-event:not(.fc-bg-event)') &&\n !elementClosest(el, '.fc-more-link') && // a \"more..\" link\n !elementClosest(el, 'a[data-navlink]') && // a clickable nav link\n !elementClosest(el, '.fc-popover'); // hack\n }\n}\n\nclass NamedTimeZoneImpl {\n constructor(timeZoneName) {\n this.timeZoneName = timeZoneName;\n }\n}\n\nclass SegHierarchy {\n constructor(getEntryThickness = (entry) => {\n // if no thickness known, assume 1 (if 0, so small it always fits)\n return entry.thickness || 1;\n }) {\n this.getEntryThickness = getEntryThickness;\n // settings\n this.strictOrder = false;\n this.allowReslicing = false;\n this.maxCoord = -1; // -1 means no max\n this.maxStackCnt = -1; // -1 means no max\n this.levelCoords = []; // ordered\n this.entriesByLevel = []; // parallel with levelCoords\n this.stackCnts = {}; // TODO: use better technique!?\n }\n addSegs(inputs) {\n let hiddenEntries = [];\n for (let input of inputs) {\n this.insertEntry(input, hiddenEntries);\n }\n return hiddenEntries;\n }\n insertEntry(entry, hiddenEntries) {\n let insertion = this.findInsertion(entry);\n if (this.isInsertionValid(insertion, entry)) {\n this.insertEntryAt(entry, insertion);\n }\n else {\n this.handleInvalidInsertion(insertion, entry, hiddenEntries);\n }\n }\n isInsertionValid(insertion, entry) {\n return (this.maxCoord === -1 || insertion.levelCoord + this.getEntryThickness(entry) <= this.maxCoord) &&\n (this.maxStackCnt === -1 || insertion.stackCnt < this.maxStackCnt);\n }\n handleInvalidInsertion(insertion, entry, hiddenEntries) {\n if (this.allowReslicing && insertion.touchingEntry) {\n const hiddenEntry = Object.assign(Object.assign({}, entry), { span: intersectSpans(entry.span, insertion.touchingEntry.span) });\n hiddenEntries.push(hiddenEntry);\n this.splitEntry(entry, insertion.touchingEntry, hiddenEntries);\n }\n else {\n hiddenEntries.push(entry);\n }\n }\n /*\n Does NOT add what hit the `barrier` into hiddenEntries. Should already be done.\n */\n splitEntry(entry, barrier, hiddenEntries) {\n let entrySpan = entry.span;\n let barrierSpan = barrier.span;\n if (entrySpan.start < barrierSpan.start) {\n this.insertEntry({\n index: entry.index,\n thickness: entry.thickness,\n span: { start: entrySpan.start, end: barrierSpan.start },\n }, hiddenEntries);\n }\n if (entrySpan.end > barrierSpan.end) {\n this.insertEntry({\n index: entry.index,\n thickness: entry.thickness,\n span: { start: barrierSpan.end, end: entrySpan.end },\n }, hiddenEntries);\n }\n }\n insertEntryAt(entry, insertion) {\n let { entriesByLevel, levelCoords } = this;\n if (insertion.lateral === -1) {\n // create a new level\n insertAt(levelCoords, insertion.level, insertion.levelCoord);\n insertAt(entriesByLevel, insertion.level, [entry]);\n }\n else {\n // insert into existing level\n insertAt(entriesByLevel[insertion.level], insertion.lateral, entry);\n }\n this.stackCnts[buildEntryKey(entry)] = insertion.stackCnt;\n }\n /*\n does not care about limits\n */\n findInsertion(newEntry) {\n let { levelCoords, entriesByLevel, strictOrder, stackCnts } = this;\n let levelCnt = levelCoords.length;\n let candidateCoord = 0;\n let touchingLevel = -1;\n let touchingLateral = -1;\n let touchingEntry = null;\n let stackCnt = 0;\n for (let trackingLevel = 0; trackingLevel < levelCnt; trackingLevel += 1) {\n const trackingCoord = levelCoords[trackingLevel];\n // if the current level is past the placed entry, we have found a good empty space and can stop.\n // if strictOrder, keep finding more lateral intersections.\n if (!strictOrder && trackingCoord >= candidateCoord + this.getEntryThickness(newEntry)) {\n break;\n }\n let trackingEntries = entriesByLevel[trackingLevel];\n let trackingEntry;\n let searchRes = binarySearch(trackingEntries, newEntry.span.start, getEntrySpanEnd); // find first entry after newEntry's end\n let lateralIndex = searchRes[0] + searchRes[1]; // if exact match (which doesn't collide), go to next one\n while ( // loop through entries that horizontally intersect\n (trackingEntry = trackingEntries[lateralIndex]) && // but not past the whole entry list\n trackingEntry.span.start < newEntry.span.end // and not entirely past newEntry\n ) {\n let trackingEntryBottom = trackingCoord + this.getEntryThickness(trackingEntry);\n // intersects into the top of the candidate?\n if (trackingEntryBottom > candidateCoord) {\n candidateCoord = trackingEntryBottom;\n touchingEntry = trackingEntry;\n touchingLevel = trackingLevel;\n touchingLateral = lateralIndex;\n }\n // butts up against top of candidate? (will happen if just intersected as well)\n if (trackingEntryBottom === candidateCoord) {\n // accumulate the highest possible stackCnt of the trackingEntries that butt up\n stackCnt = Math.max(stackCnt, stackCnts[buildEntryKey(trackingEntry)] + 1);\n }\n lateralIndex += 1;\n }\n }\n // the destination level will be after touchingEntry's level. find it\n let destLevel = 0;\n if (touchingEntry) {\n destLevel = touchingLevel + 1;\n while (destLevel < levelCnt && levelCoords[destLevel] < candidateCoord) {\n destLevel += 1;\n }\n }\n // if adding to an existing level, find where to insert\n let destLateral = -1;\n if (destLevel < levelCnt && levelCoords[destLevel] === candidateCoord) {\n destLateral = binarySearch(entriesByLevel[destLevel], newEntry.span.end, getEntrySpanEnd)[0];\n }\n return {\n touchingLevel,\n touchingLateral,\n touchingEntry,\n stackCnt,\n levelCoord: candidateCoord,\n level: destLevel,\n lateral: destLateral,\n };\n }\n // sorted by levelCoord (lowest to highest)\n toRects() {\n let { entriesByLevel, levelCoords } = this;\n let levelCnt = entriesByLevel.length;\n let rects = [];\n for (let level = 0; level < levelCnt; level += 1) {\n let entries = entriesByLevel[level];\n let levelCoord = levelCoords[level];\n for (let entry of entries) {\n rects.push(Object.assign(Object.assign({}, entry), { thickness: this.getEntryThickness(entry), levelCoord }));\n }\n }\n return rects;\n }\n}\nfunction getEntrySpanEnd(entry) {\n return entry.span.end;\n}\nfunction buildEntryKey(entry) {\n return entry.index + ':' + entry.span.start;\n}\n// returns groups with entries sorted by input order\nfunction groupIntersectingEntries(entries) {\n let merges = [];\n for (let entry of entries) {\n let filteredMerges = [];\n let hungryMerge = {\n span: entry.span,\n entries: [entry],\n };\n for (let merge of merges) {\n if (intersectSpans(merge.span, hungryMerge.span)) {\n hungryMerge = {\n entries: merge.entries.concat(hungryMerge.entries),\n span: joinSpans(merge.span, hungryMerge.span),\n };\n }\n else {\n filteredMerges.push(merge);\n }\n }\n filteredMerges.push(hungryMerge);\n merges = filteredMerges;\n }\n return merges;\n}\nfunction joinSpans(span0, span1) {\n return {\n start: Math.min(span0.start, span1.start),\n end: Math.max(span0.end, span1.end),\n };\n}\nfunction intersectSpans(span0, span1) {\n let start = Math.max(span0.start, span1.start);\n let end = Math.min(span0.end, span1.end);\n if (start < end) {\n return { start, end };\n }\n return null;\n}\n// general util\n// ---------------------------------------------------------------------------------------------------------------------\nfunction insertAt(arr, index, item) {\n arr.splice(index, 0, item);\n}\nfunction binarySearch(a, searchVal, getItemVal) {\n let startIndex = 0;\n let endIndex = a.length; // exclusive\n if (!endIndex || searchVal < getItemVal(a[startIndex])) { // no items OR before first item\n return [0, 0];\n }\n if (searchVal > getItemVal(a[endIndex - 1])) { // after last item\n return [endIndex, 0];\n }\n while (startIndex < endIndex) {\n let middleIndex = Math.floor(startIndex + (endIndex - startIndex) / 2);\n let middleVal = getItemVal(a[middleIndex]);\n if (searchVal < middleVal) {\n endIndex = middleIndex;\n }\n else if (searchVal > middleVal) {\n startIndex = middleIndex + 1;\n }\n else { // equal!\n return [middleIndex, 1];\n }\n }\n return [startIndex, 0];\n}\n\n/*\nAn abstraction for a dragging interaction originating on an event.\nDoes higher-level things than PointerDragger, such as possibly:\n- a \"mirror\" that moves with the pointer\n- a minimum number of pixels or other criteria for a true drag to begin\n\nsubclasses must emit:\n- pointerdown\n- dragstart\n- dragmove\n- pointerup\n- dragend\n*/\nclass ElementDragging {\n constructor(el, selector) {\n this.emitter = new Emitter();\n }\n destroy() {\n }\n setMirrorIsVisible(bool) {\n // optional if subclass doesn't want to support a mirror\n }\n setMirrorNeedsRevert(bool) {\n // optional if subclass doesn't want to support a mirror\n }\n setAutoScrollEnabled(bool) {\n // optional\n }\n}\n\n// TODO: get rid of this in favor of options system,\n// tho it's really easy to access this globally rather than pass thru options.\nconst config = {};\n\n/*\nInformation about what will happen when an external element is dragged-and-dropped\nonto a calendar. Contains information for creating an event.\n*/\nconst DRAG_META_REFINERS = {\n startTime: createDuration,\n duration: createDuration,\n create: Boolean,\n sourceId: String,\n};\nfunction parseDragMeta(raw) {\n let { refined, extra } = refineProps(raw, DRAG_META_REFINERS);\n return {\n startTime: refined.startTime || null,\n duration: refined.duration || null,\n create: refined.create != null ? refined.create : true,\n sourceId: refined.sourceId,\n leftoverProps: extra,\n };\n}\n\n// Computes a default column header formatting string if `colFormat` is not explicitly defined\nfunction computeFallbackHeaderFormat(datesRepDistinctDays, dayCnt) {\n // if more than one week row, or if there are a lot of columns with not much space,\n // put just the day numbers will be in each cell\n if (!datesRepDistinctDays || dayCnt > 10) {\n return createFormatter({ weekday: 'short' }); // \"Sat\"\n }\n if (dayCnt > 1) {\n return createFormatter({ weekday: 'short', month: 'numeric', day: 'numeric', omitCommas: true }); // \"Sat 11/12\"\n }\n return createFormatter({ weekday: 'long' }); // \"Saturday\"\n}\n\nconst CLASS_NAME = 'fc-col-header-cell'; // do the cushion too? no\nfunction renderInner$1(renderProps) {\n return renderProps.text;\n}\n\n// BAD name for this class now. used in the Header\nclass TableDateCell extends BaseComponent {\n render() {\n let { dateEnv, options, theme, viewApi } = this.context;\n let { props } = this;\n let { date, dateProfile } = props;\n let dayMeta = getDateMeta(date, props.todayRange, null, dateProfile);\n let classNames = [CLASS_NAME].concat(getDayClassNames(dayMeta, theme));\n let text = dateEnv.format(date, props.dayHeaderFormat);\n // if colCnt is 1, we are already in a day-view and don't need a navlink\n let navLinkAttrs = (!dayMeta.isDisabled && props.colCnt > 1)\n ? buildNavLinkAttrs(this.context, date)\n : {};\n let renderProps = Object.assign(Object.assign(Object.assign({ date: dateEnv.toDate(date), view: viewApi }, props.extraRenderProps), { text }), dayMeta);\n return (createElement(ContentContainer, { elTag: \"th\", elClasses: classNames, elAttrs: Object.assign({ role: 'columnheader', colSpan: props.colSpan, 'data-date': !dayMeta.isDisabled ? formatDayString(date) : undefined }, props.extraDataAttrs), renderProps: renderProps, generatorName: \"dayHeaderContent\", customGenerator: options.dayHeaderContent, defaultGenerator: renderInner$1, classNameGenerator: options.dayHeaderClassNames, didMount: options.dayHeaderDidMount, willUnmount: options.dayHeaderWillUnmount }, (InnerContainer) => (createElement(\"div\", { className: \"fc-scrollgrid-sync-inner\" }, !dayMeta.isDisabled && (createElement(InnerContainer, { elTag: \"a\", elAttrs: navLinkAttrs, elClasses: [\n 'fc-col-header-cell-cushion',\n props.isSticky && 'fc-sticky',\n ] }))))));\n }\n}\n\nconst WEEKDAY_FORMAT = createFormatter({ weekday: 'long' });\nclass TableDowCell extends BaseComponent {\n render() {\n let { props } = this;\n let { dateEnv, theme, viewApi, options } = this.context;\n let date = addDays(new Date(259200000), props.dow); // start with Sun, 04 Jan 1970 00:00:00 GMT\n let dateMeta = {\n dow: props.dow,\n isDisabled: false,\n isFuture: false,\n isPast: false,\n isToday: false,\n isOther: false,\n };\n let text = dateEnv.format(date, props.dayHeaderFormat);\n let renderProps = Object.assign(Object.assign(Object.assign(Object.assign({ // TODO: make this public?\n date }, dateMeta), { view: viewApi }), props.extraRenderProps), { text });\n return (createElement(ContentContainer, { elTag: \"th\", elClasses: [\n CLASS_NAME,\n ...getDayClassNames(dateMeta, theme),\n ...(props.extraClassNames || []),\n ], elAttrs: Object.assign({ role: 'columnheader', colSpan: props.colSpan }, props.extraDataAttrs), renderProps: renderProps, generatorName: \"dayHeaderContent\", customGenerator: options.dayHeaderContent, defaultGenerator: renderInner$1, classNameGenerator: options.dayHeaderClassNames, didMount: options.dayHeaderDidMount, willUnmount: options.dayHeaderWillUnmount }, (InnerContent) => (createElement(\"div\", { className: \"fc-scrollgrid-sync-inner\" },\n createElement(InnerContent, { elTag: \"a\", elClasses: [\n 'fc-col-header-cell-cushion',\n props.isSticky && 'fc-sticky',\n ], elAttrs: {\n 'aria-label': dateEnv.format(date, WEEKDAY_FORMAT),\n } })))));\n }\n}\n\nclass NowTimer extends Component {\n constructor(props, context) {\n super(props, context);\n this.initialNowDate = getNow(context.options.now, context.dateEnv);\n this.initialNowQueriedMs = new Date().valueOf();\n this.state = this.computeTiming().currentState;\n }\n render() {\n let { props, state } = this;\n return props.children(state.nowDate, state.todayRange);\n }\n componentDidMount() {\n this.setTimeout();\n }\n componentDidUpdate(prevProps) {\n if (prevProps.unit !== this.props.unit) {\n this.clearTimeout();\n this.setTimeout();\n }\n }\n componentWillUnmount() {\n this.clearTimeout();\n }\n computeTiming() {\n let { props, context } = this;\n let unroundedNow = addMs(this.initialNowDate, new Date().valueOf() - this.initialNowQueriedMs);\n let currentUnitStart = context.dateEnv.startOf(unroundedNow, props.unit);\n let nextUnitStart = context.dateEnv.add(currentUnitStart, createDuration(1, props.unit));\n let waitMs = nextUnitStart.valueOf() - unroundedNow.valueOf();\n // there is a max setTimeout ms value (https://stackoverflow.com/a/3468650/96342)\n // ensure no longer than a day\n waitMs = Math.min(1000 * 60 * 60 * 24, waitMs);\n return {\n currentState: { nowDate: currentUnitStart, todayRange: buildDayRange(currentUnitStart) },\n nextState: { nowDate: nextUnitStart, todayRange: buildDayRange(nextUnitStart) },\n waitMs,\n };\n }\n setTimeout() {\n let { nextState, waitMs } = this.computeTiming();\n this.timeoutId = setTimeout(() => {\n this.setState(nextState, () => {\n this.setTimeout();\n });\n }, waitMs);\n }\n clearTimeout() {\n if (this.timeoutId) {\n clearTimeout(this.timeoutId);\n }\n }\n}\nNowTimer.contextType = ViewContextType;\nfunction buildDayRange(date) {\n let start = startOfDay(date);\n let end = addDays(start, 1);\n return { start, end };\n}\n\nclass DayHeader extends BaseComponent {\n constructor() {\n super(...arguments);\n this.createDayHeaderFormatter = memoize(createDayHeaderFormatter);\n }\n render() {\n let { context } = this;\n let { dates, dateProfile, datesRepDistinctDays, renderIntro } = this.props;\n let dayHeaderFormat = this.createDayHeaderFormatter(context.options.dayHeaderFormat, datesRepDistinctDays, dates.length);\n return (createElement(NowTimer, { unit: \"day\" }, (nowDate, todayRange) => (createElement(\"tr\", { role: \"row\" },\n renderIntro && renderIntro('day'),\n dates.map((date) => (datesRepDistinctDays ? (createElement(TableDateCell, { key: date.toISOString(), date: date, dateProfile: dateProfile, todayRange: todayRange, colCnt: dates.length, dayHeaderFormat: dayHeaderFormat })) : (createElement(TableDowCell, { key: date.getUTCDay(), dow: date.getUTCDay(), dayHeaderFormat: dayHeaderFormat }))))))));\n }\n}\nfunction createDayHeaderFormatter(explicitFormat, datesRepDistinctDays, dateCnt) {\n return explicitFormat || computeFallbackHeaderFormat(datesRepDistinctDays, dateCnt);\n}\n\nclass DaySeriesModel {\n constructor(range, dateProfileGenerator) {\n let date = range.start;\n let { end } = range;\n let indices = [];\n let dates = [];\n let dayIndex = -1;\n while (date < end) { // loop each day from start to end\n if (dateProfileGenerator.isHiddenDay(date)) {\n indices.push(dayIndex + 0.5); // mark that it's between indices\n }\n else {\n dayIndex += 1;\n indices.push(dayIndex);\n dates.push(date);\n }\n date = addDays(date, 1);\n }\n this.dates = dates;\n this.indices = indices;\n this.cnt = dates.length;\n }\n sliceRange(range) {\n let firstIndex = this.getDateDayIndex(range.start); // inclusive first index\n let lastIndex = this.getDateDayIndex(addDays(range.end, -1)); // inclusive last index\n let clippedFirstIndex = Math.max(0, firstIndex);\n let clippedLastIndex = Math.min(this.cnt - 1, lastIndex);\n // deal with in-between indices\n clippedFirstIndex = Math.ceil(clippedFirstIndex); // in-between starts round to next cell\n clippedLastIndex = Math.floor(clippedLastIndex); // in-between ends round to prev cell\n if (clippedFirstIndex <= clippedLastIndex) {\n return {\n firstIndex: clippedFirstIndex,\n lastIndex: clippedLastIndex,\n isStart: firstIndex === clippedFirstIndex,\n isEnd: lastIndex === clippedLastIndex,\n };\n }\n return null;\n }\n // Given a date, returns its chronolocial cell-index from the first cell of the grid.\n // If the date lies between cells (because of hiddenDays), returns a floating-point value between offsets.\n // If before the first offset, returns a negative number.\n // If after the last offset, returns an offset past the last cell offset.\n // Only works for *start* dates of cells. Will not work for exclusive end dates for cells.\n getDateDayIndex(date) {\n let { indices } = this;\n let dayOffset = Math.floor(diffDays(this.dates[0], date));\n if (dayOffset < 0) {\n return indices[0] - 1;\n }\n if (dayOffset >= indices.length) {\n return indices[indices.length - 1] + 1;\n }\n return indices[dayOffset];\n }\n}\n\nclass DayTableModel {\n constructor(daySeries, breakOnWeeks) {\n let { dates } = daySeries;\n let daysPerRow;\n let firstDay;\n let rowCnt;\n if (breakOnWeeks) {\n // count columns until the day-of-week repeats\n firstDay = dates[0].getUTCDay();\n for (daysPerRow = 1; daysPerRow < dates.length; daysPerRow += 1) {\n if (dates[daysPerRow].getUTCDay() === firstDay) {\n break;\n }\n }\n rowCnt = Math.ceil(dates.length / daysPerRow);\n }\n else {\n rowCnt = 1;\n daysPerRow = dates.length;\n }\n this.rowCnt = rowCnt;\n this.colCnt = daysPerRow;\n this.daySeries = daySeries;\n this.cells = this.buildCells();\n this.headerDates = this.buildHeaderDates();\n }\n buildCells() {\n let rows = [];\n for (let row = 0; row < this.rowCnt; row += 1) {\n let cells = [];\n for (let col = 0; col < this.colCnt; col += 1) {\n cells.push(this.buildCell(row, col));\n }\n rows.push(cells);\n }\n return rows;\n }\n buildCell(row, col) {\n let date = this.daySeries.dates[row * this.colCnt + col];\n return {\n key: date.toISOString(),\n date,\n };\n }\n buildHeaderDates() {\n let dates = [];\n for (let col = 0; col < this.colCnt; col += 1) {\n dates.push(this.cells[0][col].date);\n }\n return dates;\n }\n sliceRange(range) {\n let { colCnt } = this;\n let seriesSeg = this.daySeries.sliceRange(range);\n let segs = [];\n if (seriesSeg) {\n let { firstIndex, lastIndex } = seriesSeg;\n let index = firstIndex;\n while (index <= lastIndex) {\n let row = Math.floor(index / colCnt);\n let nextIndex = Math.min((row + 1) * colCnt, lastIndex + 1);\n segs.push({\n row,\n firstCol: index % colCnt,\n lastCol: (nextIndex - 1) % colCnt,\n isStart: seriesSeg.isStart && index === firstIndex,\n isEnd: seriesSeg.isEnd && (nextIndex - 1) === lastIndex,\n });\n index = nextIndex;\n }\n }\n return segs;\n }\n}\n\nclass Slicer {\n constructor() {\n this.sliceBusinessHours = memoize(this._sliceBusinessHours);\n this.sliceDateSelection = memoize(this._sliceDateSpan);\n this.sliceEventStore = memoize(this._sliceEventStore);\n this.sliceEventDrag = memoize(this._sliceInteraction);\n this.sliceEventResize = memoize(this._sliceInteraction);\n this.forceDayIfListItem = false; // hack\n }\n sliceProps(props, dateProfile, nextDayThreshold, context, ...extraArgs) {\n let { eventUiBases } = props;\n let eventSegs = this.sliceEventStore(props.eventStore, eventUiBases, dateProfile, nextDayThreshold, ...extraArgs);\n return {\n dateSelectionSegs: this.sliceDateSelection(props.dateSelection, dateProfile, nextDayThreshold, eventUiBases, context, ...extraArgs),\n businessHourSegs: this.sliceBusinessHours(props.businessHours, dateProfile, nextDayThreshold, context, ...extraArgs),\n fgEventSegs: eventSegs.fg,\n bgEventSegs: eventSegs.bg,\n eventDrag: this.sliceEventDrag(props.eventDrag, eventUiBases, dateProfile, nextDayThreshold, ...extraArgs),\n eventResize: this.sliceEventResize(props.eventResize, eventUiBases, dateProfile, nextDayThreshold, ...extraArgs),\n eventSelection: props.eventSelection,\n }; // TODO: give interactionSegs?\n }\n sliceNowDate(// does not memoize\n date, dateProfile, nextDayThreshold, context, ...extraArgs) {\n return this._sliceDateSpan({ range: { start: date, end: addMs(date, 1) }, allDay: false }, // add 1 ms, protect against null range\n dateProfile, nextDayThreshold, {}, context, ...extraArgs);\n }\n _sliceBusinessHours(businessHours, dateProfile, nextDayThreshold, context, ...extraArgs) {\n if (!businessHours) {\n return [];\n }\n return this._sliceEventStore(expandRecurring(businessHours, computeActiveRange(dateProfile, Boolean(nextDayThreshold)), context), {}, dateProfile, nextDayThreshold, ...extraArgs).bg;\n }\n _sliceEventStore(eventStore, eventUiBases, dateProfile, nextDayThreshold, ...extraArgs) {\n if (eventStore) {\n let rangeRes = sliceEventStore(eventStore, eventUiBases, computeActiveRange(dateProfile, Boolean(nextDayThreshold)), nextDayThreshold);\n return {\n bg: this.sliceEventRanges(rangeRes.bg, extraArgs),\n fg: this.sliceEventRanges(rangeRes.fg, extraArgs),\n };\n }\n return { bg: [], fg: [] };\n }\n _sliceInteraction(interaction, eventUiBases, dateProfile, nextDayThreshold, ...extraArgs) {\n if (!interaction) {\n return null;\n }\n let rangeRes = sliceEventStore(interaction.mutatedEvents, eventUiBases, computeActiveRange(dateProfile, Boolean(nextDayThreshold)), nextDayThreshold);\n return {\n segs: this.sliceEventRanges(rangeRes.fg, extraArgs),\n affectedInstances: interaction.affectedEvents.instances,\n isEvent: interaction.isEvent,\n };\n }\n _sliceDateSpan(dateSpan, dateProfile, nextDayThreshold, eventUiBases, context, ...extraArgs) {\n if (!dateSpan) {\n return [];\n }\n let activeRange = computeActiveRange(dateProfile, Boolean(nextDayThreshold));\n let activeDateSpanRange = intersectRanges(dateSpan.range, activeRange);\n if (activeDateSpanRange) {\n dateSpan = Object.assign(Object.assign({}, dateSpan), { range: activeDateSpanRange });\n let eventRange = fabricateEventRange(dateSpan, eventUiBases, context);\n let segs = this.sliceRange(dateSpan.range, ...extraArgs);\n for (let seg of segs) {\n seg.eventRange = eventRange;\n }\n return segs;\n }\n return [];\n }\n /*\n \"complete\" seg means it has component and eventRange\n */\n sliceEventRanges(eventRanges, extraArgs) {\n let segs = [];\n for (let eventRange of eventRanges) {\n segs.push(...this.sliceEventRange(eventRange, extraArgs));\n }\n return segs;\n }\n /*\n \"complete\" seg means it has component and eventRange\n */\n sliceEventRange(eventRange, extraArgs) {\n let dateRange = eventRange.range;\n // hack to make multi-day events that are being force-displayed as list-items to take up only one day\n if (this.forceDayIfListItem && eventRange.ui.display === 'list-item') {\n dateRange = {\n start: dateRange.start,\n end: addDays(dateRange.start, 1),\n };\n }\n let segs = this.sliceRange(dateRange, ...extraArgs);\n for (let seg of segs) {\n seg.eventRange = eventRange;\n seg.isStart = eventRange.isStart && seg.isStart;\n seg.isEnd = eventRange.isEnd && seg.isEnd;\n }\n return segs;\n }\n}\n/*\nfor incorporating slotMinTime/slotMaxTime if appropriate\nTODO: should be part of DateProfile!\nTimelineDateProfile already does this btw\n*/\nfunction computeActiveRange(dateProfile, isComponentAllDay) {\n let range = dateProfile.activeRange;\n if (isComponentAllDay) {\n return range;\n }\n return {\n start: addMs(range.start, dateProfile.slotMinTime.milliseconds),\n end: addMs(range.end, dateProfile.slotMaxTime.milliseconds - 864e5), // 864e5 = ms in a day\n };\n}\n\n// high-level segmenting-aware tester functions\n// ------------------------------------------------------------------------------------------------------------------------\nfunction isInteractionValid(interaction, dateProfile, context) {\n let { instances } = interaction.mutatedEvents;\n for (let instanceId in instances) {\n if (!rangeContainsRange(dateProfile.validRange, instances[instanceId].range)) {\n return false;\n }\n }\n return isNewPropsValid({ eventDrag: interaction }, context); // HACK: the eventDrag props is used for ALL interactions\n}\nfunction isDateSelectionValid(dateSelection, dateProfile, context) {\n if (!rangeContainsRange(dateProfile.validRange, dateSelection.range)) {\n return false;\n }\n return isNewPropsValid({ dateSelection }, context);\n}\nfunction isNewPropsValid(newProps, context) {\n let calendarState = context.getCurrentData();\n let props = Object.assign({ businessHours: calendarState.businessHours, dateSelection: '', eventStore: calendarState.eventStore, eventUiBases: calendarState.eventUiBases, eventSelection: '', eventDrag: null, eventResize: null }, newProps);\n return (context.pluginHooks.isPropsValid || isPropsValid)(props, context);\n}\nfunction isPropsValid(state, context, dateSpanMeta = {}, filterConfig) {\n if (state.eventDrag && !isInteractionPropsValid(state, context, dateSpanMeta, filterConfig)) {\n return false;\n }\n if (state.dateSelection && !isDateSelectionPropsValid(state, context, dateSpanMeta, filterConfig)) {\n return false;\n }\n return true;\n}\n// Moving Event Validation\n// ------------------------------------------------------------------------------------------------------------------------\nfunction isInteractionPropsValid(state, context, dateSpanMeta, filterConfig) {\n let currentState = context.getCurrentData();\n let interaction = state.eventDrag; // HACK: the eventDrag props is used for ALL interactions\n let subjectEventStore = interaction.mutatedEvents;\n let subjectDefs = subjectEventStore.defs;\n let subjectInstances = subjectEventStore.instances;\n let subjectConfigs = compileEventUis(subjectDefs, interaction.isEvent ?\n state.eventUiBases :\n { '': currentState.selectionConfig });\n if (filterConfig) {\n subjectConfigs = mapHash(subjectConfigs, filterConfig);\n }\n // exclude the subject events. TODO: exclude defs too?\n let otherEventStore = excludeInstances(state.eventStore, interaction.affectedEvents.instances);\n let otherDefs = otherEventStore.defs;\n let otherInstances = otherEventStore.instances;\n let otherConfigs = compileEventUis(otherDefs, state.eventUiBases);\n for (let subjectInstanceId in subjectInstances) {\n let subjectInstance = subjectInstances[subjectInstanceId];\n let subjectRange = subjectInstance.range;\n let subjectConfig = subjectConfigs[subjectInstance.defId];\n let subjectDef = subjectDefs[subjectInstance.defId];\n // constraint\n if (!allConstraintsPass(subjectConfig.constraints, subjectRange, otherEventStore, state.businessHours, context)) {\n return false;\n }\n // overlap\n let { eventOverlap } = context.options;\n let eventOverlapFunc = typeof eventOverlap === 'function' ? eventOverlap : null;\n for (let otherInstanceId in otherInstances) {\n let otherInstance = otherInstances[otherInstanceId];\n // intersect! evaluate\n if (rangesIntersect(subjectRange, otherInstance.range)) {\n let otherOverlap = otherConfigs[otherInstance.defId].overlap;\n // consider the other event's overlap. only do this if the subject event is a \"real\" event\n if (otherOverlap === false && interaction.isEvent) {\n return false;\n }\n if (subjectConfig.overlap === false) {\n return false;\n }\n if (eventOverlapFunc && !eventOverlapFunc(new EventImpl(context, otherDefs[otherInstance.defId], otherInstance), // still event\n new EventImpl(context, subjectDef, subjectInstance))) {\n return false;\n }\n }\n }\n // allow (a function)\n let calendarEventStore = currentState.eventStore; // need global-to-calendar, not local to component (splittable)state\n for (let subjectAllow of subjectConfig.allows) {\n let subjectDateSpan = Object.assign(Object.assign({}, dateSpanMeta), { range: subjectInstance.range, allDay: subjectDef.allDay });\n let origDef = calendarEventStore.defs[subjectDef.defId];\n let origInstance = calendarEventStore.instances[subjectInstanceId];\n let eventApi;\n if (origDef) { // was previously in the calendar\n eventApi = new EventImpl(context, origDef, origInstance);\n }\n else { // was an external event\n eventApi = new EventImpl(context, subjectDef); // no instance, because had no dates\n }\n if (!subjectAllow(buildDateSpanApiWithContext(subjectDateSpan, context), eventApi)) {\n return false;\n }\n }\n }\n return true;\n}\n// Date Selection Validation\n// ------------------------------------------------------------------------------------------------------------------------\nfunction isDateSelectionPropsValid(state, context, dateSpanMeta, filterConfig) {\n let relevantEventStore = state.eventStore;\n let relevantDefs = relevantEventStore.defs;\n let relevantInstances = relevantEventStore.instances;\n let selection = state.dateSelection;\n let selectionRange = selection.range;\n let { selectionConfig } = context.getCurrentData();\n if (filterConfig) {\n selectionConfig = filterConfig(selectionConfig);\n }\n // constraint\n if (!allConstraintsPass(selectionConfig.constraints, selectionRange, relevantEventStore, state.businessHours, context)) {\n return false;\n }\n // overlap\n let { selectOverlap } = context.options;\n let selectOverlapFunc = typeof selectOverlap === 'function' ? selectOverlap : null;\n for (let relevantInstanceId in relevantInstances) {\n let relevantInstance = relevantInstances[relevantInstanceId];\n // intersect! evaluate\n if (rangesIntersect(selectionRange, relevantInstance.range)) {\n if (selectionConfig.overlap === false) {\n return false;\n }\n if (selectOverlapFunc && !selectOverlapFunc(new EventImpl(context, relevantDefs[relevantInstance.defId], relevantInstance), null)) {\n return false;\n }\n }\n }\n // allow (a function)\n for (let selectionAllow of selectionConfig.allows) {\n let fullDateSpan = Object.assign(Object.assign({}, dateSpanMeta), selection);\n if (!selectionAllow(buildDateSpanApiWithContext(fullDateSpan, context), null)) {\n return false;\n }\n }\n return true;\n}\n// Constraint Utils\n// ------------------------------------------------------------------------------------------------------------------------\nfunction allConstraintsPass(constraints, subjectRange, otherEventStore, businessHoursUnexpanded, context) {\n for (let constraint of constraints) {\n if (!anyRangesContainRange(constraintToRanges(constraint, subjectRange, otherEventStore, businessHoursUnexpanded, context), subjectRange)) {\n return false;\n }\n }\n return true;\n}\nfunction constraintToRanges(constraint, subjectRange, // for expanding a recurring constraint, or expanding business hours\notherEventStore, // for if constraint is an even group ID\nbusinessHoursUnexpanded, // for if constraint is 'businessHours'\ncontext) {\n if (constraint === 'businessHours') {\n return eventStoreToRanges(expandRecurring(businessHoursUnexpanded, subjectRange, context));\n }\n if (typeof constraint === 'string') { // an group ID\n return eventStoreToRanges(filterEventStoreDefs(otherEventStore, (eventDef) => eventDef.groupId === constraint));\n }\n if (typeof constraint === 'object' && constraint) { // non-null object\n return eventStoreToRanges(expandRecurring(constraint, subjectRange, context));\n }\n return []; // if it's false\n}\n// TODO: move to event-store file?\nfunction eventStoreToRanges(eventStore) {\n let { instances } = eventStore;\n let ranges = [];\n for (let instanceId in instances) {\n ranges.push(instances[instanceId].range);\n }\n return ranges;\n}\n// TODO: move to geom file?\nfunction anyRangesContainRange(outerRanges, innerRange) {\n for (let outerRange of outerRanges) {\n if (rangeContainsRange(outerRange, innerRange)) {\n return true;\n }\n }\n return false;\n}\n\nconst VISIBLE_HIDDEN_RE = /^(visible|hidden)$/;\nclass Scroller extends BaseComponent {\n constructor() {\n super(...arguments);\n this.handleEl = (el) => {\n this.el = el;\n setRef(this.props.elRef, el);\n };\n }\n render() {\n let { props } = this;\n let { liquid, liquidIsAbsolute } = props;\n let isAbsolute = liquid && liquidIsAbsolute;\n let className = ['fc-scroller'];\n if (liquid) {\n if (liquidIsAbsolute) {\n className.push('fc-scroller-liquid-absolute');\n }\n else {\n className.push('fc-scroller-liquid');\n }\n }\n return (createElement(\"div\", { ref: this.handleEl, className: className.join(' '), style: {\n overflowX: props.overflowX,\n overflowY: props.overflowY,\n left: (isAbsolute && -(props.overcomeLeft || 0)) || '',\n right: (isAbsolute && -(props.overcomeRight || 0)) || '',\n bottom: (isAbsolute && -(props.overcomeBottom || 0)) || '',\n marginLeft: (!isAbsolute && -(props.overcomeLeft || 0)) || '',\n marginRight: (!isAbsolute && -(props.overcomeRight || 0)) || '',\n marginBottom: (!isAbsolute && -(props.overcomeBottom || 0)) || '',\n maxHeight: props.maxHeight || '',\n } }, props.children));\n }\n needsXScrolling() {\n if (VISIBLE_HIDDEN_RE.test(this.props.overflowX)) {\n return false;\n }\n // testing scrollWidth>clientWidth is unreliable cross-browser when pixel heights aren't integers.\n // much more reliable to see if children are taller than the scroller, even tho doesn't account for\n // inner-child margins and absolute positioning\n let { el } = this;\n let realClientWidth = this.el.getBoundingClientRect().width - this.getYScrollbarWidth();\n let { children } = el;\n for (let i = 0; i < children.length; i += 1) {\n let childEl = children[i];\n if (childEl.getBoundingClientRect().width > realClientWidth) {\n return true;\n }\n }\n return false;\n }\n needsYScrolling() {\n if (VISIBLE_HIDDEN_RE.test(this.props.overflowY)) {\n return false;\n }\n // testing scrollHeight>clientHeight is unreliable cross-browser when pixel heights aren't integers.\n // much more reliable to see if children are taller than the scroller, even tho doesn't account for\n // inner-child margins and absolute positioning\n let { el } = this;\n let realClientHeight = this.el.getBoundingClientRect().height - this.getXScrollbarWidth();\n let { children } = el;\n for (let i = 0; i < children.length; i += 1) {\n let childEl = children[i];\n if (childEl.getBoundingClientRect().height > realClientHeight) {\n return true;\n }\n }\n return false;\n }\n getXScrollbarWidth() {\n if (VISIBLE_HIDDEN_RE.test(this.props.overflowX)) {\n return 0;\n }\n return this.el.offsetHeight - this.el.clientHeight; // only works because we guarantee no borders. TODO: add to CSS with important?\n }\n getYScrollbarWidth() {\n if (VISIBLE_HIDDEN_RE.test(this.props.overflowY)) {\n return 0;\n }\n return this.el.offsetWidth - this.el.clientWidth; // only works because we guarantee no borders. TODO: add to CSS with important?\n }\n}\n\n/*\nTODO: somehow infer OtherArgs from masterCallback?\nTODO: infer RefType from masterCallback if provided\n*/\nclass RefMap {\n constructor(masterCallback) {\n this.masterCallback = masterCallback;\n this.currentMap = {};\n this.depths = {};\n this.callbackMap = {};\n this.handleValue = (val, key) => {\n let { depths, currentMap } = this;\n let removed = false;\n let added = false;\n if (val !== null) {\n // for bug... ACTUALLY: can probably do away with this now that callers don't share numeric indices anymore\n removed = (key in currentMap);\n currentMap[key] = val;\n depths[key] = (depths[key] || 0) + 1;\n added = true;\n }\n else {\n depths[key] -= 1;\n if (!depths[key]) {\n delete currentMap[key];\n delete this.callbackMap[key];\n removed = true;\n }\n }\n if (this.masterCallback) {\n if (removed) {\n this.masterCallback(null, String(key));\n }\n if (added) {\n this.masterCallback(val, String(key));\n }\n }\n };\n }\n createRef(key) {\n let refCallback = this.callbackMap[key];\n if (!refCallback) {\n refCallback = this.callbackMap[key] = (val) => {\n this.handleValue(val, String(key));\n };\n }\n return refCallback;\n }\n // TODO: check callers that don't care about order. should use getAll instead\n // NOTE: this method has become less valuable now that we are encouraged to map order by some other index\n // TODO: provide ONE array-export function, buildArray, which fails on non-numeric indexes. caller can manipulate and \"collect\"\n collect(startIndex, endIndex, step) {\n return collectFromHash(this.currentMap, startIndex, endIndex, step);\n }\n getAll() {\n return hashValuesToArray(this.currentMap);\n }\n}\n\nfunction computeShrinkWidth(chunkEls) {\n let shrinkCells = findElements(chunkEls, '.fc-scrollgrid-shrink');\n let largestWidth = 0;\n for (let shrinkCell of shrinkCells) {\n largestWidth = Math.max(largestWidth, computeSmallestCellWidth(shrinkCell));\n }\n return Math.ceil(largestWidth); // <table> elements work best with integers. round up to ensure contents fits\n}\nfunction getSectionHasLiquidHeight(props, sectionConfig) {\n return props.liquid && sectionConfig.liquid; // does the section do liquid-height? (need to have whole scrollgrid liquid-height as well)\n}\nfunction getAllowYScrolling(props, sectionConfig) {\n return sectionConfig.maxHeight != null || // if its possible for the height to max out, we might need scrollbars\n getSectionHasLiquidHeight(props, sectionConfig); // if the section is liquid height, it might condense enough to require scrollbars\n}\n// TODO: ONLY use `arg`. force out internal function to use same API\nfunction renderChunkContent(sectionConfig, chunkConfig, arg, isHeader) {\n let { expandRows } = arg;\n let content = typeof chunkConfig.content === 'function' ?\n chunkConfig.content(arg) :\n createElement('table', {\n role: 'presentation',\n className: [\n chunkConfig.tableClassName,\n sectionConfig.syncRowHeights ? 'fc-scrollgrid-sync-table' : '',\n ].join(' '),\n style: {\n minWidth: arg.tableMinWidth,\n width: arg.clientWidth,\n height: expandRows ? arg.clientHeight : '', // css `height` on a <table> serves as a min-height\n },\n }, arg.tableColGroupNode, createElement(isHeader ? 'thead' : 'tbody', {\n role: 'presentation',\n }, typeof chunkConfig.rowContent === 'function'\n ? chunkConfig.rowContent(arg)\n : chunkConfig.rowContent));\n return content;\n}\nfunction isColPropsEqual(cols0, cols1) {\n return isArraysEqual(cols0, cols1, isPropsEqual);\n}\nfunction renderMicroColGroup(cols, shrinkWidth) {\n let colNodes = [];\n /*\n for ColProps with spans, it would have been great to make a single <col span=\"\">\n HOWEVER, Chrome was getting messing up distributing the width to <td>/<th> elements with colspans.\n SOLUTION: making individual <col> elements makes Chrome behave.\n */\n for (let colProps of cols) {\n let span = colProps.span || 1;\n for (let i = 0; i < span; i += 1) {\n colNodes.push(createElement(\"col\", { style: {\n width: colProps.width === 'shrink' ? sanitizeShrinkWidth(shrinkWidth) : (colProps.width || ''),\n minWidth: colProps.minWidth || '',\n } }));\n }\n }\n return createElement('colgroup', {}, ...colNodes);\n}\nfunction sanitizeShrinkWidth(shrinkWidth) {\n /* why 4? if we do 0, it will kill any border, which are needed for computeSmallestCellWidth\n 4 accounts for 2 2-pixel borders. TODO: better solution? */\n return shrinkWidth == null ? 4 : shrinkWidth;\n}\nfunction hasShrinkWidth(cols) {\n for (let col of cols) {\n if (col.width === 'shrink') {\n return true;\n }\n }\n return false;\n}\nfunction getScrollGridClassNames(liquid, context) {\n let classNames = [\n 'fc-scrollgrid',\n context.theme.getClass('table'),\n ];\n if (liquid) {\n classNames.push('fc-scrollgrid-liquid');\n }\n return classNames;\n}\nfunction getSectionClassNames(sectionConfig, wholeTableVGrow) {\n let classNames = [\n 'fc-scrollgrid-section',\n `fc-scrollgrid-section-${sectionConfig.type}`,\n sectionConfig.className, // used?\n ];\n if (wholeTableVGrow && sectionConfig.liquid && sectionConfig.maxHeight == null) {\n classNames.push('fc-scrollgrid-section-liquid');\n }\n if (sectionConfig.isSticky) {\n classNames.push('fc-scrollgrid-section-sticky');\n }\n return classNames;\n}\nfunction renderScrollShim(arg) {\n return (createElement(\"div\", { className: \"fc-scrollgrid-sticky-shim\", style: {\n width: arg.clientWidth,\n minWidth: arg.tableMinWidth,\n } }));\n}\nfunction getStickyHeaderDates(options) {\n let { stickyHeaderDates } = options;\n if (stickyHeaderDates == null || stickyHeaderDates === 'auto') {\n stickyHeaderDates = options.height === 'auto' || options.viewHeight === 'auto';\n }\n return stickyHeaderDates;\n}\nfunction getStickyFooterScrollbar(options) {\n let { stickyFooterScrollbar } = options;\n if (stickyFooterScrollbar == null || stickyFooterScrollbar === 'auto') {\n stickyFooterScrollbar = options.height === 'auto' || options.viewHeight === 'auto';\n }\n return stickyFooterScrollbar;\n}\n\nclass SimpleScrollGrid extends BaseComponent {\n constructor() {\n super(...arguments);\n this.processCols = memoize((a) => a, isColPropsEqual); // so we get same `cols` props every time\n // yucky to memoize VNodes, but much more efficient for consumers\n this.renderMicroColGroup = memoize(renderMicroColGroup);\n this.scrollerRefs = new RefMap();\n this.scrollerElRefs = new RefMap(this._handleScrollerEl.bind(this));\n this.state = {\n shrinkWidth: null,\n forceYScrollbars: false,\n scrollerClientWidths: {},\n scrollerClientHeights: {},\n };\n // TODO: can do a really simple print-view. dont need to join rows\n this.handleSizing = () => {\n this.safeSetState(Object.assign({ shrinkWidth: this.computeShrinkWidth() }, this.computeScrollerDims()));\n };\n }\n render() {\n let { props, state, context } = this;\n let sectionConfigs = props.sections || [];\n let cols = this.processCols(props.cols);\n let microColGroupNode = this.renderMicroColGroup(cols, state.shrinkWidth);\n let classNames = getScrollGridClassNames(props.liquid, context);\n if (props.collapsibleWidth) {\n classNames.push('fc-scrollgrid-collapsible');\n }\n // TODO: make DRY\n let configCnt = sectionConfigs.length;\n let configI = 0;\n let currentConfig;\n let headSectionNodes = [];\n let bodySectionNodes = [];\n let footSectionNodes = [];\n while (configI < configCnt && (currentConfig = sectionConfigs[configI]).type === 'header') {\n headSectionNodes.push(this.renderSection(currentConfig, microColGroupNode, true));\n configI += 1;\n }\n while (configI < configCnt && (currentConfig = sectionConfigs[configI]).type === 'body') {\n bodySectionNodes.push(this.renderSection(currentConfig, microColGroupNode, false));\n configI += 1;\n }\n while (configI < configCnt && (currentConfig = sectionConfigs[configI]).type === 'footer') {\n footSectionNodes.push(this.renderSection(currentConfig, microColGroupNode, true));\n configI += 1;\n }\n // firefox bug: when setting height on table and there is a thead or tfoot,\n // the necessary height:100% on the liquid-height body section forces the *whole* table to be taller. (bug #5524)\n // use getCanVGrowWithinCell as a way to detect table-stupid firefox.\n // if so, use a simpler dom structure, jam everything into a lone tbody.\n let isBuggy = !getCanVGrowWithinCell();\n const roleAttrs = { role: 'rowgroup' };\n return createElement('table', {\n role: 'grid',\n className: classNames.join(' '),\n style: { height: props.height },\n }, Boolean(!isBuggy && headSectionNodes.length) && createElement('thead', roleAttrs, ...headSectionNodes), Boolean(!isBuggy && bodySectionNodes.length) && createElement('tbody', roleAttrs, ...bodySectionNodes), Boolean(!isBuggy && footSectionNodes.length) && createElement('tfoot', roleAttrs, ...footSectionNodes), isBuggy && createElement('tbody', roleAttrs, ...headSectionNodes, ...bodySectionNodes, ...footSectionNodes));\n }\n renderSection(sectionConfig, microColGroupNode, isHeader) {\n if ('outerContent' in sectionConfig) {\n return (createElement(Fragment, { key: sectionConfig.key }, sectionConfig.outerContent));\n }\n return (createElement(\"tr\", { key: sectionConfig.key, role: \"presentation\", className: getSectionClassNames(sectionConfig, this.props.liquid).join(' ') }, this.renderChunkTd(sectionConfig, microColGroupNode, sectionConfig.chunk, isHeader)));\n }\n renderChunkTd(sectionConfig, microColGroupNode, chunkConfig, isHeader) {\n if ('outerContent' in chunkConfig) {\n return chunkConfig.outerContent;\n }\n let { props } = this;\n let { forceYScrollbars, scrollerClientWidths, scrollerClientHeights } = this.state;\n let needsYScrolling = getAllowYScrolling(props, sectionConfig); // TODO: do lazily. do in section config?\n let isLiquid = getSectionHasLiquidHeight(props, sectionConfig);\n // for `!props.liquid` - is WHOLE scrollgrid natural height?\n // TODO: do same thing in advanced scrollgrid? prolly not b/c always has horizontal scrollbars\n let overflowY = !props.liquid ? 'visible' :\n forceYScrollbars ? 'scroll' :\n !needsYScrolling ? 'hidden' :\n 'auto';\n let sectionKey = sectionConfig.key;\n let content = renderChunkContent(sectionConfig, chunkConfig, {\n tableColGroupNode: microColGroupNode,\n tableMinWidth: '',\n clientWidth: (!props.collapsibleWidth && scrollerClientWidths[sectionKey] !== undefined) ? scrollerClientWidths[sectionKey] : null,\n clientHeight: scrollerClientHeights[sectionKey] !== undefined ? scrollerClientHeights[sectionKey] : null,\n expandRows: sectionConfig.expandRows,\n syncRowHeights: false,\n rowSyncHeights: [],\n reportRowHeightChange: () => { },\n }, isHeader);\n return createElement(isHeader ? 'th' : 'td', {\n ref: chunkConfig.elRef,\n role: 'presentation',\n }, createElement(\"div\", { className: `fc-scroller-harness${isLiquid ? ' fc-scroller-harness-liquid' : ''}` },\n createElement(Scroller, { ref: this.scrollerRefs.createRef(sectionKey), elRef: this.scrollerElRefs.createRef(sectionKey), overflowY: overflowY, overflowX: !props.liquid ? 'visible' : 'hidden' /* natural height? */, maxHeight: sectionConfig.maxHeight, liquid: isLiquid, liquidIsAbsolute // because its within a harness\n : true }, content)));\n }\n _handleScrollerEl(scrollerEl, key) {\n let section = getSectionByKey(this.props.sections, key);\n if (section) {\n setRef(section.chunk.scrollerElRef, scrollerEl);\n }\n }\n componentDidMount() {\n this.handleSizing();\n this.context.addResizeHandler(this.handleSizing);\n }\n componentDidUpdate() {\n // TODO: need better solution when state contains non-sizing things\n this.handleSizing();\n }\n componentWillUnmount() {\n this.context.removeResizeHandler(this.handleSizing);\n }\n computeShrinkWidth() {\n return hasShrinkWidth(this.props.cols)\n ? computeShrinkWidth(this.scrollerElRefs.getAll())\n : 0;\n }\n computeScrollerDims() {\n let scrollbarWidth = getScrollbarWidths();\n let { scrollerRefs, scrollerElRefs } = this;\n let forceYScrollbars = false;\n let scrollerClientWidths = {};\n let scrollerClientHeights = {};\n for (let sectionKey in scrollerRefs.currentMap) {\n let scroller = scrollerRefs.currentMap[sectionKey];\n if (scroller && scroller.needsYScrolling()) {\n forceYScrollbars = true;\n break;\n }\n }\n for (let section of this.props.sections) {\n let sectionKey = section.key;\n let scrollerEl = scrollerElRefs.currentMap[sectionKey];\n if (scrollerEl) {\n let harnessEl = scrollerEl.parentNode; // TODO: weird way to get this. need harness b/c doesn't include table borders\n scrollerClientWidths[sectionKey] = Math.floor(harnessEl.getBoundingClientRect().width - (forceYScrollbars\n ? scrollbarWidth.y // use global because scroller might not have scrollbars yet but will need them in future\n : 0));\n scrollerClientHeights[sectionKey] = Math.floor(harnessEl.getBoundingClientRect().height);\n }\n }\n return { forceYScrollbars, scrollerClientWidths, scrollerClientHeights };\n }\n}\nSimpleScrollGrid.addStateEquality({\n scrollerClientWidths: isPropsEqual,\n scrollerClientHeights: isPropsEqual,\n});\nfunction getSectionByKey(sections, key) {\n for (let section of sections) {\n if (section.key === key) {\n return section;\n }\n }\n return null;\n}\n\nclass EventContainer extends BaseComponent {\n constructor() {\n super(...arguments);\n this.handleEl = (el) => {\n this.el = el;\n if (el) {\n setElSeg(el, this.props.seg);\n }\n };\n }\n render() {\n const { props, context } = this;\n const { options } = context;\n const { seg } = props;\n const { eventRange } = seg;\n const { ui } = eventRange;\n const renderProps = {\n event: new EventImpl(context, eventRange.def, eventRange.instance),\n view: context.viewApi,\n timeText: props.timeText,\n textColor: ui.textColor,\n backgroundColor: ui.backgroundColor,\n borderColor: ui.borderColor,\n isDraggable: !props.disableDragging && computeSegDraggable(seg, context),\n isStartResizable: !props.disableResizing && computeSegStartResizable(seg, context),\n isEndResizable: !props.disableResizing && computeSegEndResizable(seg),\n isMirror: Boolean(props.isDragging || props.isResizing || props.isDateSelecting),\n isStart: Boolean(seg.isStart),\n isEnd: Boolean(seg.isEnd),\n isPast: Boolean(props.isPast),\n isFuture: Boolean(props.isFuture),\n isToday: Boolean(props.isToday),\n isSelected: Boolean(props.isSelected),\n isDragging: Boolean(props.isDragging),\n isResizing: Boolean(props.isResizing),\n };\n return (createElement(ContentContainer, Object.assign({}, props /* contains children */, { elRef: this.handleEl, elClasses: [\n ...getEventClassNames(renderProps),\n ...seg.eventRange.ui.classNames,\n ...(props.elClasses || []),\n ], renderProps: renderProps, generatorName: \"eventContent\", customGenerator: options.eventContent, defaultGenerator: props.defaultGenerator, classNameGenerator: options.eventClassNames, didMount: options.eventDidMount, willUnmount: options.eventWillUnmount })));\n }\n componentDidUpdate(prevProps) {\n if (this.el && this.props.seg !== prevProps.seg) {\n setElSeg(this.el, this.props.seg);\n }\n }\n}\n\n// should not be a purecomponent\nclass StandardEvent extends BaseComponent {\n render() {\n let { props, context } = this;\n let { options } = context;\n let { seg } = props;\n let { ui } = seg.eventRange;\n let timeFormat = options.eventTimeFormat || props.defaultTimeFormat;\n let timeText = buildSegTimeText(seg, timeFormat, context, props.defaultDisplayEventTime, props.defaultDisplayEventEnd);\n return (createElement(EventContainer, Object.assign({}, props /* includes elRef */, { elTag: \"a\", elStyle: {\n borderColor: ui.borderColor,\n backgroundColor: ui.backgroundColor,\n }, elAttrs: getSegAnchorAttrs(seg, context), defaultGenerator: renderInnerContent$1, timeText: timeText }), (InnerContent, eventContentArg) => (createElement(Fragment, null,\n createElement(InnerContent, { elTag: \"div\", elClasses: ['fc-event-main'], elStyle: { color: eventContentArg.textColor } }),\n Boolean(eventContentArg.isStartResizable) && (createElement(\"div\", { className: \"fc-event-resizer fc-event-resizer-start\" })),\n Boolean(eventContentArg.isEndResizable) && (createElement(\"div\", { className: \"fc-event-resizer fc-event-resizer-end\" }))))));\n }\n}\nfunction renderInnerContent$1(innerProps) {\n return (createElement(\"div\", { className: \"fc-event-main-frame\" },\n innerProps.timeText && (createElement(\"div\", { className: \"fc-event-time\" }, innerProps.timeText)),\n createElement(\"div\", { className: \"fc-event-title-container\" },\n createElement(\"div\", { className: \"fc-event-title fc-sticky\" }, innerProps.event.title || createElement(Fragment, null, \"\\u00A0\")))));\n}\n\nconst NowIndicatorContainer = (props) => (createElement(ViewContextType.Consumer, null, (context) => {\n let { options } = context;\n let renderProps = {\n isAxis: props.isAxis,\n date: context.dateEnv.toDate(props.date),\n view: context.viewApi,\n };\n return (createElement(ContentContainer, Object.assign({}, props /* includes children */, { elTag: props.elTag || 'div', renderProps: renderProps, generatorName: \"nowIndicatorContent\", customGenerator: options.nowIndicatorContent, classNameGenerator: options.nowIndicatorClassNames, didMount: options.nowIndicatorDidMount, willUnmount: options.nowIndicatorWillUnmount })));\n}));\n\nconst DAY_NUM_FORMAT = createFormatter({ day: 'numeric' });\nclass DayCellContainer extends BaseComponent {\n constructor() {\n super(...arguments);\n this.refineRenderProps = memoizeObjArg(refineRenderProps);\n }\n render() {\n let { props, context } = this;\n let { options } = context;\n let renderProps = this.refineRenderProps({\n date: props.date,\n dateProfile: props.dateProfile,\n todayRange: props.todayRange,\n isMonthStart: props.isMonthStart || false,\n showDayNumber: props.showDayNumber,\n extraRenderProps: props.extraRenderProps,\n viewApi: context.viewApi,\n dateEnv: context.dateEnv,\n monthStartFormat: options.monthStartFormat,\n });\n return (createElement(ContentContainer, Object.assign({}, props /* includes children */, { elClasses: [\n ...getDayClassNames(renderProps, context.theme),\n ...(props.elClasses || []),\n ], elAttrs: Object.assign(Object.assign({}, props.elAttrs), (renderProps.isDisabled ? {} : { 'data-date': formatDayString(props.date) })), renderProps: renderProps, generatorName: \"dayCellContent\", customGenerator: options.dayCellContent, defaultGenerator: props.defaultGenerator, classNameGenerator: \n // don't use custom classNames if disabled\n renderProps.isDisabled ? undefined : options.dayCellClassNames, didMount: options.dayCellDidMount, willUnmount: options.dayCellWillUnmount })));\n }\n}\nfunction hasCustomDayCellContent(options) {\n return Boolean(options.dayCellContent || hasCustomRenderingHandler('dayCellContent', options));\n}\nfunction refineRenderProps(raw) {\n let { date, dateEnv, dateProfile, isMonthStart } = raw;\n let dayMeta = getDateMeta(date, raw.todayRange, null, dateProfile);\n let dayNumberText = raw.showDayNumber ? (dateEnv.format(date, isMonthStart ? raw.monthStartFormat : DAY_NUM_FORMAT)) : '';\n return Object.assign(Object.assign(Object.assign({ date: dateEnv.toDate(date), view: raw.viewApi }, dayMeta), { isMonthStart,\n dayNumberText }), raw.extraRenderProps);\n}\n\nclass BgEvent extends BaseComponent {\n render() {\n let { props } = this;\n let { seg } = props;\n return (createElement(EventContainer, { elTag: \"div\", elClasses: ['fc-bg-event'], elStyle: { backgroundColor: seg.eventRange.ui.backgroundColor }, defaultGenerator: renderInnerContent, seg: seg, timeText: \"\", isDragging: false, isResizing: false, isDateSelecting: false, isSelected: false, isPast: props.isPast, isFuture: props.isFuture, isToday: props.isToday, disableDragging: true, disableResizing: true }));\n }\n}\nfunction renderInnerContent(props) {\n let { title } = props.event;\n return title && (createElement(\"div\", { className: \"fc-event-title\" }, props.event.title));\n}\nfunction renderFill(fillType) {\n return (createElement(\"div\", { className: `fc-${fillType}` }));\n}\n\nconst WeekNumberContainer = (props) => (createElement(ViewContextType.Consumer, null, (context) => {\n let { dateEnv, options } = context;\n let { date } = props;\n let format = options.weekNumberFormat || props.defaultFormat;\n let num = dateEnv.computeWeekNumber(date); // TODO: somehow use for formatting as well?\n let text = dateEnv.format(date, format);\n let renderProps = { num, text, date };\n return (createElement(ContentContainer // why isn't WeekNumberContentArg being auto-detected?\n , Object.assign({}, props /* includes children */, { renderProps: renderProps, generatorName: \"weekNumberContent\", customGenerator: options.weekNumberContent, defaultGenerator: renderInner, classNameGenerator: options.weekNumberClassNames, didMount: options.weekNumberDidMount, willUnmount: options.weekNumberWillUnmount })));\n}));\nfunction renderInner(innerProps) {\n return innerProps.text;\n}\n\nconst PADDING_FROM_VIEWPORT = 10;\nclass Popover extends BaseComponent {\n constructor() {\n super(...arguments);\n this.state = {\n titleId: getUniqueDomId(),\n };\n this.handleRootEl = (el) => {\n this.rootEl = el;\n if (this.props.elRef) {\n setRef(this.props.elRef, el);\n }\n };\n // Triggered when the user clicks *anywhere* in the document, for the autoHide feature\n this.handleDocumentMouseDown = (ev) => {\n // only hide the popover if the click happened outside the popover\n const target = getEventTargetViaRoot(ev);\n if (!this.rootEl.contains(target)) {\n this.handleCloseClick();\n }\n };\n this.handleDocumentKeyDown = (ev) => {\n if (ev.key === 'Escape') {\n this.handleCloseClick();\n }\n };\n this.handleCloseClick = () => {\n let { onClose } = this.props;\n if (onClose) {\n onClose();\n }\n };\n }\n render() {\n let { theme, options } = this.context;\n let { props, state } = this;\n let classNames = [\n 'fc-popover',\n theme.getClass('popover'),\n ].concat(props.extraClassNames || []);\n return createPortal(createElement(\"div\", Object.assign({}, props.extraAttrs, { id: props.id, className: classNames.join(' '), \"aria-labelledby\": state.titleId, ref: this.handleRootEl }),\n createElement(\"div\", { className: 'fc-popover-header ' + theme.getClass('popoverHeader') },\n createElement(\"span\", { className: \"fc-popover-title\", id: state.titleId }, props.title),\n createElement(\"span\", { className: 'fc-popover-close ' + theme.getIconClass('close'), title: options.closeHint, onClick: this.handleCloseClick })),\n createElement(\"div\", { className: 'fc-popover-body ' + theme.getClass('popoverContent') }, props.children)), props.parentEl);\n }\n componentDidMount() {\n document.addEventListener('mousedown', this.handleDocumentMouseDown);\n document.addEventListener('keydown', this.handleDocumentKeyDown);\n this.updateSize();\n }\n componentWillUnmount() {\n document.removeEventListener('mousedown', this.handleDocumentMouseDown);\n document.removeEventListener('keydown', this.handleDocumentKeyDown);\n }\n updateSize() {\n let { isRtl } = this.context;\n let { alignmentEl, alignGridTop } = this.props;\n let { rootEl } = this;\n let alignmentRect = computeClippedClientRect(alignmentEl);\n if (alignmentRect) {\n let popoverDims = rootEl.getBoundingClientRect();\n // position relative to viewport\n let popoverTop = alignGridTop\n ? elementClosest(alignmentEl, '.fc-scrollgrid').getBoundingClientRect().top\n : alignmentRect.top;\n let popoverLeft = isRtl ? alignmentRect.right - popoverDims.width : alignmentRect.left;\n // constrain\n popoverTop = Math.max(popoverTop, PADDING_FROM_VIEWPORT);\n popoverLeft = Math.min(popoverLeft, document.documentElement.clientWidth - PADDING_FROM_VIEWPORT - popoverDims.width);\n popoverLeft = Math.max(popoverLeft, PADDING_FROM_VIEWPORT);\n let origin = rootEl.offsetParent.getBoundingClientRect();\n applyStyle(rootEl, {\n top: popoverTop - origin.top,\n left: popoverLeft - origin.left,\n });\n }\n }\n}\n\nclass MorePopover extends DateComponent {\n constructor() {\n super(...arguments);\n this.handleRootEl = (rootEl) => {\n this.rootEl = rootEl;\n if (rootEl) {\n this.context.registerInteractiveComponent(this, {\n el: rootEl,\n useEventCenter: false,\n });\n }\n else {\n this.context.unregisterInteractiveComponent(this);\n }\n };\n }\n render() {\n let { options, dateEnv } = this.context;\n let { props } = this;\n let { startDate, todayRange, dateProfile } = props;\n let title = dateEnv.format(startDate, options.dayPopoverFormat);\n return (createElement(DayCellContainer, { elRef: this.handleRootEl, date: startDate, dateProfile: dateProfile, todayRange: todayRange }, (InnerContent, renderProps, elAttrs) => (createElement(Popover, { elRef: elAttrs.ref, id: props.id, title: title, extraClassNames: ['fc-more-popover'].concat(elAttrs.className || []), extraAttrs: elAttrs /* TODO: make these time-based when not whole-day? */, parentEl: props.parentEl, alignmentEl: props.alignmentEl, alignGridTop: props.alignGridTop, onClose: props.onClose },\n hasCustomDayCellContent(options) && (createElement(InnerContent, { elTag: \"div\", elClasses: ['fc-more-popover-misc'] })),\n props.children))));\n }\n queryHit(positionLeft, positionTop, elWidth, elHeight) {\n let { rootEl, props } = this;\n if (positionLeft >= 0 && positionLeft < elWidth &&\n positionTop >= 0 && positionTop < elHeight) {\n return {\n dateProfile: props.dateProfile,\n dateSpan: Object.assign({ allDay: !props.forceTimed, range: {\n start: props.startDate,\n end: props.endDate,\n } }, props.extraDateSpan),\n dayEl: rootEl,\n rect: {\n left: 0,\n top: 0,\n right: elWidth,\n bottom: elHeight,\n },\n layer: 1, // important when comparing with hits from other components\n };\n }\n return null;\n }\n}\n\nclass MoreLinkContainer extends BaseComponent {\n constructor() {\n super(...arguments);\n this.state = {\n isPopoverOpen: false,\n popoverId: getUniqueDomId(),\n };\n this.handleLinkEl = (linkEl) => {\n this.linkEl = linkEl;\n if (this.props.elRef) {\n setRef(this.props.elRef, linkEl);\n }\n };\n this.handleClick = (ev) => {\n let { props, context } = this;\n let { moreLinkClick } = context.options;\n let date = computeRange(props).start;\n function buildPublicSeg(seg) {\n let { def, instance, range } = seg.eventRange;\n return {\n event: new EventImpl(context, def, instance),\n start: context.dateEnv.toDate(range.start),\n end: context.dateEnv.toDate(range.end),\n isStart: seg.isStart,\n isEnd: seg.isEnd,\n };\n }\n if (typeof moreLinkClick === 'function') {\n moreLinkClick = moreLinkClick({\n date,\n allDay: Boolean(props.allDayDate),\n allSegs: props.allSegs.map(buildPublicSeg),\n hiddenSegs: props.hiddenSegs.map(buildPublicSeg),\n jsEvent: ev,\n view: context.viewApi,\n });\n }\n if (!moreLinkClick || moreLinkClick === 'popover') {\n this.setState({ isPopoverOpen: true });\n }\n else if (typeof moreLinkClick === 'string') { // a view name\n context.calendarApi.zoomTo(date, moreLinkClick);\n }\n };\n this.handlePopoverClose = () => {\n this.setState({ isPopoverOpen: false });\n };\n }\n render() {\n let { props, state } = this;\n return (createElement(ViewContextType.Consumer, null, (context) => {\n let { viewApi, options, calendarApi } = context;\n let { moreLinkText } = options;\n let { moreCnt } = props;\n let range = computeRange(props);\n let text = typeof moreLinkText === 'function' // TODO: eventually use formatWithOrdinals\n ? moreLinkText.call(calendarApi, moreCnt)\n : `+${moreCnt} ${moreLinkText}`;\n let hint = formatWithOrdinals(options.moreLinkHint, [moreCnt], text);\n let renderProps = {\n num: moreCnt,\n shortText: `+${moreCnt}`,\n text,\n view: viewApi,\n };\n return (createElement(Fragment, null,\n Boolean(props.moreCnt) && (createElement(ContentContainer, { elTag: props.elTag || 'a', elRef: this.handleLinkEl, elClasses: [\n ...(props.elClasses || []),\n 'fc-more-link',\n ], elStyle: props.elStyle, elAttrs: Object.assign(Object.assign(Object.assign({}, props.elAttrs), createAriaClickAttrs(this.handleClick)), { title: hint, 'aria-expanded': state.isPopoverOpen, 'aria-controls': state.isPopoverOpen ? state.popoverId : '' }), renderProps: renderProps, generatorName: \"moreLinkContent\", customGenerator: options.moreLinkContent, defaultGenerator: props.defaultGenerator || renderMoreLinkInner, classNameGenerator: options.moreLinkClassNames, didMount: options.moreLinkDidMount, willUnmount: options.moreLinkWillUnmount }, props.children)),\n state.isPopoverOpen && (createElement(MorePopover, { id: state.popoverId, startDate: range.start, endDate: range.end, dateProfile: props.dateProfile, todayRange: props.todayRange, extraDateSpan: props.extraDateSpan, parentEl: this.parentEl, alignmentEl: props.alignmentElRef ?\n props.alignmentElRef.current :\n this.linkEl, alignGridTop: props.alignGridTop, forceTimed: props.forceTimed, onClose: this.handlePopoverClose }, props.popoverContent()))));\n }));\n }\n componentDidMount() {\n this.updateParentEl();\n }\n componentDidUpdate() {\n this.updateParentEl();\n }\n updateParentEl() {\n if (this.linkEl) {\n this.parentEl = elementClosest(this.linkEl, '.fc-view-harness');\n }\n }\n}\nfunction renderMoreLinkInner(props) {\n return props.text;\n}\nfunction computeRange(props) {\n if (props.allDayDate) {\n return {\n start: props.allDayDate,\n end: addDays(props.allDayDate, 1),\n };\n }\n let { hiddenSegs } = props;\n return {\n start: computeEarliestSegStart(hiddenSegs),\n end: computeLatestSegEnd(hiddenSegs),\n };\n}\nfunction computeEarliestSegStart(segs) {\n return segs.reduce(pickEarliestStart).eventRange.range.start;\n}\nfunction pickEarliestStart(seg0, seg1) {\n return seg0.eventRange.range.start < seg1.eventRange.range.start ? seg0 : seg1;\n}\nfunction computeLatestSegEnd(segs) {\n return segs.reduce(pickLatestEnd).eventRange.range.end;\n}\nfunction pickLatestEnd(seg0, seg1) {\n return seg0.eventRange.range.end > seg1.eventRange.range.end ? seg0 : seg1;\n}\n\nclass Store {\n constructor() {\n this.handlers = [];\n }\n set(value) {\n this.currentValue = value;\n for (let handler of this.handlers) {\n handler(value);\n }\n }\n subscribe(handler) {\n this.handlers.push(handler);\n if (this.currentValue !== undefined) {\n handler(this.currentValue);\n }\n }\n}\n\n/*\nSubscribers will get a LIST of CustomRenderings\n*/\nclass CustomRenderingStore extends Store {\n constructor() {\n super(...arguments);\n this.map = new Map();\n }\n // for consistent order\n handle(customRendering) {\n const { map } = this;\n let updated = false;\n if (customRendering.isActive) {\n map.set(customRendering.id, customRendering);\n updated = true;\n }\n else if (map.has(customRendering.id)) {\n map.delete(customRendering.id);\n updated = true;\n }\n if (updated) {\n this.set(map);\n }\n }\n}\n\nexport { elementClosest as $, memoizeObjArg as A, BaseComponent as B, ContentContainer as C, DelayedRunner as D, isPropsEqual as E, Emitter as F, getInitialDate as G, rangeContainsMarker as H, createEmptyEventStore as I, reduceCurrentDate as J, reduceEventStore as K, rezoneEventStoreDates as L, mergeRawOptions as M, BASE_OPTION_REFINERS as N, CALENDAR_LISTENER_REFINERS as O, CALENDAR_OPTION_REFINERS as P, COMPLEX_OPTION_COMPARATORS as Q, VIEW_OPTION_REFINERS as R, DateEnv as S, Theme as T, DateProfileGenerator as U, ViewContextType as V, createEventUi as W, parseBusinessHours as X, setRef as Y, Interaction as Z, getElSeg as _, mapHash as a, getSlotClassNames as a$, EventImpl as a0, listenBySelector as a1, listenToHoverBySelector as a2, PureComponent as a3, buildViewContext as a4, getUniqueDomId as a5, parseInteractionSettings as a6, interactionSettingsStore as a7, getNow as a8, CalendarImpl as a9, diffDates as aA, removeExact as aB, memoizeArraylike as aC, memoizeHashlike as aD, intersectRects as aE, pointInsideRect as aF, constrainPoint as aG, getRectCenter as aH, diffPoints as aI, translateRect as aJ, compareObjs as aK, collectFromHash as aL, findElements as aM, findDirectChildren as aN, removeElement as aO, applyStyle as aP, elementMatches as aQ, getEventTargetViaRoot as aR, parseClassNames as aS, getCanVGrowWithinCell as aT, mergeEventStores as aU, getRelevantEvents as aV, eventTupleToStore as aW, combineEventUis as aX, Splitter as aY, getDayClassNames as aZ, getDateMeta as a_, flushSync as aa, CalendarRoot as ab, RenderId as ac, ensureElHasStyles as ad, applyStyleProp as ae, sliceEventStore as af, JsonRequestError as ag, createContext as ah, refineProps as ai, createEventInstance as aj, parseEventDef as ak, refineEventDef as al, padStart as am, isInt as an, parseFieldSpecs as ao, compareByFieldSpecs as ap, flexibleCompare as aq, preventSelection as ar, allowSelection as as, preventContextMenu as at, allowContextMenu as au, compareNumbers as av, enableCursor as aw, disableCursor as ax, computeVisibleDayRange as ay, isMultiDayRange as az, buildViewClassNames as b, SimpleScrollGrid as b$, buildNavLinkAttrs as b0, preventDefault as b1, whenTransitionDone as b2, computeInnerRect as b3, computeEdges as b4, getClippingParents as b5, computeRect as b6, rangesEqual as b7, rangesIntersect as b8, rangeContainsRange as b9, SegHierarchy as bA, buildEntryKey as bB, getEntrySpanEnd as bC, binarySearch as bD, groupIntersectingEntries as bE, intersectSpans as bF, interactionSettingsToStore as bG, ElementDragging as bH, config as bI, parseDragMeta as bJ, DayHeader as bK, computeFallbackHeaderFormat as bL, TableDateCell as bM, TableDowCell as bN, DaySeriesModel as bO, hasBgRendering as bP, buildSegTimeText as bQ, sortEventSegs as bR, getSegMeta as bS, buildEventRangeKey as bT, getSegAnchorAttrs as bU, DayTableModel as bV, Slicer as bW, applyMutationToEventStore as bX, isPropsValid as bY, isInteractionValid as bZ, isDateSelectionValid as b_, PositionCache as ba, ScrollController as bb, ElementScrollController as bc, WindowScrollController as bd, DateComponent as be, isDateSpansEqual as bf, addMs as bg, addWeeks as bh, diffWeeks as bi, diffWholeWeeks as bj, diffDayAndTime as bk, diffDays as bl, isValidDate as bm, asCleanDays as bn, multiplyDuration as bo, addDurations as bp, asRoughMinutes as bq, asRoughSeconds as br, asRoughMs as bs, wholeDivideDurations as bt, formatIsoTimeString as bu, formatDayString as bv, buildIsoString as bw, formatIsoMonthStr as bx, NamedTimeZoneImpl as by, parse as bz, greatestDurationDenominator as c, hasShrinkWidth as c0, renderMicroColGroup as c1, getScrollGridClassNames as c2, getSectionClassNames as c3, getSectionHasLiquidHeight as c4, getAllowYScrolling as c5, renderChunkContent as c6, computeShrinkWidth as c7, sanitizeShrinkWidth as c8, isColPropsEqual as c9, renderScrollShim as ca, getStickyFooterScrollbar as cb, getStickyHeaderDates as cc, Scroller as cd, getScrollbarWidths as ce, RefMap as cf, getIsRtlScrollbarOnLeft as cg, NowTimer as ch, ScrollResponder as ci, StandardEvent as cj, NowIndicatorContainer as ck, DayCellContainer as cl, hasCustomDayCellContent as cm, EventContainer as cn, renderFill as co, BgEvent as cp, WeekNumberContainer as cq, MoreLinkContainer as cr, computeEarliestSegStart as cs, ViewContainer as ct, triggerDateSelect as cu, getDefaultEventEnd as cv, injectStyles as cw, buildElAttrs as cx, CustomRenderingStore as cy, createDuration as d, BASE_OPTION_DEFAULTS as e, arrayToHash as f, guid as g, filterHash as h, isArraysEqual as i, buildEventSourceRefiners as j, formatWithOrdinals as k, buildRangeApiWithTimeZone as l, mergeProps as m, identity as n, intersectRanges as o, parseEventSource as p, startOfDay as q, requestJson as r, subtractDurations as s, addDays as t, unpromisify as u, hashValuesToArray as v, buildEventApis as w, createFormatter as x, diffWholeDays as y, memoize as z };\n","import { DateComponent, getStickyHeaderDates, ViewContainer, SimpleScrollGrid, getStickyFooterScrollbar, renderScrollShim, createFormatter, BaseComponent, StandardEvent, buildSegTimeText, EventContainer, getSegAnchorAttrs, memoize, MoreLinkContainer, getSegMeta, getUniqueDomId, setRef, DayCellContainer, WeekNumberContainer, buildNavLinkAttrs, hasCustomDayCellContent, addMs, intersectRanges, addDays, SegHierarchy, buildEntryKey, intersectSpans, RefMap, sortEventSegs, isPropsEqual, buildEventRangeKey, BgEvent, renderFill, PositionCache, NowTimer, formatIsoMonthStr, formatDayString, Slicer, DayHeader, DaySeriesModel, DayTableModel, DateProfileGenerator, addWeeks, diffWeeks, injectStyles } from '@fullcalendar/core/internal.js';\nimport { createRef, createElement, Fragment } from '@fullcalendar/core/preact.js';\n\n/* An abstract class for the daygrid views, as well as month view. Renders one or more rows of day cells.\n----------------------------------------------------------------------------------------------------------------------*/\n// It is a manager for a Table subcomponent, which does most of the heavy lifting.\n// It is responsible for managing width/height.\nclass TableView extends DateComponent {\n constructor() {\n super(...arguments);\n this.headerElRef = createRef();\n }\n renderSimpleLayout(headerRowContent, bodyContent) {\n let { props, context } = this;\n let sections = [];\n let stickyHeaderDates = getStickyHeaderDates(context.options);\n if (headerRowContent) {\n sections.push({\n type: 'header',\n key: 'header',\n isSticky: stickyHeaderDates,\n chunk: {\n elRef: this.headerElRef,\n tableClassName: 'fc-col-header',\n rowContent: headerRowContent,\n },\n });\n }\n sections.push({\n type: 'body',\n key: 'body',\n liquid: true,\n chunk: { content: bodyContent },\n });\n return (createElement(ViewContainer, { elClasses: ['fc-daygrid'], viewSpec: context.viewSpec },\n createElement(SimpleScrollGrid, { liquid: !props.isHeightAuto && !props.forPrint, collapsibleWidth: props.forPrint, cols: [] /* TODO: make optional? */, sections: sections })));\n }\n renderHScrollLayout(headerRowContent, bodyContent, colCnt, dayMinWidth) {\n let ScrollGrid = this.context.pluginHooks.scrollGridImpl;\n if (!ScrollGrid) {\n throw new Error('No ScrollGrid implementation');\n }\n let { props, context } = this;\n let stickyHeaderDates = !props.forPrint && getStickyHeaderDates(context.options);\n let stickyFooterScrollbar = !props.forPrint && getStickyFooterScrollbar(context.options);\n let sections = [];\n if (headerRowContent) {\n sections.push({\n type: 'header',\n key: 'header',\n isSticky: stickyHeaderDates,\n chunks: [{\n key: 'main',\n elRef: this.headerElRef,\n tableClassName: 'fc-col-header',\n rowContent: headerRowContent,\n }],\n });\n }\n sections.push({\n type: 'body',\n key: 'body',\n liquid: true,\n chunks: [{\n key: 'main',\n content: bodyContent,\n }],\n });\n if (stickyFooterScrollbar) {\n sections.push({\n type: 'footer',\n key: 'footer',\n isSticky: true,\n chunks: [{\n key: 'main',\n content: renderScrollShim,\n }],\n });\n }\n return (createElement(ViewContainer, { elClasses: ['fc-daygrid'], viewSpec: context.viewSpec },\n createElement(ScrollGrid, { liquid: !props.isHeightAuto && !props.forPrint, forPrint: props.forPrint, collapsibleWidth: props.forPrint, colGroups: [{ cols: [{ span: colCnt, minWidth: dayMinWidth }] }], sections: sections })));\n }\n}\n\nfunction splitSegsByRow(segs, rowCnt) {\n let byRow = [];\n for (let i = 0; i < rowCnt; i += 1) {\n byRow[i] = [];\n }\n for (let seg of segs) {\n byRow[seg.row].push(seg);\n }\n return byRow;\n}\nfunction splitSegsByFirstCol(segs, colCnt) {\n let byCol = [];\n for (let i = 0; i < colCnt; i += 1) {\n byCol[i] = [];\n }\n for (let seg of segs) {\n byCol[seg.firstCol].push(seg);\n }\n return byCol;\n}\nfunction splitInteractionByRow(ui, rowCnt) {\n let byRow = [];\n if (!ui) {\n for (let i = 0; i < rowCnt; i += 1) {\n byRow[i] = null;\n }\n }\n else {\n for (let i = 0; i < rowCnt; i += 1) {\n byRow[i] = {\n affectedInstances: ui.affectedInstances,\n isEvent: ui.isEvent,\n segs: [],\n };\n }\n for (let seg of ui.segs) {\n byRow[seg.row].segs.push(seg);\n }\n }\n return byRow;\n}\n\nconst DEFAULT_TABLE_EVENT_TIME_FORMAT = createFormatter({\n hour: 'numeric',\n minute: '2-digit',\n omitZeroMinute: true,\n meridiem: 'narrow',\n});\nfunction hasListItemDisplay(seg) {\n let { display } = seg.eventRange.ui;\n return display === 'list-item' || (display === 'auto' &&\n !seg.eventRange.def.allDay &&\n seg.firstCol === seg.lastCol && // can't be multi-day\n seg.isStart && // \"\n seg.isEnd // \"\n );\n}\n\nclass TableBlockEvent extends BaseComponent {\n render() {\n let { props } = this;\n return (createElement(StandardEvent, Object.assign({}, props, { elClasses: ['fc-daygrid-event', 'fc-daygrid-block-event', 'fc-h-event'], defaultTimeFormat: DEFAULT_TABLE_EVENT_TIME_FORMAT, defaultDisplayEventEnd: props.defaultDisplayEventEnd, disableResizing: !props.seg.eventRange.def.allDay })));\n }\n}\n\nclass TableListItemEvent extends BaseComponent {\n render() {\n let { props, context } = this;\n let { options } = context;\n let { seg } = props;\n let timeFormat = options.eventTimeFormat || DEFAULT_TABLE_EVENT_TIME_FORMAT;\n let timeText = buildSegTimeText(seg, timeFormat, context, true, props.defaultDisplayEventEnd);\n return (createElement(EventContainer, Object.assign({}, props, { elTag: \"a\", elClasses: ['fc-daygrid-event', 'fc-daygrid-dot-event'], elAttrs: getSegAnchorAttrs(props.seg, context), defaultGenerator: renderInnerContent, timeText: timeText, isResizing: false, isDateSelecting: false })));\n }\n}\nfunction renderInnerContent(renderProps) {\n return (createElement(Fragment, null,\n createElement(\"div\", { className: \"fc-daygrid-event-dot\", style: { borderColor: renderProps.borderColor || renderProps.backgroundColor } }),\n renderProps.timeText && (createElement(\"div\", { className: \"fc-event-time\" }, renderProps.timeText)),\n createElement(\"div\", { className: \"fc-event-title\" }, renderProps.event.title || createElement(Fragment, null, \"\\u00A0\"))));\n}\n\nclass TableCellMoreLink extends BaseComponent {\n constructor() {\n super(...arguments);\n this.compileSegs = memoize(compileSegs);\n }\n render() {\n let { props } = this;\n let { allSegs, invisibleSegs } = this.compileSegs(props.singlePlacements);\n return (createElement(MoreLinkContainer, { elClasses: ['fc-daygrid-more-link'], dateProfile: props.dateProfile, todayRange: props.todayRange, allDayDate: props.allDayDate, moreCnt: props.moreCnt, allSegs: allSegs, hiddenSegs: invisibleSegs, alignmentElRef: props.alignmentElRef, alignGridTop: props.alignGridTop, extraDateSpan: props.extraDateSpan, popoverContent: () => {\n let isForcedInvisible = (props.eventDrag ? props.eventDrag.affectedInstances : null) ||\n (props.eventResize ? props.eventResize.affectedInstances : null) ||\n {};\n return (createElement(Fragment, null, allSegs.map((seg) => {\n let instanceId = seg.eventRange.instance.instanceId;\n return (createElement(\"div\", { className: \"fc-daygrid-event-harness\", key: instanceId, style: {\n visibility: isForcedInvisible[instanceId] ? 'hidden' : '',\n } }, hasListItemDisplay(seg) ? (createElement(TableListItemEvent, Object.assign({ seg: seg, isDragging: false, isSelected: instanceId === props.eventSelection, defaultDisplayEventEnd: false }, getSegMeta(seg, props.todayRange)))) : (createElement(TableBlockEvent, Object.assign({ seg: seg, isDragging: false, isResizing: false, isDateSelecting: false, isSelected: instanceId === props.eventSelection, defaultDisplayEventEnd: false }, getSegMeta(seg, props.todayRange))))));\n })));\n } }));\n }\n}\nfunction compileSegs(singlePlacements) {\n let allSegs = [];\n let invisibleSegs = [];\n for (let placement of singlePlacements) {\n allSegs.push(placement.seg);\n if (!placement.isVisible) {\n invisibleSegs.push(placement.seg);\n }\n }\n return { allSegs, invisibleSegs };\n}\n\nconst DEFAULT_WEEK_NUM_FORMAT = createFormatter({ week: 'narrow' });\nclass TableCell extends DateComponent {\n constructor() {\n super(...arguments);\n this.rootElRef = createRef();\n this.state = {\n dayNumberId: getUniqueDomId(),\n };\n this.handleRootEl = (el) => {\n setRef(this.rootElRef, el);\n setRef(this.props.elRef, el);\n };\n }\n render() {\n let { context, props, state, rootElRef } = this;\n let { options, dateEnv } = context;\n let { date, dateProfile } = props;\n // TODO: memoize this?\n const isMonthStart = props.showDayNumber &&\n shouldDisplayMonthStart(date, dateProfile.currentRange, dateEnv);\n return (createElement(DayCellContainer, { elTag: \"td\", elRef: this.handleRootEl, elClasses: [\n 'fc-daygrid-day',\n ...(props.extraClassNames || []),\n ], elAttrs: Object.assign(Object.assign(Object.assign({}, props.extraDataAttrs), (props.showDayNumber ? { 'aria-labelledby': state.dayNumberId } : {})), { role: 'gridcell' }), defaultGenerator: renderTopInner, date: date, dateProfile: dateProfile, todayRange: props.todayRange, showDayNumber: props.showDayNumber, isMonthStart: isMonthStart, extraRenderProps: props.extraRenderProps }, (InnerContent, renderProps) => (createElement(\"div\", { ref: props.innerElRef, className: \"fc-daygrid-day-frame fc-scrollgrid-sync-inner\", style: { minHeight: props.minHeight } },\n props.showWeekNumber && (createElement(WeekNumberContainer, { elTag: \"a\", elClasses: ['fc-daygrid-week-number'], elAttrs: buildNavLinkAttrs(context, date, 'week'), date: date, defaultFormat: DEFAULT_WEEK_NUM_FORMAT })),\n !renderProps.isDisabled &&\n (props.showDayNumber || hasCustomDayCellContent(options) || props.forceDayTop) ? (createElement(\"div\", { className: \"fc-daygrid-day-top\" },\n createElement(InnerContent, { elTag: \"a\", elClasses: [\n 'fc-daygrid-day-number',\n isMonthStart && 'fc-daygrid-month-start',\n ], elAttrs: Object.assign(Object.assign({}, buildNavLinkAttrs(context, date)), { id: state.dayNumberId }) }))) : props.showDayNumber ? (\n // for creating correct amount of space (see issue #7162)\n createElement(\"div\", { className: \"fc-daygrid-day-top\", style: { visibility: 'hidden' } },\n createElement(\"a\", { className: \"fc-daygrid-day-number\" }, \"\\u00A0\"))) : undefined,\n createElement(\"div\", { className: \"fc-daygrid-day-events\", ref: props.fgContentElRef },\n props.fgContent,\n createElement(\"div\", { className: \"fc-daygrid-day-bottom\", style: { marginTop: props.moreMarginTop } },\n createElement(TableCellMoreLink, { allDayDate: date, singlePlacements: props.singlePlacements, moreCnt: props.moreCnt, alignmentElRef: rootElRef, alignGridTop: !props.showDayNumber, extraDateSpan: props.extraDateSpan, dateProfile: props.dateProfile, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, todayRange: props.todayRange }))),\n createElement(\"div\", { className: \"fc-daygrid-day-bg\" }, props.bgContent)))));\n }\n}\nfunction renderTopInner(props) {\n return props.dayNumberText || createElement(Fragment, null, \"\\u00A0\");\n}\nfunction shouldDisplayMonthStart(date, currentRange, dateEnv) {\n const { start: currentStart, end: currentEnd } = currentRange;\n const currentEndIncl = addMs(currentEnd, -1);\n const currentFirstYear = dateEnv.getYear(currentStart);\n const currentFirstMonth = dateEnv.getMonth(currentStart);\n const currentLastYear = dateEnv.getYear(currentEndIncl);\n const currentLastMonth = dateEnv.getMonth(currentEndIncl);\n // spans more than one month?\n return !(currentFirstYear === currentLastYear && currentFirstMonth === currentLastMonth) &&\n Boolean(\n // first date in current view?\n date.valueOf() === currentStart.valueOf() ||\n // a month-start that's within the current range?\n (dateEnv.getDay(date) === 1 && date.valueOf() < currentEnd.valueOf()));\n}\n\nfunction generateSegKey(seg) {\n return seg.eventRange.instance.instanceId + ':' + seg.firstCol;\n}\nfunction generateSegUid(seg) {\n return generateSegKey(seg) + ':' + seg.lastCol;\n}\nfunction computeFgSegPlacement(segs, // assumed already sorted\ndayMaxEvents, dayMaxEventRows, strictOrder, segHeights, maxContentHeight, cells) {\n let hierarchy = new DayGridSegHierarchy((segEntry) => {\n // TODO: more DRY with generateSegUid\n let segUid = segs[segEntry.index].eventRange.instance.instanceId +\n ':' + segEntry.span.start +\n ':' + (segEntry.span.end - 1);\n // if no thickness known, assume 1 (if 0, so small it always fits)\n return segHeights[segUid] || 1;\n });\n hierarchy.allowReslicing = true;\n hierarchy.strictOrder = strictOrder;\n if (dayMaxEvents === true || dayMaxEventRows === true) {\n hierarchy.maxCoord = maxContentHeight;\n hierarchy.hiddenConsumes = true;\n }\n else if (typeof dayMaxEvents === 'number') {\n hierarchy.maxStackCnt = dayMaxEvents;\n }\n else if (typeof dayMaxEventRows === 'number') {\n hierarchy.maxStackCnt = dayMaxEventRows;\n hierarchy.hiddenConsumes = true;\n }\n // create segInputs only for segs with known heights\n let segInputs = [];\n let unknownHeightSegs = [];\n for (let i = 0; i < segs.length; i += 1) {\n let seg = segs[i];\n let segUid = generateSegUid(seg);\n let eventHeight = segHeights[segUid];\n if (eventHeight != null) {\n segInputs.push({\n index: i,\n span: {\n start: seg.firstCol,\n end: seg.lastCol + 1,\n },\n });\n }\n else {\n unknownHeightSegs.push(seg);\n }\n }\n let hiddenEntries = hierarchy.addSegs(segInputs);\n let segRects = hierarchy.toRects();\n let { singleColPlacements, multiColPlacements, leftoverMargins } = placeRects(segRects, segs, cells);\n let moreCnts = [];\n let moreMarginTops = [];\n // add segs with unknown heights\n for (let seg of unknownHeightSegs) {\n multiColPlacements[seg.firstCol].push({\n seg,\n isVisible: false,\n isAbsolute: true,\n absoluteTop: 0,\n marginTop: 0,\n });\n for (let col = seg.firstCol; col <= seg.lastCol; col += 1) {\n singleColPlacements[col].push({\n seg: resliceSeg(seg, col, col + 1, cells),\n isVisible: false,\n isAbsolute: false,\n absoluteTop: 0,\n marginTop: 0,\n });\n }\n }\n // add the hidden entries\n for (let col = 0; col < cells.length; col += 1) {\n moreCnts.push(0);\n }\n for (let hiddenEntry of hiddenEntries) {\n let seg = segs[hiddenEntry.index];\n let hiddenSpan = hiddenEntry.span;\n multiColPlacements[hiddenSpan.start].push({\n seg: resliceSeg(seg, hiddenSpan.start, hiddenSpan.end, cells),\n isVisible: false,\n isAbsolute: true,\n absoluteTop: 0,\n marginTop: 0,\n });\n for (let col = hiddenSpan.start; col < hiddenSpan.end; col += 1) {\n moreCnts[col] += 1;\n singleColPlacements[col].push({\n seg: resliceSeg(seg, col, col + 1, cells),\n isVisible: false,\n isAbsolute: false,\n absoluteTop: 0,\n marginTop: 0,\n });\n }\n }\n // deal with leftover margins\n for (let col = 0; col < cells.length; col += 1) {\n moreMarginTops.push(leftoverMargins[col]);\n }\n return { singleColPlacements, multiColPlacements, moreCnts, moreMarginTops };\n}\n// rects ordered by top coord, then left\nfunction placeRects(allRects, segs, cells) {\n let rectsByEachCol = groupRectsByEachCol(allRects, cells.length);\n let singleColPlacements = [];\n let multiColPlacements = [];\n let leftoverMargins = [];\n for (let col = 0; col < cells.length; col += 1) {\n let rects = rectsByEachCol[col];\n // compute all static segs in singlePlacements\n let singlePlacements = [];\n let currentHeight = 0;\n let currentMarginTop = 0;\n for (let rect of rects) {\n let seg = segs[rect.index];\n singlePlacements.push({\n seg: resliceSeg(seg, col, col + 1, cells),\n isVisible: true,\n isAbsolute: false,\n absoluteTop: rect.levelCoord,\n marginTop: rect.levelCoord - currentHeight,\n });\n currentHeight = rect.levelCoord + rect.thickness;\n }\n // compute mixed static/absolute segs in multiPlacements\n let multiPlacements = [];\n currentHeight = 0;\n currentMarginTop = 0;\n for (let rect of rects) {\n let seg = segs[rect.index];\n let isAbsolute = rect.span.end - rect.span.start > 1; // multi-column?\n let isFirstCol = rect.span.start === col;\n currentMarginTop += rect.levelCoord - currentHeight; // amount of space since bottom of previous seg\n currentHeight = rect.levelCoord + rect.thickness; // height will now be bottom of current seg\n if (isAbsolute) {\n currentMarginTop += rect.thickness;\n if (isFirstCol) {\n multiPlacements.push({\n seg: resliceSeg(seg, rect.span.start, rect.span.end, cells),\n isVisible: true,\n isAbsolute: true,\n absoluteTop: rect.levelCoord,\n marginTop: 0,\n });\n }\n }\n else if (isFirstCol) {\n multiPlacements.push({\n seg: resliceSeg(seg, rect.span.start, rect.span.end, cells),\n isVisible: true,\n isAbsolute: false,\n absoluteTop: rect.levelCoord,\n marginTop: currentMarginTop, // claim the margin\n });\n currentMarginTop = 0;\n }\n }\n singleColPlacements.push(singlePlacements);\n multiColPlacements.push(multiPlacements);\n leftoverMargins.push(currentMarginTop);\n }\n return { singleColPlacements, multiColPlacements, leftoverMargins };\n}\nfunction groupRectsByEachCol(rects, colCnt) {\n let rectsByEachCol = [];\n for (let col = 0; col < colCnt; col += 1) {\n rectsByEachCol.push([]);\n }\n for (let rect of rects) {\n for (let col = rect.span.start; col < rect.span.end; col += 1) {\n rectsByEachCol[col].push(rect);\n }\n }\n return rectsByEachCol;\n}\nfunction resliceSeg(seg, spanStart, spanEnd, cells) {\n if (seg.firstCol === spanStart && seg.lastCol === spanEnd - 1) {\n return seg;\n }\n let eventRange = seg.eventRange;\n let origRange = eventRange.range;\n let slicedRange = intersectRanges(origRange, {\n start: cells[spanStart].date,\n end: addDays(cells[spanEnd - 1].date, 1),\n });\n return Object.assign(Object.assign({}, seg), { firstCol: spanStart, lastCol: spanEnd - 1, eventRange: {\n def: eventRange.def,\n ui: Object.assign(Object.assign({}, eventRange.ui), { durationEditable: false }),\n instance: eventRange.instance,\n range: slicedRange,\n }, isStart: seg.isStart && slicedRange.start.valueOf() === origRange.start.valueOf(), isEnd: seg.isEnd && slicedRange.end.valueOf() === origRange.end.valueOf() });\n}\nclass DayGridSegHierarchy extends SegHierarchy {\n constructor() {\n super(...arguments);\n // config\n this.hiddenConsumes = false;\n // allows us to keep hidden entries in the hierarchy so they take up space\n this.forceHidden = {};\n }\n addSegs(segInputs) {\n const hiddenSegs = super.addSegs(segInputs);\n const { entriesByLevel } = this;\n const excludeHidden = (entry) => !this.forceHidden[buildEntryKey(entry)];\n // remove the forced-hidden segs\n for (let level = 0; level < entriesByLevel.length; level += 1) {\n entriesByLevel[level] = entriesByLevel[level].filter(excludeHidden);\n }\n return hiddenSegs;\n }\n handleInvalidInsertion(insertion, entry, hiddenEntries) {\n const { entriesByLevel, forceHidden } = this;\n const { touchingEntry, touchingLevel, touchingLateral } = insertion;\n // the entry that the new insertion is touching must be hidden\n if (this.hiddenConsumes && touchingEntry) {\n const touchingEntryId = buildEntryKey(touchingEntry);\n if (!forceHidden[touchingEntryId]) {\n if (this.allowReslicing) {\n // split up the touchingEntry, reinsert it\n const hiddenEntry = Object.assign(Object.assign({}, touchingEntry), { span: intersectSpans(touchingEntry.span, entry.span) });\n // reinsert the area that turned into a \"more\" link (so no other entries try to\n // occupy the space) but mark it forced-hidden\n const hiddenEntryId = buildEntryKey(hiddenEntry);\n forceHidden[hiddenEntryId] = true;\n entriesByLevel[touchingLevel][touchingLateral] = hiddenEntry;\n hiddenEntries.push(hiddenEntry);\n this.splitEntry(touchingEntry, entry, hiddenEntries);\n }\n else {\n forceHidden[touchingEntryId] = true;\n hiddenEntries.push(touchingEntry);\n }\n }\n }\n // will try to reslice...\n super.handleInvalidInsertion(insertion, entry, hiddenEntries);\n }\n}\n\nclass TableRow extends DateComponent {\n constructor() {\n super(...arguments);\n this.cellElRefs = new RefMap(); // the <td>\n this.frameElRefs = new RefMap(); // the fc-daygrid-day-frame\n this.fgElRefs = new RefMap(); // the fc-daygrid-day-events\n this.segHarnessRefs = new RefMap(); // indexed by \"instanceId:firstCol\"\n this.rootElRef = createRef();\n this.state = {\n framePositions: null,\n maxContentHeight: null,\n segHeights: {},\n };\n this.handleResize = (isForced) => {\n if (isForced) {\n this.updateSizing(true); // isExternal=true\n }\n };\n }\n render() {\n let { props, state, context } = this;\n let { options } = context;\n let colCnt = props.cells.length;\n let businessHoursByCol = splitSegsByFirstCol(props.businessHourSegs, colCnt);\n let bgEventSegsByCol = splitSegsByFirstCol(props.bgEventSegs, colCnt);\n let highlightSegsByCol = splitSegsByFirstCol(this.getHighlightSegs(), colCnt);\n let mirrorSegsByCol = splitSegsByFirstCol(this.getMirrorSegs(), colCnt);\n let { singleColPlacements, multiColPlacements, moreCnts, moreMarginTops } = computeFgSegPlacement(sortEventSegs(props.fgEventSegs, options.eventOrder), props.dayMaxEvents, props.dayMaxEventRows, options.eventOrderStrict, state.segHeights, state.maxContentHeight, props.cells);\n let isForcedInvisible = // TODO: messy way to compute this\n (props.eventDrag && props.eventDrag.affectedInstances) ||\n (props.eventResize && props.eventResize.affectedInstances) ||\n {};\n return (createElement(\"tr\", { ref: this.rootElRef, role: \"row\" },\n props.renderIntro && props.renderIntro(),\n props.cells.map((cell, col) => {\n let normalFgNodes = this.renderFgSegs(col, props.forPrint ? singleColPlacements[col] : multiColPlacements[col], props.todayRange, isForcedInvisible);\n let mirrorFgNodes = this.renderFgSegs(col, buildMirrorPlacements(mirrorSegsByCol[col], multiColPlacements), props.todayRange, {}, Boolean(props.eventDrag), Boolean(props.eventResize), false);\n return (createElement(TableCell, { key: cell.key, elRef: this.cellElRefs.createRef(cell.key), innerElRef: this.frameElRefs.createRef(cell.key) /* FF <td> problem, but okay to use for left/right. TODO: rename prop */, dateProfile: props.dateProfile, date: cell.date, showDayNumber: props.showDayNumbers, showWeekNumber: props.showWeekNumbers && col === 0, forceDayTop: props.showWeekNumbers /* even displaying weeknum for row, not necessarily day */, todayRange: props.todayRange, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, extraRenderProps: cell.extraRenderProps, extraDataAttrs: cell.extraDataAttrs, extraClassNames: cell.extraClassNames, extraDateSpan: cell.extraDateSpan, moreCnt: moreCnts[col], moreMarginTop: moreMarginTops[col], singlePlacements: singleColPlacements[col], fgContentElRef: this.fgElRefs.createRef(cell.key), fgContent: ( // Fragment scopes the keys\n createElement(Fragment, null,\n createElement(Fragment, null, normalFgNodes),\n createElement(Fragment, null, mirrorFgNodes))), bgContent: ( // Fragment scopes the keys\n createElement(Fragment, null,\n this.renderFillSegs(highlightSegsByCol[col], 'highlight'),\n this.renderFillSegs(businessHoursByCol[col], 'non-business'),\n this.renderFillSegs(bgEventSegsByCol[col], 'bg-event'))), minHeight: props.cellMinHeight }));\n })));\n }\n componentDidMount() {\n this.updateSizing(true);\n this.context.addResizeHandler(this.handleResize);\n }\n componentDidUpdate(prevProps, prevState) {\n let currentProps = this.props;\n this.updateSizing(!isPropsEqual(prevProps, currentProps));\n }\n componentWillUnmount() {\n this.context.removeResizeHandler(this.handleResize);\n }\n getHighlightSegs() {\n let { props } = this;\n if (props.eventDrag && props.eventDrag.segs.length) { // messy check\n return props.eventDrag.segs;\n }\n if (props.eventResize && props.eventResize.segs.length) { // messy check\n return props.eventResize.segs;\n }\n return props.dateSelectionSegs;\n }\n getMirrorSegs() {\n let { props } = this;\n if (props.eventResize && props.eventResize.segs.length) { // messy check\n return props.eventResize.segs;\n }\n return [];\n }\n renderFgSegs(col, segPlacements, todayRange, isForcedInvisible, isDragging, isResizing, isDateSelecting) {\n let { context } = this;\n let { eventSelection } = this.props;\n let { framePositions } = this.state;\n let defaultDisplayEventEnd = this.props.cells.length === 1; // colCnt === 1\n let isMirror = isDragging || isResizing || isDateSelecting;\n let nodes = [];\n if (framePositions) {\n for (let placement of segPlacements) {\n let { seg } = placement;\n let { instanceId } = seg.eventRange.instance;\n let isVisible = placement.isVisible && !isForcedInvisible[instanceId];\n let isAbsolute = placement.isAbsolute;\n let left = '';\n let right = '';\n if (isAbsolute) {\n if (context.isRtl) {\n right = 0;\n left = framePositions.lefts[seg.lastCol] - framePositions.lefts[seg.firstCol];\n }\n else {\n left = 0;\n right = framePositions.rights[seg.firstCol] - framePositions.rights[seg.lastCol];\n }\n }\n /*\n known bug: events that are force to be list-item but span multiple days still take up space in later columns\n todo: in print view, for multi-day events, don't display title within non-start/end segs\n */\n nodes.push(createElement(\"div\", { className: 'fc-daygrid-event-harness' + (isAbsolute ? ' fc-daygrid-event-harness-abs' : ''), key: generateSegKey(seg), ref: isMirror ? null : this.segHarnessRefs.createRef(generateSegUid(seg)), style: {\n visibility: isVisible ? '' : 'hidden',\n marginTop: isAbsolute ? '' : placement.marginTop,\n top: isAbsolute ? placement.absoluteTop : '',\n left,\n right,\n } }, hasListItemDisplay(seg) ? (createElement(TableListItemEvent, Object.assign({ seg: seg, isDragging: isDragging, isSelected: instanceId === eventSelection, defaultDisplayEventEnd: defaultDisplayEventEnd }, getSegMeta(seg, todayRange)))) : (createElement(TableBlockEvent, Object.assign({ seg: seg, isDragging: isDragging, isResizing: isResizing, isDateSelecting: isDateSelecting, isSelected: instanceId === eventSelection, defaultDisplayEventEnd: defaultDisplayEventEnd }, getSegMeta(seg, todayRange))))));\n }\n }\n return nodes;\n }\n renderFillSegs(segs, fillType) {\n let { isRtl } = this.context;\n let { todayRange } = this.props;\n let { framePositions } = this.state;\n let nodes = [];\n if (framePositions) {\n for (let seg of segs) {\n let leftRightCss = isRtl ? {\n right: 0,\n left: framePositions.lefts[seg.lastCol] - framePositions.lefts[seg.firstCol],\n } : {\n left: 0,\n right: framePositions.rights[seg.firstCol] - framePositions.rights[seg.lastCol],\n };\n nodes.push(createElement(\"div\", { key: buildEventRangeKey(seg.eventRange), className: \"fc-daygrid-bg-harness\", style: leftRightCss }, fillType === 'bg-event' ?\n createElement(BgEvent, Object.assign({ seg: seg }, getSegMeta(seg, todayRange))) :\n renderFill(fillType)));\n }\n }\n return createElement(Fragment, {}, ...nodes);\n }\n updateSizing(isExternalSizingChange) {\n let { props, state, frameElRefs } = this;\n if (!props.forPrint &&\n props.clientWidth !== null // positioning ready?\n ) {\n if (isExternalSizingChange) {\n let frameEls = props.cells.map((cell) => frameElRefs.currentMap[cell.key]);\n if (frameEls.length) {\n let originEl = this.rootElRef.current;\n let newPositionCache = new PositionCache(originEl, frameEls, true, // isHorizontal\n false);\n if (!state.framePositions || !state.framePositions.similarTo(newPositionCache)) {\n this.setState({\n framePositions: new PositionCache(originEl, frameEls, true, // isHorizontal\n false),\n });\n }\n }\n }\n const oldSegHeights = this.state.segHeights;\n const newSegHeights = this.querySegHeights();\n const limitByContentHeight = props.dayMaxEvents === true || props.dayMaxEventRows === true;\n this.safeSetState({\n // HACK to prevent oscillations of events being shown/hidden from max-event-rows\n // Essentially, once you compute an element's height, never null-out.\n // TODO: always display all events, as visibility:hidden?\n segHeights: Object.assign(Object.assign({}, oldSegHeights), newSegHeights),\n maxContentHeight: limitByContentHeight ? this.computeMaxContentHeight() : null,\n });\n }\n }\n querySegHeights() {\n let segElMap = this.segHarnessRefs.currentMap;\n let segHeights = {};\n // get the max height amongst instance segs\n for (let segUid in segElMap) {\n let height = Math.round(segElMap[segUid].getBoundingClientRect().height);\n segHeights[segUid] = Math.max(segHeights[segUid] || 0, height);\n }\n return segHeights;\n }\n computeMaxContentHeight() {\n let firstKey = this.props.cells[0].key;\n let cellEl = this.cellElRefs.currentMap[firstKey];\n let fcContainerEl = this.fgElRefs.currentMap[firstKey];\n return cellEl.getBoundingClientRect().bottom - fcContainerEl.getBoundingClientRect().top;\n }\n getCellEls() {\n let elMap = this.cellElRefs.currentMap;\n return this.props.cells.map((cell) => elMap[cell.key]);\n }\n}\nTableRow.addStateEquality({\n segHeights: isPropsEqual,\n});\nfunction buildMirrorPlacements(mirrorSegs, colPlacements) {\n if (!mirrorSegs.length) {\n return [];\n }\n let topsByInstanceId = buildAbsoluteTopHash(colPlacements); // TODO: cache this at first render?\n return mirrorSegs.map((seg) => ({\n seg,\n isVisible: true,\n isAbsolute: true,\n absoluteTop: topsByInstanceId[seg.eventRange.instance.instanceId],\n marginTop: 0,\n }));\n}\nfunction buildAbsoluteTopHash(colPlacements) {\n let topsByInstanceId = {};\n for (let placements of colPlacements) {\n for (let placement of placements) {\n topsByInstanceId[placement.seg.eventRange.instance.instanceId] = placement.absoluteTop;\n }\n }\n return topsByInstanceId;\n}\n\nclass TableRows extends DateComponent {\n constructor() {\n super(...arguments);\n this.splitBusinessHourSegs = memoize(splitSegsByRow);\n this.splitBgEventSegs = memoize(splitSegsByRow);\n this.splitFgEventSegs = memoize(splitSegsByRow);\n this.splitDateSelectionSegs = memoize(splitSegsByRow);\n this.splitEventDrag = memoize(splitInteractionByRow);\n this.splitEventResize = memoize(splitInteractionByRow);\n this.rowRefs = new RefMap();\n }\n render() {\n let { props, context } = this;\n let rowCnt = props.cells.length;\n let businessHourSegsByRow = this.splitBusinessHourSegs(props.businessHourSegs, rowCnt);\n let bgEventSegsByRow = this.splitBgEventSegs(props.bgEventSegs, rowCnt);\n let fgEventSegsByRow = this.splitFgEventSegs(props.fgEventSegs, rowCnt);\n let dateSelectionSegsByRow = this.splitDateSelectionSegs(props.dateSelectionSegs, rowCnt);\n let eventDragByRow = this.splitEventDrag(props.eventDrag, rowCnt);\n let eventResizeByRow = this.splitEventResize(props.eventResize, rowCnt);\n // for DayGrid view with many rows, force a min-height on cells so doesn't appear squished\n // choose 7 because a month view will have max 6 rows\n let cellMinHeight = (rowCnt >= 7 && props.clientWidth) ?\n props.clientWidth / context.options.aspectRatio / 6 :\n null;\n return (createElement(NowTimer, { unit: \"day\" }, (nowDate, todayRange) => (createElement(Fragment, null, props.cells.map((cells, row) => (createElement(TableRow, { ref: this.rowRefs.createRef(row), key: cells.length\n ? cells[0].date.toISOString() /* best? or put key on cell? or use diff formatter? */\n : row // in case there are no cells (like when resource view is loading)\n , showDayNumbers: rowCnt > 1, showWeekNumbers: props.showWeekNumbers, todayRange: todayRange, dateProfile: props.dateProfile, cells: cells, renderIntro: props.renderRowIntro, businessHourSegs: businessHourSegsByRow[row], eventSelection: props.eventSelection, bgEventSegs: bgEventSegsByRow[row].filter(isSegAllDay) /* hack */, fgEventSegs: fgEventSegsByRow[row], dateSelectionSegs: dateSelectionSegsByRow[row], eventDrag: eventDragByRow[row], eventResize: eventResizeByRow[row], dayMaxEvents: props.dayMaxEvents, dayMaxEventRows: props.dayMaxEventRows, clientWidth: props.clientWidth, clientHeight: props.clientHeight, cellMinHeight: cellMinHeight, forPrint: props.forPrint })))))));\n }\n componentDidMount() {\n this.registerInteractiveComponent();\n }\n componentDidUpdate() {\n // for if started with zero cells\n this.registerInteractiveComponent();\n }\n registerInteractiveComponent() {\n if (!this.rootEl) {\n // HACK: need a daygrid wrapper parent to do positioning\n // NOTE: a daygrid resource view w/o resources can have zero cells\n const firstCellEl = this.rowRefs.currentMap[0].getCellEls()[0];\n const rootEl = firstCellEl ? firstCellEl.closest('.fc-daygrid-body') : null;\n if (rootEl) {\n this.rootEl = rootEl;\n this.context.registerInteractiveComponent(this, {\n el: rootEl,\n isHitComboAllowed: this.props.isHitComboAllowed,\n });\n }\n }\n }\n componentWillUnmount() {\n if (this.rootEl) {\n this.context.unregisterInteractiveComponent(this);\n this.rootEl = null;\n }\n }\n // Hit System\n // ----------------------------------------------------------------------------------------------------\n prepareHits() {\n this.rowPositions = new PositionCache(this.rootEl, this.rowRefs.collect().map((rowObj) => rowObj.getCellEls()[0]), // first cell el in each row. TODO: not optimal\n false, true);\n this.colPositions = new PositionCache(this.rootEl, this.rowRefs.currentMap[0].getCellEls(), // cell els in first row\n true, // horizontal\n false);\n }\n queryHit(positionLeft, positionTop) {\n let { colPositions, rowPositions } = this;\n let col = colPositions.leftToIndex(positionLeft);\n let row = rowPositions.topToIndex(positionTop);\n if (row != null && col != null) {\n let cell = this.props.cells[row][col];\n return {\n dateProfile: this.props.dateProfile,\n dateSpan: Object.assign({ range: this.getCellRange(row, col), allDay: true }, cell.extraDateSpan),\n dayEl: this.getCellEl(row, col),\n rect: {\n left: colPositions.lefts[col],\n right: colPositions.rights[col],\n top: rowPositions.tops[row],\n bottom: rowPositions.bottoms[row],\n },\n layer: 0,\n };\n }\n return null;\n }\n getCellEl(row, col) {\n return this.rowRefs.currentMap[row].getCellEls()[col]; // TODO: not optimal\n }\n getCellRange(row, col) {\n let start = this.props.cells[row][col].date;\n let end = addDays(start, 1);\n return { start, end };\n }\n}\nfunction isSegAllDay(seg) {\n return seg.eventRange.def.allDay;\n}\n\nclass Table extends DateComponent {\n constructor() {\n super(...arguments);\n this.elRef = createRef();\n this.needsScrollReset = false;\n }\n render() {\n let { props } = this;\n let { dayMaxEventRows, dayMaxEvents, expandRows } = props;\n let limitViaBalanced = dayMaxEvents === true || dayMaxEventRows === true;\n // if rows can't expand to fill fixed height, can't do balanced-height event limit\n // TODO: best place to normalize these options?\n if (limitViaBalanced && !expandRows) {\n limitViaBalanced = false;\n dayMaxEventRows = null;\n dayMaxEvents = null;\n }\n let classNames = [\n 'fc-daygrid-body',\n limitViaBalanced ? 'fc-daygrid-body-balanced' : 'fc-daygrid-body-unbalanced',\n expandRows ? '' : 'fc-daygrid-body-natural', // will height of one row depend on the others?\n ];\n return (createElement(\"div\", { ref: this.elRef, className: classNames.join(' '), style: {\n // these props are important to give this wrapper correct dimensions for interactions\n // TODO: if we set it here, can we avoid giving to inner tables?\n width: props.clientWidth,\n minWidth: props.tableMinWidth,\n } },\n createElement(\"table\", { role: \"presentation\", className: \"fc-scrollgrid-sync-table\", style: {\n width: props.clientWidth,\n minWidth: props.tableMinWidth,\n height: expandRows ? props.clientHeight : '',\n } },\n props.colGroupNode,\n createElement(\"tbody\", { role: \"presentation\" },\n createElement(TableRows, { dateProfile: props.dateProfile, cells: props.cells, renderRowIntro: props.renderRowIntro, showWeekNumbers: props.showWeekNumbers, clientWidth: props.clientWidth, clientHeight: props.clientHeight, businessHourSegs: props.businessHourSegs, bgEventSegs: props.bgEventSegs, fgEventSegs: props.fgEventSegs, dateSelectionSegs: props.dateSelectionSegs, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, dayMaxEvents: dayMaxEvents, dayMaxEventRows: dayMaxEventRows, forPrint: props.forPrint, isHitComboAllowed: props.isHitComboAllowed })))));\n }\n componentDidMount() {\n this.requestScrollReset();\n }\n componentDidUpdate(prevProps) {\n if (prevProps.dateProfile !== this.props.dateProfile) {\n this.requestScrollReset();\n }\n else {\n this.flushScrollReset();\n }\n }\n requestScrollReset() {\n this.needsScrollReset = true;\n this.flushScrollReset();\n }\n flushScrollReset() {\n if (this.needsScrollReset &&\n this.props.clientWidth // sizes computed?\n ) {\n const subjectEl = getScrollSubjectEl(this.elRef.current, this.props.dateProfile);\n if (subjectEl) {\n const originEl = subjectEl.closest('.fc-daygrid-body');\n const scrollEl = originEl.closest('.fc-scroller');\n const scrollTop = subjectEl.getBoundingClientRect().top -\n originEl.getBoundingClientRect().top;\n scrollEl.scrollTop = scrollTop ? (scrollTop + 1) : 0; // overcome border\n }\n this.needsScrollReset = false;\n }\n }\n}\nfunction getScrollSubjectEl(containerEl, dateProfile) {\n let el;\n if (dateProfile.currentRangeUnit.match(/year|month/)) {\n el = containerEl.querySelector(`[data-date=\"${formatIsoMonthStr(dateProfile.currentDate)}-01\"]`);\n // even if view is month-based, first-of-month might be hidden...\n }\n if (!el) {\n el = containerEl.querySelector(`[data-date=\"${formatDayString(dateProfile.currentDate)}\"]`);\n // could still be hidden if an interior-view hidden day\n }\n return el;\n}\n\nclass DayTableSlicer extends Slicer {\n constructor() {\n super(...arguments);\n this.forceDayIfListItem = true;\n }\n sliceRange(dateRange, dayTableModel) {\n return dayTableModel.sliceRange(dateRange);\n }\n}\n\nclass DayTable extends DateComponent {\n constructor() {\n super(...arguments);\n this.slicer = new DayTableSlicer();\n this.tableRef = createRef();\n }\n render() {\n let { props, context } = this;\n return (createElement(Table, Object.assign({ ref: this.tableRef }, this.slicer.sliceProps(props, props.dateProfile, props.nextDayThreshold, context, props.dayTableModel), { dateProfile: props.dateProfile, cells: props.dayTableModel.cells, colGroupNode: props.colGroupNode, tableMinWidth: props.tableMinWidth, renderRowIntro: props.renderRowIntro, dayMaxEvents: props.dayMaxEvents, dayMaxEventRows: props.dayMaxEventRows, showWeekNumbers: props.showWeekNumbers, expandRows: props.expandRows, headerAlignElRef: props.headerAlignElRef, clientWidth: props.clientWidth, clientHeight: props.clientHeight, forPrint: props.forPrint })));\n }\n}\n\nclass DayTableView extends TableView {\n constructor() {\n super(...arguments);\n this.buildDayTableModel = memoize(buildDayTableModel);\n this.headerRef = createRef();\n this.tableRef = createRef();\n // can't override any lifecycle methods from parent\n }\n render() {\n let { options, dateProfileGenerator } = this.context;\n let { props } = this;\n let dayTableModel = this.buildDayTableModel(props.dateProfile, dateProfileGenerator);\n let headerContent = options.dayHeaders && (createElement(DayHeader, { ref: this.headerRef, dateProfile: props.dateProfile, dates: dayTableModel.headerDates, datesRepDistinctDays: dayTableModel.rowCnt === 1 }));\n let bodyContent = (contentArg) => (createElement(DayTable, { ref: this.tableRef, dateProfile: props.dateProfile, dayTableModel: dayTableModel, businessHours: props.businessHours, dateSelection: props.dateSelection, eventStore: props.eventStore, eventUiBases: props.eventUiBases, eventSelection: props.eventSelection, eventDrag: props.eventDrag, eventResize: props.eventResize, nextDayThreshold: options.nextDayThreshold, colGroupNode: contentArg.tableColGroupNode, tableMinWidth: contentArg.tableMinWidth, dayMaxEvents: options.dayMaxEvents, dayMaxEventRows: options.dayMaxEventRows, showWeekNumbers: options.weekNumbers, expandRows: !props.isHeightAuto, headerAlignElRef: this.headerElRef, clientWidth: contentArg.clientWidth, clientHeight: contentArg.clientHeight, forPrint: props.forPrint }));\n return options.dayMinWidth\n ? this.renderHScrollLayout(headerContent, bodyContent, dayTableModel.colCnt, options.dayMinWidth)\n : this.renderSimpleLayout(headerContent, bodyContent);\n }\n}\nfunction buildDayTableModel(dateProfile, dateProfileGenerator) {\n let daySeries = new DaySeriesModel(dateProfile.renderRange, dateProfileGenerator);\n return new DayTableModel(daySeries, /year|month|week/.test(dateProfile.currentRangeUnit));\n}\n\nclass TableDateProfileGenerator extends DateProfileGenerator {\n // Computes the date range that will be rendered\n buildRenderRange(currentRange, currentRangeUnit, isRangeAllDay) {\n let renderRange = super.buildRenderRange(currentRange, currentRangeUnit, isRangeAllDay);\n let { props } = this;\n return buildDayTableRenderRange({\n currentRange: renderRange,\n snapToWeek: /^(year|month)$/.test(currentRangeUnit),\n fixedWeekCount: props.fixedWeekCount,\n dateEnv: props.dateEnv,\n });\n }\n}\nfunction buildDayTableRenderRange(props) {\n let { dateEnv, currentRange } = props;\n let { start, end } = currentRange;\n let endOfWeek;\n // year and month views should be aligned with weeks. this is already done for week\n if (props.snapToWeek) {\n start = dateEnv.startOfWeek(start);\n // make end-of-week if not already\n endOfWeek = dateEnv.startOfWeek(end);\n if (endOfWeek.valueOf() !== end.valueOf()) {\n end = addWeeks(endOfWeek, 1);\n }\n }\n // ensure 6 weeks\n if (props.fixedWeekCount) {\n // TODO: instead of these date-math gymnastics (for multimonth view),\n // compute dateprofiles of all months, then use start of first and end of last.\n let lastMonthRenderStart = dateEnv.startOfWeek(dateEnv.startOfMonth(addDays(currentRange.end, -1)));\n let rowCnt = Math.ceil(// could be partial weeks due to hiddenDays\n diffWeeks(lastMonthRenderStart, end));\n end = addWeeks(end, 6 - rowCnt);\n }\n return { start, end };\n}\n\nvar css_248z = \":root{--fc-daygrid-event-dot-width:8px}.fc-daygrid-day-events:after,.fc-daygrid-day-events:before,.fc-daygrid-day-frame:after,.fc-daygrid-day-frame:before,.fc-daygrid-event-harness:after,.fc-daygrid-event-harness:before{clear:both;content:\\\"\\\";display:table}.fc .fc-daygrid-body{position:relative;z-index:1}.fc .fc-daygrid-day.fc-day-today{background-color:var(--fc-today-bg-color)}.fc .fc-daygrid-day-frame{min-height:100%;position:relative}.fc .fc-daygrid-day-top{display:flex;flex-direction:row-reverse}.fc .fc-day-other .fc-daygrid-day-top{opacity:.3}.fc .fc-daygrid-day-number{padding:4px;position:relative;z-index:4}.fc .fc-daygrid-month-start{font-size:1.1em;font-weight:700}.fc .fc-daygrid-day-events{margin-top:1px}.fc .fc-daygrid-body-balanced .fc-daygrid-day-events{left:0;position:absolute;right:0}.fc .fc-daygrid-body-unbalanced .fc-daygrid-day-events{min-height:2em;position:relative}.fc .fc-daygrid-body-natural .fc-daygrid-day-events{margin-bottom:1em}.fc .fc-daygrid-event-harness{position:relative}.fc .fc-daygrid-event-harness-abs{left:0;position:absolute;right:0;top:0}.fc .fc-daygrid-bg-harness{bottom:0;position:absolute;top:0}.fc .fc-daygrid-day-bg .fc-non-business{z-index:1}.fc .fc-daygrid-day-bg .fc-bg-event{z-index:2}.fc .fc-daygrid-day-bg .fc-highlight{z-index:3}.fc .fc-daygrid-event{margin-top:1px;z-index:6}.fc .fc-daygrid-event.fc-event-mirror{z-index:7}.fc .fc-daygrid-day-bottom{font-size:.85em;margin:0 2px}.fc .fc-daygrid-day-bottom:after,.fc .fc-daygrid-day-bottom:before{clear:both;content:\\\"\\\";display:table}.fc .fc-daygrid-more-link{border-radius:3px;cursor:pointer;line-height:1;margin-top:1px;max-width:100%;overflow:hidden;padding:2px;position:relative;white-space:nowrap;z-index:4}.fc .fc-daygrid-more-link:hover{background-color:rgba(0,0,0,.1)}.fc .fc-daygrid-week-number{background-color:var(--fc-neutral-bg-color);color:var(--fc-neutral-text-color);min-width:1.5em;padding:2px;position:absolute;text-align:center;top:0;z-index:5}.fc .fc-more-popover .fc-popover-body{min-width:220px;padding:10px}.fc-direction-ltr .fc-daygrid-event.fc-event-start,.fc-direction-rtl .fc-daygrid-event.fc-event-end{margin-left:2px}.fc-direction-ltr .fc-daygrid-event.fc-event-end,.fc-direction-rtl .fc-daygrid-event.fc-event-start{margin-right:2px}.fc-direction-ltr .fc-daygrid-more-link{float:left}.fc-direction-ltr .fc-daygrid-week-number{border-radius:0 0 3px 0;left:0}.fc-direction-rtl .fc-daygrid-more-link{float:right}.fc-direction-rtl .fc-daygrid-week-number{border-radius:0 0 0 3px;right:0}.fc-liquid-hack .fc-daygrid-day-frame{position:static}.fc-daygrid-event{border-radius:3px;font-size:var(--fc-small-font-size);position:relative;white-space:nowrap}.fc-daygrid-block-event .fc-event-time{font-weight:700}.fc-daygrid-block-event .fc-event-time,.fc-daygrid-block-event .fc-event-title{padding:1px}.fc-daygrid-dot-event{align-items:center;display:flex;padding:2px 0}.fc-daygrid-dot-event .fc-event-title{flex-grow:1;flex-shrink:1;font-weight:700;min-width:0;overflow:hidden}.fc-daygrid-dot-event.fc-event-mirror,.fc-daygrid-dot-event:hover{background:rgba(0,0,0,.1)}.fc-daygrid-dot-event.fc-event-selected:before{bottom:-10px;top:-10px}.fc-daygrid-event-dot{border:calc(var(--fc-daygrid-event-dot-width)/2) solid var(--fc-event-border-color);border-radius:calc(var(--fc-daygrid-event-dot-width)/2);box-sizing:content-box;height:0;margin:0 4px;width:0}.fc-direction-ltr .fc-daygrid-event .fc-event-time{margin-right:3px}.fc-direction-rtl .fc-daygrid-event .fc-event-time{margin-left:3px}\";\ninjectStyles(css_248z);\n\nexport { DayTableView as DayGridView, DayTable, DayTableSlicer, Table, TableDateProfileGenerator, TableRows, TableView, buildDayTableModel, buildDayTableRenderRange };\n","import { createPlugin } from '@fullcalendar/core/index.js';\nimport { DayGridView as DayTableView, TableDateProfileGenerator } from './internal.js';\nimport '@fullcalendar/core/internal.js';\nimport '@fullcalendar/core/preact.js';\n\nvar index = createPlugin({\n name: '@fullcalendar/daygrid',\n initialView: 'dayGridMonth',\n views: {\n dayGrid: {\n component: DayTableView,\n dateProfileGeneratorClass: TableDateProfileGenerator,\n },\n dayGridDay: {\n type: 'dayGrid',\n duration: { days: 1 },\n },\n dayGridWeek: {\n type: 'dayGrid',\n duration: { weeks: 1 },\n },\n dayGridMonth: {\n type: 'dayGrid',\n duration: { months: 1 },\n fixedWeekCount: true,\n },\n dayGridYear: {\n type: 'dayGrid',\n duration: { years: 1 },\n },\n },\n});\n\nexport { index as default };\n","import { JsonRequestError, createPlugin } from '@fullcalendar/core/index.js';\nimport { requestJson, addDays, identity } from '@fullcalendar/core/internal.js';\n\n// TODO: expose somehow\nconst API_BASE = 'https://www.googleapis.com/calendar/v3/calendars';\nconst eventSourceDef = {\n parseMeta(refined) {\n let { googleCalendarId } = refined;\n if (!googleCalendarId && refined.url) {\n googleCalendarId = parseGoogleCalendarId(refined.url);\n }\n if (googleCalendarId) {\n return {\n googleCalendarId,\n googleCalendarApiKey: refined.googleCalendarApiKey,\n googleCalendarApiBase: refined.googleCalendarApiBase,\n extraParams: refined.extraParams,\n };\n }\n return null;\n },\n fetch(arg, successCallback, errorCallback) {\n let { dateEnv, options } = arg.context;\n let meta = arg.eventSource.meta;\n let apiKey = meta.googleCalendarApiKey || options.googleCalendarApiKey;\n if (!apiKey) {\n errorCallback(new Error('Specify a googleCalendarApiKey. See https://fullcalendar.io/docs/google-calendar'));\n }\n else {\n let url = buildUrl(meta);\n // TODO: make DRY with json-feed-event-source\n let { extraParams } = meta;\n let extraParamsObj = typeof extraParams === 'function' ? extraParams() : extraParams;\n let requestParams = buildRequestParams(arg.range, apiKey, extraParamsObj, dateEnv);\n return requestJson('GET', url, requestParams).then(([body, response]) => {\n if (body.error) {\n errorCallback(new JsonRequestError('Google Calendar API: ' + body.error.message, response));\n }\n else {\n successCallback({\n rawEvents: gcalItemsToRawEventDefs(body.items, requestParams.timeZone),\n response,\n });\n }\n }, errorCallback);\n }\n },\n};\nfunction parseGoogleCalendarId(url) {\n let match;\n // detect if the ID was specified as a single string.\n // will match calendars like \"asdf1234@calendar.google.com\" in addition to person email calendars.\n if (/^[^/]+@([^/.]+\\.)*(google|googlemail|gmail)\\.com$/.test(url)) {\n return url;\n }\n if ((match = /^https:\\/\\/www.googleapis.com\\/calendar\\/v3\\/calendars\\/([^/]*)/.exec(url)) ||\n (match = /^https?:\\/\\/www.google.com\\/calendar\\/feeds\\/([^/]*)/.exec(url))) {\n return decodeURIComponent(match[1]);\n }\n return null;\n}\nfunction buildUrl(meta) {\n let apiBase = meta.googleCalendarApiBase;\n if (!apiBase) {\n apiBase = API_BASE;\n }\n return apiBase + '/' + encodeURIComponent(meta.googleCalendarId) + '/events';\n}\nfunction buildRequestParams(range, apiKey, extraParams, dateEnv) {\n let params;\n let startStr;\n let endStr;\n if (dateEnv.canComputeOffset) {\n // strings will naturally have offsets, which GCal needs\n startStr = dateEnv.formatIso(range.start);\n endStr = dateEnv.formatIso(range.end);\n }\n else {\n // when timezone isn't known, we don't know what the UTC offset should be, so ask for +/- 1 day\n // from the UTC day-start to guarantee we're getting all the events\n // (start/end will be UTC-coerced dates, so toISOString is okay)\n startStr = addDays(range.start, -1).toISOString();\n endStr = addDays(range.end, 1).toISOString();\n }\n params = Object.assign(Object.assign({}, (extraParams || {})), { key: apiKey, timeMin: startStr, timeMax: endStr, singleEvents: true, maxResults: 9999 });\n if (dateEnv.timeZone !== 'local') {\n params.timeZone = dateEnv.timeZone;\n }\n return params;\n}\nfunction gcalItemsToRawEventDefs(items, gcalTimezone) {\n return items.map((item) => gcalItemToRawEventDef(item, gcalTimezone));\n}\nfunction gcalItemToRawEventDef(item, gcalTimezone) {\n let url = item.htmlLink || null;\n // make the URLs for each event show times in the correct timezone\n if (url && gcalTimezone) {\n url = injectQsComponent(url, 'ctz=' + gcalTimezone);\n }\n return {\n id: item.id,\n title: item.summary,\n start: item.start.dateTime || item.start.date,\n end: item.end.dateTime || item.end.date,\n url,\n location: item.location,\n description: item.description,\n attachments: item.attachments || [],\n extendedProps: (item.extendedProperties || {}).shared || {},\n };\n}\n// Injects a string like \"arg=value\" into the querystring of a URL\n// TODO: move to a general util file?\nfunction injectQsComponent(url, component) {\n // inject it after the querystring but before the fragment\n return url.replace(/(\\?.*?)?(#|$)/, (whole, qs, hash) => (qs ? qs + '&' : '?') + component + hash);\n}\n\nconst OPTION_REFINERS = {\n googleCalendarApiKey: String,\n};\n\nconst EVENT_SOURCE_REFINERS = {\n googleCalendarApiKey: String,\n googleCalendarId: String,\n googleCalendarApiBase: String,\n extraParams: identity,\n};\n\nvar index = createPlugin({\n name: '@fullcalendar/google-calendar',\n eventSourceDefs: [eventSourceDef],\n optionRefiners: OPTION_REFINERS,\n eventSourceRefiners: EVENT_SOURCE_REFINERS,\n});\n\nexport { index as default };\n",null,null,null,"/*!\n * Copyright (c) 2021-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { APIError } from '../../errors/types';\nimport {\n OktaAuthOAuthInterface,\n Tokens,\n TransactionManagerConstructor,\n TransactionManagerInterface\n} from '../../oidc/types';\nimport { FlowIdentifier } from './FlowIdentifier';\nimport {\n IdxActions,\n IdxAuthenticator,\n IdxContext,\n IdxForm,\n IdxMessage,\n IdxOption,\n IdxRemediation,\n IdxResponse,\n RawIdxResponse,\n IdxActionParams,\n IdpConfig,\n IdxToPersist,\n ChallengeData,\n ActivationData,\n} from './idx-js';\nimport {\n AccountUnlockOptions,\n AuthenticationOptions,\n CancelOptions,\n InteractOptions,\n IntrospectOptions,\n OktaAuthIdxOptions,\n PasswordRecoveryOptions,\n ProceedOptions,\n RegistrationOptions,\n StartOptions,\n IdxTransactionMetaOptions\n} from './options';\nimport { IdxTransactionMeta } from './meta';\nimport { IdxStorageManagerInterface, SavedIdxResponse } from './storage';\nimport type {\n WebauthnEnrollValues,\n WebauthnVerificationValues\n} from '../authenticator';\nimport { OktaAuthConstructor } from '../../base/types';\n\nexport enum IdxStatus {\n SUCCESS = 'SUCCESS',\n PENDING = 'PENDING',\n FAILURE = 'FAILURE',\n TERMINAL = 'TERMINAL',\n CANCELED = 'CANCELED',\n}\n\nexport enum AuthenticatorKey {\n OKTA_PASSWORD = 'okta_password',\n OKTA_EMAIL = 'okta_email',\n PHONE_NUMBER = 'phone_number',\n GOOGLE_AUTHENTICATOR = 'google_otp',\n SECURITY_QUESTION = 'security_question',\n OKTA_VERIFY = 'okta_verify',\n WEBAUTHN = 'webauthn',\n}\n\nexport type Input = {\n name: string;\n key?: string;\n type?: string;\n label?: string;\n value?: string | {form: IdxForm} | Input[];\n minLength?: number;\n maxLength?: number;\n secret?: boolean;\n required?: boolean;\n options?: IdxOption[];\n mutable?: boolean;\n visible?: boolean;\n}\n\n\nexport interface IdxPollOptions {\n required?: boolean;\n refresh?: number;\n}\n\nexport type NextStep = {\n name: string;\n authenticator?: IdxAuthenticator;\n canSkip?: boolean;\n canResend?: boolean;\n inputs?: Input[];\n poll?: IdxPollOptions;\n authenticatorEnrollments?: IdxAuthenticator[];\n // eslint-disable-next-line no-use-before-define\n action?: (params?: IdxActionParams) => Promise<IdxTransaction>;\n idp?: IdpConfig;\n href?: string;\n relatesTo?: {\n type?: string;\n value: IdxAuthenticator;\n };\n refresh?: number;\n}\n\nexport enum IdxFeature {\n PASSWORD_RECOVERY = 'recover-password',\n REGISTRATION = 'enroll-profile',\n SOCIAL_IDP = 'redirect-idp',\n ACCOUNT_UNLOCK = 'unlock-account',\n}\n\n\nexport interface IdxTransaction {\n status: IdxStatus;\n tokens?: Tokens;\n nextStep?: NextStep;\n messages?: IdxMessage[];\n error?: APIError | IdxResponse;\n meta?: IdxTransactionMeta;\n enabledFeatures?: IdxFeature[];\n availableSteps?: NextStep[];\n requestDidSucceed?: boolean;\n stepUp?: boolean;\n \n // from idx-js, used by signin widget\n proceed: (remediationName: string, params: unknown) => Promise<IdxResponse>;\n neededToProceed: IdxRemediation[];\n rawIdxState: RawIdxResponse;\n interactionCode?: string;\n actions: IdxActions;\n context: IdxContext;\n}\n\n\nexport type Authenticator = {\n id?: string;\n key?: string;\n methodType?: string;\n phoneNumber?: string;\n channel?: string;\n};\n\nexport function isAuthenticator(obj: any): obj is Authenticator {\n return obj && (obj.key || obj.id);\n}\n\nexport interface RemediationResponse {\n idxResponse: IdxResponse;\n nextStep?: NextStep;\n messages?: IdxMessage[];\n terminal?: boolean;\n canceled?: boolean;\n}\n\nexport interface InteractResponse {\n state?: string;\n interactionHandle: string;\n meta: IdxTransactionMeta;\n}\n\nexport interface EmailVerifyCallbackResponse {\n state: string;\n otp: string;\n}\n\nexport interface IdxAPI {\n // lowest level api\n interact: (options?: InteractOptions) => Promise<InteractResponse>;\n introspect: (options?: IntrospectOptions) => Promise<IdxResponse>;\n makeIdxResponse: (rawIdxResponse: RawIdxResponse, toPersist: IdxToPersist, requestDidSucceed: boolean) => IdxResponse;\n\n // flow entrypoints\n authenticate: (options?: AuthenticationOptions) => Promise<IdxTransaction>;\n register: (options?: RegistrationOptions) => Promise<IdxTransaction>;\n recoverPassword: (options?: PasswordRecoveryOptions) => Promise<IdxTransaction>;\n unlockAccount: (options?: AccountUnlockOptions) => Promise<IdxTransaction>;\n poll: (options?: IdxPollOptions) => Promise<IdxTransaction>;\n\n // flow control\n start: (options?: StartOptions) => Promise<IdxTransaction>;\n canProceed(options?: ProceedOptions): boolean;\n proceed: (options?: ProceedOptions) => Promise<IdxTransaction>;\n cancel: (options?: CancelOptions) => Promise<IdxTransaction>;\n getFlow(): FlowIdentifier | undefined;\n setFlow(flow: FlowIdentifier): void;\n\n // call `start` instead of `startTransaction`. `startTransaction` will be removed in next major version (7.0)\n startTransaction: (options?: StartOptions) => Promise<IdxTransaction>;\n\n // redirect callbacks\n isInteractionRequired: (hashOrSearch?: string) => boolean;\n isInteractionRequiredError: (error: Error) => boolean; \n handleInteractionCodeRedirect: (url: string) => Promise<void>;\n isEmailVerifyCallback: (search: string) => boolean;\n parseEmailVerifyCallback: (search: string) => EmailVerifyCallbackResponse;\n handleEmailVerifyCallback: (search: string) => Promise<IdxTransaction | undefined>;\n isEmailVerifyCallbackError: (error: Error) => boolean;\n\n // transaction meta\n getSavedTransactionMeta: (options?: IdxTransactionMetaOptions) => IdxTransactionMeta | undefined;\n createTransactionMeta: (options?: IdxTransactionMetaOptions) => Promise<IdxTransactionMeta>;\n getTransactionMeta: (options?: IdxTransactionMetaOptions) => Promise<IdxTransactionMeta>;\n saveTransactionMeta: (meta: unknown) => void;\n clearTransactionMeta: () => void;\n isTransactionMetaValid: (meta: unknown) => boolean;\n}\n\nexport interface IdxTransactionManagerInterface extends TransactionManagerInterface {\n saveIdxResponse(data: SavedIdxResponse): void;\n loadIdxResponse(options?: IntrospectOptions): SavedIdxResponse | null;\n clearIdxResponse(): void;\n}\n\nexport type IdxTransactionManagerConstructor = TransactionManagerConstructor<IdxTransactionManagerInterface>;\n\nexport interface WebauthnAPI {\n getAssertion(credential: PublicKeyCredential): WebauthnVerificationValues;\n getAttestation(credential: PublicKeyCredential): WebauthnEnrollValues;\n buildCredentialRequestOptions(\n challengeData: ChallengeData, authenticatorEnrollments: IdxAuthenticator[]\n ): CredentialRequestOptions;\n buildCredentialCreationOptions(\n activationData: ActivationData, authenticatorEnrollments: IdxAuthenticator[]\n ): CredentialCreationOptions;\n}\n\nexport interface OktaAuthIdxInterface\n<\n M extends IdxTransactionMeta = IdxTransactionMeta,\n S extends IdxStorageManagerInterface<M> = IdxStorageManagerInterface<M>,\n O extends OktaAuthIdxOptions = OktaAuthIdxOptions,\n TM extends IdxTransactionManagerInterface = IdxTransactionManagerInterface\n>\n extends OktaAuthOAuthInterface<M, S, O, TM>\n{\n idx: IdxAPI;\n}\n\nexport interface OktaAuthIdxConstructor\n<\n I extends OktaAuthIdxInterface = OktaAuthIdxInterface\n>\n extends OktaAuthConstructor<I>\n{\n new(...args: any[]): I;\n webauthn: WebauthnAPI;\n}\n\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n/* global window */\n\nexport function getNativeConsole() {\n if (typeof window !== 'undefined') {\n return window.console;\n } else if (typeof console !== 'undefined') {\n return console;\n } else {\n return undefined;\n }\n}\n\nexport function getConsole() {\n var nativeConsole = getNativeConsole();\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n if (nativeConsole && nativeConsole.log) {\n return nativeConsole;\n }\n return {\n log: function() {},\n warn: function() {},\n group: function() {},\n groupEnd: function() {}\n };\n}\n\nexport function warn(text) {\n /* eslint-disable no-console */\n getConsole().warn('[okta-auth-sdk] WARN: ' + text);\n /* eslint-enable */\n}\n\nexport function deprecate(text) {\n /* eslint-disable no-console */\n getConsole().warn('[okta-auth-sdk] DEPRECATION: ' + text);\n /* eslint-enable */\n}\n\nexport function deprecateWrap(text, fn) {\n return function() {\n deprecate(text);\n return fn.apply(null, arguments);\n };\n}\n\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nexport function bind(fn, ctx) {\n var additionalArgs = Array.prototype.slice.call(arguments, 2);\n return function() {\n var args = Array.prototype.slice.call(arguments);\n args = additionalArgs.concat(args);\n return fn.apply(ctx, args);\n };\n}\n\n// TODO: replace all references with `Object.assign` then remove this function\nexport function extend() {\n // First object will be modified!\n var obj1 = arguments[0];\n // Properties from other objects will be copied over\n var objArray = [].slice.call(arguments, 1);\n objArray.forEach(function(obj) {\n for (var prop in obj) {\n // copy over all properties with defined values\n if (Object.prototype.hasOwnProperty.call(obj, prop) && obj[prop] !== undefined) {\n obj1[prop] = obj[prop];\n }\n }\n });\n return obj1; // return the modified object\n}\n\nexport function removeNils(obj) {\n var cleaned = {};\n for (var prop in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, prop)) {\n var value = obj[prop];\n if (value !== null && value !== undefined) {\n cleaned[prop] = value;\n }\n }\n }\n return cleaned;\n}\n\nexport function clone(obj) {\n if (obj) {\n var str = JSON.stringify(obj);\n if (str) {\n return JSON.parse(str);\n }\n }\n return obj;\n}\n\n// Analogous to _.omit\nexport function omit(obj, ...props: any[]) {\n // var props = Array.prototype.slice.call(arguments, 1);\n var newobj = {};\n for (var p in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, p) && props.indexOf(p) == -1) {\n newobj[p] = obj[p];\n }\n }\n return clone(newobj);\n}\n\nexport function find(collection, searchParams) {\n var c = collection.length;\n while (c--) {\n var item = collection[c];\n var found = true;\n for (var prop in searchParams) {\n if (!Object.prototype.hasOwnProperty.call(searchParams, prop)) {\n continue;\n }\n if (item[prop] !== searchParams[prop]) {\n found = false;\n break;\n }\n }\n if (found) {\n return item;\n }\n }\n}\n\nexport function getLink(obj, linkName, altName?) {\n if (!obj || !obj._links) {\n return;\n }\n\n var link = clone(obj._links[linkName]);\n\n // If a link has a name and we have an altName, return if they match\n if (link && link.name && altName) {\n if (link.name === altName) {\n return link;\n }\n } else {\n return link;\n }\n}\n\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nexport function isoToUTCString(str) {\n var parts = str.match(/\\d+/g),\n isoTime = Date.UTC(parts[0], parts[1] - 1, parts[2], parts[3], parts[4], parts[5]),\n isoDate = new Date(isoTime);\n\n return isoDate.toUTCString();\n}\n\nexport function genRandomString(length) {\n var randomCharset = 'abcdefghijklnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';\n var random = '';\n for (var c = 0, cl = randomCharset.length; c < length; ++c) {\n random += randomCharset[Math.floor(Math.random() * cl)];\n }\n return random;\n}\n\nexport function delay(ms) {\n return new Promise(function(resolve) {\n setTimeout(resolve, ms);\n });\n}\n\nexport function split2(str, delim) {\n const parts = str.split(delim);\n return [\n parts[0], \n parts.splice(1, parts.length).join(delim),\n ];\n}\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nexport function isAbsoluteUrl(url) {\n return /^[a-z][a-z0-9+.-]*:/i.test(url);\n}\n\nexport function toAbsoluteUrl(url = '', baseUrl) {\n if (isAbsoluteUrl(url)) {\n return url;\n }\n baseUrl = removeTrailingSlash(baseUrl);\n return url[0] === '/' ? `${baseUrl}${url}` : `${baseUrl}/${url}`;\n}\n\nexport function toRelativeUrl(url = '', baseUrl) {\n if (isAbsoluteUrl(url)) {\n url = url.substring(baseUrl.length);\n }\n\n return url[0] === '/' ? url : `/${url}`;\n}\n\nexport function toQueryString(obj) {\n var str = [];\n if (obj !== null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) &&\n obj[key] !== undefined &&\n obj[key] !== null) {\n str.push(key + '=' + encodeURIComponent(obj[key]) as never);\n }\n }\n }\n if (str.length) {\n return '?' + str.join('&');\n } else {\n return '';\n }\n}\n\nexport function removeTrailingSlash(path) {\n if (!path) {\n return;\n }\n // Remove any whitespace before or after string\n var trimmed = path.replace(/^\\s+|\\s+$/gm,'');\n // Remove trailing slash(es)\n trimmed = trimmed.replace(/\\/+$/, '');\n\n return trimmed;\n}\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nexport default class CustomError extends Error {\n constructor(message: string) {\n // https://stackoverflow.com/questions/41102060/typescript-extending-error-class\n super(message); // 'Error' breaks prototype chain here\n Object.setPrototypeOf(this, new.target.prototype); // restore prototype chain\n }\n}\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport CustomError from './CustomError';\nimport { APIError, FieldError } from './types';\n\nexport default class AuthSdkError extends CustomError implements APIError {\n errorSummary: string;\n errorCode: string;\n errorLink: string;\n errorId: string;\n errorCauses: Array<FieldError>;\n xhr?: XMLHttpRequest;\n\n constructor(msg: string, xhr?: XMLHttpRequest) {\n super(msg);\n this.name = 'AuthSdkError';\n this.errorCode = 'INTERNAL';\n this.errorSummary = msg;\n this.errorLink = 'INTERNAL';\n this.errorId = 'INTERNAL';\n this.errorCauses = [];\n if (xhr) {\n this.xhr = xhr;\n }\n }\n}\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n *\n */\n/* eslint-disable complexity, max-statements */\nimport { genRandomString, removeTrailingSlash } from '../../util';\nimport AuthSdkError from '../../errors/AuthSdkError';\nimport { OktaAuthOAuthInterface, CustomUrls } from '../types';\n\nexport function generateState() {\n return genRandomString(64);\n}\n\nexport function generateNonce() {\n return genRandomString(64);\n}\n\nfunction getIssuer(sdk: OktaAuthOAuthInterface, options: CustomUrls = {}) {\n const issuer = removeTrailingSlash(options.issuer) || sdk.options.issuer;\n return issuer;\n}\n\nexport function getOAuthBaseUrl(sdk: OktaAuthOAuthInterface, options: CustomUrls = {}) {\n const issuer = getIssuer(sdk, options);\n const baseUrl = issuer.indexOf('/oauth2') > 0 ? issuer : issuer + '/oauth2';\n return baseUrl;\n}\n\nexport function getOAuthDomain(sdk: OktaAuthOAuthInterface, options: CustomUrls = {}) {\n const issuer = getIssuer(sdk, options);\n const domain = issuer.split('/oauth2')[0];\n return domain;\n}\n\nexport function getOAuthUrls(sdk: OktaAuthOAuthInterface, options?: CustomUrls): CustomUrls {\n if (arguments.length > 2) {\n throw new AuthSdkError('As of version 3.0, \"getOAuthUrls\" takes only a single set of options');\n }\n options = options || {};\n\n // Get user-supplied arguments\n var authorizeUrl = removeTrailingSlash(options.authorizeUrl) || sdk.options.authorizeUrl;\n var issuer = getIssuer(sdk, options);\n var userinfoUrl = removeTrailingSlash(options.userinfoUrl) || sdk.options.userinfoUrl;\n var tokenUrl = removeTrailingSlash(options.tokenUrl) || sdk.options.tokenUrl;\n var logoutUrl = removeTrailingSlash(options.logoutUrl) || sdk.options.logoutUrl;\n var revokeUrl = removeTrailingSlash(options.revokeUrl) || sdk.options.revokeUrl;\n\n var baseUrl = getOAuthBaseUrl(sdk, options);\n\n authorizeUrl = authorizeUrl || baseUrl + '/v1/authorize';\n userinfoUrl = userinfoUrl || baseUrl + '/v1/userinfo';\n tokenUrl = tokenUrl || baseUrl + '/v1/token';\n revokeUrl = revokeUrl || baseUrl + '/v1/revoke';\n logoutUrl = logoutUrl || baseUrl + '/v1/logout';\n\n return {\n issuer: issuer,\n authorizeUrl: authorizeUrl,\n userinfoUrl: userinfoUrl,\n tokenUrl: tokenUrl,\n revokeUrl: revokeUrl,\n logoutUrl: logoutUrl\n };\n}\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\nimport { OAuthTransactionMeta, OktaAuthOAuthInterface, PKCETransactionMeta, TokenParams } from '../types';\nimport { getOAuthUrls } from './oauth';\n\nexport function createOAuthMeta(\n sdk: OktaAuthOAuthInterface, \n tokenParams: TokenParams\n): OAuthTransactionMeta | PKCETransactionMeta {\n const issuer = sdk.options.issuer!;\n const urls = getOAuthUrls(sdk, tokenParams);\n const oauthMeta: OAuthTransactionMeta = {\n issuer,\n urls,\n clientId: tokenParams.clientId!,\n redirectUri: tokenParams.redirectUri!,\n responseType: tokenParams.responseType!,\n responseMode: tokenParams.responseMode!,\n scopes: tokenParams.scopes!,\n state: tokenParams.state!,\n nonce: tokenParams.nonce!,\n ignoreSignature: tokenParams.ignoreSignature!,\n acrValues: tokenParams.acrValues,\n };\n\n if (tokenParams.pkce === false) {\n // Implicit flow or authorization_code without PKCE\n return oauthMeta;\n }\n\n const pkceMeta: PKCETransactionMeta = {\n ...oauthMeta,\n codeVerifier: tokenParams.codeVerifier!,\n codeChallengeMethod: tokenParams.codeChallengeMethod!,\n codeChallenge: tokenParams.codeChallenge!,\n };\n\n return pkceMeta;\n}\n","/*! js-cookie v3.0.5 | MIT */\n/* eslint-disable no-var */\nfunction assign (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n target[key] = source[key];\n }\n }\n return target\n}\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\nvar defaultConverter = {\n read: function (value) {\n if (value[0] === '\"') {\n value = value.slice(1, -1);\n }\n return value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent)\n },\n write: function (value) {\n return encodeURIComponent(value).replace(\n /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,\n decodeURIComponent\n )\n }\n};\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\n\nfunction init (converter, defaultAttributes) {\n function set (name, value, attributes) {\n if (typeof document === 'undefined') {\n return\n }\n\n attributes = assign({}, defaultAttributes, attributes);\n\n if (typeof attributes.expires === 'number') {\n attributes.expires = new Date(Date.now() + attributes.expires * 864e5);\n }\n if (attributes.expires) {\n attributes.expires = attributes.expires.toUTCString();\n }\n\n name = encodeURIComponent(name)\n .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\n .replace(/[()]/g, escape);\n\n var stringifiedAttributes = '';\n for (var attributeName in attributes) {\n if (!attributes[attributeName]) {\n continue\n }\n\n stringifiedAttributes += '; ' + attributeName;\n\n if (attributes[attributeName] === true) {\n continue\n }\n\n // Considers RFC 6265 section 5.2:\n // ...\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n // Consume the characters of the unparsed-attributes up to,\n // not including, the first %x3B (\";\") character.\n // ...\n stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n }\n\n return (document.cookie =\n name + '=' + converter.write(value, name) + stringifiedAttributes)\n }\n\n function get (name) {\n if (typeof document === 'undefined' || (arguments.length && !name)) {\n return\n }\n\n // To prevent the for loop in the first place assign an empty array\n // in case there are no cookies at all.\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var jar = {};\n for (var i = 0; i < cookies.length; i++) {\n var parts = cookies[i].split('=');\n var value = parts.slice(1).join('=');\n\n try {\n var found = decodeURIComponent(parts[0]);\n jar[found] = converter.read(value, found);\n\n if (name === found) {\n break\n }\n } catch (e) {}\n }\n\n return name ? jar[name] : jar\n }\n\n return Object.create(\n {\n set,\n get,\n remove: function (name, attributes) {\n set(\n name,\n '',\n assign({}, attributes, {\n expires: -1\n })\n );\n },\n withAttributes: function (attributes) {\n return init(this.converter, assign({}, this.attributes, attributes))\n },\n withConverter: function (converter) {\n return init(assign({}, this.converter, converter), this.attributes)\n }\n },\n {\n attributes: { value: Object.freeze(defaultAttributes) },\n converter: { value: Object.freeze(converter) }\n }\n )\n}\n\nvar api = init(defaultConverter, { path: '/' });\n/* eslint-enable no-var */\n\nexport { api as default };\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/*!\n * Copyright (c) 2021, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { OktaAuthIdxInterface, IdxTransactionMeta, IdxTransactionMetaOptions } from './types';\nimport { removeNils, warn } from '../util';\nimport { createOAuthMeta, PKCETransactionMeta } from '../oidc';\n\n// Calculate new values\nexport async function createTransactionMeta(\n authClient: OktaAuthIdxInterface,\n options: IdxTransactionMetaOptions = {}\n): Promise<IdxTransactionMeta> {\n const tokenParams = await authClient.token.prepareTokenParams(options);\n const pkceMeta = createOAuthMeta(authClient, tokenParams) as PKCETransactionMeta;\n let {\n flow = 'default',\n withCredentials = true,\n activationToken = undefined,\n recoveryToken = undefined,\n maxAge = undefined,\n acrValues = undefined,\n } = { ...authClient.options, ...options }; // local options override SDK options\n\n const meta: IdxTransactionMeta = {\n ...pkceMeta,\n flow,\n withCredentials,\n activationToken,\n recoveryToken,\n maxAge,\n acrValues\n };\n return meta;\n}\n\nexport function hasSavedInteractionHandle(\n authClient: OktaAuthIdxInterface,\n options?: IdxTransactionMetaOptions\n): boolean {\n const savedMeta = getSavedTransactionMeta(authClient, options);\n if (savedMeta?.interactionHandle) {\n return true;\n }\n return false;\n}\n\n// Returns the saved transaction meta, if it exists and is valid\nexport function getSavedTransactionMeta(\n authClient: OktaAuthIdxInterface,\n options?: IdxTransactionMetaOptions\n): IdxTransactionMeta | undefined {\n options = removeNils(options);\n options = { ...authClient.options, ...options }; // local options override SDK options\n let savedMeta;\n try {\n savedMeta = authClient.transactionManager.load(options) as IdxTransactionMeta;\n } catch (e) {\n // ignore errors here\n }\n\n if (!savedMeta) {\n return;\n }\n\n if (isTransactionMetaValid(savedMeta, options)) {\n return savedMeta;\n }\n\n // existing meta is not valid for this configuration\n // this is common when changing configuration in local development environment\n // in a production environment, this may indicate that two apps are sharing a storage key\n warn('Saved transaction meta does not match the current configuration. ' + \n 'This may indicate that two apps are sharing a storage key.');\n\n}\n\nexport async function getTransactionMeta(\n authClient: OktaAuthIdxInterface,\n options?: IdxTransactionMetaOptions\n): Promise<IdxTransactionMeta> {\n options = removeNils(options);\n options = { ...authClient.options, ...options }; // local options override SDK options\n // Load existing transaction meta from storage\n const validExistingMeta = getSavedTransactionMeta(authClient, options);\n if (validExistingMeta) {\n return validExistingMeta;\n }\n // No existing? Create new transaction meta.\n return createTransactionMeta(authClient, options);\n}\n\nexport function saveTransactionMeta (authClient: OktaAuthIdxInterface, meta): void {\n authClient.transactionManager.save(meta, { muteWarning: true });\n}\n\nexport function clearTransactionMeta (authClient: OktaAuthIdxInterface): void {\n authClient.transactionManager.clear();\n}\n\nexport function isTransactionMetaValid (meta, options: IdxTransactionMetaOptions = {}): boolean {\n // Validate against certain options. If these exist in options, they must match in meta\n const keys = [\n 'issuer',\n 'clientId',\n 'redirectUri',\n 'state',\n 'codeChallenge',\n 'codeChallengeMethod',\n 'activationToken',\n 'recoveryToken'\n ];\n if (isTransactionMetaValidForOptions(meta, options, keys) === false) {\n return false;\n }\n\n // Validate configured flow\n const { flow } = options;\n if (isTransactionMetaValidForFlow(meta, flow) === false) {\n return false;\n }\n\n return true;\n}\n\nexport function isTransactionMetaValidForFlow(meta, flow) {\n // Specific flows should not share transaction data\n const shouldValidateFlow = flow && flow !== 'default' && flow !== 'proceed';\n if (shouldValidateFlow) {\n if (flow !== meta.flow) {\n // The flow has changed; abandon the old transaction\n return false;\n }\n }\n return true;\n}\n\nexport function isTransactionMetaValidForOptions(meta, options, keys) {\n // returns false if values in meta do not match options\n // if the option does not have a value for a specific key, it is ignored\n const mismatch = keys.some(key => {\n const value = options[key];\n if (value && value !== meta[key]) {\n return true;\n }\n });\n return !mismatch;\n}\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nexport function isString(obj: any): obj is string {\n return Object.prototype.toString.call(obj) === '[object String]';\n}\n\nexport function isObject(obj: any): obj is object {\n return Object.prototype.toString.call(obj) === '[object Object]';\n}\n\nexport function isNumber(obj: any): obj is number {\n return Object.prototype.toString.call(obj) === '[object Number]';\n}\n\nexport function isFunction(fn: any): fn is (...any: any[]) => any {\n return !!fn && {}.toString.call(fn) === '[object Function]';\n}\n\nexport function isPromise(obj) {\n return obj && obj.finally && (typeof obj.finally === 'function');\n}\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nexport const STATE_TOKEN_KEY_NAME = 'oktaStateToken';\nexport const DEFAULT_POLLING_DELAY = 500;\nexport const DEFAULT_MAX_CLOCK_SKEW = 300;\nexport const DEFAULT_CACHE_DURATION = 86400;\nexport const TOKEN_STORAGE_NAME = 'okta-token-storage';\nexport const CACHE_STORAGE_NAME = 'okta-cache-storage';\nexport const PKCE_STORAGE_NAME = 'okta-pkce-storage';\nexport const TRANSACTION_STORAGE_NAME = 'okta-transaction-storage';\nexport const SHARED_TRANSACTION_STORAGE_NAME = 'okta-shared-transaction-storage';\nexport const ORIGINAL_URI_STORAGE_NAME = 'okta-original-uri-storage';\nexport const IDX_RESPONSE_STORAGE_NAME = 'okta-idx-response-storage';\nexport const ACCESS_TOKEN_STORAGE_KEY = 'accessToken';\nexport const ID_TOKEN_STORAGE_KEY = 'idToken';\nexport const REFRESH_TOKEN_STORAGE_KEY = 'refreshToken';\nexport const REFERRER_PATH_STORAGE_KEY = 'referrerPath';\n\n// Code verifier: Random URL-safe string with a minimum length of 43 characters.\n// Code challenge: Base64 URL-encoded SHA-256 hash of the code verifier.\nexport const MIN_VERIFIER_LENGTH = 43;\nexport const MAX_VERIFIER_LENGTH = 128;\nexport const DEFAULT_CODE_CHALLENGE_METHOD = 'S256';\n\nexport const IDX_API_VERSION = '1.0.0';","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport CustomError from './CustomError';\nimport { HttpResponse } from '../http/types';\nimport { APIError, FieldError } from './types';\n\nexport default class AuthApiError extends CustomError implements APIError {\n errorSummary: string;\n errorCode?: string;\n errorLink?: string;\n errorId?: string;\n errorCauses?: Array<FieldError>;\n xhr?: HttpResponse;\n meta?: Record<string, string | number>;\n\n constructor(err: APIError, xhr?: HttpResponse, meta?: Record<string, string | number>) {\n const message = err.errorSummary;\n super(message);\n\n this.name = 'AuthApiError';\n this.errorSummary = err.errorSummary;\n this.errorCode = err.errorCode;\n this.errorLink = err.errorLink;\n this.errorId = err.errorId;\n this.errorCauses = err.errorCauses;\n\n if (xhr) {\n this.xhr = xhr;\n }\n\n if (meta) {\n this.meta = meta;\n }\n }\n}\n","/* eslint-disable camelcase */\n/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport CustomError from './CustomError';\n\nexport default class OAuthError extends CustomError {\n errorCode: string;\n errorSummary: string;\n\n // for widget / idx-js backward compatibility\n error: string;\n error_description: string;\n\n constructor(errorCode: string, summary: string) {\n super(summary);\n\n this.name = 'OAuthError';\n this.errorCode = errorCode;\n this.errorSummary = summary;\n\n // for widget / idx-js backward compatibility\n this.error = errorCode;\n this.error_description = summary;\n }\n}\n\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n *\n */\n\n/* eslint-disable complexity */\nimport { isString, clone, isAbsoluteUrl, removeNils } from '../util';\nimport { STATE_TOKEN_KEY_NAME, DEFAULT_CACHE_DURATION } from '../constants';\nimport {\n OktaAuthHttpInterface,\n RequestOptions,\n FetchOptions,\n RequestData,\n HttpResponse\n} from './types';\nimport { AuthApiError, OAuthError, AuthSdkError, APIError } from '../errors';\n\ntype InsufficientAuthenticationError = {\n error: string;\n // eslint-disable-next-line camelcase\n error_description: string;\n // eslint-disable-next-line camelcase\n max_age: string;\n // eslint-disable-next-line camelcase\n acr_values: string;\n};\n\nconst parseInsufficientAuthenticationError = (\n header: string\n): InsufficientAuthenticationError => {\n if (!header) {\n throw new AuthSdkError('Missing header string');\n }\n\n return header\n .split(',')\n .map(part => part.trim())\n .map(part => part.split('='))\n .reduce((acc, curr) => {\n // unwrap quotes from value\n acc[curr[0]] = curr[1].replace(/^\"(.*)\"$/, '$1');\n return acc;\n }, {}) as InsufficientAuthenticationError;\n};\n\nconst formatError = (sdk: OktaAuthHttpInterface, resp: HttpResponse): AuthApiError | OAuthError => {\n let err: AuthApiError | OAuthError;\n let serverErr: Record<string, any> = {};\n if (resp.responseText && isString(resp.responseText)) {\n try {\n serverErr = JSON.parse(resp.responseText);\n } catch (e) {\n serverErr = {\n errorSummary: 'Unknown error'\n };\n }\n }\n\n if (resp.status >= 500) {\n serverErr.errorSummary = 'Unknown error';\n }\n\n if (sdk.options.transformErrorXHR) {\n resp = sdk.options.transformErrorXHR(clone(resp));\n }\n\n if (serverErr.error && serverErr.error_description) {\n err = new OAuthError(serverErr.error, serverErr.error_description);\n } else {\n err = new AuthApiError(serverErr as APIError, resp);\n }\n\n if (resp?.status === 403 && !!resp?.headers?.['www-authenticate']) {\n const { \n error, \n // eslint-disable-next-line camelcase\n error_description,\n // eslint-disable-next-line camelcase\n max_age,\n // eslint-disable-next-line camelcase\n acr_values \n } = parseInsufficientAuthenticationError(resp?.headers?.['www-authenticate']);\n if (error === 'insufficient_authentication_context') {\n err = new AuthApiError(\n { \n errorSummary: error,\n // eslint-disable-next-line camelcase\n errorCauses: [{ errorSummary: error_description }]\n }, \n resp, \n {\n // eslint-disable-next-line camelcase\n max_age: +max_age,\n // eslint-disable-next-line camelcase\n ...(acr_values && { acr_values })\n }\n );\n }\n }\n\n return err;\n};\n\nexport function httpRequest(sdk: OktaAuthHttpInterface, options: RequestOptions): Promise<any> {\n options = options || {};\n\n if (sdk.options.httpRequestInterceptors) {\n for (const interceptor of sdk.options.httpRequestInterceptors) {\n interceptor(options);\n }\n }\n\n var url = options.url,\n method = options.method,\n args = options.args,\n saveAuthnState = options.saveAuthnState,\n accessToken = options.accessToken,\n withCredentials = options.withCredentials === true, // default value is false\n storageUtil = sdk.options.storageUtil,\n storage = storageUtil!.storage,\n httpCache = sdk.storageManager.getHttpCache(sdk.options.cookies);\n\n if (options.cacheResponse) {\n var cacheContents = httpCache.getStorage();\n var cachedResponse = cacheContents[url as string];\n if (cachedResponse && Date.now()/1000 < cachedResponse.expiresAt) {\n return Promise.resolve(cachedResponse.response);\n }\n }\n\n var oktaUserAgentHeader = sdk._oktaUserAgent.getHttpHeader();\n var headers: HeadersInit = {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json',\n ...oktaUserAgentHeader\n };\n Object.assign(headers, sdk.options.headers, options.headers);\n headers = removeNils(headers) as HeadersInit;\n\n if (accessToken && isString(accessToken)) {\n headers['Authorization'] = 'Bearer ' + accessToken;\n }\n\n var ajaxOptions: FetchOptions = {\n headers,\n data: args || undefined,\n withCredentials\n };\n\n var err, res;\n return sdk.options.httpRequestClient!(method!, url!, ajaxOptions)\n .then(function(resp) {\n res = resp.responseText;\n if (res && isString(res)) {\n res = JSON.parse(res);\n if (res && typeof res === 'object' && !res.headers) {\n if (Array.isArray(res)) {\n res.forEach(item => {\n item.headers = resp.headers;\n });\n } else {\n res.headers = resp.headers;\n }\n }\n }\n\n if (saveAuthnState) {\n if (!res.stateToken) {\n storage.delete(STATE_TOKEN_KEY_NAME);\n }\n }\n\n if (res && res.stateToken && res.expiresAt) {\n storage.set(STATE_TOKEN_KEY_NAME, res.stateToken, res.expiresAt, sdk.options.cookies!);\n }\n\n if (res && options.cacheResponse) {\n httpCache.updateStorage(url!, {\n expiresAt: Math.floor(Date.now()/1000) + DEFAULT_CACHE_DURATION,\n response: res\n });\n }\n \n return res;\n })\n .catch(function(resp) {\n err = formatError(sdk, resp);\n\n if (err.errorCode === 'E0000011') {\n storage.delete(STATE_TOKEN_KEY_NAME);\n }\n\n throw err;\n });\n}\n\nexport function get(sdk: OktaAuthHttpInterface, url: string, options?: RequestOptions) {\n url = isAbsoluteUrl(url) ? url : sdk.getIssuerOrigin() + url;\n var getOptions = {\n url: url,\n method: 'GET'\n };\n Object.assign(getOptions, options);\n return httpRequest(sdk, getOptions);\n}\n\nexport function post(sdk: OktaAuthHttpInterface, url: string, args?: RequestData, options?: RequestOptions) {\n url = isAbsoluteUrl(url) ? url : sdk.getIssuerOrigin() + url;\n var postOptions = {\n url: url,\n method: 'POST',\n args: args,\n saveAuthnState: true\n };\n Object.assign(postOptions, options);\n return httpRequest(sdk, postOptions);\n}\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/*!\n * Copyright (c) 2021, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n/* eslint complexity:[0,8] */\nimport { OktaAuthIdxInterface, IdxTransactionMeta, InteractOptions, InteractResponse } from './types';\nimport { getSavedTransactionMeta, saveTransactionMeta, createTransactionMeta } from './transactionMeta';\nimport { getOAuthBaseUrl } from '../oidc';\nimport { removeNils } from '../util';\nimport { httpRequest } from '../http';\n\n\n/* eslint-disable camelcase */\nexport interface InteractParams {\n client_id: string;\n scope: string;\n redirect_uri: string;\n code_challenge: string;\n code_challenge_method: string;\n state: string;\n activation_token?: string;\n recovery_token?: string;\n client_secret?: string;\n max_age?: string | number;\n acr_values?: string;\n nonce?: string;\n}\n/* eslint-enable camelcase */\n\nfunction getResponse(meta: IdxTransactionMeta): InteractResponse {\n return {\n meta,\n interactionHandle: meta.interactionHandle!,\n state: meta.state\n };\n}\n\n// Begin or resume a transaction. Returns an interaction handle\nexport async function interact (\n authClient: OktaAuthIdxInterface, \n options: InteractOptions = {}\n): Promise<InteractResponse> {\n options = removeNils(options);\n\n let meta = getSavedTransactionMeta(authClient, options);\n // If meta exists, it has been validated against all options\n\n if (meta?.interactionHandle) {\n return getResponse(meta); // Saved transaction, return meta\n }\n\n // Create new meta, respecting previous meta if it has been set and is not overridden\n meta = await createTransactionMeta(authClient, { ...meta, ...options });\n const baseUrl = getOAuthBaseUrl(authClient);\n let {\n clientId,\n redirectUri,\n state,\n scopes,\n withCredentials,\n codeChallenge,\n codeChallengeMethod,\n activationToken,\n recoveryToken,\n maxAge,\n acrValues,\n nonce\n } = meta as IdxTransactionMeta;\n const clientSecret = options.clientSecret || authClient.options.clientSecret;\n withCredentials = withCredentials ?? true;\n\n /* eslint-disable camelcase */\n const url = `${baseUrl}/v1/interact`;\n const params = {\n client_id: clientId,\n scope: scopes!.join(' '),\n redirect_uri: redirectUri,\n code_challenge: codeChallenge,\n code_challenge_method: codeChallengeMethod,\n state,\n ...(activationToken && { activation_token: activationToken }),\n ...(recoveryToken && { recovery_token: recoveryToken }),\n // X-Device-Token header need to pair with `client_secret`\n // eslint-disable-next-line max-len\n // https://oktawiki.atlassian.net/wiki/spaces/eng/pages/2445902453/Support+Device+Binding+in+interact#Scenario-1%3A-Non-User-Agent-with-Confidential-Client-(top-priority)\n ...(clientSecret && { client_secret: clientSecret }),\n ...(maxAge && { max_age: maxAge }),\n ...(acrValues && { acr_values: acrValues }),\n ...(nonce && { nonce }),\n } as InteractParams;\n /* eslint-enable camelcase */\n\n const headers = {\n 'Content-Type': 'application/x-www-form-urlencoded',\n };\n\n const resp = await httpRequest(authClient, {\n method: 'POST',\n url,\n headers,\n withCredentials,\n args: params\n });\n const interactionHandle = resp.interaction_handle;\n\n const newMeta = {\n ...meta,\n interactionHandle,\n \n // Options which can be passed into interact() should be saved in the meta\n withCredentials,\n state,\n scopes,\n recoveryToken,\n activationToken\n };\n // Save transaction meta so it can be resumed\n saveTransactionMeta(authClient, newMeta);\n\n return getResponse(newMeta);\n}\n","/*!\n * Copyright (c) 2021-Present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-nocheck\nconst isFieldMutable = function isFieldMutable(field) {\n // mutable defaults to true, annoyingly\n return ( field.mutable !== false );\n};\n\nconst divideSingleActionParamsByMutability = function divideSingleActionParamsByMutability( action ) {\n const defaultParamsForAction = {}; // mutable and present\n const neededParamsForAction = []; // mutable values\n const immutableParamsForAction = {}; // immutable\n // TODO: remove assumption that form names are unique, neededParams being an array is a temp fix\n // not all actions have value (e.g. redirect)\n // making sure they are not empty and instead hold the remediation object\n if (!action.value) {\n neededParamsForAction.push(action);\n return { defaultParamsForAction, neededParamsForAction, immutableParamsForAction };\n }\n\n for ( let field of action.value ) {\n\n if ( isFieldMutable( field ) ) {\n\n neededParamsForAction.push(field);\n\n if ( field.value ?? false ) {\n defaultParamsForAction[field.name] = field.value;\n }\n\n } else {\n immutableParamsForAction[field.name] = field.value ?? '';\n }\n }\n return { defaultParamsForAction, neededParamsForAction, immutableParamsForAction };\n};\n\nexport const divideActionParamsByMutability = function divideActionParamsByMutability( actionList ) {\n // TODO: when removing form name is unique assumption, this may all be redundant\n actionList = Array.isArray(actionList) ? actionList : [ actionList ];\n const neededParams = [];\n const defaultParams = {};\n const immutableParams = {};\n\n for ( let action of actionList ) {\n const { \n defaultParamsForAction, \n neededParamsForAction, \n immutableParamsForAction \n } = divideSingleActionParamsByMutability(action);\n neededParams.push(neededParamsForAction);\n defaultParams[action.name] = defaultParamsForAction;\n immutableParams[action.name] = immutableParamsForAction;\n }\n\n return { defaultParams, neededParams, immutableParams };\n};\n\n","/*!\n * Copyright (c) 2021-Present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n/* eslint-disable max-len, complexity */\nimport { httpRequest } from '../../../http';\nimport { OktaAuthIdxInterface } from '../../types'; // auth-js/types\nimport { IdxActionFunction, IdxActionParams, IdxResponse, IdxToPersist } from '../../types/idx-js';\nimport { divideActionParamsByMutability } from './actionParser';\nimport AuthApiError from '../../../errors/AuthApiError';\n\nconst generateDirectFetch = function generateDirectFetch(authClient: OktaAuthIdxInterface, { \n actionDefinition, \n defaultParamsForAction = {}, \n immutableParamsForAction = {}, \n toPersist = {} as IdxToPersist\n}): IdxActionFunction {\n const target = actionDefinition.href;\n return async function(params: IdxActionParams = {}): Promise<IdxResponse> {\n const headers = {\n 'Content-Type': 'application/json',\n 'Accept': actionDefinition.accepts || 'application/ion+json',\n };\n const body = JSON.stringify({\n ...defaultParamsForAction,\n ...params,\n ...immutableParamsForAction\n });\n\n try {\n const response = await httpRequest(authClient, {\n url: target,\n method: actionDefinition.method,\n headers,\n args: body,\n withCredentials: toPersist?.withCredentials ?? true\n });\n\n return authClient.idx.makeIdxResponse({ ...response }, toPersist, true);\n }\n catch (err) {\n if (!(err instanceof AuthApiError) || !err?.xhr) {\n throw err;\n }\n\n const response = err.xhr;\n const payload = response.responseJSON || JSON.parse(response.responseText);\n const wwwAuthHeader = response.headers['WWW-Authenticate'] || response.headers['www-authenticate'];\n\n const idxResponse = authClient.idx.makeIdxResponse({ ...payload }, toPersist, false);\n if (response.status === 401 && wwwAuthHeader === 'Oktadevicejwt realm=\"Okta Device\"') {\n // Okta server responds 401 status code with WWW-Authenticate header and new remediation\n // so that the iOS/MacOS credential SSO extension (Okta Verify) can intercept\n // the response reaches here when Okta Verify is not installed\n // set `stepUp` to true if flow should be continued without showing any errors\n idxResponse.stepUp = true;\n }\n\n return idxResponse;\n }\n };\n};\n\n// TODO: Resolve in M2: Either build the final polling solution or remove this code\n// const generatePollingFetch = function generatePollingFetch( { actionDefinition, defaultParamsForAction = {}, immutableParamsForAction = {} } ) {\n// // TODO: Discussions ongoing about when/how to terminate polling: OKTA-246581\n// const target = actionDefinition.href;\n// return async function(params) {\n// return fetch(target, {\n// method: actionDefinition.method,\n// headers: {\n// 'content-type': actionDefinition.accepts,\n// },\n// body: JSON.stringify({ ...defaultParamsForAction, ...params, ...immutableParamsForAction })\n// })\n// .then( response => response.ok ? response.json() : response.json().then( err => Promise.reject(err)) )\n// .then( idxResponse => makeIdxState(authClient, idxResponse) );\n// };\n// };\n\nconst generateIdxAction = function generateIdxAction( authClient: OktaAuthIdxInterface, actionDefinition, toPersist ): IdxActionFunction {\n // TODO: leaving this here to see where the polling is EXPECTED to drop into the code, but removing any accidental trigger of incomplete code\n // const generator = actionDefinition.refresh ? generatePollingFetch : generateDirectFetch;\n const generator = generateDirectFetch;\n const { defaultParams, neededParams, immutableParams } = divideActionParamsByMutability( actionDefinition );\n\n const action = generator(authClient, {\n actionDefinition,\n defaultParamsForAction: defaultParams[actionDefinition.name],\n immutableParamsForAction: immutableParams[actionDefinition.name],\n toPersist\n });\n action.neededParams = neededParams;\n return action;\n};\n\nexport default generateIdxAction;\n","/*!\n * Copyright (c) 2021-Present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-nocheck\nimport { OktaAuthIdxInterface } from '../../types'; // auth-js/types\nimport generateIdxAction from './generateIdxAction';\n\nexport const generateRemediationFunctions = function generateRemediationFunctions(\n authClient: OktaAuthIdxInterface,\n remediationValue,\n toPersist = {}\n) {\n return Object.fromEntries( remediationValue.map( remediation => {\n return [\n remediation.name,\n generateIdxAction(authClient, remediation, toPersist),\n ];\n }) );\n};\n","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nfunction _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function () {};\n\n return {\n s: F,\n n: function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function (e) {\n throw e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function () {\n it = it.call(o);\n },\n n: function () {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function (e) {\n didErr = true;\n err = e;\n },\n f: function () {\n try {\n if (!normalCompletion && it.return != null) it.return();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}\n\nvar hasOwnProp = Object.prototype.hasOwnProperty;\n/**\n* @typedef {null|boolean|number|string|PlainObject|GenericArray} JSONObject\n*/\n\n/**\n * Copies array and then pushes item into it.\n * @param {GenericArray} arr Array to copy and into which to push\n * @param {any} item Array item to add (to end)\n * @returns {GenericArray} Copy of the original array\n */\n\nfunction push(arr, item) {\n arr = arr.slice();\n arr.push(item);\n return arr;\n}\n/**\n * Copies array and then unshifts item into it.\n * @param {any} item Array item to add (to beginning)\n * @param {GenericArray} arr Array to copy and into which to unshift\n * @returns {GenericArray} Copy of the original array\n */\n\n\nfunction unshift(item, arr) {\n arr = arr.slice();\n arr.unshift(item);\n return arr;\n}\n/**\n * Caught when JSONPath is used without `new` but rethrown if with `new`\n * @extends Error\n */\n\n\nvar NewError = /*#__PURE__*/function (_Error) {\n _inherits(NewError, _Error);\n\n var _super = _createSuper(NewError);\n\n /**\n * @param {any} value The evaluated scalar value\n */\n function NewError(value) {\n var _this;\n\n _classCallCheck(this, NewError);\n\n _this = _super.call(this, 'JSONPath should not be called with \"new\" (it prevents return ' + 'of (unwrapped) scalar values)');\n _this.avoidNew = true;\n _this.value = value;\n _this.name = 'NewError';\n return _this;\n }\n\n return NewError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n/**\n* @typedef {PlainObject} ReturnObject\n* @property {string} path\n* @property {JSONObject} value\n* @property {PlainObject|GenericArray} parent\n* @property {string} parentProperty\n*/\n\n/**\n* @callback JSONPathCallback\n* @param {string|PlainObject} preferredOutput\n* @param {\"value\"|\"property\"} type\n* @param {ReturnObject} fullRetObj\n* @returns {void}\n*/\n\n/**\n* @callback OtherTypeCallback\n* @param {JSONObject} val\n* @param {string} path\n* @param {PlainObject|GenericArray} parent\n* @param {string} parentPropName\n* @returns {boolean}\n*/\n\n/* eslint-disable max-len -- Can make multiline type after https://github.com/syavorsky/comment-parser/issues/109 */\n\n/**\n * @typedef {PlainObject} JSONPathOptions\n * @property {JSON} json\n * @property {string|string[]} path\n * @property {\"value\"|\"path\"|\"pointer\"|\"parent\"|\"parentProperty\"|\"all\"} [resultType=\"value\"]\n * @property {boolean} [flatten=false]\n * @property {boolean} [wrap=true]\n * @property {PlainObject} [sandbox={}]\n * @property {boolean} [preventEval=false]\n * @property {PlainObject|GenericArray|null} [parent=null]\n * @property {string|null} [parentProperty=null]\n * @property {JSONPathCallback} [callback]\n * @property {OtherTypeCallback} [otherTypeCallback] Defaults to\n * function which throws on encountering `@other`\n * @property {boolean} [autostart=true]\n */\n\n/* eslint-enable max-len -- Can make multiline type after https://github.com/syavorsky/comment-parser/issues/109 */\n\n/**\n * @param {string|JSONPathOptions} opts If a string, will be treated as `expr`\n * @param {string} [expr] JSON path to evaluate\n * @param {JSON} [obj] JSON object to evaluate against\n * @param {JSONPathCallback} [callback] Passed 3 arguments: 1) desired payload\n * per `resultType`, 2) `\"value\"|\"property\"`, 3) Full returned object with\n * all payloads\n * @param {OtherTypeCallback} [otherTypeCallback] If `@other()` is at the end\n * of one's query, this will be invoked with the value of the item, its\n * path, its parent, and its parent's property name, and it should return\n * a boolean indicating whether the supplied value belongs to the \"other\"\n * type or not (or it may handle transformations and return `false`).\n * @returns {JSONPath}\n * @class\n */\n\n\nfunction JSONPath(opts, expr, obj, callback, otherTypeCallback) {\n // eslint-disable-next-line no-restricted-syntax\n if (!(this instanceof JSONPath)) {\n try {\n return new JSONPath(opts, expr, obj, callback, otherTypeCallback);\n } catch (e) {\n if (!e.avoidNew) {\n throw e;\n }\n\n return e.value;\n }\n }\n\n if (typeof opts === 'string') {\n otherTypeCallback = callback;\n callback = obj;\n obj = expr;\n expr = opts;\n opts = null;\n }\n\n var optObj = opts && _typeof(opts) === 'object';\n opts = opts || {};\n this.json = opts.json || obj;\n this.path = opts.path || expr;\n this.resultType = opts.resultType || 'value';\n this.flatten = opts.flatten || false;\n this.wrap = hasOwnProp.call(opts, 'wrap') ? opts.wrap : true;\n this.sandbox = opts.sandbox || {};\n this.preventEval = opts.preventEval || false;\n this.parent = opts.parent || null;\n this.parentProperty = opts.parentProperty || null;\n this.callback = opts.callback || callback || null;\n\n this.otherTypeCallback = opts.otherTypeCallback || otherTypeCallback || function () {\n throw new TypeError('You must supply an otherTypeCallback callback option ' + 'with the @other() operator.');\n };\n\n if (opts.autostart !== false) {\n var args = {\n path: optObj ? opts.path : expr\n };\n\n if (!optObj) {\n args.json = obj;\n } else if ('json' in opts) {\n args.json = opts.json;\n }\n\n var ret = this.evaluate(args);\n\n if (!ret || _typeof(ret) !== 'object') {\n throw new NewError(ret);\n }\n\n return ret;\n }\n} // PUBLIC METHODS\n\n\nJSONPath.prototype.evaluate = function (expr, json, callback, otherTypeCallback) {\n var _this2 = this;\n\n var currParent = this.parent,\n currParentProperty = this.parentProperty;\n var flatten = this.flatten,\n wrap = this.wrap;\n this.currResultType = this.resultType;\n this.currPreventEval = this.preventEval;\n this.currSandbox = this.sandbox;\n callback = callback || this.callback;\n this.currOtherTypeCallback = otherTypeCallback || this.otherTypeCallback;\n json = json || this.json;\n expr = expr || this.path;\n\n if (expr && _typeof(expr) === 'object' && !Array.isArray(expr)) {\n if (!expr.path && expr.path !== '') {\n throw new TypeError('You must supply a \"path\" property when providing an object ' + 'argument to JSONPath.evaluate().');\n }\n\n if (!hasOwnProp.call(expr, 'json')) {\n throw new TypeError('You must supply a \"json\" property when providing an object ' + 'argument to JSONPath.evaluate().');\n }\n\n var _expr = expr;\n json = _expr.json;\n flatten = hasOwnProp.call(expr, 'flatten') ? expr.flatten : flatten;\n this.currResultType = hasOwnProp.call(expr, 'resultType') ? expr.resultType : this.currResultType;\n this.currSandbox = hasOwnProp.call(expr, 'sandbox') ? expr.sandbox : this.currSandbox;\n wrap = hasOwnProp.call(expr, 'wrap') ? expr.wrap : wrap;\n this.currPreventEval = hasOwnProp.call(expr, 'preventEval') ? expr.preventEval : this.currPreventEval;\n callback = hasOwnProp.call(expr, 'callback') ? expr.callback : callback;\n this.currOtherTypeCallback = hasOwnProp.call(expr, 'otherTypeCallback') ? expr.otherTypeCallback : this.currOtherTypeCallback;\n currParent = hasOwnProp.call(expr, 'parent') ? expr.parent : currParent;\n currParentProperty = hasOwnProp.call(expr, 'parentProperty') ? expr.parentProperty : currParentProperty;\n expr = expr.path;\n }\n\n currParent = currParent || null;\n currParentProperty = currParentProperty || null;\n\n if (Array.isArray(expr)) {\n expr = JSONPath.toPathString(expr);\n }\n\n if (!expr && expr !== '' || !json) {\n return undefined;\n }\n\n var exprList = JSONPath.toPathArray(expr);\n\n if (exprList[0] === '$' && exprList.length > 1) {\n exprList.shift();\n }\n\n this._hasParentSelector = null;\n\n var result = this._trace(exprList, json, ['$'], currParent, currParentProperty, callback).filter(function (ea) {\n return ea && !ea.isParentSelector;\n });\n\n if (!result.length) {\n return wrap ? [] : undefined;\n }\n\n if (!wrap && result.length === 1 && !result[0].hasArrExpr) {\n return this._getPreferredOutput(result[0]);\n }\n\n return result.reduce(function (rslt, ea) {\n var valOrPath = _this2._getPreferredOutput(ea);\n\n if (flatten && Array.isArray(valOrPath)) {\n rslt = rslt.concat(valOrPath);\n } else {\n rslt.push(valOrPath);\n }\n\n return rslt;\n }, []);\n}; // PRIVATE METHODS\n\n\nJSONPath.prototype._getPreferredOutput = function (ea) {\n var resultType = this.currResultType;\n\n switch (resultType) {\n case 'all':\n {\n var path = Array.isArray(ea.path) ? ea.path : JSONPath.toPathArray(ea.path);\n ea.pointer = JSONPath.toPointer(path);\n ea.path = typeof ea.path === 'string' ? ea.path : JSONPath.toPathString(ea.path);\n return ea;\n }\n\n case 'value':\n case 'parent':\n case 'parentProperty':\n return ea[resultType];\n\n case 'path':\n return JSONPath.toPathString(ea[resultType]);\n\n case 'pointer':\n return JSONPath.toPointer(ea.path);\n\n default:\n throw new TypeError('Unknown result type');\n }\n};\n\nJSONPath.prototype._handleCallback = function (fullRetObj, callback, type) {\n if (callback) {\n var preferredOutput = this._getPreferredOutput(fullRetObj);\n\n fullRetObj.path = typeof fullRetObj.path === 'string' ? fullRetObj.path : JSONPath.toPathString(fullRetObj.path); // eslint-disable-next-line node/callback-return\n\n callback(preferredOutput, type, fullRetObj);\n }\n};\n/**\n *\n * @param {string} expr\n * @param {JSONObject} val\n * @param {string} path\n * @param {PlainObject|GenericArray} parent\n * @param {string} parentPropName\n * @param {JSONPathCallback} callback\n * @param {boolean} hasArrExpr\n * @param {boolean} literalPriority\n * @returns {ReturnObject|ReturnObject[]}\n */\n\n\nJSONPath.prototype._trace = function (expr, val, path, parent, parentPropName, callback, hasArrExpr, literalPriority) {\n var _this3 = this;\n\n // No expr to follow? return path and value as the result of\n // this trace branch\n var retObj;\n\n if (!expr.length) {\n retObj = {\n path: path,\n value: val,\n parent: parent,\n parentProperty: parentPropName,\n hasArrExpr: hasArrExpr\n };\n\n this._handleCallback(retObj, callback, 'value');\n\n return retObj;\n }\n\n var loc = expr[0],\n x = expr.slice(1); // We need to gather the return value of recursive trace calls in order to\n // do the parent sel computation.\n\n var ret = [];\n /**\n *\n * @param {ReturnObject|ReturnObject[]} elems\n * @returns {void}\n */\n\n function addRet(elems) {\n if (Array.isArray(elems)) {\n // This was causing excessive stack size in Node (with or\n // without Babel) against our performance test:\n // `ret.push(...elems);`\n elems.forEach(function (t) {\n ret.push(t);\n });\n } else {\n ret.push(elems);\n }\n }\n\n if ((typeof loc !== 'string' || literalPriority) && val && hasOwnProp.call(val, loc)) {\n // simple case--directly follow property\n addRet(this._trace(x, val[loc], push(path, loc), val, loc, callback, hasArrExpr)); // eslint-disable-next-line unicorn/prefer-switch -- Part of larger `if`\n } else if (loc === '*') {\n // all child properties\n this._walk(loc, x, val, path, parent, parentPropName, callback, function (m, l, _x, v, p, par, pr, cb) {\n addRet(_this3._trace(unshift(m, _x), v, p, par, pr, cb, true, true));\n });\n } else if (loc === '..') {\n // all descendent parent properties\n // Check remaining expression with val's immediate children\n addRet(this._trace(x, val, path, parent, parentPropName, callback, hasArrExpr));\n\n this._walk(loc, x, val, path, parent, parentPropName, callback, function (m, l, _x, v, p, par, pr, cb) {\n // We don't join m and x here because we only want parents,\n // not scalar values\n if (_typeof(v[m]) === 'object') {\n // Keep going with recursive descent on val's\n // object children\n addRet(_this3._trace(unshift(l, _x), v[m], push(p, m), v, m, cb, true));\n }\n }); // The parent sel computation is handled in the frame above using the\n // ancestor object of val\n\n } else if (loc === '^') {\n // This is not a final endpoint, so we do not invoke the callback here\n this._hasParentSelector = true;\n return {\n path: path.slice(0, -1),\n expr: x,\n isParentSelector: true\n };\n } else if (loc === '~') {\n // property name\n retObj = {\n path: push(path, loc),\n value: parentPropName,\n parent: parent,\n parentProperty: null\n };\n\n this._handleCallback(retObj, callback, 'property');\n\n return retObj;\n } else if (loc === '$') {\n // root only\n addRet(this._trace(x, val, path, null, null, callback, hasArrExpr));\n } else if (/^(\\x2D?[0-9]*):(\\x2D?[0-9]*):?([0-9]*)$/.test(loc)) {\n // [start:end:step] Python slice syntax\n addRet(this._slice(loc, x, val, path, parent, parentPropName, callback));\n } else if (loc.indexOf('?(') === 0) {\n // [?(expr)] (filtering)\n if (this.currPreventEval) {\n throw new Error('Eval [?(expr)] prevented in JSONPath expression.');\n }\n\n this._walk(loc, x, val, path, parent, parentPropName, callback, function (m, l, _x, v, p, par, pr, cb) {\n if (_this3._eval(l.replace(/^\\?\\(((?:[\\0-\\t\\x0B\\f\\x0E-\\u2027\\u202A-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*?)\\)$/, '$1'), v[m], m, p, par, pr)) {\n addRet(_this3._trace(unshift(m, _x), v, p, par, pr, cb, true));\n }\n });\n } else if (loc[0] === '(') {\n // [(expr)] (dynamic property/index)\n if (this.currPreventEval) {\n throw new Error('Eval [(expr)] prevented in JSONPath expression.');\n } // As this will resolve to a property name (but we don't know it\n // yet), property and parent information is relative to the\n // parent of the property to which this expression will resolve\n\n\n addRet(this._trace(unshift(this._eval(loc, val, path[path.length - 1], path.slice(0, -1), parent, parentPropName), x), val, path, parent, parentPropName, callback, hasArrExpr));\n } else if (loc[0] === '@') {\n // value type: @boolean(), etc.\n var addType = false;\n var valueType = loc.slice(1, -2);\n\n switch (valueType) {\n case 'scalar':\n if (!val || !['object', 'function'].includes(_typeof(val))) {\n addType = true;\n }\n\n break;\n\n case 'boolean':\n case 'string':\n case 'undefined':\n case 'function':\n // eslint-disable-next-line valid-typeof\n if (_typeof(val) === valueType) {\n addType = true;\n }\n\n break;\n\n case 'integer':\n if (Number.isFinite(val) && !(val % 1)) {\n addType = true;\n }\n\n break;\n\n case 'number':\n if (Number.isFinite(val)) {\n addType = true;\n }\n\n break;\n\n case 'nonFinite':\n if (typeof val === 'number' && !Number.isFinite(val)) {\n addType = true;\n }\n\n break;\n\n case 'object':\n // eslint-disable-next-line valid-typeof\n if (val && _typeof(val) === valueType) {\n addType = true;\n }\n\n break;\n\n case 'array':\n if (Array.isArray(val)) {\n addType = true;\n }\n\n break;\n\n case 'other':\n addType = this.currOtherTypeCallback(val, path, parent, parentPropName);\n break;\n\n case 'null':\n if (val === null) {\n addType = true;\n }\n\n break;\n\n /* c8 ignore next 2 */\n\n default:\n throw new TypeError('Unknown value type ' + valueType);\n }\n\n if (addType) {\n retObj = {\n path: path,\n value: val,\n parent: parent,\n parentProperty: parentPropName\n };\n\n this._handleCallback(retObj, callback, 'value');\n\n return retObj;\n } // `-escaped property\n\n } else if (loc[0] === '`' && val && hasOwnProp.call(val, loc.slice(1))) {\n var locProp = loc.slice(1);\n addRet(this._trace(x, val[locProp], push(path, locProp), val, locProp, callback, hasArrExpr, true));\n } else if (loc.includes(',')) {\n // [name1,name2,...]\n var parts = loc.split(',');\n\n var _iterator = _createForOfIteratorHelper(parts),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var part = _step.value;\n addRet(this._trace(unshift(part, x), val, path, parent, parentPropName, callback, true));\n } // simple case--directly follow property\n\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n } else if (!literalPriority && val && hasOwnProp.call(val, loc)) {\n addRet(this._trace(x, val[loc], push(path, loc), val, loc, callback, hasArrExpr, true));\n } // We check the resulting values for parent selections. For parent\n // selections we discard the value object and continue the trace with the\n // current val object\n\n\n if (this._hasParentSelector) {\n for (var t = 0; t < ret.length; t++) {\n var rett = ret[t];\n\n if (rett && rett.isParentSelector) {\n var tmp = this._trace(rett.expr, val, rett.path, parent, parentPropName, callback, hasArrExpr);\n\n if (Array.isArray(tmp)) {\n ret[t] = tmp[0];\n var tl = tmp.length;\n\n for (var tt = 1; tt < tl; tt++) {\n t++;\n ret.splice(t, 0, tmp[tt]);\n }\n } else {\n ret[t] = tmp;\n }\n }\n }\n }\n\n return ret;\n};\n\nJSONPath.prototype._walk = function (loc, expr, val, path, parent, parentPropName, callback, f) {\n if (Array.isArray(val)) {\n var n = val.length;\n\n for (var i = 0; i < n; i++) {\n f(i, loc, expr, val, path, parent, parentPropName, callback);\n }\n } else if (val && _typeof(val) === 'object') {\n Object.keys(val).forEach(function (m) {\n f(m, loc, expr, val, path, parent, parentPropName, callback);\n });\n }\n};\n\nJSONPath.prototype._slice = function (loc, expr, val, path, parent, parentPropName, callback) {\n if (!Array.isArray(val)) {\n return undefined;\n }\n\n var len = val.length,\n parts = loc.split(':'),\n step = parts[2] && Number.parseInt(parts[2]) || 1;\n var start = parts[0] && Number.parseInt(parts[0]) || 0,\n end = parts[1] && Number.parseInt(parts[1]) || len;\n start = start < 0 ? Math.max(0, start + len) : Math.min(len, start);\n end = end < 0 ? Math.max(0, end + len) : Math.min(len, end);\n var ret = [];\n\n for (var i = start; i < end; i += step) {\n var tmp = this._trace(unshift(i, expr), val, path, parent, parentPropName, callback, true); // Should only be possible to be an array here since first part of\n // ``unshift(i, expr)` passed in above would not be empty, nor `~`,\n // nor begin with `@` (as could return objects)\n // This was causing excessive stack size in Node (with or\n // without Babel) against our performance test: `ret.push(...tmp);`\n\n\n tmp.forEach(function (t) {\n ret.push(t);\n });\n }\n\n return ret;\n};\n\nJSONPath.prototype._eval = function (code, _v, _vname, path, parent, parentPropName) {\n if (code.includes('@parentProperty')) {\n this.currSandbox._$_parentProperty = parentPropName;\n code = code.replace(/@parentProperty/g, '_$_parentProperty');\n }\n\n if (code.includes('@parent')) {\n this.currSandbox._$_parent = parent;\n code = code.replace(/@parent/g, '_$_parent');\n }\n\n if (code.includes('@property')) {\n this.currSandbox._$_property = _vname;\n code = code.replace(/@property/g, '_$_property');\n }\n\n if (code.includes('@path')) {\n this.currSandbox._$_path = JSONPath.toPathString(path.concat([_vname]));\n code = code.replace(/@path/g, '_$_path');\n }\n\n if (code.includes('@root')) {\n this.currSandbox._$_root = this.json;\n code = code.replace(/@root/g, '_$_root');\n }\n\n if (/@([\\t-\\r \\)\\.\\[\\xA0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000\\uFEFF])/.test(code)) {\n this.currSandbox._$_v = _v;\n code = code.replace(/@([\\t-\\r \\)\\.\\[\\xA0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000\\uFEFF])/g, '_$_v$1');\n }\n\n try {\n return this.vm.runInNewContext(code, this.currSandbox);\n } catch (e) {\n // eslint-disable-next-line no-console\n console.log(e);\n throw new Error('jsonPath: ' + e.message + ': ' + code);\n }\n}; // PUBLIC CLASS PROPERTIES AND METHODS\n// Could store the cache object itself\n\n\nJSONPath.cache = {};\n/**\n * @param {string[]} pathArr Array to convert\n * @returns {string} The path string\n */\n\nJSONPath.toPathString = function (pathArr) {\n var x = pathArr,\n n = x.length;\n var p = '$';\n\n for (var i = 1; i < n; i++) {\n if (!/^(~|\\^|@(?:[\\0-\\t\\x0B\\f\\x0E-\\u2027\\u202A-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*?\\(\\))$/.test(x[i])) {\n p += /^[\\*0-9]+$/.test(x[i]) ? '[' + x[i] + ']' : \"['\" + x[i] + \"']\";\n }\n }\n\n return p;\n};\n/**\n * @param {string} pointer JSON Path\n * @returns {string} JSON Pointer\n */\n\n\nJSONPath.toPointer = function (pointer) {\n var x = pointer,\n n = x.length;\n var p = '';\n\n for (var i = 1; i < n; i++) {\n if (!/^(~|\\^|@(?:[\\0-\\t\\x0B\\f\\x0E-\\u2027\\u202A-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*?\\(\\))$/.test(x[i])) {\n p += '/' + x[i].toString().replace(/~/g, '~0').replace(/\\//g, '~1');\n }\n }\n\n return p;\n};\n/**\n * @param {string} expr Expression to convert\n * @returns {string[]}\n */\n\n\nJSONPath.toPathArray = function (expr) {\n var cache = JSONPath.cache;\n\n if (cache[expr]) {\n return cache[expr].concat();\n }\n\n var subx = [];\n var normalized = expr // Properties\n .replace(/@(?:null|boolean|number|string|integer|undefined|nonFinite|scalar|array|object|function|other)\\(\\)/g, ';$&;') // Parenthetical evaluations (filtering and otherwise), directly\n // within brackets or single quotes\n .replace(/['\\[](\\??\\((?:[\\0-\\t\\x0B\\f\\x0E-\\u2027\\u202A-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*?\\))['\\]]/g, function ($0, $1) {\n return '[#' + (subx.push($1) - 1) + ']';\n }) // Escape periods and tildes within properties\n .replace(/\\[[\"']((?:(?!['\\]])[\\s\\S])*)[\"']\\]/g, function ($0, prop) {\n return \"['\" + prop.replace(/\\./g, '%@%').replace(/~/g, '%%@@%%') + \"']\";\n }) // Properties operator\n .replace(/~/g, ';~;') // Split by property boundaries\n .replace(/[\"']?\\.[\"']?(?!(?:(?!\\[)[\\s\\S])*\\])|\\[[\"']?/g, ';') // Reinsert periods within properties\n .replace(/%@%/g, '.') // Reinsert tildes within properties\n .replace(/%%@@%%/g, '~') // Parent\n .replace(/(?:;)?(\\^+)(?:;)?/g, function ($0, ups) {\n return ';' + ups.split('').join(';') + ';';\n }) // Descendents\n .replace(/;;;|;;/g, ';..;') // Remove trailing\n .replace(/;$|'?\\]|'$/g, '');\n var exprList = normalized.split(';').map(function (exp) {\n var match = exp.match(/#([0-9]+)/);\n return !match || !match[1] ? exp : subx[match[1]];\n });\n cache[expr] = exprList;\n return cache[expr].concat();\n};\n\n/**\n* @callback ConditionCallback\n* @param {any} item\n* @returns {boolean}\n*/\n\n/**\n * Copy items out of one array into another.\n * @param {GenericArray} source Array with items to copy\n * @param {GenericArray} target Array to which to copy\n * @param {ConditionCallback} conditionCb Callback passed the current item;\n * will move item if evaluates to `true`\n * @returns {void}\n */\n\nvar moveToAnotherArray = function moveToAnotherArray(source, target, conditionCb) {\n var il = source.length;\n\n for (var i = 0; i < il; i++) {\n var item = source[i];\n\n if (conditionCb(item)) {\n target.push(source.splice(i--, 1)[0]);\n }\n }\n};\n\nJSONPath.prototype.vm = {\n /**\n * @param {string} expr Expression to evaluate\n * @param {PlainObject} context Object whose items will be added\n * to evaluation\n * @returns {any} Result of evaluated code\n */\n runInNewContext: function runInNewContext(expr, context) {\n var keys = Object.keys(context);\n var funcs = [];\n moveToAnotherArray(keys, funcs, function (key) {\n return typeof context[key] === 'function';\n });\n var values = keys.map(function (vr, i) {\n return context[vr];\n });\n var funcString = funcs.reduce(function (s, func) {\n var fString = context[func].toString();\n\n if (!/function/.test(fString)) {\n fString = 'function ' + fString;\n }\n\n return 'var ' + func + '=' + fString + ';' + s;\n }, '');\n expr = funcString + expr; // Mitigate http://perfectionkills.com/global-eval-what-are-the-options/#new_function\n\n if (!/([\"'])use strict\\1/.test(expr) && !keys.includes('arguments')) {\n expr = 'var arguments = undefined;' + expr;\n } // Remove last semi so `return` will be inserted before\n // the previous one instead, allowing for the return\n // of a bare ending expression\n\n\n expr = expr.replace(/;[\\t-\\r \\xA0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000\\uFEFF]*$/, ''); // Insert `return`\n\n var lastStatementEnd = expr.lastIndexOf(';');\n var code = lastStatementEnd > -1 ? expr.slice(0, lastStatementEnd + 1) + ' return ' + expr.slice(lastStatementEnd + 1) : ' return ' + expr; // eslint-disable-next-line no-new-func\n\n return _construct(Function, _toConsumableArray(keys).concat([code])).apply(void 0, _toConsumableArray(values));\n }\n};\n\nexport { JSONPath };\n","import { JSONPath, JSONPathOptions } from 'jsonpath-plus';\n\nexport function jsonpath(options: JSONPathOptions): any {\n // eslint-disable-next-line new-cap\n return JSONPath({\n // Disable javascript evaluation by default\n\tpreventEval: true, ...options, });\n}\n","/*!\n * Copyright (c) 2021-Present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n/* eslint-disable max-len */\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-nocheck\nimport { OktaAuthIdxInterface } from '../../types'; // auth-js/types\nimport { generateRemediationFunctions } from './remediationParser';\nimport generateIdxAction from './generateIdxAction';\nimport { jsonpath } from '../../../util/jsonpath';\n\nconst SKIP_FIELDS = Object.fromEntries([\n 'remediation', // remediations are put into proceed/neededToProceed\n 'context', // the API response of 'context' isn't externally useful. We ignore it and put all non-action (contextual) info into idxState.context\n].map( (field) => [ field, !!'skip this field' ] ));\n\nexport const parseNonRemediations = function parseNonRemediations( authClient: OktaAuthIdxInterface, idxResponse, toPersist = {} ) {\n const actions = {};\n const context = {};\n\n Object.keys(idxResponse)\n .filter( field => !SKIP_FIELDS[field])\n .forEach( field => {\n const fieldIsObject = typeof idxResponse[field] === 'object' && !!idxResponse[field];\n\n if ( !fieldIsObject ) {\n // simple fields are contextual info\n context[field] = idxResponse[field];\n return;\n }\n\n if ( idxResponse[field].rel ) {\n // top level actions\n actions[idxResponse[field].name] = generateIdxAction(authClient, idxResponse[field], toPersist);\n return;\n }\n\n const { value: fieldValue, type, ...info} = idxResponse[field];\n context[field] = { type, ...info}; // add the non-action parts as context\n\n if ( type !== 'object' ) {\n // only object values hold actions\n context[field].value = fieldValue;\n return;\n }\n\n // We are an object field containing an object value\n context[field].value = {};\n Object.entries(fieldValue)\n .forEach( ([subField, value]) => {\n if (value.rel) { // is [field].value[subField] an action?\n // add any \"action\" value subfields to actions\n actions[`${field}-${subField.name || subField}`] = generateIdxAction(authClient, value, toPersist);\n } else {\n // add non-action value subfields to context\n context[field].value[subField] = value;\n }\n });\n });\n\n return { context, actions };\n};\n\nconst expandRelatesTo = (idxResponse, value) => {\n Object.keys(value).forEach(k => {\n if (k === 'relatesTo') {\n const query = Array.isArray(value[k]) ? value[k][0] : value[k];\n if (typeof query === 'string') {\n const result = jsonpath({ path: query, json: idxResponse })[0];\n if (result) {\n value[k] = result;\n return;\n }\n }\n }\n if (Array.isArray(value[k])) {\n value[k].forEach(innerValue => expandRelatesTo(idxResponse, innerValue));\n }\n });\n};\n\nconst convertRemediationAction = (authClient: OktaAuthIdxInterface, remediation, toPersist) => {\n // Only remediation that has `rel` field (indicator for form submission) can have http action\n if (remediation.rel) {\n const remediationActions = generateRemediationFunctions( authClient, [remediation], toPersist );\n const actionFn = remediationActions[remediation.name];\n return {\n ...remediation,\n action: actionFn,\n };\n }\n\n return remediation;\n};\n\nexport const parseIdxResponse = function parseIdxResponse( authClient: OktaAuthIdxInterface, idxResponse, toPersist = {} ): {\n remediations: IdxRemediation[];\n context: IdxContext;\n actions: IdxActions;\n} {\n const remediationData = idxResponse.remediation?.value || [];\n\n remediationData.forEach(\n remediation => expandRelatesTo(idxResponse, remediation)\n );\n\n const remediations = remediationData.map(remediation => convertRemediationAction( authClient, remediation, toPersist ));\n\n const { context, actions } = parseNonRemediations( authClient, idxResponse, toPersist );\n\n return {\n remediations,\n context,\n actions,\n };\n};\n","/*!\n * Copyright (c) 2021-Present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { IdxResponse, IdxToPersist } from '../../types/idx-js';\nimport { OktaAuthIdxInterface, RawIdxResponse } from '../../types'; // auth-js/types\nimport { parseIdxResponse } from './idxResponseParser';\n\nexport function makeIdxState( \n authClient: OktaAuthIdxInterface,\n idxResponse: RawIdxResponse,\n toPersist: IdxToPersist,\n requestDidSucceed: boolean\n): IdxResponse {\n const rawIdxResponse = idxResponse;\n const { remediations, context, actions } = parseIdxResponse( authClient, idxResponse, toPersist );\n const neededToProceed = [...remediations];\n\n const proceed: IdxResponse['proceed'] = async function( remediationChoice, paramsFromUser = {} ) {\n /*\n remediationChoice is the name attribute on each form\n name should remain unique for items inside the remediation that are considered forms(identify, select-factor)\n name can be duplicate for items like redirect where its not considered a form(redirect)\n when names are not unique its a redirect to a href, so widget wont POST to idx-js layer.\n */\n const remediationChoiceObject = remediations.find((remediation) => remediation.name === remediationChoice);\n if ( !remediationChoiceObject ) {\n return Promise.reject(`Unknown remediation choice: [${remediationChoice}]`);\n }\n\n const actionFn = remediationChoiceObject.action;\n if (typeof actionFn !== 'function') {\n return Promise.reject(`Current remediation cannot make form submit action: [${remediationChoice}]`);\n }\n\n return remediationChoiceObject.action(paramsFromUser);\n };\n\n const findCode = item => item.name === 'interaction_code';\n const interactionCode = rawIdxResponse.successWithInteractionCode?.value?.find( findCode )?.value as string;\n\n return {\n proceed,\n neededToProceed,\n actions,\n context,\n rawIdxState: rawIdxResponse,\n interactionCode,\n toPersist,\n requestDidSucceed,\n };\n}\n","/*!\n * Copyright (c) 2021-Present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-nocheck\nimport { makeIdxState } from './makeIdxState';\n\nexport default {\n makeIdxState,\n};\n","import { OktaAuthIdxInterface } from '../types'; // auth-js/types\nimport { IdxResponse, IdxToPersist, RawIdxResponse } from '../types/idx-js'; // idx/types\nimport { IDX_API_VERSION } from '../../constants';\nimport v1 from './v1/parsers';\n\n\nexport const parsersForVersion = function parsersForVersion( version ) {\n switch (version) {\n case '1.0.0':\n return v1;\n case undefined:\n case null:\n throw new Error('Api version is required');\n default:\n throw new Error(`Unknown api version: ${version}. Use an exact semver version.`);\n }\n};\n\nexport function validateVersionConfig(version) {\n if ( !version ) {\n throw new Error('version is required');\n }\n\n const cleanVersion = (version ?? '').replace(/[^0-9a-zA-Z._-]/, '');\n if ( cleanVersion !== version || !version ) {\n throw new Error('invalid version supplied - version is required and uses semver syntax');\n }\n\n parsersForVersion(version); // will throw for invalid version\n}\n\nexport function makeIdxState ( \n authClient: OktaAuthIdxInterface,\n rawIdxResponse: RawIdxResponse,\n toPersist: IdxToPersist,\n requestDidSucceed: boolean,\n): IdxResponse {\n const version = rawIdxResponse?.version ?? IDX_API_VERSION;\n validateVersionConfig(version);\n \n const { makeIdxState } = parsersForVersion(version);\n return makeIdxState(authClient, rawIdxResponse, toPersist, requestDidSucceed);\n}\n","/* eslint-disable no-use-before-define */\n/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { Input } from './api';\n\n\n// TODO: remove when idx-js provides type information\n\nexport interface ChallengeData {\n challenge: string; \n userVerification: string; \n extensions?: {\n appid: string;\n };\n}\nexport interface ActivationData {\n challenge: string;\n rp: {\n name: string;\n };\n user: {\n id: string;\n name: string;\n displayName: string;\n };\n pubKeyCredParams: {\n type: string;\n alg: number;\n }[];\n attestation?: string;\n authenticatorSelection?: {\n userVerification?: string;\n authenticatorAttachment?: string;\n requireResidentKey?: boolean;\n residentKey?: string;\n };\n excludeCredentials?: {\n id: string;\n type: string;\n }[];\n}\nexport interface IdxAuthenticatorMethod {\n type: string;\n}\nexport interface IdxAuthenticator {\n displayName: string;\n id: string;\n key: string;\n methods: IdxAuthenticatorMethod[];\n type: string;\n settings?: {\n complexity?: unknown;\n age?: unknown;\n };\n contextualData?: {\n enrolledQuestion?: {\n question: string;\n questionKey: string;\n };\n qrcode?: { \n href: string; \n method: string; \n type: string; \n };\n sharedSecret?: string;\n questions?: {\n questionKey: string;\n question: string;\n }[];\n questionKeys?: string[];\n selectedChannel?: string;\n activationData?: ActivationData;\n challengeData?: ChallengeData;\n };\n credentialId?: string;\n enrollmentId?: string;\n profile?: Record<string, unknown>;\n resend?: Record<string, unknown>;\n poll?: Record<string, unknown>;\n recover?: Record<string, unknown>;\n deviceKnown?: boolean;\n}\n\nexport interface IdxForm {\n value: IdxRemediationValue[];\n}\n\nexport interface IdxOption {\n value: string | {form: IdxForm} | Input[];\n label: string;\n relatesTo?: IdxAuthenticator;\n}\n\nexport interface IdpConfig {\n id: string;\n name: string;\n}\n\nexport interface IdxRemediationValueForm {\n form: IdxForm;\n}\n\nexport interface IdxRemediationValue {\n name: string;\n type?: string;\n required?: boolean;\n secret?: boolean;\n visible?: boolean;\n mutable?: boolean;\n value?: string | IdxRemediationValueForm;\n label?: string;\n form?: IdxForm;\n options?: IdxOption[];\n messages?: IdxMessages;\n minLength?: number;\n maxLength?: number;\n relatesTo?: {\n type?: string;\n value: IdxAuthenticator;\n };\n}\n\nexport interface IdxRemediation {\n name: string;\n label?: string;\n value?: IdxRemediationValue[];\n relatesTo?: {\n type?: string;\n value: IdxAuthenticator;\n };\n idp?: IdpConfig;\n href?: string;\n method?: string;\n type?: string;\n accepts?: string;\n produces?: string;\n refresh?: number;\n rel?: string[];\n action?: (payload?: IdxActionParams) => Promise<IdxResponse>;\n}\n\nexport interface IdxContext {\n version: string;\n stateHandle: string;\n expiresAt: string;\n intent: string;\n currentAuthenticator: {\n type: string;\n value: IdxAuthenticator;\n };\n currentAuthenticatorEnrollment: {\n type: string;\n value: IdxAuthenticator;\n };\n authenticators: {\n type: string;\n value: IdxAuthenticator[];\n };\n authenticatorEnrollments: {\n type: string;\n value: IdxAuthenticator[];\n };\n enrollmentAuthenticator: {\n type: string;\n value: IdxAuthenticator;\n };\n user?: {\n type: string;\n value: Record<string, unknown>;\n };\n uiDisplay?: IdxContextUIDisplay\n app: {\n type: string;\n value: Record<string, unknown>;\n };\n messages?: IdxMessages;\n success?: IdxRemediation;\n failure?: IdxRemediation;\n}\n\nexport interface IdxContextUIDisplay {\n type: string;\n value: {\n label?: string;\n buttonLabel?: string;\n }\n}\n\nexport interface IdxMessage {\n message: string;\n class: string;\n i18n: {\n key: string;\n params?: unknown[];\n };\n}\n\nexport interface IdxMessages {\n type: 'array';\n value: IdxMessage[];\n}\n\n// JSON response from the server\nexport interface RawIdxResponse {\n version: string;\n stateHandle: string;\n intent?: string;\n expiresAt?: string;\n remediation?: {\n type: 'array';\n value: IdxRemediation[];\n };\n messages?: IdxMessages;\n success?: boolean;\n successWithInteractionCode?: IdxRemediation;\n currentAuthenticator?: {\n type: string;\n value: IdxAuthenticator;\n };\n currentAuthenticatorEnrollment?: {\n type: string;\n value: IdxAuthenticator;\n };\n}\n\nexport function isRawIdxResponse(obj: any): obj is RawIdxResponse {\n return obj && obj.version;\n}\n\nexport interface IdxActionParams {\n [key: string]: string | boolean | number | object;\n}\n\nexport interface IdxActions {\n [key: string]: (params?: IdxActionParams) => Promise<IdxResponse>;\n}\n\nexport interface IdxToPersist {\n interactionHandle?: string;\n withCredentials?: boolean;\n}\n\nexport interface IdxActionFunction {\n (params: IdxActionParams): Promise<IdxResponse>;\n neededParams?: Array<Array<IdxRemediationValue>>;\n}\n\nexport interface IdxResponse {\n proceed: (remediationName: string, params: unknown) => Promise<IdxResponse>;\n neededToProceed: IdxRemediation[];\n rawIdxState: RawIdxResponse;\n interactionCode?: string;\n actions: IdxActions;\n toPersist: IdxToPersist;\n context?: IdxContext;\n requestDidSucceed?: boolean;\n stepUp?: boolean;\n}\n\nexport function isIdxResponse(obj: any): obj is IdxResponse {\n return obj && isRawIdxResponse(obj.rawIdxState);\n}\n","\n/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport AuthApiError from './AuthApiError';\nimport AuthPollStopError from './AuthPollStopError';\nimport AuthSdkError from './AuthSdkError';\nimport OAuthError from './OAuthError';\n\nfunction isAuthApiError(obj: any): obj is AuthApiError {\n return (obj instanceof AuthApiError);\n}\n\nfunction isOAuthError(obj: any): obj is OAuthError {\n return (obj instanceof OAuthError);\n}\n\nexport {\n isAuthApiError,\n isOAuthError,\n AuthApiError,\n AuthPollStopError,\n AuthSdkError,\n OAuthError\n};\n\nexport * from './types';\n","/* eslint-disable complexity */\n/*!\n * Copyright (c) 2021, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { makeIdxState, validateVersionConfig } from './idxState';\nimport { IntrospectOptions, OktaAuthIdxInterface } from './types';\nimport { IdxResponse, isRawIdxResponse } from './types/idx-js';\nimport { getOAuthDomain } from '../oidc';\nimport { IDX_API_VERSION } from '../constants';\nimport { httpRequest } from '../http';\nimport { isAuthApiError } from '../errors';\n\nexport async function introspect (\n authClient: OktaAuthIdxInterface, \n options: IntrospectOptions = {}\n): Promise<IdxResponse> {\n let rawIdxResponse;\n let requestDidSucceed;\n\n // try load from storage first\n const savedIdxResponse = authClient.transactionManager.loadIdxResponse(options);\n if (savedIdxResponse) {\n rawIdxResponse = savedIdxResponse.rawIdxResponse;\n requestDidSucceed = savedIdxResponse.requestDidSucceed;\n }\n\n // call idx.introspect if no existing idx response available in storage\n if (!rawIdxResponse) {\n const version = options.version || IDX_API_VERSION;\n const domain = getOAuthDomain(authClient);\n const { interactionHandle, stateHandle } = options;\n const withCredentials = options.withCredentials ?? true;\n try {\n requestDidSucceed = true;\n validateVersionConfig(version);\n const url = `${domain}/idp/idx/introspect`;\n const body = stateHandle ? { stateToken: stateHandle } : { interactionHandle };\n const headers = {\n 'Content-Type': `application/ion+json; okta-version=${version}`, // Server wants this version info\n Accept: `application/ion+json; okta-version=${version}`,\n };\n rawIdxResponse = await httpRequest(authClient, {\n method: 'POST',\n url,\n headers,\n withCredentials,\n args: body\n });\n } catch (err) {\n if (isAuthApiError(err) && err.xhr && isRawIdxResponse(err.xhr.responseJSON)) {\n rawIdxResponse = err.xhr.responseJSON;\n requestDidSucceed = false;\n } else {\n throw err;\n }\n }\n }\n\n const { withCredentials } = options;\n return makeIdxState(authClient, rawIdxResponse, { withCredentials }, requestDidSucceed);\n}\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { IdxRemediation, IdxRemediationValue } from '../types/idx-js';\n\nexport function getAllValues(idxRemediation: IdxRemediation) {\n return idxRemediation.value?.map(r => r.name);\n}\n\nexport function getRequiredValues(idxRemediation: IdxRemediation) {\n return idxRemediation.value?.reduce((required, cur) => {\n if (cur.required) {\n required.push(cur.name as never);\n }\n return required;\n }, []);\n}\n\nexport function titleCase(str: string) {\n return str.charAt(0).toUpperCase() + str.substring(1);\n}\n\nexport function getAuthenticatorFromRemediation(\n remediation: IdxRemediation\n): IdxRemediationValue {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return remediation.value!.find(({ name }) => name === 'authenticator') as IdxRemediationValue;\n}\n","import { Authenticator, isAuthenticator } from '../types';\n\nexport function formatAuthenticator(incoming: unknown): Authenticator {\n let authenticator: Authenticator;\n if (isAuthenticator(incoming)) {\n authenticator = incoming;\n } else if (typeof incoming === 'string') {\n authenticator = {\n key: incoming\n };\n } else {\n throw new Error('Invalid format for authenticator');\n }\n return authenticator;\n}\n\n// Returns true if the authenticators are equivalent\nexport function compareAuthenticators(auth1, auth2) {\n if (!auth1 || !auth2) {\n return false;\n }\n // by id\n if (auth1.id && auth2.id) {\n return (auth1.id === auth2.id);\n }\n // by key\n if (auth1.key && auth2.key) {\n return (auth1.key === auth2.key);\n }\n return false;\n}\n\n// Find matched authenticator in provided order\nexport function findMatchedOption(authenticators, options) {\n let option;\n for (let authenticator of authenticators) {\n option = options\n .find(({ relatesTo }) => relatesTo.key === authenticator.key);\n if (option) {\n break;\n }\n }\n return option;\n}","/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\n/* eslint-disable complexity */\nimport { OktaAuthIdxInterface, NextStep, IdxMessage, Authenticator, Input, RemediateOptions } from '../../types';\nimport { IdxAuthenticator, IdxRemediation, IdxContext } from '../../types/idx-js';\nimport { getAllValues, getRequiredValues, titleCase, getAuthenticatorFromRemediation } from '../util';\nimport { formatAuthenticator, compareAuthenticators } from '../../authenticator/util';\n\n// A map from IDX data values (server spec) to RemediationValues (client spec)\nexport type IdxToRemediationValueMap = Record<string, string[]>;\n\nexport interface RemediationValues {\n stateHandle?: string;\n authenticators?: (Authenticator | string)[];\n authenticator?: string | Authenticator;\n authenticatorsData?: Authenticator[];\n resend?: boolean;\n}\n\nexport interface RemediatorConstructor {\n new<T extends RemediationValues>(\n remediation: IdxRemediation, \n values?: T, \n options?: RemediateOptions\n ): any;\n}\n\n// Base class - DO NOT expose static remediationName\nexport class Remediator<T extends RemediationValues = RemediationValues> {\n static remediationName: string;\n\n remediation: IdxRemediation;\n values: T;\n options: RemediateOptions;\n map?: IdxToRemediationValueMap;\n\n constructor(\n remediation: IdxRemediation, \n values: T = {} as T, \n options: RemediateOptions = {}\n ) {\n // assign fields to the instance\n this.values = { ...values };\n this.options = { ...options };\n this.formatAuthenticators();\n this.remediation = remediation;\n }\n\n private formatAuthenticators() {\n this.values.authenticators = (this.values.authenticators || []) as Authenticator[];\n\n // ensure authenticators are in the correct format\n this.values.authenticators = this.values.authenticators.map(authenticator => {\n return formatAuthenticator(authenticator);\n });\n\n // add authenticator (if any) to \"authenticators\"\n if (this.values.authenticator) {\n const authenticator = formatAuthenticator(this.values.authenticator);\n const hasAuthenticatorInList = this.values.authenticators.some(existing => {\n return compareAuthenticators(authenticator, existing);\n });\n if (!hasAuthenticatorInList) {\n this.values.authenticators.push(authenticator);\n }\n }\n\n // save non-key meta to \"authenticatorsData\" field\n // authenticators will be removed after selection to avoid select-authenticator loop\n this.values.authenticatorsData = this.values.authenticators.reduce((acc, authenticator) => {\n if (typeof authenticator === 'object' && Object.keys(authenticator).length > 1) {\n // save authenticator meta into authenticator data\n acc.push(authenticator);\n }\n return acc;\n }, this.values.authenticatorsData || []);\n }\n\n getName(): string {\n return this.remediation.name;\n }\n\n // Override this method to provide custom check\n /* eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars */\n canRemediate(): boolean {\n const required = getRequiredValues(this.remediation);\n const needed = required!.find((key) => !this.hasData(key));\n if (needed) {\n return false; // missing data for a required field\n }\n return true; // all required fields have available data\n }\n\n // returns an object for the entire remediation form, or just a part\n getData(key?: string) {\n if (!key) {\n let allValues = getAllValues(this.remediation);\n let res = allValues!.reduce((data, key) => {\n data[key] = this.getData(key); // recursive\n return data;\n }, {});\n return res;\n }\n\n // Map value by \"map${Property}\" function in each subClass\n if (typeof this[`map${titleCase(key)}`] === 'function') {\n const val = this[`map${titleCase(key)}`](\n this.remediation.value!.find(({name}) => name === key)\n );\n if (val) {\n return val;\n }\n }\n\n // If a map is defined for this key, return the first aliased property that returns a truthy value\n if (this.map && this.map[key]) {\n const entry = this.map[key];\n for (let i = 0; i < entry.length; i++) {\n let val = this.values[entry[i]];\n if (val) {\n return val;\n }\n }\n }\n\n // fallback: return the value by key\n return this.values[key];\n }\n\n hasData(\n key: string // idx name\n ): boolean \n {\n // no attempt to format, we want simple true/false\n return !!this.getData(key);\n }\n\n getNextStep(_authClient: OktaAuthIdxInterface, _context?: IdxContext): NextStep {\n const name = this.getName();\n const inputs = this.getInputs();\n const authenticator = this.getAuthenticator();\n // TODO: remove type field in the next major version change\n // https://oktainc.atlassian.net/browse/OKTA-431749\n const type = authenticator?.type;\n return { \n name, \n inputs, \n ...(type && { type }),\n ...(authenticator && { authenticator }),\n };\n }\n\n // Get inputs for the next step\n getInputs(): Input[] {\n const inputs: Input[] = [];\n const inputsFromRemediation = this.remediation.value || [];\n inputsFromRemediation.forEach(inputFromRemediation => {\n let input;\n let { name, type, visible, messages } = inputFromRemediation;\n if (visible === false) {\n return; // Filter out invisible inputs, like stateHandle\n }\n if (typeof this[`getInput${titleCase(name)}`] === 'function') {\n input = this[`getInput${titleCase(name)}`](inputFromRemediation);\n } else if (type !== 'object') {\n // handle general primitive types\n let alias;\n const aliases = (this.map ? this.map[name] : null) || [];\n if (aliases.length === 1) {\n alias = aliases[0];\n } else {\n // try find key from values\n alias = aliases.find(name => Object.keys(this.values).includes(name));\n }\n if (alias) {\n input = { ...inputFromRemediation, name: alias };\n }\n }\n if (!input) {\n input = inputFromRemediation;\n }\n if (Array.isArray(input)) {\n input.forEach(i => inputs.push(i));\n } else {\n // guarantees field-level messages are passed back\n if (messages) {\n input.messages = messages;\n }\n inputs.push(input);\n }\n });\n return inputs;\n }\n\n static getMessages(remediation: IdxRemediation): IdxMessage[] | undefined {\n if (!remediation.value) {\n return;\n }\n return remediation.value[0]?.form?.value.reduce((messages: IdxMessage[], field) => {\n if (field.messages) {\n messages = [...messages, ...field.messages.value];\n }\n return messages;\n }, []);\n }\n\n // Prepare values for the next remediation\n // In general, remove used values from inputs for the current remediation\n // Override this method if special cases need be handled\n getValuesAfterProceed(): T {\n const inputsFromRemediation = this.remediation.value || []; // \"raw\" inputs from server response\n const inputsFromRemediator = this.getInputs(); // \"aliased\" inputs from SDK remediator\n const inputs = [\n ...inputsFromRemediation,\n ...inputsFromRemediator\n ];\n // scrub all values related to this remediation\n for (const input of inputs) {\n delete this.values[input.name];\n }\n return this.values;\n }\n\n protected getAuthenticator(): IdxAuthenticator | undefined {\n // relatesTo value may be an authenticator or an authenticatorEnrollment\n const relatesTo = this.remediation.relatesTo?.value;\n if (!relatesTo) {\n return;\n }\n\n const authenticatorFromRemediation = getAuthenticatorFromRemediation(this.remediation);\n if (!authenticatorFromRemediation) {\n // Hopefully value is an authenticator\n return relatesTo;\n }\n\n // If relatesTo is an authenticatorEnrollment, the id is actually the enrollmentId\n // Let's get the correct authenticator id from the form value\n const id = authenticatorFromRemediation.form!.value\n .find(({ name }) => name === 'id')!.value as string;\n const enrollmentId = authenticatorFromRemediation.form!.value\n .find(({ name }) => name === 'enrollmentId')?.value as string;\n\n return {\n ...relatesTo,\n id,\n enrollmentId\n };\n }\n}\n","import { IdxAuthenticator, IdxRemediationValue } from '../types/idx-js';\n\n\nexport interface Credentials {\n [key: string]: string | undefined;\n}\n\nexport abstract class Authenticator<Values> {\n meta: IdxAuthenticator;\n\n constructor(authenticator: IdxAuthenticator) {\n this.meta = authenticator;\n }\n\n abstract canVerify(values: Values): boolean;\n\n abstract mapCredentials(values: Values): Credentials | undefined;\n\n abstract getInputs(idxRemediationValue: IdxRemediationValue): any; // TODO: add type\n}\n","import { Authenticator, Credentials } from './Authenticator';\n\nexport interface VerificationCodeValues {\n verificationCode?: string;\n otp?: string;\n credentials?: Credentials;\n}\n\ninterface VerificationCodeCredentials extends Credentials {\n passcode: string;\n}\n\n// general authenticator to handle \"verificationCode\" input\n// it can be used for \"email\", \"phone\", \"google authenticator\"\n// a new authenticator class should be created if special cases need to be handled\nexport class VerificationCodeAuthenticator extends Authenticator<VerificationCodeValues> {\n canVerify(values: VerificationCodeValues) {\n return !!(values.credentials ||values.verificationCode || values.otp);\n }\n\n mapCredentials(values): VerificationCodeCredentials | Credentials | undefined {\n const { credentials, verificationCode, otp } = values;\n if (!credentials && !verificationCode && !otp) {\n return;\n }\n return credentials || { passcode: verificationCode || otp };\n }\n\n getInputs(idxRemediationValue) {\n return {\n ...idxRemediationValue.form?.value[0],\n name: 'verificationCode',\n type: 'string',\n required: idxRemediationValue.required\n };\n }\n}\n","import { Credentials } from './Authenticator';\nimport { VerificationCodeAuthenticator } from './VerificationCodeAuthenticator';\n\ninterface TotpCredentials extends Credentials {\n totp: string;\n}\n\nexport class OktaVerifyTotp extends VerificationCodeAuthenticator {\n mapCredentials(values): TotpCredentials | undefined {\n const { verificationCode } = values;\n if (!verificationCode) {\n return;\n }\n return { totp: verificationCode };\n }\n}\n","import { Authenticator, Credentials } from './Authenticator';\n\nexport interface OktaPasswordInputValues {\n password?: string;\n passcode?: string;\n credentials?: Credentials;\n}\n\nexport class OktaPassword extends Authenticator<OktaPasswordInputValues> {\n canVerify(values: OktaPasswordInputValues) {\n return !!(values.credentials || values.password || values.passcode);\n }\n\n mapCredentials(values: OktaPasswordInputValues): Credentials | undefined {\n const { credentials, password, passcode } = values;\n if (!credentials && !password && !passcode) {\n return;\n }\n return credentials || { passcode: passcode || password };\n }\n\n getInputs(idxRemediationValue) {\n return {\n ...idxRemediationValue.form?.value[0],\n name: 'password',\n type: 'string',\n required: idxRemediationValue.required\n };\n }\n}\n","import { Authenticator, Credentials } from './Authenticator';\n\nexport interface SecurityQuestionEnrollValues {\n questionKey?: string;\n question?: string;\n answer?: string;\n credentials?: Credentials;\n}\n\nexport class SecurityQuestionEnrollment extends Authenticator<SecurityQuestionEnrollValues> {\n canVerify(values: SecurityQuestionEnrollValues) {\n const { credentials } = values;\n if (credentials && credentials.questionKey && credentials.answer) {\n return true;\n }\n const { questionKey, question, answer } = values;\n return !!(questionKey && answer) || !!(question && answer);\n }\n\n mapCredentials(values: SecurityQuestionEnrollValues): Credentials | undefined {\n const { questionKey, question, answer } = values;\n if (!answer || (!questionKey && !question)) {\n return;\n }\n return {\n questionKey: question ? 'custom' : questionKey,\n question,\n answer\n };\n }\n\n getInputs() {\n return [\n { name: 'questionKey', type: 'string', required: true },\n { name: 'question', type: 'string', label: 'Create a security question' },\n { name: 'answer', type: 'string', label: 'Answer', required: true },\n ];\n }\n}\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\nimport { Authenticator, Credentials } from './Authenticator';\n\nexport interface SecurityQuestionVerificationValues {\n answer?: string;\n credentials?: Credentials;\n}\n\nexport class SecurityQuestionVerification extends Authenticator<SecurityQuestionVerificationValues> {\n canVerify(values: SecurityQuestionVerificationValues) {\n const { credentials } = values;\n if (credentials && credentials.answer) {\n return true;\n }\n const { answer } = values;\n return !!answer;\n }\n\n mapCredentials(values: SecurityQuestionVerificationValues): Credentials | undefined {\n const { answer } = values;\n if (!answer) {\n return;\n }\n return {\n questionKey: this.meta.contextualData!.enrolledQuestion!.questionKey,\n answer\n };\n }\n\n getInputs() {\n return [\n { name: 'answer', type: 'string', label: 'Answer', required: true }\n ];\n }\n}\n","import { Authenticator, Credentials } from './Authenticator';\n\nexport interface WebauthnEnrollValues {\n clientData?: string;\n attestation?: string;\n credentials?: Credentials;\n}\n\nexport class WebauthnEnrollment extends Authenticator<WebauthnEnrollValues> {\n canVerify(values: WebauthnEnrollValues) {\n const { credentials } = values;\n const obj = credentials || values;\n const { clientData, attestation } = obj;\n return !!(clientData && attestation);\n }\n\n mapCredentials(values: WebauthnEnrollValues): Credentials | undefined {\n const { credentials, clientData, attestation } = values;\n if (!credentials && !clientData && !attestation) {\n return;\n }\n return credentials || ({\n clientData,\n attestation\n });\n }\n\n getInputs() {\n return [\n { name: 'clientData', type: 'string', required: true, visible: false, label: 'Client Data' },\n { name: 'attestation', type: 'string', required: true, visible: false, label: 'Attestation' },\n ];\n }\n}\n","import { Authenticator, Credentials } from './Authenticator';\n\nexport interface WebauthnVerificationValues {\n clientData?: string;\n authenticatorData?: string;\n signatureData?: string;\n credentials?: Credentials;\n}\n\nexport class WebauthnVerification extends Authenticator<WebauthnVerificationValues> {\n canVerify(values: WebauthnVerificationValues) {\n const { credentials } = values;\n const obj = credentials || values;\n const { clientData, authenticatorData, signatureData } = obj;\n return !!(clientData && authenticatorData && signatureData);\n }\n\n mapCredentials(values: WebauthnVerificationValues): Credentials | undefined {\n const { credentials, authenticatorData, clientData, signatureData } = values;\n if (!credentials && !authenticatorData && !clientData && !signatureData) {\n return;\n }\n return credentials || ({\n authenticatorData,\n clientData,\n signatureData\n });\n }\n\n getInputs() {\n return [\n { name: 'authenticatorData', type: 'string', label: 'Authenticator Data', required: true, visible: false },\n { name: 'clientData', type: 'string', label: 'Client Data', required: true, visible: false },\n { name: 'signatureData', type: 'string', label: 'Signature Data', required: true, visible: false },\n ];\n }\n}\n","import { OktaVerifyTotp } from './OktaVerifyTotp';\nimport { Authenticator } from './Authenticator';\nimport { VerificationCodeAuthenticator } from './VerificationCodeAuthenticator';\nimport { OktaPassword } from './OktaPassword';\nimport { SecurityQuestionEnrollment } from './SecurityQuestionEnrollment';\nimport { SecurityQuestionVerification } from './SecurityQuestionVerification';\nimport { WebauthnEnrollment } from './WebauthnEnrollment';\nimport { WebauthnVerification } from './WebauthnVerification';\nimport { IdxAuthenticator, IdxRemediation } from '../types/idx-js';\nimport { AuthenticatorKey } from '../types';\n\n/* eslint complexity:[0,8] */\nexport function getAuthenticator(remediation: IdxRemediation): Authenticator<any> {\n const relatesTo = remediation.relatesTo;\n const value = relatesTo?.value || {} as IdxAuthenticator;\n switch (value.key) {\n case AuthenticatorKey.OKTA_PASSWORD:\n return new OktaPassword(value);\n case AuthenticatorKey.SECURITY_QUESTION:\n if (value.contextualData?.enrolledQuestion) {\n return new SecurityQuestionVerification(value);\n } else {\n return new SecurityQuestionEnrollment(value);\n }\n case AuthenticatorKey.OKTA_VERIFY:\n return new OktaVerifyTotp(value);\n case AuthenticatorKey.WEBAUTHN:\n if (value.contextualData?.challengeData) {\n return new WebauthnVerification(value);\n } else {\n return new WebauthnEnrollment(value);\n }\n default:\n return new VerificationCodeAuthenticator(value);\n }\n}\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\nimport { Remediator, RemediationValues } from './Remediator';\nimport { getAuthenticator, Authenticator, AuthenticatorValues } from '../../authenticator';\nimport { IdxRemediation, IdxContext } from '../../types/idx-js';\nimport { OktaAuthIdxInterface, NextStep } from '../../types';\n\nexport type VerifyAuthenticatorValues = AuthenticatorValues & RemediationValues;\n\n// Base class - DO NOT expose static remediationName\nexport class VerifyAuthenticator<T extends VerifyAuthenticatorValues = VerifyAuthenticatorValues>\n extends Remediator<T> {\n\n authenticator: Authenticator<VerifyAuthenticatorValues>;\n\n constructor(remediation: IdxRemediation, values: T = {} as T) {\n super(remediation, values);\n this.authenticator = getAuthenticator(remediation);\n }\n\n getNextStep(authClient: OktaAuthIdxInterface, context?: IdxContext): NextStep {\n const nextStep = super.getNextStep(authClient, context);\n const authenticatorEnrollments = context?.authenticatorEnrollments?.value;\n\n return {\n ...nextStep,\n authenticatorEnrollments\n };\n }\n\n canRemediate() {\n return this.authenticator.canVerify(this.values);\n }\n\n mapCredentials() {\n return this.authenticator.mapCredentials(this.values);\n }\n\n getInputCredentials(input) {\n return this.authenticator.getInputs(input);\n }\n\n getValuesAfterProceed(): T {\n this.values = super.getValuesAfterProceed();\n let trimmedValues = Object.keys(this.values).filter(valueKey => valueKey !== 'credentials');\n return trimmedValues.reduce((values, valueKey) => ({...values, [valueKey]: this.values[valueKey]}), {} as T);\n }\n}\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\nimport { VerifyAuthenticator, VerifyAuthenticatorValues } from './Base/VerifyAuthenticator';\n\nexport type EnrollAuthenticatorValues = VerifyAuthenticatorValues;\n\nexport class EnrollAuthenticator extends VerifyAuthenticator<EnrollAuthenticatorValues> {\n static remediationName = 'enroll-authenticator';\n}\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\nimport { Remediator, RemediationValues } from './Base/Remediator';\nimport { NextStep, OktaAuthIdxInterface } from '../types';\nimport { IdxContext } from '../types/idx-js';\n\nexport interface EnrollPollValues extends RemediationValues {\n startPolling?: boolean;\n}\n\nexport class EnrollPoll extends Remediator<EnrollPollValues> {\n static remediationName = 'enroll-poll';\n\n canRemediate() {\n return !!this.values.startPolling || this.options.step === 'enroll-poll';\n }\n\n getNextStep(authClient: OktaAuthIdxInterface, context?: IdxContext): NextStep {\n const common = super.getNextStep(authClient, context);\n let authenticator = this.getAuthenticator();\n if (!authenticator && context?.currentAuthenticator) {\n authenticator = context.currentAuthenticator.value;\n }\n return {\n ...common,\n authenticator,\n poll: {\n required: true,\n refresh: this.remediation.refresh\n },\n };\n }\n\n getValuesAfterProceed(): EnrollPollValues {\n let trimmedValues = Object.keys(this.values).filter(valueKey => valueKey !== 'startPolling');\n return trimmedValues.reduce((values, valueKey) => ({...values, [valueKey]: this.values[valueKey]}), {});\n }\n}\n","/*!\n * Copyright (c) 2021-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\nimport { Remediator, RemediationValues } from './Base/Remediator';\nimport { IdxRemediationValueForm, IdxContext } from '../types/idx-js';\nimport { Authenticator, OktaAuthIdxInterface } from '../types/api';\n\n\nexport type SelectEnrollmentChannelValues = RemediationValues & {\n channel?: string;\n};\n\nexport class SelectEnrollmentChannel extends Remediator<SelectEnrollmentChannelValues> {\n static remediationName = 'select-enrollment-channel';\n\n canRemediate() {\n if (this.values.channel) {\n return true;\n }\n\n if (this.values.authenticator) {\n const { id, channel } = this.values.authenticator as Authenticator;\n if (!!id && !!channel) {\n return true;\n }\n }\n\n return false;\n }\n\n getNextStep(authClient: OktaAuthIdxInterface, context: IdxContext) {\n const common = super.getNextStep(authClient, context);\n const authenticator = context.currentAuthenticator.value;\n return {\n ...common,\n authenticator,\n };\n }\n\n getData() {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const remediationValue = this.remediation!.value![0].value as IdxRemediationValueForm;\n return {\n authenticator: {\n id: remediationValue.form.value[0].value,\n channel: (this.values.authenticator as Authenticator)?.channel || this.values.channel,\n },\n stateHandle: this.values.stateHandle,\n\n };\n }\n\n getValuesAfterProceed(): SelectEnrollmentChannelValues {\n this.values = super.getValuesAfterProceed();\n delete this.values.authenticators; // required to prevent infinite loops from auto-remediating via values\n const filterKey = this.values.channel ? 'channel' : 'authenticator';\n let trimmedValues = Object.keys(this.values).filter(valueKey => valueKey !== filterKey);\n return trimmedValues.reduce((values, valueKey) => ({...values, [valueKey]: this.values[valueKey]}), {});\n }\n}\n","/*!\n * Copyright (c) 2021-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\nimport { Remediator, RemediationValues } from './Base/Remediator';\nimport { IdxContext } from '../types/idx-js';\nimport { OktaAuthIdxInterface } from '../types';\n\n\nexport type EnrollmentChannelDataValues = RemediationValues & {\n email?: string;\n phoneNumber?: string;\n};\n\nexport class EnrollmentChannelData extends Remediator<EnrollmentChannelDataValues> {\n static remediationName = 'enrollment-channel-data';\n\n getInputEmail() {\n return [\n { name: 'email', type: 'string', required: true, label: 'Email' },\n ];\n }\n\n getInputPhoneNumber() {\n return [\n { name: 'phoneNumber', type: 'string', required: true, label: 'Phone Number' },\n ];\n }\n\n canRemediate() {\n return Boolean(this.values.email || this.values.phoneNumber);\n }\n\n getNextStep(authClient: OktaAuthIdxInterface, context: IdxContext) {\n const common = super.getNextStep(authClient, context);\n const authenticator = context.currentAuthenticator.value;\n return {\n ...common,\n authenticator,\n };\n }\n\n getData() {\n return {\n stateHandle: this.values.stateHandle,\n email: this.values.email,\n phoneNumber: this.values.phoneNumber\n };\n }\n\n getValuesAfterProceed(): EnrollmentChannelDataValues {\n let trimmedValues = Object.keys(this.values).filter(valueKey => !['email', 'phoneNumber'].includes(valueKey));\n return trimmedValues.reduce((values, valueKey) => ({...values, [valueKey]: this.values[valueKey]}), {});\n }\n}\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { VerifyAuthenticator, VerifyAuthenticatorValues } from './Base/VerifyAuthenticator';\n\nexport type ChallengeAuthenticatorValues = VerifyAuthenticatorValues;\n\nexport class ChallengeAuthenticator extends VerifyAuthenticator<ChallengeAuthenticatorValues> {\n static remediationName = 'challenge-authenticator';\n}\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { EnrollPoll } from './EnrollPoll';\n\nexport class ChallengePoll extends EnrollPoll{\n static remediationName = 'challenge-poll';\n\n canRemediate() {\n return !!this.values.startPolling || this.options.step === 'challenge-poll';\n }\n}\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\nimport { VerifyAuthenticator, VerifyAuthenticatorValues } from './Base/VerifyAuthenticator';\n\nexport type ResetAuthenticatorValues = VerifyAuthenticatorValues;\n\nexport class ResetAuthenticator extends VerifyAuthenticator<ResetAuthenticatorValues> {\n static remediationName = 'reset-authenticator';\n}\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\nimport { IdxRemediation, IdxRemediationValue, IdxAuthenticator } from '../types/idx-js';\nimport { RemediateOptions } from '../types';\nimport { Remediator, RemediationValues } from './Base/Remediator';\nimport { Authenticator, Credentials, OktaPassword } from '../authenticator';\n\nexport interface EnrollProfileValues extends RemediationValues {\n firstName?: string;\n lastName?: string;\n email?: string;\n credentials?: Credentials;\n password?: string;\n passcode?: string;\n}\n\nexport class EnrollProfile extends Remediator<EnrollProfileValues> {\n static remediationName = 'enroll-profile';\n\n authenticator: Authenticator<any> | null = null;\n\n constructor(\n remediation: IdxRemediation,\n values: EnrollProfileValues = {},\n options: RemediateOptions = {}\n ) {\n super(remediation, values, options);\n\n // credentials are only required when Profile Enrollment policy requires them\n // if credentials are included in the remediation, they are considered required\n // otherwise it will be omitted\n const credentials = this.getCredentialsFromRemediation();\n if (credentials) {\n this.authenticator = this.authenticator = new OktaPassword({} as IdxAuthenticator);\n }\n }\n\n canRemediate() {\n // ensure credentials can be verified, if required\n if (this.authenticator && !this.authenticator.canVerify(this.values)) {\n return false;\n }\n\n const userProfileFromValues = this.getData().userProfile;\n if (!userProfileFromValues) {\n return false;\n }\n // eslint-disable-next-line max-len\n const userProfileFromRemediation = this.remediation.value!.find(({ name }) => name === 'userProfile') as IdxRemediationValue;\n return userProfileFromRemediation.form!.value.reduce((canRemediate, curr) => {\n if (curr.required) {\n canRemediate = canRemediate && !!userProfileFromValues[curr.name];\n }\n return canRemediate;\n }, true);\n }\n\n getCredentialsFromRemediation () {\n return this.remediation.value!.find(({ name }) => name === 'credentials');\n }\n\n mapUserProfile({form: { value: profileAttributes }}) {\n const attributeNames = profileAttributes.map(({name}) => name);\n const data = attributeNames.reduce((attributeValues, attributeName) => (\n this.values[attributeName] ? {\n ...attributeValues,\n [attributeName]: this.values[attributeName]\n } : attributeValues), {});\n if (Object.keys(data).length === 0) {\n return;\n }\n return data;\n }\n\n mapCredentials() {\n const val = this.authenticator && this.authenticator.mapCredentials(this.values);\n if (!val) {\n return;\n }\n return val;\n }\n\n getInputUserProfile(input) {\n return [...input.form.value];\n }\n\n getInputCredentials(input) {\n return [...input.form.value];\n }\n\n getErrorMessages(errorRemediation) {\n return errorRemediation.value[0].form.value.reduce((errors, field) => {\n if (field.messages) {\n errors.push(field.messages.value[0].message);\n }\n return errors;\n }, []);\n }\n}","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\nimport { Credentials } from '../authenticator';\nimport { Remediator, RemediationValues } from './Base/Remediator';\n\nexport interface IdentifyValues extends RemediationValues {\n username?: string;\n password?: string;\n credentials?: Credentials;\n}\n\nexport class Identify extends Remediator<IdentifyValues> {\n static remediationName = 'identify';\n\n map = {\n 'identifier': ['username']\n };\n\n canRemediate(): boolean {\n const { identifier } = this.getData();\n return !!identifier;\n }\n\n mapCredentials() {\n const { credentials, password } = this.values;\n if (!credentials && !password) {\n return;\n }\n return credentials || { passcode: password };\n }\n\n getInputCredentials(input) {\n return {\n ...input.form.value[0],\n name: 'password',\n required: input.required\n };\n }\n\n}\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\nimport { Remediator, RemediationValues } from './Base/Remediator';\n\nexport interface ReEnrollAuthenticatorValues extends RemediationValues {\n newPassword?: string;\n}\n\nexport class ReEnrollAuthenticator extends Remediator<ReEnrollAuthenticatorValues> {\n static remediationName = 'reenroll-authenticator';\n\n mapCredentials() {\n const { newPassword } = this.values;\n if (!newPassword) {\n return;\n }\n return { \n passcode: newPassword,\n };\n }\n\n getInputCredentials(input) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const challengeType = this.getAuthenticator()!.type;\n const name = challengeType === 'password' ? 'newPassword' : 'verificationCode';\n return {\n ...input.form.value[0],\n name\n };\n }\n\n}\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\nimport { Remediator } from './Base/Remediator';\n\nexport class RedirectIdp extends Remediator {\n static remediationName = 'redirect-idp';\n\n canRemediate() {\n return false;\n }\n\n getNextStep() {\n const { name, type, idp, href } = this.remediation;\n return {\n name,\n type,\n idp,\n href\n };\n }\n\n}\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\nimport { Remediator, RemediationValues } from './Remediator';\nimport { getAuthenticatorFromRemediation } from '../util';\nimport { IdxRemediationValue } from '../../types/idx-js';\nimport { Authenticator, isAuthenticator } from '../../types/api';\nimport { compareAuthenticators, findMatchedOption} from '../../authenticator/util';\n\nexport type SelectAuthenticatorValues = RemediationValues & {\n authenticator?: string | Authenticator;\n};\n\n// Base class - DO NOT expose static remediationName\nexport class SelectAuthenticator<T extends SelectAuthenticatorValues = SelectAuthenticatorValues>\n extends Remediator<T> {\n selectedAuthenticator?: Authenticator;\n selectedOption?: any;\n\n // Find matched authenticator in provided order\n findMatchedOption(authenticators, options) {\n let option;\n for (let authenticator of authenticators) {\n option = options\n .find(({ relatesTo }) => relatesTo.key === authenticator.key);\n if (option) {\n break;\n }\n }\n return option;\n }\n\n canRemediate() {\n const { authenticators, authenticator } = this.values;\n const authenticatorFromRemediation = getAuthenticatorFromRemediation(this.remediation);\n const { options } = authenticatorFromRemediation;\n // Let users select authenticator if no input is provided\n if (!authenticators || !authenticators.length) {\n return false;\n }\n\n // Authenticator is explicitly specified by id\n if (isAuthenticator(authenticator) && authenticator.id) {\n return true;\n }\n\n // Proceed with provided authenticators\n const matchedOption = this.findMatchedOption(authenticators, options);\n if (matchedOption) {\n return true;\n }\n \n return false;\n }\n\n mapAuthenticator(remediationValue: IdxRemediationValue) {\n const { authenticators, authenticator } = this.values;\n\n // Authenticator is explicitly specified by id\n if (isAuthenticator(authenticator) && authenticator.id) {\n this.selectedAuthenticator = authenticator; // track the selected authenticator\n return authenticator;\n }\n\n const { options } = remediationValue;\n const selectedOption = findMatchedOption(authenticators, options);\n this.selectedAuthenticator = selectedOption.relatesTo; // track the selected authenticator\n this.selectedOption = selectedOption;\n return {\n id: selectedOption?.value.form.value.find(({ name }) => name === 'id').value\n };\n }\n\n getInputAuthenticator(remediation) {\n const options = remediation.options.map(({ label, relatesTo }) => {\n return {\n label,\n value: relatesTo.key\n };\n });\n return { name: 'authenticator', type: 'string', options };\n }\n\n getValuesAfterProceed(): T {\n this.values = super.getValuesAfterProceed();\n // remove used authenticators\n const authenticators = (this.values.authenticators as Authenticator[])\n .filter(authenticator => {\n return compareAuthenticators(authenticator, this.selectedAuthenticator) !== true;\n });\n return { ...this.values, authenticators };\n }\n\n}\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\nimport { SelectAuthenticator, SelectAuthenticatorValues } from './Base/SelectAuthenticator';\nimport { getAuthenticatorFromRemediation } from './util';\nimport { IdxRemediation } from '../types/idx-js';\nimport { AuthenticatorKey, Authenticator, RemediateOptions } from '../types';\n\nexport type SelectAuthenticatorAuthenticateValues = SelectAuthenticatorValues & {\n password?: string;\n};\n\nexport class SelectAuthenticatorAuthenticate extends SelectAuthenticator<SelectAuthenticatorAuthenticateValues> {\n static remediationName = 'select-authenticator-authenticate';\n\n constructor(\n remediation: IdxRemediation, \n values: SelectAuthenticatorValues = {}, \n options: RemediateOptions = {}\n ) {\n super(remediation, values, options);\n\n // Preset password authenticator to trigger recover action\n const isRecoveryFlow = this.options.flow === 'recoverPassword';\n const hasPasswordInOptions = getAuthenticatorFromRemediation(remediation)\n .options?.some(({ relatesTo }) => relatesTo?.key === AuthenticatorKey.OKTA_PASSWORD);\n if (hasPasswordInOptions && (isRecoveryFlow || this.values.password)) {\n this.values.authenticators = [\n ...this.values.authenticators || [],\n { key: AuthenticatorKey.OKTA_PASSWORD }\n ] as Authenticator[];\n }\n }\n}\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\nimport { SelectAuthenticator, SelectAuthenticatorValues } from './Base/SelectAuthenticator';\n\nexport type SelectAuthenticatorEnrollValues = SelectAuthenticatorValues;\n\nexport class SelectAuthenticatorEnroll extends SelectAuthenticator<SelectAuthenticatorEnrollValues> {\n static remediationName = 'select-authenticator-enroll';\n}\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\nimport { SelectAuthenticator, SelectAuthenticatorValues } from './Base/SelectAuthenticator';\nimport { Authenticator } from '../types';\nimport { IdxRemediationValue } from '../types/idx-js';\n\n\nexport type SelectAuthenticatorUnlockAccountValues = SelectAuthenticatorValues & {\n identifier?: string;\n methodType?: string;\n};\n\nexport class SelectAuthenticatorUnlockAccount extends SelectAuthenticator<SelectAuthenticatorUnlockAccountValues> {\n static remediationName = 'select-authenticator-unlock-account';\n authenticator?: Authenticator;\n\n map = {\n identifier: ['username']\n };\n\n canRemediate() {\n const identifier = this.getData('identifier');\n return !!identifier && super.canRemediate();\n }\n\n mapAuthenticator(remediationValue: IdxRemediationValue) {\n const authenticatorMap = super.mapAuthenticator(remediationValue);\n const methodTypeOption = this.selectedOption?.value.form.value.find(({ name }) => name === 'methodType');\n\n // defaults to 'manually defined' value\n // 2nd: option may have pre-defined value, like stateHandle\n // 3rd: if only a single OV option is available, default to that option\n const methodTypeValue = this.values.methodType ||\n methodTypeOption?.value as string || methodTypeOption?.options?.[0]?.value as string;\n\n if (methodTypeValue) {\n return {\n ...authenticatorMap,\n methodType: methodTypeValue\n };\n }\n\n return authenticatorMap;\n }\n\n getInputUsername () {\n return { name: 'username', type: 'string' };\n }\n\n}\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\nimport { Remediator, RemediationValues } from './Base/Remediator';\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface SelectEnrollProfileValues extends RemediationValues {}\n\nexport class SelectEnrollProfile extends Remediator<SelectEnrollProfileValues> {\n static remediationName = 'select-enroll-profile';\n\n canRemediate() {\n return true;\n }\n}\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { Remediator, RemediationValues } from './Remediator';\nimport { IdxRemediationValue, IdxRemediation, IdxAuthenticator } from '../../types/idx-js';\nimport { isAuthenticator } from '../../types/api';\nimport { compareAuthenticators } from '../../authenticator/util';\n\nexport type AuthenticatorDataValues = RemediationValues & {\n methodType?: string;\n};\n\n// Base class - DO NOT expose static remediationName\nexport class AuthenticatorData<T extends AuthenticatorDataValues = AuthenticatorDataValues> extends Remediator<T> {\n authenticator: IdxAuthenticator;\n\n constructor(remediation: IdxRemediation, values: T = {} as T) {\n super(remediation, values);\n\n // set before other data calculation\n this.authenticator = this.getAuthenticator()!;\n\n this.formatAuthenticatorData();\n }\n\n protected formatAuthenticatorData() {\n const authenticatorData = this.getAuthenticatorData();\n if (authenticatorData) {\n this.values.authenticatorsData = this.values.authenticatorsData!.map(data => {\n if (compareAuthenticators(this.authenticator, data)) {\n return this.mapAuthenticatorDataFromValues(data);\n }\n return data;\n });\n } else {\n const data = this.mapAuthenticatorDataFromValues();\n if (data) {\n this.values.authenticatorsData!.push(data);\n }\n }\n }\n\n protected getAuthenticatorData() {\n return this.values.authenticatorsData!\n .find((data) => compareAuthenticators(this.authenticator, data));\n }\n\n canRemediate() {\n return this.values.authenticatorsData!\n .some(data => compareAuthenticators(this.authenticator, data));\n }\n\n protected mapAuthenticatorDataFromValues(authenticatorData?) {\n // add methodType to authenticatorData if it exists in values\n let { methodType, authenticator } = this.values;\n if (!methodType && isAuthenticator(authenticator)) {\n methodType = authenticator?.methodType;\n }\n \n const { id, enrollmentId } = this.authenticator;\n const data = { \n id,\n enrollmentId,\n ...(authenticatorData && authenticatorData),\n ...(methodType && { methodType }) \n };\n\n return data.methodType ? data : null;\n }\n\n protected getAuthenticatorFromRemediation(): IdxRemediationValue {\n const authenticator = this.remediation.value!\n .find(({ name }) => name === 'authenticator') as IdxRemediationValue;\n return authenticator;\n }\n\n getValuesAfterProceed(): T {\n this.values = super.getValuesAfterProceed();\n // remove used authenticatorData\n const authenticatorsData = this.values.authenticatorsData!\n .filter(data => compareAuthenticators(this.authenticator, data) !== true);\n return { ...this.values, authenticatorsData };\n }\n}\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { AuthenticatorData, AuthenticatorDataValues } from './Base/AuthenticatorData';\n\nexport type AuthenticatorVerificationDataValues = AuthenticatorDataValues;\n\nexport class AuthenticatorVerificationData extends AuthenticatorData<AuthenticatorVerificationDataValues> {\n static remediationName = 'authenticator-verification-data';\n\n mapAuthenticator() {\n return this.getAuthenticatorData();\n }\n\n getInputAuthenticator() {\n const authenticator = this.getAuthenticatorFromRemediation();\n const methodType = authenticator.form!.value.find(({ name }) => name === 'methodType');\n // if has methodType in form, let user select the methodType\n if (methodType && methodType.options) {\n return { \n name: 'methodType', \n type: 'string', \n required: true, \n options: methodType.options \n };\n }\n // no methodType, then return form values\n const inputs = [...authenticator.form!.value];\n return inputs;\n }\n\n getValuesAfterProceed(): AuthenticatorVerificationDataValues {\n this.values = super.getValuesAfterProceed();\n let trimmedValues = Object.keys(this.values).filter(valueKey => valueKey !== 'authenticator');\n return trimmedValues.reduce((values, valueKey) => ({...values, [valueKey]: this.values[valueKey]}), {});\n }\n}\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\nimport { AuthenticatorData, AuthenticatorDataValues } from './Base/AuthenticatorData';\nimport { getAuthenticatorFromRemediation } from './util';\n\nexport type AuthenticatorEnrollmentDataValues = AuthenticatorDataValues & {\n phoneNumber?: string;\n resend?: boolean; // resend is not a remediator value - revise when IdxResponse structure is updated\n}\nexport class AuthenticatorEnrollmentData extends AuthenticatorData<AuthenticatorEnrollmentDataValues> {\n static remediationName = 'authenticator-enrollment-data';\n\n mapAuthenticator() {\n const authenticatorData = this.getAuthenticatorData();\n const authenticatorFromRemediation = getAuthenticatorFromRemediation(this.remediation)!;\n return { \n id: authenticatorFromRemediation.form!.value\n .find(({ name }) => name === 'id')!.value,\n methodType: authenticatorData!.methodType,\n phoneNumber: authenticatorData!.phoneNumber,\n };\n }\n\n getInputAuthenticator(remediation) {\n return [\n { name: 'methodType', type: 'string' }, \n { name: 'phoneNumber', label: 'Phone Number', type: 'string' }\n ].map(item => {\n const value = remediation.form.value.find(val => val.name === item.name);\n return { ...value, ...item };\n });\n }\n\n protected mapAuthenticatorDataFromValues(data?) {\n // get mapped authenticator from base class\n data = super.mapAuthenticatorDataFromValues(data);\n // add phoneNumber to authenticator if it exists in values\n const { phoneNumber } = this.values;\n if (!data && !phoneNumber) {\n return;\n }\n\n return { \n ...(data && data), \n ...(phoneNumber && { phoneNumber }) \n };\n }\n\n}\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\nimport { Remediator, RemediationValues } from './Base/Remediator';\n\nexport interface SkipValues extends RemediationValues {\n skip?: boolean;\n}\n\nexport class Skip extends Remediator<SkipValues> {\n static remediationName = 'skip';\n\n canRemediate() {\n return !!this.values.skip || this.options.step === 'skip';\n }\n\n}\n","/* eslint-disable complexity */\nimport { AuthSdkError } from '../../../errors';\nimport { Input } from '../../types';\n\nexport function unwrapFormValue(remediation): Input { \n if (Array.isArray(remediation)) {\n return remediation\n .map(item => {\n if (typeof item === 'string' || typeof item === 'number' || typeof item === 'boolean') {\n return item;\n }\n return unwrapFormValue(item);\n }) as any;\n }\n\n const res = {};\n for (const [key, value] of Object.entries(remediation)) {\n if (value === null || typeof value === 'undefined') {\n continue;\n }\n\n if (typeof value === 'object') {\n const formKeys = Object.keys(value as object);\n // detect patterns like:\n // value -> form -> value | form -> value\n if (['value', 'form'].includes(key) \n && formKeys.length === 1 \n && ['value', 'form'].includes(formKeys[0])\n ) {\n // unwrap nested form\n const unwrappedForm = unwrapFormValue(value);\n Object.entries(unwrappedForm).forEach(([key, value]) => {\n res[key] = value;\n });\n } else {\n // dfs\n res[key] = unwrapFormValue(value);\n }\n } else {\n // handle primitive value\n res[key] = value;\n }\n }\n\n return res as Input;\n}\n\n// only check if value is required for now\n// TODO: support SDK layer type based input validation\nexport function hasValidInputValue(input, values) {\n const fn = (input, values, requiredTracker) => {\n const { name, value, type, options, required } = input;\n const isRequired = required || requiredTracker;\n\n // handle nested value - all required fields should be avaiable in values \n if (Array.isArray(value)) {\n return value.reduce((acc, item) => {\n return acc && fn(item, values[name], isRequired); // recursive call\n }, true);\n }\n\n // handle options field\n // 1. object type options - check if each object field is required and value can be found from the selectedOption\n // 2. primitive options - required field is avaiable from top level\n // 3. unknown format - pass to backend for validation\n if (options) {\n // object type options\n if (type === 'object') {\n const selectedOption = values[name];\n if (!selectedOption) {\n return false;\n }\n if (!selectedOption.id) {\n // unknown option format, pass to backend for validation\n return true;\n }\n const optionSchema = options.find((option) => {\n const idSchema = option.value.find(({ name }) => name === 'id' );\n return idSchema.value === selectedOption.id;\n });\n if (!optionSchema) {\n return false;\n }\n return optionSchema.value\n .filter(({ required }) => !!required)\n .reduce((acc, { name }) => {\n return acc && !!selectedOption[name];\n }, true);\n }\n\n // primitive options, not required - always valid\n if (required === false) {\n return true;\n }\n\n // primitive options, required - check if value is available\n if (required === true) {\n return !!values[name];\n }\n\n // unknown options, throw\n throw new AuthSdkError(`Unknown options type, ${JSON.stringify(input)}`);\n }\n\n // base case\n if (!isRequired) {\n return true;\n }\n \n return !!(values && values[name]);\n };\n\n return fn(input, values, false);\n}\n","import { OktaAuthIdxInterface, IdxContext, NextStep, Input } from '../../types';\nimport { Remediator } from '../Base/Remediator';\nimport { unwrapFormValue } from './util';\n\nexport class GenericRemediator extends Remediator {\n canRemediate(): boolean {\n // only handle remediations that are able to submit form (xhr)\n if (typeof this.remediation.action !== 'function') {\n return false;\n }\n\n // DO NOT REMOVE - bring it back when enable client side validation for GenericRemediator - OKTA-512003\n // const inputs = this.getInputs();\n // const res = inputs.reduce((acc, input) => {\n // return acc && hasValidInputValue(input, this.values);\n // }, true);\n // return res;\n\n if (this.remediation.name === 'poll' || this.remediation.name.endsWith('-poll')) {\n return true;\n }\n\n if (this.options.step) {\n return true;\n }\n \n // disable auto proceed for unknown remediations\n return false;\n }\n\n getData() {\n const data = this.getInputs().reduce((acc, { name }) => {\n acc[name] = this.values[name];\n return acc;\n }, {});\n return data;\n }\n\n getNextStep(authClient: OktaAuthIdxInterface, _context?: IdxContext): NextStep {\n const name = this.getName();\n const inputs = this.getInputs();\n \n /* eslint-disable no-unused-vars, @typescript-eslint/no-unused-vars */\n // excludes transformed fields\n const { \n // http metas have been transformed to action\n href, \n method, \n rel, \n accepts, \n produces, \n // value has been transform to inputs\n value,\n // will be transformed to a function that resolves IdxTransaction\n action,\n ...rest \n } = this.remediation;\n /* eslint-enable no-unused-vars, @typescript-eslint/no-unused-vars */\n\n // step to handle form submission\n if (action) {\n return { \n ...rest,\n ...(!!inputs.length && { inputs }),\n action: async (params?) => {\n return authClient.idx.proceed({\n step: name,\n ...params\n });\n }\n };\n }\n\n // return whole remediation data for other steps, eg \"redirect-idp\"\n return { ...this.remediation } as NextStep;\n \n }\n\n getInputs(): Input[] {\n return (this.remediation.value || [])\n .filter(({ name }) => name !== 'stateHandle')\n .map(unwrapFormValue)\n .map(input => {\n // use string as default input type\n input.type = input.type || 'string';\n return input;\n });\n }\n\n}\n","import { warn, split2 } from '../util';\nimport * as remediators from './remediators';\nimport { RemediationValues, Remediator, RemediatorConstructor } from './remediators';\nimport { GenericRemediator } from './remediators/GenericRemediator';\nimport { OktaAuthIdxInterface, IdxFeature, NextStep, RemediateOptions, RemediationResponse, RunOptions } from './types';\nimport { IdxMessage, IdxRemediation, IdxRemediationValue, IdxResponse } from './types/idx-js';\n\nexport function isTerminalResponse(idxResponse: IdxResponse) {\n const { neededToProceed, interactionCode } = idxResponse;\n return !neededToProceed.length && !interactionCode;\n}\n\nexport function canSkipFn(idxResponse: IdxResponse) {\n return idxResponse.neededToProceed.some(({ name }) => name === 'skip');\n}\n\nexport function canResendFn(idxResponse: IdxResponse) {\n return Object.keys(idxResponse.actions).some(actionName => actionName.includes('resend'));\n}\n\nexport function getMessagesFromIdxRemediationValue(\n value?: IdxRemediationValue[]\n): IdxMessage[] | undefined {\n if (!value || !Array.isArray(value)) {\n return;\n }\n return value.reduce((messages, value) => {\n if (value.messages) {\n messages = [...messages, ...value.messages.value] as never;\n }\n if (value.form) {\n const messagesFromForm = getMessagesFromIdxRemediationValue(value.form.value) || [];\n messages = [...messages, ...messagesFromForm] as never;\n } \n if (value.options) {\n let optionValues = [];\n value.options.forEach(option => {\n if (!option.value || typeof option.value === 'string') {\n return;\n }\n optionValues = [...optionValues, option.value] as never;\n });\n const messagesFromOptions = getMessagesFromIdxRemediationValue(optionValues) || [];\n messages = [...messages, ...messagesFromOptions] as never;\n }\n return messages;\n }, []);\n}\n\nexport function getMessagesFromResponse(idxResponse: IdxResponse, options: RunOptions): IdxMessage[] {\n let messages: IdxMessage[] = [];\n const { rawIdxState, neededToProceed } = idxResponse;\n\n // Handle global messages\n const globalMessages = rawIdxState.messages?.value.map(message => message);\n if (globalMessages) {\n messages = [...messages, ...globalMessages] as never;\n }\n\n // Handle field messages for current flow\n // Preserve existing logic for general cases, remove in the next major version\n // Follow ion response format for top level messages when useGenericRemediator is true\n if (!options.useGenericRemediator) {\n for (let remediation of neededToProceed) {\n const fieldMessages = getMessagesFromIdxRemediationValue(remediation.value);\n if (fieldMessages) {\n messages = [...messages, ...fieldMessages] as never;\n }\n }\n }\n\n // API may return identical error on same field, filter by i18n key\n const seen = {};\n messages = messages.reduce((filtered, message) => {\n const key = message.i18n?.key;\n if (key && seen[key]) {\n return filtered;\n }\n seen[key] = message;\n filtered = [...filtered, message] as never;\n return filtered;\n }, []);\n return messages;\n}\n\n\nexport function getEnabledFeatures(idxResponse: IdxResponse): IdxFeature[] {\n const res = [];\n const { actions, neededToProceed } = idxResponse;\n\n if (actions['currentAuthenticator-recover']) {\n res.push(IdxFeature.PASSWORD_RECOVERY as never);\n }\n\n if (neededToProceed.some(({ name }) => name === 'select-enroll-profile')) {\n res.push(IdxFeature.REGISTRATION as never);\n }\n\n if (neededToProceed.some(({ name }) => name === 'redirect-idp')) {\n res.push(IdxFeature.SOCIAL_IDP as never);\n }\n\n if (neededToProceed.some(({ name }) => name === 'unlock-account')) {\n res.push(IdxFeature.ACCOUNT_UNLOCK as never);\n }\n\n return res;\n}\n\nexport function getAvailableSteps(\n authClient: OktaAuthIdxInterface, \n idxResponse: IdxResponse, \n useGenericRemediator?: boolean\n): NextStep[] {\n const res: NextStep[] = [];\n\n const remediatorMap: Record<string, RemediatorConstructor> = Object.values(remediators)\n .reduce((map, remediatorClass) => {\n // Only add concrete subclasses to the map\n if (remediatorClass.remediationName) {\n map[remediatorClass.remediationName] = remediatorClass;\n }\n return map;\n }, {});\n\n for (let remediation of idxResponse.neededToProceed) {\n const T = getRemediatorClass(remediation, { useGenericRemediator, remediators: remediatorMap });\n if (T) {\n const remediator: Remediator = new T(remediation);\n res.push (remediator.getNextStep(authClient, idxResponse.context) as never);\n }\n }\n\n for (const [name] of Object.entries((idxResponse.actions || {}))) {\n let stepObj = {\n name, \n action: async (params?) => {\n return authClient.idx.proceed({ \n actions: [{ name, params }] \n });\n }\n };\n if (name.startsWith('currentAuthenticator')) {\n const [part1, part2] = split2(name, '-');\n const actionObj = idxResponse.rawIdxState[part1].value[part2];\n /* eslint-disable no-unused-vars, @typescript-eslint/no-unused-vars */\n const {\n href, \n method, \n rel, \n accepts, \n produces, \n ...rest\n } = actionObj;\n /* eslint-enable no-unused-vars, @typescript-eslint/no-unused-vars */\n const value = actionObj.value?.filter(item => item.name !== 'stateHandle');\n stepObj = { \n ...rest, \n ...(value && { value }),\n ...stepObj,\n };\n }\n res.push(stepObj);\n }\n\n return res;\n}\n\nexport function filterValuesForRemediation(\n idxResponse: IdxResponse,\n remediationName: string,\n values: RemediationValues\n): RemediationValues {\n const remediations = idxResponse.neededToProceed || [];\n const remediation = remediations.find(r => r.name === remediationName);\n if (!remediation) {\n // step was specified, but remediation was not found. This is unexpected!\n warn(`filterValuesForRemediation: \"${remediationName}\" did not match any remediations`);\n return values;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const valuesForRemediation = remediation.value!.reduce((res, entry) => {\n const { name, value } = entry;\n if (name === 'stateHandle') {\n res[name] = value; // use the stateHandle value in the remediation\n } else {\n res[name] = values[name]; // use the value provided by the caller\n }\n return res;\n }, {});\n return valuesForRemediation;\n}\n\nfunction getRemediatorClass(remediation: IdxRemediation, options: RemediateOptions) {\n const { useGenericRemediator, remediators } = options;\n \n if (!remediation) {\n return undefined;\n }\n\n if (useGenericRemediator) {\n return GenericRemediator;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return remediators![remediation.name];\n}\n\n// Return first match idxRemediation in allowed remediators\n// eslint-disable-next-line complexity\nexport function getRemediator(\n idxRemediations: IdxRemediation[],\n values: RemediationValues,\n options: RemediateOptions,\n): Remediator | undefined {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const remediators = options.remediators!;\n const useGenericRemediator = options.useGenericRemediator;\n\n let remediator: Remediator;\n // remediation name specified by caller - fast-track remediator lookup \n if (options.step) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const remediation = idxRemediations.find(({ name }) => name === options.step)!;\n if (remediation) {\n const T = getRemediatorClass(remediation, options);\n return T ? new T(remediation, values, options) : undefined;\n } else {\n // step was specified, but remediation was not found. This is unexpected!\n warn(`step \"${options.step}\" did not match any remediations`);\n return;\n }\n }\n\n const remediatorCandidates: Remediator[] = [];\n if (useGenericRemediator) {\n // always pick the first remediation for when use GenericRemediator\n remediatorCandidates.push(new GenericRemediator(idxRemediations[0], values, options));\n } else {\n for (let remediation of idxRemediations) {\n const isRemeditionInFlow = Object.keys(remediators as object).includes(remediation.name);\n if (!isRemeditionInFlow) {\n continue;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const T = getRemediatorClass(remediation, options)!;\n remediator = new T(remediation, values, options);\n if (remediator.canRemediate()) {\n // found the remediator\n return remediator;\n }\n // remediator cannot handle the current values\n // maybe return for next step\n remediatorCandidates.push(remediator); \n }\n }\n \n return remediatorCandidates[0];\n}\n\n\nexport function getNextStep(\n authClient: OktaAuthIdxInterface, remediator: Remediator, idxResponse: IdxResponse\n): NextStep {\n const nextStep = remediator.getNextStep(authClient, idxResponse.context);\n const canSkip = canSkipFn(idxResponse);\n const canResend = canResendFn(idxResponse);\n return {\n ...nextStep,\n ...(canSkip && {canSkip}),\n ...(canResend && {canResend}),\n };\n}\n\nexport function handleFailedResponse(\n authClient: OktaAuthIdxInterface,\n idxResponse: IdxResponse,\n options = {}\n): RemediationResponse {\n const terminal = isTerminalResponse(idxResponse);\n const messages = getMessagesFromResponse(idxResponse, options);\n if (terminal) {\n return { idxResponse, terminal, messages };\n } else {\n const remediator = getRemediator(idxResponse.neededToProceed, {}, options);\n const nextStep = remediator && getNextStep(authClient, remediator, idxResponse);\n return {\n idxResponse,\n messages,\n ...(nextStep && { nextStep }),\n };\n }\n \n}\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\n/* eslint-disable max-statements, max-depth, complexity */\nimport { AuthSdkError } from '../errors';\nimport { RemediationValues } from './remediators';\nimport { OktaAuthIdxInterface, RemediateOptions, RemediationResponse } from './types';\nimport { \n IdxResponse,\n IdxActionParams, \n} from './types/idx-js';\nimport {\n isTerminalResponse,\n filterValuesForRemediation,\n getRemediator,\n getNextStep,\n handleFailedResponse\n} from './util';\n\nexport interface RemediateActionWithOptionalParams {\n name: string;\n params?: IdxActionParams;\n}\n\nexport type RemediateAction = string | RemediateActionWithOptionalParams;\n\n\nfunction getActionFromValues(values: RemediationValues, idxResponse: IdxResponse): string | undefined {\n // Currently support resend actions only\n return Object.keys(idxResponse.actions).find(action => !!values.resend && action.includes('-resend'));\n}\n\nfunction removeActionFromValues(values: RemediationValues): RemediationValues {\n // Currently support resend actions only\n return {\n ...values,\n resend: undefined\n };\n}\n\nfunction removeActionFromOptions(options: RemediateOptions, actionName: string): RemediateOptions {\n let actions = options.actions || [];\n actions = actions.filter(entry => {\n if (typeof entry === 'string') {\n return entry !== actionName;\n }\n return entry.name !== actionName;\n });\n\n return { ...options, actions };\n}\n\n// This function is called recursively until it reaches success or cannot be remediated\nexport async function remediate(\n authClient: OktaAuthIdxInterface,\n idxResponse: IdxResponse,\n values: RemediationValues,\n options: RemediateOptions\n): Promise<RemediationResponse> {\n let { neededToProceed, interactionCode } = idxResponse;\n const { flow } = options;\n\n // If the response contains an interaction code, there is no need to remediate\n if (interactionCode) {\n return { idxResponse };\n }\n\n const remediator = getRemediator(neededToProceed, values, options);\n\n // Try actions in idxResponse first\n const actionFromValues = getActionFromValues(values, idxResponse);\n const actionFromOptions = options.actions || [];\n const actions = [\n ...actionFromOptions,\n ...(actionFromValues && [actionFromValues] || []),\n ];\n if (actions) {\n for (let action of actions) {\n // Action can either be specified as a string, or as an object with name and optional params\n let params: IdxActionParams = {};\n if (typeof action !== 'string') {\n params = action.params || {};\n action = action.name;\n }\n let valuesWithoutExecutedAction = removeActionFromValues(values);\n let optionsWithoutExecutedAction = removeActionFromOptions(options, action);\n\n if (typeof idxResponse.actions[action] === 'function') {\n idxResponse = await idxResponse.actions[action](params);\n if (idxResponse.requestDidSucceed === false) {\n return handleFailedResponse(authClient, idxResponse, options);\n }\n if (action === 'cancel') {\n return { idxResponse, canceled: true };\n }\n return remediate(\n authClient, \n idxResponse, \n valuesWithoutExecutedAction, \n optionsWithoutExecutedAction\n ); // recursive call\n }\n\n // search for action in remediation list\n const remediationAction = neededToProceed.find(({ name }) => name === action);\n if (remediationAction) {\n idxResponse = await idxResponse.proceed(action, params);\n if (idxResponse.requestDidSucceed === false) {\n return handleFailedResponse(authClient, idxResponse, options);\n }\n return remediate(authClient, idxResponse, values, optionsWithoutExecutedAction); // recursive call\n }\n }\n }\n\n // Do not attempt to remediate if response is in terminal state\n const terminal = isTerminalResponse(idxResponse);\n if (terminal) {\n return { idxResponse, terminal };\n }\n\n if (!remediator) {\n // With options.step, remediator is not required\n if (options.step) {\n values = filterValuesForRemediation(idxResponse, options.step, values); // include only requested values\n idxResponse = await idxResponse.proceed(options.step, values);\n if (idxResponse.requestDidSucceed === false) {\n return handleFailedResponse(authClient, idxResponse, options);\n }\n return { idxResponse };\n }\n\n // With default flow, remediator is not required\n if (flow === 'default') {\n return { idxResponse };\n }\n throw new AuthSdkError(`\n No remediation can match current flow, check policy settings in your org.\n Remediations: [${neededToProceed.reduce((acc, curr) => acc ? acc + ' ,' + curr.name : curr.name, '')}]\n `);\n }\n\n // Return next step to the caller\n if (!remediator.canRemediate()) {\n const nextStep = getNextStep(authClient, remediator, idxResponse);\n return {\n idxResponse,\n nextStep,\n };\n }\n\n const name = remediator.getName();\n const data = remediator.getData();\n\n idxResponse = await idxResponse.proceed(name, data);\n if (idxResponse.requestDidSucceed === false) {\n return handleFailedResponse(authClient, idxResponse, options);\n }\n // We may want to trim the values bag for the next remediation\n // Let the remediator decide what the values should be (default to current values)\n values = remediator.getValuesAfterProceed();\n options = { ...options, step: undefined }; // do not re-use the step\n\n // generic remediator should not auto proceed in pending status\n // return nextStep directly\n if (options.useGenericRemediator && !idxResponse.interactionCode && !isTerminalResponse(idxResponse)) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const gr = getRemediator(idxResponse.neededToProceed, values, options)!;\n const nextStep = getNextStep(authClient, gr, idxResponse);\n return {\n idxResponse,\n nextStep,\n };\n }\n \n return remediate(authClient, idxResponse, values, options); // recursive call\n\n}\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\nimport { RemediationFlow } from './RemediationFlow';\nimport { \n Identify,\n SelectAuthenticatorAuthenticate,\n ChallengeAuthenticator,\n ReEnrollAuthenticator,\n RedirectIdp,\n AuthenticatorEnrollmentData,\n SelectAuthenticatorEnroll,\n EnrollAuthenticator,\n AuthenticatorVerificationData,\n EnrollPoll,\n ChallengePoll,\n SelectEnrollmentChannel,\n EnrollmentChannelData,\n Skip\n} from '../remediators';\n\nexport const AuthenticationFlow: RemediationFlow = {\n 'identify': Identify,\n 'select-authenticator-authenticate': SelectAuthenticatorAuthenticate,\n 'select-authenticator-enroll': SelectAuthenticatorEnroll,\n 'authenticator-enrollment-data': AuthenticatorEnrollmentData,\n 'authenticator-verification-data': AuthenticatorVerificationData,\n 'enroll-authenticator': EnrollAuthenticator,\n 'challenge-authenticator': ChallengeAuthenticator,\n 'challenge-poll': ChallengePoll,\n 'reenroll-authenticator': ReEnrollAuthenticator,\n 'enroll-poll': EnrollPoll,\n 'select-enrollment-channel': SelectEnrollmentChannel,\n 'enrollment-channel-data': EnrollmentChannelData,\n 'redirect-idp': RedirectIdp,\n 'skip': Skip,\n};\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\nimport { RemediationFlow } from './RemediationFlow';\nimport {\n Identify,\n SelectAuthenticatorAuthenticate,\n ChallengeAuthenticator,\n AuthenticatorVerificationData,\n ResetAuthenticator,\n ReEnrollAuthenticator,\n SelectAuthenticatorEnroll,\n AuthenticatorEnrollmentData,\n EnrollPoll\n} from '../remediators';\n\nexport const PasswordRecoveryFlow: RemediationFlow = {\n 'identify': Identify,\n 'identify-recovery': Identify,\n 'select-authenticator-authenticate': SelectAuthenticatorAuthenticate,\n 'select-authenticator-enroll': SelectAuthenticatorEnroll,\n 'challenge-authenticator': ChallengeAuthenticator,\n 'authenticator-verification-data': AuthenticatorVerificationData,\n 'authenticator-enrollment-data': AuthenticatorEnrollmentData,\n 'reset-authenticator': ResetAuthenticator,\n 'reenroll-authenticator': ReEnrollAuthenticator,\n 'enroll-poll': EnrollPoll,\n};\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\nimport { RemediationFlow } from './RemediationFlow';\nimport { \n SelectEnrollProfile,\n EnrollPoll,\n SelectEnrollmentChannel,\n EnrollmentChannelData,\n EnrollProfile,\n SelectAuthenticatorEnroll,\n EnrollAuthenticator,\n AuthenticatorEnrollmentData,\n Skip,\n} from '../remediators';\n\nexport const RegistrationFlow: RemediationFlow = {\n 'select-enroll-profile': SelectEnrollProfile,\n 'enroll-profile': EnrollProfile,\n 'authenticator-enrollment-data': AuthenticatorEnrollmentData,\n 'select-authenticator-enroll': SelectAuthenticatorEnroll,\n 'enroll-poll': EnrollPoll,\n 'select-enrollment-channel': SelectEnrollmentChannel,\n 'enrollment-channel-data': EnrollmentChannelData,\n 'enroll-authenticator': EnrollAuthenticator,\n 'skip': Skip,\n};\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\nimport { RemediationFlow } from './RemediationFlow';\nimport {\n Identify,\n SelectAuthenticatorUnlockAccount,\n SelectAuthenticatorAuthenticate,\n ChallengeAuthenticator,\n ChallengePoll,\n AuthenticatorVerificationData\n} from '../remediators';\n\nexport const AccountUnlockFlow: RemediationFlow = {\n 'identify': Identify,\n // NOTE: unlock-account is purposely not included. Handled as action\n // because it's a rememdiation which requires no input\n // 'unlock-account': UnlockAccount,\n 'select-authenticator-unlock-account': SelectAuthenticatorUnlockAccount,\n 'select-authenticator-authenticate': SelectAuthenticatorAuthenticate,\n 'challenge-authenticator': ChallengeAuthenticator,\n 'challenge-poll': ChallengePoll,\n 'authenticator-verification-data': AuthenticatorVerificationData,\n};\n","import { OktaAuthIdxInterface, FlowIdentifier } from '../types';\nimport { AuthenticationFlow } from './AuthenticationFlow';\nimport { PasswordRecoveryFlow } from './PasswordRecoveryFlow';\nimport { RegistrationFlow } from './RegistrationFlow';\nimport { AccountUnlockFlow } from './AccountUnlockFlow';\nimport { RemediationFlow } from './RemediationFlow';\n\nexport interface FlowSpecification {\n flow: FlowIdentifier;\n remediators: RemediationFlow;\n actions?: string[];\n withCredentials?: boolean;\n}\n\n// eslint-disable-next-line complexity\nexport function getFlowSpecification(\n oktaAuth: OktaAuthIdxInterface,\n flow: FlowIdentifier = 'default'\n): FlowSpecification {\n let remediators, actions, withCredentials = true;\n switch (flow) {\n case 'register':\n case 'signup':\n case 'enrollProfile':\n remediators = RegistrationFlow;\n withCredentials = false;\n break;\n case 'recoverPassword':\n case 'resetPassword':\n remediators = PasswordRecoveryFlow;\n actions = [\n 'currentAuthenticator-recover', \n 'currentAuthenticatorEnrollment-recover'\n ];\n withCredentials = false;\n break;\n case 'unlockAccount':\n remediators = AccountUnlockFlow;\n withCredentials = false;\n actions = [\n 'unlock-account'\n ];\n break;\n case 'authenticate':\n case 'login':\n case 'signin':\n remediators = AuthenticationFlow;\n break;\n default:\n // default case has no flow monitor\n remediators = AuthenticationFlow;\n break;\n }\n return { flow, remediators, actions, withCredentials };\n}\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\n/* eslint-disable max-statements, complexity, max-depth */\nimport { interact } from './interact';\nimport { introspect } from './introspect';\nimport { remediate } from './remediate';\nimport { getFlowSpecification } from './flow';\nimport * as remediators from './remediators';\nimport { \n OktaAuthIdxInterface,\n IdxStatus,\n IdxTransaction,\n IdxFeature,\n NextStep,\n RunOptions,\n IdxTransactionMeta,\n} from './types';\nimport { IdxMessage, IdxResponse } from './types/idx-js';\nimport { getSavedTransactionMeta, saveTransactionMeta } from './transactionMeta';\nimport { getAvailableSteps, getEnabledFeatures, getMessagesFromResponse, isTerminalResponse } from './util';\nimport { Tokens } from '../oidc/types';\nimport { APIError } from '../errors/types';\ndeclare interface RunData {\n options: RunOptions;\n values: remediators.RemediationValues;\n status?: IdxStatus;\n tokens?: Tokens;\n nextStep?: NextStep;\n messages?: IdxMessage[];\n error?: APIError | IdxResponse;\n meta?: IdxTransactionMeta;\n enabledFeatures?: IdxFeature[];\n availableSteps?: NextStep[];\n idxResponse?: IdxResponse;\n canceled?: boolean;\n interactionCode?: string;\n shouldSaveResponse?: boolean;\n shouldClearTransaction?: boolean;\n clearSharedStorage?: boolean;\n terminal?: boolean;\n}\n\nfunction initializeValues(options: RunOptions) {\n // remove known options, everything else is assumed to be a value\n const knownOptions = [\n 'flow', \n 'remediators', \n 'actions', \n 'withCredentials', \n 'step',\n 'useGenericRemediator',\n 'exchangeCodeForTokens',\n ];\n const values = { ...options };\n knownOptions.forEach(option => {\n delete values[option];\n });\n return values;\n}\n\nfunction initializeData(authClient, data: RunData): RunData {\n let { options } = data;\n options = {\n ...authClient.options.idx,\n ...options\n };\n let {\n flow,\n withCredentials,\n remediators,\n actions,\n } = options;\n\n const status = IdxStatus.PENDING;\n\n // certain options can be set by the flow specification\n flow = flow || authClient.idx.getFlow() || 'default';\n if (flow) {\n authClient.idx.setFlow(flow);\n const flowSpec = getFlowSpecification(authClient, flow);\n // Favor option values over flow spec\n withCredentials = (typeof withCredentials !== 'undefined') ? withCredentials : flowSpec.withCredentials;\n remediators = remediators || flowSpec.remediators;\n actions = actions || flowSpec.actions;\n }\n\n return { \n ...data,\n options: { \n ...options, \n flow, \n withCredentials, \n remediators, \n actions,\n },\n status\n };\n}\n\nasync function getDataFromIntrospect(authClient, data: RunData): Promise<RunData> {\n const { options } = data;\n const {\n stateHandle,\n withCredentials,\n version,\n state,\n scopes,\n recoveryToken,\n activationToken,\n maxAge,\n acrValues,\n nonce,\n } = options;\n\n let idxResponse;\n let meta = getSavedTransactionMeta(authClient, { state, recoveryToken, activationToken }); // may be undefined\n\n if (stateHandle) {\n idxResponse = await introspect(authClient, { withCredentials, version, stateHandle });\n } else {\n let interactionHandle = meta?.interactionHandle; // may be undefined\n if (!interactionHandle) {\n // start a new transaction\n authClient.transactionManager.clear();\n const interactResponse = await interact(authClient, {\n withCredentials,\n state,\n scopes,\n activationToken,\n recoveryToken,\n maxAge,\n acrValues,\n nonce,\n }); \n interactionHandle = interactResponse.interactionHandle;\n meta = interactResponse.meta;\n }\n \n // Introspect to get idx response\n idxResponse = await introspect(authClient, { withCredentials, version, interactionHandle });\n }\n return { ...data, idxResponse, meta };\n}\n\nasync function getDataFromRemediate(authClient, data: RunData): Promise<RunData> {\n let {\n idxResponse,\n options,\n values\n } = data;\n\n const {\n autoRemediate,\n remediators,\n actions,\n flow,\n step,\n useGenericRemediator,\n } = options;\n \n const shouldRemediate = (autoRemediate !== false && (remediators || actions || step));\n if (!shouldRemediate) {\n return data;\n }\n\n values = { \n ...values, \n stateHandle: idxResponse!.rawIdxState.stateHandle \n };\n\n // Can we handle the remediations?\n const { \n idxResponse: idxResponseFromRemediation, \n nextStep,\n canceled,\n } = await remediate(\n authClient,\n idxResponse!, \n values, \n {\n remediators,\n actions,\n flow,\n step,\n useGenericRemediator,\n }\n );\n idxResponse = idxResponseFromRemediation;\n\n return { ...data, idxResponse, nextStep, canceled };\n}\n\nasync function getTokens(authClient, data: RunData): Promise<Tokens> {\n let { meta, idxResponse } = data;\n const { interactionCode } = idxResponse as IdxResponse;\n const {\n clientId,\n codeVerifier,\n ignoreSignature,\n redirectUri,\n urls,\n scopes,\n } = meta as IdxTransactionMeta;\n const tokenResponse = await authClient.token.exchangeCodeForTokens({\n interactionCode,\n clientId,\n codeVerifier,\n ignoreSignature,\n redirectUri,\n scopes\n }, urls);\n return tokenResponse.tokens;\n}\n\nasync function finalizeData(authClient, data: RunData): Promise<RunData> {\n let {\n options,\n idxResponse,\n canceled,\n status,\n } = data;\n const { exchangeCodeForTokens } = options;\n let shouldSaveResponse = false;\n let shouldClearTransaction = false;\n let clearSharedStorage = true;\n let interactionCode;\n let tokens;\n let enabledFeatures;\n let availableSteps;\n let messages;\n let terminal;\n\n if (idxResponse) {\n shouldSaveResponse = !!(idxResponse.requestDidSucceed || idxResponse.stepUp);\n enabledFeatures = getEnabledFeatures(idxResponse);\n availableSteps = getAvailableSteps(authClient, idxResponse, options.useGenericRemediator);\n messages = getMessagesFromResponse(idxResponse, options);\n terminal = isTerminalResponse(idxResponse);\n }\n\n if (terminal) {\n status = IdxStatus.TERMINAL;\n\n // In most cases a terminal response should not clear transaction data. The user should cancel or skip to continue.\n // A terminal \"success\" is a non-error response with no further actions available.\n // In these narrow cases, saved transaction data should be cleared.\n // One example of a terminal success is when the email verify flow is continued in another tab\n const hasActions = Object.keys(idxResponse!.actions).length > 0;\n const hasErrors = !!messages.find(msg => msg.class === 'ERROR');\n const isTerminalSuccess = !hasActions && !hasErrors && idxResponse!.requestDidSucceed === true;\n if (isTerminalSuccess) {\n shouldClearTransaction = true;\n } else {\n // save response if there are actions available (ignore messages)\n shouldSaveResponse = !!hasActions;\n }\n // leave shared storage intact so the transaction can be continued in another tab\n clearSharedStorage = false;\n } else if (canceled) {\n status = IdxStatus.CANCELED;\n shouldClearTransaction = true;\n } else if (idxResponse?.interactionCode) { \n interactionCode = idxResponse.interactionCode;\n if (exchangeCodeForTokens === false) {\n status = IdxStatus.SUCCESS;\n shouldClearTransaction = false;\n } else {\n tokens = await getTokens(authClient, data);\n status = IdxStatus.SUCCESS;\n shouldClearTransaction = true;\n }\n }\n return {\n ...data,\n status,\n interactionCode,\n tokens,\n shouldSaveResponse,\n shouldClearTransaction,\n clearSharedStorage,\n enabledFeatures,\n availableSteps,\n messages,\n terminal\n };\n}\n\nexport async function run(\n authClient: OktaAuthIdxInterface, \n options: RunOptions = {},\n): Promise<IdxTransaction> {\n let data: RunData = {\n options,\n values: initializeValues(options)\n };\n\n data = initializeData(authClient, data);\n data = await getDataFromIntrospect(authClient, data);\n data = await getDataFromRemediate(authClient, data);\n data = await finalizeData(authClient, data);\n\n const {\n idxResponse,\n meta,\n shouldSaveResponse,\n shouldClearTransaction,\n clearSharedStorage,\n status,\n enabledFeatures,\n availableSteps,\n tokens,\n nextStep,\n messages,\n error,\n interactionCode\n } = data;\n\n if (shouldClearTransaction) {\n authClient.transactionManager.clear({ clearSharedStorage });\n }\n else {\n // ensures state is saved to sessionStorage\n saveTransactionMeta(authClient, { ...meta });\n\n if (shouldSaveResponse) {\n // Save intermediate idx response in storage to reduce introspect call\n const { rawIdxState: rawIdxResponse, requestDidSucceed } = idxResponse!;\n authClient.transactionManager.saveIdxResponse({\n rawIdxResponse,\n requestDidSucceed,\n stateHandle: idxResponse!.context?.stateHandle,\n interactionHandle: meta?.interactionHandle\n });\n }\n }\n \n // copy all fields from idxResponse which are needed by the widget\n const { actions, context, neededToProceed, proceed, rawIdxState, requestDidSucceed, stepUp } = idxResponse || {};\n return {\n status: status!,\n ...(meta && { meta }),\n ...(enabledFeatures && { enabledFeatures }),\n ...(availableSteps && { availableSteps }),\n ...(tokens && { tokens }),\n ...(nextStep && { nextStep }),\n ...(messages && messages.length && { messages }),\n ...(error && { error }),\n ...(stepUp && { stepUp }),\n interactionCode, // if options.exchangeCodeForTokens is false\n\n // from idx-js\n actions: actions!,\n context: context!,\n neededToProceed: neededToProceed!,\n proceed: proceed!,\n rawIdxState: rawIdxState!,\n requestDidSucceed\n };\n}\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\nimport { \n OktaAuthIdxInterface,\n IdxTransaction,\n AuthenticatorKey,\n AuthenticationOptions\n} from './types';\nimport { run } from './run';\n\nexport async function authenticate(\n authClient: OktaAuthIdxInterface, options: AuthenticationOptions = {}\n): Promise<IdxTransaction> {\n if (options.password && !options.authenticator) {\n options.authenticator = AuthenticatorKey.OKTA_PASSWORD;\n }\n return run(authClient, { \n ...options, \n flow: 'authenticate'\n });\n}\n","/*!\n * Copyright (c) 2021, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { OktaAuthIdxInterface, CancelOptions, IdxTransactionMeta } from './types';\nimport { run } from './run';\nimport { getFlowSpecification } from './flow';\n\nexport async function cancel (authClient: OktaAuthIdxInterface, options?: CancelOptions) {\n const meta = authClient.transactionManager.load() as IdxTransactionMeta;\n const flowSpec = getFlowSpecification(authClient, meta.flow);\n return run(authClient, {\n ...options,\n ...flowSpec,\n actions: ['cancel']\n });\n}\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n *\n */\n/* eslint-disable complexity, max-statements */\n\nexport function urlParamsToObject(hashOrSearch: string) {\n // Predefine regexs for parsing hash\n var plus2space = /\\+/g;\n var paramSplit = /([^&=]+)=?([^&]*)/g;\n var fragment = hashOrSearch || '';\n\n // Some hash based routers will automatically add a / character after the hash\n if (fragment.charAt(0) === '#' && fragment.charAt(1) === '/') {\n fragment = fragment.substring(2);\n }\n\n // Remove the leading # or ?\n if (fragment.charAt(0) === '#' || fragment.charAt(0) === '?') {\n fragment = fragment.substring(1);\n }\n\n\n var obj = {};\n\n // Loop until we have no more params\n var param;\n while (true) { // eslint-disable-line no-constant-condition\n param = paramSplit.exec(fragment);\n if (!param) { break; }\n\n var key = param[1];\n var value = param[2];\n\n // id_token should remain base64url encoded\n if (key === 'id_token' || key === 'access_token' || key === 'code') {\n obj[key] = value;\n } else {\n obj[key] = decodeURIComponent(value.replace(plus2space, ' '));\n }\n }\n return obj;\n}\n","\n/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { OktaAuthIdxInterface } from './types';\n\nimport CustomError from '../errors/CustomError';\nimport { urlParamsToObject } from '../oidc/util/urlParams';\nimport { EmailVerifyCallbackResponse } from './types/api';\n\nexport class EmailVerifyCallbackError extends CustomError {\n state: string;\n otp: string;\n\n constructor(state: string, otp: string) {\n super(`Enter the OTP code in the originating client: ${otp}`);\n this.name = 'EmailVerifyCallbackError';\n this.state = state;\n this.otp = otp;\n }\n}\n\nexport function isEmailVerifyCallbackError(error: Error) {\n return (error.name === 'EmailVerifyCallbackError');\n}\n\n// Check if state && otp have been passed back in the url\nexport function isEmailVerifyCallback (urlPath: string): boolean {\n return /(otp=)/i.test(urlPath) && /(state=)/i.test(urlPath);\n}\n\n// Parse state and otp from a urlPath (should be either a search or fragment from the URL)\nexport function parseEmailVerifyCallback(urlPath: string): EmailVerifyCallbackResponse {\n return urlParamsToObject(urlPath) as EmailVerifyCallbackResponse;\n}\n\nexport async function handleEmailVerifyCallback(authClient: OktaAuthIdxInterface, search: string) {\n if (isEmailVerifyCallback(search)) {\n const { state, otp } = parseEmailVerifyCallback(search);\n if (authClient.idx.canProceed({ state })) {\n // same browser / device\n return await authClient.idx.proceed({ state, otp });\n } else {\n // different browser or device\n throw new EmailVerifyCallbackError(state, otp);\n }\n }\n}\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\nimport { \n OktaAuthIdxInterface,\n IdxTransaction,\n ProceedOptions,\n} from './types';\nimport { run } from './run';\nimport { getSavedTransactionMeta } from './transactionMeta';\nimport { AuthSdkError } from '../errors';\n\nexport function canProceed(authClient: OktaAuthIdxInterface, options: ProceedOptions = {}): boolean {\n const meta = getSavedTransactionMeta(authClient, options);\n return !!(meta || options.stateHandle);\n}\n\nexport async function proceed(\n authClient: OktaAuthIdxInterface,\n options: ProceedOptions = {}\n): Promise<IdxTransaction> {\n\n if (!canProceed(authClient, options)) {\n throw new AuthSdkError('Unable to proceed: saved transaction could not be loaded');\n }\n\n let { flow, state } = options;\n if (!flow) {\n const meta = getSavedTransactionMeta(authClient, { state });\n flow = meta?.flow;\n }\n\n return run(authClient, { \n ...options, \n flow\n });\n}\n","/*!\n * Copyright (c) 2021-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { proceed } from './proceed';\n\nimport { \n IdxPollOptions,\n IdxTransaction,\n OktaAuthIdxInterface,\n} from './types';\nimport { getSavedTransactionMeta } from './transactionMeta';\nimport { warn } from '../util';\n\nexport async function poll(authClient: OktaAuthIdxInterface, options: IdxPollOptions = {}): Promise<IdxTransaction> {\n let transaction = await proceed(authClient, {\n startPolling: true\n });\n\n const meta = getSavedTransactionMeta(authClient);\n let availablePollingRemeditaions = meta?.remediations?.find(remediation => remediation.includes('poll'));\n if (!availablePollingRemeditaions?.length) {\n warn('No polling remediations available at the current IDX flow stage');\n }\n\n if (Number.isInteger(options.refresh)) {\n return new Promise(function (resolve, reject) {\n setTimeout(async function () {\n try {\n const refresh = transaction.nextStep?.poll?.refresh;\n if (refresh) {\n resolve(poll(authClient, {\n refresh\n }));\n } else {\n resolve(transaction);\n }\n } catch (err) {\n reject(err);\n }\n }, options.refresh);\n });\n }\n\n return transaction;\n}\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\nimport { run } from './run';\nimport { OktaAuthIdxInterface, IdxTransaction, StartOptions } from './types';\n\nexport async function startTransaction(\n authClient: OktaAuthIdxInterface, \n options: StartOptions = {}\n): Promise<IdxTransaction> {\n // Clear IDX response cache and saved transaction meta (if any)\n authClient.transactionManager.clear();\n\n return run(authClient, {\n exchangeCodeForTokens: false,\n ...options\n });\n}\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\nimport { run } from './run';\nimport { hasSavedInteractionHandle } from './transactionMeta';\nimport { startTransaction } from './startTransaction';\nimport { AuthSdkError } from '../errors';\nimport { \n RegistrationOptions, \n IdxTransaction, \n OktaAuthIdxInterface, \n IdxFeature,\n} from './types';\n\nexport async function register(\n authClient: OktaAuthIdxInterface, options: RegistrationOptions = {}\n): Promise<IdxTransaction> {\n\n // Only check at the beginning of the transaction\n if (!hasSavedInteractionHandle(authClient)) {\n const { enabledFeatures } = await startTransaction(authClient, {\n ...options,\n flow: 'register',\n autoRemediate: false\n });\n if (!options.activationToken && enabledFeatures && !enabledFeatures.includes(IdxFeature.REGISTRATION)) {\n throw new AuthSdkError('Registration is not supported based on your current org configuration.');\n }\n }\n\n return run(authClient, {\n ...options,\n flow: 'register'\n });\n}\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\nimport { run } from './run';\nimport { getFlowSpecification } from './flow';\nimport { \n OktaAuthIdxInterface, \n PasswordRecoveryOptions, \n IdxTransaction,\n} from './types';\n\nexport async function recoverPassword(\n authClient: OktaAuthIdxInterface, options: PasswordRecoveryOptions = {}\n): Promise<IdxTransaction> {\n const flowSpec = getFlowSpecification(authClient, 'recoverPassword');\n return run(\n authClient, \n { \n ...options,\n ...flowSpec,\n }\n );\n}\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\nimport { AuthSdkError, OAuthError } from '../errors';\nimport { IdxTransactionMeta } from './types/meta';\nimport { OktaAuthIdxInterface } from './types';\n\nexport async function handleInteractionCodeRedirect(\n authClient: OktaAuthIdxInterface, \n url: string\n): Promise<void> {\n const meta = authClient.transactionManager.load() as IdxTransactionMeta;\n if (!meta) {\n throw new AuthSdkError('No transaction data was found in storage');\n }\n\n const { \n codeVerifier,\n state: savedState \n } = meta;\n const { \n searchParams\n // URL API has been added to the polyfill\n // eslint-disable-next-line compat/compat\n } = new URL(url); \n const state = searchParams.get('state');\n const interactionCode = searchParams.get('interaction_code');\n\n // Error handling\n const error = searchParams.get('error');\n if (error) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n throw new OAuthError(error, searchParams.get('error_description')!);\n }\n if (state !== savedState) {\n throw new AuthSdkError('State in redirect uri does not match with transaction state');\n }\n if (!interactionCode) {\n throw new AuthSdkError('Unable to parse interaction_code from the url');\n }\n \n // Save tokens to storage\n const { tokens } = await authClient.token.exchangeCodeForTokens({ interactionCode, codeVerifier });\n authClient.tokenManager.setTokens(tokens);\n}","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\nimport { run } from './run';\nimport { hasSavedInteractionHandle } from './transactionMeta';\nimport { startTransaction } from './startTransaction';\nimport { AuthSdkError } from '../errors';\nimport { \n OktaAuthIdxInterface, \n AccountUnlockOptions, \n IdxTransaction,\n IdxFeature,\n} from './types';\n\nexport async function unlockAccount(\n authClient: OktaAuthIdxInterface, options: AccountUnlockOptions = {}\n): Promise<IdxTransaction> {\n options.flow = 'unlockAccount';\n\n // Only check at the beginning of the transaction\n if (!hasSavedInteractionHandle(authClient)) {\n const { enabledFeatures } = await startTransaction(authClient, { ...options, autoRemediate: false });\n if (enabledFeatures && !enabledFeatures.includes(IdxFeature.ACCOUNT_UNLOCK)) {\n throw new AuthSdkError(\n 'Self Service Account Unlock is not supported based on your current org configuration.'\n );\n }\n }\n\n return run(authClient, { ...options });\n}\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\nimport { OktaAuthOAuthInterface } from '../types';\nimport { OAuthError, AuthApiError, isOAuthError } from '../../errors';\n\nexport function isInteractionRequiredError(error: Error) {\n if (error.name !== 'OAuthError') {\n return false;\n }\n const oauthError = error as OAuthError;\n return (oauthError.errorCode === 'interaction_required');\n}\n\nexport function isAuthorizationCodeError(sdk: OktaAuthOAuthInterface, error: Error) {\n if (error.name !== 'AuthApiError') {\n return false;\n }\n const authApiError = error as AuthApiError;\n // xhr property doesn't seem to match XMLHttpRequest type\n const errorResponse = authApiError.xhr as unknown as Record<string, unknown>;\n const responseJSON = errorResponse?.responseJSON as Record<string, unknown>;\n return sdk.options.pkce && (responseJSON?.error as string === 'invalid_grant');\n}\n\nexport function isRefreshTokenInvalidError(error: unknown): boolean {\n // error: {\"error\":\"invalid_grant\",\"error_description\":\"The refresh token is invalid or expired.\"}\n return isOAuthError(error) &&\n error.errorCode === 'invalid_grant' &&\n error.errorSummary === 'The refresh token is invalid or expired.';\n}\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n *\n */\n/* global window */\n/* eslint-disable complexity, max-statements */\nimport { OktaAuthOAuthOptions, OktaAuthOAuthInterface } from '../types';\n\nexport function hasTokensInHash(hash: string): boolean {\n return /((id|access)_token=)/i.test(hash);\n}\n\n// authorization_code\nexport function hasAuthorizationCode(hashOrSearch: string): boolean {\n return /(code=)/i.test(hashOrSearch);\n}\n\n// interaction_code\nexport function hasInteractionCode(hashOrSearch: string): boolean {\n return /(interaction_code=)/i.test(hashOrSearch);\n}\n\nexport function hasErrorInUrl(hashOrSearch: string): boolean {\n return /(error=)/i.test(hashOrSearch) || /(error_description)/i.test(hashOrSearch);\n}\n\nexport function isRedirectUri(uri: string, sdk: OktaAuthOAuthInterface): boolean {\n var authParams = sdk.options;\n if (!uri || !authParams.redirectUri) {\n return false;\n }\n return uri.indexOf(authParams.redirectUri) === 0;\n}\n\nexport function isCodeFlow(options: OktaAuthOAuthOptions) {\n return options.pkce || options.responseType === 'code' || options.responseMode === 'query';\n}\n\nexport function getHashOrSearch(options: OktaAuthOAuthOptions) {\n var codeFlow = isCodeFlow(options);\n var useQuery = codeFlow && options.responseMode !== 'fragment';\n return useQuery ? window.location.search : window.location.hash;\n}\n\n/**\n * Check if tokens or a code have been passed back into the url, which happens in\n * the OIDC (including social auth IDP) redirect flow.\n */\nexport function isLoginRedirect (sdk: OktaAuthOAuthInterface) {\n // First check, is this a redirect URI?\n if (!isRedirectUri(window.location.href, sdk)){\n return false;\n }\n\n // The location contains either a code, token, or an error + error_description\n var codeFlow = isCodeFlow(sdk.options);\n var hashOrSearch = getHashOrSearch(sdk.options);\n\n if (hasErrorInUrl(hashOrSearch)) {\n return true;\n }\n\n if (codeFlow) {\n var hasCode = hasAuthorizationCode(hashOrSearch) || hasInteractionCode(hashOrSearch);\n return hasCode;\n }\n\n // implicit flow, will always be hash fragment\n return hasTokensInHash(window.location.hash);\n}\n\n/**\n * Check if error=interaction_required has been passed back in the url, which happens in\n * the social auth IDP redirect flow.\n */\nexport function isInteractionRequired (sdk: OktaAuthOAuthInterface, hashOrSearch?: string) {\n if (!hashOrSearch) { // web only\n // First check, is this a redirect URI?\n if (!isLoginRedirect(sdk)){\n return false;\n }\n \n hashOrSearch = getHashOrSearch(sdk.options);\n }\n return /(error=interaction_required)/i.test(hashOrSearch);\n}","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n *\n */\n\nimport { isInteractionRequired, isInteractionRequiredError } from '../../oidc';\nimport { authenticate } from '../authenticate';\nimport { cancel } from '../cancel';\nimport {\n handleEmailVerifyCallback,\n isEmailVerifyCallback,\n isEmailVerifyCallbackError,\n parseEmailVerifyCallback\n} from '../emailVerify';\nimport { handleInteractionCodeRedirect } from '../handleInteractionCodeRedirect';\nimport { makeIdxState } from '../idxState';\nimport { interact } from '../interact';\nimport { introspect } from '../introspect';\nimport { poll } from '../poll';\nimport { canProceed, proceed } from '../proceed';\nimport { recoverPassword } from '../recoverPassword';\nimport { register } from '../register';\nimport { startTransaction } from '../startTransaction';\nimport {\n clearTransactionMeta,\n createTransactionMeta,\n getSavedTransactionMeta,\n getTransactionMeta,\n isTransactionMetaValid,\n saveTransactionMeta\n} from '../transactionMeta';\nimport { FlowIdentifier, IdxAPI, OktaAuthIdxInterface } from '../types';\nimport { unlockAccount } from '../unlockAccount';\n\n// Factory\nexport function createIdxAPI(sdk: OktaAuthIdxInterface): IdxAPI {\n const boundStartTransaction = startTransaction.bind(null, sdk);\n const idx = {\n interact: interact.bind(null, sdk),\n introspect: introspect.bind(null, sdk),\n makeIdxResponse: makeIdxState.bind(null, sdk),\n \n authenticate: authenticate.bind(null, sdk),\n register: register.bind(null, sdk),\n start: boundStartTransaction,\n startTransaction: boundStartTransaction, // Use `start` instead. `startTransaction` will be removed in 7.0\n poll: poll.bind(null, sdk),\n proceed: proceed.bind(null, sdk),\n cancel: cancel.bind(null, sdk),\n recoverPassword: recoverPassword.bind(null, sdk),\n\n // oauth redirect callback\n handleInteractionCodeRedirect: handleInteractionCodeRedirect.bind(null, sdk),\n\n // interaction required callback\n isInteractionRequired: isInteractionRequired.bind(null, sdk),\n isInteractionRequiredError,\n\n // email verify callback\n handleEmailVerifyCallback: handleEmailVerifyCallback.bind(null, sdk),\n isEmailVerifyCallback,\n parseEmailVerifyCallback,\n isEmailVerifyCallbackError,\n \n getSavedTransactionMeta: getSavedTransactionMeta.bind(null, sdk),\n createTransactionMeta: createTransactionMeta.bind(null, sdk),\n getTransactionMeta: getTransactionMeta.bind(null, sdk),\n saveTransactionMeta: saveTransactionMeta.bind(null, sdk),\n clearTransactionMeta: clearTransactionMeta.bind(null, sdk),\n isTransactionMetaValid,\n setFlow: (flow: FlowIdentifier) => {\n sdk.options.flow = flow;\n },\n getFlow: (): FlowIdentifier | undefined => {\n return sdk.options.flow;\n },\n canProceed: canProceed.bind(null, sdk),\n unlockAccount: unlockAccount.bind(null, sdk),\n };\n return idx;\n}\n\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\n/* global atob, btoa, crypto */\nconst a = function(str) { return atob(str); };\nconst b = function (str) { return btoa(str); };\nconst c = typeof crypto === 'undefined' ? null : crypto;\n\nexport { a as atob, b as btoa, c as webcrypto };\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n/* eslint-disable node/no-unsupported-features/node-builtins */\n/* global document, window, TextEncoder, navigator */\n\nimport { webcrypto } from './crypto';\n\nconst isWindowsPhone = /windows phone|iemobile|wpdesktop/i;\t\n\nexport function isBrowser() {\n return typeof document !== 'undefined' && typeof window !== 'undefined';\n}\n\nexport function isIE11OrLess() {\n if (!isBrowser()) {\n return false;\n }\n const documentMode = (document as any).documentMode;\n return !!documentMode && documentMode <= 11;\n}\n\nexport function getUserAgent() {\n return navigator.userAgent;\n}\n\nexport function isFingerprintSupported() {\n const agent = getUserAgent();\n return agent && !isWindowsPhone.test(agent);\t\n}\n\nexport function isPopupPostMessageSupported() {\n if (!isBrowser()) {\n return false;\n }\n const documentMode = (document as any).documentMode;\n var isIE8or9 = documentMode && documentMode < 10;\n if (typeof window.postMessage !== 'undefined' && !isIE8or9) {\n return true;\n }\n return false;\n}\n\nexport function isTokenVerifySupported() {\n return typeof webcrypto !== 'undefined'\n && webcrypto !== null\n && typeof webcrypto.subtle !== 'undefined'\n && typeof Uint8Array !== 'undefined';\n}\n\nexport function hasTextEncoder() {\n return typeof TextEncoder !== 'undefined';\n}\n\nexport function isPKCESupported() {\n return isTokenVerifySupported() && hasTextEncoder();\n}\n\nexport function isHTTPS() {\n if (!isBrowser()) {\n return false;\n }\n return window.location.protocol === 'https:';\n}\n\nexport function isLocalhost() {\n // eslint-disable-next-line compat/compat\n return isBrowser() && window.location.hostname === 'localhost';\n}\n\n","\n\n// Do not use this type in code, so it won't be emitted in the declaration output\nimport { removeNils } from '../util';\n\nimport * as features from '../features';\nimport * as constants from '../constants';\n\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore \n// Do not use this type in code, so it won't be emitted in the declaration output\nimport Emitter from 'tiny-emitter';\n\nimport {\n EventEmitter,\n OktaAuthConstructor,\n OktaAuthBaseInterface,\n OktaAuthBaseOptions,\n OktaAuthOptionsConstructor, \n FeaturesAPI,\n} from './types';\n\nexport function createOktaAuthBase\n<\n O extends OktaAuthBaseOptions = OktaAuthBaseOptions,\n>\n(\n OptionsConstructor: OktaAuthOptionsConstructor<O>\n): OktaAuthConstructor<OktaAuthBaseInterface<O>>\n{\n class OktaAuthBase implements OktaAuthBaseInterface<O>\n {\n options: O;\n emitter: EventEmitter;\n features: FeaturesAPI;\n static features: FeaturesAPI = features;\n static constants = constants;\n \n constructor(...args: any[]) {\n const options = new OptionsConstructor(args.length ? args[0] || {} : {});\n this.options = removeNils(options) as O; // clear out undefined values\n this.emitter = new Emitter();\n this.features = features;\n }\n }\n\n // Hoist feature detection functions to prototype & static type\n OktaAuthBase.features = OktaAuthBase.prototype.features = features;\n\n // Also hoist constants for CommonJS users\n Object.assign(OktaAuthBase, {\n constants\n });\n\n return OktaAuthBase;\n}\n","import { OktaAuthBaseInterface, OktaAuthConstructor } from '../base/types';\nimport {\n OktaAuthStorageInterface,\n OktaAuthStorageOptions,\n StorageManagerConstructor,\n StorageManagerInterface,\n} from './types';\n\nexport function mixinStorage\n<\n S extends StorageManagerInterface = StorageManagerInterface,\n O extends OktaAuthStorageOptions = OktaAuthStorageOptions,\n TBase extends OktaAuthConstructor<OktaAuthBaseInterface<O>> = OktaAuthConstructor<OktaAuthBaseInterface<O>>\n>\n(\n Base: TBase, StorageManager: StorageManagerConstructor<S>\n): TBase & OktaAuthConstructor<OktaAuthStorageInterface<S, O>>\n{\n return class OktaAuthStorage extends Base implements OktaAuthStorageInterface<S, O>\n {\n storageManager: S;\n constructor(...args: any[]) {\n super(...args);\n const { storageManager, cookies, storageUtil } = this.options;\n this.storageManager = new StorageManager(storageManager!, cookies!, storageUtil!);\n }\n clearStorage(): void {\n // override in subclass\n }\n };\n}\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n *\n */\n\n/* global SDK_VERSION */\n\nimport { isBrowser } from '../features';\nexport class OktaUserAgent {\n environments: string[];\n\n constructor() {\n // add base sdk env\n this.environments = [`okta-auth-js/${SDK_VERSION}`];\n }\n\n addEnvironment(env: string) {\n this.environments.push(env);\n }\n\n getHttpHeader() {\n this.maybeAddNodeEnvironment();\n return { 'X-Okta-User-Agent-Extended': this.environments.join(' ') };\n }\n\n getVersion() {\n return SDK_VERSION;\n }\n\n maybeAddNodeEnvironment() {\n if (isBrowser() || !process || !process.versions) {\n return;\n }\n const { node: version } = process.versions;\n this.environments.push(`nodejs/${version}`);\n }\n}\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n *\n */\nimport { OktaAuthHttpInterface } from './types';\n\nexport function setRequestHeader(authClient: OktaAuthHttpInterface, headerName, headerValue) {\n authClient.options.headers = authClient.options.headers || {};\n authClient.options.headers[headerName] = headerValue;\n}","import { OktaAuthStorageInterface, StorageManagerInterface } from '../storage/types';\nimport { OktaAuthConstructor } from '../base/types';\nimport {\n HttpAPI,\n OktaAuthHttpInterface,\n OktaAuthHttpOptions,\n} from './types';\nimport { OktaUserAgent } from './OktaUserAgent';\nimport { setRequestHeader } from './headers';\nimport { toQueryString } from '../util';\nimport { get } from './request';\n\nexport function mixinHttp\n<\n S extends StorageManagerInterface = StorageManagerInterface,\n O extends OktaAuthHttpOptions = OktaAuthHttpOptions,\n TBase extends OktaAuthConstructor<OktaAuthStorageInterface<S, O>>\n = OktaAuthConstructor<OktaAuthStorageInterface<S, O>>\n>\n(Base: TBase): TBase & OktaAuthConstructor<OktaAuthHttpInterface<S, O>>\n{\n return class OktaAuthHttp extends Base implements OktaAuthHttpInterface<S, O>\n {\n _oktaUserAgent: OktaUserAgent;\n http: HttpAPI;\n \n constructor(...args: any[]) {\n super(...args);\n\n this._oktaUserAgent = new OktaUserAgent();\n\n // HTTP\n this.http = {\n setRequestHeader: setRequestHeader.bind(null, this)\n };\n }\n\n setHeaders(headers) {\n this.options.headers = Object.assign({}, this.options.headers, headers);\n }\n \n getIssuerOrigin(): string {\n // Infer the URL from the issuer URL, omitting the /oauth2/{authServerId}\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return this.options.issuer!.split('/oauth2/')[0];\n }\n \n webfinger(opts): Promise<object> {\n var url = '/.well-known/webfinger' + toQueryString(opts);\n var options = {\n headers: {\n 'Accept': 'application/jrd+json'\n }\n };\n return get(this, url, options);\n }\n };\n}\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { AuthSdkError } from '../errors';\nimport { atob, btoa } from './webcrypto';\n\n// converts a string to base64 (url/filename safe variant)\nexport function stringToBase64Url(str) {\n var b64 = btoa(str);\n return base64ToBase64Url(b64);\n}\n\n// converts a standard base64-encoded string to a \"url/filename safe\" variant\nexport function base64ToBase64Url(b64) {\n return b64.replace(/\\+/g, '-').replace(/\\//g, '_').replace(/=+$/, '');\n}\n\n// converts a \"url/filename safe\" base64 string to a \"standard\" base64 string\nexport function base64UrlToBase64(b64u) {\n return b64u.replace(/-/g, '+').replace(/_/g, '/');\n}\n\nexport function base64UrlToString(b64u) {\n var b64 = base64UrlToBase64(b64u);\n switch (b64.length % 4) {\n case 0:\n break;\n case 2:\n b64 += '==';\n break;\n case 3:\n b64 += '=';\n break;\n default:\n throw new AuthSdkError('Not a valid Base64Url');\n }\n var utf8 = atob(b64);\n try {\n return decodeURIComponent(escape(utf8));\n } catch (e) {\n return utf8;\n }\n}\n\nexport function stringToBuffer(str) {\n var buffer = new Uint8Array(str.length);\n for (var i = 0; i < str.length; i++) {\n buffer[i] = str.charCodeAt(i);\n }\n return buffer;\n}\n\nexport function base64UrlDecode(str) {\n return atob(base64UrlToBase64(str));\n}\n\n// Converts base64 string to binary data view\nexport function base64UrlToBuffer(b64u) {\n return Uint8Array.from(base64UrlDecode(b64u), (c: string) => c.charCodeAt(0));\n}\n\n// Converts an ArrayBuffer object that contains binary data to base64 encoded string\nexport function bufferToBase64Url(bin) {\n return btoa(new Uint8Array(bin).reduce((s, byte) => s + String.fromCharCode(byte), ''));\n}\n\n\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n/* global TextEncoder */\nimport { stringToBase64Url } from './base64';\nimport { webcrypto } from './webcrypto';\n\nexport function getOidcHash(str) { \n var buffer = new TextEncoder().encode(str);\n return webcrypto.subtle.digest('SHA-256', buffer).then(function(arrayBuffer) {\n var intBuffer = new Uint8Array(arrayBuffer);\n var firstHalf = intBuffer.slice(0, 16);\n var hash = String.fromCharCode.apply(null, firstHalf as unknown as number[]);\n var b64u = stringToBase64Url(hash); // url-safe base64 variant\n return b64u;\n });\n}\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { clone } from '../util';\nimport { stringToBuffer, base64UrlDecode } from './base64';\nimport { webcrypto } from './webcrypto';\n\nexport function verifyToken(idToken, key) {\n key = clone(key);\n\n var format = 'jwk';\n var algo = {\n name: 'RSASSA-PKCS1-v1_5',\n hash: { name: 'SHA-256' }\n };\n var extractable = true;\n var usages = ['verify'];\n\n // https://connect.microsoft.com/IE/feedback/details/2242108/webcryptoapi-importing-jwk-with-use-field-fails\n // This is a metadata tag that specifies the intent of how the key should be used.\n // It's not necessary to properly verify the jwt's signature.\n delete key.use;\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return webcrypto.subtle.importKey(\n format,\n key,\n algo,\n extractable,\n usages\n )\n .then(function(cryptoKey) {\n var jwt = idToken.split('.');\n var payload = stringToBuffer(jwt[0] + '.' + jwt[1]);\n var b64Signature = base64UrlDecode(jwt[2]);\n var signature = stringToBuffer(b64Signature);\n\n return webcrypto.subtle.verify(\n algo,\n cryptoKey,\n signature,\n payload\n );\n });\n}\n\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n// Implements a queue for synchronous or asynchronous methods\n// Methods will be wrapped in a promise and execute sequentially\n// This can be used to prevent concurrent calls to a single method or a set of methods\n\nimport { isPromise } from './types';\nimport { warn } from './console';\n\ninterface QueueItem {\n method: () => void;\n thisObject: object;\n args: any[];\n resolve: (value?: unknown) => void;\n reject: (reason?: unknown) => void;\n}\n\ninterface PromiseQueueOptions {\n quiet?: boolean; // if false, concurrrency warnings will not be logged\n}\nexport class PromiseQueue {\n queue: QueueItem[];\n running: boolean;\n options: PromiseQueueOptions;\n\n constructor(options: PromiseQueueOptions = { quiet: false }) {\n this.queue = [];\n this.running = false;\n this.options = options;\n }\n\n // Returns a promise\n // If the method is synchronous, it will resolve when the method completes\n // If the method returns a promise, it will resolve (or reject) with the value from the method's promise\n push(method: (...args: any) => any, thisObject: any, ...args: any[]) {\n return new Promise((resolve, reject) => {\n if (this.queue.length > 0) {\n // There is at least one other pending call.\n // The PromiseQueue will prevent these methods from running concurrently.\n if (this.options.quiet !== false) {\n warn(\n 'Async method is being called but another async method is already running. ' +\n 'The new method will be delayed until the previous method completes.'\n );\n }\n }\n this.queue.push({\n method,\n thisObject,\n args,\n resolve,\n reject\n });\n this.run();\n });\n }\n\n run() {\n if (this.running) {\n return;\n }\n if (this.queue.length === 0) {\n return;\n }\n this.running = true;\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n var queueItem = this.queue.shift()!;\n var res = queueItem.method.apply(queueItem.thisObject, queueItem.args as never) as unknown;\n if (isPromise(res)) {\n (res as Promise<unknown>).then(queueItem.resolve, queueItem.reject).finally(() => {\n this.running = false;\n this.run();\n });\n } else {\n queueItem.resolve(res);\n this.running = false;\n this.run();\n }\n }\n}\n","/*!\n * Copyright (c) 2019-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n *\n */\n\n /* eslint-disable complexity, max-statements */\nimport { stringToBase64Url, webcrypto } from '../../crypto';\nimport { MIN_VERIFIER_LENGTH, MAX_VERIFIER_LENGTH, DEFAULT_CODE_CHALLENGE_METHOD } from '../../constants';\n\nfunction dec2hex (dec) {\n return ('0' + dec.toString(16)).substr(-2);\n}\n\nfunction getRandomString(length) {\n var a = new Uint8Array(Math.ceil(length / 2));\n webcrypto.getRandomValues(a);\n var str = Array.from(a, dec2hex).join('');\n return str.slice(0, length);\n}\n\nfunction generateVerifier(prefix?: string): string {\n var verifier = prefix || '';\n if (verifier.length < MIN_VERIFIER_LENGTH) {\n verifier = verifier + getRandomString(MIN_VERIFIER_LENGTH - verifier.length);\n }\n return encodeURIComponent(verifier).slice(0, MAX_VERIFIER_LENGTH);\n}\n\nfunction computeChallenge(str: string): PromiseLike<any> { \n var buffer = new TextEncoder().encode(str);\n return webcrypto.subtle.digest('SHA-256', buffer).then(function(arrayBuffer) {\n var hash = String.fromCharCode.apply(null, new Uint8Array(arrayBuffer) as unknown as number[]);\n var b64u = stringToBase64Url(hash); // url-safe base64 variant\n return b64u;\n });\n}\n\nexport default {\n DEFAULT_CODE_CHALLENGE_METHOD,\n generateVerifier,\n computeChallenge\n};\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n *\n */\nimport { AuthSdkError } from '../errors';\nimport { JWTObject } from './types';\nimport { base64UrlToString } from '../crypto';\n\nexport function decodeToken(token: string): JWTObject {\n var jwt = token.split('.');\n var decodedToken: JWTObject;\n\n try {\n decodedToken = {\n header: JSON.parse(base64UrlToString(jwt[0])),\n payload: JSON.parse(base64UrlToString(jwt[1])),\n signature: jwt[2]\n };\n } catch (e) {\n throw new AuthSdkError('Malformed token');\n }\n\n return decodedToken;\n}\n","\n/* global window */\n/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n *\n */\nimport { generateNonce, generateState } from './oauth';\nimport { OktaAuthOAuthInterface, TokenParams } from '../types';\nimport { isBrowser } from '../../features';\nimport { removeNils } from '../../util';\n\nexport function getDefaultTokenParams(sdk: OktaAuthOAuthInterface): TokenParams {\n const {\n pkce,\n clientId,\n redirectUri,\n responseType,\n responseMode,\n scopes,\n acrValues,\n maxAge,\n state,\n ignoreSignature\n } = sdk.options;\n const defaultRedirectUri = isBrowser() ? window.location.href : undefined;\n return removeNils({\n pkce,\n clientId,\n redirectUri: redirectUri || defaultRedirectUri,\n responseType: responseType || ['token', 'id_token'],\n responseMode,\n state: state || generateState(),\n nonce: generateNonce(),\n scopes: scopes || ['openid', 'email'],\n acrValues,\n maxAge,\n ignoreSignature\n });\n}","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\nimport { AuthSdkError } from '../../errors';\nimport { CustomUrls, OAuthParams, OAuthResponse, RefreshToken, TokenParams } from '../types';\nimport { removeNils, toQueryString } from '../../util';\nimport { httpRequest, OktaAuthHttpInterface } from '../../http';\n\nfunction validateOptions(options: TokenParams) {\n // Quick validation\n if (!options.clientId) {\n throw new AuthSdkError('A clientId must be specified in the OktaAuth constructor to get a token');\n }\n\n if (!options.redirectUri) {\n throw new AuthSdkError('The redirectUri passed to /authorize must also be passed to /token');\n }\n\n if (!options.authorizationCode && !options.interactionCode) {\n throw new AuthSdkError('An authorization code (returned from /authorize) must be passed to /token');\n }\n\n if (!options.codeVerifier) {\n throw new AuthSdkError('The \"codeVerifier\" (generated and saved by your app) must be passed to /token');\n }\n}\n\nfunction getPostData(sdk, options: TokenParams): string {\n // Convert Token params to OAuth params, sent to the /token endpoint\n var params: OAuthParams = removeNils({\n 'client_id': options.clientId,\n 'redirect_uri': options.redirectUri,\n 'grant_type': options.interactionCode ? 'interaction_code' : 'authorization_code',\n 'code_verifier': options.codeVerifier\n });\n\n if (options.interactionCode) {\n params['interaction_code'] = options.interactionCode;\n } else if (options.authorizationCode) {\n params.code = options.authorizationCode;\n }\n\n const { clientSecret } = sdk.options;\n if (clientSecret) {\n params['client_secret'] = clientSecret;\n }\n\n // Encode as URL string\n return toQueryString(params).slice(1);\n}\n\n// exchange authorization code for an access token\nexport function postToTokenEndpoint(sdk, options: TokenParams, urls: CustomUrls): Promise<OAuthResponse> {\n validateOptions(options);\n var data = getPostData(sdk, options);\n\n const headers = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n };\n\n return httpRequest(sdk, {\n url: urls.tokenUrl,\n method: 'POST',\n args: data,\n headers\n });\n}\n\nexport function postRefreshToken(\n sdk: OktaAuthHttpInterface,\n options: TokenParams,\n refreshToken: RefreshToken\n): Promise<OAuthResponse> {\n return httpRequest(sdk, {\n url: refreshToken.tokenUrl,\n method: 'POST',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n\n args: Object.entries({\n client_id: options.clientId, // eslint-disable-line camelcase\n grant_type: 'refresh_token', // eslint-disable-line camelcase\n scope: refreshToken.scopes.join(' '),\n refresh_token: refreshToken.refreshToken, // eslint-disable-line camelcase\n }).map(function ([name, value]) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return name + '=' + encodeURIComponent(value!);\n }).join('&'),\n });\n}","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n *\n */\nimport { get } from '../../http';\nimport { find } from '../../util';\nimport { OktaAuthOAuthInterface, WellKnownResponse } from '../types';\nimport AuthSdkError from '../../errors/AuthSdkError';\n\nexport function getWellKnown(sdk: OktaAuthOAuthInterface, issuer?: string): Promise<WellKnownResponse> {\n var authServerUri = (issuer || sdk.options.issuer);\n return get(sdk, authServerUri + '/.well-known/openid-configuration', {\n cacheResponse: true\n });\n}\n\nexport function getKey(sdk: OktaAuthOAuthInterface, issuer: string, kid: string): Promise<string> {\n var httpCache = sdk.storageManager.getHttpCache(sdk.options.cookies);\n\n return getWellKnown(sdk, issuer)\n .then(function(wellKnown) {\n var jwksUri = wellKnown['jwks_uri'];\n\n // Check our kid against the cached version (if it exists and isn't expired)\n var cacheContents = httpCache.getStorage();\n var cachedResponse = cacheContents[jwksUri];\n if (cachedResponse && Date.now()/1000 < cachedResponse.expiresAt) {\n var cachedKey = find(cachedResponse.response.keys, {\n kid: kid\n });\n\n if (cachedKey) {\n return cachedKey;\n }\n }\n\n // Remove cache for the key\n httpCache.clearStorage(jwksUri);\n\n // Pull the latest keys if the key wasn't in the cache\n return get(sdk, jwksUri, {\n cacheResponse: true\n })\n .then(function(res) {\n var key = find(res.keys, {\n kid: kid\n });\n\n if (key) {\n return key;\n }\n\n throw new AuthSdkError('The key id, ' + kid + ', was not found in the server\\'s keys');\n });\n });\n}\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n *\n */\n/* eslint-disable complexity, max-statements */\n\nimport AuthSdkError from '../../errors/AuthSdkError';\nimport { OktaAuthOAuthInterface, TokenVerifyParams, UserClaims } from '../../oidc/types';\n\nexport function validateClaims(sdk: OktaAuthOAuthInterface, claims: UserClaims, validationParams: TokenVerifyParams) {\n const aud = validationParams.clientId;\n const iss = validationParams.issuer;\n const nonce = validationParams.nonce;\n const acr = validationParams.acrValues;\n\n if (!claims || !iss || !aud) {\n throw new AuthSdkError('The jwt, iss, and aud arguments are all required');\n }\n\n if (nonce && claims.nonce !== nonce) {\n throw new AuthSdkError('OAuth flow response nonce doesn\\'t match request nonce');\n }\n\n const now = Math.floor(Date.now()/1000);\n\n if (claims.iss !== iss) {\n throw new AuthSdkError('The issuer [' + claims.iss + '] ' +\n 'does not match [' + iss + ']');\n }\n\n if (claims.aud !== aud) {\n throw new AuthSdkError('The audience [' + claims.aud + '] ' +\n 'does not match [' + aud + ']');\n }\n\n if (acr && claims.acr !== acr) {\n throw new AuthSdkError('The acr [' + claims.acr + '] ' +\n 'does not match acr_values [' + acr + ']');\n }\n\n if (claims.iat! > claims.exp!) {\n throw new AuthSdkError('The JWT expired before it was issued');\n }\n\n if (!sdk.options.ignoreLifetime) {\n if ((now - sdk.options.maxClockSkew!) > claims.exp!) {\n throw new AuthSdkError('The JWT expired and is no longer valid');\n }\n\n if (claims.iat! > (now + sdk.options.maxClockSkew!)) {\n throw new AuthSdkError('The JWT was issued in the future');\n }\n }\n}\n","/* eslint-disable max-len */\n/* eslint-disable complexity */\n/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n *\n */\nimport { getWellKnown, getKey } from './endpoints/well-known';\nimport { validateClaims } from './util';\nimport { AuthSdkError } from '../errors';\nimport { IDToken, OktaAuthOAuthInterface, TokenVerifyParams } from '../oidc/types';\nimport { decodeToken } from './decodeToken';\nimport * as sdkCrypto from '../crypto';\n\n// Verify the id token\nexport async function verifyToken(sdk: OktaAuthOAuthInterface, token: IDToken, validationParams: TokenVerifyParams): Promise<IDToken> {\n if (!token || !token.idToken) {\n throw new AuthSdkError('Only idTokens may be verified');\n }\n\n // Decode the Jwt object (may throw)\n const jwt = decodeToken(token.idToken);\n\n // The configured issuer may point to a frontend proxy.\n // Get the \"real\" issuer from .well-known/openid-configuration\n const configuredIssuer = validationParams?.issuer || sdk.options.issuer;\n const { issuer } = await getWellKnown(sdk, configuredIssuer);\n\n const validationOptions: TokenVerifyParams = Object.assign({\n // base options, can be overridden by params\n clientId: sdk.options.clientId,\n ignoreSignature: sdk.options.ignoreSignature\n }, validationParams, {\n // final options, cannot be overridden\n issuer\n });\n\n // Standard claim validation (may throw)\n validateClaims(sdk, jwt.payload, validationOptions);\n\n // If the browser doesn't support native crypto or we choose not\n // to verify the signature, bail early\n if (validationOptions.ignoreSignature == true || !sdk.features.isTokenVerifySupported()) {\n return token;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const key = await getKey(sdk, token.issuer, jwt.header.kid!);\n const valid = await sdkCrypto.verifyToken(token.idToken, key);\n if (!valid) {\n throw new AuthSdkError('The token signature is not valid');\n }\n if (validationParams && validationParams.accessToken && token.claims.at_hash) {\n const hash = await sdkCrypto.getOidcHash(validationParams.accessToken);\n if (hash !== token.claims.at_hash) {\n throw new AuthSdkError('Token hash verification failed');\n }\n }\n return token;\n}\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\n\n/* eslint-disable complexity, max-statements */\n/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n *\n */\nimport { clone } from '../util';\nimport {\n getOAuthUrls,\n} from './util/oauth';\nimport { AuthSdkError, OAuthError } from '../errors';\nimport {\n OktaAuthOAuthInterface,\n TokenVerifyParams,\n IDToken,\n OAuthResponse,\n TokenParams,\n TokenResponse,\n CustomUrls,\n Tokens,\n} from './types';\nimport { verifyToken } from './verifyToken';\nimport { getDefaultTokenParams } from './util';\n\nfunction validateResponse(res: OAuthResponse, oauthParams: TokenParams) {\n if (res['error'] && res['error_description']) {\n throw new OAuthError(res['error'], res['error_description']);\n }\n\n if (res.state !== oauthParams.state) {\n throw new AuthSdkError('OAuth flow response state doesn\\'t match request state');\n }\n}\n\nexport async function handleOAuthResponse(\n sdk: OktaAuthOAuthInterface,\n tokenParams: TokenParams,\n res: OAuthResponse,\n urls?: CustomUrls\n): Promise<TokenResponse> {\n const pkce = sdk.options.pkce !== false;\n\n // The result contains an authorization_code and PKCE is enabled \n // `exchangeCodeForTokens` will call /token then call `handleOauthResponse` recursively with the result\n if (pkce && (res.code || res.interaction_code)) {\n return sdk.token.exchangeCodeForTokens(Object.assign({}, tokenParams, {\n authorizationCode: res.code,\n interactionCode: res.interaction_code\n }), urls);\n }\n\n tokenParams = tokenParams || getDefaultTokenParams(sdk);\n urls = urls || getOAuthUrls(sdk, tokenParams);\n\n let responseType = tokenParams.responseType || [];\n if (!Array.isArray(responseType) && responseType !== 'none') {\n responseType = [responseType];\n }\n\n let scopes;\n if (res.scope) {\n scopes = res.scope.split(' ');\n } else {\n scopes = clone(tokenParams.scopes);\n }\n const clientId = tokenParams.clientId || sdk.options.clientId;\n\n // Handling the result from implicit flow or PKCE token exchange\n validateResponse(res, tokenParams);\n\n const tokenDict = {} as Tokens;\n const expiresIn = res.expires_in;\n const tokenType = res.token_type;\n const accessToken = res.access_token;\n const idToken = res.id_token;\n const refreshToken = res.refresh_token;\n const now = Math.floor(Date.now()/1000);\n\n if (accessToken) {\n const accessJwt = sdk.token.decode(accessToken);\n tokenDict.accessToken = {\n accessToken: accessToken,\n claims: accessJwt.payload,\n expiresAt: Number(expiresIn) + now,\n tokenType: tokenType!,\n scopes: scopes,\n authorizeUrl: urls.authorizeUrl!,\n userinfoUrl: urls.userinfoUrl!\n };\n }\n\n if (refreshToken) {\n tokenDict.refreshToken = {\n refreshToken: refreshToken,\n // should not be used, this is the accessToken expire time\n // TODO: remove \"expiresAt\" in the next major version OKTA-407224\n expiresAt: Number(expiresIn) + now, \n scopes: scopes,\n tokenUrl: urls.tokenUrl!,\n authorizeUrl: urls.authorizeUrl!,\n issuer: urls.issuer!,\n };\n }\n\n if (idToken) {\n const idJwt = sdk.token.decode(idToken);\n const idTokenObj: IDToken = {\n idToken: idToken,\n claims: idJwt.payload,\n expiresAt: idJwt.payload.exp! - idJwt.payload.iat! + now, // adjusting expiresAt to be in local time\n scopes: scopes,\n authorizeUrl: urls.authorizeUrl!,\n issuer: urls.issuer!,\n clientId: clientId!\n };\n\n const validationParams: TokenVerifyParams = {\n clientId: clientId!,\n issuer: urls.issuer!,\n nonce: tokenParams.nonce,\n accessToken: accessToken,\n acrValues: tokenParams.acrValues\n };\n\n if (tokenParams.ignoreSignature !== undefined) {\n validationParams.ignoreSignature = tokenParams.ignoreSignature;\n }\n\n await verifyToken(sdk, idTokenObj, validationParams);\n tokenDict.idToken = idTokenObj;\n }\n\n // Validate received tokens against requested response types \n if (responseType.indexOf('token') !== -1 && !tokenDict.accessToken) {\n // eslint-disable-next-line max-len\n throw new AuthSdkError('Unable to parse OAuth flow response: response type \"token\" was requested but \"access_token\" was not returned.');\n }\n if (responseType.indexOf('id_token') !== -1 && !tokenDict.idToken) {\n // eslint-disable-next-line max-len\n throw new AuthSdkError('Unable to parse OAuth flow response: response type \"id_token\" was requested but \"id_token\" was not returned.');\n }\n\n return {\n tokens: tokenDict,\n state: res.state!,\n code: res.code,\n responseType\n };\n \n}","/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/* eslint-disable max-len */\n/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n *\n */\nimport { CustomUrls, OAuthResponse, OAuthResponseType, OktaAuthOAuthInterface, TokenParams, TokenResponse } from './types';\nimport { getOAuthUrls, getDefaultTokenParams } from './util';\nimport { clone } from '../util';\nimport { postToTokenEndpoint } from './endpoints/token';\nimport { handleOAuthResponse } from './handleOAuthResponse';\n\n// codeVerifier is required. May pass either an authorizationCode or interactionCode\nexport function exchangeCodeForTokens(sdk: OktaAuthOAuthInterface, tokenParams: TokenParams, urls?: CustomUrls): Promise<TokenResponse> {\n urls = urls || getOAuthUrls(sdk, tokenParams);\n // build params using defaults + options\n tokenParams = Object.assign({}, getDefaultTokenParams(sdk), clone(tokenParams));\n\n const {\n authorizationCode,\n interactionCode,\n codeVerifier,\n clientId,\n redirectUri,\n scopes,\n ignoreSignature,\n state,\n acrValues\n } = tokenParams;\n\n var getTokenOptions = {\n clientId,\n redirectUri,\n authorizationCode,\n interactionCode,\n codeVerifier,\n };\n\n return postToTokenEndpoint(sdk, getTokenOptions, urls)\n .then((response: OAuthResponse) => {\n\n // `handleOAuthResponse` hanadles responses from both `/authorize` and `/token` endpoints\n // Here we modify the response from `/token` so that it more closely matches a response from `/authorize`\n // `responseType` is used to validate that the expected tokens were returned\n const responseType: OAuthResponseType[] = ['token']; // an accessToken will always be returned\n if (scopes!.indexOf('openid') !== -1) {\n responseType.push('id_token'); // an idToken will be returned if \"openid\" is in the scopes\n }\n const handleResponseOptions: TokenParams = {\n clientId,\n redirectUri,\n scopes,\n responseType,\n ignoreSignature,\n acrValues\n };\n return handleOAuthResponse(sdk, handleResponseOptions, response, urls!)\n .then((response: TokenResponse) => {\n // For compatibility, \"code\" is returned in the TokenResponse. OKTA-326091\n response.code = authorizationCode;\n response.state = state!;\n return response;\n });\n })\n .finally(() => {\n sdk.transactionManager.clear();\n });\n}","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { UserClaims } from './UserClaims';\n\nexport interface AbstractToken {\n expiresAt: number;\n authorizeUrl: string;\n scopes: string[];\n pendingRemove?: boolean;\n}\n\nexport interface AccessToken extends AbstractToken {\n accessToken: string;\n claims: UserClaims;\n tokenType: string;\n userinfoUrl: string;\n}\n\nexport interface RefreshToken extends AbstractToken {\n refreshToken: string;\n tokenUrl: string;\n issuer: string;\n}\n\nexport interface IDToken extends AbstractToken {\n idToken: string;\n claims: UserClaims;\n issuer: string;\n clientId: string;\n}\n\nexport type Token = AccessToken | IDToken | RefreshToken;\nexport type RevocableToken = AccessToken | RefreshToken;\n\nexport type TokenType = 'accessToken' | 'idToken' | 'refreshToken';\n\nexport function isToken(obj: any): obj is Token {\n if (obj &&\n (obj.accessToken || obj.idToken || obj.refreshToken) &&\n Array.isArray(obj.scopes)) {\n return true;\n }\n return false;\n}\n\nexport function isAccessToken(obj: any): obj is AccessToken {\n return obj && obj.accessToken;\n}\n\nexport function isIDToken(obj: any): obj is IDToken {\n return obj && obj.idToken;\n}\n\nexport function isRefreshToken(obj: any): obj is RefreshToken {\n return obj && obj.refreshToken;\n}\n\nexport interface Tokens {\n accessToken?: AccessToken;\n idToken?: IDToken;\n refreshToken?: RefreshToken;\n}\n","/* eslint-disable complexity */\n/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n *\n */\nimport { isFunction } from '../util';\nimport { AuthSdkError, OAuthError } from '../errors';\nimport { httpRequest } from '../http';\nimport { AccessToken, IDToken, UserClaims, isAccessToken, isIDToken, CustomUserClaims } from './types';\n\nexport async function getUserInfo<T extends CustomUserClaims = CustomUserClaims>(\n sdk, accessTokenObject: AccessToken,\n idTokenObject: IDToken\n): Promise<UserClaims<T>> {\n // If token objects were not passed, attempt to read from the TokenManager\n if (!accessTokenObject) {\n accessTokenObject = (await sdk.tokenManager.getTokens()).accessToken as AccessToken;\n }\n if (!idTokenObject) {\n idTokenObject = (await sdk.tokenManager.getTokens()).idToken as IDToken;\n }\n\n if (!accessTokenObject || !isAccessToken(accessTokenObject)) {\n return Promise.reject(new AuthSdkError('getUserInfo requires an access token object'));\n }\n\n if (!idTokenObject || !isIDToken(idTokenObject)) {\n return Promise.reject(new AuthSdkError('getUserInfo requires an ID token object'));\n }\n\n return httpRequest(sdk, {\n url: accessTokenObject.userinfoUrl,\n method: 'GET',\n accessToken: accessTokenObject.accessToken\n })\n .then(userInfo => {\n // Only return the userinfo response if subjects match to mitigate token substitution attacks\n if (userInfo.sub === idTokenObject.claims.sub) {\n return userInfo;\n }\n return Promise.reject(new AuthSdkError('getUserInfo request was rejected due to token mismatch'));\n })\n .catch(function (err) {\n if (err.xhr && (err.xhr.status === 401 || err.xhr.status === 403)) {\n var authenticateHeader;\n if (err.xhr.headers && isFunction(err.xhr.headers.get) && err.xhr.headers.get('WWW-Authenticate')) {\n authenticateHeader = err.xhr.headers.get('WWW-Authenticate');\n } else if (isFunction(err.xhr.getResponseHeader)) {\n authenticateHeader = err.xhr.getResponseHeader('WWW-Authenticate');\n }\n if (authenticateHeader) {\n var errorMatches = authenticateHeader.match(/error=\"(.*?)\"/) || [];\n var errorDescriptionMatches = authenticateHeader.match(/error_description=\"(.*?)\"/) || [];\n var error = errorMatches[1];\n var errorDescription = errorDescriptionMatches[1];\n if (error && errorDescription) {\n err = new OAuthError(error, errorDescription);\n }\n }\n }\n throw err;\n });\n}\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n *\n */\n/* global window, document */\n/* eslint-disable complexity, max-statements */\nimport { AuthSdkError } from '../../errors';\nimport { OktaAuthOAuthInterface } from '../types';\n\nexport function addListener(eventTarget, name, fn) {\n if (eventTarget.addEventListener) {\n eventTarget.addEventListener(name, fn);\n } else {\n eventTarget.attachEvent('on' + name, fn);\n }\n}\n\nexport function removeListener(eventTarget, name, fn) {\n if (eventTarget.removeEventListener) {\n eventTarget.removeEventListener(name, fn);\n } else {\n eventTarget.detachEvent('on' + name, fn);\n }\n}\n\nexport function loadFrame(src) {\n var iframe = document.createElement('iframe');\n iframe.style.display = 'none';\n iframe.src = src;\n\n return document.body.appendChild(iframe);\n}\n\nexport function loadPopup(src, options) {\n var title = options.popupTitle || 'External Identity Provider User Authentication';\n var appearance = 'toolbar=no, scrollbars=yes, resizable=yes, ' +\n 'top=100, left=500, width=600, height=600';\n return window.open(src, title, appearance);\n}\n\nexport function addPostMessageListener(sdk: OktaAuthOAuthInterface, timeout, state) {\n var responseHandler;\n var timeoutId;\n var msgReceivedOrTimeout = new Promise(function (resolve, reject) {\n\n responseHandler = function responseHandler(e) {\n if (!e.data || e.data.state !== state) {\n // A message not meant for us\n return;\n }\n\n // Configuration mismatch between saved token and current app instance\n // This may happen if apps with different issuers are running on the same host url\n // If they share the same storage key, they may read and write tokens in the same location.\n // Common when developing against http://localhost\n if (e.origin !== sdk.getIssuerOrigin()) {\n return reject(new AuthSdkError('The request does not match client configuration'));\n }\n resolve(e.data);\n };\n\n addListener(window, 'message', responseHandler);\n\n timeoutId = setTimeout(function () {\n reject(new AuthSdkError('OAuth flow timed out'));\n }, timeout || 120000);\n });\n\n return msgReceivedOrTimeout\n .finally(function () {\n clearTimeout(timeoutId);\n removeListener(window, 'message', responseHandler);\n });\n}\n","/* eslint-disable complexity */\n/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n *\n */\nimport { getWellKnown } from '../endpoints/well-known';\nimport { AuthSdkError } from '../../errors';\nimport { OktaAuthOAuthInterface, TokenParams } from '../types';\nimport { getDefaultTokenParams } from './defaultTokenParams';\nimport { DEFAULT_CODE_CHALLENGE_METHOD } from '../../constants';\nimport PKCE from './pkce';\nimport { OktaAuthBaseInterface } from '../../base/types';\n\nexport function assertPKCESupport(sdk: OktaAuthBaseInterface) {\n if (!sdk.features.isPKCESupported()) {\n var errorMessage = 'PKCE requires a modern browser with encryption support running in a secure context.';\n if (!sdk.features.isHTTPS()) {\n // eslint-disable-next-line max-len\n errorMessage += '\\nThe current page is not being served with HTTPS protocol. PKCE requires secure HTTPS protocol.';\n }\n if (!sdk.features.hasTextEncoder()) {\n // eslint-disable-next-line max-len\n errorMessage += '\\n\"TextEncoder\" is not defined. To use PKCE, you may need to include a polyfill/shim for this browser.';\n }\n throw new AuthSdkError(errorMessage);\n }\n}\n\nexport async function validateCodeChallengeMethod(sdk: OktaAuthOAuthInterface, codeChallengeMethod?: string) {\n // set default code challenge method, if none provided\n codeChallengeMethod = codeChallengeMethod || sdk.options.codeChallengeMethod || DEFAULT_CODE_CHALLENGE_METHOD;\n\n // validate against .well-known/openid-configuration\n const wellKnownResponse = await getWellKnown(sdk);\n var methods = wellKnownResponse['code_challenge_methods_supported'] || [];\n if (methods.indexOf(codeChallengeMethod) === -1) {\n throw new AuthSdkError('Invalid code_challenge_method');\n }\n return codeChallengeMethod;\n}\n\nexport async function preparePKCE(\n sdk: OktaAuthOAuthInterface, \n tokenParams: TokenParams\n): Promise<TokenParams> {\n let {\n codeVerifier,\n codeChallenge,\n codeChallengeMethod\n } = tokenParams;\n\n // PKCE calculations can be avoided by passing a codeChallenge\n codeChallenge = codeChallenge || sdk.options.codeChallenge;\n if (!codeChallenge) {\n assertPKCESupport(sdk);\n codeVerifier = codeVerifier || PKCE.generateVerifier();\n codeChallenge = await PKCE.computeChallenge(codeVerifier);\n }\n codeChallengeMethod = await validateCodeChallengeMethod(sdk, codeChallengeMethod);\n\n // Clone/copy the params. Set PKCE values\n tokenParams = {\n ...tokenParams,\n responseType: 'code', // responseType is forced\n codeVerifier,\n codeChallenge,\n codeChallengeMethod\n };\n\n return tokenParams;\n}\n\n// Prepares params for a call to /authorize or /token\nexport async function prepareTokenParams(\n sdk: OktaAuthOAuthInterface,\n tokenParams: TokenParams = {}\n): Promise<TokenParams> {\n // build params using defaults + options\n const defaults = getDefaultTokenParams(sdk);\n tokenParams = { ...defaults, ...tokenParams };\n\n if (tokenParams.pkce === false) {\n // Implicit flow or authorization_code without PKCE\n return tokenParams;\n }\n\n return preparePKCE(sdk, tokenParams);\n}","/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\nimport { isString, removeNils, toQueryString } from '../../util';\nimport { AuthSdkError } from '../../errors';\nimport { OAuthParams, TokenParams } from '../types';\n\nexport function convertTokenParamsToOAuthParams(tokenParams: TokenParams) {\n // Quick validation\n if (!tokenParams.clientId) {\n throw new AuthSdkError('A clientId must be specified in the OktaAuth constructor to get a token');\n }\n\n if (isString(tokenParams.responseType) && tokenParams.responseType.indexOf(' ') !== -1) {\n throw new AuthSdkError('Multiple OAuth responseTypes must be defined as an array');\n }\n\n // Convert our params to their actual OAuth equivalents\n var oauthParams: OAuthParams = {\n 'client_id': tokenParams.clientId,\n 'code_challenge': tokenParams.codeChallenge,\n 'code_challenge_method': tokenParams.codeChallengeMethod,\n 'display': tokenParams.display,\n 'idp': tokenParams.idp,\n 'idp_scope': tokenParams.idpScope,\n 'login_hint': tokenParams.loginHint,\n 'max_age': tokenParams.maxAge,\n 'nonce': tokenParams.nonce,\n 'prompt': tokenParams.prompt,\n 'redirect_uri': tokenParams.redirectUri,\n 'response_mode': tokenParams.responseMode,\n 'response_type': tokenParams.responseType,\n 'sessionToken': tokenParams.sessionToken,\n 'state': tokenParams.state,\n 'acr_values': tokenParams.acrValues,\n 'enroll_amr_values': tokenParams.enrollAmrValues,\n };\n oauthParams = removeNils(oauthParams) as OAuthParams;\n\n ['idp_scope', 'response_type', 'enroll_amr_values'].forEach(function (mayBeArray) {\n if (Array.isArray(oauthParams[mayBeArray])) {\n oauthParams[mayBeArray] = oauthParams[mayBeArray].join(' ');\n }\n });\n\n if (tokenParams.responseType!.indexOf('id_token') !== -1 &&\n tokenParams.scopes!.indexOf('openid') === -1) {\n throw new AuthSdkError('openid scope must be specified in the scopes argument when requesting an id_token');\n } else if (tokenParams.scopes) {\n oauthParams.scope = tokenParams.scopes!.join(' ');\n }\n\n return oauthParams;\n}\n\nexport function buildAuthorizeParams(tokenParams: TokenParams) {\n var oauthQueryParams = convertTokenParamsToOAuthParams(tokenParams);\n return toQueryString({ \n ...oauthQueryParams, \n ...(tokenParams.extraParams && { ...tokenParams.extraParams })\n });\n}\n","\n/* global document */\n/* eslint-disable complexity, max-statements */\n/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n *\n */\nimport {\n getOAuthUrls,\n loadFrame,\n addPostMessageListener\n} from './util';\n\nimport AuthSdkError from '../errors/AuthSdkError';\n\nimport {\n OktaAuthOAuthInterface,\n TokenParams,\n PopupParams,\n OAuthResponse,\n} from './types';\n\nimport { prepareTokenParams } from './util/prepareTokenParams';\nimport { buildAuthorizeParams } from './endpoints/authorize';\nimport { handleOAuthResponse } from './handleOAuthResponse';\n/*\n * Retrieve an idToken from an Okta or a third party idp\n *\n * Two main flows:\n *\n * 1) Exchange a sessionToken for a token\n *\n * Required:\n * clientId: passed via the OktaAuth constructor or into getToken\n * sessionToken: 'yourtoken'\n *\n * Optional:\n * redirectUri: defaults to window.location.href\n * scopes: defaults to ['openid', 'email']\n *\n * Forced:\n * prompt: 'none'\n * responseMode: 'okta_post_message'\n * display: undefined\n *\n * 2) Get a token from an idp\n *\n * Required:\n * clientId: passed via the OktaAuth constructor or into getToken\n *\n * Optional:\n * redirectUri: defaults to window.location.href\n * scopes: defaults to ['openid', 'email']\n * idp: defaults to Okta as an idp\n * prompt: no default. Pass 'none' to throw an error if user is not signed in\n *\n * Forced:\n * display: 'popup'\n *\n * Only common optional params shown. Any OAuth parameters not explicitly forced are available to override\n *\n * @param {Object} oauthOptions\n * @param {String} [oauthOptions.clientId] ID of this client\n * @param {String} [oauthOptions.redirectUri] URI that the iframe or popup will go to once authenticated\n * @param {String[]} [oauthOptions.scopes] OAuth 2.0 scopes to request (openid must be specified)\n * @param {String} [oauthOptions.idp] ID of an external IdP to use for user authentication\n * @param {String} [oauthOptions.sessionToken] Bootstrap Session Token returned by the Okta Authentication API\n * @param {String} [oauthOptions.prompt] Determines whether the Okta login will be displayed on failure.\n * Use 'none' to prevent this behavior\n *\n * @param {Object} options\n * @param {Integer} [options.timeout] Time in ms before the flow is automatically terminated. Defaults to 120000\n * @param {String} [options.popupTitle] Title dispayed in the popup.\n * Defaults to 'External Identity Provider User Authentication'\n */\nexport function getToken(sdk: OktaAuthOAuthInterface, options: TokenParams & PopupParams) {\n if (arguments.length > 2) {\n return Promise.reject(new AuthSdkError('As of version 3.0, \"getToken\" takes only a single set of options'));\n }\n\n options = options || {};\n\n // window object cannot be serialized, save for later use\n // TODO: move popup related params into a separate options object\n const popupWindow = options.popupWindow;\n options.popupWindow = undefined;\n\n return prepareTokenParams(sdk, options)\n .then(function (tokenParams: TokenParams) {\n\n // Start overriding any options that don't make sense\n var sessionTokenOverrides = {\n prompt: 'none',\n responseMode: 'okta_post_message',\n display: null\n };\n\n var idpOverrides = {\n display: 'popup'\n };\n\n if (options.sessionToken) {\n Object.assign(tokenParams, sessionTokenOverrides);\n } else if (options.idp) {\n Object.assign(tokenParams, idpOverrides);\n }\n\n // Use the query params to build the authorize url\n var requestUrl,\n endpoint,\n urls;\n\n // Get authorizeUrl and issuer\n urls = getOAuthUrls(sdk, tokenParams);\n endpoint = options.codeVerifier ? urls.tokenUrl : urls.authorizeUrl;\n requestUrl = endpoint + buildAuthorizeParams(tokenParams);\n\n // Determine the flow type\n var flowType;\n if (tokenParams.sessionToken || tokenParams.display === null) {\n flowType = 'IFRAME';\n } else if (tokenParams.display === 'popup') {\n flowType = 'POPUP';\n } else {\n flowType = 'IMPLICIT';\n }\n\n // Execute the flow type\n switch (flowType) {\n case 'IFRAME':\n var iframePromise = addPostMessageListener(sdk, options.timeout, tokenParams.state);\n var iframeEl = loadFrame(requestUrl);\n return iframePromise\n .then(function (res) {\n return handleOAuthResponse(sdk, tokenParams, res as OAuthResponse, urls);\n })\n .finally(function () {\n if (document.body.contains(iframeEl)) {\n iframeEl.parentElement?.removeChild(iframeEl);\n }\n });\n\n case 'POPUP':\n var oauthPromise; // resolves with OAuth response\n\n // Add listener on postMessage before window creation, so\n // postMessage isn't triggered before we're listening\n if (tokenParams.responseMode === 'okta_post_message') {\n if (!sdk.features.isPopupPostMessageSupported()) {\n throw new AuthSdkError('This browser doesn\\'t have full postMessage support');\n }\n oauthPromise = addPostMessageListener(sdk, options.timeout, tokenParams.state);\n }\n\n // Redirect for authorization\n // popupWindown can be null when popup is blocked\n if (popupWindow) { \n popupWindow.location.assign(requestUrl);\n }\n\n // The popup may be closed without receiving an OAuth response. Setup a poller to monitor the window.\n var popupPromise = new Promise(function (resolve, reject) {\n var closePoller = setInterval(function () {\n if (!popupWindow || popupWindow.closed) {\n clearInterval(closePoller);\n reject(new AuthSdkError('Unable to parse OAuth flow response'));\n }\n }, 100);\n\n // Proxy the OAuth promise results\n oauthPromise\n .then(function (res) {\n clearInterval(closePoller);\n resolve(res);\n })\n .catch(function (err) {\n clearInterval(closePoller);\n reject(err);\n });\n });\n\n return popupPromise\n .then(function (res) {\n return handleOAuthResponse(sdk, tokenParams, res as OAuthResponse, urls);\n })\n .finally(function () {\n if (popupWindow && !popupWindow.closed) {\n popupWindow.close();\n }\n });\n\n default:\n throw new AuthSdkError('The full page redirect flow is not supported');\n }\n });\n}","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n *\n */\nimport { AuthSdkError } from '../errors';\nimport { OktaAuthOAuthInterface, TokenParams, TokenResponse } from './types';\nimport { clone } from '../util';\nimport { getToken } from './getToken';\n\nexport function getWithoutPrompt(sdk: OktaAuthOAuthInterface, options: TokenParams): Promise<TokenResponse> {\n if (arguments.length > 2) {\n return Promise.reject(new AuthSdkError('As of version 3.0, \"getWithoutPrompt\" takes only a single set of options'));\n }\n \n options = clone(options) || {};\n Object.assign(options, {\n prompt: 'none',\n responseMode: 'okta_post_message',\n display: null\n });\n return getToken(sdk, options);\n}\n\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n *\n */\nimport { AuthSdkError } from '../errors';\nimport { OktaAuthOAuthInterface, TokenParams, TokenResponse } from './types';\nimport { clone } from '../util';\nimport { getToken } from './getToken';\nimport { loadPopup } from './util';\n\nexport function getWithPopup(sdk: OktaAuthOAuthInterface, options: TokenParams): Promise<TokenResponse> {\n if (arguments.length > 2) {\n return Promise.reject(new AuthSdkError('As of version 3.0, \"getWithPopup\" takes only a single set of options'));\n }\n\n // some browsers (safari, firefox) block popup if it's initialed from an async process\n // here we create the popup window immediately after user interaction\n // then redirect to the /authorize endpoint when the requestUrl is available\n const popupWindow = loadPopup('/', options);\n options = clone(options) || {};\n Object.assign(options, {\n display: 'popup',\n responseMode: 'okta_post_message',\n popupWindow\n });\n return getToken(sdk, options);\n}\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n *\n */\nimport { AuthSdkError } from '../errors';\nimport { OktaAuthOAuthInterface, TokenParams } from './types';\nimport { clone } from '../util';\nimport { prepareTokenParams, createOAuthMeta } from './util';\nimport { buildAuthorizeParams } from './endpoints/authorize';\n\nexport async function getWithRedirect(sdk: OktaAuthOAuthInterface, options?: TokenParams): Promise<void> {\n if (arguments.length > 2) {\n return Promise.reject(new AuthSdkError('As of version 3.0, \"getWithRedirect\" takes only a single set of options'));\n }\n\n options = clone(options) || {};\n\n const tokenParams = await prepareTokenParams(sdk, options);\n const meta = createOAuthMeta(sdk, tokenParams);\n const requestUrl = meta.urls.authorizeUrl + buildAuthorizeParams(tokenParams);\n sdk.transactionManager.save(meta);\n if (sdk.options.setLocation) {\n sdk.options.setLocation(requestUrl);\n } else {\n window.location.assign(requestUrl);\n }\n}\n","/* eslint-disable complexity */\n/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n *\n */\nimport { AuthSdkError } from '../errors';\nimport { isInteractionRequiredError, urlParamsToObject } from './util';\nimport {\n ParseFromUrlOptions,\n TokenResponse,\n CustomUrls,\n TransactionMeta,\n OAuthResponse\n} from './types';\nimport { isString } from '../util';\nimport { handleOAuthResponse } from './handleOAuthResponse';\n\nfunction removeHash(sdk) {\n var nativeHistory = sdk.token.parseFromUrl._getHistory();\n var nativeDoc = sdk.token.parseFromUrl._getDocument();\n var nativeLoc = sdk.token.parseFromUrl._getLocation();\n if (nativeHistory && nativeHistory.replaceState) {\n nativeHistory.replaceState(null, nativeDoc.title, nativeLoc.pathname + nativeLoc.search);\n } else {\n nativeLoc.hash = '';\n }\n}\n\nfunction removeSearch(sdk) {\n var nativeHistory = sdk.token.parseFromUrl._getHistory();\n var nativeDoc = sdk.token.parseFromUrl._getDocument();\n var nativeLoc = sdk.token.parseFromUrl._getLocation();\n if (nativeHistory && nativeHistory.replaceState) {\n nativeHistory.replaceState(null, nativeDoc.title, nativeLoc.pathname + nativeLoc.hash);\n } else {\n nativeLoc.search = '';\n }\n}\n\nexport function getResponseMode(sdk): 'query' | 'fragment' {\n // https://openid.net/specs/openid-connect-core-1_0.html#Authentication\n var defaultResponseMode = sdk.options.pkce ? 'query' : 'fragment';\n var responseMode = sdk.options.responseMode || defaultResponseMode;\n return responseMode;\n}\n\nexport function parseOAuthResponseFromUrl(sdk, options: string | ParseFromUrlOptions): OAuthResponse {\n options = options || {};\n if (isString(options)) {\n options = { url: options } as ParseFromUrlOptions;\n } else {\n options = options as ParseFromUrlOptions;\n }\n\n var url = options.url;\n var responseMode = options.responseMode || getResponseMode(sdk);\n var nativeLoc = sdk.token.parseFromUrl._getLocation();\n var paramStr;\n\n if (responseMode === 'query') {\n paramStr = url ? url.substring(url.indexOf('?')) : nativeLoc.search;\n } else {\n paramStr = url ? url.substring(url.indexOf('#')) : nativeLoc.hash;\n }\n\n if (!paramStr) {\n throw new AuthSdkError('Unable to parse a token from the url');\n }\n\n return urlParamsToObject(paramStr);\n}\n\nexport function cleanOAuthResponseFromUrl(sdk, options: ParseFromUrlOptions) {\n // Clean hash or search from the url\n const responseMode = options.responseMode || getResponseMode(sdk);\n responseMode === 'query' ? removeSearch(sdk) : removeHash(sdk);\n}\n\nexport async function parseFromUrl(sdk, options?: string | ParseFromUrlOptions): Promise<TokenResponse> {\n options = options || {};\n if (isString(options)) {\n options = { url: options } as ParseFromUrlOptions;\n } else {\n options = options as ParseFromUrlOptions;\n }\n\n const res: OAuthResponse = parseOAuthResponseFromUrl(sdk, options);\n const state = res.state;\n const oauthParams: TransactionMeta = sdk.transactionManager.load({\n state\n });\n if (!oauthParams) {\n if (sdk.options.pkce) {\n // eslint-disable-next-line max-len\n throw new AuthSdkError('Could not load PKCE codeVerifier from storage. This may indicate the auth flow has already completed or multiple auth flows are executing concurrently.', undefined);\n }\n throw new AuthSdkError('Unable to retrieve OAuth redirect params from storage');\n }\n const urls: CustomUrls = oauthParams.urls as CustomUrls;\n delete oauthParams.urls;\n\n if (!options.url) {\n // Clean hash or search from the url\n cleanOAuthResponseFromUrl(sdk, options);\n }\n\n return handleOAuthResponse(sdk, oauthParams, res, urls)\n .catch(err => {\n if (!isInteractionRequiredError(err)) {\n sdk.transactionManager.clear({\n state\n });\n }\n throw err;\n })\n .then(res => {\n sdk.transactionManager.clear({\n state\n });\n return res;\n });\n\n}\n","import { RefreshToken } from '../types';\nimport { isAuthApiError } from '../../errors';\n\nexport function isSameRefreshToken(a: RefreshToken, b: RefreshToken) {\n return (a.refreshToken === b.refreshToken);\n}\n\nexport function isRefreshTokenError(err: Error) {\n if (!isAuthApiError(err)) {\n return false;\n }\n\n if (!err.xhr || !err.xhr.responseJSON) {\n return false;\n }\n\n const { responseJSON } = err.xhr;\n if (responseJSON.error === 'invalid_grant') {\n return true;\n }\n\n return false;\n}","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n *\n */\nimport { AuthSdkError } from '../errors';\nimport { getOAuthUrls } from './util/oauth';\nimport { isSameRefreshToken } from './util/refreshToken';\nimport { OktaAuthOAuthInterface, TokenParams, RefreshToken, Tokens } from './types';\nimport { handleOAuthResponse } from './handleOAuthResponse';\nimport { postRefreshToken } from './endpoints/token';\nimport { isRefreshTokenInvalidError } from './util/errors';\n\nexport async function renewTokensWithRefresh(\n sdk: OktaAuthOAuthInterface,\n tokenParams: TokenParams,\n refreshTokenObject: RefreshToken\n): Promise<Tokens> {\n const { clientId } = sdk.options;\n if (!clientId) {\n throw new AuthSdkError('A clientId must be specified in the OktaAuth constructor to renew tokens');\n }\n\n try {\n const renewTokenParams: TokenParams = Object.assign({}, tokenParams, {\n clientId,\n });\n const tokenResponse = await postRefreshToken(sdk, renewTokenParams, refreshTokenObject);\n const urls = getOAuthUrls(sdk, tokenParams);\n const { tokens } = await handleOAuthResponse(sdk, renewTokenParams, tokenResponse, urls);\n\n // Support rotating refresh tokens\n const { refreshToken } = tokens;\n if (refreshToken && !isSameRefreshToken(refreshToken, refreshTokenObject)) {\n sdk.tokenManager.updateRefreshToken(refreshToken);\n }\n\n return tokens;\n }\n catch (err) {\n if (isRefreshTokenInvalidError(err)) {\n // if the refresh token is invalid, remove it from storage\n sdk.tokenManager.removeRefreshToken();\n }\n throw err;\n }\n}\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n *\n */\nimport { AuthSdkError } from '../errors';\nimport { OktaAuthOAuthInterface, Token, Tokens, isAccessToken, AccessToken, IDToken, isIDToken } from './types';\nimport { getWithoutPrompt } from './getWithoutPrompt';\nimport { renewTokensWithRefresh } from './renewTokensWithRefresh';\n\nfunction throwInvalidTokenError() {\n throw new AuthSdkError(\n 'Renew must be passed a token with an array of scopes and an accessToken or idToken'\n );\n}\n\n// Multiple tokens may have come back. Return only the token which was requested.\nfunction getSingleToken(originalToken: Token, tokens: Tokens) {\n if (isIDToken(originalToken)) {\n return tokens.idToken;\n }\n if (isAccessToken(originalToken)) {\n return tokens.accessToken;\n }\n throwInvalidTokenError();\n}\n\n// If we have a refresh token, renew using that, otherwise getWithoutPrompt\nexport async function renewToken(sdk: OktaAuthOAuthInterface, token: Token): Promise<Token | undefined> {\n if (!isIDToken(token) && !isAccessToken(token)) {\n throwInvalidTokenError();\n }\n\n let tokens = sdk.tokenManager.getTokensSync();\n if (tokens.refreshToken) {\n tokens = await renewTokensWithRefresh(sdk, {\n scopes: token.scopes,\n }, tokens.refreshToken);\n return getSingleToken(token, tokens);\n }\n\n var responseType;\n if (sdk.options.pkce) {\n responseType = 'code';\n } else if (isAccessToken(token)) {\n responseType = 'token';\n } else {\n responseType = 'id_token';\n }\n\n const { scopes, authorizeUrl, userinfoUrl, issuer } = token as (AccessToken & IDToken);\n return getWithoutPrompt(sdk, {\n responseType,\n scopes,\n authorizeUrl,\n userinfoUrl,\n issuer\n })\n .then(function (res) {\n return getSingleToken(token, res.tokens);\n });\n}\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n *\n */\nimport { AuthSdkError } from '../errors';\nimport { TokenParams, Tokens } from './types';\nimport { getWithoutPrompt } from './getWithoutPrompt';\nimport { renewTokensWithRefresh } from './renewTokensWithRefresh';\nimport { getDefaultTokenParams } from './util';\n\n// If we have a refresh token, renew using that, otherwise getWithoutPrompt\n// eslint-disable-next-line complexity\nexport async function renewTokens(sdk, options?: TokenParams): Promise<Tokens> {\n const tokens = sdk.tokenManager.getTokensSync();\n if (tokens.refreshToken) {\n return renewTokensWithRefresh(sdk, options || {}, tokens.refreshToken);\n }\n\n if (!tokens.accessToken && !tokens.idToken) {\n throw new AuthSdkError('renewTokens() was called but there is no existing token');\n }\n\n const accessToken = tokens.accessToken || {};\n const idToken = tokens.idToken || {};\n const scopes = accessToken.scopes || idToken.scopes;\n if (!scopes) {\n throw new AuthSdkError('renewTokens: invalid tokens: could not read scopes');\n }\n const authorizeUrl = accessToken.authorizeUrl || idToken.authorizeUrl;\n if (!authorizeUrl) {\n throw new AuthSdkError('renewTokens: invalid tokens: could not read authorizeUrl');\n }\n const userinfoUrl = accessToken.userinfoUrl || sdk.options.userinfoUrl;\n const issuer = idToken.issuer || sdk.options.issuer;\n\n // Get tokens using the SSO cookie\n options = Object.assign({\n scopes,\n authorizeUrl,\n userinfoUrl,\n issuer\n }, options);\n\n if (sdk.options.pkce) {\n options.responseType = 'code';\n } else {\n const { responseType } = getDefaultTokenParams(sdk);\n options.responseType = responseType;\n }\n\n return getWithoutPrompt(sdk, options)\n .then(res => res.tokens);\n \n}\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n *\n */\n\n/* eslint complexity:[0,8] */\nimport { post } from '../http';\nimport { toQueryString } from '../util';\nimport {\n getOAuthUrls,\n} from './util/oauth';\nimport { btoa } from '../crypto';\nimport AuthSdkError from '../errors/AuthSdkError';\nimport {\n OktaAuthOAuthInterface,\n RevocableToken,\n AccessToken,\n RefreshToken\n} from './types';\n\n// refresh tokens have precedence to be revoked if no token is specified\nexport async function revokeToken(sdk: OktaAuthOAuthInterface, token: RevocableToken): Promise<any> {\n let accessToken = '';\n let refreshToken = '';\n if (token) { \n accessToken = (token as AccessToken).accessToken;\n refreshToken = (token as RefreshToken).refreshToken; \n }\n if(!accessToken && !refreshToken) { \n throw new AuthSdkError('A valid access or refresh token object is required');\n }\n var clientId = sdk.options.clientId;\n var clientSecret = sdk.options.clientSecret;\n if (!clientId) {\n throw new AuthSdkError('A clientId must be specified in the OktaAuth constructor to revoke a token');\n }\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n var revokeUrl = getOAuthUrls(sdk).revokeUrl!;\n var args = toQueryString({\n // eslint-disable-next-line camelcase\n token_type_hint: refreshToken ? 'refresh_token' : 'access_token', \n token: refreshToken || accessToken,\n }).slice(1);\n var creds = clientSecret ? btoa(`${clientId}:${clientSecret}`) : btoa(clientId);\n return post(sdk, revokeUrl, args, {\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'Authorization': 'Basic ' + creds\n }\n });\n}\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\nimport { OAuthTransactionMeta, OktaAuthOAuthInterface, EnrollAuthenticatorOptions } from '../types';\nimport { getOAuthUrls } from './oauth';\n\nexport function createEnrollAuthenticatorMeta(\n sdk: OktaAuthOAuthInterface, \n params: EnrollAuthenticatorOptions\n): OAuthTransactionMeta {\n const issuer = sdk.options.issuer!;\n const urls = getOAuthUrls(sdk, params);\n const oauthMeta: OAuthTransactionMeta = {\n issuer,\n urls,\n clientId: params.clientId!,\n redirectUri: params.redirectUri!,\n responseType: params.responseType!,\n responseMode: params.responseMode!,\n state: params.state!,\n acrValues: params.acrValues,\n enrollAmrValues: params.enrollAmrValues,\n };\n\n return oauthMeta;\n}\n","\n/* global window */\n/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n *\n */\nimport { generateState } from './oauth';\nimport { OktaAuthOAuthInterface, TokenParams } from '../types';\nimport { isBrowser } from '../../features';\nimport { removeNils } from '../../util';\n\nexport function getDefaultEnrollAuthenticatorParams(sdk: OktaAuthOAuthInterface): TokenParams {\n const {\n clientId,\n redirectUri,\n responseMode,\n state,\n } = sdk.options;\n const defaultRedirectUri = isBrowser() ? window.location.href : undefined;\n return removeNils({\n clientId,\n redirectUri: redirectUri || defaultRedirectUri,\n responseMode,\n state: state || generateState(),\n responseType: 'none',\n prompt: 'enroll_authenticator',\n });\n}","/* eslint-disable complexity */\n/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n *\n */\nimport { AuthSdkError } from '../../errors';\nimport { OktaAuthOAuthInterface, EnrollAuthenticatorOptions } from '../types';\nimport { getDefaultEnrollAuthenticatorParams } from './defaultEnrollAuthenticatorParams';\n\nfunction prepareParams(\n params: EnrollAuthenticatorOptions\n): EnrollAuthenticatorOptions {\n params = {\n ...params,\n // forced params:\n responseType: 'none',\n prompt: 'enroll_authenticator',\n maxAge: 0,\n };\n\n if (!params.enrollAmrValues) {\n throw new AuthSdkError('enroll_amr_values must be specified');\n }\n if (!params.acrValues) {\n // `acr_values` is required and should equal 'urn:okta:2fa:any:ifpossible'\n // But this can be changed in future\n throw new AuthSdkError('acr_values must be specified');\n }\n\n // `scope`, `nonce` must be omitted\n delete params.scopes;\n delete params.nonce;\n\n return params;\n}\n\n// Prepares params for a call to /authorize\nexport function prepareEnrollAuthenticatorParams(\n sdk: OktaAuthOAuthInterface,\n options: EnrollAuthenticatorOptions\n): EnrollAuthenticatorOptions {\n return prepareParams({\n ...getDefaultEnrollAuthenticatorParams(sdk),\n ...options\n });\n}\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n *\n */\nimport { OktaAuthOAuthInterface, EnrollAuthenticatorOptions } from './types';\nimport { clone } from '../util';\nimport { prepareEnrollAuthenticatorParams, createEnrollAuthenticatorMeta } from './util';\nimport { buildAuthorizeParams } from './endpoints/authorize';\n\nexport function enrollAuthenticator(\n sdk: OktaAuthOAuthInterface, \n options: EnrollAuthenticatorOptions\n): void {\n options = clone(options) || {};\n\n const params = prepareEnrollAuthenticatorParams(sdk, options);\n const meta = createEnrollAuthenticatorMeta(sdk, params);\n const requestUrl = meta.urls.authorizeUrl + buildAuthorizeParams(params);\n sdk.transactionManager.save(meta);\n if (sdk.options.setLocation) {\n sdk.options.setLocation(requestUrl);\n } else {\n window.location.assign(requestUrl);\n }\n}\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n *\n */\n\nimport { PromiseQueue } from '../../util';\nimport { decodeToken } from '../decodeToken';\nimport { exchangeCodeForTokens } from '../exchangeCodeForTokens';\nimport { getUserInfo } from '../getUserInfo';\nimport { getWithoutPrompt } from '../getWithoutPrompt';\nimport { getWithPopup } from '../getWithPopup';\nimport { getWithRedirect } from '../getWithRedirect';\nimport { parseFromUrl } from '../parseFromUrl';\nimport { renewToken } from '../renewToken';\nimport { renewTokens } from '../renewTokens';\nimport { renewTokensWithRefresh } from '../renewTokensWithRefresh';\nimport { revokeToken } from '../revokeToken';\nimport {\n AccessToken,\n CustomUserClaims,\n GetWithRedirectFunction,\n IDToken,\n OktaAuthOAuthInterface,\n ParseFromUrlInterface,\n TokenAPI,\n UserClaims,\n Endpoints,\n} from '../types';\nimport { isLoginRedirect, prepareTokenParams } from '../util';\nimport { verifyToken } from '../verifyToken';\nimport { enrollAuthenticator } from '../enrollAuthenticator';\n\n// Factory\nexport function createTokenAPI(sdk: OktaAuthOAuthInterface, queue: PromiseQueue): TokenAPI {\n const useQueue = (method) => {\n return PromiseQueue.prototype.push.bind(queue, method, null);\n };\n\n const getWithRedirectFn = useQueue(getWithRedirect.bind(null, sdk)) as GetWithRedirectFunction;\n\n // eslint-disable-next-line max-len\n const parseFromUrlFn = useQueue(parseFromUrl.bind(null, sdk)) as ParseFromUrlInterface;\n const parseFromUrlApi: ParseFromUrlInterface = Object.assign(parseFromUrlFn, {\n // This is exposed so we can mock getting window.history in our tests\n _getHistory: function() {\n return window.history;\n },\n\n // This is exposed so we can mock getting window.location in our tests\n _getLocation: function() {\n return window.location;\n },\n\n // This is exposed so we can mock getting window.document in our tests\n _getDocument: function() {\n return window.document;\n }\n });\n\n const token: TokenAPI ={\n prepareTokenParams: prepareTokenParams.bind(null, sdk),\n exchangeCodeForTokens: exchangeCodeForTokens.bind(null, sdk),\n getWithoutPrompt: getWithoutPrompt.bind(null, sdk),\n getWithPopup: getWithPopup.bind(null, sdk),\n getWithRedirect: getWithRedirectFn,\n parseFromUrl: parseFromUrlApi,\n decode: decodeToken,\n revoke: revokeToken.bind(null, sdk),\n renew: renewToken.bind(null, sdk),\n renewTokensWithRefresh: renewTokensWithRefresh.bind(null, sdk),\n renewTokens: renewTokens.bind(null, sdk),\n getUserInfo: <C extends CustomUserClaims = CustomUserClaims>(\n accessTokenObject: AccessToken,\n idTokenObject: IDToken\n ): Promise<UserClaims<C>> => {\n return getUserInfo(sdk, accessTokenObject, idTokenObject);\n },\n verify: verifyToken.bind(null, sdk),\n isLoginRedirect: isLoginRedirect.bind(null, sdk)\n };\n\n // Wrap certain async token API methods using PromiseQueue to avoid issues with concurrency\n // 'getWithRedirect' and 'parseFromUrl' are already wrapped\n const toWrap = [\n 'getWithoutPrompt',\n 'getWithPopup',\n 'revoke',\n 'renew',\n 'renewTokensWithRefresh',\n 'renewTokens'\n ];\n toWrap.forEach(key => {\n token[key] = useQueue(token[key]);\n });\n\n return token;\n}\n\nexport function createEndpoints(sdk: OktaAuthOAuthInterface): Endpoints {\n return {\n authorize: {\n enrollAuthenticator: enrollAuthenticator.bind(null, sdk),\n }\n };\n}\n","/* eslint-disable complexity */\n\nimport { AuthSdkError } from '../../errors';\nimport { isAccessToken, isIDToken, isRefreshToken, Token, TokenType } from '../../oidc/types';\n\nexport function validateToken(token: Token, type?: TokenType) {\n if (!isIDToken(token) && !isAccessToken(token) && !isRefreshToken(token)) {\n throw new AuthSdkError(\n 'Token must be an Object with scopes, expiresAt, and one of: an idToken, accessToken, or refreshToken property'\n );\n }\n \n if (type === 'accessToken' && !isAccessToken(token)) {\n throw new AuthSdkError('invalid accessToken');\n } \n if (type === 'idToken' && !isIDToken(token)) {\n throw new AuthSdkError('invalid idToken');\n }\n\n if (type === 'refreshToken' && !isRefreshToken(token)) {\n throw new AuthSdkError('invalid refreshToken');\n }\n}","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nexport default class SdkClock {\n localOffset: number;\n\n constructor(localOffset) {\n // Calculated local clock offset from server time (in milliseconds). Can be positive or negative.\n this.localOffset = parseInt(localOffset || 0);\n }\n\n // factory method. Create an instance of a clock from current context.\n static create(/* sdk, options */): SdkClock {\n // TODO: calculate localOffset\n var localOffset = 0;\n return new SdkClock(localOffset);\n }\n\n // Return the current time (in seconds)\n now() {\n var now = (Date.now() + this.localOffset) / 1000;\n return now;\n }\n}\n","/* eslint-disable max-len */\nimport { StorageProvider } from '../../storage/types';\nimport { TokenManagerOptions } from './options';\nimport { AccessToken, IDToken, RefreshToken, Token, Tokens, TokenType } from './Token';\n\nexport interface TokenManagerError {\n errorSummary: string;\n errorCode: string;\n message: string;\n name: string;\n tokenKey: string;\n}\n\nexport declare type AccessTokenCallback = (key: string, token: AccessToken) => void;\nexport declare type IDTokenCallback = (key: string, token: IDToken) => void;\nexport declare type RefreshTokenCallback = (key: string, token: RefreshToken) => void;\n\nexport const EVENT_EXPIRED = 'expired';\nexport const EVENT_RENEWED = 'renewed';\nexport const EVENT_ADDED = 'added';\nexport const EVENT_REMOVED = 'removed';\nexport const EVENT_ERROR = 'error';\nexport const EVENT_SET_STORAGE = 'set_storage';\n\nexport declare type TokenManagerErrorEventHandler = (error: TokenManagerError) => void;\nexport declare type TokenManagerEventHandler = (key: string, token: Token) => void;\nexport declare type TokenManagerRenewEventHandler = (key: string, token: Token, oldtoken: Token) => void;\nexport declare type TokenManagerSetStorageEventHandler = (storage: Tokens) => void;\n\nexport declare type TokenManagerAnyEventHandler = TokenManagerErrorEventHandler | TokenManagerRenewEventHandler | TokenManagerSetStorageEventHandler | TokenManagerEventHandler;\nexport declare type TokenManagerAnyEvent = typeof EVENT_RENEWED | typeof EVENT_ERROR | typeof EVENT_SET_STORAGE | typeof EVENT_EXPIRED | typeof EVENT_ADDED | typeof EVENT_REMOVED;\n\n// only add methods needed internally\nexport interface TokenManagerInterface {\n on(event: typeof EVENT_RENEWED, handler: TokenManagerRenewEventHandler, context?: object): void;\n on(event: typeof EVENT_ERROR, handler: TokenManagerErrorEventHandler, context?: object): void;\n on(event: typeof EVENT_SET_STORAGE, handler: TokenManagerSetStorageEventHandler, context?: object): void;\n on(event: typeof EVENT_EXPIRED | typeof EVENT_ADDED | typeof EVENT_REMOVED, handler: TokenManagerEventHandler, context?: object): void;\n\n off(event: typeof EVENT_RENEWED, handler?: TokenManagerRenewEventHandler): void;\n off(event: typeof EVENT_ERROR, handler?: TokenManagerErrorEventHandler): void;\n off(event: typeof EVENT_SET_STORAGE, handler?: TokenManagerSetStorageEventHandler): void;\n off(event: typeof EVENT_EXPIRED | typeof EVENT_ADDED | typeof EVENT_REMOVED, handler?: TokenManagerEventHandler): void;\n\n clear(): void;\n setExpireEventTimeout(key: string, token: Token): void;\n clearExpireEventTimeout(key: string): void;\n clearExpireEventTimeoutAll(): void;\n emitAdded(key: string, token: Token): void;\n emitError(error: Error): void;\n emitRemoved(key: string, token: Token): void;\n emitRenewed(key: string, token: Token, oldToken?: Token): void;\n renew(key: string): Promise<Token | undefined>;\n remove(key: string): void;\n hasExpired(token: Token): boolean;\n getExpireTime(token: Token): number;\n\n get(key): Promise<Token>;\n getSync(key): Token;\n getTokens(): Promise<Tokens>;\n getTokensSync(): Tokens;\n setTokens({ accessToken, idToken, refreshToken }: Tokens, accessTokenCb?: AccessTokenCallback, idTokenCb?: IDTokenCallback, refreshTokenCb?: RefreshTokenCallback): void;\n getStorageKeyByType(type: TokenType): string;\n add(key: any, token: Token): void;\n updateRefreshToken(token: RefreshToken);\n removeRefreshToken(): void;\n clearPendingRemoveTokens(): void;\n\n getOptions(): TokenManagerOptions;\n getStorage(): StorageProvider;\n\n start();\n stop();\n isStarted(): boolean;\n}\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n *\n */\nimport { removeNils, clone } from '../util';\nimport { AuthSdkError } from '../errors';\nimport { validateToken } from '../oidc/util';\nimport { isLocalhost, isIE11OrLess } from '../features';\nimport SdkClock from '../clock';\nimport {\n Token, \n Tokens, \n TokenType, \n TokenManagerOptions, \n isIDToken, \n isAccessToken,\n isRefreshToken,\n TokenManagerErrorEventHandler,\n TokenManagerSetStorageEventHandler,\n TokenManagerRenewEventHandler,\n TokenManagerEventHandler,\n TokenManagerInterface,\n RefreshToken,\n AccessTokenCallback,\n IDTokenCallback,\n RefreshTokenCallback,\n EVENT_RENEWED,\n EVENT_ADDED,\n EVENT_ERROR,\n EVENT_EXPIRED,\n EVENT_REMOVED,\n EVENT_SET_STORAGE,\n TokenManagerAnyEventHandler,\n TokenManagerAnyEvent,\n OktaAuthOAuthInterface\n} from './types';\nimport { REFRESH_TOKEN_STORAGE_KEY, TOKEN_STORAGE_NAME } from '../constants';\nimport { EventEmitter } from '../base/types';\nimport { StorageOptions, StorageProvider, StorageType } from '../storage/types';\n\nconst DEFAULT_OPTIONS = {\n // TODO: remove in next major version - OKTA-473815\n autoRenew: true,\n autoRemove: true,\n syncStorage: true,\n // --- //\n clearPendingRemoveTokens: true,\n storage: undefined, // will use value from storageManager config\n expireEarlySeconds: 30,\n storageKey: TOKEN_STORAGE_NAME\n};\n\ninterface TokenManagerState {\n expireTimeouts: Record<string, unknown>;\n renewPromise: Promise<Token | undefined> | null;\n started?: boolean;\n}\nfunction defaultState(): TokenManagerState {\n return {\n expireTimeouts: {},\n renewPromise: null\n };\n}\nexport class TokenManager implements TokenManagerInterface {\n private sdk: OktaAuthOAuthInterface;\n private clock: SdkClock;\n private emitter: EventEmitter;\n private storage: StorageProvider;\n private state: TokenManagerState;\n private options: TokenManagerOptions;\n\n on(event: typeof EVENT_RENEWED, handler: TokenManagerRenewEventHandler, context?: object): void;\n on(event: typeof EVENT_ERROR, handler: TokenManagerErrorEventHandler, context?: object): void;\n on(event: typeof EVENT_SET_STORAGE, handler: TokenManagerSetStorageEventHandler, context?: object): void;\n on(event: typeof EVENT_EXPIRED | typeof EVENT_ADDED | typeof EVENT_REMOVED, \n handler: TokenManagerEventHandler, context?: object): void;\n on(event: TokenManagerAnyEvent, handler: TokenManagerAnyEventHandler, context?: object): void {\n if (context) {\n this.emitter.on(event, handler, context);\n } else {\n this.emitter.on(event, handler);\n }\n }\n\n off(event: typeof EVENT_RENEWED, handler?: TokenManagerRenewEventHandler): void;\n off(event: typeof EVENT_ERROR, handler?: TokenManagerErrorEventHandler): void;\n off(event: typeof EVENT_SET_STORAGE, handler?: TokenManagerSetStorageEventHandler): void;\n off(event: typeof EVENT_EXPIRED | typeof EVENT_ADDED | typeof EVENT_REMOVED, \n handler?: TokenManagerEventHandler): void;\n off(event: TokenManagerAnyEvent, handler?: TokenManagerAnyEventHandler): void {\n if (handler) {\n this.emitter.off(event, handler);\n } else {\n this.emitter.off(event);\n }\n }\n\n // eslint-disable-next-line complexity\n constructor(sdk: OktaAuthOAuthInterface, options: TokenManagerOptions = {}) {\n this.sdk = sdk;\n this.emitter = (sdk as any).emitter;\n if (!this.emitter) {\n throw new AuthSdkError('Emitter should be initialized before TokenManager');\n }\n \n options = Object.assign({}, DEFAULT_OPTIONS, removeNils(options));\n if (!isLocalhost()) {\n options.expireEarlySeconds = DEFAULT_OPTIONS.expireEarlySeconds;\n }\n\n this.options = options;\n\n const storageOptions: StorageOptions = removeNils({\n storageKey: options.storageKey,\n secure: options.secure,\n });\n if (typeof options.storage === 'object') {\n // A custom storage provider must implement getItem(key) and setItem(key, val)\n storageOptions.storageProvider = options.storage;\n } else if (options.storage) {\n storageOptions.storageType = options.storage as StorageType;\n }\n\n this.storage = sdk.storageManager.getTokenStorage({...storageOptions, useSeparateCookies: true});\n this.clock = SdkClock.create(/* sdk, options */);\n this.state = defaultState();\n }\n\n start() {\n if (this.options.clearPendingRemoveTokens) {\n this.clearPendingRemoveTokens();\n }\n this.setExpireEventTimeoutAll();\n this.state.started = true;\n }\n \n stop() {\n this.clearExpireEventTimeoutAll();\n this.state.started = false;\n }\n\n isStarted() {\n return !!this.state.started;\n }\n\n getOptions(): TokenManagerOptions {\n return clone(this.options);\n }\n \n getExpireTime(token) {\n const expireEarlySeconds = this.options.expireEarlySeconds || 0;\n var expireTime = token.expiresAt - expireEarlySeconds;\n return expireTime;\n }\n \n hasExpired(token) {\n var expireTime = this.getExpireTime(token);\n return expireTime <= this.clock.now();\n }\n \n emitExpired(key, token) {\n this.emitter.emit(EVENT_EXPIRED, key, token);\n }\n \n emitRenewed(key, freshToken, oldToken) {\n this.emitter.emit(EVENT_RENEWED, key, freshToken, oldToken);\n }\n \n emitAdded(key, token) {\n this.emitter.emit(EVENT_ADDED, key, token);\n }\n \n emitRemoved(key, token?) {\n this.emitter.emit(EVENT_REMOVED, key, token);\n }\n \n emitError(error) {\n this.emitter.emit(EVENT_ERROR, error);\n }\n \n clearExpireEventTimeout(key) {\n clearTimeout(this.state.expireTimeouts[key] as any);\n delete this.state.expireTimeouts[key];\n \n // Remove the renew promise (if it exists)\n this.state.renewPromise = null;\n }\n \n clearExpireEventTimeoutAll() {\n var expireTimeouts = this.state.expireTimeouts;\n for (var key in expireTimeouts) {\n if (!Object.prototype.hasOwnProperty.call(expireTimeouts, key)) {\n continue;\n }\n this.clearExpireEventTimeout(key);\n }\n }\n \n setExpireEventTimeout(key, token) {\n if (isRefreshToken(token)) {\n return;\n }\n\n var expireTime = this.getExpireTime(token);\n var expireEventWait = Math.max(expireTime - this.clock.now(), 0) * 1000;\n \n // Clear any existing timeout\n this.clearExpireEventTimeout(key);\n \n var expireEventTimeout = setTimeout(() => {\n this.emitExpired(key, token);\n }, expireEventWait);\n \n // Add a new timeout\n this.state.expireTimeouts[key] = expireEventTimeout;\n }\n \n setExpireEventTimeoutAll() {\n var tokenStorage = this.storage.getStorage();\n for(var key in tokenStorage) {\n if (!Object.prototype.hasOwnProperty.call(tokenStorage, key)) {\n continue;\n }\n var token = tokenStorage[key];\n this.setExpireEventTimeout(key, token);\n }\n }\n \n // reset timeouts to setup autoRenew for tokens from other document context (tabs)\n resetExpireEventTimeoutAll() {\n this.clearExpireEventTimeoutAll();\n this.setExpireEventTimeoutAll();\n }\n \n add(key, token: Token) {\n var tokenStorage = this.storage.getStorage();\n validateToken(token);\n tokenStorage[key] = token;\n this.storage.setStorage(tokenStorage);\n this.emitSetStorageEvent();\n this.emitAdded(key, token);\n this.setExpireEventTimeout(key, token);\n }\n \n getSync(key): Token {\n var tokenStorage = this.storage.getStorage();\n return tokenStorage[key];\n }\n \n async get(key): Promise<Token> {\n return this.getSync(key);\n }\n \n getTokensSync(): Tokens {\n const tokens = {} as Tokens;\n const tokenStorage = this.storage.getStorage();\n Object.keys(tokenStorage).forEach(key => {\n const token = tokenStorage[key];\n if (isAccessToken(token)) {\n tokens.accessToken = token;\n } else if (isIDToken(token)) {\n tokens.idToken = token;\n } else if (isRefreshToken(token)) { \n tokens.refreshToken = token;\n }\n });\n return tokens;\n }\n \n async getTokens(): Promise<Tokens> {\n return this.getTokensSync();\n }\n\n getStorageKeyByType(type: TokenType): string {\n const tokenStorage = this.storage.getStorage();\n const key = Object.keys(tokenStorage).filter(key => {\n const token = tokenStorage[key];\n return (isAccessToken(token) && type === 'accessToken') \n || (isIDToken(token) && type === 'idToken')\n || (isRefreshToken(token) && type === 'refreshToken');\n })[0];\n return key;\n }\n\n private getTokenType(token: Token): TokenType {\n if (isAccessToken(token)) {\n return 'accessToken';\n }\n if (isIDToken(token)) {\n return 'idToken';\n }\n if(isRefreshToken(token)) {\n return 'refreshToken';\n }\n throw new AuthSdkError('Unknown token type');\n }\n\n // for synchronization of LocalStorage cross tabs for IE11\n private emitSetStorageEvent() {\n if (isIE11OrLess()) {\n const storage = this.storage.getStorage();\n this.emitter.emit(EVENT_SET_STORAGE, storage);\n }\n }\n\n // used in `SyncStorageService` for synchronization of LocalStorage cross tabs for IE11\n public getStorage() {\n return this.storage;\n }\n\n setTokens(\n tokens: Tokens,\n // TODO: callbacks can be removed in the next major version OKTA-407224\n accessTokenCb?: AccessTokenCallback, \n idTokenCb?: IDTokenCallback,\n refreshTokenCb?: RefreshTokenCallback\n ): void {\n const handleTokenCallback = (key, token) => {\n const type = this.getTokenType(token);\n if (type === 'accessToken') {\n accessTokenCb && accessTokenCb(key, token);\n } else if (type === 'idToken') {\n idTokenCb && idTokenCb(key, token);\n } else if (type === 'refreshToken') {\n refreshTokenCb && refreshTokenCb(key, token);\n }\n };\n const handleAdded = (key, token) => {\n this.emitAdded(key, token);\n this.setExpireEventTimeout(key, token);\n handleTokenCallback(key, token);\n };\n const handleRenewed = (key, token, oldToken) => {\n this.emitRenewed(key, token, oldToken);\n this.clearExpireEventTimeout(key);\n this.setExpireEventTimeout(key, token);\n handleTokenCallback(key, token);\n };\n const handleRemoved = (key, token) => {\n this.clearExpireEventTimeout(key);\n this.emitRemoved(key, token);\n handleTokenCallback(key, token);\n };\n \n const types: TokenType[] = ['idToken', 'accessToken', 'refreshToken'];\n const existingTokens = this.getTokensSync();\n\n // valid tokens\n types.forEach((type) => {\n const token = tokens[type];\n if (token) {\n validateToken(token, type);\n }\n });\n \n // add token to storage\n const storage = types.reduce((storage, type) => {\n const token = tokens[type];\n if (token) {\n const storageKey = this.getStorageKeyByType(type) || type;\n storage[storageKey] = token;\n }\n return storage;\n }, {});\n this.storage.setStorage(storage);\n this.emitSetStorageEvent();\n\n // emit event and start expiration timer\n types.forEach(type => {\n const newToken = tokens[type];\n const existingToken = existingTokens[type];\n const storageKey = this.getStorageKeyByType(type) || type;\n if (newToken && existingToken) { // renew\n // call handleRemoved first, since it clears timers\n handleRemoved(storageKey, existingToken);\n handleAdded(storageKey, newToken);\n handleRenewed(storageKey, newToken, existingToken);\n } else if (newToken) { // add\n handleAdded(storageKey, newToken);\n } else if (existingToken) { //remove\n handleRemoved(storageKey, existingToken);\n }\n });\n }\n \n remove(key) {\n // Clear any listener for this token\n this.clearExpireEventTimeout(key);\n \n var tokenStorage = this.storage.getStorage();\n var removedToken = tokenStorage[key];\n delete tokenStorage[key];\n this.storage.setStorage(tokenStorage);\n this.emitSetStorageEvent();\n \n this.emitRemoved(key, removedToken);\n }\n \n // TODO: this methods is redundant and can be removed in the next major version OKTA-407224\n async renewToken(token) {\n return this.sdk.token?.renew(token);\n }\n // TODO: this methods is redundant and can be removed in the next major version OKTA-407224\n validateToken(token: Token) {\n return validateToken(token);\n }\n\n // TODO: renew method should take no param, change in the next major version OKTA-407224\n renew(key): Promise<Token | undefined> {\n // Multiple callers may receive the same promise. They will all resolve or reject from the same request.\n if (this.state.renewPromise) {\n return this.state.renewPromise;\n }\n \n try {\n var token = this.getSync(key);\n if (!token) {\n throw new AuthSdkError('The tokenManager has no token for the key: ' + key);\n }\n } catch (e) {\n return Promise.reject(e);\n }\n \n // Remove existing autoRenew timeout\n this.clearExpireEventTimeout(key);\n \n // A refresh token means a replace instead of renewal\n // Store the renew promise state, to avoid renewing again\n const renewPromise = this.state.renewPromise = this.sdk.token.renewTokens()\n .then(tokens => {\n this.setTokens(tokens);\n\n // resolve token based on the key\n const tokenType = this.getTokenType(token);\n return tokens[tokenType];\n })\n .catch(err => {\n // If renew fails, remove token from storage and emit error\n this.remove(key);\n err.tokenKey = key;\n this.emitError(err);\n throw err;\n })\n .finally(() => {\n // Remove existing promise key\n this.state.renewPromise = null;\n });\n \n return renewPromise;\n }\n \n clear() {\n const tokens = this.getTokensSync();\n this.clearExpireEventTimeoutAll();\n this.storage.clearStorage();\n this.emitSetStorageEvent();\n\n Object.keys(tokens).forEach(key => {\n this.emitRemoved(key, tokens[key]);\n });\n }\n\n clearPendingRemoveTokens() {\n const tokenStorage = this.storage.getStorage();\n const removedTokens = {};\n Object.keys(tokenStorage).forEach(key => {\n if (tokenStorage[key].pendingRemove) {\n removedTokens[key] = tokenStorage[key];\n delete tokenStorage[key];\n }\n });\n this.storage.setStorage(tokenStorage);\n this.emitSetStorageEvent();\n Object.keys(removedTokens).forEach(key => {\n this.clearExpireEventTimeout(key);\n this.emitRemoved(key, removedTokens[key]);\n });\n }\n\n updateRefreshToken(token: RefreshToken) {\n const key = this.getStorageKeyByType('refreshToken') || REFRESH_TOKEN_STORAGE_KEY;\n\n // do not emit any event\n var tokenStorage = this.storage.getStorage();\n validateToken(token);\n tokenStorage[key] = token;\n this.storage.setStorage(tokenStorage);\n this.emitSetStorageEvent();\n }\n\n removeRefreshToken () {\n const key = this.getStorageKeyByType('refreshToken') || REFRESH_TOKEN_STORAGE_KEY;\n this.remove(key);\n }\n\n addPendingRemoveFlags() {\n const tokens = this.getTokensSync();\n Object.keys(tokens).forEach(key => {\n tokens[key].pendingRemove = true;\n });\n this.setTokens(tokens);\n }\n \n}\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n *\n */\n\nimport Cookies from 'js-cookie';\nimport AuthSdkError from '../errors/AuthSdkError';\nimport {\n StorageOptions,\n CookieOptions,\n SimpleStorage,\n StorageType,\n StorageUtil,\n} from '../storage/types';\nimport { warn } from '../util';\nimport { isIE11OrLess } from '../features';\n\nexport interface CookieStorage extends SimpleStorage {\n setItem(key: string, value: any, expiresAt?: string | null): void; // can customize expiresAt\n getItem(key?: string): any; // if no key is passed, all cookies are returned\n removeItem(key: string); // remove a cookie\n}\n\nexport interface BrowserStorageUtil extends StorageUtil {\n browserHasLocalStorage(): boolean;\n browserHasSessionStorage(): boolean;\n getStorageByType(storageType: StorageType, options: StorageOptions): SimpleStorage;\n getLocalStorage(): Storage;\n getSessionStorage(): Storage;\n getInMemoryStorage(): SimpleStorage;\n getCookieStorage(options?: StorageOptions): CookieStorage;\n testStorage(storage: any): boolean;\n storage: Cookies;\n inMemoryStore: Record<string, unknown>;\n}\n\n// Building this as an object allows us to mock the functions in our tests\nvar storageUtil: BrowserStorageUtil = {\n\n // IE11 bug that Microsoft doesn't plan to fix\n // https://connect.microsoft.com/IE/Feedback/Details/1496040\n browserHasLocalStorage: function() {\n try {\n var storage = this.getLocalStorage();\n return this.testStorage(storage);\n } catch (e) {\n return false;\n }\n },\n\n browserHasSessionStorage: function() {\n try {\n var storage = this.getSessionStorage();\n return this.testStorage(storage);\n } catch (e) {\n return false;\n }\n },\n\n testStorageType: function(storageType: StorageType): boolean {\n var supported = false;\n switch (storageType) {\n case 'sessionStorage':\n supported = this.browserHasSessionStorage();\n break;\n case 'localStorage':\n supported = this.browserHasLocalStorage();\n break;\n case 'cookie':\n case 'memory':\n supported = true;\n break;\n default:\n supported = false;\n break;\n }\n return supported;\n },\n\n getStorageByType: function(storageType: StorageType, options?: StorageOptions): SimpleStorage {\n let storageProvider;\n switch (storageType) {\n case 'sessionStorage':\n storageProvider = this.getSessionStorage();\n break;\n case 'localStorage':\n storageProvider = this.getLocalStorage();\n break;\n case 'cookie':\n storageProvider = this.getCookieStorage(options);\n break;\n case 'memory':\n storageProvider = this.getInMemoryStorage();\n break;\n default:\n throw new AuthSdkError(`Unrecognized storage option: ${storageType}`);\n break;\n }\n return storageProvider;\n },\n\n findStorageType: function(types: StorageType[]) {\n let curType;\n let nextType;\n \n types = types.slice(); // copy array\n curType = types.shift();\n nextType = types.length ? types[0] : null;\n if (!nextType) {\n return curType;\n }\n\n if (this.testStorageType(curType)) {\n return curType;\n }\n\n // preferred type was unsupported.\n warn(`This browser doesn't support ${curType}. Switching to ${nextType}.`);\n\n // fallback to the next type. this is a recursive call\n return this.findStorageType(types);\n },\n\n getLocalStorage: function() {\n // Workaound for synchronization issue of LocalStorage cross tabs in IE11\n if (isIE11OrLess() && !window.onstorage) {\n window.onstorage = function() {};\n }\n \n return localStorage;\n },\n\n getSessionStorage: function() {\n return sessionStorage;\n },\n\n // Provides webStorage-like interface for cookies\n getCookieStorage: function(options): CookieStorage {\n const secure = options!.secure;\n const sameSite = options!.sameSite;\n const sessionCookie = options!.sessionCookie;\n if (typeof secure === 'undefined' || typeof sameSite === 'undefined') {\n throw new AuthSdkError('getCookieStorage: \"secure\" and \"sameSite\" options must be provided');\n }\n const storage: CookieStorage = {\n getItem: this.storage.get,\n setItem: (key, value, expiresAt = '2200-01-01T00:00:00.000Z') => {\n // By defauilt, cookie shouldn't expire\n expiresAt = (sessionCookie ? null : expiresAt) as string;\n this.storage.set(key, value, expiresAt, {\n secure: secure, \n sameSite: sameSite,\n });\n },\n removeItem: (key) => {\n this.storage.delete(key);\n },\n };\n\n if (!options!.useSeparateCookies) {\n return storage;\n }\n\n // Tokens are stored separately because cookies have size limits.\n // Can only be used when storing an object value. Object properties will be saved to separate cookies.\n // Each property of the object must also be an object.\n return {\n getItem: function(key) {\n var data = storage.getItem(); // read all cookies\n var value = {};\n Object.keys(data).forEach(k => {\n if (k.indexOf(key!) === 0) { // filter out unrelated cookies\n value[k.replace(`${key}_`, '')] = JSON.parse(data[k]); // populate with cookie data\n }\n });\n return JSON.stringify(value);\n },\n setItem: function(key, value) {\n var existingValues = JSON.parse(this.getItem(key));\n value = JSON.parse(value);\n // Set key-value pairs from input to cookies\n Object.keys(value).forEach(k => {\n var storageKey = key + '_' + k;\n var valueToStore = JSON.stringify(value[k]);\n storage.setItem(storageKey, valueToStore);\n delete existingValues[k];\n });\n // Delete unmatched keys from existing cookies\n Object.keys(existingValues).forEach(k => {\n storage.removeItem(key + '_' + k);\n });\n },\n removeItem: function(key) {\n var existingValues = JSON.parse(this.getItem(key));\n Object.keys(existingValues).forEach(k => {\n storage.removeItem(key + '_' + k);\n });\n },\n };\n },\n\n // Provides an in-memory solution\n inMemoryStore: {}, // override this for a unique memory store per instance\n getInMemoryStorage: function() {\n return {\n getItem: (key) => {\n return this.inMemoryStore[key];\n },\n setItem: (key, value) => {\n this.inMemoryStore[key] = value;\n },\n };\n },\n\n testStorage: function(storage) {\n var key = 'okta-test-storage';\n try {\n storage.setItem(key, key);\n storage.removeItem(key);\n return true;\n } catch (e) {\n return false;\n }\n },\n\n storage: {\n set: function(name: string, value: string, expiresAt: string, options: CookieOptions): string {\n const { sameSite, secure } = options;\n if (typeof secure === 'undefined' || typeof sameSite === 'undefined') {\n throw new AuthSdkError('storage.set: \"secure\" and \"sameSite\" options must be provided');\n }\n var cookieOptions: CookieOptions = {\n path: options.path || '/',\n secure,\n sameSite\n };\n\n // eslint-disable-next-line no-extra-boolean-cast\n if (!!(Date.parse(expiresAt))) {\n // Expires value can be converted to a Date object.\n //\n // If the 'expiresAt' value is not provided, or the value cannot be\n // parsed as a Date object, the cookie will set as a session cookie.\n cookieOptions.expires = new Date(expiresAt);\n }\n\n Cookies.set(name, value, cookieOptions);\n return this.get(name);\n },\n\n get: function(name?: string): string {\n // return all cookies when no args is provided\n if (!arguments.length) {\n return Cookies.get();\n }\n return Cookies.get(name);\n },\n\n delete: function(name: string): string {\n return Cookies.remove(name, { path: '/' });\n }\n }\n};\n\nexport default storageUtil;\n","import { REFERRER_PATH_STORAGE_KEY } from '../../constants';\nimport browserStorage from '../../browser/browserStorage';\nimport { OktaAuthStorageInterface } from '../../storage';\nimport { OktaAuthConstructor } from '../../base';\nimport {\n OAuthStorageManagerInterface,\n OAuthTransactionMeta,\n OktaAuthOAuthOptions,\n OriginalUriApi,\n PKCETransactionMeta,\n} from '../types';\n\nexport function provideOriginalUri\n<\n M extends OAuthTransactionMeta = PKCETransactionMeta,\n S extends OAuthStorageManagerInterface<M> = OAuthStorageManagerInterface<M>,\n O extends OktaAuthOAuthOptions = OktaAuthOAuthOptions,\n TBase extends OktaAuthConstructor<OktaAuthStorageInterface<S, O>>\n = OktaAuthConstructor<OktaAuthStorageInterface<S, O>> \n>\n(BaseClass: TBase) {\n return class WithOriginalUri extends BaseClass implements OriginalUriApi {\n setOriginalUri(originalUri: string, state?: string): void {\n // always store in session storage\n const sessionStorage = browserStorage.getSessionStorage();\n sessionStorage.setItem(REFERRER_PATH_STORAGE_KEY, originalUri);\n \n // to support multi-tab flows, set a state in constructor or pass as param\n state = state || this.options.state;\n if (state) {\n const sharedStorage = this.storageManager.getOriginalUriStorage();\n sharedStorage.setItem(state, originalUri);\n }\n }\n \n getOriginalUri(state?: string): string | undefined {\n // Prefer shared storage (if state is available)\n state = state || this.options.state;\n if (state) {\n const sharedStorage = this.storageManager.getOriginalUriStorage();\n const originalUri = sharedStorage.getItem(state);\n if (originalUri) {\n return originalUri;\n }\n }\n \n // Try to load from session storage\n const storage = browserStorage.getSessionStorage();\n return storage ? storage.getItem(REFERRER_PATH_STORAGE_KEY) || undefined : undefined;\n }\n \n removeOriginalUri(state?: string): void {\n // Remove from sessionStorage\n const storage = browserStorage.getSessionStorage();\n storage.removeItem(REFERRER_PATH_STORAGE_KEY);\n \n // Also remove from shared storage\n state = state || this.options.state;\n if (state) {\n const sharedStorage = this.storageManager.getOriginalUriStorage();\n sharedStorage.removeItem && sharedStorage.removeItem(state);\n }\n }\n };\n}\n","import { httpRequest, RequestOptions } from '../../http';\nimport { OktaAuthConstructor } from '../../base/types';\nimport { \n PromiseQueue,\n} from '../../util';\nimport { CryptoAPI } from '../../crypto/types';\nimport * as crypto from '../../crypto';\nimport {\n AccessToken,\n CustomUserClaims,\n IDToken,\n IsAuthenticatedOptions,\n OAuthResponseType,\n OAuthStorageManagerInterface,\n OAuthTransactionMeta,\n OktaAuthOAuthInterface,\n OktaAuthOAuthOptions,\n PkceAPI,\n PKCETransactionMeta,\n RefreshToken,\n SigninWithRedirectOptions,\n SignoutOptions,\n SignoutRedirectUrlOptions,\n TokenAPI,\n TransactionManagerInterface,\n TransactionManagerConstructor,\n UserClaims,\n Endpoints,\n} from '../types';\nimport PKCE from '../util/pkce';\nimport { createEndpoints, createTokenAPI } from '../factory';\nimport { TokenManager } from '../TokenManager';\nimport { getOAuthUrls, isLoginRedirect } from '../util';\n\nimport { OktaAuthSessionInterface } from '../../session/types';\nimport { provideOriginalUri } from './node';\nexport function mixinOAuth\n<\n M extends OAuthTransactionMeta = PKCETransactionMeta,\n S extends OAuthStorageManagerInterface<M> = OAuthStorageManagerInterface<M>,\n O extends OktaAuthOAuthOptions = OktaAuthOAuthOptions,\n TM extends TransactionManagerInterface = TransactionManagerInterface,\n TBase extends OktaAuthConstructor<OktaAuthSessionInterface<S, O>>\n = OktaAuthConstructor<OktaAuthSessionInterface<S, O>>\n>\n(\n Base: TBase,\n TransactionManagerConstructor: TransactionManagerConstructor<TM>,\n): TBase & OktaAuthConstructor<OktaAuthOAuthInterface<M, S, O, TM>>\n{\n const WithOriginalUri = provideOriginalUri(Base);\n return class OktaAuthOAuth extends WithOriginalUri\n implements OktaAuthOAuthInterface<M, S, O, TM>\n {\n static crypto: CryptoAPI = crypto;\n token: TokenAPI;\n tokenManager: TokenManager;\n transactionManager: TM;\n pkce: PkceAPI;\n endpoints: Endpoints;\n\n _pending: { handleLogin: boolean };\n _tokenQueue: PromiseQueue;\n \n constructor(...args: any[]) {\n super(...args);\n\n this.transactionManager = new TransactionManagerConstructor(Object.assign({\n storageManager: this.storageManager,\n }, this.options.transactionManager));\n \n this.pkce = {\n DEFAULT_CODE_CHALLENGE_METHOD: PKCE.DEFAULT_CODE_CHALLENGE_METHOD,\n generateVerifier: PKCE.generateVerifier,\n computeChallenge: PKCE.computeChallenge\n };\n \n this._pending = { handleLogin: false };\n\n this._tokenQueue = new PromiseQueue();\n\n this.token = createTokenAPI(this, this._tokenQueue);\n\n // TokenManager\n this.tokenManager = new TokenManager(this, this.options.tokenManager);\n\n this.endpoints = createEndpoints(this);\n }\n\n // inherited from subclass\n clearStorage(): void {\n super.clearStorage();\n \n // Clear all local tokens\n this.tokenManager.clear();\n }\n\n // Returns true if both accessToken and idToken are not expired\n // If `autoRenew` option is set, will attempt to renew expired tokens before returning.\n // eslint-disable-next-line complexity\n async isAuthenticated(options: IsAuthenticatedOptions = {}): Promise<boolean> {\n // TODO: remove dependency on tokenManager options in next major version - OKTA-473815\n const { autoRenew, autoRemove } = this.tokenManager.getOptions();\n\n const shouldRenew = options.onExpiredToken ? options.onExpiredToken === 'renew' : autoRenew;\n const shouldRemove = options.onExpiredToken ? options.onExpiredToken === 'remove' : autoRemove;\n\n let { accessToken } = this.tokenManager.getTokensSync();\n if (accessToken && this.tokenManager.hasExpired(accessToken)) {\n accessToken = undefined;\n if (shouldRenew) {\n try {\n accessToken = await this.tokenManager.renew('accessToken') as AccessToken;\n } catch {\n // Renew errors will emit an \"error\" event \n }\n } else if (shouldRemove) {\n this.tokenManager.remove('accessToken');\n }\n }\n\n let { idToken } = this.tokenManager.getTokensSync();\n if (idToken && this.tokenManager.hasExpired(idToken)) {\n idToken = undefined;\n if (shouldRenew) {\n try {\n idToken = await this.tokenManager.renew('idToken') as IDToken;\n } catch {\n // Renew errors will emit an \"error\" event \n }\n } else if (shouldRemove) {\n this.tokenManager.remove('idToken');\n }\n }\n\n return !!(accessToken && idToken);\n }\n\n\n async signInWithRedirect(opts: SigninWithRedirectOptions = {}) {\n const { originalUri, ...additionalParams } = opts;\n if(this._pending.handleLogin) { \n // Don't trigger second round\n return;\n }\n\n this._pending.handleLogin = true;\n try {\n // Trigger default signIn redirect flow\n if (originalUri) {\n this.setOriginalUri(originalUri);\n }\n const params = Object.assign({\n // TODO: remove this line when default scopes are changed OKTA-343294\n scopes: this.options.scopes || ['openid', 'email', 'profile']\n }, additionalParams);\n await this.token.getWithRedirect(params);\n } finally {\n this._pending.handleLogin = false;\n }\n }\n\n async getUser<T extends CustomUserClaims = CustomUserClaims>(): Promise<UserClaims<T>> {\n const { idToken, accessToken } = this.tokenManager.getTokensSync();\n return this.token.getUserInfo(accessToken, idToken);\n }\n \n getIdToken(): string | undefined {\n const { idToken } = this.tokenManager.getTokensSync();\n return idToken ? idToken.idToken : undefined;\n }\n \n getAccessToken(): string | undefined {\n const { accessToken } = this.tokenManager.getTokensSync();\n return accessToken ? accessToken.accessToken : undefined;\n }\n \n getRefreshToken(): string | undefined {\n const { refreshToken } = this.tokenManager.getTokensSync();\n return refreshToken ? refreshToken.refreshToken : undefined;\n }\n \n /**\n * Store parsed tokens from redirect url\n */\n async storeTokensFromRedirect(): Promise<void> {\n const { tokens, responseType } = await this.token.parseFromUrl();\n if (responseType !== 'none') {\n this.tokenManager.setTokens(tokens);\n }\n }\n \n isLoginRedirect(): boolean {\n return isLoginRedirect(this);\n }\n\n isPKCE(): boolean {\n return !!this.options.pkce;\n }\n \n hasResponseType(responseType: OAuthResponseType): boolean {\n let hasResponseType = false;\n if (Array.isArray(this.options.responseType) && this.options.responseType.length) {\n hasResponseType = this.options.responseType.indexOf(responseType) >= 0;\n } else {\n hasResponseType = this.options.responseType === responseType;\n }\n return hasResponseType;\n }\n \n isAuthorizationCodeFlow(): boolean {\n return this.hasResponseType('code');\n }\n\n // Escape hatch method to make arbitrary OKTA API call\n async invokeApiMethod(options: RequestOptions): Promise<unknown> {\n if (!options.accessToken) {\n const accessToken = (await this.tokenManager.getTokens()).accessToken as AccessToken;\n options.accessToken = accessToken?.accessToken;\n }\n return httpRequest(this, options);\n }\n \n // Revokes the access token for the application session\n async revokeAccessToken(accessToken?: AccessToken): Promise<unknown> {\n if (!accessToken) {\n accessToken = (await this.tokenManager.getTokens()).accessToken as AccessToken;\n const accessTokenKey = this.tokenManager.getStorageKeyByType('accessToken');\n this.tokenManager.remove(accessTokenKey);\n }\n // Access token may have been removed. In this case, we will silently succeed.\n if (!accessToken) {\n return Promise.resolve(null);\n }\n return this.token.revoke(accessToken);\n }\n\n // Revokes the refresh token for the application session\n async revokeRefreshToken(refreshToken?: RefreshToken): Promise<unknown> {\n if (!refreshToken) {\n refreshToken = (await this.tokenManager.getTokens()).refreshToken as RefreshToken;\n const refreshTokenKey = this.tokenManager.getStorageKeyByType('refreshToken');\n this.tokenManager.remove(refreshTokenKey);\n }\n // Refresh token may have been removed. In this case, we will silently succeed.\n if (!refreshToken) {\n return Promise.resolve(null);\n }\n return this.token.revoke(refreshToken);\n }\n\n getSignOutRedirectUrl(options: SignoutRedirectUrlOptions = {}) {\n let {\n idToken,\n postLogoutRedirectUri,\n state,\n } = options;\n if (!idToken) {\n idToken = this.tokenManager.getTokensSync().idToken as IDToken;\n }\n if (!idToken) {\n return '';\n }\n if (!postLogoutRedirectUri) {\n postLogoutRedirectUri = this.options.postLogoutRedirectUri;\n }\n\n const logoutUrl = getOAuthUrls(this).logoutUrl;\n const idTokenHint = idToken.idToken; // a string\n let logoutUri = logoutUrl + '?id_token_hint=' + encodeURIComponent(idTokenHint);\n if (postLogoutRedirectUri) {\n logoutUri += '&post_logout_redirect_uri=' + encodeURIComponent(postLogoutRedirectUri);\n } \n // State allows option parameters to be passed to logout redirect uri\n if (state) {\n logoutUri += '&state=' + encodeURIComponent(state);\n }\n\n return logoutUri;\n }\n\n // Revokes refreshToken or accessToken, clears all local tokens, then redirects to Okta to end the SSO session.\n // eslint-disable-next-line complexity, max-statements\n async signOut(options?: SignoutOptions): Promise<boolean> {\n options = Object.assign({}, options);\n \n // postLogoutRedirectUri must be whitelisted in Okta Admin UI\n var defaultUri = window.location.origin;\n var currentUri = window.location.href;\n var postLogoutRedirectUri = options.postLogoutRedirectUri\n || this.options.postLogoutRedirectUri\n || defaultUri;\n \n var accessToken = options.accessToken;\n var refreshToken = options.refreshToken;\n var revokeAccessToken = options.revokeAccessToken !== false;\n var revokeRefreshToken = options.revokeRefreshToken !== false;\n \n if (revokeRefreshToken && typeof refreshToken === 'undefined') {\n refreshToken = this.tokenManager.getTokensSync().refreshToken as RefreshToken;\n }\n\n if (revokeAccessToken && typeof accessToken === 'undefined') {\n accessToken = this.tokenManager.getTokensSync().accessToken as AccessToken;\n }\n \n if (!options.idToken) {\n options.idToken = this.tokenManager.getTokensSync().idToken as IDToken;\n }\n\n if (revokeRefreshToken && refreshToken) {\n await this.revokeRefreshToken(refreshToken);\n }\n\n if (revokeAccessToken && accessToken) {\n await this.revokeAccessToken(accessToken);\n }\n\n const logoutUri = this.getSignOutRedirectUrl({ ...options, postLogoutRedirectUri });\n // No logoutUri? This can happen if the storage was cleared.\n // Fallback to XHR signOut, then simulate a redirect to the post logout uri\n if (!logoutUri) {\n // local tokens are cleared once session is closed\n return this.closeSession() // can throw if the user cannot be signed out\n .then(function(sessionClosed) {\n if (postLogoutRedirectUri === currentUri) {\n window.location.reload(); // force a hard reload if URI is not changing\n } else {\n window.location.assign(postLogoutRedirectUri);\n }\n return sessionClosed;\n });\n } else {\n if (options.clearTokensBeforeRedirect) {\n // Clear all local tokens\n this.tokenManager.clear();\n } else {\n this.tokenManager.addPendingRemoveFlags();\n }\n // Flow ends with logout redirect\n window.location.assign(logoutUri);\n return true;\n }\n }\n\n };\n\n}\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n \n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore \n// Do not use this type in code, so it won't be emitted in the declaration output\nimport PCancelable from 'p-cancelable';\nimport { AuthSdkError } from '../errors';\nimport {\n EVENT_ADDED,\n EVENT_REMOVED,\n OAuthStorageManagerInterface,\n OAuthTransactionMeta,\n OktaAuthOAuthInterface\n} from '../oidc';\nimport {\n AuthState,\n AuthStateLogOptions,\n OktaAuthCoreOptions,\n} from './types';\nimport { PromiseQueue, getConsole } from '../util';\n\nexport const INITIAL_AUTH_STATE = null;\nconst DEFAULT_PENDING = {\n updateAuthStatePromise: null,\n canceledTimes: 0\n};\nconst EVENT_AUTH_STATE_CHANGE = 'authStateChange';\nconst MAX_PROMISE_CANCEL_TIMES = 10;\n\n// only compare first level of authState\nconst isSameAuthState = (prevState: AuthState | null, state: AuthState) => {\n // initial state is null\n if (!prevState) {\n return false;\n }\n\n return prevState.isAuthenticated === state.isAuthenticated \n && JSON.stringify(prevState.idToken) === JSON.stringify(state.idToken)\n && JSON.stringify(prevState.accessToken) === JSON.stringify(state.accessToken)\n && prevState.error === state.error;\n};\n\n\nexport class AuthStateManager\n<\n M extends OAuthTransactionMeta,\n S extends OAuthStorageManagerInterface<M>,\n O extends OktaAuthCoreOptions\n>\n{\n _sdk: OktaAuthOAuthInterface<M, S, O>;\n _pending: { \n updateAuthStatePromise: any;\n canceledTimes: number; \n };\n _authState: AuthState | null;\n _prevAuthState: AuthState | null;\n _logOptions: AuthStateLogOptions;\n _transformQueue: PromiseQueue;\n\n constructor(sdk: OktaAuthOAuthInterface<M, S, O>) {\n if (!sdk.emitter) {\n throw new AuthSdkError('Emitter should be initialized before AuthStateManager');\n }\n\n this._sdk = sdk;\n this._pending = { ...DEFAULT_PENDING };\n this._authState = INITIAL_AUTH_STATE;\n this._logOptions = {};\n this._prevAuthState = null;\n this._transformQueue = new PromiseQueue({\n quiet: true\n });\n\n // Listen on tokenManager events to start updateState process\n // \"added\" event is emitted in both add and renew process\n // Only listen on \"added\" event to update auth state\n sdk.tokenManager.on(EVENT_ADDED, (key, token) => {\n this._setLogOptions({ event: EVENT_ADDED, key, token });\n this.updateAuthState();\n });\n sdk.tokenManager.on(EVENT_REMOVED, (key, token) => {\n this._setLogOptions({ event: EVENT_REMOVED, key, token });\n this.updateAuthState();\n });\n }\n\n _setLogOptions(options) {\n this._logOptions = options;\n }\n\n getAuthState(): AuthState | null {\n return this._authState;\n }\n\n getPreviousAuthState(): AuthState | null {\n return this._prevAuthState;\n }\n\n async updateAuthState(): Promise<AuthState> {\n const { transformAuthState, devMode } = this._sdk.options;\n\n const log = (status) => {\n const { event, key, token } = this._logOptions;\n getConsole().group(`OKTA-AUTH-JS:updateAuthState: Event:${event} Status:${status}`);\n getConsole().log(key, token);\n getConsole().log('Current authState', this._authState);\n getConsole().groupEnd();\n \n // clear log options after logging\n this._logOptions = {};\n };\n\n const emitAuthStateChange = (authState) => {\n if (isSameAuthState(this._authState, authState)) {\n devMode && log('unchanged'); \n return;\n }\n this._prevAuthState = this._authState;\n this._authState = authState;\n // emit new authState object\n this._sdk.emitter.emit(EVENT_AUTH_STATE_CHANGE, { ...authState });\n devMode && log('emitted');\n };\n\n const finalPromise = (origPromise) => { \n return this._pending.updateAuthStatePromise.then(() => {\n const curPromise = this._pending.updateAuthStatePromise;\n if (curPromise && curPromise !== origPromise) {\n return finalPromise(curPromise);\n }\n return this.getAuthState();\n });\n };\n\n if (this._pending.updateAuthStatePromise) {\n if (this._pending.canceledTimes >= MAX_PROMISE_CANCEL_TIMES) {\n // stop canceling then starting a new promise\n // let existing promise finish to prevent running into loops\n devMode && log('terminated');\n return finalPromise(this._pending.updateAuthStatePromise);\n } else {\n this._pending.updateAuthStatePromise.cancel();\n }\n }\n\n /* eslint-disable complexity */\n const cancelablePromise = new PCancelable((resolve, _, onCancel) => {\n onCancel.shouldReject = false;\n onCancel(() => {\n this._pending.updateAuthStatePromise = null;\n this._pending.canceledTimes = this._pending.canceledTimes + 1;\n devMode && log('canceled');\n });\n\n const emitAndResolve = (authState) => {\n if (cancelablePromise.isCanceled) {\n resolve();\n return;\n }\n // emit event and resolve promise \n emitAuthStateChange(authState);\n resolve();\n\n // clear pending states after resolve\n this._pending = { ...DEFAULT_PENDING };\n };\n\n this._sdk.isAuthenticated()\n .then(() => {\n if (cancelablePromise.isCanceled) {\n resolve();\n return;\n }\n\n const { accessToken, idToken, refreshToken } = this._sdk.tokenManager.getTokensSync();\n const authState = {\n accessToken,\n idToken,\n refreshToken,\n isAuthenticated: !!(accessToken && idToken)\n };\n\n // Enqueue transformAuthState so that it does not run concurrently\n const promise: Promise<AuthState> = transformAuthState\n ? this._transformQueue.push(transformAuthState, null, this._sdk, authState) as Promise<AuthState>\n : Promise.resolve(authState);\n\n promise\n .then(authState => emitAndResolve(authState))\n .catch(error => emitAndResolve({\n accessToken, \n idToken, \n refreshToken,\n isAuthenticated: false, \n error\n }));\n });\n });\n /* eslint-enable complexity */\n this._pending.updateAuthStatePromise = cancelablePromise;\n\n return finalPromise(cancelablePromise);\n }\n\n subscribe(handler): void {\n this._sdk.emitter.on(EVENT_AUTH_STATE_CHANGE, handler);\n }\n\n unsubscribe(handler?): void {\n this._sdk.emitter.off(EVENT_AUTH_STATE_CHANGE, handler);\n }\n}\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\nimport { AuthSdkError } from '../errors';\nimport { ServiceInterface, ServiceManagerOptions } from '../core/types';\nimport { EVENT_EXPIRED, TokenManagerInterface, isRefreshToken } from '../oidc/types';\nimport { isBrowser } from '../features';\n\nexport class AutoRenewService implements ServiceInterface {\n private tokenManager: TokenManagerInterface;\n private options: ServiceManagerOptions;\n private renewTimeQueue: Array<number>;\n private started = false;\n\n constructor(tokenManager: TokenManagerInterface, options: ServiceManagerOptions = {}) {\n this.tokenManager = tokenManager;\n this.options = options;\n this.renewTimeQueue = [];\n this.onTokenExpiredHandler = this.onTokenExpiredHandler.bind(this);\n }\n \n private shouldThrottleRenew(): boolean {\n let res = false;\n this.renewTimeQueue.push(Date.now());\n if (this.renewTimeQueue.length >= 10) {\n // get and remove first item from queue\n const firstTime = this.renewTimeQueue.shift() as number;\n const lastTime = this.renewTimeQueue[this.renewTimeQueue.length - 1];\n res = (lastTime - firstTime) < 30 * 1000;\n }\n return res;\n }\n\n requiresLeadership() {\n // If tokens sync storage is enabled, handle tokens expiration only in 1 leader tab\n return !!this.options.syncStorage && isBrowser();\n }\n\n private processExpiredTokens() {\n const tokenStorage = this.tokenManager.getStorage();\n const tokens = tokenStorage.getStorage();\n Object.keys(tokens).forEach(key => {\n const token = tokens[key];\n if (!isRefreshToken(token) && this.tokenManager.hasExpired(token)) {\n this.onTokenExpiredHandler(key);\n }\n });\n }\n\n private onTokenExpiredHandler(key: string) {\n if (this.options.autoRenew) {\n if (this.shouldThrottleRenew()) {\n const error = new AuthSdkError('Too many token renew requests');\n this.tokenManager.emitError(error);\n } else {\n this.tokenManager.renew(key).catch(() => {}); // Renew errors will emit an \"error\" event \n }\n } else if (this.options.autoRemove) {\n this.tokenManager.remove(key);\n }\n }\n\n canStart() {\n return (!!this.options.autoRenew || !!this.options.autoRemove) && !this.started;\n }\n\n async start() {\n if (this.canStart()) {\n this.tokenManager.on(EVENT_EXPIRED, this.onTokenExpiredHandler);\n if (this.tokenManager.isStarted()) {\n // If token manager has been already started, we could miss token expire events,\n // so need to process expired tokens manually.\n this.processExpiredTokens();\n }\n this.started = true;\n }\n }\n\n async stop() {\n if (this.started) {\n this.tokenManager.off(EVENT_EXPIRED, this.onTokenExpiredHandler);\n this.renewTimeQueue = [];\n this.started = false;\n }\n }\n\n isStarted() {\n return this.started;\n }\n}\n","/**\n * returns true if the given object is a promise\n */\nexport function isPromise(obj) {\n if (obj && typeof obj.then === 'function') {\n return true;\n } else {\n return false;\n }\n}\nexport var PROMISE_RESOLVED_FALSE = Promise.resolve(false);\nexport var PROMISE_RESOLVED_TRUE = Promise.resolve(true);\nexport var PROMISE_RESOLVED_VOID = Promise.resolve();\nexport function sleep(time, resolveWith) {\n if (!time) time = 0;\n return new Promise(function (res) {\n return setTimeout(function () {\n return res(resolveWith);\n }, time);\n });\n}\nexport function randomInt(min, max) {\n return Math.floor(Math.random() * (max - min + 1) + min);\n}\n/**\n * https://stackoverflow.com/a/8084248\n */\n\nexport function randomToken() {\n return Math.random().toString(36).substring(2);\n}\nvar lastMs = 0;\nvar additional = 0;\n/**\n * returns the current time in micro-seconds,\n * WARNING: This is a pseudo-function\n * Performance.now is not reliable in webworkers, so we just make sure to never return the same time.\n * This is enough in browsers, and this function will not be used in nodejs.\n * The main reason for this hack is to ensure that BroadcastChannel behaves equal to production when it is used in fast-running unit tests.\n */\n\nexport function microSeconds() {\n var ms = new Date().getTime();\n\n if (ms === lastMs) {\n additional++;\n return ms * 1000 + additional;\n } else {\n lastMs = ms;\n additional = 0;\n return ms * 1000;\n }\n}","import { microSeconds as micro, PROMISE_RESOLVED_VOID } from '../util.js';\nexport var microSeconds = micro;\nexport var type = 'native';\nexport function create(channelName) {\n var state = {\n messagesCallback: null,\n bc: new BroadcastChannel(channelName),\n subFns: [] // subscriberFunctions\n\n };\n\n state.bc.onmessage = function (msg) {\n if (state.messagesCallback) {\n state.messagesCallback(msg.data);\n }\n };\n\n return state;\n}\nexport function close(channelState) {\n channelState.bc.close();\n channelState.subFns = [];\n}\nexport function postMessage(channelState, messageJson) {\n try {\n channelState.bc.postMessage(messageJson, false);\n return PROMISE_RESOLVED_VOID;\n } catch (err) {\n return Promise.reject(err);\n }\n}\nexport function onMessage(channelState, fn) {\n channelState.messagesCallback = fn;\n}\nexport function canBeUsed() {\n if (typeof window === 'undefined') {\n return false;\n }\n\n if (typeof BroadcastChannel === 'function') {\n if (BroadcastChannel._pubkey) {\n throw new Error('BroadcastChannel: Do not overwrite window.BroadcastChannel with this module, this is not a polyfill');\n }\n\n return true;\n } else {\n return false;\n }\n}\nexport function averageResponseTime() {\n return 150;\n}\nexport default {\n create: create,\n close: close,\n onMessage: onMessage,\n postMessage: postMessage,\n canBeUsed: canBeUsed,\n type: type,\n averageResponseTime: averageResponseTime,\n microSeconds: microSeconds\n};",null,"export function fillOptionsWithDefaults() {\n var originalOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var options = JSON.parse(JSON.stringify(originalOptions)); // main\n\n if (typeof options.webWorkerSupport === 'undefined') options.webWorkerSupport = true; // indexed-db\n\n if (!options.idb) options.idb = {}; // after this time the messages get deleted\n\n if (!options.idb.ttl) options.idb.ttl = 1000 * 45;\n if (!options.idb.fallbackInterval) options.idb.fallbackInterval = 150; // handles abrupt db onclose events.\n\n if (originalOptions.idb && typeof originalOptions.idb.onclose === 'function') options.idb.onclose = originalOptions.idb.onclose; // localstorage\n\n if (!options.localstorage) options.localstorage = {};\n if (!options.localstorage.removeTimeout) options.localstorage.removeTimeout = 1000 * 60; // custom methods\n\n if (originalOptions.methods) options.methods = originalOptions.methods; // node\n\n if (!options.node) options.node = {};\n if (!options.node.ttl) options.node.ttl = 1000 * 60 * 2; // 2 minutes;\n\n /**\n * On linux use 'ulimit -Hn' to get the limit of open files.\n * On ubuntu this was 4096 for me, so we use half of that as maxParallelWrites default.\n */\n\n if (!options.node.maxParallelWrites) options.node.maxParallelWrites = 2048;\n if (typeof options.node.useFastPath === 'undefined') options.node.useFastPath = true;\n return options;\n}","/**\n * this method uses indexeddb to store the messages\n * There is currently no observerAPI for idb\n * @link https://github.com/w3c/IndexedDB/issues/51\n * \n * When working on this, ensure to use these performance optimizations:\n * @link https://rxdb.info/slow-indexeddb.html\n */\nimport { sleep, randomInt, randomToken, microSeconds as micro, PROMISE_RESOLVED_VOID } from '../util.js';\nexport var microSeconds = micro;\nimport { ObliviousSet } from 'oblivious-set';\nimport { fillOptionsWithDefaults } from '../options.js';\nvar DB_PREFIX = 'pubkey.broadcast-channel-0-';\nvar OBJECT_STORE_ID = 'messages';\n/**\n * Use relaxed durability for faster performance on all transactions.\n * @link https://nolanlawson.com/2021/08/22/speeding-up-indexeddb-reads-and-writes/\n */\n\nexport var TRANSACTION_SETTINGS = {\n durability: 'relaxed'\n};\nexport var type = 'idb';\nexport function getIdb() {\n if (typeof indexedDB !== 'undefined') return indexedDB;\n\n if (typeof window !== 'undefined') {\n if (typeof window.mozIndexedDB !== 'undefined') return window.mozIndexedDB;\n if (typeof window.webkitIndexedDB !== 'undefined') return window.webkitIndexedDB;\n if (typeof window.msIndexedDB !== 'undefined') return window.msIndexedDB;\n }\n\n return false;\n}\n/**\n * If possible, we should explicitly commit IndexedDB transactions\n * for better performance.\n * @link https://nolanlawson.com/2021/08/22/speeding-up-indexeddb-reads-and-writes/\n */\n\nexport function commitIndexedDBTransaction(tx) {\n if (tx.commit) {\n tx.commit();\n }\n}\nexport function createDatabase(channelName) {\n var IndexedDB = getIdb(); // create table\n\n var dbName = DB_PREFIX + channelName;\n /**\n * All IndexedDB databases are opened without version\n * because it is a bit faster, especially on firefox\n * @link http://nparashuram.com/IndexedDB/perf/#Open%20Database%20with%20version\n */\n\n var openRequest = IndexedDB.open(dbName);\n\n openRequest.onupgradeneeded = function (ev) {\n var db = ev.target.result;\n db.createObjectStore(OBJECT_STORE_ID, {\n keyPath: 'id',\n autoIncrement: true\n });\n };\n\n var dbPromise = new Promise(function (res, rej) {\n openRequest.onerror = function (ev) {\n return rej(ev);\n };\n\n openRequest.onsuccess = function () {\n res(openRequest.result);\n };\n });\n return dbPromise;\n}\n/**\n * writes the new message to the database\n * so other readers can find it\n */\n\nexport function writeMessage(db, readerUuid, messageJson) {\n var time = new Date().getTime();\n var writeObject = {\n uuid: readerUuid,\n time: time,\n data: messageJson\n };\n var tx = db.transaction([OBJECT_STORE_ID], 'readwrite', TRANSACTION_SETTINGS);\n return new Promise(function (res, rej) {\n tx.oncomplete = function () {\n return res();\n };\n\n tx.onerror = function (ev) {\n return rej(ev);\n };\n\n var objectStore = tx.objectStore(OBJECT_STORE_ID);\n objectStore.add(writeObject);\n commitIndexedDBTransaction(tx);\n });\n}\nexport function getAllMessages(db) {\n var tx = db.transaction(OBJECT_STORE_ID, 'readonly', TRANSACTION_SETTINGS);\n var objectStore = tx.objectStore(OBJECT_STORE_ID);\n var ret = [];\n return new Promise(function (res) {\n objectStore.openCursor().onsuccess = function (ev) {\n var cursor = ev.target.result;\n\n if (cursor) {\n ret.push(cursor.value); //alert(\"Name for SSN \" + cursor.key + \" is \" + cursor.value.name);\n\n cursor[\"continue\"]();\n } else {\n commitIndexedDBTransaction(tx);\n res(ret);\n }\n };\n });\n}\nexport function getMessagesHigherThan(db, lastCursorId) {\n var tx = db.transaction(OBJECT_STORE_ID, 'readonly', TRANSACTION_SETTINGS);\n var objectStore = tx.objectStore(OBJECT_STORE_ID);\n var ret = [];\n var keyRangeValue = IDBKeyRange.bound(lastCursorId + 1, Infinity);\n /**\n * Optimization shortcut,\n * if getAll() can be used, do not use a cursor.\n * @link https://rxdb.info/slow-indexeddb.html\n */\n\n if (objectStore.getAll) {\n var getAllRequest = objectStore.getAll(keyRangeValue);\n return new Promise(function (res, rej) {\n getAllRequest.onerror = function (err) {\n return rej(err);\n };\n\n getAllRequest.onsuccess = function (e) {\n res(e.target.result);\n };\n });\n }\n\n function openCursor() {\n // Occasionally Safari will fail on IDBKeyRange.bound, this\n // catches that error, having it open the cursor to the first\n // item. When it gets data it will advance to the desired key.\n try {\n keyRangeValue = IDBKeyRange.bound(lastCursorId + 1, Infinity);\n return objectStore.openCursor(keyRangeValue);\n } catch (e) {\n return objectStore.openCursor();\n }\n }\n\n return new Promise(function (res, rej) {\n var openCursorRequest = openCursor();\n\n openCursorRequest.onerror = function (err) {\n return rej(err);\n };\n\n openCursorRequest.onsuccess = function (ev) {\n var cursor = ev.target.result;\n\n if (cursor) {\n if (cursor.value.id < lastCursorId + 1) {\n cursor[\"continue\"](lastCursorId + 1);\n } else {\n ret.push(cursor.value);\n cursor[\"continue\"]();\n }\n } else {\n commitIndexedDBTransaction(tx);\n res(ret);\n }\n };\n });\n}\nexport function removeMessagesById(db, ids) {\n var tx = db.transaction([OBJECT_STORE_ID], 'readwrite', TRANSACTION_SETTINGS);\n var objectStore = tx.objectStore(OBJECT_STORE_ID);\n return Promise.all(ids.map(function (id) {\n var deleteRequest = objectStore[\"delete\"](id);\n return new Promise(function (res) {\n deleteRequest.onsuccess = function () {\n return res();\n };\n });\n }));\n}\nexport function getOldMessages(db, ttl) {\n var olderThen = new Date().getTime() - ttl;\n var tx = db.transaction(OBJECT_STORE_ID, 'readonly', TRANSACTION_SETTINGS);\n var objectStore = tx.objectStore(OBJECT_STORE_ID);\n var ret = [];\n return new Promise(function (res) {\n objectStore.openCursor().onsuccess = function (ev) {\n var cursor = ev.target.result;\n\n if (cursor) {\n var msgObk = cursor.value;\n\n if (msgObk.time < olderThen) {\n ret.push(msgObk); //alert(\"Name for SSN \" + cursor.key + \" is \" + cursor.value.name);\n\n cursor[\"continue\"]();\n } else {\n // no more old messages,\n commitIndexedDBTransaction(tx);\n res(ret);\n return;\n }\n } else {\n res(ret);\n }\n };\n });\n}\nexport function cleanOldMessages(db, ttl) {\n return getOldMessages(db, ttl).then(function (tooOld) {\n return removeMessagesById(db, tooOld.map(function (msg) {\n return msg.id;\n }));\n });\n}\nexport function create(channelName, options) {\n options = fillOptionsWithDefaults(options);\n return createDatabase(channelName).then(function (db) {\n var state = {\n closed: false,\n lastCursorId: 0,\n channelName: channelName,\n options: options,\n uuid: randomToken(),\n\n /**\n * emittedMessagesIds\n * contains all messages that have been emitted before\n * @type {ObliviousSet}\n */\n eMIs: new ObliviousSet(options.idb.ttl * 2),\n // ensures we do not read messages in parrallel\n writeBlockPromise: PROMISE_RESOLVED_VOID,\n messagesCallback: null,\n readQueuePromises: [],\n db: db\n };\n /**\n * Handle abrupt closes that do not originate from db.close().\n * This could happen, for example, if the underlying storage is\n * removed or if the user clears the database in the browser's\n * history preferences.\n */\n\n db.onclose = function () {\n state.closed = true;\n if (options.idb.onclose) options.idb.onclose();\n };\n /**\n * if service-workers are used,\n * we have no 'storage'-event if they post a message,\n * therefore we also have to set an interval\n */\n\n\n _readLoop(state);\n\n return state;\n });\n}\n\nfunction _readLoop(state) {\n if (state.closed) return;\n readNewMessages(state).then(function () {\n return sleep(state.options.idb.fallbackInterval);\n }).then(function () {\n return _readLoop(state);\n });\n}\n\nfunction _filterMessage(msgObj, state) {\n if (msgObj.uuid === state.uuid) return false; // send by own\n\n if (state.eMIs.has(msgObj.id)) return false; // already emitted\n\n if (msgObj.data.time < state.messagesCallbackTime) return false; // older then onMessageCallback\n\n return true;\n}\n/**\n * reads all new messages from the database and emits them\n */\n\n\nfunction readNewMessages(state) {\n // channel already closed\n if (state.closed) return PROMISE_RESOLVED_VOID; // if no one is listening, we do not need to scan for new messages\n\n if (!state.messagesCallback) return PROMISE_RESOLVED_VOID;\n return getMessagesHigherThan(state.db, state.lastCursorId).then(function (newerMessages) {\n var useMessages = newerMessages\n /**\n * there is a bug in iOS where the msgObj can be undefined some times\n * so we filter them out\n * @link https://github.com/pubkey/broadcast-channel/issues/19\n */\n .filter(function (msgObj) {\n return !!msgObj;\n }).map(function (msgObj) {\n if (msgObj.id > state.lastCursorId) {\n state.lastCursorId = msgObj.id;\n }\n\n return msgObj;\n }).filter(function (msgObj) {\n return _filterMessage(msgObj, state);\n }).sort(function (msgObjA, msgObjB) {\n return msgObjA.time - msgObjB.time;\n }); // sort by time\n\n useMessages.forEach(function (msgObj) {\n if (state.messagesCallback) {\n state.eMIs.add(msgObj.id);\n state.messagesCallback(msgObj.data);\n }\n });\n return PROMISE_RESOLVED_VOID;\n });\n}\n\nexport function close(channelState) {\n channelState.closed = true;\n channelState.db.close();\n}\nexport function postMessage(channelState, messageJson) {\n channelState.writeBlockPromise = channelState.writeBlockPromise.then(function () {\n return writeMessage(channelState.db, channelState.uuid, messageJson);\n }).then(function () {\n if (randomInt(0, 10) === 0) {\n /* await (do not await) */\n cleanOldMessages(channelState.db, channelState.options.idb.ttl);\n }\n });\n return channelState.writeBlockPromise;\n}\nexport function onMessage(channelState, fn, time) {\n channelState.messagesCallbackTime = time;\n channelState.messagesCallback = fn;\n readNewMessages(channelState);\n}\nexport function canBeUsed() {\n var idb = getIdb();\n\n if (!idb) {\n return false;\n }\n\n return true;\n}\nexport function averageResponseTime(options) {\n return options.idb.fallbackInterval * 2;\n}\nexport default {\n create: create,\n close: close,\n onMessage: onMessage,\n postMessage: postMessage,\n canBeUsed: canBeUsed,\n type: type,\n averageResponseTime: averageResponseTime,\n microSeconds: microSeconds\n};","/**\n * A localStorage-only method which uses localstorage and its 'storage'-event\n * This does not work inside of webworkers because they have no access to locastorage\n * This is basically implemented to support IE9 or your grandmothers toaster.\n * @link https://caniuse.com/#feat=namevalue-storage\n * @link https://caniuse.com/#feat=indexeddb\n */\nimport { ObliviousSet } from 'oblivious-set';\nimport { fillOptionsWithDefaults } from '../options.js';\nimport { sleep, randomToken, microSeconds as micro } from '../util.js';\nexport var microSeconds = micro;\nvar KEY_PREFIX = 'pubkey.broadcastChannel-';\nexport var type = 'localstorage';\n/**\n * copied from crosstab\n * @link https://github.com/tejacques/crosstab/blob/master/src/crosstab.js#L32\n */\n\nexport function getLocalStorage() {\n var localStorage;\n if (typeof window === 'undefined') return null;\n\n try {\n localStorage = window.localStorage;\n localStorage = window['ie8-eventlistener/storage'] || window.localStorage;\n } catch (e) {// New versions of Firefox throw a Security exception\n // if cookies are disabled. See\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1028153\n }\n\n return localStorage;\n}\nexport function storageKey(channelName) {\n return KEY_PREFIX + channelName;\n}\n/**\n* writes the new message to the storage\n* and fires the storage-event so other readers can find it\n*/\n\nexport function postMessage(channelState, messageJson) {\n return new Promise(function (res) {\n sleep().then(function () {\n var key = storageKey(channelState.channelName);\n var writeObj = {\n token: randomToken(),\n time: new Date().getTime(),\n data: messageJson,\n uuid: channelState.uuid\n };\n var value = JSON.stringify(writeObj);\n getLocalStorage().setItem(key, value);\n /**\n * StorageEvent does not fire the 'storage' event\n * in the window that changes the state of the local storage.\n * So we fire it manually\n */\n\n var ev = document.createEvent('Event');\n ev.initEvent('storage', true, true);\n ev.key = key;\n ev.newValue = value;\n window.dispatchEvent(ev);\n res();\n });\n });\n}\nexport function addStorageEventListener(channelName, fn) {\n var key = storageKey(channelName);\n\n var listener = function listener(ev) {\n if (ev.key === key) {\n fn(JSON.parse(ev.newValue));\n }\n };\n\n window.addEventListener('storage', listener);\n return listener;\n}\nexport function removeStorageEventListener(listener) {\n window.removeEventListener('storage', listener);\n}\nexport function create(channelName, options) {\n options = fillOptionsWithDefaults(options);\n\n if (!canBeUsed()) {\n throw new Error('BroadcastChannel: localstorage cannot be used');\n }\n\n var uuid = randomToken();\n /**\n * eMIs\n * contains all messages that have been emitted before\n * @type {ObliviousSet}\n */\n\n var eMIs = new ObliviousSet(options.localstorage.removeTimeout);\n var state = {\n channelName: channelName,\n uuid: uuid,\n eMIs: eMIs // emittedMessagesIds\n\n };\n state.listener = addStorageEventListener(channelName, function (msgObj) {\n if (!state.messagesCallback) return; // no listener\n\n if (msgObj.uuid === uuid) return; // own message\n\n if (!msgObj.token || eMIs.has(msgObj.token)) return; // already emitted\n\n if (msgObj.data.time && msgObj.data.time < state.messagesCallbackTime) return; // too old\n\n eMIs.add(msgObj.token);\n state.messagesCallback(msgObj.data);\n });\n return state;\n}\nexport function close(channelState) {\n removeStorageEventListener(channelState.listener);\n}\nexport function onMessage(channelState, fn, time) {\n channelState.messagesCallbackTime = time;\n channelState.messagesCallback = fn;\n}\nexport function canBeUsed() {\n var ls = getLocalStorage();\n if (!ls) return false;\n\n try {\n var key = '__broadcastchannel_check';\n ls.setItem(key, 'works');\n ls.removeItem(key);\n } catch (e) {\n // Safari 10 in private mode will not allow write access to local\n // storage and fail with a QuotaExceededError. See\n // https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API#Private_Browsing_Incognito_modes\n return false;\n }\n\n return true;\n}\nexport function averageResponseTime() {\n var defaultTime = 120;\n var userAgent = navigator.userAgent.toLowerCase();\n\n if (userAgent.includes('safari') && !userAgent.includes('chrome')) {\n // safari is much slower so this time is higher\n return defaultTime * 2;\n }\n\n return defaultTime;\n}\nexport default {\n create: create,\n close: close,\n onMessage: onMessage,\n postMessage: postMessage,\n canBeUsed: canBeUsed,\n type: type,\n averageResponseTime: averageResponseTime,\n microSeconds: microSeconds\n};","import { microSeconds as micro } from '../util.js';\nexport var microSeconds = micro;\nexport var type = 'simulate';\nvar SIMULATE_CHANNELS = new Set();\nexport function create(channelName) {\n var state = {\n name: channelName,\n messagesCallback: null\n };\n SIMULATE_CHANNELS.add(state);\n return state;\n}\nexport function close(channelState) {\n SIMULATE_CHANNELS[\"delete\"](channelState);\n}\nexport function postMessage(channelState, messageJson) {\n return new Promise(function (res) {\n return setTimeout(function () {\n var channelArray = Array.from(SIMULATE_CHANNELS);\n channelArray.filter(function (channel) {\n return channel.name === channelState.name;\n }).filter(function (channel) {\n return channel !== channelState;\n }).filter(function (channel) {\n return !!channel.messagesCallback;\n }).forEach(function (channel) {\n return channel.messagesCallback(messageJson);\n });\n res();\n }, 5);\n });\n}\nexport function onMessage(channelState, fn) {\n channelState.messagesCallback = fn;\n}\nexport function canBeUsed() {\n return true;\n}\nexport function averageResponseTime() {\n return 5;\n}\nexport default {\n create: create,\n close: close,\n onMessage: onMessage,\n postMessage: postMessage,\n canBeUsed: canBeUsed,\n type: type,\n averageResponseTime: averageResponseTime,\n microSeconds: microSeconds\n};","import NativeMethod from './methods/native.js';\nimport IndexeDbMethod from './methods/indexed-db.js';\nimport LocalstorageMethod from './methods/localstorage.js';\nimport SimulateMethod from './methods/simulate.js'; // the line below will be removed from es5/browser builds\n\n\nvar METHODS = [NativeMethod, // fastest\nIndexeDbMethod, LocalstorageMethod];\nexport function chooseMethod(options) {\n var chooseMethods = [].concat(options.methods, METHODS).filter(Boolean); // the line below will be removed from es5/browser builds\n\n\n if (options.type) {\n if (options.type === 'simulate') {\n // only use simulate-method if directly chosen\n return SimulateMethod;\n }\n\n var ret = chooseMethods.find(function (m) {\n return m.type === options.type;\n });\n if (!ret) throw new Error('method-type ' + options.type + ' not found');else return ret;\n }\n /**\n * if no webworker support is needed,\n * remove idb from the list so that localstorage is been chosen\n */\n\n\n if (!options.webWorkerSupport) {\n chooseMethods = chooseMethods.filter(function (m) {\n return m.type !== 'idb';\n });\n }\n\n var useMethod = chooseMethods.find(function (method) {\n return method.canBeUsed();\n });\n if (!useMethod) throw new Error(\"No useable method found in \" + JSON.stringify(METHODS.map(function (m) {\n return m.type;\n })));else return useMethod;\n}","import { isPromise, PROMISE_RESOLVED_FALSE, PROMISE_RESOLVED_VOID } from './util.js';\nimport { chooseMethod } from './method-chooser.js';\nimport { fillOptionsWithDefaults } from './options.js';\n/**\n * Contains all open channels,\n * used in tests to ensure everything is closed.\n */\n\nexport var OPEN_BROADCAST_CHANNELS = new Set();\nvar lastId = 0;\nexport var BroadcastChannel = function BroadcastChannel(name, options) {\n // identifier of the channel to debug stuff\n this.id = lastId++;\n OPEN_BROADCAST_CHANNELS.add(this);\n this.name = name;\n\n if (ENFORCED_OPTIONS) {\n options = ENFORCED_OPTIONS;\n }\n\n this.options = fillOptionsWithDefaults(options);\n this.method = chooseMethod(this.options); // isListening\n\n this._iL = false;\n /**\n * _onMessageListener\n * setting onmessage twice,\n * will overwrite the first listener\n */\n\n this._onML = null;\n /**\n * _addEventListeners\n */\n\n this._addEL = {\n message: [],\n internal: []\n };\n /**\n * Unsend message promises\n * where the sending is still in progress\n * @type {Set<Promise>}\n */\n\n this._uMP = new Set();\n /**\n * _beforeClose\n * array of promises that will be awaited\n * before the channel is closed\n */\n\n this._befC = [];\n /**\n * _preparePromise\n */\n\n this._prepP = null;\n\n _prepareChannel(this);\n}; // STATICS\n\n/**\n * used to identify if someone overwrites\n * window.BroadcastChannel with this\n * See methods/native.js\n */\n\nBroadcastChannel._pubkey = true;\n/**\n * clears the tmp-folder if is node\n * @return {Promise<boolean>} true if has run, false if not node\n */\n\nexport function clearNodeFolder(options) {\n options = fillOptionsWithDefaults(options);\n var method = chooseMethod(options);\n\n if (method.type === 'node') {\n return method.clearNodeFolder().then(function () {\n return true;\n });\n } else {\n return PROMISE_RESOLVED_FALSE;\n }\n}\n/**\n * if set, this method is enforced,\n * no mather what the options are\n */\n\nvar ENFORCED_OPTIONS;\nexport function enforceOptions(options) {\n ENFORCED_OPTIONS = options;\n} // PROTOTYPE\n\nBroadcastChannel.prototype = {\n postMessage: function postMessage(msg) {\n if (this.closed) {\n throw new Error('BroadcastChannel.postMessage(): ' + 'Cannot post message after channel has closed ' +\n /**\n * In the past when this error appeared, it was realy hard to debug.\n * So now we log the msg together with the error so it at least\n * gives some clue about where in your application this happens.\n */\n JSON.stringify(msg));\n }\n\n return _post(this, 'message', msg);\n },\n postInternal: function postInternal(msg) {\n return _post(this, 'internal', msg);\n },\n\n set onmessage(fn) {\n var time = this.method.microSeconds();\n var listenObj = {\n time: time,\n fn: fn\n };\n\n _removeListenerObject(this, 'message', this._onML);\n\n if (fn && typeof fn === 'function') {\n this._onML = listenObj;\n\n _addListenerObject(this, 'message', listenObj);\n } else {\n this._onML = null;\n }\n },\n\n addEventListener: function addEventListener(type, fn) {\n var time = this.method.microSeconds();\n var listenObj = {\n time: time,\n fn: fn\n };\n\n _addListenerObject(this, type, listenObj);\n },\n removeEventListener: function removeEventListener(type, fn) {\n var obj = this._addEL[type].find(function (obj) {\n return obj.fn === fn;\n });\n\n _removeListenerObject(this, type, obj);\n },\n close: function close() {\n var _this = this;\n\n if (this.closed) {\n return;\n }\n\n OPEN_BROADCAST_CHANNELS[\"delete\"](this);\n this.closed = true;\n var awaitPrepare = this._prepP ? this._prepP : PROMISE_RESOLVED_VOID;\n this._onML = null;\n this._addEL.message = [];\n return awaitPrepare // wait until all current sending are processed\n .then(function () {\n return Promise.all(Array.from(_this._uMP));\n }) // run before-close hooks\n .then(function () {\n return Promise.all(_this._befC.map(function (fn) {\n return fn();\n }));\n }) // close the channel\n .then(function () {\n return _this.method.close(_this._state);\n });\n },\n\n get type() {\n return this.method.type;\n },\n\n get isClosed() {\n return this.closed;\n }\n\n};\n/**\n * Post a message over the channel\n * @returns {Promise} that resolved when the message sending is done\n */\n\nfunction _post(broadcastChannel, type, msg) {\n var time = broadcastChannel.method.microSeconds();\n var msgObj = {\n time: time,\n type: type,\n data: msg\n };\n var awaitPrepare = broadcastChannel._prepP ? broadcastChannel._prepP : PROMISE_RESOLVED_VOID;\n return awaitPrepare.then(function () {\n var sendPromise = broadcastChannel.method.postMessage(broadcastChannel._state, msgObj); // add/remove to unsend messages list\n\n broadcastChannel._uMP.add(sendPromise);\n\n sendPromise[\"catch\"]().then(function () {\n return broadcastChannel._uMP[\"delete\"](sendPromise);\n });\n return sendPromise;\n });\n}\n\nfunction _prepareChannel(channel) {\n var maybePromise = channel.method.create(channel.name, channel.options);\n\n if (isPromise(maybePromise)) {\n channel._prepP = maybePromise;\n maybePromise.then(function (s) {\n // used in tests to simulate slow runtime\n\n /*if (channel.options.prepareDelay) {\n await new Promise(res => setTimeout(res, this.options.prepareDelay));\n }*/\n channel._state = s;\n });\n } else {\n channel._state = maybePromise;\n }\n}\n\nfunction _hasMessageListeners(channel) {\n if (channel._addEL.message.length > 0) return true;\n if (channel._addEL.internal.length > 0) return true;\n return false;\n}\n\nfunction _addListenerObject(channel, type, obj) {\n channel._addEL[type].push(obj);\n\n _startListening(channel);\n}\n\nfunction _removeListenerObject(channel, type, obj) {\n channel._addEL[type] = channel._addEL[type].filter(function (o) {\n return o !== obj;\n });\n\n _stopListening(channel);\n}\n\nfunction _startListening(channel) {\n if (!channel._iL && _hasMessageListeners(channel)) {\n // someone is listening, start subscribing\n var listenerFn = function listenerFn(msgObj) {\n channel._addEL[msgObj.type].forEach(function (listenerObject) {\n /**\n * Getting the current time in JavaScript has no good precision.\n * So instead of only listening to events that happend 'after' the listener\n * was added, we also listen to events that happended 100ms before it.\n * This ensures that when another process, like a WebWorker, sends events\n * we do not miss them out because their timestamp is a bit off compared to the main process.\n * Not doing this would make messages missing when we send data directly after subscribing and awaiting a response.\n * @link https://johnresig.com/blog/accuracy-of-javascript-time/\n */\n var hundredMsInMicro = 100 * 1000;\n var minMessageTime = listenerObject.time - hundredMsInMicro;\n\n if (msgObj.time >= minMessageTime) {\n listenerObject.fn(msgObj.data);\n }\n });\n };\n\n var time = channel.method.microSeconds();\n\n if (channel._prepP) {\n channel._prepP.then(function () {\n channel._iL = true;\n channel.method.onMessage(channel._state, listenerFn, time);\n });\n } else {\n channel._iL = true;\n channel.method.onMessage(channel._state, listenerFn, time);\n }\n }\n}\n\nfunction _stopListening(channel) {\n if (channel._iL && !_hasMessageListeners(channel)) {\n // noone is listening, stop subscribing\n channel._iL = false;\n var time = channel.method.microSeconds();\n channel.method.onMessage(channel._state, null, time);\n }\n}","/* global WorkerGlobalScope */\nfunction add(fn) {\n if (typeof WorkerGlobalScope === 'function' && self instanceof WorkerGlobalScope) {// this is run inside of a webworker\n } else {\n /**\n * if we are on react-native, there is no window.addEventListener\n * @link https://github.com/pubkey/unload/issues/6\n */\n if (typeof window.addEventListener !== 'function') return;\n /**\n * for normal browser-windows, we use the beforeunload-event\n */\n\n window.addEventListener('beforeunload', function () {\n fn();\n }, true);\n /**\n * for iframes, we have to use the unload-event\n * @link https://stackoverflow.com/q/47533670/3443137\n */\n\n window.addEventListener('unload', function () {\n fn();\n }, true);\n }\n /**\n * TODO add fallback for safari-mobile\n * @link https://stackoverflow.com/a/26193516/3443137\n */\n\n}\n\nexport default {\n add: add\n};","import isNode from 'detect-node';\nimport BrowserMethod from './browser.js';\nimport NodeMethod from './node.js';\nvar USE_METHOD = isNode ? NodeMethod : BrowserMethod;\nvar LISTENERS = new Set();\nvar startedListening = false;\n\nfunction startListening() {\n if (startedListening) return;\n startedListening = true;\n USE_METHOD.add(runAll);\n}\n\nexport function add(fn) {\n startListening();\n if (typeof fn !== 'function') throw new Error('Listener is no function');\n LISTENERS.add(fn);\n var addReturn = {\n remove: function remove() {\n return LISTENERS[\"delete\"](fn);\n },\n run: function run() {\n LISTENERS[\"delete\"](fn);\n return fn();\n }\n };\n return addReturn;\n}\nexport function runAll() {\n var promises = [];\n LISTENERS.forEach(function (fn) {\n promises.push(fn());\n LISTENERS[\"delete\"](fn);\n });\n return Promise.all(promises);\n}\nexport function removeAll() {\n LISTENERS.clear();\n}\nexport function getSize() {\n return LISTENERS.size;\n}","import { sleep, randomToken, PROMISE_RESOLVED_VOID, PROMISE_RESOLVED_TRUE } from './util.js';\nimport { add as unloadAdd } from 'unload';\n\nvar LeaderElection = function LeaderElection(broadcastChannel, options) {\n var _this = this;\n\n this.broadcastChannel = broadcastChannel;\n this._options = options;\n this.isLeader = false;\n this.hasLeader = false;\n this.isDead = false;\n this.token = randomToken();\n /**\n * Apply Queue,\n * used to ensure we do not run applyOnce()\n * in parallel.\n */\n\n this._aplQ = PROMISE_RESOLVED_VOID; // amount of unfinished applyOnce() calls\n\n this._aplQC = 0; // things to clean up\n\n this._unl = []; // _unloads\n\n this._lstns = []; // _listeners\n\n this._dpL = function () {}; // onduplicate listener\n\n\n this._dpLC = false; // true when onduplicate called\n\n /**\n * Even when the own instance is not applying,\n * we still listen to messages to ensure the hasLeader flag\n * is set correctly.\n */\n\n var hasLeaderListener = function hasLeaderListener(msg) {\n if (msg.context === 'leader') {\n if (msg.action === 'death') {\n _this.hasLeader = false;\n }\n\n if (msg.action === 'tell') {\n _this.hasLeader = true;\n }\n }\n };\n\n this.broadcastChannel.addEventListener('internal', hasLeaderListener);\n\n this._lstns.push(hasLeaderListener);\n};\n\nLeaderElection.prototype = {\n /**\n * Returns true if the instance is leader,\n * false if not.\n * @async\n */\n applyOnce: function applyOnce( // true if the applyOnce() call came from the fallbackInterval cycle\n isFromFallbackInterval) {\n var _this2 = this;\n\n if (this.isLeader) {\n return sleep(0, true);\n }\n\n if (this.isDead) {\n return sleep(0, false);\n }\n /**\n * Already applying more then once,\n * -> wait for the apply queue to be finished.\n */\n\n\n if (this._aplQC > 1) {\n return this._aplQ;\n }\n /**\n * Add a new apply-run\n */\n\n\n var applyRun = function applyRun() {\n /**\n * Optimization shortcuts.\n * Directly return if a previous run\n * has already elected a leader.\n */\n if (_this2.isLeader) {\n return PROMISE_RESOLVED_TRUE;\n }\n\n var stopCriteria = false;\n var stopCriteriaPromiseResolve;\n /**\n * Resolves when a stop criteria is reached.\n * Uses as a performance shortcut so we do not\n * have to await the responseTime when it is already clear\n * that the election failed.\n */\n\n var stopCriteriaPromise = new Promise(function (res) {\n stopCriteriaPromiseResolve = function stopCriteriaPromiseResolve() {\n stopCriteria = true;\n res();\n };\n });\n var recieved = [];\n\n var handleMessage = function handleMessage(msg) {\n if (msg.context === 'leader' && msg.token != _this2.token) {\n recieved.push(msg);\n\n if (msg.action === 'apply') {\n // other is applying\n if (msg.token > _this2.token) {\n /**\n * other has higher token\n * -> stop applying and let other become leader.\n */\n stopCriteriaPromiseResolve();\n }\n }\n\n if (msg.action === 'tell') {\n // other is already leader\n stopCriteriaPromiseResolve();\n _this2.hasLeader = true;\n }\n }\n };\n\n _this2.broadcastChannel.addEventListener('internal', handleMessage);\n /**\n * If the applyOnce() call came from the fallbackInterval,\n * we can assume that the election runs in the background and\n * not critical process is waiting for it.\n * When this is true, we give the other intances\n * more time to answer to messages in the election cycle.\n * This makes it less likely to elect duplicate leaders.\n * But also it takes longer which is not a problem because we anyway\n * run in the background.\n */\n\n\n var waitForAnswerTime = isFromFallbackInterval ? _this2._options.responseTime * 4 : _this2._options.responseTime;\n\n var applyPromise = _sendMessage(_this2, 'apply') // send out that this one is applying\n .then(function () {\n return Promise.race([sleep(waitForAnswerTime), stopCriteriaPromise.then(function () {\n return Promise.reject(new Error());\n })]);\n }) // send again in case another instance was just created\n .then(function () {\n return _sendMessage(_this2, 'apply');\n }) // let others time to respond\n .then(function () {\n return Promise.race([sleep(waitForAnswerTime), stopCriteriaPromise.then(function () {\n return Promise.reject(new Error());\n })]);\n })[\"catch\"](function () {}).then(function () {\n _this2.broadcastChannel.removeEventListener('internal', handleMessage);\n\n if (!stopCriteria) {\n // no stop criteria -> own is leader\n return beLeader(_this2).then(function () {\n return true;\n });\n } else {\n // other is leader\n return false;\n }\n });\n\n return applyPromise;\n };\n\n this._aplQC = this._aplQC + 1;\n this._aplQ = this._aplQ.then(function () {\n return applyRun();\n }).then(function () {\n _this2._aplQC = _this2._aplQC - 1;\n });\n return this._aplQ.then(function () {\n return _this2.isLeader;\n });\n },\n awaitLeadership: function awaitLeadership() {\n if (\n /* _awaitLeadershipPromise */\n !this._aLP) {\n this._aLP = _awaitLeadershipOnce(this);\n }\n\n return this._aLP;\n },\n\n set onduplicate(fn) {\n this._dpL = fn;\n },\n\n die: function die() {\n var _this3 = this;\n\n this._lstns.forEach(function (listener) {\n return _this3.broadcastChannel.removeEventListener('internal', listener);\n });\n\n this._lstns = [];\n\n this._unl.forEach(function (uFn) {\n return uFn.remove();\n });\n\n this._unl = [];\n\n if (this.isLeader) {\n this.hasLeader = false;\n this.isLeader = false;\n }\n\n this.isDead = true;\n return _sendMessage(this, 'death');\n }\n};\n/**\n * @param leaderElector {LeaderElector}\n */\n\nfunction _awaitLeadershipOnce(leaderElector) {\n if (leaderElector.isLeader) {\n return PROMISE_RESOLVED_VOID;\n }\n\n return new Promise(function (res) {\n var resolved = false;\n\n function finish() {\n if (resolved) {\n return;\n }\n\n resolved = true;\n leaderElector.broadcastChannel.removeEventListener('internal', whenDeathListener);\n res(true);\n } // try once now\n\n\n leaderElector.applyOnce().then(function () {\n if (leaderElector.isLeader) {\n finish();\n }\n });\n /**\n * Try on fallbackInterval\n * @recursive\n */\n\n var tryOnFallBack = function tryOnFallBack() {\n return sleep(leaderElector._options.fallbackInterval).then(function () {\n if (leaderElector.isDead || resolved) {\n return;\n }\n\n if (leaderElector.isLeader) {\n finish();\n } else {\n return leaderElector.applyOnce(true).then(function () {\n if (leaderElector.isLeader) {\n finish();\n } else {\n tryOnFallBack();\n }\n });\n }\n });\n };\n\n tryOnFallBack(); // try when other leader dies\n\n var whenDeathListener = function whenDeathListener(msg) {\n if (msg.context === 'leader' && msg.action === 'death') {\n leaderElector.hasLeader = false;\n leaderElector.applyOnce().then(function () {\n if (leaderElector.isLeader) {\n finish();\n }\n });\n }\n };\n\n leaderElector.broadcastChannel.addEventListener('internal', whenDeathListener);\n\n leaderElector._lstns.push(whenDeathListener);\n });\n}\n/**\n * sends and internal message over the broadcast-channel\n */\n\n\nfunction _sendMessage(leaderElector, action) {\n var msgJson = {\n context: 'leader',\n action: action,\n token: leaderElector.token\n };\n return leaderElector.broadcastChannel.postInternal(msgJson);\n}\n\nexport function beLeader(leaderElector) {\n leaderElector.isLeader = true;\n leaderElector.hasLeader = true;\n var unloadFn = unloadAdd(function () {\n return leaderElector.die();\n });\n\n leaderElector._unl.push(unloadFn);\n\n var isLeaderListener = function isLeaderListener(msg) {\n if (msg.context === 'leader' && msg.action === 'apply') {\n _sendMessage(leaderElector, 'tell');\n }\n\n if (msg.context === 'leader' && msg.action === 'tell' && !leaderElector._dpLC) {\n /**\n * another instance is also leader!\n * This can happen on rare events\n * like when the CPU is at 100% for long time\n * or the tabs are open very long and the browser throttles them.\n * @link https://github.com/pubkey/broadcast-channel/issues/414\n * @link https://github.com/pubkey/broadcast-channel/issues/385\n */\n leaderElector._dpLC = true;\n\n leaderElector._dpL(); // message the lib user so the app can handle the problem\n\n\n _sendMessage(leaderElector, 'tell'); // ensure other leader also knows the problem\n\n }\n };\n\n leaderElector.broadcastChannel.addEventListener('internal', isLeaderListener);\n\n leaderElector._lstns.push(isLeaderListener);\n\n return _sendMessage(leaderElector, 'tell');\n}\n\nfunction fillOptionsWithDefaults(options, channel) {\n if (!options) options = {};\n options = JSON.parse(JSON.stringify(options));\n\n if (!options.fallbackInterval) {\n options.fallbackInterval = 3000;\n }\n\n if (!options.responseTime) {\n options.responseTime = channel.method.averageResponseTime(channel.options);\n }\n\n return options;\n}\n\nexport function createLeaderElection(channel, options) {\n if (channel._leaderElector) {\n throw new Error('BroadcastChannel already has a leader-elector');\n }\n\n options = fillOptionsWithDefaults(options, channel);\n var elector = new LeaderElection(channel, options);\n\n channel._befC.push(function () {\n return elector.die();\n });\n\n channel._leaderElector = elector;\n return elector;\n}","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { BroadcastChannel } from 'broadcast-channel';\nimport { isBrowser } from '../features';\nimport {\n ServiceManagerOptions, ServiceInterface\n} from '../core/types';\nimport {\n Token, Tokens, \n EVENT_ADDED, EVENT_REMOVED, EVENT_RENEWED, EVENT_SET_STORAGE, TokenManagerInterface\n} from '../oidc/types';\nimport { AuthSdkError } from '../errors';\n\nexport type SyncMessage = {\n type: string;\n key?: string;\n token?: Token;\n oldToken?: Token;\n storage?: Tokens;\n};\nexport class SyncStorageService implements ServiceInterface {\n private tokenManager: TokenManagerInterface;\n private options: ServiceManagerOptions;\n private channel?: BroadcastChannel<SyncMessage>;\n private started = false;\n private enablePostMessage = true;\n\n constructor(tokenManager: TokenManagerInterface, options: ServiceManagerOptions = {}) {\n this.tokenManager = tokenManager;\n this.options = options;\n this.onTokenAddedHandler = this.onTokenAddedHandler.bind(this);\n this.onTokenRemovedHandler = this.onTokenRemovedHandler.bind(this);\n this.onTokenRenewedHandler = this.onTokenRenewedHandler.bind(this);\n this.onSetStorageHandler = this.onSetStorageHandler.bind(this);\n this.onSyncMessageHandler = this.onSyncMessageHandler.bind(this);\n }\n\n requiresLeadership() {\n return false;\n }\n\n isStarted() {\n return this.started;\n }\n\n canStart() {\n return !!this.options.syncStorage && isBrowser() && !this.started;\n }\n\n async start() {\n if (!this.canStart()) {\n return;\n }\n \n const { syncChannelName } = this.options;\n try {\n // BroadcastChannel throws if no supported method can be found\n this.channel = new BroadcastChannel(syncChannelName as string);\n } catch (err) {\n throw new AuthSdkError('SyncStorageService is not supported in current browser.');\n }\n\n this.tokenManager.on(EVENT_ADDED, this.onTokenAddedHandler);\n this.tokenManager.on(EVENT_REMOVED, this.onTokenRemovedHandler);\n this.tokenManager.on(EVENT_RENEWED, this.onTokenRenewedHandler);\n this.tokenManager.on(EVENT_SET_STORAGE, this.onSetStorageHandler);\n this.channel.addEventListener('message', this.onSyncMessageHandler);\n this.started = true;\n }\n\n async stop() {\n if (this.started) {\n this.tokenManager.off(EVENT_ADDED, this.onTokenAddedHandler);\n this.tokenManager.off(EVENT_REMOVED, this.onTokenRemovedHandler);\n this.tokenManager.off(EVENT_RENEWED, this.onTokenRenewedHandler);\n this.tokenManager.off(EVENT_SET_STORAGE, this.onSetStorageHandler);\n this.channel?.removeEventListener('message', this.onSyncMessageHandler);\n await this.channel?.close();\n this.channel = undefined;\n this.started = false;\n }\n }\n\n private onTokenAddedHandler(key: string, token: Token) {\n if (!this.enablePostMessage) {\n return;\n }\n this.channel?.postMessage({\n type: EVENT_ADDED,\n key,\n token\n });\n }\n\n private onTokenRemovedHandler(key: string, token: Token) {\n if (!this.enablePostMessage) {\n return;\n }\n this.channel?.postMessage({\n type: EVENT_REMOVED,\n key,\n token\n });\n }\n\n private onTokenRenewedHandler(key: string, token: Token, oldToken?: Token) {\n if (!this.enablePostMessage) {\n return;\n }\n this.channel?.postMessage({\n type: EVENT_RENEWED,\n key,\n token,\n oldToken\n });\n }\n\n private onSetStorageHandler(storage: Tokens) {\n this.channel?.postMessage({\n type: EVENT_SET_STORAGE,\n storage\n });\n }\n\n /* eslint-disable complexity */\n private onSyncMessageHandler(msg: SyncMessage) {\n // Notes:\n // 1. Using `enablePostMessage` flag here to prevent sync message loop.\n // If this flag is on, tokenManager event handlers do not post sync message.\n // 2. IE11 has known issue with synchronization of LocalStorage cross tabs.\n // One workaround is to set empty event handler for `window.onstorage`.\n // But it's not 100% working, sometimes you still get old value from LocalStorage.\n // Better approch is to explicitly udpate LocalStorage with `setStorage`.\n\n this.enablePostMessage = false;\n switch (msg.type) {\n case EVENT_SET_STORAGE:\n this.tokenManager.getStorage().setStorage(msg.storage);\n break;\n case EVENT_ADDED:\n this.tokenManager.emitAdded(msg.key!, msg.token!);\n this.tokenManager.setExpireEventTimeout(msg.key!, msg.token!);\n break;\n case EVENT_REMOVED:\n this.tokenManager.clearExpireEventTimeout(msg.key!);\n this.tokenManager.emitRemoved(msg.key!, msg.token!);\n break;\n case EVENT_RENEWED:\n this.tokenManager.emitRenewed(msg.key!, msg.token!, msg.oldToken);\n break;\n default:\n break;\n }\n this.enablePostMessage = true;\n }\n} ","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\nimport { ServiceInterface, ServiceManagerOptions } from '../core/types';\nimport {\n BroadcastChannel,\n createLeaderElection,\n LeaderElector\n} from 'broadcast-channel';\nimport { isBrowser } from '../features';\n\ndeclare type OnLeaderHandler = (() => Promise<void>);\ndeclare type ServiceOptions = ServiceManagerOptions & {\n onLeader?: OnLeaderHandler;\n};\n\nexport class LeaderElectionService implements ServiceInterface {\n private options: ServiceOptions;\n private channel?: BroadcastChannel;\n private elector?: LeaderElector;\n private started = false;\n\n constructor(options: ServiceOptions = {}) {\n this.options = options;\n this.onLeaderDuplicate = this.onLeaderDuplicate.bind(this);\n this.onLeader = this.onLeader.bind(this);\n }\n\n private onLeaderDuplicate() {\n }\n\n private async onLeader() {\n await this.options.onLeader?.();\n }\n\n isLeader() {\n return !!this.elector?.isLeader;\n }\n\n hasLeader() {\n return !!this.elector?.hasLeader;\n }\n\n async start() {\n if (this.canStart()) {\n const { electionChannelName } = this.options;\n this.channel = new BroadcastChannel(electionChannelName as string);\n this.elector = createLeaderElection(this.channel);\n this.elector.onduplicate = this.onLeaderDuplicate;\n this.elector.awaitLeadership().then(this.onLeader);\n this.started = true;\n }\n }\n\n async stop() {\n if (this.started) {\n if (this.elector) {\n await this.elector.die();\n this.elector = undefined;\n }\n if (this.channel) {\n // Workaround to fix error `Failed to execute 'postMessage' on 'BroadcastChannel': Channel is closed`\n (this.channel as any).postInternal = () => Promise.resolve();\n await this.channel.close();\n this.channel = undefined;\n }\n this.started = false;\n }\n }\n\n requiresLeadership() {\n return false;\n }\n\n isStarted() {\n return this.started;\n }\n\n canStart() {\n return isBrowser() && !this.started;\n }\n\n}\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\nimport {\n OAuthTransactionMeta,\n OAuthStorageManagerInterface,\n} from '../../oidc';\n\nimport {\n ServiceManagerInterface,\n ServiceInterface,\n ServiceManagerOptions,\n OktaAuthCoreInterface,\n OktaAuthCoreOptions\n} from '../types';\nimport { AutoRenewService, SyncStorageService, LeaderElectionService } from '../../services';\nimport { removeNils } from '../../util';\n\nconst AUTO_RENEW = 'autoRenew';\nconst SYNC_STORAGE = 'syncStorage';\nconst LEADER_ELECTION = 'leaderElection';\n\nexport class ServiceManager\n<\n M extends OAuthTransactionMeta,\n S extends OAuthStorageManagerInterface<M>,\n O extends OktaAuthCoreOptions\n>\nimplements ServiceManagerInterface \n{\n private sdk: OktaAuthCoreInterface<M, S, O>;\n private options: ServiceManagerOptions;\n private services: Map<string, ServiceInterface>;\n private started: boolean;\n\n private static knownServices = [AUTO_RENEW, SYNC_STORAGE, LEADER_ELECTION];\n\n private static defaultOptions = {\n autoRenew: true,\n autoRemove: true,\n syncStorage: true\n };\n\n constructor(sdk: OktaAuthCoreInterface<M, S, O>, options: ServiceManagerOptions = {}) {\n this.sdk = sdk;\n this.onLeader = this.onLeader.bind(this);\n\n // TODO: backwards compatibility, remove in next major version - OKTA-473815\n const { autoRenew, autoRemove, syncStorage } = sdk.tokenManager.getOptions();\n options.electionChannelName = options.electionChannelName || options.broadcastChannelName;\n this.options = Object.assign({}, \n ServiceManager.defaultOptions,\n { autoRenew, autoRemove, syncStorage }, \n {\n electionChannelName: `${sdk.options.clientId}-election`,\n syncChannelName: `${sdk.options.clientId}-sync`,\n },\n removeNils(options)\n );\n\n this.started = false;\n this.services = new Map();\n\n ServiceManager.knownServices.forEach(name => {\n const svc = this.createService(name);\n if (svc) {\n this.services.set(name, svc);\n }\n });\n }\n\n private async onLeader() {\n if (this.started) {\n // Start services that requires leadership\n await this.startServices();\n }\n }\n\n isLeader() {\n return (this.getService(LEADER_ELECTION) as LeaderElectionService)?.isLeader();\n }\n\n isLeaderRequired() {\n return [...this.services.values()].some(srv => srv.canStart() && srv.requiresLeadership());\n }\n\n async start() {\n if (this.started) {\n return; // noop if services have already started\n }\n await this.startServices();\n this.started = true;\n }\n \n async stop() {\n await this.stopServices();\n this.started = false;\n }\n\n getService(name: string): ServiceInterface | undefined {\n return this.services.get(name);\n }\n\n private async startServices() {\n for (const [name, srv] of this.services.entries()) {\n if (this.canStartService(name, srv)) {\n await srv.start();\n }\n }\n }\n\n private async stopServices() {\n for (const srv of this.services.values()) {\n await srv.stop();\n }\n }\n\n // eslint-disable-next-line complexity\n private canStartService(name: string, srv: ServiceInterface): boolean {\n let canStart = srv.canStart() && !srv.isStarted();\n // only start election if a leader is required\n if (name === LEADER_ELECTION) {\n canStart &&= this.isLeaderRequired();\n } else if (srv.requiresLeadership()) {\n canStart &&= this.isLeader();\n }\n return canStart;\n }\n\n private createService(name: string): ServiceInterface {\n const tokenManager = this.sdk.tokenManager;\n\n let service: ServiceInterface;\n switch (name) {\n case LEADER_ELECTION:\n service = new LeaderElectionService({...this.options, onLeader: this.onLeader});\n break;\n case AUTO_RENEW:\n service = new AutoRenewService(tokenManager, {...this.options});\n break;\n case SYNC_STORAGE:\n service = new SyncStorageService(tokenManager, {...this.options});\n break;\n default:\n throw new Error(`Unknown service ${name}`);\n }\n return service;\n }\n\n}\n","import { parseOAuthResponseFromUrl } from '../oidc/parseFromUrl';\nimport { OktaAuthConstructor } from '../base/types';\nimport {\n OAuthStorageManagerInterface,\n OAuthTransactionMeta,\n OktaAuthOAuthInterface,\n PKCETransactionMeta,\n Tokens,\n TransactionManagerInterface,\n} from '../oidc/types';\nimport { AuthStateManager } from './AuthStateManager';\nimport { ServiceManager } from './ServiceManager';\nimport { OktaAuthCoreInterface, OktaAuthCoreOptions } from './types';\n\nexport function mixinCore\n<\n M extends OAuthTransactionMeta = PKCETransactionMeta,\n S extends OAuthStorageManagerInterface<M> = OAuthStorageManagerInterface<M>,\n O extends OktaAuthCoreOptions = OktaAuthCoreOptions,\n TM extends TransactionManagerInterface = TransactionManagerInterface,\n TBase extends OktaAuthConstructor<OktaAuthOAuthInterface<M, S, O, TM>>\n = OktaAuthConstructor<OktaAuthOAuthInterface<M, S, O, TM>>\n>\n(Base: TBase): TBase & OktaAuthConstructor<OktaAuthCoreInterface<M, S, O, TM>>\n{\n return class OktaAuthCore extends Base implements OktaAuthCoreInterface<M, S, O, TM>\n {\n authStateManager: AuthStateManager<M, S, O>;\n serviceManager: ServiceManager<M, S, O>;\n \n constructor(...args: any[]) {\n super(...args);\n\n // AuthStateManager\n this.authStateManager = new AuthStateManager<M, S, O>(this);\n\n // ServiceManager\n this.serviceManager = new ServiceManager<M, S, O>(this, this.options.services);\n }\n\n async start() {\n await this.serviceManager.start();\n // TODO: review tokenManager.start\n this.tokenManager.start();\n if (!this.token.isLoginRedirect()) {\n await this.authStateManager.updateAuthState();\n }\n }\n \n async stop() {\n // TODO: review tokenManager.stop\n this.tokenManager.stop();\n await this.serviceManager.stop();\n }\n\n async handleRedirect(originalUri?: string): Promise<void> {\n await this.handleLoginRedirect(undefined, originalUri);\n }\n\n // eslint-disable-next-line complexity\n async handleLoginRedirect(tokens?: Tokens, originalUri?: string): Promise<void> {\n let state = this.options.state;\n \n // Store tokens and update AuthState by the emitted events\n if (tokens) {\n this.tokenManager.setTokens(tokens);\n originalUri = originalUri || this.getOriginalUri(this.options.state);\n } else if (this.isLoginRedirect()) {\n try {\n // For redirect flow, get state from the URL and use it to retrieve the originalUri\n const oAuthResponse = await parseOAuthResponseFromUrl(this, {});\n state = oAuthResponse.state;\n originalUri = originalUri || this.getOriginalUri(state);\n await this.storeTokensFromRedirect();\n } catch(e) {\n // auth state should be updated\n await this.authStateManager.updateAuthState();\n throw e;\n }\n } else {\n return; // nothing to do\n }\n \n // ensure auth state has been updated\n await this.authStateManager.updateAuthState();\n \n // clear originalUri from storage\n this.removeOriginalUri(state);\n \n // Redirect to originalUri\n const { restoreOriginalUri } = this.options;\n if (restoreOriginalUri) {\n await restoreOriginalUri(this, originalUri);\n } else if (originalUri) {\n window.location.replace(originalUri);\n }\n }\n };\n}\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n *\n */\n/* global window */\nimport { omit, getLink, toQueryString } from '../util';\nimport { get, post, httpRequest } from '../http';\n\nfunction sessionExists(sdk) {\n return sdk.session.get()\n .then(function(res) {\n if (res.status === 'ACTIVE') {\n return true;\n }\n return false;\n })\n .catch(function() {\n return false;\n });\n}\n\nfunction getSession(sdk) { \n return get(sdk, '/api/v1/sessions/me', { withCredentials: true })\n .then(function(session) {\n var res = omit(session, '_links');\n\n res.refresh = function() {\n return post(sdk, getLink(session, 'refresh').href, {}, { withCredentials: true });\n };\n\n res.user = function() {\n return get(sdk, getLink(session, 'user').href, { withCredentials: true });\n };\n\n return res;\n })\n .catch(function() {\n // Return INACTIVE status on failure\n return {status: 'INACTIVE'};\n });\n}\n\nfunction closeSession(sdk) {\n return httpRequest(sdk, {\n url: sdk.getIssuerOrigin() + '/api/v1/sessions/me',\n method: 'DELETE',\n withCredentials: true\n });\n}\n\nfunction refreshSession(sdk) {\n return post(sdk, '/api/v1/sessions/me/lifecycle/refresh', {}, { withCredentials: true });\n}\n\nfunction setCookieAndRedirect(sdk, sessionToken, redirectUrl) {\n redirectUrl = redirectUrl || window.location.href;\n window.location.assign(sdk.getIssuerOrigin() + '/login/sessionCookieRedirect' +\n toQueryString({\n checkAccountSetupComplete: true,\n token: sessionToken,\n redirectUrl: redirectUrl\n }));\n}\n\nexport {\n sessionExists,\n getSession,\n closeSession,\n refreshSession,\n setCookieAndRedirect\n};\n","import { SessionAPI } from './types';\nimport { closeSession, getSession, refreshSession, sessionExists, setCookieAndRedirect } from './api';\nimport { OktaAuthBaseInterface } from '../base/types';\n\nexport function createSessionApi(sdk: OktaAuthBaseInterface): SessionAPI {\n const session = {\n close: closeSession.bind(null, sdk),\n exists: sessionExists.bind(null, sdk),\n get: getSession.bind(null, sdk),\n refresh: refreshSession.bind(null, sdk),\n setCookieAndRedirect: setCookieAndRedirect.bind(null, sdk)\n };\n return session;\n}\n","import { OktaAuthHttpInterface, OktaAuthHttpOptions } from '../http/types';\nimport { OktaAuthConstructor } from '../base/types';\nimport { createSessionApi } from './factory';\nimport {\n OktaAuthSessionInterface, SessionAPI,\n} from './types';\nimport { StorageManagerInterface } from '../storage/types';\n\nexport function mixinSession\n<\n S extends StorageManagerInterface = StorageManagerInterface,\n O extends OktaAuthHttpOptions = OktaAuthHttpOptions,\n TBase extends OktaAuthConstructor<OktaAuthHttpInterface<S, O>>\n = OktaAuthConstructor<OktaAuthHttpInterface<S, O>>\n>\n(Base: TBase): TBase & OktaAuthConstructor<OktaAuthSessionInterface<S, O>>\n{\n return class OktaAuthSession extends Base implements OktaAuthSessionInterface<S, O>\n {\n session: SessionAPI;\n\n constructor(...args: any[]) {\n super(...args);\n\n this.session = createSessionApi(this);\n }\n\n // Ends the current Okta SSO session without redirecting to Okta.\n closeSession(): Promise<boolean> {\n return this.session.close() // DELETE /api/v1/sessions/me\n .then(async () => {\n // Clear all local tokens\n this.clearStorage();\n return true;\n })\n .catch(function(e) {\n if (e.name === 'AuthApiError' && e.errorCode === 'E0000007') {\n // Session does not exist or has already been closed\n return false;\n }\n throw e;\n });\n }\n };\n}\n","import { StorageManagerConstructor } from '../storage/types';\nimport { OktaAuthConstructor, OktaAuthOptionsConstructor } from '../base/types';\n\nimport { OktaAuthCoreInterface, OktaAuthCoreOptions } from './types';\nimport { createOktaAuthBase } from '../base';\nimport { mixinStorage } from '../storage/mixin';\nimport { mixinHttp } from '../http/mixin';\nimport { mixinOAuth } from '../oidc/mixin';\nimport {\n OAuthStorageManagerInterface,\n PKCETransactionMeta,\n TransactionManagerConstructor,\n TransactionManagerInterface\n} from '../oidc/types';\nimport { mixinCore } from './mixin';\nimport { mixinSession } from '../session/mixin';\n\nexport function createOktaAuthCore<\n M extends PKCETransactionMeta = PKCETransactionMeta,\n S extends OAuthStorageManagerInterface<M> = OAuthStorageManagerInterface<M>,\n O extends OktaAuthCoreOptions = OktaAuthCoreOptions,\n TM extends TransactionManagerInterface = TransactionManagerInterface\n>(\n StorageManagerConstructor: StorageManagerConstructor<S>,\n OptionsConstructor: OktaAuthOptionsConstructor<O>,\n TransactionManagerConstructor: TransactionManagerConstructor<TM>\n): OktaAuthConstructor<OktaAuthCoreInterface<M, S, O, TM>>\n{\n const Base = createOktaAuthBase(OptionsConstructor);\n const WithStorage = mixinStorage<S, O>(Base, StorageManagerConstructor);\n const WithHttp = mixinHttp<S, O>(WithStorage);\n const WithSession = mixinSession<S, O>(WithHttp);\n const WithOAuth = mixinOAuth<M, S, O, TM>(WithSession, TransactionManagerConstructor);\n const Core = mixinCore<M, S, O, TM>(WithOAuth);\n return Core;\n}\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { base64UrlToBuffer, bufferToBase64Url } from '../crypto/base64';\nimport {\n ActivationData,\n ChallengeData,\n IdxAuthenticator,\n} from './types';\n\n\n// Get known credentials from list of enrolled authenticators\nconst getEnrolledCredentials = (authenticatorEnrollments: IdxAuthenticator[] = []) => {\n const credentials: PublicKeyCredentialDescriptor[] = [];\n authenticatorEnrollments.forEach((enrollement) => {\n if (enrollement.key === 'webauthn') {\n credentials.push({\n type: 'public-key',\n id: base64UrlToBuffer(enrollement.credentialId),\n });\n }\n });\n return credentials;\n};\n\n// Build options for navigator.credentials.create\n// https://developer.mozilla.org/en-US/docs/Web/API/CredentialsContainer/create\nexport const buildCredentialCreationOptions = (\n activationData: ActivationData, authenticatorEnrollments: IdxAuthenticator[]\n) => {\n return {\n publicKey: {\n rp: activationData.rp,\n user: {\n id: base64UrlToBuffer(activationData.user.id),\n name: activationData.user.name,\n displayName: activationData.user.displayName\n },\n challenge: base64UrlToBuffer(activationData.challenge),\n pubKeyCredParams: activationData.pubKeyCredParams,\n attestation: activationData.attestation,\n authenticatorSelection: activationData.authenticatorSelection,\n excludeCredentials: getEnrolledCredentials(authenticatorEnrollments),\n }\n } as CredentialCreationOptions;\n};\n\n\n// Build options for navigator.credentials.get\n// https://developer.mozilla.org/en-US/docs/Web/API/CredentialsContainer/get\nexport const buildCredentialRequestOptions = (\n challengeData: ChallengeData, authenticatorEnrollments: IdxAuthenticator[]\n) => {\n return {\n publicKey: {\n challenge: base64UrlToBuffer(challengeData.challenge),\n userVerification: challengeData.userVerification,\n allowCredentials: getEnrolledCredentials(authenticatorEnrollments),\n }\n } as CredentialRequestOptions;\n};\n\n// Build attestation for webauthn enroll\n// https://developer.mozilla.org/en-US/docs/Web/API/AuthenticatorAttestationResponse\nexport const getAttestation = (credential: PublicKeyCredential) => {\n const response = credential.response as AuthenticatorAttestationResponse;\n const id = credential.id;\n const clientData = bufferToBase64Url(response.clientDataJSON);\n const attestation = bufferToBase64Url(response.attestationObject);\n return {\n id,\n clientData,\n attestation\n };\n};\n\n// Build assertion for webauthn verification\n// https://developer.mozilla.org/en-US/docs/Web/API/AuthenticatorAssertionResponse\nexport const getAssertion = (credential: PublicKeyCredential) => {\n const response = credential.response as AuthenticatorAssertionResponse;\n const id = credential.id;\n const clientData = bufferToBase64Url(response.clientDataJSON);\n const authenticatorData = bufferToBase64Url(response.authenticatorData);\n const signatureData = bufferToBase64Url(response.signature);\n return {\n id,\n clientData,\n authenticatorData,\n signatureData\n };\n};\n","import { OktaAuthConstructor } from '../base/types';\nimport { OktaAuthOAuthInterface } from '../oidc/types';\nimport {\n IdxAPI, \n IdxTransactionManagerInterface, \n OktaAuthIdxInterface, \n OktaAuthIdxConstructor, \n OktaAuthIdxOptions, \n WebauthnAPI\n} from './types';\nimport { IdxTransactionMeta } from './types/meta';\nimport { IdxStorageManagerInterface } from './types/storage';\nimport { createIdxAPI } from './factory/api';\nimport * as webauthn from './webauthn';\n\nexport function mixinIdx\n<\n M extends IdxTransactionMeta = IdxTransactionMeta,\n S extends IdxStorageManagerInterface<M> = IdxStorageManagerInterface<M>,\n O extends OktaAuthIdxOptions = OktaAuthIdxOptions,\n TM extends IdxTransactionManagerInterface = IdxTransactionManagerInterface,\n TBase extends OktaAuthConstructor<OktaAuthOAuthInterface<M, S, O, TM>>\n = OktaAuthConstructor<OktaAuthOAuthInterface<M, S, O, TM>>\n>\n(Base: TBase): TBase & OktaAuthIdxConstructor<OktaAuthIdxInterface<M, S, O, TM>>\n{\n return class OktaAuthIdx extends Base implements OktaAuthIdxInterface<M, S, O, TM>\n {\n idx: IdxAPI;\n static webauthn: WebauthnAPI = webauthn;\n \n constructor(...args: any[]) {\n super(...args);\n this.idx = createIdxAPI(this);\n }\n };\n}\n","import { createOktaAuthCore } from '../../core/factory';\nimport { OktaAuthOptionsConstructor } from '../../base/types';\nimport { StorageManagerConstructor } from '../../storage/types';\nimport { IdxTransactionManagerInterface, OktaAuthIdxInterface, OktaAuthIdxConstructor } from '../types/api';\nimport { IdxTransactionMeta } from '../types/meta';\nimport { IdxStorageManagerInterface } from '../types/storage';\nimport { OktaAuthIdxOptions } from '../types/options';\nimport { mixinIdx } from '../mixin';\nimport { TransactionManagerConstructor } from '../../oidc/types';\nimport { OktaAuthCoreInterface } from '../../core/types';\n\nexport function createOktaAuthIdx<\n M extends IdxTransactionMeta = IdxTransactionMeta,\n S extends IdxStorageManagerInterface<M> = IdxStorageManagerInterface<M>,\n O extends OktaAuthIdxOptions = OktaAuthIdxOptions,\n TM extends IdxTransactionManagerInterface = IdxTransactionManagerInterface\n>(\n StorageManagerConstructor: StorageManagerConstructor<S>,\n OptionsConstructor: OktaAuthOptionsConstructor<O>,\n TransactionManagerConstructor: TransactionManagerConstructor<TM>\n)\n: OktaAuthIdxConstructor<OktaAuthIdxInterface<M, S, O, TM> & OktaAuthCoreInterface<M, S, O, TM>>\n{\n const Core = createOktaAuthCore<M, S, O, TM>(\n StorageManagerConstructor,\n OptionsConstructor,\n TransactionManagerConstructor\n );\n const WithIdx = mixinIdx(Core);\n return WithIdx;\n}\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { OktaAuthBaseOptions } from './types';\n\nexport function createBaseOptionsConstructor() {\n\n return class BaseOptionsConstructor implements Required<OktaAuthBaseOptions> {\n devMode: boolean;\n\n constructor(args: any) {\n this.devMode = !!args.devMode;\n }\n };\n\n}\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n/* eslint-disable complexity */\nimport { StorageManagerOptions, StorageUtil, OktaAuthStorageOptions } from '../types';\nimport { warn } from '../../util';\n\nimport { default as browserStorage } from '../../browser/browserStorage';\n\nexport function getStorage(): StorageUtil {\n const storageUtil = Object.assign({}, browserStorage, {\n inMemoryStore: {} // create unique storage for this instance\n });\n return storageUtil;\n}\n\nexport const STORAGE_MANAGER_OPTIONS: StorageManagerOptions = {\n token: {\n storageTypes: [\n 'localStorage',\n 'sessionStorage',\n 'cookie'\n ]\n },\n cache: {\n storageTypes: [\n 'localStorage',\n 'sessionStorage',\n 'cookie'\n ]\n },\n transaction: {\n storageTypes: [\n 'sessionStorage',\n 'localStorage',\n 'cookie'\n ]\n },\n 'shared-transaction': {\n storageTypes: [\n 'localStorage'\n ]\n },\n 'original-uri': {\n storageTypes: [\n 'localStorage'\n ]\n }\n};\n\nexport function getCookieSettings(args: OktaAuthStorageOptions = {}, isHTTPS: boolean) {\n // Secure cookies will be automatically used on a HTTPS connection\n // Non-secure cookies will be automatically used on a HTTP connection\n // secure option can override the automatic behavior\n var cookieSettings = args.cookies || {};\n if (typeof cookieSettings.secure === 'undefined') {\n cookieSettings.secure = isHTTPS;\n }\n if (typeof cookieSettings.sameSite === 'undefined') {\n cookieSettings.sameSite = cookieSettings.secure ? 'none' : 'lax';\n }\n\n // If secure=true, but the connection is not HTTPS, set secure=false.\n if (cookieSettings.secure && !isHTTPS) {\n // eslint-disable-next-line no-console\n warn(\n 'The current page is not being served with the HTTPS protocol.\\n' +\n 'For security reasons, we strongly recommend using HTTPS.\\n' +\n 'If you cannot use HTTPS, set \"cookies.secure\" option to false.'\n );\n cookieSettings.secure = false;\n }\n\n // Chrome >= 80 will block cookies with SameSite=None unless they are also Secure\n // If sameSite=none, but the connection is not HTTPS, set sameSite=lax.\n if (cookieSettings.sameSite === 'none' && !cookieSettings.secure) {\n cookieSettings.sameSite = 'lax';\n }\n\n return cookieSettings;\n}\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { createBaseOptionsConstructor } from '../../base';\nimport { CookieOptions, OktaAuthStorageOptions, StorageManagerOptions, StorageUtil } from '../types';\nimport { getStorage, STORAGE_MANAGER_OPTIONS, getCookieSettings } from './node';\nimport { isHTTPS } from '../../features';\n\nexport function createStorageOptionsConstructor() {\n\n const BaseOptionsConstructor = createBaseOptionsConstructor();\n return class StorageOptionsConstructor extends BaseOptionsConstructor implements Required<OktaAuthStorageOptions> {\n cookies: CookieOptions;\n storageUtil: StorageUtil;\n storageManager: StorageManagerOptions;\n \n constructor(args: any) {\n super(args);\n this.cookies = getCookieSettings(args, isHTTPS())!;\n this.storageUtil = args.storageUtil || getStorage();\n this.storageManager = { ...STORAGE_MANAGER_OPTIONS, ...args.storageManager };\n }\n };\n}\n","/*!\n * Copyright (c) 2018-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport crossFetch from 'cross-fetch';\nimport { FetchOptions, HttpResponse } from '../http/types';\n\n// content-type = application/json OR application/ion+json\nconst appJsonContentTypeRegex = /application\\/\\w*\\+?json/;\n\nfunction readData(response: Response): Promise<object | string> {\n if (response.headers.get('Content-Type') &&\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n response.headers.get('Content-Type')!.toLowerCase().indexOf('application/json') >= 0) {\n return response.json()\n // JSON parse can fail if response is not a valid object\n .catch(e => {\n return {\n error: e,\n errorSummary: 'Could not parse server response'\n };\n });\n } else {\n return response.text();\n }\n}\n\nfunction formatResult(status: number, data: object | string, response: Response) {\n const isObject = typeof data === 'object';\n const headers = {};\n for (const pair of (response.headers as any).entries()) {\n headers[pair[0]] = pair[1];\n }\n const result: HttpResponse = {\n responseText: isObject ? JSON.stringify(data) : data as string,\n status: status,\n headers\n };\n if (isObject) {\n result.responseType = 'json';\n result.responseJSON = data as object;\n }\n return result;\n}\n\n/* eslint-disable complexity */\nfunction fetchRequest(method: string, url: string, args: FetchOptions) {\n var body = args.data;\n var headers = args.headers || {};\n var contentType = (headers['Content-Type'] || headers['content-type'] || '');\n\n if (body && typeof body !== 'string') {\n // JSON encode body (if appropriate)\n if (appJsonContentTypeRegex.test(contentType)) {\n body = JSON.stringify(body);\n }\n else if (contentType === 'application/x-www-form-urlencoded') {\n body = Object.entries(body)\n .map( ([param, value]) => `${param}=${encodeURIComponent(value)}` )\n .join('&');\n }\n }\n\n var fetch = global.fetch || crossFetch;\n var fetchPromise = fetch(url, {\n method: method,\n headers: args.headers,\n body: body as string,\n credentials: args.withCredentials ? 'include' : 'omit'\n });\n\n if (!fetchPromise.finally) {\n fetchPromise = Promise.resolve(fetchPromise);\n }\n\n return fetchPromise.then(function(response) {\n var error = !response.ok;\n var status = response.status;\n return readData(response)\n .then(data => {\n return formatResult(status, data, response);\n })\n .then(result => {\n if (error || result.responseJSON?.error) {\n // Throwing result object since error handling is done in http.js\n throw result;\n }\n return result;\n });\n });\n}\n\nexport default fetchRequest;\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { createStorageOptionsConstructor } from '../storage';\nimport { HttpRequestClient, OktaAuthHttpOptions, RequestOptions } from './types';\nimport fetchRequest from '../fetch/fetchRequest';\n\nexport function createHttpOptionsConstructor() {\n const StorageOptionsConstructor = createStorageOptionsConstructor();\n return class HttpOptionsConstructor extends StorageOptionsConstructor implements Required<OktaAuthHttpOptions> {\n issuer: string;\n transformErrorXHR: (xhr: object) => any;\n headers: object;\n httpRequestClient: HttpRequestClient;\n httpRequestInterceptors: ((request: RequestOptions) => void)[];\n \n constructor(args: any) {\n super(args);\n this.issuer = args.issuer;\n this.transformErrorXHR = args.transformErrorXHR;\n this.headers = args.headers;\n this.httpRequestClient = args.httpRequestClient || fetchRequest;\n this.httpRequestInterceptors = args.httpRequestInterceptors;\n }\n };\n}\n","export const enableSharedStorage = true;\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { DEFAULT_MAX_CLOCK_SKEW } from '../../constants';\nimport { removeTrailingSlash, toAbsoluteUrl } from '../../util/url';\nimport { isBrowser } from '../../features';\nimport { createHttpOptionsConstructor } from '../../http/options';\nimport {\n OAuthResponseMode,\n OAuthResponseType,\n OktaAuthOAuthInterface,\n OktaAuthOAuthOptions,\n SetLocationFunction,\n TokenManagerOptions,\n TransactionManagerOptions\n} from '../types';\nimport { enableSharedStorage } from './node';\nimport AuthSdkError from '../../errors/AuthSdkError';\n\nfunction assertValidConfig(args) {\n args = args || {};\n\n var scopes = args.scopes;\n if (scopes && !Array.isArray(scopes)) {\n throw new AuthSdkError('scopes must be a array of strings. ' +\n 'Required usage: new OktaAuth({scopes: [\"openid\", \"email\"]})');\n }\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n var issuer = args.issuer!;\n if (!issuer) {\n throw new AuthSdkError('No issuer passed to constructor. ' + \n 'Required usage: new OktaAuth({issuer: \"https://{yourOktaDomain}.com/oauth2/{authServerId}\"})');\n }\n\n var isUrlRegex = new RegExp('^http?s?://.+');\n if (!isUrlRegex.test(issuer)) {\n throw new AuthSdkError('Issuer must be a valid URL. ' + \n 'Required usage: new OktaAuth({issuer: \"https://{yourOktaDomain}.com/oauth2/{authServerId}\"})');\n }\n\n if (issuer.indexOf('-admin.') !== -1) {\n throw new AuthSdkError('Issuer URL passed to constructor contains \"-admin\" in subdomain. ' +\n 'Required usage: new OktaAuth({issuer: \"https://{yourOktaDomain}.com})');\n }\n}\n\nexport function createOAuthOptionsConstructor() {\n const HttpOptionsConstructor = createHttpOptionsConstructor();\n return class OAuthOptionsConstructor\n extends HttpOptionsConstructor\n implements Required<OktaAuthOAuthOptions>\n {\n // CustomUrls\n issuer: string;\n authorizeUrl: string;\n userinfoUrl: string;\n tokenUrl: string;\n revokeUrl: string;\n logoutUrl: string;\n \n // TokenParams\n pkce: boolean;\n clientId: string;\n redirectUri: string;\n responseType: OAuthResponseType | OAuthResponseType[];\n responseMode: OAuthResponseMode;\n state: string;\n scopes: string[];\n ignoreSignature: boolean;\n codeChallenge: string;\n codeChallengeMethod: string;\n acrValues: string;\n maxAge: string | number;\n\n // Additional options\n tokenManager: TokenManagerOptions;\n postLogoutRedirectUri: string;\n restoreOriginalUri: (oktaAuth: OktaAuthOAuthInterface, originalUri?: string) => Promise<void>;\n transactionManager: TransactionManagerOptions;\n\n // For server-side web applications ONLY!\n clientSecret: string;\n setLocation: SetLocationFunction;\n\n // Workaround for bad client time/clock\n ignoreLifetime: boolean;\n maxClockSkew: number;\n\n\n // eslint-disable-next-line max-statements\n constructor(options: any) {\n super(options);\n \n assertValidConfig(options);\n \n this.issuer = removeTrailingSlash(options.issuer);\n this.tokenUrl = removeTrailingSlash(options.tokenUrl);\n this.authorizeUrl = removeTrailingSlash(options.authorizeUrl);\n this.userinfoUrl = removeTrailingSlash(options.userinfoUrl);\n this.revokeUrl = removeTrailingSlash(options.revokeUrl);\n this.logoutUrl = removeTrailingSlash(options.logoutUrl);\n\n this.pkce = options.pkce === false ? false : true; // PKCE defaults to true\n this.clientId = options.clientId;\n this.redirectUri = options.redirectUri;\n if (isBrowser()) {\n this.redirectUri = toAbsoluteUrl(options.redirectUri, window.location.origin); // allow relative URIs\n }\n this.responseType = options.responseType;\n this.responseMode = options.responseMode;\n this.state = options.state;\n this.scopes = options.scopes;\n // Give the developer the ability to disable token signature validation.\n this.ignoreSignature = !!options.ignoreSignature;\n this.codeChallenge = options.codeChallenge;\n this.codeChallengeMethod = options.codeChallengeMethod;\n this.acrValues = options.acrValues;\n this.maxAge = options.maxAge;\n\n this.tokenManager = options.tokenManager;\n this.postLogoutRedirectUri = options.postLogoutRedirectUri;\n this.restoreOriginalUri = options.restoreOriginalUri;\n this.transactionManager = { enableSharedStorage, ...options.transactionManager };\n \n this.clientSecret = options.clientSecret;\n this.setLocation = options.setLocation;\n \n // As some end user's devices can have their date \n // and time incorrectly set, allow for the disabling\n // of the jwt liftetime validation\n this.ignoreLifetime = !!options.ignoreLifetime;\n\n // Digital clocks will drift over time, so the server\n // can misalign with the time reported by the browser.\n // The maxClockSkew allows relaxing the time-based\n // validation of tokens (in seconds, not milliseconds).\n // It currently defaults to 300, because 5 min is the\n // default maximum tolerance allowed by Kerberos.\n // (https://technet.microsoft.com/en-us/library/cc976357.aspx)\n if (!options.maxClockSkew && options.maxClockSkew !== 0) {\n this.maxClockSkew = DEFAULT_MAX_CLOCK_SKEW;\n } else {\n this.maxClockSkew = options.maxClockSkew;\n }\n\n }\n };\n}\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { createOAuthOptionsConstructor } from '../oidc';\nimport { AuthState, OktaAuthCoreInterface, OktaAuthCoreOptions, ServiceManagerOptions } from './types';\n\n\nexport function createCoreOptionsConstructor()\n{\n const OAuthOptionsConstructor = createOAuthOptionsConstructor();\n return class CoreOptionsConstructor\n extends OAuthOptionsConstructor\n implements Required<OktaAuthCoreOptions>\n {\n services: ServiceManagerOptions;\n transformAuthState: (oktaAuth: OktaAuthCoreInterface, authState: AuthState) => Promise<AuthState>;\n\n constructor(options: any) {\n super(options);\n this.services = options.services;\n this.transformAuthState = options.transformAuthState;\n }\n };\n}\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { createCoreOptionsConstructor } from '../core/options';\nimport { FlowIdentifier } from './types/FlowIdentifier';\nimport { OktaAuthIdxOptions } from './types/options';\n\n\nexport function createIdxOptionsConstructor() {\n const CoreOptionsConstructor = createCoreOptionsConstructor();\n return class IdxOptionsConstructor\n extends CoreOptionsConstructor \n implements Required<OktaAuthIdxOptions>\n {\n flow: FlowIdentifier;\n activationToken: string;\n recoveryToken: string;\n \n // BETA WARNING: configs in this section are subject to change without a breaking change notice\n idx: {\n useGenericRemediator?: boolean;\n exchangeCodeForTokens?: boolean;\n };\n \n constructor(options: any) {\n super(options);\n \n this.flow = options.flow;\n this.activationToken = options.activationToken;\n this.recoveryToken = options.recoveryToken;\n this.idx = options.idx;\n }\n };\n \n}\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n *\n */\n\nimport AuthSdkError from '../errors/AuthSdkError';\nimport { StorageProvider, SimpleStorage } from './types';\n\n// formerly known as \"storageBuilder\". Represents an object saved under a key/name.\nexport class SavedObject implements StorageProvider {\n storageProvider: SimpleStorage;\n storageName: string;\n\n constructor(storage: SimpleStorage, storageName: string) {\n if (!storage) {\n throw new AuthSdkError('\"storage\" is required');\n }\n\n if (typeof storageName !== 'string' || !storageName.length) {\n throw new AuthSdkError('\"storageName\" is required');\n }\n\n this.storageName = storageName;\n this.storageProvider = storage;\n }\n\n //\n // SimpleStorage interface\n //\n\n getItem(key: string) {\n return this.getStorage()[key];\n }\n\n setItem(key: string, value: any) {\n return this.updateStorage(key, value);\n }\n\n removeItem(key: string) {\n return this.clearStorage(key);\n }\n\n //\n // StorageProvider interface\n //\n\n getStorage() {\n var storageString = this.storageProvider.getItem(this.storageName);\n storageString = storageString || '{}';\n try {\n return JSON.parse(storageString);\n } catch(e) {\n throw new AuthSdkError('Unable to parse storage string: ' + this.storageName);\n }\n }\n\n setStorage(obj?: any) {\n try {\n var storageString = obj ? JSON.stringify(obj) : '{}';\n this.storageProvider.setItem(this.storageName, storageString);\n } catch(e) {\n throw new AuthSdkError('Unable to set storage: ' + this.storageName);\n }\n }\n\n clearStorage(key?: string) {\n if (!key) {\n // clear all\n if (this.storageProvider.removeItem) {\n this.storageProvider.removeItem(this.storageName);\n } else {\n this.setStorage();\n }\n return;\n }\n\n var obj = this.getStorage();\n delete obj[key];\n this.setStorage(obj);\n }\n\n updateStorage(key, value) {\n var obj = this.getStorage();\n obj[key] = value;\n this.setStorage(obj);\n }\n}\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\n\nimport {\n TOKEN_STORAGE_NAME,\n CACHE_STORAGE_NAME,\n} from '../constants';\nimport {\n StorageUtil,\n StorageProvider,\n StorageOptions,\n CookieOptions,\n StorageManagerOptions,\n SimpleStorage,\n StorageManagerInterface\n} from './types';\nimport { SavedObject } from './SavedObject';\nimport { isBrowser } from '../features';\nimport { warn } from '../util';\n\nexport function logServerSideMemoryStorageWarning(options: StorageOptions) {\n if (!isBrowser() && !options.storageProvider && !options.storageKey) {\n // eslint-disable-next-line max-len\n warn('Memory storage can only support simple single user use case on server side, please provide custom storageProvider or storageKey if advanced scenarios need to be supported.');\n }\n}\n\n\nexport class BaseStorageManager implements StorageManagerInterface {\n storageManagerOptions: StorageManagerOptions;\n cookieOptions: CookieOptions;\n storageUtil: StorageUtil;\n\n constructor(storageManagerOptions: StorageManagerOptions, cookieOptions: CookieOptions, storageUtil: StorageUtil) {\n this.storageManagerOptions = storageManagerOptions;\n this.cookieOptions = cookieOptions;\n this.storageUtil = storageUtil;\n }\n\n // combines defaults in order\n getOptionsForSection(sectionName: string, overrideOptions?: StorageOptions) {\n return Object.assign({}, this.storageManagerOptions[sectionName], overrideOptions);\n }\n \n // generic method to get any available storage provider\n // eslint-disable-next-line complexity\n getStorage(options: StorageOptions): SimpleStorage {\n options = Object.assign({}, this.cookieOptions, options); // set defaults\n\n if (options.storageProvider) {\n return options.storageProvider;\n }\n\n let { storageType, storageTypes } = options;\n\n if(storageType === 'sessionStorage') {\n options.sessionCookie = true;\n }\n\n // If both storageType and storageTypes are specified, then storageType will be used first\n // If storageType cannot be used but it matches an entry in storageTypes, subsequent entries may be used as fallback\n // if storageType does not match an entry in storageTypes then storageType is used with no fallback.\n if (storageType && storageTypes) {\n const idx = storageTypes.indexOf(storageType);\n if (idx >= 0) {\n storageTypes = storageTypes.slice(idx);\n storageType = undefined;\n }\n }\n\n if (!storageType) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n storageType = this.storageUtil.findStorageType(storageTypes!);\n }\n return this.storageUtil.getStorageByType(storageType, options);\n }\n\n // access_token, id_token, refresh_token\n getTokenStorage(options?: StorageOptions): StorageProvider {\n options = this.getOptionsForSection('token', options);\n logServerSideMemoryStorageWarning(options);\n const storage = this.getStorage(options);\n const storageKey = options.storageKey || TOKEN_STORAGE_NAME;\n return new SavedObject(storage, storageKey);\n }\n\n // caches well-known response, among others\n getHttpCache(options?: StorageOptions): StorageProvider {\n options = this.getOptionsForSection('cache', options);\n const storage = this.getStorage(options);\n const storageKey = options.storageKey || CACHE_STORAGE_NAME;\n return new SavedObject(storage, storageKey);\n }\n\n}\n","import {\n CookieOptions,\n StorageManagerOptions,\n StorageOptions,\n StorageUtil\n} from '../storage/types';\nimport { BaseStorageManager, logServerSideMemoryStorageWarning } from '../storage/BaseStorageManager';\nimport { TransactionStorage, OAuthTransactionMeta, OAuthStorageManagerInterface, PKCETransactionMeta } from './types';\nimport { SavedObject } from '../storage';\nimport { ORIGINAL_URI_STORAGE_NAME, SHARED_TRANSACTION_STORAGE_NAME, TRANSACTION_STORAGE_NAME } from '../constants';\n\n\nexport function createOAuthStorageManager<M extends OAuthTransactionMeta = PKCETransactionMeta>()\n{\n return class OAuthStorageManager\n extends BaseStorageManager\n implements OAuthStorageManagerInterface<M>\n {\n constructor(storageManagerOptions: StorageManagerOptions, cookieOptions: CookieOptions, storageUtil: StorageUtil) {\n super(storageManagerOptions, cookieOptions, storageUtil);\n }\n\n getTransactionStorage(options?: StorageOptions): TransactionStorage<M> {\n options = this.getOptionsForSection('transaction', options);\n logServerSideMemoryStorageWarning(options);\n const storage = this.getStorage(options);\n const storageKey = options.storageKey || TRANSACTION_STORAGE_NAME;\n return new SavedObject(storage, storageKey);\n }\n\n getSharedTansactionStorage(options?: StorageOptions): TransactionStorage<M> {\n options = this.getOptionsForSection('shared-transaction', options);\n logServerSideMemoryStorageWarning(options);\n const storage = this.getStorage(options);\n const storageKey = options.storageKey || SHARED_TRANSACTION_STORAGE_NAME;\n return new SavedObject(storage, storageKey);\n }\n\n getOriginalUriStorage(options?: StorageOptions): TransactionStorage<M> {\n options = this.getOptionsForSection('original-uri', options);\n logServerSideMemoryStorageWarning(options);\n const storage = this.getStorage(options);\n const storageKey = options.storageKey || ORIGINAL_URI_STORAGE_NAME;\n return new SavedObject(storage, storageKey);\n }\n };\n\n}\n","import { createOAuthStorageManager } from '../oidc/storage';\nimport { PKCETransactionMeta } from '../oidc/types';\n\nexport function createCoreStorageManager<M extends PKCETransactionMeta = PKCETransactionMeta>() {\n return createOAuthStorageManager<M>();\n}\n","import { CookieOptions, StorageManagerOptions, StorageOptions, StorageUtil } from '../storage/types';\nimport { IdxTransactionMeta } from './types';\nimport { SavedObject } from '../storage';\nimport { IDX_RESPONSE_STORAGE_NAME } from '../constants';\nimport { createCoreStorageManager } from '../core/storage';\nimport { IdxResponseStorage } from './types/storage';\nimport { isBrowser } from '../features';\nimport { warn } from '../util';\nimport AuthSdkError from '../errors/AuthSdkError';\n\nexport function createIdxStorageManager<M extends IdxTransactionMeta>()\n{\n const CoreStorageManager = createCoreStorageManager<M>();\n return class IdxStorageManager extends CoreStorageManager\n {\n constructor(storageManagerOptions: StorageManagerOptions, cookieOptions: CookieOptions, storageUtil: StorageUtil) {\n super(storageManagerOptions, cookieOptions, storageUtil);\n }\n\n // intermediate idxResponse\n // store for network traffic optimazation purpose\n // TODO: revisit in auth-js 6.0 epic JIRA: OKTA-399791\n getIdxResponseStorage(options?: StorageOptions): IdxResponseStorage | null {\n let storage;\n if (isBrowser()) {\n // on browser side only use memory storage \n try {\n storage = this.storageUtil.getStorageByType('memory', options);\n } catch (e) {\n // it's ok to miss response storage\n // eslint-disable-next-line max-len\n warn('No response storage found, you may want to provide custom implementation for intermediate idx responses to optimize the network traffic');\n }\n } else {\n // on server side re-use transaction custom storage\n const transactionStorage = this.getTransactionStorage(options);\n if (transactionStorage) {\n storage = {\n getItem: (key) => {\n const transaction = transactionStorage.getStorage();\n if (transaction && transaction[key]) {\n return transaction[key];\n }\n return null;\n },\n setItem: (key, val) => {\n const transaction = transactionStorage.getStorage();\n if (!transaction) {\n throw new AuthSdkError('Transaction has been cleared, failed to save idxState');\n }\n transaction[key] = val;\n transactionStorage.setStorage(transaction);\n },\n removeItem: (key) => {\n const transaction = transactionStorage.getStorage();\n if (!transaction) {\n return;\n }\n delete transaction[key];\n transactionStorage.setStorage(transaction);\n }\n };\n }\n }\n\n if (!storage) {\n return null;\n }\n\n return new SavedObject(storage, IDX_RESPONSE_STORAGE_NAME);\n }\n };\n}\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\nimport { IdxTransactionMeta } from '../../idx/types/meta';\nimport { OAuthTransactionMeta, PKCETransactionMeta } from './meta';\nimport { OAuthStorageManagerInterface } from './storage';\n\nexport interface TransactionManagerOptions\n{\n storageManager?: OAuthStorageManagerInterface;\n enableSharedStorage?: boolean; // default true\n saveNonceCookie?: boolean; // default true\n saveStateCookie?: boolean; // default true\n saveParamsCookie?: boolean; // default true\n saveLastResponse?: boolean; // default true\n}\n\n\nexport type CustomAuthTransactionMeta = Record<string, string | undefined>;\n\nexport type TransactionMeta =\n IdxTransactionMeta |\n PKCETransactionMeta |\n OAuthTransactionMeta |\n CustomAuthTransactionMeta;\n\n\nfunction isObjectWithProperties(obj) {\n if (!obj || typeof obj !== 'object' || Object.values(obj).length === 0) {\n return false;\n }\n return true;\n}\n\nexport function isOAuthTransactionMeta(obj: any): obj is OAuthTransactionMeta {\n if (!isObjectWithProperties(obj)) {\n return false;\n }\n return !!obj.redirectUri || !!obj.responseType;\n}\n\nexport function isPKCETransactionMeta(obj: any): obj is PKCETransactionMeta {\n if (!isOAuthTransactionMeta(obj)) {\n return false;\n }\n return !!(obj as any).codeVerifier;\n}\n\nexport function isIdxTransactionMeta(obj: any): obj is IdxTransactionMeta {\n if (!isPKCETransactionMeta(obj)) {\n return false;\n }\n return !!(obj as any).interactionHandle;\n}\n\nexport function isCustomAuthTransactionMeta(obj: any): obj is CustomAuthTransactionMeta {\n if (!isObjectWithProperties(obj)) {\n return false;\n }\n const isAllStringValues = Object.values(obj).find((value) => (typeof value !== 'string')) === undefined;\n return isAllStringValues;\n}\n\nexport function isTransactionMeta(obj: any): obj is TransactionMeta {\n if (isOAuthTransactionMeta(obj) || isCustomAuthTransactionMeta(obj)) {\n return true;\n }\n return false;\n}\n","import { OAuthStorageManagerInterface, OAuthTransactionMeta, isTransactionMeta } from '../types';\n\nconst MAX_ENTRY_LIFETIME = 30 * 60 * 1000; // 30 minutes\n\nexport function pruneSharedStorage<M extends OAuthTransactionMeta>(storageManager: OAuthStorageManagerInterface<M>) {\n const sharedStorage = storageManager.getSharedTansactionStorage();\n const entries = sharedStorage.getStorage();\n Object.keys(entries).forEach(state => {\n const entry = entries[state];\n const age = Date.now() - entry.dateCreated;\n if (age > MAX_ENTRY_LIFETIME) {\n delete entries[state];\n }\n });\n sharedStorage.setStorage(entries);\n}\n\nexport function saveTransactionToSharedStorage<M extends OAuthTransactionMeta>(\n storageManager: OAuthStorageManagerInterface<M>, state: string, meta: M\n) {\n const sharedStorage = storageManager.getSharedTansactionStorage();\n const entries = sharedStorage.getStorage();\n entries[state] = {\n dateCreated: Date.now(),\n transaction: meta\n };\n sharedStorage.setStorage(entries);\n}\n\n\nexport function loadTransactionFromSharedStorage<M extends OAuthTransactionMeta>(\n storageManager: OAuthStorageManagerInterface<M>, state: string\n) {\n const sharedStorage = storageManager.getSharedTansactionStorage();\n const entries = sharedStorage.getStorage();\n const entry = entries[state];\n if (entry && entry.transaction && isTransactionMeta(entry.transaction)) {\n return entry.transaction;\n }\n return null;\n}\n\nexport function clearTransactionFromSharedStorage<M extends OAuthTransactionMeta>(\n storageManager: OAuthStorageManagerInterface<M>, state: string\n) {\n const sharedStorage = storageManager.getSharedTansactionStorage();\n const entries = sharedStorage.getStorage();\n delete entries[state];\n sharedStorage.setStorage(entries);\n}\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { StorageProvider } from '../storage/types';\nimport {\n TransactionMeta,\n isTransactionMeta,\n TransactionMetaOptions,\n TransactionManagerOptions,\n OAuthTransactionMeta,\n OAuthStorageManagerInterface,\n ClearTransactionMetaOptions,\n TransactionManagerInterface,\n PKCETransactionMeta\n} from './types';\nimport { warn } from '../util';\nimport {\n clearTransactionFromSharedStorage,\n loadTransactionFromSharedStorage,\n pruneSharedStorage,\n saveTransactionToSharedStorage\n} from './util/sharedStorage';\n\n\nexport function createTransactionManager\n<\n M extends OAuthTransactionMeta = PKCETransactionMeta,\n S extends OAuthStorageManagerInterface<M> = OAuthStorageManagerInterface<M>\n>\n()\n{\n return class TransactionManager implements TransactionManagerInterface\n {\n options: TransactionManagerOptions;\n storageManager: S;\n enableSharedStorage: boolean;\n saveLastResponse: boolean;\n\n constructor(options: TransactionManagerOptions) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this.storageManager = options.storageManager! as S;\n this.enableSharedStorage = options.enableSharedStorage === false ? false : true;\n this.saveLastResponse = options.saveLastResponse === false ? false : true;\n this.options = options;\n }\n\n // eslint-disable-next-line complexity\n clear(options: ClearTransactionMetaOptions = {}) {\n const transactionStorage: StorageProvider = this.storageManager.getTransactionStorage();\n const meta = transactionStorage.getStorage();\n\n // Clear primary storage (by default, sessionStorage on browser)\n transactionStorage.clearStorage();\n\n // Usually we want to also clear shared storage unless another tab may need it to continue/complete a flow\n if (this.enableSharedStorage && options.clearSharedStorage !== false) {\n const state = options.state || meta?.state;\n if (state) {\n clearTransactionFromSharedStorage(this.storageManager, state);\n }\n }\n }\n\n // eslint-disable-next-line complexity\n save(meta: M, options: TransactionMetaOptions = {}) {\n // There must be only one transaction executing at a time.\n // Before saving, check to see if a transaction is already stored.\n // An existing transaction indicates a concurrency/race/overlap condition\n\n let storage: StorageProvider = this.storageManager.getTransactionStorage();\n const obj = storage.getStorage();\n // oie process may need to update transaction in the middle of process for tracking purpose\n // false alarm might be caused \n // TODO: revisit for a better solution, https://oktainc.atlassian.net/browse/OKTA-430919\n if (isTransactionMeta(obj) && !options.muteWarning) {\n // eslint-disable-next-line max-len\n warn('a saved auth transaction exists in storage. This may indicate another auth flow is already in progress.');\n }\n\n storage.setStorage(meta);\n\n // Shared storage allows continuation of transaction in another tab\n if (this.enableSharedStorage && meta.state) {\n saveTransactionToSharedStorage(this.storageManager, meta.state, meta);\n }\n }\n\n exists(options: TransactionMetaOptions = {}): boolean {\n try {\n const meta = this.load(options);\n return !!meta;\n } catch {\n return false;\n }\n }\n\n // load transaction meta from storage\n // eslint-disable-next-line complexity,max-statements\n load(options: TransactionMetaOptions = {}): TransactionMeta | null {\n\n let meta: TransactionMeta;\n\n // If state was passed, try loading transaction data from shared storage\n if (this.enableSharedStorage && options.state) {\n pruneSharedStorage(this.storageManager); // prune before load\n meta = loadTransactionFromSharedStorage(this.storageManager, options.state);\n if (isTransactionMeta(meta)) {\n return meta;\n }\n }\n\n let storage: StorageProvider = this.storageManager.getTransactionStorage();\n meta = storage.getStorage();\n if (isTransactionMeta(meta)) {\n // if we have meta in the new location, there is no need to go further\n return meta;\n }\n\n return null;\n }\n\n };\n}\n","import { ClearTransactionMetaOptions, TransactionManagerOptions } from '../oidc/types';\nimport { createTransactionManager } from '../oidc/TransactionManager';\nimport { IdxTransactionMeta, IntrospectOptions } from './types';\nimport { isRawIdxResponse } from './types/idx-js';\nimport { IdxStorageManagerInterface, SavedIdxResponse } from './types/storage';\n\nexport function createIdxTransactionManager\n<\n M extends IdxTransactionMeta = IdxTransactionMeta,\n S extends IdxStorageManagerInterface<M> = IdxStorageManagerInterface<M>\n>\n()\n{\n const TransactionManager = createTransactionManager<M, S>();\n return class IdxTransactionManager extends TransactionManager\n {\n constructor(options: TransactionManagerOptions) {\n super(options);\n }\n\n clear(options: ClearTransactionMetaOptions = {}) {\n super.clear(options);\n\n if (options.clearIdxResponse !== false) {\n this.clearIdxResponse();\n }\n }\n \n saveIdxResponse(data: SavedIdxResponse): void {\n if (!this.saveLastResponse) {\n return;\n }\n const storage = this.storageManager.getIdxResponseStorage();\n if (!storage) {\n return;\n }\n storage.setStorage(data);\n }\n\n // eslint-disable-next-line complexity\n loadIdxResponse(options?: IntrospectOptions): SavedIdxResponse | null {\n if (!this.saveLastResponse) {\n return null;\n }\n const storage = this.storageManager.getIdxResponseStorage();\n if (!storage) {\n return null;\n }\n const storedValue = storage.getStorage();\n if (!storedValue || !isRawIdxResponse(storedValue.rawIdxResponse)) {\n return null;\n }\n\n if (options) {\n const { interactionHandle } = options;\n if (interactionHandle && storedValue.interactionHandle !== interactionHandle) {\n return null;\n }\n }\n\n return storedValue;\n }\n\n clearIdxResponse(): void {\n if (!this.saveLastResponse) {\n return;\n }\n const storage = this.storageManager.getIdxResponseStorage();\n storage?.clearStorage();\n }\n };\n}\n","import {\n OAuthStorageManagerInterface,\n OAuthTransactionMeta,\n OktaAuthOAuthInterface,\n OktaAuthOAuthOptions,\n PKCETransactionMeta\n} from '../oidc/types';\n\nexport { \n EmailTransaction, \n EmailStatusTransaction,\n EmailChallengeTransaction,\n PhoneTransaction,\n ProfileTransaction,\n ProfileSchemaTransaction,\n PasswordTransaction,\n BaseTransaction\n} from './transactions';\n\nexport enum EmailRole {\n PRIMARY = 'PRIMARY',\n SECONDARY = 'SECONDARY'\n}\n\nexport enum Status {\n VERIFIED = 'VERIFIED',\n UNVERIFIED = 'UNVERIFIED'\n}\n\nexport enum PasswordStatus {\n NOT_ENROLLED = 'NOT_ENROLLED',\n ACTIVE = 'ACTIVE'\n}\n\nexport type EmailProfile = {\n email: string;\n}\n\nexport type AddEmailPayload = {\n profile: {\n email: string;\n };\n sendEmail: boolean;\n role: EmailRole;\n}\n\nexport type PhoneProfile = {\n profile: {\n phoneNumber: string;\n };\n}\n\nexport type AddPhonePayload = {\n profile: {\n phoneNumber: string;\n };\n sendCode: boolean;\n method: string;\n};\n\nexport type ChallengePhonePayload = {\n method: string;\n}\n\nexport type VerificationPayload = {\n verificationCode: string;\n};\n\nexport type EnrollPasswordPayload = {\n profile: {\n password: string;\n }\n}\n\nexport type UpdatePasswordPayload = {\n profile: {\n password: string;\n currentPassword?: string;\n }\n}\n\nexport type UpdateProfilePayload = {\n profile: {\n firstName?: string;\n lastName?: string;\n email?: string;\n login?: string;\n [property: string]: any;\n };\n};\n\nexport type MyAccountRequestOptions = {\n id?: string;\n emailId?: string;\n challengeId?: string;\n payload?: AddEmailPayload \n | AddPhonePayload \n | ChallengePhonePayload\n | VerificationPayload \n | UpdateProfilePayload\n | EnrollPasswordPayload\n | UpdatePasswordPayload;\n accessToken?: string;\n}\n\nexport type IAPIFunction<T> = (\n oktaAuth: OktaAuthOAuthInterface, \n options?: MyAccountRequestOptions\n) => Promise<T>;\n\nexport interface OktaAuthMyAccountInterface\n<\n M extends OAuthTransactionMeta = PKCETransactionMeta,\n S extends OAuthStorageManagerInterface<M> = OAuthStorageManagerInterface<M>,\n O extends OktaAuthOAuthOptions = OktaAuthOAuthOptions\n> \n extends OktaAuthOAuthInterface<M, S, O>\n{\n myaccount;\n}\n","import { OktaAuthHttpInterface } from '../../http/types';\nimport { TransactionLink } from '../request';\n\ntype TransactionOptions = {\n // TODO: move res type to http module\n res: {\n headers: Record<string, string>;\n _links?: Record<string, TransactionLink>;\n [property: string]: unknown;\n };\n accessToken: string;\n};\nexport default class BaseTransaction {\n // Deprecated\n headers?: Record<string, string>;\n\n constructor(oktaAuth: OktaAuthHttpInterface, options: TransactionOptions) {\n const { res } = options;\n const { headers, ...rest } = res;\n \n // assign required fields from res\n if (headers) {\n this.headers = headers;\n }\n\n // add all rest fields from res\n Object.keys(rest).forEach(key => {\n if (key === '_links') {\n return;\n }\n this[key] = rest[key];\n });\n }\n}\n","import BaseTransaction from './Base';\n\nexport default class ProfileTransaction extends BaseTransaction {\n createdAt: string;\n modifiedAt: string;\n profile: Record<string, string>;\n\n constructor(oktaAuth, options) {\n super(oktaAuth, options);\n\n const { createdAt, modifiedAt, profile } = options.res;\n this.createdAt = createdAt;\n this.modifiedAt = modifiedAt;\n this.profile = profile;\n }\n}\n","import BaseTransaction from './Base';\n\nexport default class ProfileSchemaTransaction extends BaseTransaction {\n properties: Record<string, object>;\n\n constructor(oktaAuth, options) {\n super(oktaAuth, options);\n\n this.properties = options.res.properties;\n }\n}\n","import { EmailChallengeTransaction, EmailStatusTransaction } from '.';\nimport { EmailProfile, EmailRole, Status, VerificationPayload } from '../types';\nimport BaseTransaction from './Base';\nimport { generateRequestFnFromLinks } from '../request';\n\nexport default class EmailTransaction extends BaseTransaction {\n id: string;\n profile: EmailProfile;\n roles: EmailRole[];\n status: Status;\n\n // eslint-disable-next-line no-use-before-define\n get: () => Promise<EmailTransaction>;\n delete: () => Promise<BaseTransaction>;\n challenge: () => Promise<EmailChallengeTransaction>;\n poll?: () => Promise<EmailStatusTransaction>;\n verify?: (payload: VerificationPayload) => Promise<BaseTransaction>;\n\n constructor(oktaAuth, options) {\n super(oktaAuth, options);\n\n const { accessToken, res } = options;\n // assign required fields from res\n const { id, profile, roles, status, _links } = res;\n this.id = id;\n this.profile = profile;\n this.roles = roles;\n this.status = status;\n\n // assign transformed fns to transaction\n this.get = async () => {\n const fn = generateRequestFnFromLinks({ \n oktaAuth, \n accessToken, \n methodName: 'get', \n links: _links,\n transactionClassName: 'EmailTransaction'\n });\n return await fn() as EmailTransaction;\n };\n this.delete = async () => {\n const fn = generateRequestFnFromLinks({ \n oktaAuth, \n accessToken, \n methodName: 'delete', \n links: _links \n });\n return await fn() as BaseTransaction;\n };\n this.challenge = async () => {\n const fn = generateRequestFnFromLinks({ \n oktaAuth, \n accessToken, \n methodName: 'challenge', \n links: _links,\n transactionClassName: 'EmailChallengeTransaction'\n });\n return await fn() as EmailChallengeTransaction;\n };\n if (_links.poll) {\n this.poll = async () => {\n const fn = generateRequestFnFromLinks({ \n oktaAuth, \n accessToken, \n methodName: 'poll', \n links: _links,\n transactionClassName: 'EmailStatusTransaction'\n });\n return await fn() as EmailStatusTransaction;\n };\n }\n if (_links.verify) {\n this.verify = async (payload: VerificationPayload) => {\n const fn = generateRequestFnFromLinks({ \n oktaAuth, \n accessToken, \n methodName: 'verify', \n links: _links,\n });\n return await fn(payload) as BaseTransaction;\n };\n }\n }\n}\n","import { EmailProfile, Status } from '../types';\nimport BaseTransaction from './Base';\n\nexport default class EmailStatusTransaction extends BaseTransaction {\n id: string;\n expiresAt: string;\n profile: EmailProfile;\n status: Status;\n\n constructor(oktaAuth, options) {\n super(oktaAuth, options);\n\n const { res } = options;\n // assign required fields from res\n const { id, profile, expiresAt, status } = res;\n this.id = id;\n this.expiresAt = expiresAt;\n this.profile = profile;\n this.status = status;\n }\n}\n","import EmailStatusTransaction from './EmailStatusTransaction';\nimport { \n EmailProfile, \n Status,\n VerificationPayload, \n} from '../types';\nimport BaseTransaction from './Base';\nimport { generateRequestFnFromLinks } from '../request';\n\nexport default class EmailChallengeTransaction extends BaseTransaction {\n id: string;\n expiresAt: string;\n profile: EmailProfile;\n status: Status;\n\n poll: () => Promise<EmailStatusTransaction>;\n // eslint-disable-next-line no-use-before-define\n verify: (payload: VerificationPayload) => Promise<EmailChallengeTransaction>;\n\n constructor(oktaAuth, options) {\n super(oktaAuth, options);\n\n const { accessToken, res } = options;\n // assign required fields from res\n const { id, expiresAt, profile, status, _links } = res;\n this.id = id;\n this.expiresAt = expiresAt;\n this.profile = profile;\n this.status = status;\n\n // assign transformed fns to transaction\n this.poll = async () => {\n const fn = generateRequestFnFromLinks({ \n oktaAuth, \n accessToken, \n methodName: 'poll', \n links: _links,\n transactionClassName: 'EmailStatusTransaction'\n });\n return await fn() as EmailStatusTransaction;\n };\n this.verify = async (payload) => {\n const fn = generateRequestFnFromLinks({ \n oktaAuth, \n accessToken, \n methodName: 'verify', \n links: _links,\n });\n return await fn(payload) as EmailChallengeTransaction;\n };\n }\n}\n","import { ChallengePhonePayload, PhoneProfile, Status, VerificationPayload } from '../types';\nimport BaseTransaction from './Base';\nimport { generateRequestFnFromLinks } from '../request';\n\nexport default class PhoneTransaction extends BaseTransaction {\n id: string;\n profile: PhoneProfile;\n status: Status;\n\n // eslint-disable-next-line no-use-before-define\n get: () => Promise<PhoneTransaction>;\n delete: () => Promise<BaseTransaction>;\n challenge: (payload: ChallengePhonePayload) => Promise<BaseTransaction>;\n verify?: (payload: VerificationPayload) => Promise<BaseTransaction>;\n\n constructor(oktaAuth, options) {\n super(oktaAuth, options);\n\n const { res, accessToken } = options;\n // assign required fields from res\n const { id, profile, status, _links } = res;\n this.id = id;\n this.profile = profile;\n this.status = status;\n\n // assign transformed fns to transaction\n this.get = async () => {\n const fn = generateRequestFnFromLinks({ \n oktaAuth, \n accessToken, \n methodName: 'get', \n links: _links,\n transactionClassName: 'PhoneTransaction'\n });\n return await fn() as PhoneTransaction;\n };\n this.delete = async () => {\n const fn = generateRequestFnFromLinks({ \n oktaAuth, \n accessToken, \n methodName: 'delete', \n links: _links \n });\n return await fn() as BaseTransaction;\n };\n this.challenge = async (payload) => {\n const fn = generateRequestFnFromLinks({ \n oktaAuth, \n accessToken, \n methodName: 'challenge', \n links: _links \n });\n return await fn(payload) as BaseTransaction;\n };\n if (_links.verify) {\n this.verify = async (payload) => {\n const fn = generateRequestFnFromLinks({ \n oktaAuth, \n accessToken, \n methodName: 'verify', \n links: _links \n });\n return await fn(payload) as BaseTransaction;\n } ;\n }\n }\n}\n","import { EnrollPasswordPayload, UpdatePasswordPayload, PasswordStatus } from '../types';\nimport BaseTransaction from './Base';\nimport { generateRequestFnFromLinks } from '../request';\n\nexport default class PasswordTransaction extends BaseTransaction {\n id: string;\n created: string;\n lastUpdated: string;\n status: PasswordStatus;\n\n // eslint-disable-next-line no-use-before-define\n get?: () => Promise<PasswordTransaction>;\n // eslint-disable-next-line no-use-before-define\n enroll?: (payload: EnrollPasswordPayload) => Promise<PasswordTransaction>;\n // eslint-disable-next-line no-use-before-define\n update?: (payload: UpdatePasswordPayload) => Promise<PasswordTransaction>;\n delete?: () => Promise<BaseTransaction>;\n\n constructor(oktaAuth, options) {\n super(oktaAuth, options);\n\n const { res, accessToken } = options;\n // assign required fields from res\n const { id, status, created, lastUpdated, _links } = res;\n this.id = id;\n this.status = status;\n this.created = created;\n this.lastUpdated = lastUpdated;\n\n // assign transformed fns to transaction\n if (this.status == PasswordStatus.NOT_ENROLLED) {\n this.enroll = async (payload) => {\n const fn = generateRequestFnFromLinks({ \n oktaAuth, \n accessToken, \n methodName: 'enroll',\n links: _links,\n transactionClassName: 'PasswordTransaction'\n });\n return await fn(payload) as PasswordTransaction;\n };\n }\n else {\n this.get = async () => {\n const fn = generateRequestFnFromLinks({ \n oktaAuth, \n accessToken, \n methodName: 'get',\n links: _links,\n transactionClassName: 'PasswordTransaction'\n });\n return await fn() as PasswordTransaction;\n };\n\n this.update = async (payload) => {\n const fn = generateRequestFnFromLinks({ \n oktaAuth, \n accessToken, \n methodName: 'put', \n links: _links,\n transactionClassName: 'PasswordTransaction'\n });\n return await fn(payload) as PasswordTransaction;\n };\n \n this.delete = async () => {\n const fn = generateRequestFnFromLinks({ \n oktaAuth, \n accessToken, \n methodName: 'delete', \n links: _links \n });\n return await fn() as BaseTransaction;\n };\n }\n }\n}\n","import { \n BaseTransaction,\n EmailTransaction,\n EmailStatusTransaction,\n EmailChallengeTransaction,\n ProfileTransaction,\n ProfileSchemaTransaction,\n PhoneTransaction,\n PasswordTransaction\n} from './transactions';\nimport { httpRequest } from '../http';\nimport { AuthSdkError } from '../errors';\nimport { MyAccountRequestOptions as RequestOptions } from './types';\nimport { OktaAuthOAuthInterface } from '../oidc/types';\n\nexport type TransactionLink = {\n href: string;\n hints?: {\n allow?: string[];\n };\n}\n\ntype TransactionLinks = {\n self: TransactionLink;\n [property: string]: TransactionLink;\n}\n\ntype SendRequestOptions = RequestOptions & {\n url: string;\n method: string;\n transactionClassName?: string;\n}\n\n/* eslint-disable complexity */\nexport async function sendRequest<T extends BaseTransaction> (\n oktaAuth: OktaAuthOAuthInterface, \n options: SendRequestOptions\n): Promise<T | T[]> {\n const { \n accessToken: accessTokenObj\n } = oktaAuth.tokenManager.getTokensSync();\n \n const accessToken = options.accessToken || accessTokenObj?.accessToken;\n const issuer = oktaAuth.getIssuerOrigin();\n const { url, method, payload } = options;\n const requestUrl = url.startsWith(issuer!) ? url : `${issuer}${url}`;\n\n if (!accessToken) {\n throw new AuthSdkError('AccessToken is required to request MyAccount API endpoints.');\n }\n \n const res = await httpRequest(oktaAuth, {\n headers: { 'Accept': '*/*;okta-version=1.0.0' },\n accessToken,\n url: requestUrl,\n method,\n ...(payload && { args: payload })\n });\n\n const map = {\n EmailTransaction,\n EmailStatusTransaction,\n EmailChallengeTransaction,\n ProfileTransaction,\n ProfileSchemaTransaction,\n PhoneTransaction,\n PasswordTransaction\n };\n const TransactionClass = map[options.transactionClassName!] || BaseTransaction;\n\n if (Array.isArray(res)) {\n return res.map(item => new TransactionClass(oktaAuth, { \n res: item, \n accessToken\n }));\n }\n\n return new TransactionClass(oktaAuth, { \n res, \n accessToken\n });\n}\n/* eslint-enable complexity */\n\nexport type GenerateRequestFnFromLinksOptions = {\n oktaAuth: OktaAuthOAuthInterface;\n accessToken: string;\n methodName: string;\n links: TransactionLinks;\n transactionClassName?: string;\n}\n\ntype IRequestFnFromLinks = <T extends BaseTransaction>(payload?) => Promise<T | T[]>;\n\nexport function generateRequestFnFromLinks ({\n oktaAuth, \n accessToken,\n methodName,\n links,\n transactionClassName\n}: GenerateRequestFnFromLinksOptions): IRequestFnFromLinks {\n for (const method of ['GET', 'POST', 'PUT', 'DELETE']) {\n if (method.toLowerCase() === methodName) {\n const link = links.self;\n return (async (payload?) => sendRequest(oktaAuth, {\n accessToken,\n url: link.href,\n method,\n payload,\n transactionClassName\n }));\n }\n }\n \n const link = links[methodName];\n if (!link) {\n throw new AuthSdkError(`No link is found with methodName: ${methodName}`);\n }\n\n return (async (payload?) => sendRequest(oktaAuth, {\n accessToken,\n url: link.href,\n method: link.hints!.allow![0],\n payload,\n transactionClassName\n }));\n}\n","import { sendRequest } from './request';\nimport { \n IAPIFunction,\n ProfileTransaction,\n ProfileSchemaTransaction\n} from './types';\n\n/**\n * @scope: okta.myAccount.profile.read\n */\nexport const getProfile: IAPIFunction<ProfileTransaction> = async (oktaAuth, options?) => {\n const transaction = await sendRequest(oktaAuth, {\n url: '/idp/myaccount/profile',\n method: 'GET',\n accessToken: options?.accessToken,\n transactionClassName: 'ProfileTransaction'\n }) as ProfileTransaction;\n return transaction;\n};\n\n/**\n * @scope: okta.myAccount.profile.manage\n */\nexport const updateProfile: IAPIFunction<ProfileTransaction> = async (\n oktaAuth, \n options\n) => {\n const { payload, accessToken } = options!;\n const transaction = await sendRequest(oktaAuth, {\n url: '/idp/myaccount/profile',\n method: 'PUT',\n payload,\n accessToken,\n transactionClassName: 'ProfileTransaction'\n }) as ProfileTransaction;\n return transaction;\n};\n\n/**\n * @scope: okta.myAccount.profile.read\n */\nexport const getProfileSchema: IAPIFunction<ProfileSchemaTransaction> = async (\n oktaAuth, \n options?\n): Promise<ProfileSchemaTransaction> => {\n const transaction = await sendRequest(oktaAuth, {\n url: '/idp/myaccount/profile/schema',\n method: 'GET',\n accessToken: options?.accessToken,\n transactionClassName: 'ProfileSchemaTransaction'\n }) as ProfileSchemaTransaction;\n return transaction;\n};\n","import { sendRequest } from './request';\nimport { \n IAPIFunction, \n BaseTransaction, \n EmailTransaction, \n EmailChallengeTransaction \n} from './types';\n\n/**\n * @scope: okta.myAccount.email.read\n */\nexport const getEmails: IAPIFunction<EmailTransaction[]> = async (\n oktaAuth,\n options?\n) => {\n const transaction = await sendRequest(oktaAuth, {\n url: '/idp/myaccount/emails',\n method: 'GET',\n accessToken: options?.accessToken,\n transactionClassName: 'EmailTransaction'\n }) as EmailTransaction[];\n return transaction;\n};\n\n/**\n * @scope: okta.myAccount.email.read\n */\nexport const getEmail: IAPIFunction<EmailTransaction> = async (\n oktaAuth, \n options\n) => {\n const { id, accessToken } = options!;\n const transaction = await sendRequest(oktaAuth, {\n url: `/idp/myaccount/emails/${id}`,\n method: 'GET',\n accessToken,\n transactionClassName: 'EmailTransaction'\n }) as EmailTransaction;\n return transaction;\n};\n\n/**\n * @scope: okta.myAccount.email.manage\n */\nexport const addEmail: IAPIFunction<EmailTransaction> = async (\n oktaAuth, \n options\n): Promise<EmailTransaction> => {\n const { accessToken, payload } = options!;\n const transaction = await sendRequest(oktaAuth, {\n url: '/idp/myaccount/emails',\n method: 'POST',\n payload,\n accessToken,\n transactionClassName: 'EmailTransaction'\n }) as EmailTransaction;\n return transaction;\n};\n\n/**\n * @scope: okta.myAccount.email.manage\n */\nexport const deleteEmail: IAPIFunction<BaseTransaction> = async (\n oktaAuth, \n options\n) => {\n const { id, accessToken } = options!;\n const transaction = await sendRequest(oktaAuth, {\n url: `/idp/myaccount/emails/${id}`,\n method: 'DELETE',\n accessToken\n }) as BaseTransaction;\n return transaction;\n};\n\n/**\n * @scope: okta.myAccount.email.read\n */\nexport const sendEmailChallenge: IAPIFunction<EmailChallengeTransaction> = async (\n oktaAuth, \n options\n) => {\n const { id, accessToken } = options!;\n const transaction = await sendRequest(oktaAuth, {\n url: `/idp/myaccount/emails/${id}/challenge`,\n method: 'POST',\n accessToken,\n transactionClassName: 'EmailChallengeTransaction'\n }) as EmailChallengeTransaction;\n return transaction;\n};\n\n/**\n * @scope: okta.myAccount.email.read\n */\nexport const getEmailChallenge: IAPIFunction<EmailChallengeTransaction> = async (\n oktaAuth, \n options\n) => {\n const { emailId, challengeId, accessToken } = options!;\n const transaction = await sendRequest(oktaAuth, {\n url: `/idp/myaccount/emails/${emailId}/challenge/${challengeId}`,\n method: 'POST',\n accessToken,\n transactionClassName: 'EmailChallengeTransaction'\n }) as EmailChallengeTransaction;\n return transaction;\n};\n\n/**\n * @scope: okta.myAccount.email.manage\n */\nexport const verifyEmailChallenge: IAPIFunction<BaseTransaction> = async (\n oktaAuth,\n options\n) => {\n const { emailId, challengeId, payload, accessToken } = options!;\n const transaction = await sendRequest(oktaAuth, {\n url: `/idp/myaccount/emails/${emailId}/challenge/${challengeId}/verify`,\n method: 'POST',\n payload,\n accessToken\n }) as BaseTransaction;\n return transaction;\n};\n","import { sendRequest } from './request';\nimport { \n IAPIFunction,\n BaseTransaction, \n PhoneTransaction\n} from './types';\n\n/**\n * @scope: okta.myAccount.phone.read\n */\nexport const getPhones: IAPIFunction<PhoneTransaction[]> = async (\n oktaAuth,\n options?\n) => {\n const transaction = await sendRequest(oktaAuth, {\n url: '/idp/myaccount/phones',\n method: 'GET',\n accessToken: options?.accessToken,\n transactionClassName: 'PhoneTransaction'\n }) as PhoneTransaction[];\n return transaction;\n};\n\n/**\n * @scope: okta.myAccount.phone.read\n */\nexport const getPhone: IAPIFunction<PhoneTransaction> = async (\n oktaAuth,\n options\n) => {\n const { accessToken, id } = options!;\n const transaction = await sendRequest(oktaAuth, {\n url: `/idp/myaccount/phones/${id}`,\n method: 'GET',\n accessToken,\n transactionClassName: 'PhoneTransaction'\n }) as PhoneTransaction;\n return transaction;\n};\n\n/**\n * @scope: okta.myAccount.phone.manage\n */\nexport const addPhone: IAPIFunction<PhoneTransaction> = async (\n oktaAuth, \n options\n): Promise<PhoneTransaction> => {\n const { accessToken, payload } = options!;\n const transaction = await sendRequest(oktaAuth, {\n url: '/idp/myaccount/phones',\n method: 'POST',\n payload,\n accessToken,\n transactionClassName: 'PhoneTransaction'\n }) as PhoneTransaction;\n return transaction;\n};\n\n/**\n * @scope: okta.myAccount.phone.manage\n */\nexport const deletePhone: IAPIFunction<BaseTransaction> = async (\n oktaAuth, \n options\n) => {\n const { id, accessToken } = options!;\n const transaction = await sendRequest(oktaAuth, {\n url: `/idp/myaccount/phones/${id}`,\n method: 'DELETE',\n accessToken,\n }) as BaseTransaction;\n return transaction;\n};\n\n/**\n * @scope: okta.myAccount.phone.manage\n */\nexport const sendPhoneChallenge: IAPIFunction<BaseTransaction> = async (\n oktaAuth, \n options\n) => {\n const { accessToken, id, payload } = options!;\n const transaction = await sendRequest(oktaAuth, {\n url: `/idp/myaccount/phones/${id}/challenge`,\n method: 'POST',\n payload,\n accessToken\n }) as BaseTransaction;\n return transaction;\n};\n\n/**\n * @scope: okta.myAccount.phone.manage\n */\nexport const verifyPhoneChallenge: IAPIFunction<BaseTransaction> = async (\n oktaAuth,\n options\n) => {\n const { id, payload, accessToken } = options!;\n const transaction = await sendRequest(oktaAuth, {\n url: `/idp/myaccount/phones/${id}/verify`,\n method: 'POST',\n payload,\n accessToken\n }) as BaseTransaction;\n return transaction;\n};\n","import { sendRequest } from './request';\nimport { \n IAPIFunction,\n BaseTransaction, \n PasswordTransaction\n} from './types';\n\n/**\n * @scope: okta.myAccount.password.read\n */\nexport const getPassword: IAPIFunction<PasswordTransaction> = async (\n oktaAuth,\n options\n) => {\n const transaction = await sendRequest(oktaAuth, {\n url: `/idp/myaccount/password`,\n method: 'GET',\n accessToken: options?.accessToken,\n transactionClassName: 'PasswordTransaction'\n }) as PasswordTransaction;\n return transaction;\n};\n\n/**\n * @scope: okta.myAccount.password.manage\n */\nexport const enrollPassword: IAPIFunction<PasswordTransaction> = async (\n oktaAuth, \n options\n): Promise<PasswordTransaction> => {\n const { accessToken, payload } = options!;\n const transaction = await sendRequest(oktaAuth, {\n url: '/idp/myaccount/password',\n method: 'POST',\n payload,\n accessToken,\n transactionClassName: 'PasswordTransaction'\n }) as PasswordTransaction;\n return transaction;\n};\n\n/**\n * @scope: okta.myAccount.password.manage\n */\nexport const updatePassword: IAPIFunction<PasswordTransaction> = async (\n oktaAuth, \n options\n): Promise<PasswordTransaction> => {\n const { accessToken, payload } = options!;\n const transaction = await sendRequest(oktaAuth, {\n url: '/idp/myaccount/password',\n method: 'PUT',\n payload,\n accessToken,\n transactionClassName: 'PasswordTransaction'\n }) as PasswordTransaction;\n return transaction;\n};\n\n/**\n * @scope: okta.myAccount.password.manage\n */\nexport const deletePassword: IAPIFunction<BaseTransaction> = async (\n oktaAuth, \n options?\n) => {\n const transaction = await sendRequest(oktaAuth, {\n url: `/idp/myaccount/password`,\n method: 'DELETE',\n accessToken: options?.accessToken,\n }) as BaseTransaction;\n return transaction;\n};\n","import { OktaAuthConstructor } from '../base/types';\nimport {\n OAuthStorageManagerInterface,\n OAuthTransactionMeta,\n OktaAuthOAuthInterface,\n OktaAuthOAuthOptions,\n PKCETransactionMeta,\n} from '../oidc/types';\nimport { OktaAuthMyAccountInterface } from './types';\n\nimport * as MyAccountMethods from './api';\n\nexport function mixinMyAccount\n<\n M extends OAuthTransactionMeta = PKCETransactionMeta,\n S extends OAuthStorageManagerInterface<M> = OAuthStorageManagerInterface<M>,\n O extends OktaAuthOAuthOptions = OktaAuthOAuthOptions,\n TBase extends OktaAuthConstructor<OktaAuthOAuthInterface<M, S, O>>\n = OktaAuthConstructor<OktaAuthOAuthInterface<M, S, O>>\n>\n(Base: TBase): TBase & OktaAuthConstructor<OktaAuthMyAccountInterface<M, S, O>>\n{\n return class OktaAuthMyAccount extends Base implements OktaAuthMyAccountInterface<M, S, O>\n {\n myaccount: any;\n \n constructor(...args: any[]) {\n super(...args);\n\n this.myaccount = Object.entries(MyAccountMethods)\n .filter(([ name ]) => name !== 'default')\n .reduce((acc, [name, fn]) => {\n acc[name] = (fn as any).bind(null, this);\n return acc;\n }, {});\n }\n };\n}\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n *\n */\n\n\nimport { AuthnTransactionState } from '../types';\n\nexport function addStateToken(res, options?) {\n var builtArgs = {} as AuthnTransactionState;\n Object.assign(builtArgs, options);\n\n // Add the stateToken if one isn't passed and we have one\n if (!builtArgs.stateToken && res.stateToken) {\n builtArgs.stateToken = res.stateToken;\n }\n\n return builtArgs;\n}\n\nexport function getStateToken(res) {\n return addStateToken(res);\n}\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n *\n */\n\n/* eslint-disable complexity, max-statements */\nimport { post } from '../http';\nimport AuthSdkError from '../errors/AuthSdkError';\nimport { STATE_TOKEN_KEY_NAME } from '../constants';\nimport { OktaAuthHttpInterface } from '../http/types';\nimport { OktaAuthStorageOptions } from '../storage/types';\nimport { addStateToken } from './util/stateToken';\nimport { AuthnTransactionAPI } from './types';\nimport { OktaAuthBaseInterface } from '../base/types';\n\nexport function transactionStatus(sdk: OktaAuthHttpInterface, args) {\n args = addStateToken(sdk, args);\n return post(sdk, sdk.getIssuerOrigin() + '/api/v1/authn', args, { withCredentials: true });\n}\n\nexport function resumeTransaction(sdk: OktaAuthHttpInterface, tx: AuthnTransactionAPI, args) {\n if (!args || !args.stateToken) {\n var stateToken = getSavedStateToken(sdk);\n if (stateToken) {\n args = {\n stateToken: stateToken\n };\n } else {\n return Promise.reject(new AuthSdkError('No transaction to resume'));\n }\n }\n return transactionStatus(sdk, args)\n .then(function(res) {\n return tx.createTransaction(res);\n });\n}\n\nexport function introspectAuthn (sdk: OktaAuthHttpInterface, tx: AuthnTransactionAPI, args) {\n if (!args || !args.stateToken) {\n var stateToken = getSavedStateToken(sdk);\n if (stateToken) {\n args = {\n stateToken: stateToken\n };\n } else {\n return Promise.reject(new AuthSdkError('No transaction to evaluate'));\n }\n }\n return transactionStep(sdk, args)\n .then(function (res) {\n return tx.createTransaction(res);\n });\n}\n\nexport function transactionStep(sdk: OktaAuthHttpInterface, args) {\n args = addStateToken(sdk, args);\n // v1 pipeline introspect API\n return post(sdk, sdk.getIssuerOrigin() + '/api/v1/authn/introspect', args, { withCredentials: true });\n}\n\nexport function transactionExists(sdk: OktaAuthBaseInterface<OktaAuthStorageOptions>) {\n // We have a cookie state token\n return !!getSavedStateToken(sdk);\n}\n\nexport function postToTransaction(sdk: OktaAuthHttpInterface, tx: AuthnTransactionAPI, url: string, args, options?) {\n options = Object.assign({ withCredentials: true }, options);\n return post(sdk, url, args, options)\n .then(function(res) {\n return tx.createTransaction(res);\n });\n}\n\nexport function getSavedStateToken(sdk: OktaAuthBaseInterface<OktaAuthStorageOptions>) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const storage = sdk.options.storageUtil!.storage;\n return storage.get(STATE_TOKEN_KEY_NAME);\n}\n","import { OktaAuthHttpInterface } from '../../http/types';\nimport { find, omit, toQueryString } from '../../util';\nimport AuthSdkError from '../../errors/AuthSdkError';\nimport { get } from '../../http';\nimport { AuthnTransactionAPI, AuthnTransactionState } from '../types';\nimport { postToTransaction } from '../api';\nimport { addStateToken } from './stateToken';\n\n\n// query parameters to post url\ninterface PostToTransactionParams {\n autoPush?: boolean;\n rememberDevice?: boolean;\n updatePhone?: boolean;\n}\n\n// eslint-disable-next-line max-params\nexport function link2fn(sdk: OktaAuthHttpInterface, tx: AuthnTransactionAPI, res, obj, link, ref) {\n if (Array.isArray(link)) {\n return function(name, opts?) {\n if (!name) {\n throw new AuthSdkError('Must provide a link name');\n }\n\n var lk = find(link, {name: name});\n if (!lk) {\n throw new AuthSdkError('No link found for that name');\n }\n\n return link2fn(sdk, tx, res, obj, lk, ref)(opts);\n };\n\n } else if (link.hints &&\n link.hints.allow &&\n link.hints.allow.length === 1) {\n var method = link.hints.allow[0];\n switch (method) {\n\n case 'GET':\n return function() {\n return get(sdk, link.href, { withCredentials: true });\n };\n\n case 'POST':\n // eslint-disable-next-line max-statements,complexity\n return function(opts: AuthnTransactionState) {\n if (ref && ref.isPolling) {\n ref.isPolling = false;\n }\n\n var data = addStateToken(res, opts);\n\n if (res.status === 'MFA_ENROLL' || res.status === 'FACTOR_ENROLL') {\n // Add factorType and provider\n Object.assign(data, {\n factorType: obj.factorType,\n provider: obj.provider\n });\n }\n\n var params = {} as PostToTransactionParams;\n var autoPush = data.autoPush;\n if (autoPush !== undefined) {\n if (typeof autoPush === 'function') {\n try {\n params.autoPush = !!autoPush();\n }\n catch (e) {\n return Promise.reject(new AuthSdkError('AutoPush resulted in an error.'));\n }\n }\n else if (autoPush !== null) {\n params.autoPush = !!autoPush;\n }\n data = omit(data, 'autoPush');\n }\n\n var rememberDevice = data.rememberDevice;\n if (rememberDevice !== undefined) {\n if (typeof rememberDevice === 'function') {\n try {\n params.rememberDevice = !!rememberDevice();\n }\n catch (e) {\n return Promise.reject(new AuthSdkError('RememberDevice resulted in an error.'));\n }\n }\n else if (rememberDevice !== null) {\n params.rememberDevice = !!rememberDevice;\n }\n data = omit(data, 'rememberDevice');\n\n } else if (data.profile &&\n data.profile.updatePhone !== undefined) {\n if (data.profile.updatePhone) {\n params.updatePhone = true;\n }\n data.profile = omit(data.profile, 'updatePhone');\n }\n var href = link.href + toQueryString(params);\n return postToTransaction(sdk, tx, href, data);\n };\n }\n }\n}\n\n\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport CustomError from './CustomError';\n\nexport default class AuthPollStopError extends CustomError {\n constructor() {\n const message = 'The poll was stopped by the sdk';\n super(message);\n }\n}\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n *\n */\n\nimport { post } from '../../http';\nimport { isNumber, isObject, getLink, toQueryString, delay as delayFn } from '../../util';\nimport { DEFAULT_POLLING_DELAY } from '../../constants';\nimport AuthSdkError from '../../errors/AuthSdkError';\nimport AuthPollStopError from '../../errors/AuthPollStopError';\nimport { AuthnTransactionState } from '../types';\nimport { getStateToken } from './stateToken';\n\ninterface PollOptions {\n delay?: number;\n rememberDevice?: boolean;\n autoPush?: boolean;\n transactionCallBack?: (AuthnTransactionState) => void;\n}\n\nexport function getPollFn(sdk, res: AuthnTransactionState, ref) {\n return function (options: PollOptions | number) {\n var delay;\n var rememberDevice;\n var autoPush;\n var transactionCallBack;\n\n if (isNumber(options)) {\n delay = options;\n } else if (isObject(options)) {\n options = options as PollOptions;\n delay = options.delay;\n rememberDevice = options.rememberDevice;\n autoPush = options.autoPush;\n transactionCallBack = options.transactionCallBack;\n }\n\n if (!delay && delay !== 0) {\n delay = DEFAULT_POLLING_DELAY;\n }\n\n // Get the poll function\n var pollLink = getLink(res, 'next', 'poll');\n // eslint-disable-next-line complexity\n function pollFn() {\n var opts = {} as PollOptions;\n if (typeof autoPush === 'function') {\n try {\n opts.autoPush = !!autoPush();\n }\n catch (e) {\n return Promise.reject(new AuthSdkError('AutoPush resulted in an error.'));\n }\n }\n else if (autoPush !== undefined && autoPush !== null) {\n opts.autoPush = !!autoPush;\n }\n if (typeof rememberDevice === 'function') {\n try {\n opts.rememberDevice = !!rememberDevice();\n }\n catch (e) {\n return Promise.reject(new AuthSdkError('RememberDevice resulted in an error.'));\n }\n }\n else if (rememberDevice !== undefined && rememberDevice !== null) {\n opts.rememberDevice = !!rememberDevice;\n }\n\n var href = pollLink.href + toQueryString(opts);\n return post(sdk, href, getStateToken(res), {\n saveAuthnState: false,\n withCredentials: true\n });\n }\n\n ref.isPolling = true;\n\n var retryCount = 0;\n var recursivePoll = function () {\n // If the poll was manually stopped during the delay\n if (!ref.isPolling) {\n return Promise.reject(new AuthPollStopError());\n }\n return pollFn()\n .then(function (pollRes) {\n // Reset our retry counter on success\n retryCount = 0;\n\n // If we're still waiting\n if (pollRes.factorResult && pollRes.factorResult === 'WAITING') {\n\n // If the poll was manually stopped while the pollFn was called\n if (!ref.isPolling) {\n throw new AuthPollStopError();\n }\n\n if (typeof transactionCallBack === 'function') {\n transactionCallBack(pollRes);\n }\n\n // Continue poll\n return delayFn(delay).then(recursivePoll);\n\n } else {\n // Any non-waiting result, even if polling was stopped\n // during a request, will return\n ref.isPolling = false;\n return sdk.tx.createTransaction(pollRes);\n }\n })\n .catch(function(err) {\n // Exponential backoff, up to 16 seconds\n if (err.xhr &&\n (err.xhr.status === 0 || err.xhr.status === 429) &&\n retryCount <= 4) {\n var delayLength = Math.pow(2, retryCount) * 1000;\n retryCount++;\n return delayFn(delayLength)\n .then(recursivePoll);\n }\n throw err;\n });\n };\n return recursivePoll()\n .catch(function(err) {\n ref.isPolling = false;\n throw err;\n });\n };\n}\n","import { OktaAuthHttpInterface } from '../../http/types';\nimport { AuthnTransactionFunctions, AuthnTransactionAPI } from '../types';\nimport { link2fn } from './link2fn';\nimport { getPollFn } from './poll';\n\nexport function links2fns(sdk: OktaAuthHttpInterface, tx: AuthnTransactionAPI, res, obj, ref) {\n var fns = {} as AuthnTransactionFunctions;\n for (var linkName in obj._links) {\n if (!Object.prototype.hasOwnProperty.call(obj._links, linkName)) {\n continue;\n }\n\n var link = obj._links[linkName];\n \n if (linkName === 'next') {\n linkName = link.name;\n }\n\n if (link.type) {\n fns[linkName] = link;\n continue;\n }\n\n switch (linkName) {\n // poll is only found at the transaction\n // level, so we don't need to pass the link\n case 'poll':\n fns.poll = getPollFn(sdk, res, ref);\n break;\n\n default:\n var fn = link2fn(sdk, tx, res, obj, link, ref);\n if (fn) {\n fns[linkName] = fn;\n }\n }\n }\n return fns;\n}\n","/* eslint-disable complexity */\nimport { OktaAuthHttpInterface } from '../../http/types';\nimport { clone, isObject, omit } from '../../util';\nimport { AuthnTransactionAPI } from '../types';\nimport { links2fns } from './links2fns';\n\nexport function flattenEmbedded(sdk: OktaAuthHttpInterface, tx: AuthnTransactionAPI, res, obj, ref) {\n obj = obj || res;\n obj = clone(obj);\n\n if (Array.isArray(obj)) {\n var objArr = [];\n for (var o = 0, ol = obj.length; o < ol; o++) {\n objArr.push(flattenEmbedded(sdk, tx, res, obj[o], ref) as never);\n }\n return objArr;\n }\n\n var embedded = obj._embedded || {};\n\n for (var key in embedded) {\n if (!Object.prototype.hasOwnProperty.call(embedded, key)) {\n continue;\n }\n\n // Flatten any nested _embedded objects\n if (isObject(embedded[key]) || Array.isArray(embedded[key])) {\n embedded[key] = flattenEmbedded(sdk, tx, res, embedded[key], ref);\n }\n }\n\n // Convert any links on the embedded object\n var fns = links2fns(sdk, tx, res, obj, ref);\n Object.assign(embedded, fns);\n\n obj = omit(obj, '_embedded', '_links');\n Object.assign(obj, embedded);\n return obj;\n}\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n *\n */\n\nimport { OktaAuthHttpInterface } from '../http/types';\nimport {\n AuthnTransactionFunction,\n AuthnTransaction,\n AuthnTransactionAPI,\n AuthnTransactionState\n} from './types';\nimport { flattenEmbedded } from './util/flattenEmbedded';\n\nexport class AuthnTransactionImpl implements AuthnTransaction {\n next?: AuthnTransactionFunction;\n cancel?: AuthnTransactionFunction;\n skip?: AuthnTransactionFunction;\n unlock?: AuthnTransactionFunction;\n changePassword?: AuthnTransactionFunction;\n resetPassword?: AuthnTransactionFunction;\n answer?: AuthnTransactionFunction;\n recovery?: AuthnTransactionFunction;\n verify?: AuthnTransactionFunction;\n resend?: AuthnTransactionFunction;\n activate?: AuthnTransactionFunction;\n poll?: AuthnTransactionFunction;\n prev?: AuthnTransactionFunction;\n\n data?: AuthnTransactionState;\n stateToken?: string;\n sessionToken?: string;\n status: string;\n user?: Record<string, any>;\n factor?: Record<string, any>;\n factors?: Array<Record<string, any> >;\n policy?: Record<string, any>;\n scopes?: Array<Record<string, any> >;\n target?: Record<string, any>;\n authentication?: Record<string, any>;\n constructor(sdk: OktaAuthHttpInterface, tx: AuthnTransactionAPI, res: AuthnTransactionState | null = null) {\n this.data = undefined;\n this.status = undefined as unknown as string;\n if (res) {\n this.data = res;\n\n // Parse response from Authn V1\n Object.assign(this, flattenEmbedded(sdk, tx, res, res, {}));\n delete this.stateToken;\n\n // RECOVERY_CHALLENGE has some responses without _links.\n // Without _links, we emulate cancel to make it intuitive\n // to return to the starting state. We may remove this\n // when OKTA-75434 is resolved\n if (res.status === 'RECOVERY_CHALLENGE' && !res._links) {\n this.cancel = function() {\n return Promise.resolve(tx.createTransaction());\n };\n }\n }\n }\n}\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n *\n */\n\nimport { RequestData, RequestOptions, OktaAuthHttpInterface } from '../http/types';\nimport {\n introspectAuthn,\n transactionStatus,\n transactionExists,\n resumeTransaction,\n postToTransaction\n} from './api';\nimport { AuthnTransactionImpl } from './AuthnTransactionImpl';\nimport { AuthnTransactionAPI, AuthnTransactionState } from './types';\n\n// Factory\nexport function createAuthnTransactionAPI(sdk: OktaAuthHttpInterface): AuthnTransactionAPI {\n const tx: AuthnTransactionAPI = {\n status: transactionStatus.bind(null, sdk),\n resume(args) {\n return resumeTransaction(sdk, tx, args);\n },\n exists: transactionExists.bind(null, sdk),\n introspect(args) {\n return introspectAuthn(sdk, tx, args);\n },\n createTransaction: (res?: AuthnTransactionState) => {\n return new AuthnTransactionImpl(sdk, tx, res);\n },\n postToTransaction: (url: string, args?: RequestData, options?: RequestOptions) => {\n return postToTransaction(sdk, tx, url, args, options);\n }\n };\n return tx;\n}\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n\nimport { AuthSdkError } from '../errors';\nimport { isFingerprintSupported } from '../features';\nimport {\n addListener,\n removeListener\n} from '../oidc';\nimport { FingerprintOptions } from '../authn/types';\nimport { OktaAuthHttpInterface } from '../http/types';\n\nexport default function fingerprint(sdk: OktaAuthHttpInterface, options?: FingerprintOptions): Promise<string> {\n options = options || {};\n\n if (!isFingerprintSupported()) {\n return Promise.reject(new AuthSdkError('Fingerprinting is not supported on this device'));\n }\n\n var timeout;\n var iframe;\n var listener;\n var promise = new Promise(function (resolve, reject) {\n iframe = document.createElement('iframe');\n iframe.style.display = 'none';\n\n // eslint-disable-next-line complexity\n listener = function listener(e) {\n if (!e || !e.data || e.origin !== sdk.getIssuerOrigin()) {\n return;\n }\n\n try {\n var msg = JSON.parse(e.data);\n } catch (err) {\n // iframe messages should all be parsable\n // skip not parsable messages come from other sources in same origin (browser extensions)\n // TODO: add namespace flag in okta-core to distinguish messages that come from other sources\n return;\n }\n\n if (!msg) { return; }\n if (msg.type === 'FingerprintAvailable') {\n return resolve(msg.fingerprint as string);\n }\n if (msg.type === 'FingerprintServiceReady') {\n e.source.postMessage(JSON.stringify({\n type: 'GetFingerprint'\n }), e.origin);\n }\n };\n addListener(window, 'message', listener);\n\n iframe.src = sdk.getIssuerOrigin() + '/auth/services/devicefingerprint';\n document.body.appendChild(iframe);\n\n timeout = setTimeout(function() {\n reject(new AuthSdkError('Fingerprinting timed out'));\n }, options?.timeout || 15000);\n });\n\n return promise.finally(function() {\n clearTimeout(timeout);\n removeListener(window, 'message', listener);\n if (document.body.contains(iframe)) {\n iframe.parentElement.removeChild(iframe);\n }\n }) as Promise<string>;\n}\n","/* eslint-disable max-statements */\n/* eslint-disable complexity */\n/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { \n clone,\n} from '../util';\nimport fingerprint from '../browser/fingerprint';\nimport {\n FingerprintAPI,\n SigninWithCredentialsOptions,\n ForgotPasswordOptions,\n VerifyRecoveryTokenOptions,\n SigninOptions,\n OktaAuthTxInterface,\n AuthnTransaction,\n AuthnTransactionAPI\n} from './types';\nimport {\n createAuthnTransactionAPI,\n} from './factory';\nimport { StorageManagerInterface } from '../storage/types';\nimport { OktaAuthHttpInterface, OktaAuthHttpOptions } from '../http/types';\nimport { OktaAuthConstructor } from '../base/types';\n\nexport function mixinAuthn\n<\n S extends StorageManagerInterface = StorageManagerInterface,\n O extends OktaAuthHttpOptions = OktaAuthHttpOptions,\n TBase extends OktaAuthConstructor<OktaAuthHttpInterface<S, O>>\n = OktaAuthConstructor<OktaAuthHttpInterface<S, O>>\n>\n(Base: TBase): TBase & OktaAuthConstructor<OktaAuthTxInterface<S, O>>\n{\n return class OktaAuthTx extends Base implements OktaAuthTxInterface<S, O> {\n tx: AuthnTransactionAPI; // legacy, may be removed in future version\n authn: AuthnTransactionAPI;\n fingerprint: FingerprintAPI;\n\n constructor(...args: any[]) {\n super(...args);\n\n this.authn = this.tx = createAuthnTransactionAPI(this);\n \n // Fingerprint API\n this.fingerprint = fingerprint.bind(null, this);\n }\n\n // Authn V1\n async signIn(opts: SigninOptions): Promise<AuthnTransaction> {\n opts = clone(opts || {});\n const _postToTransaction = (options?) => {\n delete opts.sendFingerprint;\n return this.tx.postToTransaction('/api/v1/authn', opts, options);\n };\n if (!opts.sendFingerprint) {\n return _postToTransaction();\n }\n return this.fingerprint()\n .then(function(fingerprint) {\n return _postToTransaction({\n headers: {\n 'X-Device-Fingerprint': fingerprint\n }\n });\n });\n }\n\n // Authn V1\n async signInWithCredentials(opts: SigninWithCredentialsOptions): Promise<AuthnTransaction> {\n return this.signIn(opts);\n }\n\n // { username, (relayState) }\n forgotPassword(opts): Promise<AuthnTransaction> {\n return this.tx.postToTransaction('/api/v1/authn/recovery/password', opts);\n }\n\n // { username, (relayState) }\n unlockAccount(opts: ForgotPasswordOptions): Promise<AuthnTransaction> {\n return this.tx.postToTransaction('/api/v1/authn/recovery/unlock', opts);\n }\n\n // { recoveryToken }\n verifyRecoveryToken(opts: VerifyRecoveryTokenOptions): Promise<AuthnTransaction> {\n return this.tx.postToTransaction('/api/v1/authn/recovery/token', opts);\n }\n\n };\n}\n","import {\n OktaAuthOptionsConstructor,\n} from '../base';\n\nimport {\n IdxStorageManagerConstructor,\n IdxTransactionManagerConstructor,\n OktaAuthIdxOptions,\n createIdxTransactionManager,\n createOktaAuthIdx,\n createIdxStorageManager,\n createIdxOptionsConstructor\n} from '../idx';\n\nimport { mixinMyAccount } from '../myaccount';\nimport { mixinAuthn } from '../authn';\n\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface OktaAuthOptions extends OktaAuthIdxOptions {}\n\nconst OptionsConstructor: OktaAuthOptionsConstructor<OktaAuthOptions> = createIdxOptionsConstructor();\nconst StorageManager: IdxStorageManagerConstructor = createIdxStorageManager();\nconst TransactionManager: IdxTransactionManagerConstructor = createIdxTransactionManager();\n\n// Default bundle includes everything\nconst WithIdx = createOktaAuthIdx(StorageManager, OptionsConstructor, TransactionManager);\nconst WithMyAccount = mixinMyAccount(WithIdx);\nconst WithAuthn = mixinAuthn(WithMyAccount);\n\nclass OktaAuth extends WithAuthn {\n constructor(options: OktaAuthOptions) {\n super(options);\n }\n}\n\nexport default OktaAuth;\nexport { OktaAuth };\nexport * from './common';\nexport * from '../idx';\nexport * from '../myaccount';\nexport * from '../authn';\n","import { EventBus } from '@primeuix/utils/eventbus';\n\nconst ThemeService = EventBus();\n\nexport default ThemeService;\n","import { getKeyValue, isArray, isNotEmpty, isNumber, isObject, isString, matchRegex, toKebabCase } from '@primeuix/utils/object';\n\nexport function toTokenKey(str: string): string {\n return isString(str) ? str.replace(/[A-Z]/g, (c: string, i: number) => (i === 0 ? c : '.' + c.toLowerCase())).toLowerCase() : str;\n}\n\nexport function merge(value1: any, value2: any): void {\n if (isArray(value1)) {\n value1.push(...(value2 || []));\n } else if (isObject(value1)) {\n Object.assign(value1, value2);\n }\n}\n\nexport function toValue(value: any): any {\n // Check for Figma (value-type)\n return isObject(value) && value.hasOwnProperty('value') && value.hasOwnProperty('type') ? value.value : value;\n}\n\nexport function toUnit(value: string, variable: string = ''): string {\n const excludedProperties = ['opacity', 'z-index', 'line-height', 'font-weight', 'flex', 'flex-grow', 'flex-shrink', 'order'];\n\n if (!excludedProperties.some((property) => variable.endsWith(property))) {\n const val = `${value}`.trim();\n const valArr = val.split(' ');\n\n return valArr.map((v) => (isNumber(v) ? `${v}px` : v)).join(' ');\n }\n\n return value;\n}\n\nexport function toNormalizePrefix(prefix: string): string {\n return prefix.replaceAll(/ /g, '').replace(/[^\\w]/g, '-');\n}\n\nexport function toNormalizeVariable(prefix: string = '', variable: string = ''): string {\n return toNormalizePrefix(`${isString(prefix, false) && isString(variable, false) ? `${prefix}-` : prefix}${variable}`);\n}\n\nexport function getVariableName(prefix: string = '', variable: string = ''): string {\n return `--${toNormalizeVariable(prefix, variable)}`;\n}\n\nexport function getVariableValue(value: any, variable: string = '', prefix: string = '', excludedKeyRegexes: RegExp[] = [], fallback?: string): string | undefined {\n if (isString(value)) {\n const regex = /{([^}]*)}/g;\n const val = value.trim();\n\n if (matchRegex(val, regex)) {\n const _val = val.replaceAll(regex, (v: string) => {\n const path = v.replace(/{|}/g, '');\n const keys = path.split('.').filter((_v: string) => !excludedKeyRegexes.some((_r) => matchRegex(_v, _r)));\n\n return `var(${getVariableName(prefix, toKebabCase(keys.join('-')))}${isNotEmpty(fallback) ? `, ${fallback}` : ''})`;\n });\n\n const calculationRegex = /(\\d+\\s+[\\+\\-\\*\\/]\\s+\\d+)/g;\n const cleanedVarRegex = /var\\([^)]+\\)/g;\n\n return matchRegex(_val.replace(cleanedVarRegex, '0'), calculationRegex) ? `calc(${_val})` : _val;\n }\n\n return toUnit(val, variable);\n } else if (isNumber(value)) {\n return toUnit(value, variable);\n }\n\n return undefined;\n}\n\nexport function getComputedValue(obj = {}, value: any): any {\n if (isString(value)) {\n const regex = /{([^}]*)}/g;\n const val = value.trim();\n\n return matchRegex(val, regex) ? val.replaceAll(regex, (v: string) => getKeyValue(obj, v.replace(/{|}/g, ''))) : val;\n } else if (isNumber(value)) {\n return value;\n }\n\n return undefined;\n}\n\nexport function setProperty(properties: string[], key: string, value?: string) {\n if (isString(key, false)) {\n properties.push(`${key}:${value};`);\n }\n}\n\nexport function getRule(selector: string, properties: string): string {\n if (selector) {\n return `${selector}{${properties}}`;\n }\n\n return '';\n}\n","function normalizeColor(color: string): string {\n if (color.length === 4) {\n return `#${color[1]}${color[1]}${color[2]}${color[2]}${color[3]}${color[3]}`;\n }\n\n return color;\n}\n\nfunction hexToRgb(hex: string) {\n var bigint = parseInt(hex.substring(1), 16);\n var r = (bigint >> 16) & 255;\n var g = (bigint >> 8) & 255;\n var b = bigint & 255;\n\n return { r, g, b };\n}\n\nfunction rgbToHex(r: number, g: number, b: number) {\n return `#${r.toString(16).padStart(2, '0')}${g.toString(16).padStart(2, '0')}${b.toString(16).padStart(2, '0')}`;\n}\n\nexport default (color1: string, color2: string, weight: number): string => {\n color1 = normalizeColor(color1);\n color2 = normalizeColor(color2);\n\n var p = weight / 100;\n var w = p * 2 - 1;\n var w1 = (w + 1) / 2.0;\n var w2 = 1 - w1;\n\n var rgb1 = hexToRgb(color1);\n var rgb2 = hexToRgb(color2);\n\n var r = Math.round(rgb1.r * w1 + rgb2.r * w2);\n var g = Math.round(rgb1.g * w1 + rgb2.g * w2);\n var b = Math.round(rgb1.b * w1 + rgb2.b * w2);\n\n return rgbToHex(r, g, b);\n};\n","import { matchRegex } from '@primeuix/utils/object';\nimport Theme from '../config/index';\nimport { getVariableValue } from '../utils/index';\n\nexport const $dt = (tokenPath: string): { name: string; variable: string; value: any } => {\n const theme = Theme.getTheme();\n\n const variable = dtwt(theme, tokenPath, undefined, 'variable');\n const name = variable.match(/--[\\w-]+/g)?.[0];\n const value = dtwt(theme, tokenPath, undefined, 'value');\n\n return {\n name,\n variable,\n value\n };\n};\n\nexport const dt = (...args: any[]) => {\n // @ts-ignore\n return dtwt(Theme.getTheme(), ...args);\n};\n\nexport const dtwt = (theme: any = {}, tokenPath: string, fallback?: string, type: string = 'variable') => {\n if (tokenPath) {\n const { variable: VARIABLE, options: OPTIONS } = Theme.defaults || {};\n const { prefix, transform } = theme?.options || OPTIONS || {};\n const regex = /{([^}]*)}/g;\n const token = matchRegex(tokenPath, regex) ? tokenPath : `{${tokenPath}}`;\n const isStrictTransform = type === 'value' || transform === 'strict'; // @todo - TRANSFORM: strict | lenient(default)\n\n return isStrictTransform ? Theme.getTokenValue(tokenPath) : getVariableValue(token, undefined, prefix, [VARIABLE.excludedKeyRegex], fallback);\n }\n\n return '';\n};\n","import { isObject, matchRegex, toKebabCase } from '@primeuix/utils/object';\nimport Theme from '../config/index';\nimport { getRule, getVariableName, getVariableValue, merge, setProperty, toNormalizeVariable, toValue } from '../utils/index';\n\nexport default function (theme: any, options: any = {}): { value: any[]; tokens: any[]; declarations: string; css: string } {\n const VARIABLE = Theme.defaults.variable;\n const { prefix = VARIABLE.prefix, selector = VARIABLE.selector, excludedKeyRegex = VARIABLE.excludedKeyRegex } = options;\n\n const _toVariables = (_theme: any, _prefix = '') => {\n return Object.entries(_theme).reduce(\n (acc: any, [key, value]) => {\n const px = matchRegex(key, excludedKeyRegex) ? toNormalizeVariable(_prefix) : toNormalizeVariable(_prefix, toKebabCase(key));\n const v = toValue(value);\n\n if (isObject(v)) {\n const { variables, tokens } = _toVariables(v, px);\n\n merge(acc['tokens'], tokens);\n merge(acc['variables'], variables);\n } else {\n acc['tokens'].push((prefix ? px.replace(`${prefix}-`, '') : px).replaceAll('-', '.') as string);\n setProperty(acc['variables'], getVariableName(px), getVariableValue(v, px, prefix, [excludedKeyRegex]));\n }\n\n return acc;\n },\n { variables: [], tokens: [] }\n );\n };\n\n const { variables, tokens } = _toVariables(theme, prefix);\n\n return {\n value: variables,\n tokens,\n declarations: variables.join(''),\n css: getRule(selector, variables.join(''))\n };\n}\n","import { isEmpty, isNotEmpty, isObject, matchRegex, minifyCSS, resolve, toTokenKey } from '@primeuix/utils/object';\nimport { toVariables } from '../helpers/index';\nimport { getRule } from './sharedUtils';\n\nexport default {\n regex: {\n rules: {\n class: {\n pattern: /^\\.([a-zA-Z][\\w-]*)$/,\n resolve(value: string) {\n return { type: 'class', selector: value, matched: this.pattern.test(value.trim()) };\n }\n },\n attr: {\n pattern: /^\\[(.*)\\]$/,\n resolve(value: string) {\n return { type: 'attr', selector: `:root${value}`, matched: this.pattern.test(value.trim()) };\n }\n },\n media: {\n pattern: /^@media (.*)$/,\n resolve(value: string) {\n return { type: 'media', selector: `${value}{:root{[CSS]}}`, matched: this.pattern.test(value.trim()) };\n }\n },\n system: {\n pattern: /^system$/,\n resolve(value: string) {\n return { type: 'system', selector: '@media (prefers-color-scheme: dark){:root{[CSS]}}', matched: this.pattern.test(value.trim()) };\n }\n },\n custom: {\n resolve(value: string) {\n return { type: 'custom', selector: value, matched: true };\n }\n }\n },\n resolve(value: any) {\n const rules = Object.keys(this.rules)\n .filter((k) => k !== 'custom')\n .map((r) => (this.rules as any)[r]);\n\n return [value].flat().map((v) => rules.map((r) => r.resolve(v)).find((rr) => rr.matched) ?? this.rules.custom.resolve(v));\n }\n },\n _toVariables(theme: any, options: any) {\n return toVariables(theme, { prefix: options?.prefix });\n },\n getCommon({ name = '', theme = {}, params, set, defaults }: any) {\n const { preset, options } = theme;\n let primitive_css, primitive_tokens, semantic_css, semantic_tokens;\n\n if (isNotEmpty(preset)) {\n const { primitive, semantic } = preset;\n const { colorScheme, ...sRest } = semantic || {};\n const { dark, ...csRest } = colorScheme || {};\n const prim_var: any = isNotEmpty(primitive) ? this._toVariables({ primitive }, options) : {};\n const sRest_var: any = isNotEmpty(sRest) ? this._toVariables({ semantic: sRest }, options) : {};\n const csRest_var: any = isNotEmpty(csRest) ? this._toVariables({ light: csRest }, options) : {};\n const dark_var: any = isNotEmpty(dark) ? this._toVariables({ dark }, options) : {};\n\n const [prim_css, prim_tokens] = [prim_var.declarations ?? '', prim_var.tokens];\n const [sRest_css, sRest_tokens] = [sRest_var.declarations ?? '', sRest_var.tokens || []];\n const [csRest_css, csRest_tokens] = [csRest_var.declarations ?? '', csRest_var.tokens || []];\n const [dark_css, dark_tokens] = [dark_var.declarations ?? '', dark_var.tokens || []];\n\n primitive_css = this.transformCSS(name, prim_css, 'light', 'variable', options, set, defaults);\n primitive_tokens = prim_tokens;\n\n const semantic_light_css = this.transformCSS(name, `${sRest_css}${csRest_css}color-scheme:light`, 'light', 'variable', options, set, defaults);\n const semantic_dark_css = this.transformCSS(name, `${dark_css}color-scheme:dark`, 'dark', 'variable', options, set, defaults);\n\n semantic_css = `${semantic_light_css}${semantic_dark_css}`;\n semantic_tokens = [...new Set([...sRest_tokens, ...csRest_tokens, ...dark_tokens])];\n }\n\n return {\n primitive: {\n css: primitive_css,\n tokens: primitive_tokens\n },\n semantic: {\n css: semantic_css,\n tokens: semantic_tokens\n }\n };\n },\n getPreset({ name = '', preset = {}, options, params, set, defaults, selector }: any) {\n const _name = name.replace('-directive', '');\n const { colorScheme, ...vRest } = preset;\n const { dark, ...csRest } = colorScheme || {};\n const vRest_var: any = isNotEmpty(vRest) ? this._toVariables({ [_name]: vRest }, options) : {};\n const csRest_var: any = isNotEmpty(csRest) ? this._toVariables({ [_name]: csRest }, options) : {};\n const dark_var: any = isNotEmpty(dark) ? this._toVariables({ [_name]: dark }, options) : {};\n\n const [vRest_css, vRest_tokens] = [vRest_var.declarations ?? '', vRest_var.tokens || []];\n const [csRest_css, csRest_tokens] = [csRest_var.declarations ?? '', csRest_var.tokens || []];\n const [dark_css, dark_tokens] = [dark_var.declarations ?? '', dark_var.tokens || []];\n const tokens = [...new Set([...vRest_tokens, ...csRest_tokens, ...dark_tokens])];\n\n const light_variable_css = this.transformCSS(_name, `${vRest_css}${csRest_css}`, 'light', 'variable', options, set, defaults, selector);\n const dark_variable_css = this.transformCSS(_name, dark_css, 'dark', 'variable', options, set, defaults, selector);\n\n return {\n css: `${light_variable_css}${dark_variable_css}`,\n tokens\n };\n },\n getPresetC({ name = '', theme = {}, params, set, defaults }: any) {\n const { preset, options } = theme;\n const cPreset = preset?.components?.[name];\n\n return this.getPreset({ name, preset: cPreset, options, params, set, defaults });\n },\n getPresetD({ name = '', theme = {}, params, set, defaults }: any) {\n const dName = name.replace('-directive', '');\n const { preset, options } = theme;\n const dPreset = preset?.directives?.[dName];\n\n return this.getPreset({ name: dName, preset: dPreset, options, params, set, defaults });\n },\n getColorSchemeOption(options: any, defaults: any) {\n return this.regex.resolve(options.darkModeSelector ?? defaults.options.darkModeSelector);\n },\n getLayerOrder(name: string, options: any = {}, params: any, defaults: any) {\n const { cssLayer } = options;\n\n if (cssLayer) {\n const order = resolve(cssLayer.order || 'primeui', params);\n\n return `@layer ${order}`;\n }\n\n return '';\n },\n getCommonStyleSheet({ name = '', theme = {}, params, props = {}, set, defaults }: any) {\n const common = this.getCommon({ name, theme, params, set, defaults });\n const _props = Object.entries(props)\n .reduce((acc: any, [k, v]) => acc.push(`${k}=\"${v}\"`) && acc, [])\n .join(' ');\n\n return Object.entries(common || {})\n .reduce((acc: any, [key, value]) => {\n if (value?.css) {\n const _css = minifyCSS(value?.css);\n const id = `${key}-variables`;\n\n acc.push(`<style type=\"text/css\" data-primevue-style-id=\"${id}\" ${_props}>${_css}</style>`); // @todo data-primevue -> data-primeui check in primevue usestyle\n }\n\n return acc;\n }, [])\n .join('');\n },\n getStyleSheet({ name = '', theme = {}, params, props = {}, set, defaults }: any) {\n const options = { name, theme, params, set, defaults };\n const preset_css = (name.includes('-directive') ? this.getPresetD(options) : this.getPresetC(options))?.css;\n const _props = Object.entries(props)\n .reduce((acc: any, [k, v]) => acc.push(`${k}=\"${v}\"`) && acc, [])\n .join(' ');\n\n return preset_css ? `<style type=\"text/css\" data-primevue-style-id=\"${name}-variables\" ${_props}>${minifyCSS(preset_css)}</style>` : ''; // @todo check\n },\n createTokens(obj: any = {}, defaults: any, parentKey: string = '', parentPath: string = '', tokens: any = {}) {\n Object.entries(obj).forEach(([key, value]) => {\n const currentKey = matchRegex(key, defaults.variable.excludedKeyRegex) ? parentKey : parentKey ? `${parentKey}.${toTokenKey(key)}` : toTokenKey(key);\n const currentPath = parentPath ? `${parentPath}.${key}` : key;\n\n if (isObject(value)) {\n this.createTokens(value, defaults, currentKey, currentPath, tokens);\n } else {\n tokens[currentKey] ||= {\n paths: [],\n computed(colorScheme: string, tokenPathMap: any = {}) {\n if (colorScheme) {\n const path = this.paths.find((p: any) => p.scheme === colorScheme) || this.paths.find((p: any) => p.scheme === 'none');\n\n return path?.computed(colorScheme, tokenPathMap['binding']);\n }\n\n return this.paths.map((p: any) => p.computed(p.scheme, tokenPathMap[p.scheme]));\n }\n };\n tokens[currentKey].paths.push({\n path: currentPath,\n value,\n scheme: currentPath.includes('colorScheme.light') ? 'light' : currentPath.includes('colorScheme.dark') ? 'dark' : 'none',\n computed(colorScheme: string, tokenPathMap: any = {}) {\n const regex = /{([^}]*)}/g;\n let computedValue: any = value;\n\n tokenPathMap['name'] = this.path;\n tokenPathMap['binding'] ||= {};\n\n if (matchRegex(value as string, regex)) {\n const val = (value as string).trim();\n const _val = val.replaceAll(regex, (v) => {\n const path = v.replace(/{|}/g, '');\n\n return tokens[path]?.computed(colorScheme, tokenPathMap)?.value;\n });\n\n const calculationRegex = /(\\d+\\w*\\s+[\\+\\-\\*\\/]\\s+\\d+\\w*)/g;\n const cleanedVarRegex = /var\\([^)]+\\)/g;\n\n computedValue = matchRegex(_val.replace(cleanedVarRegex, '0'), calculationRegex) ? `calc(${_val})` : _val;\n }\n\n isEmpty(tokenPathMap['binding']) && delete tokenPathMap['binding'];\n\n return {\n colorScheme,\n path: this.path,\n paths: tokenPathMap,\n value: computedValue.includes('undefined') ? undefined : computedValue\n };\n }\n });\n }\n });\n\n return tokens;\n },\n getTokenValue(tokens: any, path: string, defaults: any) {\n const normalizePath = (str: string) => {\n const strArr = str.split('.');\n\n return strArr.filter((s) => !matchRegex(s.toLowerCase(), defaults.variable.excludedKeyRegex)).join('.');\n };\n\n const token = normalizePath(path);\n const colorScheme = path.includes('colorScheme.light') ? 'light' : path.includes('colorScheme.dark') ? 'dark' : undefined;\n const computedValues = [tokens[token as any]?.computed(colorScheme)].flat().filter((computed) => computed);\n\n return computedValues.length === 1\n ? computedValues[0].value\n : computedValues.reduce((acc = {}, computed) => {\n const { colorScheme: cs, ...rest } = computed;\n\n acc[cs] = rest;\n\n return acc;\n }, undefined);\n },\n transformCSS(name: string, css: string, mode?: string, type?: string, options: any = {}, set?: any, defaults?: any, selector?: string) {\n if (isNotEmpty(css)) {\n const { cssLayer } = options;\n\n if (type !== 'style') {\n const colorSchemeOption = this.getColorSchemeOption(options, defaults);\n const _css = selector ? getRule(selector, css) : css;\n\n css =\n mode === 'dark'\n ? colorSchemeOption.reduce((acc, { selector: _selector }) => {\n if (isNotEmpty(_selector)) {\n acc += _selector.includes('[CSS]') ? _selector.replace('[CSS]', _css) : getRule(_selector, _css);\n }\n\n return acc;\n }, '')\n : getRule(selector ?? ':root', css);\n }\n\n if (cssLayer) {\n const layerOptions = {\n name: 'primeui',\n order: 'primeui'\n };\n\n isObject(cssLayer) && (layerOptions.name = resolve(cssLayer.name, { name, type }));\n\n if (isNotEmpty(layerOptions.name)) {\n css = getRule(`@layer ${layerOptions.name}`, css);\n set?.layerNames(layerOptions.name);\n }\n }\n\n return css;\n }\n\n return '';\n }\n};\n","import ThemeService from '../service/index';\nimport { ThemeUtils } from '../utils/index';\n\nexport default {\n defaults: {\n variable: {\n prefix: 'p',\n selector: ':root',\n excludedKeyRegex: /^(primitive|semantic|components|directives|variables|colorscheme|light|dark|common|root|states)$/gi\n },\n options: {\n prefix: 'p',\n darkModeSelector: 'system',\n cssLayer: false\n }\n },\n _theme: undefined,\n _layerNames: new Set(),\n _loadedStyleNames: new Set(),\n _loadingStyles: new Set(),\n _tokens: {},\n update(newValues: any = {}) {\n const { theme } = newValues;\n\n if (theme) {\n this._theme = {\n ...theme,\n options: {\n ...this.defaults.options,\n ...theme.options\n }\n };\n this._tokens = ThemeUtils.createTokens(this.preset, this.defaults);\n this.clearLoadedStyleNames();\n }\n },\n get theme(): any {\n return this._theme;\n },\n get preset() {\n return this.theme?.preset || {};\n },\n get options() {\n return this.theme?.options || {};\n },\n get tokens() {\n return this._tokens;\n },\n getTheme() {\n return this.theme;\n },\n setTheme(newValue: any) {\n this.update({ theme: newValue });\n ThemeService.emit('theme:change', newValue);\n },\n getPreset() {\n return this.preset;\n },\n setPreset(newValue: any) {\n this._theme = { ...this.theme, preset: newValue };\n this._tokens = ThemeUtils.createTokens(newValue, this.defaults);\n\n this.clearLoadedStyleNames();\n ThemeService.emit('preset:change', newValue);\n ThemeService.emit('theme:change', this.theme);\n },\n getOptions() {\n return this.options;\n },\n setOptions(newValue: any) {\n this._theme = { ...this.theme, options: newValue };\n\n this.clearLoadedStyleNames();\n ThemeService.emit('options:change', newValue);\n ThemeService.emit('theme:change', this.theme);\n },\n getLayerNames() {\n return [...this._layerNames];\n },\n setLayerNames(layerName: any) {\n this._layerNames.add(layerName);\n },\n getLoadedStyleNames() {\n return this._loadedStyleNames;\n },\n isStyleNameLoaded(name: string) {\n return this._loadedStyleNames.has(name);\n },\n setLoadedStyleName(name: string) {\n this._loadedStyleNames.add(name);\n },\n deleteLoadedStyleName(name: string) {\n this._loadedStyleNames.delete(name);\n },\n clearLoadedStyleNames() {\n this._loadedStyleNames.clear();\n },\n getTokenValue(tokenPath: string) {\n return ThemeUtils.getTokenValue(this.tokens, tokenPath, this.defaults);\n },\n getCommon(name = '', params: any) {\n return ThemeUtils.getCommon({ name, theme: this.theme, params, defaults: this.defaults, set: { layerNames: this.setLayerNames.bind(this) } });\n },\n getComponent(name = '', params: any) {\n const options = { name, theme: this.theme, params, defaults: this.defaults, set: { layerNames: this.setLayerNames.bind(this) } };\n\n return ThemeUtils.getPresetC(options);\n },\n getDirective(name = '', params: any) {\n const options = { name, theme: this.theme, params, defaults: this.defaults, set: { layerNames: this.setLayerNames.bind(this) } };\n\n return ThemeUtils.getPresetD(options);\n },\n getCustomPreset(name = '', preset: any, selector: string, params: any) {\n const options = { name, preset, options: this.options, selector, params, defaults: this.defaults, set: { layerNames: this.setLayerNames.bind(this) } };\n\n return ThemeUtils.getPreset(options);\n },\n getLayerOrderCSS(name = '') {\n return ThemeUtils.getLayerOrder(name, this.options, { names: this.getLayerNames() }, this.defaults);\n },\n transformCSS(name = '', css: string, type: string = 'style', mode?: string) {\n return ThemeUtils.transformCSS(name, css, mode, type, this.options, { layerNames: this.setLayerNames.bind(this) }, this.defaults);\n },\n getCommonStyleSheet(name = '', params: any, props = {}) {\n return ThemeUtils.getCommonStyleSheet({ name, theme: this.theme, params, props, defaults: this.defaults, set: { layerNames: this.setLayerNames.bind(this) } });\n },\n getStyleSheet(name: string, params: any, props = {}) {\n return ThemeUtils.getStyleSheet({ name, theme: this.theme, params, props, defaults: this.defaults, set: { layerNames: this.setLayerNames.bind(this) } });\n },\n onStyleMounted(name: string) {\n this._loadingStyles.add(name);\n },\n onStyleUpdated(name: string) {\n this._loadingStyles.add(name);\n },\n onStyleLoaded(event: any, { name }: { name: any }) {\n if (this._loadingStyles.size) {\n this._loadingStyles.delete(name);\n\n ThemeService.emit(`theme:${name}:load`, event); // Exp: ThemeService.emit('theme:panel-style:load', event)\n !this._loadingStyles.size && ThemeService.emit('theme:load');\n }\n }\n};\n","export default function hasClass(element: Element, className: string): boolean {\n if (element) {\n if (element.classList) return element.classList.contains(className);\n else return new RegExp('(^| )' + className + '( |$)', 'gi').test(element.className);\n }\n\n return false;\n}\n","import hasClass from './hasClass';\n\nexport default function addClass(element: Element, className: string | string[]): void {\n if (element && className) {\n const fn = (_className: string) => {\n if (!hasClass(element, _className)) {\n if (element.classList) element.classList.add(_className);\n else element.className += ' ' + _className;\n }\n };\n\n [className]\n .flat()\n .filter(Boolean)\n .forEach((_classNames) => _classNames.split(' ').forEach(fn));\n }\n}\n","export default function removeClass(element: Element, className: string | string[]): void {\n if (element && className) {\n const fn = (_className: string) => {\n if (element.classList) element.classList.remove(_className);\n else element.className = element.className.replace(new RegExp('(^|\\\\b)' + _className.split(' ').join('|') + '(\\\\b|$)', 'gi'), ' ');\n };\n\n [className]\n .flat()\n .filter(Boolean)\n .forEach((_classNames) => _classNames.split(' ').forEach(fn));\n }\n}\n","export default function getOuterWidth(element: unknown, margin?: boolean): number {\n if (element instanceof HTMLElement) {\n let width = element.offsetWidth;\n\n if (margin) {\n let style = getComputedStyle(element);\n\n width += parseFloat(style.marginLeft) + parseFloat(style.marginRight);\n }\n\n return width;\n }\n\n return 0;\n}\n","export default function isElement(element: any): boolean {\n return typeof HTMLElement === 'object' ? element instanceof HTMLElement : element && typeof element === 'object' && element !== null && element.nodeType === 1 && typeof element.nodeName === 'string';\n}\n","import isElement from './isElement';\n\nexport default function setAttributes(element: HTMLElement, attributes: { [key: string]: any } = {}): void {\n if (isElement(element)) {\n const computedStyles = (rule: string, value: any): string[] => {\n const styles = (element as any)?.$attrs?.[rule] ? [(element as any)?.$attrs?.[rule]] : [];\n\n return [value].flat().reduce((cv, v) => {\n if (v !== null && v !== undefined) {\n const type = typeof v;\n\n if (type === 'string' || type === 'number') {\n cv.push(v);\n } else if (type === 'object') {\n const _cv = Array.isArray(v) ? computedStyles(rule, v) : Object.entries(v).map(([_k, _v]) => (rule === 'style' && (!!_v || _v === 0) ? `${_k.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase()}:${_v}` : !!_v ? _k : undefined));\n\n cv = _cv.length ? cv.concat(_cv.filter((c) => !!c)) : cv;\n }\n }\n\n return cv;\n }, styles);\n };\n\n Object.entries(attributes).forEach(([key, value]) => {\n if (value !== undefined && value !== null) {\n const matchedEvent = key.match(/^on(.+)/);\n\n if (matchedEvent) {\n element.addEventListener(matchedEvent[1].toLowerCase(), value);\n } else if (key === 'p-bind') {\n setAttributes(element, value);\n } else {\n value = key === 'class' ? [...new Set(computedStyles('class', value))].join(' ').trim() : key === 'style' ? computedStyles('style', value).join(';').trim() : value;\n ((element as any).$attrs = (element as any).$attrs || {}) && ((element as any).$attrs[key] = value);\n element.setAttribute(key, value);\n }\n }\n });\n }\n}\n","import setAttributes from './setAttributes';\n\nexport default function createElement(type: string, attributes: { [key: string]: any } = {}, ...children: (string | Node)[]): HTMLElement | undefined {\n if (type) {\n const element = document.createElement(type);\n\n setAttributes(element, attributes);\n element.append(...children);\n\n return element;\n }\n\n return undefined;\n}\n","import isElement from './isElement';\n\nexport default function findSingle(element: Element, selector: string): Element | null {\n return isElement(element) ? (element.matches(selector) ? element : element.querySelector(selector)) : null;\n}\n","export default function focus(element: HTMLElement, options?: FocusOptions): void {\n element && document.activeElement !== element && element.focus(options);\n}\n","import isElement from './isElement';\n\nexport default function getAttribute(element: Element, name: string): any {\n if (isElement(element)) {\n const value = element.getAttribute(name);\n\n if (!isNaN(value as any)) {\n return +(value as string);\n }\n\n if (value === 'true' || value === 'false') {\n return value === 'true';\n }\n\n return value;\n }\n\n return undefined;\n}\n","export default function getHeight(element: HTMLElement): number {\n if (element) {\n let height = element.offsetHeight;\n let style = getComputedStyle(element);\n\n height -= parseFloat(style.paddingTop) + parseFloat(style.paddingBottom) + parseFloat(style.borderTopWidth) + parseFloat(style.borderBottomWidth);\n\n return height;\n }\n\n return 0;\n}\n","export default function getParentNode(element: Node): ParentNode | null {\n if (element) {\n let parent = element.parentNode;\n\n if (parent && parent instanceof ShadowRoot && parent.host) {\n parent = parent.host;\n }\n\n return parent;\n }\n\n return null;\n}\n","export default function getOffset(element?: Element | null): { top: number | string; left: number | string } {\n if (element) {\n let rect = element.getBoundingClientRect();\n\n return {\n top: rect.top + (window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0),\n left: rect.left + (window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0)\n };\n }\n\n return {\n top: 'auto',\n left: 'auto'\n };\n}\n","export default function getOuterHeight(element: HTMLElement, margin?: boolean): number {\n if (element) {\n let height = element.offsetHeight;\n\n if (margin) {\n let style = getComputedStyle(element);\n\n height += parseFloat(style.marginTop) + parseFloat(style.marginBottom);\n }\n\n return height;\n }\n\n return 0;\n}\n","import getParentNode from './getParentNode';\n\nexport default function isExist(element: Node): boolean {\n return !!(element !== null && typeof element !== 'undefined' && element.nodeName && getParentNode(element));\n}\n","export default function getWidth(element: HTMLElement): number {\n if (element) {\n let width = element.offsetWidth;\n let style = getComputedStyle(element);\n\n width -= parseFloat(style.paddingLeft) + parseFloat(style.paddingRight) + parseFloat(style.borderLeftWidth) + parseFloat(style.borderRightWidth);\n\n return width;\n }\n\n return 0;\n}\n","export default function isClient(): boolean {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n}\n","export default function isTouchDevice(): boolean {\n return 'ontouchstart' in window || navigator.maxTouchPoints > 0 || (navigator as any).msMaxTouchPoints > 0;\n}\n","import isElement from './isElement';\n\nexport default function setAttribute(element: HTMLElement, attribute: string = '', value: any): void {\n if (isElement(element) && value !== null && value !== undefined) {\n element.setAttribute(attribute, value);\n }\n}\n","export interface EventBusOptions {\n on(type: string, handler: Function): void;\n off(type: string, handler: Function): void;\n emit(type: string, evt?: any): void;\n clear(): void;\n}\n\nexport function EventBus(): EventBusOptions {\n const allHandlers = new Map<string, Function[]>();\n\n return {\n on(type: string, handler: Function) {\n let handlers = allHandlers.get(type);\n\n if (!handlers) handlers = [handler];\n else handlers.push(handler);\n\n allHandlers.set(type, handlers);\n\n return this;\n },\n off(type: string, handler: Function) {\n let handlers = allHandlers.get(type);\n\n if (handlers) {\n handlers.splice(handlers.indexOf(handler) >>> 0, 1);\n }\n\n return this;\n },\n emit(type: string, evt?: any) {\n let handlers = allHandlers.get(type);\n\n if (handlers) {\n handlers.slice().map((handler) => {\n handler(evt);\n });\n }\n },\n clear() {\n allHandlers.clear();\n }\n };\n}\n","export default function isEmpty(value: any): boolean {\n return value === null || value === undefined || value === '' || (Array.isArray(value) && value.length === 0) || (!(value instanceof Date) && typeof value === 'object' && Object.keys(value).length === 0);\n}\n","export default function deepEquals(obj1: any, obj2: any): boolean {\n if (obj1 === obj2) return true;\n\n if (obj1 && obj2 && typeof obj1 == 'object' && typeof obj2 == 'object') {\n var arrObj1 = Array.isArray(obj1),\n arrObj2 = Array.isArray(obj2),\n i,\n length,\n key;\n\n if (arrObj1 && arrObj2) {\n length = obj1.length;\n if (length != obj2.length) return false;\n for (i = length; i-- !== 0; ) if (!deepEquals(obj1[i], obj2[i])) return false;\n\n return true;\n }\n\n if (arrObj1 != arrObj2) return false;\n\n var dateObj1 = obj1 instanceof Date,\n dateObj2 = obj2 instanceof Date;\n\n if (dateObj1 != dateObj2) return false;\n if (dateObj1 && dateObj2) return obj1.getTime() == obj2.getTime();\n\n var regexpObj1 = obj1 instanceof RegExp,\n regexpObj2 = obj2 instanceof RegExp;\n\n if (regexpObj1 != regexpObj2) return false;\n if (regexpObj1 && regexpObj2) return obj1.toString() == obj2.toString();\n\n var keys = Object.keys(obj1);\n\n length = keys.length;\n\n if (length !== Object.keys(obj2).length) return false;\n\n for (i = length; i-- !== 0; ) if (!Object.prototype.hasOwnProperty.call(obj2, keys[i])) return false;\n\n for (i = length; i-- !== 0; ) {\n key = keys[i];\n if (!deepEquals(obj1[key], obj2[key])) return false;\n }\n\n return true;\n }\n\n return obj1 !== obj1 && obj2 !== obj2;\n}\n","export default function isFunction(value: any): value is Function {\n return !!(value && value.constructor && value.call && value.apply);\n}\n","import isEmpty from './isEmpty';\n\nexport default function isNotEmpty(value: any): boolean {\n return !isEmpty(value);\n}\n","import isFunction from './isFunction';\nimport isNotEmpty from './isNotEmpty';\n\nexport default function resolveFieldData(data: any, field: string): any {\n if (!data || !field) {\n // short circuit if there is nothing to resolve\n return null;\n }\n\n try {\n const value = data[field];\n\n if (isNotEmpty(value)) return value;\n } catch {\n // Performance optimization: https://github.com/primefaces/primereact/issues/4797\n // do nothing and continue to other methods to resolve field data\n }\n\n if (Object.keys(data).length) {\n if (isFunction(field)) {\n return field(data);\n } else if (field.indexOf('.') === -1) {\n return data[field];\n } else {\n let fields = field.split('.');\n let value = data;\n\n for (let i = 0, len = fields.length; i < len; ++i) {\n if (value == null) {\n return null;\n }\n\n value = value[fields[i]];\n }\n\n return value;\n }\n }\n\n return null;\n}\n","import deepEquals from './deepEquals';\nimport resolveFieldData from './resolveFieldData';\n\nexport default function equals(obj1: any, obj2: any, field?: string): boolean {\n if (field) return resolveFieldData(obj1, field) === resolveFieldData(obj2, field);\n else return deepEquals(obj1, obj2);\n}\n","import isNotEmpty from './isNotEmpty';\n\n/**\n * Firefox-v103 does not currently support the \"findLastIndex\" method. It is stated that this method will be supported with Firefox-v104.\n * https://caniuse.com/mdn-javascript_builtins_array_findlastindex\n */\nexport default function findLastIndex<T = any>(arr: T[], callback: (value: T, index: number, array: T[]) => boolean): number {\n let index = -1;\n\n if (isNotEmpty(arr)) {\n try {\n index = (arr as any).findLastIndex(callback);\n } catch {\n index = arr.lastIndexOf([...arr].reverse().find(callback) as T);\n }\n }\n\n return index;\n}\n","export default function isObject(value: any, empty: boolean = true): boolean {\n return value instanceof Object && value.constructor === Object && (empty || Object.keys(value).length !== 0);\n}\n","import isFunction from './isFunction';\n\nexport default function resolve<T>(obj: T | ((...params: any[]) => T), ...params: any[]): T {\n return isFunction(obj) ? obj(...params) : obj;\n}\n","export default function isString(value: any, empty: boolean = true): boolean {\n return typeof value === 'string' && (empty || value !== '');\n}\n","import isString from './isString';\n\nexport default function toFlatCase(str: string): string {\n // convert snake, kebab, camel and pascal cases to flat case\n return isString(str) ? str.replace(/(-|_)/g, '').toLowerCase() : str;\n}\n","import isObject from './isObject';\nimport resolve from './resolve';\nimport toFlatCase from './toFlatCase';\n\nexport default function getKeyValue(obj: any, key: string = '', params: any = {}): any {\n const fKeys = toFlatCase(key).split('.');\n const fKey = fKeys.shift();\n\n return fKey ? (isObject(obj) ? getKeyValue(resolve(obj[Object.keys(obj).find((k) => toFlatCase(k) === fKey) || ''], params), fKeys.join('.'), params) : undefined) : resolve(obj, params);\n}\n","export default function isArray(value: any, empty: boolean = true): boolean {\n return Array.isArray(value) && (empty || value.length !== 0);\n}\n","import isNotEmpty from './isNotEmpty';\n\nexport default function isNumber(value: any): boolean {\n return isNotEmpty(value) && !isNaN(value);\n}\n","import isNotEmpty from './isNotEmpty';\n\nexport default function isPrintableCharacter(char: string = ''): boolean {\n return isNotEmpty(char) && char.length === 1 && !!char.match(/\\S| /);\n}\n","export default function matchRegex(str: string, regex?: RegExp): boolean {\n if (regex) {\n const match = regex.test(str);\n\n regex.lastIndex = 0;\n\n return match;\n }\n\n return false;\n}\n","import isObject from './isObject';\n\nexport default function mergeKeys(...args: Record<string, any>[]): Record<string, any> {\n const _mergeKeys = (target: Record<string, any> = {}, source: Record<string, any> = {}) => {\n const mergedObj: Record<string, any> = { ...target };\n\n Object.keys(source).forEach((key) => {\n if (isObject(source[key]) && key in target && isObject(target[key])) {\n mergedObj[key] = _mergeKeys(target[key], source[key]);\n } else {\n mergedObj[key] = source[key];\n }\n });\n\n return mergedObj;\n };\n\n return args.reduce((acc, obj, i) => (i === 0 ? obj : _mergeKeys(acc, obj)), {});\n}\n","export default function minifyCSS(css?: string): string | undefined {\n return css\n ? css\n .replace(/\\/\\*(?:(?!\\*\\/)[\\s\\S])*\\*\\/|[\\r\\n\\t]+/g, '')\n .replace(/ {2,}/g, ' ')\n .replace(/ ([{:}]) /g, '$1')\n .replace(/([;,]) /g, '$1')\n .replace(/ !/g, '!')\n .replace(/: /g, ':')\n : css;\n}\n","export default function removeAccents(str: string): string {\n if (str && str.search(/[\\xC0-\\xFF]/g) > -1) {\n str = str\n .replace(/[\\xC0-\\xC5]/g, 'A')\n .replace(/[\\xC6]/g, 'AE')\n .replace(/[\\xC7]/g, 'C')\n .replace(/[\\xC8-\\xCB]/g, 'E')\n .replace(/[\\xCC-\\xCF]/g, 'I')\n .replace(/[\\xD0]/g, 'D')\n .replace(/[\\xD1]/g, 'N')\n .replace(/[\\xD2-\\xD6\\xD8]/g, 'O')\n .replace(/[\\xD9-\\xDC]/g, 'U')\n .replace(/[\\xDD]/g, 'Y')\n .replace(/[\\xDE]/g, 'P')\n .replace(/[\\xE0-\\xE5]/g, 'a')\n .replace(/[\\xE6]/g, 'ae')\n .replace(/[\\xE7]/g, 'c')\n .replace(/[\\xE8-\\xEB]/g, 'e')\n .replace(/[\\xEC-\\xEF]/g, 'i')\n .replace(/[\\xF1]/g, 'n')\n .replace(/[\\xF2-\\xF6\\xF8]/g, 'o')\n .replace(/[\\xF9-\\xFC]/g, 'u')\n .replace(/[\\xFE]/g, 'p')\n .replace(/[\\xFD\\xFF]/g, 'y');\n }\n\n return str;\n}\n","import isString from './isString';\n\nexport default function toCapitalCase(str: string): string {\n return isString(str, false) ? str[0].toUpperCase() + str.slice(1) : str;\n}\n","import isString from './isString';\n\nexport default function toKebabCase(str: string): string {\n // convert snake, camel and pascal cases to kebab case\n return isString(str)\n ? str\n .replace(/(_)/g, '-')\n .replace(/[A-Z]/g, (c, i) => (i === 0 ? c : '-' + c.toLowerCase()))\n .toLowerCase()\n : str;\n}\n","import isString from './isString';\n\nexport default function toTokenKey(str: string): string {\n return isString(str) ? str.replace(/[A-Z]/g, (c, i) => (i === 0 ? c : '.' + c.toLowerCase())).toLowerCase() : str;\n}\n","const lastIds: { [key: string]: number } = {};\n\nexport function uuid(prefix: string = 'pui_id_'): string {\n if (!lastIds.hasOwnProperty(prefix)) {\n lastIds[prefix] = 0;\n }\n\n lastIds[prefix]++;\n\n return `${prefix}${lastIds[prefix]}`;\n}\n","export interface ZIndexOptions {\n get(element?: HTMLElement): number;\n set(key: string, element: HTMLElement, baseZIndex?: number): void;\n clear(element: HTMLElement): void;\n getCurrent(key: string): number;\n}\n\nfunction handler(): ZIndexOptions {\n let zIndexes: { key: string; value: number }[] = [];\n\n const generateZIndex = (key: string, autoZIndex: boolean, baseZIndex: number = 999) => {\n const lastZIndex = getLastZIndex(key, autoZIndex, baseZIndex);\n const newZIndex = lastZIndex.value + (lastZIndex.key === key ? 0 : baseZIndex) + 1;\n\n zIndexes.push({ key, value: newZIndex });\n\n return newZIndex;\n };\n\n const revertZIndex = (zIndex: number) => {\n zIndexes = zIndexes.filter((obj) => obj.value !== zIndex);\n };\n\n const getCurrentZIndex = (key: string, autoZIndex: boolean) => {\n return getLastZIndex(key, autoZIndex).value;\n };\n\n const getLastZIndex = (key: string, autoZIndex: boolean, baseZIndex: number = 0) => {\n return [...zIndexes].reverse().find((obj) => (autoZIndex ? true : obj.key === key)) || { key, value: baseZIndex };\n };\n\n const getZIndex = (element?: HTMLElement): number => {\n return element ? parseInt(element.style.zIndex, 10) || 0 : 0;\n };\n\n return {\n get: getZIndex,\n set: (key: string, element?: HTMLElement, baseZIndex?: number) => {\n if (element) {\n element.style.zIndex = String(generateZIndex(key, true, baseZIndex));\n }\n },\n clear: (element?: HTMLElement) => {\n if (element) {\n revertZIndex(getZIndex(element));\n element.style.zIndex = '';\n }\n },\n getCurrent: (key: string) => getCurrentZIndex(key, true)\n };\n}\n\nexport const ZIndex: ZIndexOptions = handler();\n","export default {\n _loadedStyleNames: new Set(),\n getLoadedStyleNames() {\n return this._loadedStyleNames;\n },\n isStyleNameLoaded(name) {\n return this._loadedStyleNames.has(name);\n },\n setLoadedStyleName(name) {\n this._loadedStyleNames.add(name);\n },\n deleteLoadedStyleName(name) {\n this._loadedStyleNames.delete(name);\n },\n clearLoadedStyleNames() {\n this._loadedStyleNames.clear();\n }\n};\n","/*\n * Ported from useStyleTag in @vueuse/core\n * https://github.com/vueuse\n */\nimport { isClient, isExist, setAttribute, setAttributes } from '@primeuix/utils/dom';\nimport { getCurrentInstance, nextTick, onMounted, readonly, ref, watch } from 'vue';\n\nfunction tryOnMounted(fn, sync = true) {\n if (getCurrentInstance()) onMounted(fn);\n else if (sync) fn();\n else nextTick(fn);\n}\n\nlet _id = 0;\n\nexport function useStyle(css, options = {}) {\n const isLoaded = ref(false);\n const cssRef = ref(css);\n const styleRef = ref(null);\n\n const defaultDocument = isClient() ? window.document : undefined;\n const {\n document = defaultDocument,\n immediate = true,\n manual = false,\n name = `style_${++_id}`,\n id = undefined,\n media = undefined,\n nonce = undefined,\n first = false,\n onMounted: onStyleMounted = undefined,\n onUpdated: onStyleUpdated = undefined,\n onLoad: onStyleLoaded = undefined,\n props = {}\n } = options;\n\n let stop = () => {};\n\n /* @todo: Improve _options params */\n const load = (_css, _props = {}) => {\n if (!document) return;\n\n const _styleProps = { ...props, ..._props };\n const [_name, _id, _nonce] = [_styleProps.name || name, _styleProps.id || id, _styleProps.nonce || nonce];\n\n styleRef.value = document.querySelector(`style[data-primevue-style-id=\"${_name}\"]`) || document.getElementById(_id) || document.createElement('style');\n\n if (!styleRef.value.isConnected) {\n cssRef.value = _css || css;\n\n setAttributes(styleRef.value, {\n type: 'text/css',\n id: _id,\n media,\n nonce: _nonce\n });\n first ? document.head.prepend(styleRef.value) : document.head.appendChild(styleRef.value);\n setAttribute(styleRef.value, 'data-primevue-style-id', _name);\n setAttributes(styleRef.value, _styleProps);\n styleRef.value.onload = (event) => onStyleLoaded?.(event, { name: _name });\n onStyleMounted?.(_name);\n }\n\n if (isLoaded.value) return;\n\n stop = watch(\n cssRef,\n (value) => {\n styleRef.value.textContent = value;\n onStyleUpdated?.(_name);\n },\n { immediate: true }\n );\n\n isLoaded.value = true;\n };\n\n const unload = () => {\n if (!document || !isLoaded.value) return;\n stop();\n isExist(styleRef.value) && document.head.removeChild(styleRef.value);\n isLoaded.value = false;\n };\n\n if (immediate && !manual) tryOnMounted(load);\n\n /*if (!manual)\n tryOnScopeDispose(unload)*/\n\n return {\n id,\n name,\n el: styleRef,\n css: cssRef,\n unload,\n load,\n isLoaded: readonly(isLoaded)\n };\n}\n","import { Theme, dt } from '@primeuix/styled';\nimport { minifyCSS, resolve } from '@primeuix/utils/object';\nimport { useStyle } from '@primevue/core/usestyle';\n\nconst theme = ({ dt }) => `\n* {\n box-sizing: border-box;\n}\n\n/* Non vue overlay animations */\n.p-connected-overlay {\n opacity: 0;\n transform: scaleY(0.8);\n transition: transform 0.12s cubic-bezier(0, 0, 0.2, 1),\n opacity 0.12s cubic-bezier(0, 0, 0.2, 1);\n}\n\n.p-connected-overlay-visible {\n opacity: 1;\n transform: scaleY(1);\n}\n\n.p-connected-overlay-hidden {\n opacity: 0;\n transform: scaleY(1);\n transition: opacity 0.1s linear;\n}\n\n/* Vue based overlay animations */\n.p-connected-overlay-enter-from {\n opacity: 0;\n transform: scaleY(0.8);\n}\n\n.p-connected-overlay-leave-to {\n opacity: 0;\n}\n\n.p-connected-overlay-enter-active {\n transition: transform 0.12s cubic-bezier(0, 0, 0.2, 1),\n opacity 0.12s cubic-bezier(0, 0, 0.2, 1);\n}\n\n.p-connected-overlay-leave-active {\n transition: opacity 0.1s linear;\n}\n\n/* Toggleable Content */\n.p-toggleable-content-enter-from,\n.p-toggleable-content-leave-to {\n max-height: 0;\n}\n\n.p-toggleable-content-enter-to,\n.p-toggleable-content-leave-from {\n max-height: 1000px;\n}\n\n.p-toggleable-content-leave-active {\n overflow: hidden;\n transition: max-height 0.45s cubic-bezier(0, 1, 0, 1);\n}\n\n.p-toggleable-content-enter-active {\n overflow: hidden;\n transition: max-height 1s ease-in-out;\n}\n\n.p-disabled,\n.p-disabled * {\n cursor: default;\n pointer-events: none;\n user-select: none;\n}\n\n.p-disabled,\n.p-component:disabled {\n opacity: ${dt('disabled.opacity')};\n}\n\n.pi {\n font-size: ${dt('icon.size')};\n}\n\n.p-icon {\n width: ${dt('icon.size')};\n height: ${dt('icon.size')};\n}\n\n.p-overlay-mask {\n background: ${dt('mask.background')};\n color: ${dt('mask.color')};\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n}\n\n.p-overlay-mask-enter {\n animation: p-overlay-mask-enter-animation ${dt('mask.transition.duration')} forwards;\n}\n\n.p-overlay-mask-leave {\n animation: p-overlay-mask-leave-animation ${dt('mask.transition.duration')} forwards;\n}\n\n@keyframes p-overlay-mask-enter-animation {\n from {\n background: transparent;\n }\n to {\n background: ${dt('mask.background')};\n }\n}\n@keyframes p-overlay-mask-leave-animation {\n from {\n background: ${dt('mask.background')};\n }\n to {\n background: transparent;\n }\n}\n`;\n\nconst css = ({ dt }) => `\n.p-hidden-accessible {\n border: 0;\n clip: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n}\n\n.p-hidden-accessible input,\n.p-hidden-accessible select {\n transform: scale(0);\n}\n\n.p-overflow-hidden {\n overflow: hidden;\n padding-right: ${dt('scrollbar.width')};\n}\n`;\n\nconst classes = {};\n\nconst inlineStyles = {};\n\nexport default {\n name: 'base',\n css,\n theme,\n classes,\n inlineStyles,\n load(style, options = {}, transform = (cs) => cs) {\n const computedStyle = transform(resolve(style, { dt }));\n\n return computedStyle ? useStyle(minifyCSS(computedStyle), { name: this.name, ...options }) : {};\n },\n loadCSS(options = {}) {\n return this.load(this.css, options);\n },\n loadTheme(options = {}) {\n return this.load(this.theme, options, (computedStyle) => Theme.transformCSS(options.name || this.name, computedStyle));\n },\n getCommonTheme(params) {\n return Theme.getCommon(this.name, params);\n },\n getComponentTheme(params) {\n return Theme.getComponent(this.name, params);\n },\n getDirectiveTheme(params) {\n return Theme.getDirective(this.name, params);\n },\n getPresetTheme(preset, selector, params) {\n return Theme.getCustomPreset(this.name, preset, selector, params);\n },\n getLayerOrderThemeCSS() {\n return Theme.getLayerOrderCSS(this.name);\n },\n getStyleSheet(extendedCSS = '', props = {}) {\n if (this.css) {\n const _css = resolve(this.css, { dt });\n const _style = minifyCSS(`${_css}${extendedCSS}`);\n const _props = Object.entries(props)\n .reduce((acc, [k, v]) => acc.push(`${k}=\"${v}\"`) && acc, [])\n .join(' ');\n\n return `<style type=\"text/css\" data-primevue-style-id=\"${this.name}\" ${_props}>${_style}</style>`;\n }\n\n return '';\n },\n getCommonThemeStyleSheet(params, props = {}) {\n return Theme.getCommonStyleSheet(this.name, params, props);\n },\n getThemeStyleSheet(params, props = {}) {\n let css = [Theme.getStyleSheet(this.name, params, props)];\n\n if (this.theme) {\n const name = this.name === 'base' ? 'global-style' : `${this.name}-style`;\n const _css = resolve(this.theme, { dt });\n const _style = minifyCSS(Theme.transformCSS(name, _css));\n const _props = Object.entries(props)\n .reduce((acc, [k, v]) => acc.push(`${k}=\"${v}\"`) && acc, [])\n .join(' ');\n\n css.push(`<style type=\"text/css\" data-primevue-style-id=\"${name}\" ${_props}>${_style}</style>`);\n }\n\n return css.join('');\n },\n extend(style) {\n return { ...this, css: undefined, theme: undefined, ...style };\n }\n};\n","import BaseStyle from '@primevue/core/base/style';\n\nexport default BaseStyle.extend({\n name: 'common'\n});\n","<script>\nimport { Theme, ThemeService } from '@primeuix/styled';\nimport { findSingle } from '@primeuix/utils/dom';\nimport { getKeyValue, isArray, isFunction, isNotEmpty, isString, resolve, toFlatCase } from '@primeuix/utils/object';\nimport Base from '@primevue/core/base';\nimport BaseStyle from '@primevue/core/base/style';\nimport { UniqueComponentId } from '@primevue/core/utils';\nimport { mergeProps } from 'vue';\nimport BaseComponentStyle from './style/BaseComponentStyle';\n\nexport default {\n name: 'BaseComponent',\n props: {\n pt: {\n type: Object,\n default: undefined\n },\n ptOptions: {\n type: Object,\n default: undefined\n },\n unstyled: {\n type: Boolean,\n default: undefined\n },\n dt: {\n type: Object,\n default: undefined\n }\n },\n inject: {\n $parentInstance: {\n default: undefined\n }\n },\n watch: {\n isUnstyled: {\n immediate: true,\n handler(newValue) {\n if (!newValue) {\n this._loadCoreStyles();\n this._themeChangeListener(this._loadCoreStyles); // update styles with theme settings\n }\n }\n },\n dt: {\n immediate: true,\n handler(newValue) {\n if (newValue) {\n this._loadScopedThemeStyles(newValue);\n this._themeChangeListener(() => this._loadScopedThemeStyles(newValue));\n } else {\n this._unloadScopedThemeStyles();\n }\n }\n }\n },\n scopedStyleEl: undefined,\n rootEl: undefined,\n beforeCreate() {\n const _usept = this.pt?.['_usept'];\n const originalValue = _usept ? this.pt?.originalValue?.[this.$.type.name] : undefined;\n const value = _usept ? this.pt?.value?.[this.$.type.name] : this.pt;\n\n (value || originalValue)?.hooks?.['onBeforeCreate']?.();\n\n const _useptInConfig = this.$primevueConfig?.pt?.['_usept'];\n const originalValueInConfig = _useptInConfig ? this.$primevue?.config?.pt?.originalValue : undefined;\n const valueInConfig = _useptInConfig ? this.$primevue?.config?.pt?.value : this.$primevue?.config?.pt;\n\n (valueInConfig || originalValueInConfig)?.[this.$.type.name]?.hooks?.['onBeforeCreate']?.();\n },\n created() {\n this._hook('onCreated');\n },\n beforeMount() {\n this._loadStyles();\n this._hook('onBeforeMount');\n },\n mounted() {\n // @todo - improve performance\n this.rootEl = findSingle(this.$el, `[data-pc-name=\"${toFlatCase(this.$.type.name)}\"]`);\n\n if (this.rootEl) {\n this.rootEl.setAttribute(this.$attrSelector, '');\n this.rootEl.$pc = { name: this.$.type.name, ...this.$params };\n }\n\n this._hook('onMounted');\n },\n beforeUpdate() {\n this._hook('onBeforeUpdate');\n },\n updated() {\n this._hook('onUpdated');\n },\n beforeUnmount() {\n this._hook('onBeforeUnmount');\n },\n unmounted() {\n this._unloadScopedThemeStyles();\n this._hook('onUnmounted');\n },\n methods: {\n _hook(hookName) {\n if (!this.$options.hostName) {\n const selfHook = this._usePT(this._getPT(this.pt, this.$.type.name), this._getOptionValue, `hooks.${hookName}`);\n const defaultHook = this._useDefaultPT(this._getOptionValue, `hooks.${hookName}`);\n\n selfHook?.();\n defaultHook?.();\n }\n },\n _mergeProps(fn, ...args) {\n return isFunction(fn) ? fn(...args) : mergeProps(...args);\n },\n _loadStyles() {\n const _load = () => {\n // @todo\n if (!Base.isStyleNameLoaded('base')) {\n BaseStyle.loadCSS(this.$styleOptions);\n this._loadGlobalStyles();\n\n Base.setLoadedStyleName('base');\n }\n\n this._loadThemeStyles();\n };\n\n _load();\n this._themeChangeListener(_load);\n },\n _loadCoreStyles() {\n if (!Base.isStyleNameLoaded(this.$style?.name) && this.$style?.name) {\n BaseComponentStyle.loadCSS(this.$styleOptions);\n this.$options.style && this.$style.loadCSS(this.$styleOptions);\n\n Base.setLoadedStyleName(this.$style.name);\n }\n },\n _loadGlobalStyles() {\n /*\n * @todo Add self custom css support;\n * <Panel :pt=\"{ css: `...` }\" .../>\n *\n * const selfCSS = this._getPTClassValue(this.pt, 'css', this.$params);\n * const defaultCSS = this._getPTClassValue(this.defaultPT, 'css', this.$params);\n * const mergedCSS = mergeProps(selfCSS, defaultCSS);\n * isNotEmpty(mergedCSS?.class) && this.$css.loadCustomStyle(mergedCSS?.class);\n */\n\n const globalCSS = this._useGlobalPT(this._getOptionValue, 'global.css', this.$params);\n\n isNotEmpty(globalCSS) && BaseStyle.load(globalCSS, { name: 'global', ...this.$styleOptions });\n },\n _loadThemeStyles() {\n if (this.isUnstyled) return;\n\n // common\n if (!Theme.isStyleNameLoaded('common')) {\n const { primitive, semantic } = this.$style?.getCommonTheme?.() || {};\n\n BaseStyle.load(primitive?.css, { name: 'primitive-variables', ...this.$styleOptions });\n BaseStyle.load(semantic?.css, { name: 'semantic-variables', ...this.$styleOptions });\n BaseStyle.loadTheme({ name: 'global-style', ...this.$styleOptions });\n\n Theme.setLoadedStyleName('common');\n }\n\n // component\n if (!Theme.isStyleNameLoaded(this.$style?.name) && this.$style?.name) {\n const { css } = this.$style?.getComponentTheme?.() || {};\n\n this.$style?.load(css, { name: `${this.$style.name}-variables`, ...this.$styleOptions });\n this.$style?.loadTheme({ name: `${this.$style.name}-style`, ...this.$styleOptions });\n\n Theme.setLoadedStyleName(this.$style.name);\n }\n\n // layer order\n if (!Theme.isStyleNameLoaded('layer-order')) {\n const layerOrder = this.$style?.getLayerOrderThemeCSS?.();\n\n BaseStyle.load(layerOrder, { name: 'layer-order', first: true, ...this.$styleOptions });\n\n Theme.setLoadedStyleName('layer-order');\n }\n },\n _loadScopedThemeStyles(preset) {\n const { css } = this.$style?.getPresetTheme?.(preset, `[${this.$attrSelector}]`) || {};\n const scopedStyle = this.$style?.load(css, { name: `${this.$attrSelector}-${this.$style.name}`, ...this.$styleOptions });\n\n this.scopedStyleEl = scopedStyle.el;\n },\n _unloadScopedThemeStyles() {\n this.scopedStyleEl?.value?.remove();\n },\n _themeChangeListener(callback = () => {}) {\n Base.clearLoadedStyleNames();\n ThemeService.on('theme:change', callback);\n },\n _getHostInstance(instance) {\n return instance ? (this.$options.hostName ? (instance.$.type.name === this.$options.hostName ? instance : this._getHostInstance(instance.$parentInstance)) : instance.$parentInstance) : undefined;\n },\n _getPropValue(name) {\n return this[name] || this._getHostInstance(this)?.[name];\n },\n _getOptionValue(options, key = '', params = {}) {\n return getKeyValue(options, key, params);\n },\n _getPTValue(obj = {}, key = '', params = {}, searchInDefaultPT = true) {\n const searchOut = /./g.test(key) && !!params[key.split('.')[0]];\n const { mergeSections = true, mergeProps: useMergeProps = false } = this._getPropValue('ptOptions') || this.$primevueConfig?.ptOptions || {};\n const global = searchInDefaultPT ? (searchOut ? this._useGlobalPT(this._getPTClassValue, key, params) : this._useDefaultPT(this._getPTClassValue, key, params)) : undefined;\n const self = searchOut ? undefined : this._getPTSelf(obj, this._getPTClassValue, key, { ...params, global: global || {} });\n const datasets = this._getPTDatasets(key);\n\n return mergeSections || (!mergeSections && self) ? (useMergeProps ? this._mergeProps(useMergeProps, global, self, datasets) : { ...global, ...self, ...datasets }) : { ...self, ...datasets };\n },\n _getPTSelf(obj = {}, ...args) {\n return mergeProps(\n this._usePT(this._getPT(obj, this.$name), ...args), // Exp; <component :pt=\"{}\"\n this._usePT(this.$_attrsPT, ...args) // Exp; <component :pt:[passthrough_key]:[attribute]=\"{value}\" or <component :pt:[passthrough_key]=\"() =>{value}\"\n );\n },\n _getPTDatasets(key = '') {\n const datasetPrefix = 'data-pc-';\n const isExtended = key === 'root' && isNotEmpty(this.pt?.['data-pc-section']);\n\n return (\n key !== 'transition' && {\n ...(key === 'root' && {\n [`${datasetPrefix}name`]: toFlatCase(isExtended ? this.pt?.['data-pc-section'] : this.$.type.name),\n ...(isExtended && { [`${datasetPrefix}extend`]: toFlatCase(this.$.type.name) })\n }),\n [`${datasetPrefix}section`]: toFlatCase(key)\n }\n );\n },\n _getPTClassValue(...args) {\n const value = this._getOptionValue(...args);\n\n return isString(value) || isArray(value) ? { class: value } : value;\n },\n _getPT(pt, key = '', callback) {\n const getValue = (value, checkSameKey = false) => {\n const computedValue = callback ? callback(value) : value;\n const _key = toFlatCase(key);\n const _cKey = toFlatCase(this.$name);\n\n return (checkSameKey ? (_key !== _cKey ? computedValue?.[_key] : undefined) : computedValue?.[_key]) ?? computedValue;\n };\n\n return pt?.hasOwnProperty('_usept')\n ? {\n _usept: pt['_usept'],\n originalValue: getValue(pt.originalValue),\n value: getValue(pt.value)\n }\n : getValue(pt, true);\n },\n _usePT(pt, callback, key, params) {\n const fn = (value) => callback(value, key, params);\n\n if (pt?.hasOwnProperty('_usept')) {\n const { mergeSections = true, mergeProps: useMergeProps = false } = pt['_usept'] || this.$primevueConfig?.ptOptions || {};\n const originalValue = fn(pt.originalValue);\n const value = fn(pt.value);\n\n if (originalValue === undefined && value === undefined) return undefined;\n else if (isString(value)) return value;\n else if (isString(originalValue)) return originalValue;\n\n return mergeSections || (!mergeSections && value) ? (useMergeProps ? this._mergeProps(useMergeProps, originalValue, value) : { ...originalValue, ...value }) : value;\n }\n\n return fn(pt);\n },\n _useGlobalPT(callback, key, params) {\n return this._usePT(this.globalPT, callback, key, params);\n },\n _useDefaultPT(callback, key, params) {\n return this._usePT(this.defaultPT, callback, key, params);\n },\n ptm(key = '', params = {}) {\n return this._getPTValue(this.pt, key, { ...this.$params, ...params });\n },\n ptmi(key = '', params = {}) {\n // inheritAttrs:true\n return mergeProps(this.$_attrsWithoutPT, this.ptm(key, params));\n },\n ptmo(obj = {}, key = '', params = {}) {\n return this._getPTValue(obj, key, { instance: this, ...params }, false);\n },\n cx(key = '', params = {}) {\n return !this.isUnstyled ? this._getOptionValue(this.$style.classes, key, { ...this.$params, ...params }) : undefined;\n },\n sx(key = '', when = true, params = {}) {\n if (when) {\n const self = this._getOptionValue(this.$style.inlineStyles, key, { ...this.$params, ...params });\n const base = this._getOptionValue(BaseComponentStyle.inlineStyles, key, { ...this.$params, ...params });\n\n return [base, self];\n }\n\n return undefined;\n }\n },\n computed: {\n globalPT() {\n return this._getPT(this.$primevueConfig?.pt, undefined, (value) => resolve(value, { instance: this }));\n },\n defaultPT() {\n return this._getPT(this.$primevueConfig?.pt, undefined, (value) => this._getOptionValue(value, this.$name, { ...this.$params }) || resolve(value, { ...this.$params }));\n },\n isUnstyled() {\n return this.unstyled !== undefined ? this.unstyled : this.$primevueConfig?.unstyled;\n },\n $theme() {\n return this.$primevueConfig?.theme;\n },\n $style() {\n return { classes: undefined, inlineStyles: undefined, load: () => {}, loadCSS: () => {}, loadTheme: () => {}, ...(this._getHostInstance(this) || {}).$style, ...this.$options.style };\n },\n $styleOptions() {\n return { nonce: this.$primevueConfig?.csp?.nonce };\n },\n $primevueConfig() {\n return this.$primevue?.config;\n },\n $name() {\n return this.$options.hostName || this.$.type.name;\n },\n $params() {\n const parentInstance = this._getHostInstance(this) || this.$parent;\n\n return {\n instance: this,\n props: this.$props,\n state: this.$data,\n attrs: this.$attrs,\n parent: {\n instance: parentInstance,\n props: parentInstance?.$props,\n state: parentInstance?.$data,\n attrs: parentInstance?.$attrs\n }\n };\n },\n $_attrsPT() {\n return Object.entries(this.$attrs || {})\n .filter(([key]) => key?.startsWith('pt:'))\n .reduce((result, [key, value]) => {\n const [, ...rest] = key.split(':');\n\n rest?.reduce((currentObj, nestedKey, index, array) => {\n !currentObj[nestedKey] && (currentObj[nestedKey] = index === array.length - 1 ? value : {});\n\n return currentObj[nestedKey];\n }, result);\n\n return result;\n }, {});\n },\n $_attrsWithoutPT() {\n return Object.entries(this.$attrs || {})\n .filter(([key]) => !key?.startsWith('pt:'))\n .reduce((acc, [key, value]) => {\n acc[key] = value;\n\n return acc;\n }, {});\n },\n $attrSelector() {\n return UniqueComponentId('pc');\n }\n }\n};\n</script>\n","import { EventBus } from '@primeuix/utils/eventbus';\n\nexport default EventBus();\n","import { uuid } from '@primeuix/utils/uuid';\n\nexport default function (prefix = 'pv_id_') {\n return uuid(prefix);\n}\n","export default {\n root: {\n transitionDuration: '{transition.duration}'\n },\n panel: {\n borderWidth: '0 0 1px 0',\n borderColor: '{content.border.color}'\n },\n header: {\n color: '{text.muted.color}',\n hoverColor: '{text.color}',\n activeColor: '{text.color}',\n padding: '1.125rem',\n fontWeight: '600',\n borderRadius: '0',\n borderWidth: '0',\n borderColor: '{content.border.color}',\n background: '{content.background}',\n hoverBackground: '{content.background}',\n activeBackground: '{content.background}',\n activeHoverBackground: '{content.background}',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n },\n toggleIcon: {\n color: '{text.muted.color}',\n hoverColor: '{text.color}',\n activeColor: '{text.color}',\n activeHoverColor: '{text.color}'\n },\n first: {\n topBorderRadius: '{content.border.radius}',\n borderWidth: '0'\n },\n last: {\n bottomBorderRadius: '{content.border.radius}',\n activeBottomBorderRadius: '0'\n }\n },\n content: {\n borderWidth: '0',\n borderColor: '{content.border.color}',\n background: '{content.background}',\n color: '{text.color}',\n padding: '0 1.125rem 1.125rem 1.125rem'\n }\n};\n","export default {\n root: {\n background: '{form.field.background}',\n disabledBackground: '{form.field.disabled.background}',\n filledBackground: '{form.field.filled.background}',\n filledFocusBackground: '{form.field.filled.focus.background}',\n borderColor: '{form.field.border.color}',\n hoverBorderColor: '{form.field.hover.border.color}',\n focusBorderColor: '{form.field.focus.border.color}',\n invalidBorderColor: '{form.field.invalid.border.color}',\n color: '{form.field.color}',\n disabledColor: '{form.field.disabled.color}',\n placeholderColor: '{form.field.placeholder.color}',\n shadow: '{form.field.shadow}',\n paddingX: '{form.field.padding.x}',\n paddingY: '{form.field.padding.y}',\n borderRadius: '{form.field.border.radius}',\n focusRing: {\n width: '{form.field.focus.ring.width}',\n style: '{form.field.focus.ring.style}',\n color: '{form.field.focus.ring.color}',\n offset: '{form.field.focus.ring.offset}',\n shadow: '{form.field.focus.ring.shadow}'\n },\n transitionDuration: '{form.field.transition.duration}'\n },\n overlay: {\n background: '{overlay.select.background}',\n borderColor: '{overlay.select.border.color}',\n borderRadius: '{overlay.select.border.radius}',\n color: '{overlay.select.color}',\n shadow: '{overlay.select.shadow}'\n },\n list: {\n padding: '{list.padding}',\n gap: '{list.gap}'\n },\n option: {\n focusBackground: '{list.option.focus.background}',\n selectedBackground: '{list.option.selected.background}',\n selectedFocusBackground: '{list.option.selected.focus.background}',\n color: '{list.option.color}',\n focusColor: '{list.option.focus.color}',\n selectedColor: '{list.option.selected.color}',\n selectedFocusColor: '{list.option.selected.focus.color}',\n padding: '{list.option.padding}',\n borderRadius: '{list.option.border.radius}'\n },\n optionGroup: {\n background: '{list.option.group.background}',\n color: '{list.option.group.color}',\n fontWeight: '{list.option.group.font.weight}',\n padding: '{list.option.group.padding}'\n },\n dropdown: {\n width: '2.5rem',\n borderColor: '{form.field.border.color}',\n hoverBorderColor: '{form.field.border.color}',\n activeBorderColor: '{form.field.border.color}',\n borderRadius: '{form.field.border.radius}',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n }\n },\n chip: {\n borderRadius: '{border.radius.sm}'\n },\n emptyMessage: {\n padding: '{list.option.padding}'\n },\n colorScheme: {\n light: {\n dropdown: {\n background: '{surface.100}',\n hoverBackground: '{surface.200}',\n activeBackground: '{surface.300}',\n color: '{surface.600}',\n hoverColor: '{surface.700}',\n activeColor: '{surface.800}'\n }\n },\n dark: {\n dropdown: {\n background: '{surface.800}',\n hoverBackground: '{surface.700}',\n activeBackground: '{surface.600}',\n color: '{surface.300}',\n hoverColor: '{surface.200}',\n activeColor: '{surface.100}'\n }\n }\n }\n};\n","export default {\n root: {\n width: '2rem',\n height: '2rem',\n fontSize: '1rem',\n background: '{content.border.color}',\n borderRadius: '{content.border.radius}'\n },\n group: {\n borderColor: '{content.background}',\n offset: '-1rem'\n },\n lg: {\n width: '3rem',\n height: '3rem',\n fontSize: '1.5rem'\n },\n xl: {\n width: '4rem',\n height: '4rem',\n fontSize: '2rem'\n }\n};\n","export default {\n root: {\n borderRadius: '{border.radius.md}',\n padding: '0 0.5rem',\n fontSize: '0.75rem',\n fontWeight: '700',\n minWidth: '1.5rem',\n height: '1.5rem'\n },\n dot: {\n size: '0.5rem'\n },\n sm: {\n fontSize: '0.625rem',\n minWidth: '1.25rem',\n height: '1.25rem'\n },\n lg: {\n fontSize: '0.875rem',\n minWidth: '1.75rem',\n height: '1.75rem'\n },\n xl: {\n fontSize: '1rem',\n minWidth: '2rem',\n height: '2rem'\n },\n colorScheme: {\n light: {\n primary: {\n background: '{primary.color}',\n color: '{primary.contrast.color}'\n },\n secondary: {\n background: '{surface.100}',\n color: '{surface.600}'\n },\n success: {\n background: '{green.500}',\n color: '{surface.0}'\n },\n info: {\n background: '{sky.500}',\n color: '{surface.0}'\n },\n warn: {\n background: '{orange.500}',\n color: '{surface.0}'\n },\n danger: {\n background: '{red.500}',\n color: '{surface.0}'\n },\n contrast: {\n background: '{surface.950}',\n color: '{surface.0}'\n }\n },\n dark: {\n primary: {\n background: '{primary.color}',\n color: '{primary.contrast.color}'\n },\n secondary: {\n background: '{surface.800}',\n color: '{surface.300}'\n },\n success: {\n background: '{green.400}',\n color: '{green.950}'\n },\n info: {\n background: '{sky.400}',\n color: '{sky.950}'\n },\n warn: {\n background: '{orange.400}',\n color: '{orange.950}'\n },\n danger: {\n background: '{red.400}',\n color: '{red.950}'\n },\n contrast: {\n background: '{surface.0}',\n color: '{surface.950}'\n }\n }\n }\n};\n","export default {\n root: {\n borderRadius: '{content.border.radius}'\n }\n};\n","export default {\n root: {\n padding: '1rem',\n background: '{content.background}',\n gap: '0.5rem',\n transitionDuration: '{transition.duration}'\n },\n item: {\n color: '{text.muted.color}',\n hoverColor: '{text.color}',\n borderRadius: '{content.border.radius}',\n gap: '{navigation.item.gap}',\n icon: {\n color: '{navigation.item.icon.color}',\n hoverColor: '{navigation.item.icon.focus.color}'\n },\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n }\n },\n separator: {\n color: '{navigation.item.icon.color}'\n }\n};\n","export default {\n root: {\n borderRadius: '{form.field.border.radius}',\n roundedBorderRadius: '2rem',\n gap: '0.5rem',\n paddingX: '{form.field.padding.x}',\n paddingY: '{form.field.padding.y}',\n iconOnlyWidth: '2.5rem',\n sm: {\n fontSize: '0.875rem',\n paddingX: '0.625rem',\n paddingY: '0.375rem'\n },\n lg: {\n fontSize: '1.125rem',\n paddingX: '0.875rem',\n paddingY: '0.625rem'\n },\n label: {\n fontWeight: '500'\n },\n raisedShadow: '0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12)',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n offset: '{focus.ring.offset}'\n },\n badgeSize: '1rem',\n transitionDuration: '{form.field.transition.duration}'\n },\n colorScheme: {\n light: {\n root: {\n primary: {\n background: '{primary.color}',\n hoverBackground: '{primary.hover.color}',\n activeBackground: '{primary.active.color}',\n borderColor: '{primary.color}',\n hoverBorderColor: '{primary.hover.color}',\n activeBorderColor: '{primary.active.color}',\n color: '{primary.contrast.color}',\n hoverColor: '{primary.contrast.color}',\n activeColor: '{primary.contrast.color}',\n focusRing: {\n color: '{primary.color}',\n shadow: 'none'\n }\n },\n secondary: {\n background: '{surface.100}',\n hoverBackground: '{surface.200}',\n activeBackground: '{surface.300}',\n borderColor: '{surface.100}',\n hoverBorderColor: '{surface.200}',\n activeBorderColor: '{surface.300}',\n color: '{surface.600}',\n hoverColor: '{surface.700}',\n activeColor: '{surface.800}',\n focusRing: {\n color: '{surface.600}',\n shadow: 'none'\n }\n },\n info: {\n background: '{sky.500}',\n hoverBackground: '{sky.600}',\n activeBackground: '{sky.700}',\n borderColor: '{sky.500}',\n hoverBorderColor: '{sky.600}',\n activeBorderColor: '{sky.700}',\n color: '#ffffff',\n hoverColor: '#ffffff',\n activeColor: '#ffffff',\n focusRing: {\n color: '{sky.500}',\n shadow: 'none'\n }\n },\n success: {\n background: '{green.500}',\n hoverBackground: '{green.600}',\n activeBackground: '{green.700}',\n borderColor: '{green.500}',\n hoverBorderColor: '{green.600}',\n activeBorderColor: '{green.700}',\n color: '#ffffff',\n hoverColor: '#ffffff',\n activeColor: '#ffffff',\n focusRing: {\n color: '{green.500}',\n shadow: 'none'\n }\n },\n warn: {\n background: '{orange.500}',\n hoverBackground: '{orange.600}',\n activeBackground: '{orange.700}',\n borderColor: '{orange.500}',\n hoverBorderColor: '{orange.600}',\n activeBorderColor: '{orange.700}',\n color: '#ffffff',\n hoverColor: '#ffffff',\n activeColor: '#ffffff',\n focusRing: {\n color: '{orange.500}',\n shadow: 'none'\n }\n },\n help: {\n background: '{purple.500}',\n hoverBackground: '{purple.600}',\n activeBackground: '{purple.700}',\n borderColor: '{purple.500}',\n hoverBorderColor: '{purple.600}',\n activeBorderColor: '{purple.700}',\n color: '#ffffff',\n hoverColor: '#ffffff',\n activeColor: '#ffffff',\n focusRing: {\n color: '{purple.500}',\n shadow: 'none'\n }\n },\n danger: {\n background: '{red.500}',\n hoverBackground: '{red.600}',\n activeBackground: '{red.700}',\n borderColor: '{red.500}',\n hoverBorderColor: '{red.600}',\n activeBorderColor: '{red.700}',\n color: '#ffffff',\n hoverColor: '#ffffff',\n activeColor: '#ffffff',\n focusRing: {\n color: '{red.500}',\n shadow: 'none'\n }\n },\n contrast: {\n background: '{surface.950}',\n hoverBackground: '{surface.900}',\n activeBackground: '{surface.800}',\n borderColor: '{surface.950}',\n hoverBorderColor: '{surface.900}',\n activeBorderColor: '{surface.800}',\n color: '{surface.0}',\n hoverColor: '{surface.0}',\n activeColor: '{surface.0}',\n focusRing: {\n color: '{surface.950}',\n shadow: 'none'\n }\n }\n },\n outlined: {\n primary: {\n hoverBackground: '{primary.50}',\n activeBackground: '{primary.100}',\n borderColor: '{primary.200}',\n color: '{primary.color}'\n },\n secondary: {\n hoverBackground: '{surface.50}',\n activeBackground: '{surface.100}',\n borderColor: '{surface.200}',\n color: '{surface.500}'\n },\n success: {\n hoverBackground: '{green.50}',\n activeBackground: '{green.100}',\n borderColor: '{green.200}',\n color: '{green.500}'\n },\n info: {\n hoverBackground: '{sky.50}',\n activeBackground: '{sky.100}',\n borderColor: '{sky.200}',\n color: '{sky.500}'\n },\n warn: {\n hoverBackground: '{orange.50}',\n activeBackground: '{orange.100}',\n borderColor: '{orange.200}',\n color: '{orange.500}'\n },\n help: {\n hoverBackground: '{purple.50}',\n activeBackground: '{purple.100}',\n borderColor: '{purple.200}',\n color: '{purple.500}'\n },\n danger: {\n hoverBackground: '{red.50}',\n activeBackground: '{red.100}',\n borderColor: '{red.200}',\n color: '{red.500}'\n },\n contrast: {\n hoverBackground: '{surface.50}',\n activeBackground: '{surface.100}',\n borderColor: '{surface.700}',\n color: '{surface.950}'\n },\n plain: {\n hoverBackground: '{surface.50}',\n activeBackground: '{surface.100}',\n borderColor: '{surface.200}',\n color: '{surface.700}'\n }\n },\n text: {\n primary: {\n hoverBackground: '{primary.50}',\n activeBackground: '{primary.100}',\n color: '{primary.color}'\n },\n secondary: {\n hoverBackground: '{surface.50}',\n activeBackground: '{surface.100}',\n color: '{surface.500}'\n },\n success: {\n hoverBackground: '{green.50}',\n activeBackground: '{green.100}',\n color: '{green.500}'\n },\n info: {\n hoverBackground: '{sky.50}',\n activeBackground: '{sky.100}',\n color: '{sky.500}'\n },\n warn: {\n hoverBackground: '{orange.50}',\n activeBackground: '{orange.100}',\n color: '{orange.500}'\n },\n help: {\n hoverBackground: '{purple.50}',\n activeBackground: '{purple.100}',\n color: '{purple.500}'\n },\n danger: {\n hoverBackground: '{red.50}',\n activeBackground: '{red.100}',\n color: '{red.500}'\n },\n plain: {\n hoverBackground: '{surface.50}',\n activeBackground: '{surface.100}',\n color: '{surface.700}'\n }\n },\n link: {\n color: '{primary.color}',\n hoverColor: '{primary.color}',\n activeColor: '{primary.color}'\n }\n },\n dark: {\n root: {\n primary: {\n background: '{primary.color}',\n hoverBackground: '{primary.hover.color}',\n activeBackground: '{primary.active.color}',\n borderColor: '{primary.color}',\n hoverBorderColor: '{primary.hover.color}',\n activeBorderColor: '{primary.active.color}',\n color: '{primary.contrast.color}',\n hoverColor: '{primary.contrast.color}',\n activeColor: '{primary.contrast.color}',\n focusRing: {\n color: '{primary.color}',\n shadow: 'none'\n }\n },\n secondary: {\n background: '{surface.800}',\n hoverBackground: '{surface.700}',\n activeBackground: '{surface.600}',\n borderColor: '{surface.800}',\n hoverBorderColor: '{surface.700}',\n activeBorderColor: '{surface.600}',\n color: '{surface.300}',\n hoverColor: '{surface.200}',\n activeColor: '{surface.100}',\n focusRing: {\n color: '{surface.300}',\n shadow: 'none'\n }\n },\n info: {\n background: '{sky.400}',\n hoverBackground: '{sky.300}',\n activeBackground: '{sky.200}',\n borderColor: '{sky.400}',\n hoverBorderColor: '{sky.300}',\n activeBorderColor: '{sky.200}',\n color: '{sky.950}',\n hoverColor: '{sky.950}',\n activeColor: '{sky.950}',\n focusRing: {\n color: '{sky.400}',\n shadow: 'none'\n }\n },\n success: {\n background: '{green.400}',\n hoverBackground: '{green.300}',\n activeBackground: '{green.200}',\n borderColor: '{green.400}',\n hoverBorderColor: '{green.300}',\n activeBorderColor: '{green.200}',\n color: '{green.950}',\n hoverColor: '{green.950}',\n activeColor: '{green.950}',\n focusRing: {\n color: '{green.400}',\n shadow: 'none'\n }\n },\n warn: {\n background: '{orange.400}',\n hoverBackground: '{orange.300}',\n activeBackground: '{orange.200}',\n borderColor: '{orange.400}',\n hoverBorderColor: '{orange.300}',\n activeBorderColor: '{orange.200}',\n color: '{orange.950}',\n hoverColor: '{orange.950}',\n activeColor: '{orange.950}',\n focusRing: {\n color: '{orange.400}',\n shadow: 'none'\n }\n },\n help: {\n background: '{purple.400}',\n hoverBackground: '{purple.300}',\n activeBackground: '{purple.200}',\n borderColor: '{purple.400}',\n hoverBorderColor: '{purple.300}',\n activeBorderColor: '{purple.200}',\n color: '{purple.950}',\n hoverColor: '{purple.950}',\n activeColor: '{purple.950}',\n focusRing: {\n color: '{purple.400}',\n shadow: 'none'\n }\n },\n danger: {\n background: '{red.400}',\n hoverBackground: '{red.300}',\n activeBackground: '{red.200}',\n borderColor: '{red.400}',\n hoverBorderColor: '{red.300}',\n activeBorderColor: '{red.200}',\n color: '{red.950}',\n hoverColor: '{red.950}',\n activeColor: '{red.950}',\n focusRing: {\n color: '{red.400}',\n shadow: 'none'\n }\n },\n contrast: {\n background: '{surface.0}',\n hoverBackground: '{surface.100}',\n activeBackground: '{surface.200}',\n borderColor: '{surface.0}',\n hoverBorderColor: '{surface.100}',\n activeBorderColor: '{surface.200}',\n color: '{surface.950}',\n hoverColor: '{surface.950}',\n activeColor: '{surface.950}',\n focusRing: {\n color: '{surface.0}',\n shadow: 'none'\n }\n }\n },\n outlined: {\n primary: {\n hoverBackground: 'color-mix(in srgb, {primary.color}, transparent 96%)',\n activeBackground: 'color-mix(in srgb, {primary.color}, transparent 84%)',\n borderColor: '{primary.700}',\n color: '{primary.color}'\n },\n secondary: {\n hoverBackground: 'rgba(255,255,255,0.04)',\n activeBackground: 'rgba(255,255,255,0.16)',\n borderColor: '{surface.700}',\n color: '{surface.400}'\n },\n success: {\n hoverBackground: 'color-mix(in srgb, {green.400}, transparent 96%)',\n activeBackground: 'color-mix(in srgb, {green.400}, transparent 84%)',\n borderColor: '{green.700}',\n color: '{green.400}'\n },\n info: {\n hoverBackground: 'color-mix(in srgb, {sky.400}, transparent 96%)',\n activeBackground: 'color-mix(in srgb, {sky.400}, transparent 84%)',\n borderColor: '{sky.700}',\n color: '{sky.400}'\n },\n warn: {\n hoverBackground: 'color-mix(in srgb, {orange.400}, transparent 96%)',\n activeBackground: 'color-mix(in srgb, {orange.400}, transparent 84%)',\n borderColor: '{orange.700}',\n color: '{orange.400}'\n },\n help: {\n hoverBackground: 'color-mix(in srgb, {purple.400}, transparent 96%)',\n activeBackground: 'color-mix(in srgb, {purple.400}, transparent 84%)',\n borderColor: '{purple.700}',\n color: '{purple.400}'\n },\n danger: {\n hoverBackground: 'color-mix(in srgb, {red.400}, transparent 96%)',\n activeBackground: 'color-mix(in srgb, {red.400}, transparent 84%)',\n borderColor: '{red.700}',\n color: '{red.400}'\n },\n contrast: {\n hoverBackground: '{surface.800}',\n activeBackground: '{surface.700}',\n borderColor: '{surface.500}',\n color: '{surface.0}'\n },\n plain: {\n hoverBackground: '{surface.800}',\n activeBackground: '{surface.700}',\n borderColor: '{surface.600}',\n color: '{surface.0}'\n }\n },\n text: {\n primary: {\n hoverBackground: 'color-mix(in srgb, {primary.color}, transparent 96%)',\n activeBackground: 'color-mix(in srgb, {primary.color}, transparent 84%)',\n color: '{primary.color}'\n },\n secondary: {\n hoverBackground: '{surface.800}',\n activeBackground: '{surface.700}',\n color: '{surface.400}'\n },\n success: {\n hoverBackground: 'color-mix(in srgb, {green.400}, transparent 96%)',\n activeBackground: 'color-mix(in srgb, {green.400}, transparent 84%)',\n color: '{green.400}'\n },\n info: {\n hoverBackground: 'color-mix(in srgb, {sky.400}, transparent 96%)',\n activeBackground: 'color-mix(in srgb, {sky.400}, transparent 84%)',\n color: '{sky.400}'\n },\n warn: {\n hoverBackground: 'color-mix(in srgb, {orange.400}, transparent 96%)',\n activeBackground: 'color-mix(in srgb, {orange.400}, transparent 84%)',\n color: '{orange.400}'\n },\n help: {\n hoverBackground: 'color-mix(in srgb, {purple.400}, transparent 96%)',\n activeBackground: 'color-mix(in srgb, {purple.400}, transparent 84%)',\n color: '{purple.400}'\n },\n danger: {\n hoverBackground: 'color-mix(in srgb, {red.400}, transparent 96%)',\n activeBackground: 'color-mix(in srgb, {red.400}, transparent 84%)',\n color: '{red.400}'\n },\n plain: {\n hoverBackground: '{surface.800}',\n activeBackground: '{surface.700}',\n color: '{surface.0}'\n }\n },\n link: {\n color: '{primary.color}',\n hoverColor: '{primary.color}',\n activeColor: '{primary.color}'\n }\n }\n }\n};\n","export default {\n root: {\n background: '{content.background}',\n borderRadius: '{border.radius.xl}',\n color: '{content.color}',\n shadow: '0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1)'\n },\n body: {\n padding: '1.25rem',\n gap: '0.5rem'\n },\n caption: {\n gap: '0.5rem'\n },\n title: {\n fontSize: '1.25rem',\n fontWeight: '500'\n },\n subtitle: {\n color: '{text.muted.color}'\n }\n};\n","export default {\n root: {\n transitionDuration: '{transition.duration}'\n },\n content: {\n gap: '0.25rem'\n },\n indicatorList: {\n padding: '1rem',\n gap: '0.5rem'\n },\n indicator: {\n width: '2rem',\n height: '0.5rem',\n borderRadius: '{content.border.radius}',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n }\n },\n colorScheme: {\n light: {\n indicator: {\n background: '{surface.200}',\n hoverBackground: '{surface.300}',\n activeBackground: '{primary.color}'\n }\n },\n dark: {\n indicator: {\n background: '{surface.700}',\n hoverBackground: '{surface.600}',\n activeBackground: '{primary.color}'\n }\n }\n }\n};\n","export default {\n root: {\n background: '{form.field.background}',\n disabledBackground: '{form.field.disabled.background}',\n filledBackground: '{form.field.filled.background}',\n filledFocusBackground: '{form.field.filled.focus.background}',\n borderColor: '{form.field.border.color}',\n hoverBorderColor: '{form.field.hover.border.color}',\n focusBorderColor: '{form.field.focus.border.color}',\n invalidBorderColor: '{form.field.invalid.border.color}',\n color: '{form.field.color}',\n disabledColor: '{form.field.disabled.color}',\n placeholderColor: '{form.field.placeholder.color}',\n shadow: '{form.field.shadow}',\n paddingX: '{form.field.padding.x}',\n paddingY: '{form.field.padding.y}',\n borderRadius: '{form.field.border.radius}',\n focusRing: {\n width: '{form.field.focus.ring.width}',\n style: '{form.field.focus.ring.style}',\n color: '{form.field.focus.ring.color}',\n offset: '{form.field.focus.ring.offset}',\n shadow: '{form.field.focus.ring.shadow}'\n },\n transitionDuration: '{form.field.transition.duration}'\n },\n dropdown: {\n width: '2.5rem',\n color: '{form.field.icon.color}'\n },\n overlay: {\n background: '{overlay.select.background}',\n borderColor: '{overlay.select.border.color}',\n borderRadius: '{overlay.select.border.radius}',\n color: '{overlay.select.color}',\n shadow: '{overlay.select.shadow}'\n },\n list: {\n padding: '{list.padding}',\n gap: '{list.gap}'\n },\n option: {\n focusBackground: '{list.option.focus.background}',\n selectedBackground: '{list.option.selected.background}',\n selectedFocusBackground: '{list.option.selected.focus.background}',\n color: '{list.option.color}',\n focusColor: '{list.option.focus.color}',\n selectedColor: '{list.option.selected.color}',\n selectedFocusColor: '{list.option.selected.focus.color}',\n padding: '{list.option.padding}',\n borderRadius: '{list.option.border.radius}',\n icon: {\n color: '{list.option.icon.color}',\n focusColor: '{list.option.icon.focus.color}',\n size: '0.875rem'\n }\n }\n};\n","export default {\n root: {\n borderRadius: '{border.radius.sm}',\n width: '1.25rem',\n height: '1.25rem',\n background: '{form.field.background}',\n checkedBackground: '{primary.color}',\n checkedHoverBackground: '{primary.hover.color}',\n disabledBackground: '{form.field.disabled.background}',\n filledBackground: '{form.field.filled.background}',\n borderColor: '{form.field.border.color}',\n hoverBorderColor: '{form.field.hover.border.color}',\n focusBorderColor: '{form.field.border.color}',\n checkedBorderColor: '{primary.color}',\n checkedHoverBorderColor: '{primary.hover.color}',\n checkedFocusBorderColor: '{primary.color}',\n checkedDisabledBorderColor: '{form.field.border.color}',\n invalidBorderColor: '{form.field.invalid.border.color}',\n shadow: '{form.field.shadow}',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n },\n transitionDuration: '{form.field.transition.duration}'\n },\n icon: {\n size: '0.875rem',\n color: '{form.field.color}',\n checkedColor: '{primary.contrast.color}',\n checkedHoverColor: '{primary.contrast.color}',\n disabledColor: '{form.field.disabled.color}'\n }\n};\n","export default {\n root: {\n borderRadius: '16px',\n paddingX: '0.75rem',\n paddingY: '0.5rem',\n gap: '0.5rem',\n transitionDuration: '{transition.duration}'\n },\n image: {\n width: '2rem',\n height: '2rem'\n },\n icon: {\n size: '1rem'\n },\n removeIcon: {\n size: '1rem',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{form.field.focus.ring.shadow}'\n }\n },\n colorScheme: {\n light: {\n root: {\n background: '{surface.100}',\n color: '{surface.800}'\n },\n icon: {\n color: '{surface.800}'\n },\n removeIcon: {\n color: '{surface.800}'\n }\n },\n dark: {\n root: {\n background: '{surface.800}',\n color: '{surface.0}'\n },\n icon: {\n color: '{surface.0}'\n },\n removeIcon: {\n color: '{surface.0}'\n }\n }\n }\n};\n","export default {\n root: {\n transitionDuration: '{transition.duration}'\n },\n preview: {\n width: '1.5rem',\n height: '1.5rem',\n borderRadius: '{form.field.border.radius}',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n }\n },\n panel: {\n shadow: '{overlay.popover.shadow}',\n borderRadius: '{overlay.popover.borderRadius}'\n },\n colorScheme: {\n light: {\n panel: {\n background: '{surface.800}',\n borderColor: '{surface.900}'\n },\n handle: {\n color: '{surface.0}'\n }\n },\n dark: {\n panel: {\n background: '{surface.900}',\n borderColor: '{surface.700}'\n },\n handle: {\n color: '{surface.0}'\n }\n }\n }\n};\n","export default {\n icon: {\n size: '2rem',\n color: '{overlay.modal.color}'\n },\n content: {\n gap: '1rem'\n }\n};\n","export default {\n root: {\n background: '{overlay.popover.background}',\n borderColor: '{overlay.popover.border.color}',\n color: '{overlay.popover.color}',\n borderRadius: '{overlay.popover.border.radius}',\n shadow: '{overlay.popover.shadow}',\n gutter: '10px',\n arrowOffset: '1.25rem'\n },\n content: {\n padding: '{overlay.popover.padding}',\n gap: '1rem'\n },\n icon: {\n size: '1.5rem',\n color: '{overlay.popover.color}'\n },\n footer: {\n gap: '0.5rem',\n padding: '0 {overlay.popover.padding} {overlay.popover.padding} {overlay.popover.padding}'\n }\n};\n","export default {\n root: {\n background: '{content.background}',\n borderColor: '{content.border.color}',\n color: '{content.color}',\n borderRadius: '{content.border.radius}',\n shadow: '{overlay.navigation.shadow}',\n transitionDuration: '{transition.duration}'\n },\n list: {\n padding: '{navigation.list.padding}',\n gap: '{navigation.list.gap}'\n },\n item: {\n focusBackground: '{navigation.item.focus.background}',\n activeBackground: '{navigation.item.active.background}',\n color: '{navigation.item.color}',\n focusColor: '{navigation.item.focus.color}',\n activeColor: '{navigation.item.active.color}',\n padding: '{navigation.item.padding}',\n borderRadius: '{navigation.item.border.radius}',\n gap: '{navigation.item.gap}',\n icon: {\n color: '{navigation.item.icon.color}',\n focusColor: '{navigation.item.icon.focus.color}',\n activeColor: '{navigation.item.icon.active.color}'\n }\n },\n submenuIcon: {\n size: '{navigation.submenu.icon.size}',\n color: '{navigation.submenu.icon.color}',\n focusColor: '{navigation.submenu.icon.focus.color}',\n activeColor: '{navigation.submenu.icon.active.color}'\n },\n separator: {\n borderColor: '{content.border.color}'\n }\n};\n","export default {\n root: {\n transitionDuration: '{transition.duration}'\n },\n header: {\n background: '{content.background}',\n borderColor: '{datatable.border.color}',\n color: '{content.color}',\n borderWidth: '0 0 1px 0',\n padding: '0.75rem 1rem'\n },\n headerCell: {\n background: '{content.background}',\n hoverBackground: '{content.hover.background}',\n selectedBackground: '{highlight.background}',\n borderColor: '{datatable.border.color}',\n color: '{content.color}',\n hoverColor: '{content.hover.color}',\n selectedColor: '{highlight.color}',\n gap: '0.5rem',\n padding: '0.75rem 1rem',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '-1px',\n shadow: '{focus.ring.shadow}'\n }\n },\n columnTitle: {\n fontWeight: '600'\n },\n row: {\n background: '{content.background}',\n hoverBackground: '{content.hover.background}',\n selectedBackground: '{highlight.background}',\n color: '{content.color}',\n hoverColor: '{content.hover.color}',\n selectedColor: '{highlight.color}',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '-1px',\n shadow: '{focus.ring.shadow}'\n }\n },\n bodyCell: {\n borderColor: '{datatable.border.color}',\n padding: '0.75rem 1rem'\n },\n footerCell: {\n background: '{content.background}',\n borderColor: '{datatable.border.color}',\n color: '{content.color}',\n padding: '0.75rem 1rem'\n },\n columnFooter: {\n fontWeight: '600'\n },\n footer: {\n background: '{content.background}',\n borderColor: '{datatable.border.color}',\n color: '{content.color}',\n borderWidth: '0 0 1px 0',\n padding: '0.75rem 1rem'\n },\n dropPointColor: '{primary.color}',\n columnResizerWidth: '0.5rem',\n resizeIndicator: {\n width: '1px',\n color: '{primary.color}'\n },\n sortIcon: {\n color: '{text.muted.color}',\n hoverColor: '{text.hover.muted.color}'\n },\n loadingIcon: {\n size: '2rem'\n },\n rowToggleButton: {\n hoverBackground: '{content.hover.background}',\n selectedHoverBackground: '{content.background}',\n color: '{text.muted.color}',\n hoverColor: '{text.color}',\n selectedHoverColor: '{primary.color}',\n size: '1.75rem',\n borderRadius: '50%',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n }\n },\n filter: {\n inlineGap: '0.5rem',\n overlaySelect: {\n background: '{overlay.select.background}',\n borderColor: '{overlay.select.border.color}',\n borderRadius: '{overlay.select.border.radius}',\n color: '{overlay.select.color}',\n shadow: '{overlay.select.shadow}'\n },\n overlayPopover: {\n background: '{overlay.popover.background}',\n borderColor: '{overlay.popover.border.color}',\n borderRadius: '{overlay.popover.border.radius}',\n color: '{overlay.popover.color}',\n shadow: '{overlay.popover.shadow}',\n padding: '{overlay.popover.padding}',\n gap: '0.5rem'\n },\n rule: {\n borderColor: '{content.border.color}'\n },\n constraintList: {\n padding: '{list.padding}',\n gap: '{list.gap}'\n },\n constraint: {\n focusBackground: '{list.option.focus.background}',\n selectedBackground: '{list.option.selected.background}',\n selectedFocusBackground: '{list.option.selected.focus.background}',\n color: '{list.option.color}',\n focusColor: '{list.option.focus.color}',\n selectedColor: '{list.option.selected.color}',\n selectedFocusColor: '{list.option.selected.focus.color}',\n separator: {\n borderColor: '{content.border.color}'\n },\n padding: '{list.option.padding}',\n borderRadius: '{list.option.border.radius}'\n }\n },\n paginatorTop: {\n borderColor: '{datatable.border.color}',\n borderWidth: '0 0 1px 0'\n },\n paginatorBottom: {\n borderColor: '{datatable.border.color}',\n borderWidth: '0 0 1px 0'\n },\n colorScheme: {\n light: {\n root: {\n borderColor: '{content.border.color}'\n },\n row: {\n stripedBackground: '{surface.50}'\n },\n bodyCell: {\n selectedBorderColor: '{primary.100}'\n }\n },\n dark: {\n root: {\n borderColor: '{surface.800}'\n },\n row: {\n stripedBackground: '{surface.950}'\n },\n bodyCell: {\n selectedBorderColor: '{primary.900}'\n }\n }\n }\n};\n","export default {\n root: {\n borderColor: 'transparent',\n borderWidth: '0',\n borderRadius: '0',\n padding: '0'\n },\n header: {\n background: '{content.background}',\n color: '{content.color}',\n borderColor: '{content.border.color}',\n borderWidth: '0 0 1px 0',\n padding: '0.75rem 1rem',\n borderRadius: '0'\n },\n content: {\n background: '{content.background}',\n color: '{content.color}',\n borderColor: 'transparent',\n borderWidth: '0',\n padding: '0',\n borderRadius: '0'\n },\n footer: {\n background: '{content.background}',\n color: '{content.color}',\n borderColor: '{content.border.color}',\n borderWidth: '1px 0 0 0',\n padding: '0.75rem 1rem',\n borderRadius: '0'\n },\n paginatorTop: {\n borderColor: '{content.border.color}',\n borderWidth: '0 0 1px 0'\n },\n paginatorBottom: {\n borderColor: '{content.border.color}',\n borderWidth: '1px 0 0 0'\n }\n};\n","export default {\n root: {\n transitionDuration: '{transition.duration}'\n },\n panel: {\n background: '{content.background}',\n borderColor: '{content.border.color}',\n color: '{content.color}',\n borderRadius: '{content.border.radius}',\n shadow: '{overlay.popover.shadow}',\n padding: '{overlay.popover.padding}'\n },\n header: {\n background: '{content.background}',\n borderColor: '{content.border.color}',\n color: '{content.color}',\n padding: '0 0 0.5rem 0',\n fontWeight: '500',\n gap: '0.5rem'\n },\n title: {\n gap: '0.5rem',\n fontWeight: '500'\n },\n dropdown: {\n width: '2.5rem',\n borderColor: '{form.field.border.color}',\n hoverBorderColor: '{form.field.border.color}',\n activeBorderColor: '{form.field.border.color}',\n borderRadius: '{form.field.border.radius}',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n }\n },\n inputIcon: {\n color: '{form.field.icon.color}'\n },\n selectMonth: {\n hoverBackground: '{content.hover.background}',\n color: '{content.color}',\n hoverColor: '{content.hover.color}',\n padding: '0.25rem 0.5rem',\n borderRadius: '{content.border.radius}'\n },\n selectYear: {\n hoverBackground: '{content.hover.background}',\n color: '{content.color}',\n hoverColor: '{content.hover.color}',\n padding: '0.25rem 0.5rem',\n borderRadius: '{content.border.radius}'\n },\n group: {\n borderColor: '{content.border.color}',\n gap: '{overlay.popover.padding}'\n },\n dayView: {\n margin: '0.5rem 0 0 0'\n },\n weekDay: {\n padding: '0.25rem',\n fontWeight: '500',\n color: '{content.color}'\n },\n date: {\n hoverBackground: '{content.hover.background}',\n selectedBackground: '{primary.color}',\n rangeSelectedBackground: '{highlight.background}',\n color: '{content.color}',\n hoverColor: '{content.hover.color}',\n selectedColor: '{primary.contrast.color}',\n rangeSelectedColor: '{highlight.color}',\n width: '2rem',\n height: '2rem',\n borderRadius: '50%',\n padding: '0.25rem',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n }\n },\n monthView: {\n margin: '0.5rem 0 0 0'\n },\n month: {\n borderRadius: '{content.border.radius}'\n },\n yearView: {\n margin: '0.5rem 0 0 0'\n },\n year: {\n borderRadius: '{content.border.radius}'\n },\n buttonbar: {\n padding: '0.5rem 0 0 0',\n borderColor: '{content.border.color}'\n },\n timePicker: {\n padding: '0.5rem 0 0 0',\n borderColor: '{content.border.color}',\n gap: '0.5rem',\n buttonGap: '0.25rem'\n },\n colorScheme: {\n light: {\n dropdown: {\n background: '{surface.100}',\n hoverBackground: '{surface.200}',\n activeBackground: '{surface.300}',\n color: '{surface.600}',\n hoverColor: '{surface.700}',\n activeColor: '{surface.800}'\n },\n today: {\n background: '{surface.200}',\n color: '{surface.900}'\n }\n },\n dark: {\n dropdown: {\n background: '{surface.800}',\n hoverBackground: '{surface.700}',\n activeBackground: '{surface.600}',\n color: '{surface.300}',\n hoverColor: '{surface.200}',\n activeColor: '{surface.100}'\n },\n today: {\n background: '{surface.700}',\n color: '{surface.0}'\n }\n }\n }\n};\n","export default {\n root: {\n background: '{overlay.modal.background}',\n borderColor: '{overlay.modal.border.color}',\n color: '{overlay.modal.color}',\n borderRadius: '{overlay.modal.border.radius}',\n shadow: '{overlay.modal.shadow}'\n },\n header: {\n padding: '{overlay.modal.padding}',\n gap: '0.5rem'\n },\n title: {\n fontSize: '1.25rem',\n fontWeight: '600'\n },\n content: {\n padding: '0 {overlay.modal.padding} {overlay.modal.padding} {overlay.modal.padding}'\n },\n footer: {\n padding: '0 {overlay.modal.padding} {overlay.modal.padding} {overlay.modal.padding}',\n gap: '0.5rem'\n }\n};\n","export default {\n root: {\n borderColor: '{content.border.color}'\n },\n content: {\n background: '{content.background}',\n color: '{text.color}'\n },\n horizontal: {\n margin: '1rem 0',\n padding: '0 1rem',\n content: {\n padding: '0 0.5rem'\n }\n },\n vertical: {\n margin: '0 1rem',\n padding: '0.5rem 0',\n content: {\n padding: '0.5rem 0'\n }\n }\n};\n","export default {\n root: {\n background: 'rgba(255, 255, 255, 0.1)',\n borderColor: 'rgba(255, 255, 255, 0.2)',\n padding: '0.5rem',\n borderRadius: '{border.radius.xl}'\n },\n item: {\n borderRadius: '{content.border.radius}',\n padding: '0.5rem',\n size: '3rem',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n }\n }\n};\n","export default {\n root: {\n background: '{overlay.modal.background}',\n borderColor: '{overlay.modal.border.color}',\n color: '{overlay.modal.color}',\n borderRadius: '{overlay.modal.border.radius}',\n shadow: '{overlay.modal.shadow}'\n },\n header: {\n padding: '{overlay.modal.padding}'\n },\n title: {\n fontSize: '1.5rem',\n fontWeight: '600'\n },\n content: {\n padding: '0 {overlay.modal.padding} {overlay.modal.padding} {overlay.modal.padding}'\n }\n};\n","export default {\n toolbar: {\n background: '{content.background}',\n borderColor: '{content.border.color}',\n borderRadius: '{content.border.radius}'\n },\n toolbarItem: {\n color: '{text.muted.color}',\n hoverColor: '{text.color}',\n activeColor: '{primary.color}'\n },\n overlay: {\n background: '{overlay.select.background}',\n borderColor: '{overlay.select.border.color}',\n borderRadius: '{overlay.select.border.radius}',\n color: '{overlay.select.color}',\n shadow: '{overlay.select.shadow}',\n padding: '{list.padding}'\n },\n overlayOption: {\n focusBackground: '{list.option.focus.background}',\n color: '{list.option.color}',\n focusColor: '{list.option.focus.color}',\n padding: '{list.option.padding}',\n borderRadius: '{list.option.border.radius}'\n },\n content: {\n background: '{content.background}',\n borderColor: '{content.border.color}',\n color: '{content.color}',\n borderRadius: '{content.border.radius}'\n }\n};\n","export default {\n root: {\n background: '{content.background}',\n borderColor: '{content.border.color}',\n borderRadius: '{content.border.radius}',\n color: '{content.color}',\n padding: '0 1.125rem 1.125rem 1.125rem',\n transitionDuration: '{transition.duration}'\n },\n legend: {\n background: '{content.background}',\n hoverBackground: '{content.hover.background}',\n color: '{content.color}',\n hoverColor: '{content.hover.color}',\n borderRadius: '{content.border.radius}',\n borderWidth: '1px',\n borderColor: 'transparent',\n padding: '0.5rem 0.75rem',\n gap: '0.5rem',\n fontWeight: '600',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n }\n },\n toggleIcon: {\n color: '{text.muted.color}',\n hoverColor: '{text.hover.muted.color}'\n },\n content: {\n padding: '0'\n }\n};\n","export default {\n root: {\n background: '{content.background}',\n borderColor: '{content.border.color}',\n color: '{content.color}',\n borderRadius: '{content.border.radius}',\n transitionDuration: '{transition.duration}'\n },\n header: {\n background: 'transparent',\n color: '{text.color}',\n padding: '1.125rem',\n borderWidth: '0',\n borderRadius: '0',\n gap: '0.5rem'\n },\n content: {\n highlightBorderColor: '{primary.color}',\n padding: '0 1.125rem 1.125rem 1.125rem'\n },\n file: {\n padding: '1rem',\n gap: '1rem',\n borderColor: '{content.border.color}',\n info: {\n gap: '0.5rem'\n }\n },\n progressbar: {\n height: '0.25rem'\n },\n basic: {\n gap: '0.5rem'\n }\n};\n","export default {\n root: {\n color: '{form.field.float.label.color}',\n focusColor: '{form.field.float.label.focus.color}',\n invalidColor: '{form.field.float.label.invalid.color}',\n transitionDuration: '0.2s'\n }\n};\n","export default {\n root: {\n borderWidth: '1px',\n borderColor: '{content.border.color}',\n borderRadius: '{content.border.radius}',\n transitionDuration: '{transition.duration}'\n },\n navButton: {\n background: 'rgba(255, 255, 255, 0.1)',\n hoverBackground: 'rgba(255, 255, 255, 0.2)',\n color: '{surface.100}',\n hoverColor: '{surface.0}',\n size: '3rem',\n gutter: '0.5rem',\n prev: {\n borderRadius: '50%'\n },\n next: {\n borderRadius: '50%'\n },\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n }\n },\n navIcon: {\n size: '1.5rem'\n },\n thumbnailsContent: {\n background: '{content.background}',\n padding: '1rem 0.25rem'\n },\n thumbnailNavButton: {\n size: '2rem',\n borderRadius: '{content.border.radius}',\n gutter: '0.5rem',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n }\n },\n thumbnailNavButtonIcon: {\n size: '1rem'\n },\n caption: {\n background: 'rgba(0, 0, 0, 0.5)',\n color: '{surface.100}',\n padding: '1rem'\n },\n indicatorList: {\n gap: '0.5rem',\n padding: '1rem'\n },\n indicatorButton: {\n width: '1rem',\n height: '1rem',\n activeBackground: '{primary.color}',\n borderRadius: '50%',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n }\n },\n insetIndicatorList: {\n background: 'rgba(0, 0, 0, 0.5)'\n },\n insetIndicatorButton: {\n background: 'rgba(255, 255, 255, 0.4)',\n hoverBackground: 'rgba(255, 255, 255, 0.6)',\n activeBackground: 'rgba(255, 255, 255, 0.9)'\n },\n mask: {\n background: '{mask.background}',\n color: '{mask.color}'\n },\n closeButton: {\n size: '3rem',\n gutter: '0.5rem',\n background: 'rgba(255, 255, 255, 0.1)',\n hoverBackground: 'rgba(255, 255, 255, 0.2)',\n color: '{surface.50}',\n hoverColor: '{surface.0}',\n borderRadius: '50%',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n }\n },\n closeButtonIcon: {\n size: '1.5rem'\n },\n colorScheme: {\n light: {\n thumbnailNavButton: {\n hoverBackground: '{surface.100}',\n color: '{surface.600}',\n hoverColor: '{surface.700}'\n },\n indicatorButton: {\n background: '{surface.200}',\n hoverBackground: '{surface.300}'\n }\n },\n dark: {\n thumbnailNavButton: {\n hoverBackground: '{surface.700}',\n color: '{surface.400}',\n hoverColor: '{surface.0}'\n },\n indicatorButton: {\n background: '{surface.700}',\n hoverBackground: '{surface.600}'\n }\n }\n }\n};\n","export default {\n icon: {\n color: '{form.field.icon.color}'\n }\n};\n","export default {\n root: {\n transitionDuration: '{transition.duration}'\n },\n preview: {\n icon: {\n size: '1.5rem'\n },\n mask: {\n background: '{mask.background}',\n color: '{mask.color}'\n }\n },\n toolbar: {\n position: {\n left: 'auto',\n right: '1rem',\n top: '1rem',\n bottom: 'auto'\n },\n blur: '8px',\n background: 'rgba(255,255,255,0.1)',\n borderColor: 'rgba(255,255,255,0.2)',\n borderWidth: '1px',\n borderRadius: '30px',\n padding: '.5rem',\n gap: '0.5rem'\n },\n action: {\n hoverBackground: 'rgba(255,255,255,0.1)',\n color: '{surface.50}',\n hoverColor: '{surface.0}',\n size: '3rem',\n iconSize: '1.5rem',\n borderRadius: '50%',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n }\n }\n};\n","export default {\n root: {\n padding: '{form.field.padding.y} {form.field.padding.x}',\n borderRadius: '{content.border.radius}',\n gap: '0.5rem'\n },\n text: {\n fontWeight: '500'\n },\n icon: {\n size: '1rem'\n },\n colorScheme: {\n light: {\n info: {\n background: 'color-mix(in srgb, {blue.50}, transparent 5%)',\n borderColor: '{blue.200}',\n color: '{blue.600}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {blue.500}, transparent 96%)'\n },\n success: {\n background: 'color-mix(in srgb, {green.50}, transparent 5%)',\n borderColor: '{green.200}',\n color: '{green.600}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {green.500}, transparent 96%)'\n },\n warn: {\n background: 'color-mix(in srgb,{yellow.50}, transparent 5%)',\n borderColor: '{yellow.200}',\n color: '{yellow.600}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {yellow.500}, transparent 96%)'\n },\n error: {\n background: 'color-mix(in srgb, {red.50}, transparent 5%)',\n borderColor: '{red.200}',\n color: '{red.600}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {red.500}, transparent 96%)'\n },\n secondary: {\n background: '{surface.100}',\n borderColor: '{surface.200}',\n color: '{surface.600}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {surface.500}, transparent 96%)'\n },\n contrast: {\n background: '{surface.900}',\n borderColor: '{surface.950}',\n color: '{surface.50}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {surface.950}, transparent 96%)'\n }\n },\n dark: {\n info: {\n background: 'color-mix(in srgb, {blue.500}, transparent 84%)',\n borderColor: 'color-mix(in srgb, {blue.700}, transparent 64%)',\n color: '{blue.500}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {blue.500}, transparent 96%)'\n },\n success: {\n background: 'color-mix(in srgb, {green.500}, transparent 84%)',\n borderColor: 'color-mix(in srgb, {green.700}, transparent 64%)',\n color: '{green.500}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {green.500}, transparent 96%)'\n },\n warn: {\n background: 'color-mix(in srgb, {yellow.500}, transparent 84%)',\n borderColor: 'color-mix(in srgb, {yellow.700}, transparent 64%)',\n color: '{yellow.500}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {yellow.500}, transparent 96%)'\n },\n error: {\n background: 'color-mix(in srgb, {red.500}, transparent 84%)',\n borderColor: 'color-mix(in srgb, {red.700}, transparent 64%)',\n color: '{red.500}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {red.500}, transparent 96%)'\n },\n secondary: {\n background: '{surface.800}',\n borderColor: '{surface.700}',\n color: '{surface.300}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {surface.500}, transparent 96%)'\n },\n contrast: {\n background: '{surface.0}',\n borderColor: '{surface.100}',\n color: '{surface.950}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {surface.950}, transparent 96%)'\n }\n }\n }\n};\n","export default {\n root: {\n padding: '{form.field.padding.y} {form.field.padding.x}',\n borderRadius: '{content.border.radius}',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n },\n transitionDuration: '{transition.duration}'\n },\n display: {\n hoverBackground: '{content.hover.background}',\n hoverColor: '{content.hover.color}'\n }\n};\n","export default {\n root: {\n background: '{form.field.background}',\n disabledBackground: '{form.field.disabled.background}',\n filledBackground: '{form.field.filled.background}',\n filledFocusBackground: '{form.field.filled.focus.background}',\n borderColor: '{form.field.border.color}',\n hoverBorderColor: '{form.field.hover.border.color}',\n focusBorderColor: '{form.field.focus.border.color}',\n invalidBorderColor: '{form.field.invalid.border.color}',\n color: '{form.field.color}',\n disabledColor: '{form.field.disabled.color}',\n placeholderColor: '{form.field.placeholder.color}',\n shadow: '{form.field.shadow}',\n paddingX: '{form.field.padding.x}',\n paddingY: '{form.field.padding.y}',\n borderRadius: '{form.field.border.radius}',\n focusRing: {\n width: '{form.field.focus.ring.width}',\n style: '{form.field.focus.ring.style}',\n color: '{form.field.focus.ring.color}',\n offset: '{form.field.focus.ring.offset}',\n shadow: '{form.field.focus.ring.shadow}'\n },\n transitionDuration: '{form.field.transition.duration}'\n },\n chip: {\n borderRadius: '{border.radius.sm}'\n },\n colorScheme: {\n light: {\n chip: {\n focusBackground: '{surface.200}',\n color: '{surface.800}'\n }\n },\n dark: {\n chip: {\n focusBackground: '{surface.700}',\n color: '{surface.0}'\n }\n }\n }\n};\n","export default {\n addon: {\n background: '{form.field.background}',\n borderColor: '{form.field.border.color}',\n color: '{form.field.icon.color}',\n borderRadius: '{form.field.border.radius}'\n }\n};\n","export default {\n root: {\n transitionDuration: '{transition.duration}'\n },\n button: {\n width: '2.5rem',\n borderRadius: '{form.field.border.radius}',\n verticalPadding: '{form.field.padding.y}'\n },\n colorScheme: {\n light: {\n button: {\n background: 'transparent',\n hoverBackground: '{surface.100}',\n activeBackground: '{surface.200}',\n borderColor: '{form.field.border.color}',\n hoverBorderColor: '{form.field.border.color}',\n activeBorderColor: '{form.field.border.color}',\n color: '{surface.400}',\n hoverColor: '{surface.500}',\n activeColor: '{surface.600}'\n }\n },\n dark: {\n button: {\n background: 'transparent',\n hoverBackground: '{surface.800}',\n activeBackground: '{surface.700}',\n borderColor: '{form.field.border.color}',\n hoverBorderColor: '{form.field.border.color}',\n activeBorderColor: '{form.field.border.color}',\n color: '{surface.400}',\n hoverColor: '{surface.300}',\n activeColor: '{surface.200}'\n }\n }\n }\n};\n","export default {\n root: {\n background: '{form.field.background}',\n disabledBackground: '{form.field.disabled.background}',\n filledBackground: '{form.field.filled.background}',\n filledFocusBackground: '{form.field.filled.focus.background}',\n borderColor: '{form.field.border.color}',\n hoverBorderColor: '{form.field.hover.border.color}',\n focusBorderColor: '{form.field.focus.border.color}',\n invalidBorderColor: '{form.field.invalid.border.color}',\n color: '{form.field.color}',\n disabledColor: '{form.field.disabled.color}',\n placeholderColor: '{form.field.placeholder.color}',\n shadow: '{form.field.shadow}',\n paddingX: '{form.field.padding.x}',\n paddingY: '{form.field.padding.y}',\n borderRadius: '{form.field.border.radius}',\n focusRing: {\n width: '{form.field.focus.ring.width}',\n style: '{form.field.focus.ring.style}',\n color: '{form.field.focus.ring.color}',\n offset: '{form.field.focus.ring.offset}',\n shadow: '{form.field.focus.ring.shadow}'\n },\n transitionDuration: '{form.field.transition.duration}',\n sm: {\n fontSize: '0.875rem',\n paddingX: '0.625rem',\n paddingY: '0.375rem'\n },\n lg: {\n fontSize: '1.125rem',\n paddingX: '0.875rem',\n paddingY: '0.625rem'\n }\n }\n};\n","export default {\n root: {\n transitionDuration: '{transition.duration}',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n }\n },\n value: {\n background: '{primary.color}'\n },\n range: {\n background: '{content.border.color}'\n },\n text: {\n color: '{text.muted.color}'\n }\n};\n","export default {\n root: {\n background: '{form.field.background}',\n disabledBackground: '{form.field.disabled.background}',\n borderColor: '{form.field.border.color}',\n hoverBorderColor: '{form.field.hover.border.color}',\n focusBorderColor: '{form.field.focus.border.color}',\n invalidBorderColor: '{form.field.invalid.border.color}',\n color: '{form.field.color}',\n disabledColor: '{form.field.disabled.color}',\n shadow: '{form.field.shadow}',\n borderRadius: '{form.field.border.radius}',\n focusRing: {\n width: '{form.field.focus.ring.width}',\n style: '{form.field.focus.ring.style}',\n color: '{form.field.focus.ring.color}',\n offset: '{form.field.focus.ring.offset}',\n shadow: '{form.field.focus.ring.shadow}'\n },\n transitionDuration: '{form.field.transition.duration}'\n },\n list: {\n padding: '{list.padding}',\n gap: '{list.gap}',\n header: {\n padding: '{list.header.padding}'\n }\n },\n option: {\n focusBackground: '{list.option.focus.background}',\n selectedBackground: '{list.option.selected.background}',\n selectedFocusBackground: '{list.option.selected.focus.background}',\n color: '{list.option.color}',\n focusColor: '{list.option.focus.color}',\n selectedColor: '{list.option.selected.color}',\n selectedFocusColor: '{list.option.selected.focus.color}',\n padding: '{list.option.padding}',\n borderRadius: '{list.option.border.radius}'\n },\n optionGroup: {\n background: '{list.option.group.background}',\n color: '{list.option.group.color}',\n fontWeight: '{list.option.group.font.weight}',\n padding: '{list.option.group.padding}'\n },\n checkmark: {\n color: '{list.option.color}',\n gutterStart: '-0.375rem',\n gutterEnd: '0.375rem'\n },\n emptyMessage: {\n padding: '{list.option.padding}'\n },\n colorScheme: {\n light: {\n option: {\n stripedBackground: '{surface.50}'\n }\n },\n dark: {\n option: {\n stripedBackground: '{surface.900}'\n }\n }\n }\n};\n","export default {\n root: {\n background: '{content.background}',\n borderColor: '{content.border.color}',\n borderRadius: '{content.border.radius}',\n color: '{content.color}',\n gap: '0.5rem',\n verticalOrientation: {\n padding: '{navigation.list.padding}',\n gap: '0'\n },\n horizontalOrientation: {\n padding: '0.5rem 0.75rem'\n },\n transitionDuration: '{transition.duration}'\n },\n baseItem: {\n borderRadius: '{content.border.radius}',\n padding: '{navigation.item.padding}'\n },\n item: {\n focusBackground: '{navigation.item.focus.background}',\n activeBackground: '{navigation.item.active.background}',\n color: '{navigation.item.color}',\n focusColor: '{navigation.item.focus.color}',\n activeColor: '{navigation.item.active.color}',\n padding: '{navigation.item.padding}',\n borderRadius: '{navigation.item.border.radius}',\n gap: '{navigation.item.gap}',\n icon: {\n color: '{navigation.item.icon.color}',\n focusColor: '{navigation.item.icon.focus.color}',\n activeColor: '{navigation.item.icon.active.color}'\n }\n },\n overlay: {\n padding: '0',\n background: '{content.background}',\n borderColor: '{content.border.color}',\n borderRadius: '{content.border.radius}',\n color: '{content.color}',\n shadow: '{overlay.navigation.shadow}',\n gap: '0.5rem'\n },\n submenu: {\n padding: '{navigation.list.padding}',\n gap: '{navigation.list.gap}'\n },\n submenuLabel: {\n padding: '{navigation.submenu.label.padding}',\n fontWeight: '{navigation.submenu.label.font.weight}',\n background: '{navigation.submenu.label.background.}',\n color: '{navigation.submenu.label.color}'\n },\n submenuIcon: {\n size: '{navigation.submenu.icon.size}',\n color: '{navigation.submenu.icon.color}',\n focusColor: '{navigation.submenu.icon.focus.color}',\n activeColor: '{navigation.submenu.icon.active.color}'\n },\n separator: {\n borderColor: '{content.border.color}'\n },\n mobileButton: {\n borderRadius: '50%',\n size: '1.75rem',\n color: '{text.muted.color}',\n hoverColor: '{text.muted.hover.color}',\n hoverBackground: '{content.hover.background}',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n }\n }\n};\n","export default {\n root: {\n background: '{content.background}',\n borderColor: '{content.border.color}',\n color: '{content.color}',\n borderRadius: '{content.border.radius}',\n shadow: '{overlay.navigation.shadow}',\n transitionDuration: '{transition.duration}'\n },\n list: {\n padding: '{navigation.list.padding}',\n gap: '{navigation.list.gap}'\n },\n item: {\n focusBackground: '{navigation.item.focus.background}',\n color: '{navigation.item.color}',\n focusColor: '{navigation.item.focus.color}',\n padding: '{navigation.item.padding}',\n borderRadius: '{navigation.item.border.radius}',\n gap: '{navigation.item.gap}',\n icon: {\n color: '{navigation.item.icon.color}',\n focusColor: '{navigation.item.icon.focus.color}'\n }\n },\n submenuLabel: {\n padding: '{navigation.submenu.label.padding}',\n fontWeight: '{navigation.submenu.label.font.weight}',\n background: '{navigation.submenu.label.background}',\n color: '{navigation.submenu.label.color}'\n },\n separator: {\n borderColor: '{content.border.color}'\n }\n};\n","export default {\n root: {\n background: '{content.background}',\n borderColor: '{content.border.color}',\n borderRadius: '{content.border.radius}',\n color: '{content.color}',\n gap: '0.5rem',\n padding: '0.5rem 0.75rem',\n transitionDuration: '{transition.duration}'\n },\n baseItem: {\n borderRadius: '{content.border.radius}',\n padding: '{navigation.item.padding}'\n },\n item: {\n focusBackground: '{navigation.item.focus.background}',\n activeBackground: '{navigation.item.active.background}',\n color: '{navigation.item.color}',\n focusColor: '{navigation.item.focus.color}',\n activeColor: '{navigation.item.active.color}',\n padding: '{navigation.item.padding}',\n borderRadius: '{navigation.item.border.radius}',\n gap: '{navigation.item.gap}',\n icon: {\n color: '{navigation.item.icon.color}',\n focusColor: '{navigation.item.icon.focus.color}',\n activeColor: '{navigation.item.icon.active.color}'\n }\n },\n submenu: {\n padding: '{navigation.list.padding}',\n gap: '{navigation.list.gap}',\n background: '{content.background}',\n borderColor: '{content.border.color}',\n borderRadius: '{content.border.radius}',\n shadow: '{overlay.navigation.shadow}',\n mobileIndent: '1rem'\n },\n submenuIcon: {\n size: '{navigation.submenu.icon.size}',\n color: '{navigation.submenu.icon.color}',\n focusColor: '{navigation.submenu.icon.focus.color}',\n activeColor: '{navigation.submenu.icon.active.color}'\n },\n separator: {\n borderColor: '{content.border.color}'\n },\n mobileButton: {\n borderRadius: '50%',\n size: '1.75rem',\n color: '{text.muted.color}',\n hoverColor: '{text.muted.hover.color}',\n hoverBackground: '{content.hover.background}',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n }\n }\n};\n","export default {\n root: {\n borderRadius: '{content.border.radius}',\n borderWidth: '1px',\n transitionDuration: '{transition.duration}'\n },\n content: {\n padding: '0.5rem 0.75rem',\n gap: '0.5rem'\n },\n text: {\n fontSize: '1rem',\n fontWeight: '500'\n },\n icon: {\n size: '1.125rem'\n },\n closeButton: {\n width: '1.75rem',\n height: '1.75rem',\n borderRadius: '50%',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n offset: '{focus.ring.offset}'\n }\n },\n closeIcon: {\n size: '1rem'\n },\n colorScheme: {\n light: {\n info: {\n background: 'color-mix(in srgb, {blue.50}, transparent 5%)',\n borderColor: '{blue.200}',\n color: '{blue.600}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {blue.500}, transparent 96%)',\n closeButton: {\n hoverBackground: '{blue.100}',\n focusRing: {\n color: '{blue.600}',\n shadow: 'none'\n }\n }\n },\n success: {\n background: 'color-mix(in srgb, {green.50}, transparent 5%)',\n borderColor: '{green.200}',\n color: '{green.600}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {green.500}, transparent 96%)',\n closeButton: {\n hoverBackground: '{green.100}',\n focusRing: {\n color: '{green.600}',\n shadow: 'none'\n }\n }\n },\n warn: {\n background: 'color-mix(in srgb,{yellow.50}, transparent 5%)',\n borderColor: '{yellow.200}',\n color: '{yellow.600}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {yellow.500}, transparent 96%)',\n closeButton: {\n hoverBackground: '{yellow.100}',\n focusRing: {\n color: '{yellow.600}',\n shadow: 'none'\n }\n }\n },\n error: {\n background: 'color-mix(in srgb, {red.50}, transparent 5%)',\n borderColor: '{red.200}',\n color: '{red.600}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {red.500}, transparent 96%)',\n closeButton: {\n hoverBackground: '{red.100}',\n focusRing: {\n color: '{red.600}',\n shadow: 'none'\n }\n }\n },\n secondary: {\n background: '{surface.100}',\n borderColor: '{surface.200}',\n color: '{surface.600}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {surface.500}, transparent 96%)',\n closeButton: {\n hoverBackground: '{surface.200}',\n focusRing: {\n color: '{surface.600}',\n shadow: 'none'\n }\n }\n },\n contrast: {\n background: '{surface.900}',\n borderColor: '{surface.950}',\n color: '{surface.50}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {surface.950}, transparent 96%)',\n closeButton: {\n hoverBackground: '{surface.800}',\n focusRing: {\n color: '{surface.50}',\n shadow: 'none'\n }\n }\n }\n },\n dark: {\n info: {\n background: 'color-mix(in srgb, {blue.500}, transparent 84%)',\n borderColor: 'color-mix(in srgb, {blue.700}, transparent 64%)',\n color: '{blue.500}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {blue.500}, transparent 96%)',\n closeButton: {\n hoverBackground: 'rgba(255, 255, 255, 0.05)',\n focusRing: {\n color: '{blue.500}',\n shadow: 'none'\n }\n }\n },\n success: {\n background: 'color-mix(in srgb, {green.500}, transparent 84%)',\n borderColor: 'color-mix(in srgb, {green.700}, transparent 64%)',\n color: '{green.500}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {green.500}, transparent 96%)',\n closeButton: {\n hoverBackground: 'rgba(255, 255, 255, 0.05)',\n focusRing: {\n color: '{green.500}',\n shadow: 'none'\n }\n }\n },\n warn: {\n background: 'color-mix(in srgb, {yellow.500}, transparent 84%)',\n borderColor: 'color-mix(in srgb, {yellow.700}, transparent 64%)',\n color: '{yellow.500}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {yellow.500}, transparent 96%)',\n closeButton: {\n hoverBackground: 'rgba(255, 255, 255, 0.05)',\n focusRing: {\n color: '{yellow.500}',\n shadow: 'none'\n }\n }\n },\n error: {\n background: 'color-mix(in srgb, {red.500}, transparent 84%)',\n borderColor: 'color-mix(in srgb, {red.700}, transparent 64%)',\n color: '{red.500}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {red.500}, transparent 96%)',\n closeButton: {\n hoverBackground: 'rgba(255, 255, 255, 0.05)',\n focusRing: {\n color: '{red.500}',\n shadow: 'none'\n }\n }\n },\n secondary: {\n background: '{surface.800}',\n borderColor: '{surface.700}',\n color: '{surface.300}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {surface.500}, transparent 96%)',\n closeButton: {\n hoverBackground: '{surface.700}',\n focusRing: {\n color: '{surface.300}',\n shadow: 'none'\n }\n }\n },\n contrast: {\n background: '{surface.0}',\n borderColor: '{surface.100}',\n color: '{surface.950}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {surface.950}, transparent 96%)',\n closeButton: {\n hoverBackground: '{surface.100}',\n focusRing: {\n color: '{surface.950}',\n shadow: 'none'\n }\n }\n }\n }\n }\n};\n","export default {\n root: {\n borderRadius: '{content.border.radius}',\n gap: '1rem'\n },\n meters: {\n background: '{content.border.color}',\n size: '0.5rem'\n },\n label: {\n gap: '0.5rem'\n },\n labelMarker: {\n size: '0.5rem'\n },\n labelIcon: {\n size: '1rem'\n },\n labelList: {\n verticalGap: '0.5rem',\n horizontalGap: '1rem'\n }\n};\n","export default {\n root: {\n background: '{form.field.background}',\n disabledBackground: '{form.field.disabled.background}',\n filledBackground: '{form.field.filled.background}',\n filledFocusBackground: '{form.field.filled.focus.background}',\n borderColor: '{form.field.border.color}',\n hoverBorderColor: '{form.field.hover.border.color}',\n focusBorderColor: '{form.field.focus.border.color}',\n invalidBorderColor: '{form.field.invalid.border.color}',\n color: '{form.field.color}',\n disabledColor: '{form.field.disabled.color}',\n placeholderColor: '{form.field.placeholder.color}',\n shadow: '{form.field.shadow}',\n paddingX: '{form.field.padding.x}',\n paddingY: '{form.field.padding.y}',\n borderRadius: '{form.field.border.radius}',\n focusRing: {\n width: '{form.field.focus.ring.width}',\n style: '{form.field.focus.ring.style}',\n color: '{form.field.focus.ring.color}',\n offset: '{form.field.focus.ring.offset}',\n shadow: '{form.field.focus.ring.shadow}'\n },\n transitionDuration: '{form.field.transition.duration}'\n },\n dropdown: {\n width: '2.5rem',\n color: '{form.field.icon.color}'\n },\n overlay: {\n background: '{overlay.select.background}',\n borderColor: '{overlay.select.border.color}',\n borderRadius: '{overlay.select.border.radius}',\n color: '{overlay.select.color}',\n shadow: '{overlay.select.shadow}'\n },\n list: {\n padding: '{list.padding}',\n gap: '{list.gap}',\n header: {\n padding: '{list.header.padding}'\n }\n },\n option: {\n focusBackground: '{list.option.focus.background}',\n selectedBackground: '{list.option.selected.background}',\n selectedFocusBackground: '{list.option.selected.focus.background}',\n color: '{list.option.color}',\n focusColor: '{list.option.focus.color}',\n selectedColor: '{list.option.selected.color}',\n selectedFocusColor: '{list.option.selected.focus.color}',\n padding: '{list.option.padding}',\n borderRadius: '{list.option.border.radius}',\n gap: '0.5rem'\n },\n optionGroup: {\n background: '{list.option.group.background}',\n color: '{list.option.group.color}',\n fontWeight: '{list.option.group.font.weight}',\n padding: '{list.option.group.padding}'\n },\n chip: {\n borderRadius: '{border.radius.sm}'\n },\n emptyMessage: {\n padding: '{list.option.padding}'\n }\n};\n","export default {\n root: {\n gap: '1.125rem'\n },\n controls: {\n gap: '0.5rem'\n }\n};\n","export default {\n root: {\n gutter: '0.75rem',\n transitionDuration: '{transition.duration}'\n },\n node: {\n background: '{content.background}',\n hoverBackground: '{content.hover.background}',\n selectedBackground: '{highlight.background}',\n borderColor: '{content.border.color}',\n color: '{content.color}',\n selectedColor: '{highlight.color}',\n hoverColor: '{content.hover.color}',\n padding: '0.75rem 1rem',\n toggleablePadding: '0.75rem 1rem 1.25rem 1rem',\n borderRadius: '{content.border.radius}'\n },\n nodeToggleButton: {\n background: '{content.background}',\n hoverBackground: '{content.hover.background}',\n borderColor: '{content.border.color}',\n color: '{text.muted.color}',\n hoverColor: '{text.color}',\n size: '1.5rem',\n borderRadius: '50%',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n }\n },\n connector: {\n color: '{content.border.color}',\n borderRadius: '{content.border.radius}',\n height: '24px'\n }\n};\n","export default {\n root: {\n outline: {\n width: '2px',\n color: '{content.background}'\n }\n }\n};\n","export default {\n root: {\n padding: '0.5rem 1rem',\n gap: '0.25rem',\n borderRadius: '{content.border.radius}',\n background: '{content.background}',\n color: '{content.color}',\n transitionDuration: '{transition.duration}'\n },\n navButton: {\n background: 'transparent',\n hoverBackground: '{content.hover.background}',\n selectedBackground: '{highlight.background}',\n color: '{text.muted.color}',\n hoverColor: '{text.hover.muted.color}',\n selectedColor: '{highlight.color}',\n width: '2.5rem',\n height: '2.5rem',\n borderRadius: '50%',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n }\n },\n currentPageReport: {\n color: '{text.muted.color}'\n },\n jumpToPageInput: {\n maxWidth: '2.5rem'\n }\n};\n","export default {\n root: {\n background: '{content.background}',\n borderColor: '{content.border.color}',\n color: '{content.color}',\n borderRadius: '{content.border.radius}'\n },\n header: {\n background: 'transparent',\n color: '{text.color}',\n padding: '1.125rem',\n borderColor: '{content.border.color}',\n borderWidth: '0',\n borderRadius: '0'\n },\n toggleableHeader: {\n padding: '0.375rem 1.125rem'\n },\n title: {\n fontWeight: '600'\n },\n content: {\n padding: '0 1.125rem 1.125rem 1.125rem'\n },\n footer: {\n padding: '0 1.125rem 1.125rem 1.125rem'\n }\n};\n","export default {\n root: {\n gap: '0.5rem',\n transitionDuration: '{transition.duration}'\n },\n panel: {\n background: '{content.background}',\n borderColor: '{content.border.color}',\n borderWidth: '1px',\n color: '{content.color}',\n padding: '0.25rem 0.25rem',\n borderRadius: '{content.border.radius}',\n first: {\n borderWidth: '1px',\n topBorderRadius: '{content.border.radius}'\n },\n last: {\n borderWidth: '1px',\n bottomBorderRadius: '{content.border.radius}'\n }\n },\n item: {\n focusBackground: '{navigation.item.focus.background}',\n color: '{navigation.item.color}',\n focusColor: '{navigation.item.focus.color}',\n gap: '0.5rem',\n padding: '{navigation.item.padding}',\n borderRadius: '{content.border.radius}',\n icon: {\n color: '{navigation.item.icon.color}',\n focusColor: '{navigation.item.icon.focus.color}'\n }\n },\n submenu: {\n indent: '1rem'\n },\n submenuIcon: {\n color: '{navigation.submenu.icon.color}',\n focusColor: '{navigation.submenu.icon.focus.color}'\n }\n};\n","export default {\n meter: {\n background: '{content.border.color}',\n borderRadius: '{content.border.radius}',\n height: '.75rem'\n },\n icon: {\n color: '{form.field.icon.color}'\n },\n overlay: {\n background: '{overlay.popover.background}',\n borderColor: '{overlay.popover.border.color}',\n borderRadius: '{overlay.popover.border.radius}',\n color: '{overlay.popover.color}',\n padding: '{overlay.popover.padding}',\n shadow: '{overlay.popover.shadow}'\n },\n content: {\n gap: '0.5rem'\n },\n colorScheme: {\n light: {\n strength: {\n weakBackground: '{red.500}',\n mediumBackground: '{amber.500}',\n strongBackground: '{green.500}'\n }\n },\n dark: {\n strength: {\n weakBackground: '{red.400}',\n mediumBackground: '{amber.400}',\n strongBackground: '{green.400}'\n }\n }\n }\n};\n","export default {\n root: {\n gap: '1.125rem'\n },\n controls: {\n gap: '0.5rem'\n }\n};\n","export default {\n root: {\n background: '{overlay.popover.background}',\n borderColor: '{overlay.popover.border.color}',\n color: '{overlay.popover.color}',\n borderRadius: '{overlay.popover.border.radius}',\n shadow: '{overlay.popover.shadow}',\n gutter: '10px',\n arrowOffset: '1.25rem'\n },\n content: {\n padding: '{overlay.popover.padding}'\n }\n};\n","export default {\n root: {\n background: '{content.border.color}',\n borderRadius: '{content.border.radius}',\n height: '1.25rem'\n },\n value: {\n background: '{primary.color}'\n },\n label: {\n color: '{primary.contrast.color}',\n fontSize: '0.75rem',\n fontWeight: '600'\n }\n};\n","export default {\n colorScheme: {\n light: {\n root: {\n 'color.1': '{red.500}',\n 'color.2': '{blue.500}',\n 'color.3': '{green.500}',\n 'color.4': '{yellow.500}'\n }\n },\n dark: {\n root: {\n 'color.1': '{red.400}',\n 'color.2': '{blue.400}',\n 'color.3': '{green.400}',\n 'color.4': '{yellow.400}'\n }\n }\n }\n};\n","export default {\n root: {\n width: '1.25rem',\n height: '1.25rem',\n background: '{form.field.background}',\n checkedBackground: '{primary.color}',\n checkedHoverBackground: '{primary.hover.color}',\n disabledBackground: '{form.field.disabled.background}',\n filledBackground: '{form.field.filled.background}',\n borderColor: '{form.field.border.color}',\n hoverBorderColor: '{form.field.hover.border.color}',\n focusBorderColor: '{form.field.border.color}',\n checkedBorderColor: '{primary.color}',\n checkedHoverBorderColor: '{primary.hover.color}',\n checkedFocusBorderColor: '{primary.color}',\n checkedDisabledBorderColor: '{form.field.border.color}',\n invalidBorderColor: '{form.field.invalid.border.color}',\n shadow: '{form.field.shadow}',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n },\n transitionDuration: '{form.field.transition.duration}'\n },\n icon: {\n size: '0.75rem',\n checkedColor: '{primary.contrast.color}',\n checkedHoverColor: '{primary.contrast.color}',\n disabledColor: '{form.field.disabled.color}'\n }\n};\n","export default {\n root: {\n gap: '0.25rem',\n transitionDuration: '{transition.duration}'\n },\n icon: {\n size: '1rem',\n color: '{text.muted.color}',\n hoverColor: '{primary.color}',\n activeColor: '{primary.color}'\n }\n};\n","export default {\n colorScheme: {\n light: {\n root: {\n background: 'rgba(0,0,0,0.1)'\n }\n },\n dark: {\n root: {\n background: 'rgba(255,255,255,0.3)'\n }\n }\n }\n};\n","export default {\n root: {\n transitionDuration: '{transition.duration}'\n },\n bar: {\n size: '9px',\n borderRadius: '{border.radius.sm}',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n }\n },\n colorScheme: {\n light: {\n bar: {\n background: '{surface.100}'\n }\n },\n dark: {\n bar: {\n background: '{surface.800}'\n }\n }\n }\n};\n","export default {\n root: {\n background: '{form.field.background}',\n disabledBackground: '{form.field.disabled.background}',\n filledBackground: '{form.field.filled.background}',\n filledFocusBackground: '{form.field.filled.focus.background}',\n borderColor: '{form.field.border.color}',\n hoverBorderColor: '{form.field.hover.border.color}',\n focusBorderColor: '{form.field.focus.border.color}',\n invalidBorderColor: '{form.field.invalid.border.color}',\n color: '{form.field.color}',\n disabledColor: '{form.field.disabled.color}',\n placeholderColor: '{form.field.placeholder.color}',\n shadow: '{form.field.shadow}',\n paddingX: '{form.field.padding.x}',\n paddingY: '{form.field.padding.y}',\n borderRadius: '{form.field.border.radius}',\n focusRing: {\n width: '{form.field.focus.ring.width}',\n style: '{form.field.focus.ring.style}',\n color: '{form.field.focus.ring.color}',\n offset: '{form.field.focus.ring.offset}',\n shadow: '{form.field.focus.ring.shadow}'\n },\n transitionDuration: '{form.field.transition.duration}'\n },\n dropdown: {\n width: '2.5rem',\n color: '{form.field.icon.color}'\n },\n overlay: {\n background: '{overlay.select.background}',\n borderColor: '{overlay.select.border.color}',\n borderRadius: '{overlay.select.border.radius}',\n color: '{overlay.select.color}',\n shadow: '{overlay.select.shadow}'\n },\n list: {\n padding: '{list.padding}',\n gap: '{list.gap}',\n header: {\n padding: '{list.header.padding}'\n }\n },\n option: {\n focusBackground: '{list.option.focus.background}',\n selectedBackground: '{list.option.selected.background}',\n selectedFocusBackground: '{list.option.selected.focus.background}',\n color: '{list.option.color}',\n focusColor: '{list.option.focus.color}',\n selectedColor: '{list.option.selected.color}',\n selectedFocusColor: '{list.option.selected.focus.color}',\n padding: '{list.option.padding}',\n borderRadius: '{list.option.border.radius}'\n },\n optionGroup: {\n background: '{list.option.group.background}',\n color: '{list.option.group.color}',\n fontWeight: '{list.option.group.font.weight}',\n padding: '{list.option.group.padding}'\n },\n clearIcon: {\n color: '{form.field.icon.color}'\n },\n checkmark: {\n color: '{list.option.color}',\n gutterStart: '-0.375rem',\n gutterEnd: '0.375rem'\n },\n emptyMessage: {\n padding: '{list.option.padding}'\n }\n};\n","export default {\n root: {\n borderRadius: '{form.field.border.radius}'\n },\n colorScheme: {\n light: {\n root: {\n invalidBorderColor: '{form.field.invalid.border.color}'\n }\n },\n dark: {\n root: {\n invalidBorderColor: '{form.field.invalid.border.color}'\n }\n }\n }\n};\n","export default {\n root: {\n borderRadius: '{content.border.radius}'\n },\n colorScheme: {\n light: {\n root: {\n background: '{surface.200}',\n animationBackground: 'rgba(255,255,255,0.4)'\n }\n },\n dark: {\n root: {\n background: 'rgba(255, 255, 255, 0.06)',\n animationBackground: 'rgba(255, 255, 255, 0.04)'\n }\n }\n }\n};\n","export default {\n root: {\n transitionDuration: '{transition.duration}'\n },\n track: {\n background: '{content.border.color}',\n borderRadius: '{content.border.radius}',\n size: '3px'\n },\n range: {\n background: '{primary.color}'\n },\n handle: {\n width: '20px',\n height: '20px',\n borderRadius: '50%',\n background: '{content.border.color}',\n hoverBackground: '{content.border.color}',\n content: {\n borderRadius: '50%',\n hoverBackground: '{content.background}',\n width: '16px',\n height: '16px',\n shadow: '0px 0.5px 0px 0px rgba(0, 0, 0, 0.08), 0px 1px 1px 0px rgba(0, 0, 0, 0.14)'\n },\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n }\n },\n colorScheme: {\n light: {\n handle: {\n contentBackground: '{surface.0}'\n }\n },\n dark: {\n handle: {\n contentBackground: '{surface.950}'\n }\n }\n }\n};\n","export default {\n root: {\n gap: '0.5rem',\n transitionDuration: '{transition.duration}'\n }\n};\n","export default {\n root: {\n borderRadius: '{form.field.border.radius}',\n roundedBorderRadius: '2rem',\n raisedShadow: '0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12)'\n }\n};\n","export default {\n root: {\n background: '{content.background}',\n borderColor: '{content.border.color}',\n color: '{content.color}',\n transitionDuration: '{transition.duration}'\n },\n gutter: {\n background: '{content.border.color}'\n },\n handle: {\n size: '24px',\n background: 'transparent',\n borderRadius: '{content.border.radius}',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n }\n }\n};\n","export default {\n root: {\n transitionDuration: '{transition.duration}'\n },\n separator: {\n background: '{content.border.color}',\n activeBackground: '{primary.color}',\n margin: '0 0 0 1.625rem',\n size: '2px'\n },\n step: {\n padding: '0.5rem',\n gap: '1rem'\n },\n stepHeader: {\n padding: '0',\n borderRadius: '{content.border.radius}',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n },\n gap: '0.5rem'\n },\n stepTitle: {\n color: '{text.muted.color}',\n activeColor: '{primary.color}',\n fontWeight: '500'\n },\n stepNumber: {\n background: '{content.background}',\n activeBackground: '{content.background}',\n borderColor: '{content.border.color}',\n activeBorderColor: '{content.border.color}',\n color: '{text.muted.color}',\n activeColor: '{primary.color}',\n size: '2rem',\n fontSize: '1.143rem',\n fontWeight: '500',\n borderRadius: '50%',\n shadow: '0px 0.5px 0px 0px rgba(0, 0, 0, 0.06), 0px 1px 1px 0px rgba(0, 0, 0, 0.12)'\n },\n steppanels: {\n padding: '0.875rem 0.5rem 1.125rem 0.5rem'\n },\n steppanel: {\n background: '{content.background}',\n color: '{content.color}',\n padding: '0 0 0 1rem'\n }\n};\n","export default {\n root: {\n transitionDuration: '{transition.duration}'\n },\n separator: {\n background: '{content.border.color}'\n },\n itemLink: {\n borderRadius: '{content.border.radius}',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n },\n gap: '0.5rem'\n },\n itemLabel: {\n color: '{text.muted.color}',\n activeColor: '{primary.color}',\n fontWeight: '500'\n },\n itemNumber: {\n background: '{content.background}',\n activeBackground: '{content.background}',\n borderColor: '{content.border.color}',\n activeBorderColor: '{content.border.color}',\n color: '{text.muted.color}',\n activeColor: '{primary.color}',\n size: '2rem',\n fontSize: '1.143rem',\n fontWeight: '500',\n borderRadius: '50%',\n shadow: '0px 0.5px 0px 0px rgba(0, 0, 0, 0.06), 0px 1px 1px 0px rgba(0, 0, 0, 0.12)'\n }\n};\n","export default {\n root: {\n transitionDuration: '{transition.duration}'\n },\n tablist: {\n borderWidth: '0 0 1px 0',\n background: '{content.background}',\n borderColor: '{content.border.color}'\n },\n item: {\n background: 'transparent',\n hoverBackground: 'transparent',\n activeBackground: 'transparent',\n borderWidth: '0 0 1px 0',\n borderColor: '{content.border.color}',\n hoverBorderColor: '{content.border.color}',\n activeBorderColor: '{primary.color}',\n color: '{text.muted.color}',\n hoverColor: '{text.color}',\n activeColor: '{primary.color}',\n padding: '1rem 1.125rem',\n fontWeight: '600',\n margin: '0 0 -1px 0',\n gap: '0.5rem',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n }\n },\n itemIcon: {\n color: '{text.muted.color}',\n hoverColor: '{text.color}',\n activeColor: '{primary.color}'\n },\n activeBar: {\n height: '1px',\n bottom: '-1px',\n background: '{primary.color}'\n }\n};\n","export default {\n root: {\n transitionDuration: '{transition.duration}'\n },\n tablist: {\n borderWidth: '0 0 1px 0',\n background: '{content.background}',\n borderColor: '{content.border.color}'\n },\n tab: {\n background: 'transparent',\n hoverBackground: 'transparent',\n activeBackground: 'transparent',\n borderWidth: '0 0 1px 0',\n borderColor: '{content.border.color}',\n hoverBorderColor: '{content.border.color}',\n activeBorderColor: '{primary.color}',\n color: '{text.muted.color}',\n hoverColor: '{text.color}',\n activeColor: '{primary.color}',\n padding: '1rem 1.125rem',\n fontWeight: '600',\n margin: '0 0 -1px 0',\n gap: '0.5rem',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '-1px',\n shadow: '{focus.ring.shadow}'\n }\n },\n tabpanel: {\n background: '{content.background}',\n color: '{content.color}',\n padding: '0.875rem 1.125rem 1.125rem 1.125rem',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: 'inset {focus.ring.shadow}'\n }\n },\n navButton: {\n background: '{content.background}',\n color: '{text.muted.color}',\n hoverColor: '{text.color}',\n width: '2.5rem',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '-1px',\n shadow: '{focus.ring.shadow}'\n }\n },\n activeBar: {\n height: '1px',\n bottom: '-1px',\n background: '{primary.color}'\n },\n colorScheme: {\n light: {\n navButton: {\n shadow: '0px 0px 10px 50px rgba(255, 255, 255, 0.6)'\n }\n },\n dark: {\n navButton: {\n shadow: '0px 0px 10px 50px color-mix(in srgb, {content.background}, transparent 50%)'\n }\n }\n }\n};\n","export default {\n root: {\n transitionDuration: '{transition.duration}'\n },\n tabList: {\n background: '{content.background}',\n borderColor: '{content.border.color}'\n },\n tab: {\n borderColor: '{content.border.color}',\n activeBorderColor: '{primary.color}',\n color: '{text.muted.color}',\n hoverColor: '{text.color}',\n activeColor: '{primary.color}'\n },\n tabPanel: {\n background: '{content.background}',\n color: '{content.color}'\n },\n navButton: {\n background: '{content.background}',\n color: '{text.muted.color}',\n hoverColor: '{text.color}'\n },\n colorScheme: {\n light: {\n navButton: {\n shadow: '0px 0px 10px 50px rgba(255, 255, 255, 0.6)'\n }\n },\n dark: {\n navButton: {\n shadow: '0px 0px 10px 50px color-mix(in srgb, {content.background}, transparent 50%)'\n }\n }\n }\n};\n","export default {\n root: {\n fontSize: '0.875rem',\n fontWeight: '700',\n padding: '0.25rem 0.5rem',\n gap: '0.25rem',\n borderRadius: '{content.border.radius}',\n roundedBorderRadius: '{border.radius.xl}'\n },\n icon: {\n size: '0.75rem'\n },\n colorScheme: {\n light: {\n primary: {\n background: '{primary.100}',\n color: '{primary.700}'\n },\n secondary: {\n background: '{surface.100}',\n color: '{surface.600}'\n },\n success: {\n background: '{green.100}',\n color: '{green.700}'\n },\n info: {\n background: '{sky.100}',\n color: '{sky.700}'\n },\n warn: {\n background: '{orange.100}',\n color: '{orange.700}'\n },\n danger: {\n background: '{red.100}',\n color: '{red.700}'\n },\n contrast: {\n background: '{surface.950}',\n color: '{surface.0}'\n }\n },\n dark: {\n primary: {\n background: 'color-mix(in srgb, {primary.500}, transparent 84%)',\n color: '{primary.300}'\n },\n secondary: {\n background: '{surface.800}',\n color: '{surface.300}'\n },\n success: {\n background: 'color-mix(in srgb, {green.500}, transparent 84%)',\n color: '{green.300}'\n },\n info: {\n background: 'color-mix(in srgb, {sky.500}, transparent 84%)',\n color: '{sky.300}'\n },\n warn: {\n background: 'color-mix(in srgb, {orange.500}, transparent 84%)',\n color: '{orange.300}'\n },\n danger: {\n background: 'color-mix(in srgb, {red.500}, transparent 84%)',\n color: '{red.300}'\n },\n contrast: {\n background: '{surface.0}',\n color: '{surface.950}'\n }\n }\n }\n};\n","export default {\n root: {\n background: '{form.field.background}',\n borderColor: '{form.field.border.color}',\n color: '{form.field.color}',\n height: '18rem',\n padding: '{form.field.padding.y} {form.field.padding.x}',\n borderRadius: '{form.field.border.radius}'\n },\n prompt: {\n gap: '0.25rem'\n },\n commandResponse: {\n margin: '2px 0'\n }\n};\n","export default {\n root: {\n background: '{form.field.background}',\n disabledBackground: '{form.field.disabled.background}',\n filledBackground: '{form.field.filled.background}',\n filledFocusBackground: '{form.field.filled.focus.background}',\n borderColor: '{form.field.border.color}',\n hoverBorderColor: '{form.field.hover.border.color}',\n focusBorderColor: '{form.field.focus.border.color}',\n invalidBorderColor: '{form.field.invalid.border.color}',\n color: '{form.field.color}',\n disabledColor: '{form.field.disabled.color}',\n placeholderColor: '{form.field.placeholder.color}',\n shadow: '{form.field.shadow}',\n paddingX: '{form.field.padding.x}',\n paddingY: '{form.field.padding.y}',\n borderRadius: '{form.field.border.radius}',\n focusRing: {\n width: '{form.field.focus.ring.width}',\n style: '{form.field.focus.ring.style}',\n color: '{form.field.focus.ring.color}',\n offset: '{form.field.focus.ring.offset}',\n shadow: '{form.field.focus.ring.shadow}'\n },\n transitionDuration: '{form.field.transition.duration}'\n }\n};\n","export default {\n root: {\n background: '{content.background}',\n borderColor: '{content.border.color}',\n color: '{content.color}',\n borderRadius: '{content.border.radius}',\n shadow: '{overlay.navigation.shadow}',\n transitionDuration: '{transition.duration}'\n },\n list: {\n padding: '{navigation.list.padding}',\n gap: '{navigation.list.gap}'\n },\n item: {\n focusBackground: '{navigation.item.focus.background}',\n activeBackground: '{navigation.item.active.background}',\n color: '{navigation.item.color}',\n focusColor: '{navigation.item.focus.color}',\n activeColor: '{navigation.item.active.color}',\n padding: '{navigation.item.padding}',\n borderRadius: '{navigation.item.border.radius}',\n gap: '{navigation.item.gap}',\n icon: {\n color: '{navigation.item.icon.color}',\n focusColor: '{navigation.item.icon.focus.color}',\n activeColor: '{navigation.item.icon.active.color}'\n }\n },\n submenuLabel: {\n padding: '{navigation.submenu.label.padding}',\n fontWeight: '{navigation.submenu.label.font.weight}',\n background: '{navigation.submenu.label.background.}',\n color: '{navigation.submenu.label.color}'\n },\n submenuIcon: {\n size: '{navigation.submenu.icon.size}',\n color: '{navigation.submenu.icon.color}',\n focusColor: '{navigation.submenu.icon.focus.color}',\n activeColor: '{navigation.submenu.icon.active.color}'\n },\n separator: {\n borderColor: '{content.border.color}'\n }\n};\n","export default {\n event: {\n minHeight: '5rem'\n },\n horizontal: {\n eventContent: {\n padding: '1rem 0'\n }\n },\n vertical: {\n eventContent: {\n padding: '0 1rem'\n }\n },\n eventMarker: {\n size: '1.125rem',\n borderRadius: '50%',\n borderWidth: '2px',\n background: '{content.background}',\n borderColor: '{content.border.color}',\n content: {\n borderRadius: '50%',\n size: '0.375rem',\n background: '{primary.color}',\n insetShadow: '0px 0.5px 0px 0px rgba(0, 0, 0, 0.06), 0px 1px 1px 0px rgba(0, 0, 0, 0.12)'\n }\n },\n eventConnector: {\n color: '{content.border.color}',\n size: '2px'\n }\n};\n","export default {\n root: {\n width: '25rem',\n borderRadius: '{content.border.radius}',\n borderWidth: '1px',\n transitionDuration: '{transition.duration}'\n },\n icon: {\n size: '1.125rem'\n },\n content: {\n padding: '{overlay.popover.padding}',\n gap: '0.5rem'\n },\n text: {\n gap: '0.5rem'\n },\n summary: {\n fontWeight: '500',\n fontSize: '1rem'\n },\n detail: {\n fontWeight: '500',\n fontSize: '0.875rem'\n },\n closeButton: {\n width: '1.75rem',\n height: '1.75rem',\n borderRadius: '50%',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n offset: '{focus.ring.offset}'\n }\n },\n closeIcon: {\n size: '1rem'\n },\n colorScheme: {\n light: {\n blur: '1.5px',\n info: {\n background: 'color-mix(in srgb, {blue.50}, transparent 5%)',\n borderColor: '{blue.200}',\n color: '{blue.600}',\n detailColor: '{surface.700}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {blue.500}, transparent 96%)',\n closeButton: {\n hoverBackground: '{blue.100}',\n focusRing: {\n color: '{blue.600}',\n shadow: 'none'\n }\n }\n },\n success: {\n background: 'color-mix(in srgb, {green.50}, transparent 5%)',\n borderColor: '{green.200}',\n color: '{green.600}',\n detailColor: '{surface.700}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {green.500}, transparent 96%)',\n closeButton: {\n hoverBackground: '{green.100}',\n focusRing: {\n color: '{green.600}',\n shadow: 'none'\n }\n }\n },\n warn: {\n background: 'color-mix(in srgb,{yellow.50}, transparent 5%)',\n borderColor: '{yellow.200}',\n color: '{yellow.600}',\n detailColor: '{surface.700}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {yellow.500}, transparent 96%)',\n closeButton: {\n hoverBackground: '{yellow.100}',\n focusRing: {\n color: '{yellow.600}',\n shadow: 'none'\n }\n }\n },\n error: {\n background: 'color-mix(in srgb, {red.50}, transparent 5%)',\n borderColor: '{red.200}',\n color: '{red.600}',\n detailColor: '{surface.700}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {red.500}, transparent 96%)',\n closeButton: {\n hoverBackground: '{red.100}',\n focusRing: {\n color: '{red.600}',\n shadow: 'none'\n }\n }\n },\n secondary: {\n background: '{surface.100}',\n borderColor: '{surface.200}',\n color: '{surface.600}',\n detailColor: '{surface.700}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {surface.500}, transparent 96%)',\n closeButton: {\n hoverBackground: '{surface.200}',\n focusRing: {\n color: '{surface.600}',\n shadow: 'none'\n }\n }\n },\n contrast: {\n background: '{surface.900}',\n borderColor: '{surface.950}',\n color: '{surface.50}',\n detailColor: '{surface.0}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {surface.950}, transparent 96%)',\n closeButton: {\n hoverBackground: '{surface.800}',\n focusRing: {\n color: '{surface.50}',\n shadow: 'none'\n }\n }\n }\n },\n dark: {\n blur: '10px',\n info: {\n background: 'color-mix(in srgb, {blue.500}, transparent 84%)',\n borderColor: 'color-mix(in srgb, {blue.700}, transparent 64%)',\n color: '{blue.500}',\n detailColor: '{surface.0}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {blue.500}, transparent 96%)',\n closeButton: {\n hoverBackground: 'rgba(255, 255, 255, 0.05)',\n focusRing: {\n color: '{blue.500}',\n shadow: 'none'\n }\n }\n },\n success: {\n background: 'color-mix(in srgb, {green.500}, transparent 84%)',\n borderColor: 'color-mix(in srgb, {green.700}, transparent 64%)',\n color: '{green.500}',\n detailColor: '{surface.0}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {green.500}, transparent 96%)',\n closeButton: {\n hoverBackground: 'rgba(255, 255, 255, 0.05)',\n focusRing: {\n color: '{green.500}',\n shadow: 'none'\n }\n }\n },\n warn: {\n background: 'color-mix(in srgb, {yellow.500}, transparent 84%)',\n borderColor: 'color-mix(in srgb, {yellow.700}, transparent 64%)',\n color: '{yellow.500}',\n detailColor: '{surface.0}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {yellow.500}, transparent 96%)',\n closeButton: {\n hoverBackground: 'rgba(255, 255, 255, 0.05)',\n focusRing: {\n color: '{yellow.500}',\n shadow: 'none'\n }\n }\n },\n error: {\n background: 'color-mix(in srgb, {red.500}, transparent 84%)',\n borderColor: 'color-mix(in srgb, {red.700}, transparent 64%)',\n color: '{red.500}',\n detailColor: '{surface.0}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {red.500}, transparent 96%)',\n closeButton: {\n hoverBackground: 'rgba(255, 255, 255, 0.05)',\n focusRing: {\n color: '{red.500}',\n shadow: 'none'\n }\n }\n },\n secondary: {\n background: '{surface.800}',\n borderColor: '{surface.700}',\n color: '{surface.300}',\n detailColor: '{surface.0}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {surface.500}, transparent 96%)',\n closeButton: {\n hoverBackground: '{surface.700}',\n focusRing: {\n color: '{surface.300}',\n shadow: 'none'\n }\n }\n },\n contrast: {\n background: '{surface.0}',\n borderColor: '{surface.100}',\n color: '{surface.950}',\n detailColor: '{surface.950}',\n shadow: '0px 4px 8px 0px color-mix(in srgb, {surface.950}, transparent 96%)',\n closeButton: {\n hoverBackground: '{surface.100}',\n focusRing: {\n color: '{surface.950}',\n shadow: 'none'\n }\n }\n }\n }\n }\n};\n","export default {\n root: {\n padding: '0.5rem 1rem',\n borderRadius: '{content.border.radius}',\n gap: '0.5rem',\n fontWeight: '500',\n disabledBackground: '{form.field.disabled.background}',\n disabledBorderColor: '{form.field.disabled.background}',\n disabledColor: '{form.field.disabled.color}',\n invalidBorderColor: '{form.field.invalid.border.color}',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n },\n transitionDuration: '{form.field.transition.duration}'\n },\n icon: {\n disabledColor: '{form.field.disabled.color}'\n },\n content: {\n left: '0.25rem',\n top: '0.25rem',\n checkedShadow: '0px 1px 2px 0px rgba(0, 0, 0, 0.02), 0px 1px 2px 0px rgba(0, 0, 0, 0.04)'\n },\n colorScheme: {\n light: {\n root: {\n background: '{surface.100}',\n checkedBackground: '{surface.100}',\n hoverBackground: '{surface.100}',\n borderColor: '{surface.100}',\n color: '{surface.500}',\n hoverColor: '{surface.700}',\n checkedColor: '{surface.900}',\n checkedBorderColor: '{surface.100}'\n },\n content: {\n checkedBackground: '{surface.0}'\n },\n icon: {\n color: '{surface.500}',\n hoverColor: '{surface.700}',\n checkedColor: '{surface.900}'\n }\n },\n dark: {\n root: {\n background: '{surface.950}',\n checkedBackground: '{surface.950}',\n hoverBackground: '{surface.950}',\n borderColor: '{surface.950}',\n color: '{surface.400}',\n hoverColor: '{surface.300}',\n checkedColor: '{surface.0}',\n checkedBorderColor: '{surface.950}'\n },\n content: {\n checkedBackground: '{surface.800}'\n },\n icon: {\n color: '{surface.400}',\n hoverColor: '{surface.300}',\n checkedColor: '{surface.0}'\n }\n }\n }\n};\n","export default {\n root: {\n width: '2.5rem',\n height: '1.5rem',\n borderRadius: '30px',\n gap: '0.25rem',\n shadow: '{form.field.shadow}',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n },\n borderWidth: '1px',\n borderColor: 'transparent',\n hoverBorderColor: 'transparent',\n checkedBorderColor: 'transparent',\n checkedHoverBorderColor: 'transparent',\n invalidBorderColor: '{form.field.invalid.border.color}',\n transitionDuration: '{form.field.transition.duration}',\n slideDuration: '0.2s',\n disabledBackground: '{form.field.disabled.background}'\n },\n handle: {\n borderRadius: '50%',\n size: '1rem',\n disabledBackground: '{form.field.disabled.color}'\n },\n colorScheme: {\n light: {\n root: {\n background: '{surface.300}',\n hoverBackground: '{surface.400}',\n checkedBackground: '{primary.color}',\n checkedHoverBackground: '{primary.hover.color}'\n },\n handle: {\n background: '{surface.0}',\n hoverBackground: '{surface.0}',\n checkedBackground: '{surface.0}',\n checkedHoverBackground: '{surface.0}'\n }\n },\n dark: {\n root: {\n background: '{surface.700}',\n hoverBackground: '{surface.600}',\n checkedBackground: '{primary.color}',\n checkedHoverBackground: '{primary.hover.color}'\n },\n handle: {\n background: '{surface.400}',\n hoverBackground: '{surface.300}',\n checkedBackground: '{surface.900}',\n checkedHoverBackground: '{surface.900}'\n }\n }\n }\n};\n","export default {\n root: {\n background: '{content.background}',\n borderColor: '{content.border.color}',\n borderRadius: '{content.border.radius}',\n color: '{content.color}',\n gap: '0.5rem',\n padding: '0.75rem'\n }\n};\n","export default {\n root: {\n maxWidth: '12.5rem',\n gutter: '0.25rem',\n shadow: '{overlay.popover.shadow}',\n padding: '0.5rem 0.75rem',\n borderRadius: '{overlay.popover.border.radius}'\n },\n colorScheme: {\n light: {\n root: {\n background: '{surface.700}',\n color: '{surface.0}'\n }\n },\n dark: {\n root: {\n background: '{surface.700}',\n color: '{surface.0}'\n }\n }\n }\n};\n","export default {\n root: {\n background: '{content.background}',\n color: '{content.color}',\n padding: '1rem',\n gap: '2px',\n indent: '1rem',\n transitionDuration: '{transition.duration}'\n },\n node: {\n padding: '0.25rem 0.5rem',\n borderRadius: '{content.border.radius}',\n hoverBackground: '{content.hover.background}',\n selectedBackground: '{highlight.background}',\n color: '{text.color}',\n hoverColor: '{text.hover.color}',\n selectedColor: '{highlight.color}',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '-1px',\n shadow: '{focus.ring.shadow}'\n },\n gap: '0.25rem'\n },\n nodeIcon: {\n color: '{text.muted.color}',\n hoverColor: '{text.hover.muted.color}',\n selectedColor: '{highlight.color}'\n },\n nodeToggleButton: {\n borderRadius: '50%',\n size: '1.75rem',\n hoverBackground: '{content.hover.background}',\n selectedHoverBackground: '{content.background}',\n color: '{text.muted.color}',\n hoverColor: '{text.hover.muted.color}',\n selectedHoverColor: '{primary.color}',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n }\n },\n loadingIcon: {\n size: '2rem'\n }\n};\n","export default {\n root: {\n background: '{form.field.background}',\n disabledBackground: '{form.field.disabled.background}',\n filledBackground: '{form.field.filled.background}',\n filledFocusBackground: '{form.field.filled.focus.background}',\n borderColor: '{form.field.border.color}',\n hoverBorderColor: '{form.field.hover.border.color}',\n focusBorderColor: '{form.field.focus.border.color}',\n invalidBorderColor: '{form.field.invalid.border.color}',\n color: '{form.field.color}',\n disabledColor: '{form.field.disabled.color}',\n placeholderColor: '{form.field.placeholder.color}',\n shadow: '{form.field.shadow}',\n paddingX: '{form.field.padding.x}',\n paddingY: '{form.field.padding.y}',\n borderRadius: '{form.field.border.radius}',\n focusRing: {\n width: '{form.field.focus.ring.width}',\n style: '{form.field.focus.ring.style}',\n color: '{form.field.focus.ring.color}',\n offset: '{form.field.focus.ring.offset}',\n shadow: '{form.field.focus.ring.shadow}'\n },\n transitionDuration: '{form.field.transition.duration}'\n },\n dropdown: {\n width: '2.5rem',\n color: '{form.field.icon.color}'\n },\n overlay: {\n background: '{overlay.select.background}',\n borderColor: '{overlay.select.border.color}',\n borderRadius: '{overlay.select.border.radius}',\n color: '{overlay.select.color}',\n shadow: '{overlay.select.shadow}'\n },\n tree: {\n padding: '{list.padding}'\n },\n emptyMessage: {\n padding: '{list.option.padding}'\n },\n chip: {\n borderRadius: '{border.radius.sm}'\n }\n};\n","export default {\n root: {\n transitionDuration: '{transition.duration}'\n },\n header: {\n background: '{content.background}',\n borderColor: '{treetable.border.color}',\n color: '{content.color}',\n borderWidth: '0 0 1px 0',\n padding: '0.75rem 1rem'\n },\n headerCell: {\n background: '{content.background}',\n hoverBackground: '{content.hover.background}',\n selectedBackground: '{highlight.background}',\n borderColor: '{treetable.border.color}',\n color: '{content.color}',\n hoverColor: '{content.hover.color}',\n selectedColor: '{highlight.color}',\n gap: '0.5rem',\n padding: '0.75rem 1rem',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '-1px',\n shadow: '{focus.ring.shadow}'\n }\n },\n columnTitle: {\n fontWeight: '600'\n },\n row: {\n background: '{content.background}',\n hoverBackground: '{content.hover.background}',\n selectedBackground: '{highlight.background}',\n color: '{content.color}',\n hoverColor: '{content.hover.color}',\n selectedColor: '{highlight.color}',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '-1px',\n shadow: '{focus.ring.shadow}'\n }\n },\n bodyCell: {\n borderColor: '{treetable.border.color}',\n padding: '0.75rem 1rem',\n gap: '0.5rem'\n },\n footerCell: {\n background: '{content.background}',\n borderColor: '{treetable.border.color}',\n color: '{content.color}',\n padding: '0.75rem 1rem'\n },\n columnFooter: {\n fontWeight: '600'\n },\n footer: {\n background: '{content.background}',\n borderColor: '{treetable.border.color}',\n color: '{content.color}',\n borderWidth: '0 0 1px 0',\n padding: '0.75rem 1rem'\n },\n columnResizerWidth: '0.5rem',\n resizeIndicator: {\n width: '1px',\n color: '{primary.color}'\n },\n sortIcon: {\n color: '{text.muted.color}',\n hoverColor: '{text.hover.muted.color}'\n },\n loadingIcon: {\n size: '2rem'\n },\n nodeToggleButton: {\n hoverBackground: '{content.hover.background}',\n selectedHoverBackground: '{content.background}',\n color: '{text.muted.color}',\n hoverColor: '{text.color}',\n selectedHoverColor: '{primary.color}',\n size: '1.75rem',\n borderRadius: '50%',\n focusRing: {\n width: '{focus.ring.width}',\n style: '{focus.ring.style}',\n color: '{focus.ring.color}',\n offset: '{focus.ring.offset}',\n shadow: '{focus.ring.shadow}'\n }\n },\n paginatorTop: {\n borderColor: '{content.border.color}',\n borderWidth: '0 0 1px 0'\n },\n paginatorBottom: {\n borderColor: '{content.border.color}',\n borderWidth: '0 0 1px 0'\n },\n colorScheme: {\n light: {\n root: {\n borderColor: '{content.border.color}'\n },\n bodyCell: {\n selectedBorderColor: '{primary.100}'\n }\n },\n dark: {\n root: {\n borderColor: '{surface.800}'\n },\n bodyCell: {\n selectedBorderColor: '{primary.900}'\n }\n }\n }\n};\n","export default {\n loader: {\n mask: {\n background: '{content.background}',\n color: '{text.muted.color}'\n },\n icon: {\n size: '2rem'\n }\n }\n};\n","import accordion from '@primevue/themes/aura/accordion';\nimport autocomplete from '@primevue/themes/aura/autocomplete';\nimport avatar from '@primevue/themes/aura/avatar';\nimport badge from '@primevue/themes/aura/badge';\nimport blockui from '@primevue/themes/aura/blockui';\nimport breadcrumb from '@primevue/themes/aura/breadcrumb';\nimport button from '@primevue/themes/aura/button';\nimport card from '@primevue/themes/aura/card';\nimport carousel from '@primevue/themes/aura/carousel';\nimport cascadeselect from '@primevue/themes/aura/cascadeselect';\nimport checkbox from '@primevue/themes/aura/checkbox';\nimport chip from '@primevue/themes/aura/chip';\nimport colorpicker from '@primevue/themes/aura/colorpicker';\nimport confirmdialog from '@primevue/themes/aura/confirmdialog';\nimport confirmpopup from '@primevue/themes/aura/confirmpopup';\nimport contextmenu from '@primevue/themes/aura/contextmenu';\nimport datatable from '@primevue/themes/aura/datatable';\nimport dataview from '@primevue/themes/aura/dataview';\nimport datepicker from '@primevue/themes/aura/datepicker';\nimport dialog from '@primevue/themes/aura/dialog';\nimport divider from '@primevue/themes/aura/divider';\nimport dock from '@primevue/themes/aura/dock';\nimport drawer from '@primevue/themes/aura/drawer';\nimport editor from '@primevue/themes/aura/editor';\nimport fieldset from '@primevue/themes/aura/fieldset';\nimport fileupload from '@primevue/themes/aura/fileupload';\nimport floatlabel from '@primevue/themes/aura/floatlabel';\nimport galleria from '@primevue/themes/aura/galleria';\nimport iconfield from '@primevue/themes/aura/iconfield';\nimport image from '@primevue/themes/aura/image';\nimport inlinemessage from '@primevue/themes/aura/inlinemessage';\nimport inplace from '@primevue/themes/aura/inplace';\nimport inputchips from '@primevue/themes/aura/inputchips';\nimport inputgroup from '@primevue/themes/aura/inputgroup';\nimport inputnumber from '@primevue/themes/aura/inputnumber';\nimport inputtext from '@primevue/themes/aura/inputtext';\nimport knob from '@primevue/themes/aura/knob';\nimport listbox from '@primevue/themes/aura/listbox';\nimport megamenu from '@primevue/themes/aura/megamenu';\nimport menu from '@primevue/themes/aura/menu';\nimport menubar from '@primevue/themes/aura/menubar';\nimport message from '@primevue/themes/aura/message';\nimport metergroup from '@primevue/themes/aura/metergroup';\nimport multiselect from '@primevue/themes/aura/multiselect';\nimport orderlist from '@primevue/themes/aura/orderlist';\nimport organizationchart from '@primevue/themes/aura/organizationchart';\nimport overlaybadge from '@primevue/themes/aura/overlaybadge';\nimport paginator from '@primevue/themes/aura/paginator';\nimport panel from '@primevue/themes/aura/panel';\nimport panelmenu from '@primevue/themes/aura/panelmenu';\nimport password from '@primevue/themes/aura/password';\nimport picklist from '@primevue/themes/aura/picklist';\nimport popover from '@primevue/themes/aura/popover';\nimport progressbar from '@primevue/themes/aura/progressbar';\nimport progressspinner from '@primevue/themes/aura/progressspinner';\nimport radiobutton from '@primevue/themes/aura/radiobutton';\nimport rating from '@primevue/themes/aura/rating';\nimport ripple from '@primevue/themes/aura/ripple';\nimport scrollpanel from '@primevue/themes/aura/scrollpanel';\nimport select from '@primevue/themes/aura/select';\nimport selectbutton from '@primevue/themes/aura/selectbutton';\nimport skeleton from '@primevue/themes/aura/skeleton';\nimport slider from '@primevue/themes/aura/slider';\nimport speeddial from '@primevue/themes/aura/speeddial';\nimport splitbutton from '@primevue/themes/aura/splitbutton';\nimport splitter from '@primevue/themes/aura/splitter';\nimport stepper from '@primevue/themes/aura/stepper';\nimport steps from '@primevue/themes/aura/steps';\nimport tabmenu from '@primevue/themes/aura/tabmenu';\nimport tabs from '@primevue/themes/aura/tabs';\nimport tabview from '@primevue/themes/aura/tabview';\nimport tag from '@primevue/themes/aura/tag';\nimport terminal from '@primevue/themes/aura/terminal';\nimport textarea from '@primevue/themes/aura/textarea';\nimport tieredmenu from '@primevue/themes/aura/tieredmenu';\nimport timeline from '@primevue/themes/aura/timeline';\nimport toast from '@primevue/themes/aura/toast';\nimport togglebutton from '@primevue/themes/aura/togglebutton';\nimport toggleswitch from '@primevue/themes/aura/toggleswitch';\nimport toolbar from '@primevue/themes/aura/toolbar';\nimport tooltip from '@primevue/themes/aura/tooltip';\nimport tree from '@primevue/themes/aura/tree';\nimport treeselect from '@primevue/themes/aura/treeselect';\nimport treetable from '@primevue/themes/aura/treetable';\nimport virtualscroller from '@primevue/themes/aura/virtualscroller';\n\nexport default {\n primitive: {\n borderRadius: {\n none: '0',\n xs: '2px',\n sm: '4px',\n md: '6px',\n lg: '8px',\n xl: '12px'\n },\n emerald: { 50: '#ecfdf5', 100: '#d1fae5', 200: '#a7f3d0', 300: '#6ee7b7', 400: '#34d399', 500: '#10b981', 600: '#059669', 700: '#047857', 800: '#065f46', 900: '#064e3b', 950: '#022c22' },\n green: { 50: '#f0fdf4', 100: '#dcfce7', 200: '#bbf7d0', 300: '#86efac', 400: '#4ade80', 500: '#22c55e', 600: '#16a34a', 700: '#15803d', 800: '#166534', 900: '#14532d', 950: '#052e16' },\n lime: { 50: '#f7fee7', 100: '#ecfccb', 200: '#d9f99d', 300: '#bef264', 400: '#a3e635', 500: '#84cc16', 600: '#65a30d', 700: '#4d7c0f', 800: '#3f6212', 900: '#365314', 950: '#1a2e05' },\n red: { 50: '#fef2f2', 100: '#fee2e2', 200: '#fecaca', 300: '#fca5a5', 400: '#f87171', 500: '#ef4444', 600: '#dc2626', 700: '#b91c1c', 800: '#991b1b', 900: '#7f1d1d', 950: '#450a0a' },\n orange: { 50: '#fff7ed', 100: '#ffedd5', 200: '#fed7aa', 300: '#fdba74', 400: '#fb923c', 500: '#f97316', 600: '#ea580c', 700: '#c2410c', 800: '#9a3412', 900: '#7c2d12', 950: '#431407' },\n amber: { 50: '#fffbeb', 100: '#fef3c7', 200: '#fde68a', 300: '#fcd34d', 400: '#fbbf24', 500: '#f59e0b', 600: '#d97706', 700: '#b45309', 800: '#92400e', 900: '#78350f', 950: '#451a03' },\n yellow: { 50: '#fefce8', 100: '#fef9c3', 200: '#fef08a', 300: '#fde047', 400: '#facc15', 500: '#eab308', 600: '#ca8a04', 700: '#a16207', 800: '#854d0e', 900: '#713f12', 950: '#422006' },\n teal: { 50: '#f0fdfa', 100: '#ccfbf1', 200: '#99f6e4', 300: '#5eead4', 400: '#2dd4bf', 500: '#14b8a6', 600: '#0d9488', 700: '#0f766e', 800: '#115e59', 900: '#134e4a', 950: '#042f2e' },\n cyan: { 50: '#ecfeff', 100: '#cffafe', 200: '#a5f3fc', 300: '#67e8f9', 400: '#22d3ee', 500: '#06b6d4', 600: '#0891b2', 700: '#0e7490', 800: '#155e75', 900: '#164e63', 950: '#083344' },\n sky: { 50: '#f0f9ff', 100: '#e0f2fe', 200: '#bae6fd', 300: '#7dd3fc', 400: '#38bdf8', 500: '#0ea5e9', 600: '#0284c7', 700: '#0369a1', 800: '#075985', 900: '#0c4a6e', 950: '#082f49' },\n blue: { 50: '#eff6ff', 100: '#dbeafe', 200: '#bfdbfe', 300: '#93c5fd', 400: '#60a5fa', 500: '#3b82f6', 600: '#2563eb', 700: '#1d4ed8', 800: '#1e40af', 900: '#1e3a8a', 950: '#172554' },\n indigo: { 50: '#eef2ff', 100: '#e0e7ff', 200: '#c7d2fe', 300: '#a5b4fc', 400: '#818cf8', 500: '#6366f1', 600: '#4f46e5', 700: '#4338ca', 800: '#3730a3', 900: '#312e81', 950: '#1e1b4b' },\n violet: { 50: '#f5f3ff', 100: '#ede9fe', 200: '#ddd6fe', 300: '#c4b5fd', 400: '#a78bfa', 500: '#8b5cf6', 600: '#7c3aed', 700: '#6d28d9', 800: '#5b21b6', 900: '#4c1d95', 950: '#2e1065' },\n purple: { 50: '#faf5ff', 100: '#f3e8ff', 200: '#e9d5ff', 300: '#d8b4fe', 400: '#c084fc', 500: '#a855f7', 600: '#9333ea', 700: '#7e22ce', 800: '#6b21a8', 900: '#581c87', 950: '#3b0764' },\n fuchsia: { 50: '#fdf4ff', 100: '#fae8ff', 200: '#f5d0fe', 300: '#f0abfc', 400: '#e879f9', 500: '#d946ef', 600: '#c026d3', 700: '#a21caf', 800: '#86198f', 900: '#701a75', 950: '#4a044e' },\n pink: { 50: '#fdf2f8', 100: '#fce7f3', 200: '#fbcfe8', 300: '#f9a8d4', 400: '#f472b6', 500: '#ec4899', 600: '#db2777', 700: '#be185d', 800: '#9d174d', 900: '#831843', 950: '#500724' },\n rose: { 50: '#fff1f2', 100: '#ffe4e6', 200: '#fecdd3', 300: '#fda4af', 400: '#fb7185', 500: '#f43f5e', 600: '#e11d48', 700: '#be123c', 800: '#9f1239', 900: '#881337', 950: '#4c0519' },\n slate: { 50: '#f8fafc', 100: '#f1f5f9', 200: '#e2e8f0', 300: '#cbd5e1', 400: '#94a3b8', 500: '#64748b', 600: '#475569', 700: '#334155', 800: '#1e293b', 900: '#0f172a', 950: '#020617' },\n gray: { 50: '#f9fafb', 100: '#f3f4f6', 200: '#e5e7eb', 300: '#d1d5db', 400: '#9ca3af', 500: '#6b7280', 600: '#4b5563', 700: '#374151', 800: '#1f2937', 900: '#111827', 950: '#030712' },\n zinc: { 50: '#fafafa', 100: '#f4f4f5', 200: '#e4e4e7', 300: '#d4d4d8', 400: '#a1a1aa', 500: '#71717a', 600: '#52525b', 700: '#3f3f46', 800: '#27272a', 900: '#18181b', 950: '#09090b' },\n neutral: { 50: '#fafafa', 100: '#f5f5f5', 200: '#e5e5e5', 300: '#d4d4d4', 400: '#a3a3a3', 500: '#737373', 600: '#525252', 700: '#404040', 800: '#262626', 900: '#171717', 950: '#0a0a0a' },\n stone: { 50: '#fafaf9', 100: '#f5f5f4', 200: '#e7e5e4', 300: '#d6d3d1', 400: '#a8a29e', 500: '#78716c', 600: '#57534e', 700: '#44403c', 800: '#292524', 900: '#1c1917', 950: '#0c0a09' }\n },\n semantic: {\n transitionDuration: '0.2s',\n focusRing: {\n width: '1px',\n style: 'solid',\n color: '{primary.color}',\n offset: '2px',\n shadow: 'none'\n },\n disabledOpacity: '0.6',\n iconSize: '1rem',\n anchorGutter: '2px',\n primary: {\n 50: '{emerald.50}',\n 100: '{emerald.100}',\n 200: '{emerald.200}',\n 300: '{emerald.300}',\n 400: '{emerald.400}',\n 500: '{emerald.500}',\n 600: '{emerald.600}',\n 700: '{emerald.700}',\n 800: '{emerald.800}',\n 900: '{emerald.900}',\n 950: '{emerald.950}'\n },\n formField: {\n paddingX: '0.75rem',\n paddingY: '0.5rem',\n borderRadius: '{border.radius.md}',\n focusRing: {\n width: '0',\n style: 'none',\n color: 'transparent',\n offset: '0',\n shadow: 'none'\n },\n transitionDuration: '{transition.duration}'\n },\n list: {\n padding: '0.25rem 0.25rem',\n gap: '2px',\n header: {\n padding: '0.5rem 1rem 0.25rem 1rem'\n },\n option: {\n padding: '0.5rem 0.75rem',\n borderRadius: '{border.radius.sm}'\n },\n optionGroup: {\n padding: '0.5rem 0.75rem',\n fontWeight: '600'\n }\n },\n content: {\n borderRadius: '{border.radius.md}'\n },\n mask: {\n transitionDuration: '0.15s'\n },\n navigation: {\n list: {\n padding: '0.25rem 0.25rem',\n gap: '2px'\n },\n item: {\n padding: '0.5rem 0.75rem',\n borderRadius: '{border.radius.sm}',\n gap: '0.5rem'\n },\n submenuLabel: {\n padding: '0.5rem 0.75rem',\n fontWeight: '600'\n },\n submenuIcon: {\n size: '0.875rem'\n }\n },\n overlay: {\n select: {\n borderRadius: '{border.radius.md}',\n shadow: '0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1)'\n },\n popover: {\n borderRadius: '{border.radius.md}',\n padding: '0.75rem',\n shadow: '0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1)'\n },\n modal: {\n borderRadius: '{border.radius.xl}',\n padding: '1.25rem',\n shadow: '0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1)'\n },\n navigation: {\n shadow: '0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1)'\n }\n },\n colorScheme: {\n light: {\n surface: {\n 0: '#ffffff',\n 50: '{slate.50}',\n 100: '{slate.100}',\n 200: '{slate.200}',\n 300: '{slate.300}',\n 400: '{slate.400}',\n 500: '{slate.500}',\n 600: '{slate.600}',\n 700: '{slate.700}',\n 800: '{slate.800}',\n 900: '{slate.900}',\n 950: '{slate.950}'\n },\n primary: {\n color: '{primary.500}',\n contrastColor: '#ffffff',\n hoverColor: '{primary.600}',\n activeColor: '{primary.700}'\n },\n highlight: {\n background: '{primary.50}',\n focusBackground: '{primary.100}',\n color: '{primary.700}',\n focusColor: '{primary.800}'\n },\n mask: {\n background: 'rgba(0,0,0,0.4)',\n color: '{surface.200}'\n },\n formField: {\n background: '{surface.0}',\n disabledBackground: '{surface.200}',\n filledBackground: '{surface.50}',\n filledFocusBackground: '{surface.50}',\n borderColor: '{surface.300}',\n hoverBorderColor: '{surface.400}',\n focusBorderColor: '{primary.color}',\n invalidBorderColor: '{red.400}',\n color: '{surface.700}',\n disabledColor: '{surface.500}',\n placeholderColor: '{surface.500}',\n floatLabelColor: '{surface.500}',\n floatLabelFocusColor: '{surface.500}',\n floatLabelInvalidColor: '{red.400}',\n iconColor: '{surface.400}',\n shadow: '0 0 #0000, 0 0 #0000, 0 1px 2px 0 rgba(18, 18, 23, 0.05)'\n },\n text: {\n color: '{surface.700}',\n hoverColor: '{surface.800}',\n mutedColor: '{surface.500}',\n hoverMutedColor: '{surface.600}'\n },\n content: {\n background: '{surface.0}',\n hoverBackground: '{surface.100}',\n borderColor: '{surface.200}',\n color: '{text.color}',\n hoverColor: '{text.hover.color}'\n },\n overlay: {\n select: {\n background: '{surface.0}',\n borderColor: '{surface.200}',\n color: '{text.color}'\n },\n popover: {\n background: '{surface.0}',\n borderColor: '{surface.200}',\n color: '{text.color}'\n },\n modal: {\n background: '{surface.0}',\n borderColor: '{surface.200}',\n color: '{text.color}'\n }\n },\n list: {\n option: {\n focusBackground: '{surface.100}',\n selectedBackground: '{highlight.background}',\n selectedFocusBackground: '{highlight.focus.background}',\n color: '{text.color}',\n focusColor: '{text.hover.color}',\n selectedColor: '{highlight.color}',\n selectedFocusColor: '{highlight.focus.color}',\n icon: {\n color: '{surface.400}',\n focusColor: '{surface.500}'\n }\n },\n optionGroup: {\n background: 'transparent',\n color: '{text.muted.color}'\n }\n },\n navigation: {\n item: {\n focusBackground: '{surface.100}',\n activeBackground: '{surface.100}',\n color: '{text.color}',\n focusColor: '{text.hover.color}',\n activeColor: '{text.hover.color}',\n icon: {\n color: '{surface.400}',\n focusColor: '{surface.500}',\n activeColor: '{surface.500}'\n }\n },\n submenuLabel: {\n background: 'transparent',\n color: '{text.muted.color}'\n },\n submenuIcon: {\n color: '{surface.400}',\n focusColor: '{surface.500}',\n activeColor: '{surface.500}'\n }\n }\n },\n dark: {\n surface: {\n 0: '#ffffff',\n 50: '{zinc.50}',\n 100: '{zinc.100}',\n 200: '{zinc.200}',\n 300: '{zinc.300}',\n 400: '{zinc.400}',\n 500: '{zinc.500}',\n 600: '{zinc.600}',\n 700: '{zinc.700}',\n 800: '{zinc.800}',\n 900: '{zinc.900}',\n 950: '{zinc.950}'\n },\n primary: {\n color: '{primary.400}',\n contrastColor: '{surface.900}',\n hoverColor: '{primary.300}',\n activeColor: '{primary.200}'\n },\n highlight: {\n background: 'color-mix(in srgb, {primary.400}, transparent 84%)',\n focusBackground: 'color-mix(in srgb, {primary.400}, transparent 76%)',\n color: 'rgba(255,255,255,.87)',\n focusColor: 'rgba(255,255,255,.87)'\n },\n mask: {\n background: 'rgba(0,0,0,0.6)',\n color: '{surface.200}'\n },\n formField: {\n background: '{surface.950}',\n disabledBackground: '{surface.700}',\n filledBackground: '{surface.800}',\n filledFocusBackground: '{surface.800}',\n borderColor: '{surface.700}',\n hoverBorderColor: '{surface.600}',\n focusBorderColor: '{primary.color}',\n invalidBorderColor: '{red.300}',\n color: '{surface.0}',\n disabledColor: '{surface.400}',\n placeholderColor: '{surface.400}',\n floatLabelColor: '{surface.400}',\n floatLabelFocusColor: '{surface.400}',\n floatLabelInvalidColor: '{red.300}',\n iconColor: '{surface.400}',\n shadow: '0 0 #0000, 0 0 #0000, 0 1px 2px 0 rgba(18, 18, 23, 0.05)'\n },\n text: {\n color: '{surface.0}',\n hoverColor: '{surface.0}',\n mutedColor: '{surface.400}',\n hoverMutedColor: '{surface.300}'\n },\n content: {\n background: '{surface.900}',\n hoverBackground: '{surface.800}',\n borderColor: '{surface.700}',\n color: '{text.color}',\n hoverColor: '{text.hover.color}'\n },\n overlay: {\n select: {\n background: '{surface.900}',\n borderColor: '{surface.700}',\n color: '{text.color}'\n },\n popover: {\n background: '{surface.900}',\n borderColor: '{surface.700}',\n color: '{text.color}'\n },\n modal: {\n background: '{surface.900}',\n borderColor: '{surface.700}',\n color: '{text.color}'\n }\n },\n list: {\n option: {\n focusBackground: '{surface.800}',\n selectedBackground: '{highlight.background}',\n selectedFocusBackground: '{highlight.focus.background}',\n color: '{text.color}',\n focusColor: '{text.hover.color}',\n selectedColor: '{highlight.color}',\n selectedFocusColor: '{highlight.focus.color}',\n icon: {\n color: '{surface.500}',\n focusColor: '{surface.400}'\n }\n },\n optionGroup: {\n background: 'transparent',\n color: '{text.muted.color}'\n }\n },\n navigation: {\n item: {\n focusBackground: '{surface.800}',\n activeBackground: '{surface.800}',\n color: '{text.color}',\n focusColor: '{text.hover.color}',\n activeColor: '{text.hover.color}',\n icon: {\n color: '{surface.500}',\n focusColor: '{surface.400}',\n activeColor: '{surface.400}'\n }\n },\n submenuLabel: {\n background: 'transparent',\n color: '{text.muted.color}'\n },\n submenuIcon: {\n color: '{surface.500}',\n focusColor: '{surface.400}',\n activeColor: '{surface.400}'\n }\n }\n }\n }\n },\n components: {\n accordion,\n autocomplete,\n avatar,\n badge,\n blockui,\n breadcrumb,\n button,\n datepicker,\n card,\n carousel,\n cascadeselect,\n checkbox,\n chip,\n colorpicker,\n confirmdialog,\n confirmpopup,\n contextmenu,\n dataview,\n datatable,\n dialog,\n divider,\n dock,\n drawer,\n editor,\n fieldset,\n fileupload,\n floatlabel,\n galleria,\n iconfield,\n image,\n inlinemessage,\n inplace,\n inputchips,\n inputgroup,\n inputnumber,\n inputtext,\n knob,\n listbox,\n megamenu,\n menu,\n menubar,\n message,\n metergroup,\n multiselect,\n orderlist,\n organizationchart,\n overlaybadge,\n popover,\n paginator,\n password,\n panel,\n panelmenu,\n picklist,\n progressbar,\n progressspinner,\n radiobutton,\n rating,\n scrollpanel,\n select,\n selectbutton,\n skeleton,\n slider,\n speeddial,\n splitter,\n splitbutton,\n stepper,\n steps,\n tabmenu,\n tabs,\n tabview,\n textarea,\n tieredmenu,\n tag,\n terminal,\n timeline,\n togglebutton,\n toggleswitch,\n tree,\n treeselect,\n treetable,\n toast,\n toolbar,\n virtualscroller\n },\n directives: {\n tooltip,\n ripple\n }\n};\n","import BaseStyle from '@primevue/core/base/style';\n\nconst theme = ({ dt }) => `\n.p-card {\n background: ${dt('card.background')};\n color: ${dt('card.color')};\n box-shadow: ${dt('card.shadow')};\n border-radius: ${dt('card.border.radius')};\n display: flex;\n flex-direction: column;\n}\n\n.p-card-caption {\n display: flex;\n flex-direction: column;\n gap: ${dt('card.caption.gap')};\n}\n\n.p-card-body {\n padding: ${dt('card.body.padding')};\n display: flex;\n flex-direction: column;\n gap: ${dt('card.body.gap')};\n}\n\n.p-card-title {\n font-size: ${dt('card.title.font.size')};\n font-weight: ${dt('card.title.font.weight')};\n}\n\n.p-card-subtitle {\n color: ${dt('card.subtitle.color')};\n}\n`;\n\nconst classes = {\n root: 'p-card p-component',\n header: 'p-card-header',\n body: 'p-card-body',\n caption: 'p-card-caption',\n title: 'p-card-title',\n subtitle: 'p-card-subtitle',\n content: 'p-card-content',\n footer: 'p-card-footer'\n};\n\nexport default BaseStyle.extend({\n name: 'card',\n theme,\n classes\n});\n","<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport CardStyle from 'primevue/card/style';\n\nexport default {\n name: 'BaseCard',\n extends: BaseComponent,\n style: CardStyle,\n provide() {\n return {\n $pcCard: this,\n $parentInstance: this\n };\n }\n};\n</script>\n","<template>\n <div :class=\"cx('root')\" v-bind=\"ptmi('root')\">\n <div v-if=\"$slots.header\" :class=\"cx('header')\" v-bind=\"ptm('header')\">\n <slot name=\"header\"></slot>\n </div>\n <div :class=\"cx('body')\" v-bind=\"ptm('body')\">\n <div v-if=\"$slots.title || $slots.subtitle\" :class=\"cx('caption')\" v-bind=\"ptm('caption')\">\n <div v-if=\"$slots.title\" :class=\"cx('title')\" v-bind=\"ptm('title')\">\n <slot name=\"title\"></slot>\n </div>\n <div v-if=\"$slots.subtitle\" :class=\"cx('subtitle')\" v-bind=\"ptm('subtitle')\">\n <slot name=\"subtitle\"></slot>\n </div>\n </div>\n <div :class=\"cx('content')\" v-bind=\"ptm('content')\">\n <slot name=\"content\"></slot>\n </div>\n <div v-if=\"$slots.footer\" :class=\"cx('footer')\" v-bind=\"ptm('footer')\">\n <slot name=\"footer\"></slot>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport BaseCard from './BaseCard.vue';\n\nexport default {\n name: 'Card',\n extends: BaseCard,\n inheritAttrs: false\n};\n</script>\n","<template>\n <div :class=\"cx('root')\" v-bind=\"ptmi('root')\">\n <div v-if=\"$slots.header\" :class=\"cx('header')\" v-bind=\"ptm('header')\">\n <slot name=\"header\"></slot>\n </div>\n <div :class=\"cx('body')\" v-bind=\"ptm('body')\">\n <div v-if=\"$slots.title || $slots.subtitle\" :class=\"cx('caption')\" v-bind=\"ptm('caption')\">\n <div v-if=\"$slots.title\" :class=\"cx('title')\" v-bind=\"ptm('title')\">\n <slot name=\"title\"></slot>\n </div>\n <div v-if=\"$slots.subtitle\" :class=\"cx('subtitle')\" v-bind=\"ptm('subtitle')\">\n <slot name=\"subtitle\"></slot>\n </div>\n </div>\n <div :class=\"cx('content')\" v-bind=\"ptm('content')\">\n <slot name=\"content\"></slot>\n </div>\n <div v-if=\"$slots.footer\" :class=\"cx('footer')\" v-bind=\"ptm('footer')\">\n <slot name=\"footer\"></slot>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport BaseCard from './BaseCard.vue';\n\nexport default {\n name: 'Card',\n extends: BaseCard,\n inheritAttrs: false\n};\n</script>\n","const FilterMatchMode = {\n STARTS_WITH: 'startsWith',\n CONTAINS: 'contains',\n NOT_CONTAINS: 'notContains',\n ENDS_WITH: 'endsWith',\n EQUALS: 'equals',\n NOT_EQUALS: 'notEquals',\n IN: 'in',\n LESS_THAN: 'lt',\n LESS_THAN_OR_EQUAL_TO: 'lte',\n GREATER_THAN: 'gt',\n GREATER_THAN_OR_EQUAL_TO: 'gte',\n BETWEEN: 'between',\n DATE_IS: 'dateIs',\n DATE_IS_NOT: 'dateIsNot',\n DATE_BEFORE: 'dateBefore',\n DATE_AFTER: 'dateAfter'\n};\n\nexport default FilterMatchMode;\n","import { equals, removeAccents, resolveFieldData } from '@primeuix/utils/object';\n\nconst FilterService = {\n filter(value, fields, filterValue, filterMatchMode, filterLocale) {\n let filteredItems = [];\n\n if (!value) {\n return filteredItems;\n }\n\n for (const item of value) {\n if (typeof item === 'string') {\n if (this.filters[filterMatchMode](item, filterValue, filterLocale)) {\n filteredItems.push(item);\n continue;\n }\n } else {\n for (const field of fields) {\n const fieldValue = resolveFieldData(item, field);\n\n if (this.filters[filterMatchMode](fieldValue, filterValue, filterLocale)) {\n filteredItems.push(item);\n break;\n }\n }\n }\n }\n\n return filteredItems;\n },\n filters: {\n startsWith(value, filter, filterLocale) {\n if (filter === undefined || filter === null || filter === '') {\n return true;\n }\n\n if (value === undefined || value === null) {\n return false;\n }\n\n let filterValue = removeAccents(filter.toString()).toLocaleLowerCase(filterLocale);\n let stringValue = removeAccents(value.toString()).toLocaleLowerCase(filterLocale);\n\n return stringValue.slice(0, filterValue.length) === filterValue;\n },\n contains(value, filter, filterLocale) {\n if (filter === undefined || filter === null || filter === '') {\n return true;\n }\n\n if (value === undefined || value === null) {\n return false;\n }\n\n let filterValue = removeAccents(filter.toString()).toLocaleLowerCase(filterLocale);\n let stringValue = removeAccents(value.toString()).toLocaleLowerCase(filterLocale);\n\n return stringValue.indexOf(filterValue) !== -1;\n },\n notContains(value, filter, filterLocale) {\n if (filter === undefined || filter === null || filter === '') {\n return true;\n }\n\n if (value === undefined || value === null) {\n return false;\n }\n\n let filterValue = removeAccents(filter.toString()).toLocaleLowerCase(filterLocale);\n let stringValue = removeAccents(value.toString()).toLocaleLowerCase(filterLocale);\n\n return stringValue.indexOf(filterValue) === -1;\n },\n endsWith(value, filter, filterLocale) {\n if (filter === undefined || filter === null || filter === '') {\n return true;\n }\n\n if (value === undefined || value === null) {\n return false;\n }\n\n let filterValue = removeAccents(filter.toString()).toLocaleLowerCase(filterLocale);\n let stringValue = removeAccents(value.toString()).toLocaleLowerCase(filterLocale);\n\n return stringValue.indexOf(filterValue, stringValue.length - filterValue.length) !== -1;\n },\n equals(value, filter, filterLocale) {\n if (filter === undefined || filter === null || filter === '') {\n return true;\n }\n\n if (value === undefined || value === null) {\n return false;\n }\n\n if (value.getTime && filter.getTime) return value.getTime() === filter.getTime();\n else return removeAccents(value.toString()).toLocaleLowerCase(filterLocale) == removeAccents(filter.toString()).toLocaleLowerCase(filterLocale);\n },\n notEquals(value, filter, filterLocale) {\n if (filter === undefined || filter === null || filter === '') {\n return false;\n }\n\n if (value === undefined || value === null) {\n return true;\n }\n\n if (value.getTime && filter.getTime) return value.getTime() !== filter.getTime();\n else return removeAccents(value.toString()).toLocaleLowerCase(filterLocale) != removeAccents(filter.toString()).toLocaleLowerCase(filterLocale);\n },\n in(value, filter) {\n if (filter === undefined || filter === null || filter.length === 0) {\n return true;\n }\n\n for (let i = 0; i < filter.length; i++) {\n if (equals(value, filter[i])) {\n return true;\n }\n }\n\n return false;\n },\n between(value, filter) {\n if (filter == null || filter[0] == null || filter[1] == null) {\n return true;\n }\n\n if (value === undefined || value === null) {\n return false;\n }\n\n if (value.getTime) return filter[0].getTime() <= value.getTime() && value.getTime() <= filter[1].getTime();\n else return filter[0] <= value && value <= filter[1];\n },\n lt(value, filter) {\n if (filter === undefined || filter === null) {\n return true;\n }\n\n if (value === undefined || value === null) {\n return false;\n }\n\n if (value.getTime && filter.getTime) return value.getTime() < filter.getTime();\n else return value < filter;\n },\n lte(value, filter) {\n if (filter === undefined || filter === null) {\n return true;\n }\n\n if (value === undefined || value === null) {\n return false;\n }\n\n if (value.getTime && filter.getTime) return value.getTime() <= filter.getTime();\n else return value <= filter;\n },\n gt(value, filter) {\n if (filter === undefined || filter === null) {\n return true;\n }\n\n if (value === undefined || value === null) {\n return false;\n }\n\n if (value.getTime && filter.getTime) return value.getTime() > filter.getTime();\n else return value > filter;\n },\n gte(value, filter) {\n if (filter === undefined || filter === null) {\n return true;\n }\n\n if (value === undefined || value === null) {\n return false;\n }\n\n if (value.getTime && filter.getTime) return value.getTime() >= filter.getTime();\n else return value >= filter;\n },\n dateIs(value, filter) {\n if (filter === undefined || filter === null) {\n return true;\n }\n\n if (value === undefined || value === null) {\n return false;\n }\n\n return value.toDateString() === filter.toDateString();\n },\n dateIsNot(value, filter) {\n if (filter === undefined || filter === null) {\n return true;\n }\n\n if (value === undefined || value === null) {\n return false;\n }\n\n return value.toDateString() !== filter.toDateString();\n },\n dateBefore(value, filter) {\n if (filter === undefined || filter === null) {\n return true;\n }\n\n if (value === undefined || value === null) {\n return false;\n }\n\n return value.getTime() < filter.getTime();\n },\n dateAfter(value, filter) {\n if (filter === undefined || filter === null) {\n return true;\n }\n\n if (value === undefined || value === null) {\n return false;\n }\n\n return value.getTime() > filter.getTime();\n }\n },\n register(rule, fn) {\n this.filters[rule] = fn;\n }\n};\n\nexport default FilterService;\n","import { Theme, ThemeService } from '@primeuix/styled';\nimport { FilterMatchMode } from '@primevue/core/api';\nimport BaseStyle from '@primevue/core/base/style';\nimport PrimeVueService from '@primevue/core/service';\nimport { inject, reactive, ref, watch } from 'vue';\nimport { mergeKeys } from '@primeuix/utils';\n\nexport const defaultOptions = {\n ripple: false,\n inputStyle: null,\n inputVariant: null,\n locale: {\n startsWith: 'Starts with',\n contains: 'Contains',\n notContains: 'Not contains',\n endsWith: 'Ends with',\n equals: 'Equals',\n notEquals: 'Not equals',\n noFilter: 'No Filter',\n lt: 'Less than',\n lte: 'Less than or equal to',\n gt: 'Greater than',\n gte: 'Greater than or equal to',\n dateIs: 'Date is',\n dateIsNot: 'Date is not',\n dateBefore: 'Date is before',\n dateAfter: 'Date is after',\n clear: 'Clear',\n apply: 'Apply',\n matchAll: 'Match All',\n matchAny: 'Match Any',\n addRule: 'Add Rule',\n removeRule: 'Remove Rule',\n accept: 'Yes',\n reject: 'No',\n choose: 'Choose',\n upload: 'Upload',\n cancel: 'Cancel',\n completed: 'Completed',\n pending: 'Pending',\n fileSizeTypes: ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'],\n dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n dayNamesMin: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],\n monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n chooseYear: 'Choose Year',\n chooseMonth: 'Choose Month',\n chooseDate: 'Choose Date',\n prevDecade: 'Previous Decade',\n nextDecade: 'Next Decade',\n prevYear: 'Previous Year',\n nextYear: 'Next Year',\n prevMonth: 'Previous Month',\n nextMonth: 'Next Month',\n prevHour: 'Previous Hour',\n nextHour: 'Next Hour',\n prevMinute: 'Previous Minute',\n nextMinute: 'Next Minute',\n prevSecond: 'Previous Second',\n nextSecond: 'Next Second',\n am: 'am',\n pm: 'pm',\n today: 'Today',\n weekHeader: 'Wk',\n firstDayOfWeek: 0,\n showMonthAfterYear: false,\n dateFormat: 'mm/dd/yy',\n weak: 'Weak',\n medium: 'Medium',\n strong: 'Strong',\n passwordPrompt: 'Enter a password',\n emptyFilterMessage: 'No results found',\n searchMessage: '{0} results are available',\n selectionMessage: '{0} items selected',\n emptySelectionMessage: 'No selected item',\n emptySearchMessage: 'No results found',\n fileChosenMessage: '{0} files',\n noFileChosenMessage: 'No file chosen',\n emptyMessage: 'No available options',\n aria: {\n trueLabel: 'True',\n falseLabel: 'False',\n nullLabel: 'Not Selected',\n star: '1 star',\n stars: '{star} stars',\n selectAll: 'All items selected',\n unselectAll: 'All items unselected',\n close: 'Close',\n previous: 'Previous',\n next: 'Next',\n navigation: 'Navigation',\n scrollTop: 'Scroll Top',\n moveTop: 'Move Top',\n moveUp: 'Move Up',\n moveDown: 'Move Down',\n moveBottom: 'Move Bottom',\n moveToTarget: 'Move to Target',\n moveToSource: 'Move to Source',\n moveAllToTarget: 'Move All to Target',\n moveAllToSource: 'Move All to Source',\n pageLabel: 'Page {page}',\n firstPageLabel: 'First Page',\n lastPageLabel: 'Last Page',\n nextPageLabel: 'Next Page',\n prevPageLabel: 'Previous Page',\n rowsPerPageLabel: 'Rows per page',\n jumpToPageDropdownLabel: 'Jump to Page Dropdown',\n jumpToPageInputLabel: 'Jump to Page Input',\n selectRow: 'Row Selected',\n unselectRow: 'Row Unselected',\n expandRow: 'Row Expanded',\n collapseRow: 'Row Collapsed',\n showFilterMenu: 'Show Filter Menu',\n hideFilterMenu: 'Hide Filter Menu',\n filterOperator: 'Filter Operator',\n filterConstraint: 'Filter Constraint',\n editRow: 'Row Edit',\n saveEdit: 'Save Edit',\n cancelEdit: 'Cancel Edit',\n listView: 'List View',\n gridView: 'Grid View',\n slide: 'Slide',\n slideNumber: '{slideNumber}',\n zoomImage: 'Zoom Image',\n zoomIn: 'Zoom In',\n zoomOut: 'Zoom Out',\n rotateRight: 'Rotate Right',\n rotateLeft: 'Rotate Left',\n listLabel: 'Option List'\n }\n },\n filterMatchModeOptions: {\n text: [FilterMatchMode.STARTS_WITH, FilterMatchMode.CONTAINS, FilterMatchMode.NOT_CONTAINS, FilterMatchMode.ENDS_WITH, FilterMatchMode.EQUALS, FilterMatchMode.NOT_EQUALS],\n numeric: [FilterMatchMode.EQUALS, FilterMatchMode.NOT_EQUALS, FilterMatchMode.LESS_THAN, FilterMatchMode.LESS_THAN_OR_EQUAL_TO, FilterMatchMode.GREATER_THAN, FilterMatchMode.GREATER_THAN_OR_EQUAL_TO],\n date: [FilterMatchMode.DATE_IS, FilterMatchMode.DATE_IS_NOT, FilterMatchMode.DATE_BEFORE, FilterMatchMode.DATE_AFTER]\n },\n zIndex: {\n modal: 1100,\n overlay: 1000,\n menu: 1000,\n tooltip: 1100\n },\n theme: undefined,\n unstyled: false,\n pt: undefined,\n ptOptions: {\n mergeSections: true,\n mergeProps: false\n },\n csp: {\n nonce: undefined\n }\n};\n\nconst PrimeVueSymbol = Symbol();\n\nexport function usePrimeVue() {\n const PrimeVue = inject(PrimeVueSymbol);\n\n if (!PrimeVue) {\n throw new Error('PrimeVue is not installed!');\n }\n\n return PrimeVue;\n}\n\nexport function setup(app, options) {\n const PrimeVue = {\n config: reactive(options)\n };\n\n app.config.globalProperties.$primevue = PrimeVue;\n app.provide(PrimeVueSymbol, PrimeVue);\n\n clearConfig();\n setupConfig(app, PrimeVue);\n\n return PrimeVue;\n}\n\nlet stopWatchers = [];\n\nexport function clearConfig() {\n ThemeService.clear();\n\n stopWatchers.forEach((fn) => fn?.());\n stopWatchers = [];\n}\n\nexport function setupConfig(app, PrimeVue) {\n const isThemeChanged = ref(false);\n\n /*** Methods and Services ***/\n const loadCommonTheme = () => {\n // common\n if (!Theme.isStyleNameLoaded('common')) {\n const { primitive, semantic } = BaseStyle.getCommonTheme?.() || {};\n const styleOptions = { nonce: PrimeVue.config?.csp?.nonce };\n\n BaseStyle.load(primitive?.css, { name: 'primitive-variables', ...styleOptions });\n BaseStyle.load(semantic?.css, { name: 'semantic-variables', ...styleOptions });\n BaseStyle.loadTheme({ name: 'global-style', ...styleOptions });\n\n Theme.setLoadedStyleName('common');\n }\n };\n\n ThemeService.on('theme:change', function (newTheme) {\n if (!isThemeChanged.value) {\n app.config.globalProperties.$primevue.config.theme = newTheme;\n isThemeChanged.value = true;\n }\n });\n\n /*** Watchers ***/\n const stopConfigWatcher = watch(\n PrimeVue.config,\n (newValue, oldValue) => {\n PrimeVueService.emit('config:change', { newValue, oldValue });\n },\n { immediate: true, deep: true }\n );\n\n const stopRippleWatcher = watch(\n () => PrimeVue.config.ripple,\n (newValue, oldValue) => {\n PrimeVueService.emit('config:ripple:change', { newValue, oldValue });\n },\n { immediate: true, deep: true }\n );\n\n const stopThemeWatcher = watch(\n () => PrimeVue.config.theme,\n (newValue, oldValue) => {\n if (!isThemeChanged.value) {\n Theme.setTheme(newValue);\n }\n\n if (!PrimeVue.config.unstyled) {\n loadCommonTheme();\n }\n\n isThemeChanged.value = false;\n PrimeVueService.emit('config:theme:change', { newValue, oldValue });\n },\n { immediate: true, deep: true }\n );\n\n const stopUnstyledWatcher = watch(\n () => PrimeVue.config.unstyled,\n (newValue, oldValue) => {\n if (!newValue && PrimeVue.config.theme) {\n loadCommonTheme();\n }\n\n PrimeVueService.emit('config:unstyled:change', { newValue, oldValue });\n },\n { immediate: true, deep: true }\n );\n\n stopWatchers.push(stopConfigWatcher);\n stopWatchers.push(stopRippleWatcher);\n stopWatchers.push(stopThemeWatcher);\n stopWatchers.push(stopUnstyledWatcher);\n}\n\nexport default {\n install: (app, options) => {\n const configOptions = mergeKeys(defaultOptions, options);\n\n setup(app, configOptions);\n }\n};\n","import BaseStyle from '@primevue/core/base/style';\n\nconst css = `\n.p-icon {\n display: inline-block;\n vertical-align: baseline;\n}\n\n.p-icon-spin {\n -webkit-animation: p-icon-spin 2s infinite linear;\n animation: p-icon-spin 2s infinite linear;\n}\n\n@-webkit-keyframes p-icon-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg);\n }\n}\n\n@keyframes p-icon-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(359deg);\n transform: rotate(359deg);\n }\n}\n`;\n\nexport default BaseStyle.extend({\n name: 'baseicon',\n css\n});\n","<script>\nimport { isEmpty } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport BaseIconStyle from '@primevue/icons/baseicon/style';\n\nexport default {\n name: 'BaseIcon',\n extends: BaseComponent,\n props: {\n label: {\n type: String,\n default: undefined\n },\n spin: {\n type: Boolean,\n default: false\n }\n },\n style: BaseIconStyle,\n provide() {\n return {\n $pcIcon: this,\n $parentInstance: this\n };\n },\n methods: {\n pti() {\n const isLabelEmpty = isEmpty(this.label);\n\n return {\n ...(!this.isUnstyled && {\n class: [\n 'p-icon',\n {\n 'p-icon-spin': this.spin\n }\n ]\n }),\n role: !isLabelEmpty ? 'img' : undefined,\n 'aria-label': !isLabelEmpty ? this.label : undefined,\n 'aria-hidden': isLabelEmpty\n };\n }\n }\n};\n</script>\n","<template>\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" v-bind=\"pti()\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M13.3226 3.6129H0.677419C0.497757 3.6129 0.325452 3.54152 0.198411 3.41448C0.0713707 3.28744 0 3.11514 0 2.93548C0 2.75581 0.0713707 2.58351 0.198411 2.45647C0.325452 2.32943 0.497757 2.25806 0.677419 2.25806H13.3226C13.5022 2.25806 13.6745 2.32943 13.8016 2.45647C13.9286 2.58351 14 2.75581 14 2.93548C14 3.11514 13.9286 3.28744 13.8016 3.41448C13.6745 3.54152 13.5022 3.6129 13.3226 3.6129ZM13.3226 7.67741H0.677419C0.497757 7.67741 0.325452 7.60604 0.198411 7.479C0.0713707 7.35196 0 7.17965 0 6.99999C0 6.82033 0.0713707 6.64802 0.198411 6.52098C0.325452 6.39394 0.497757 6.32257 0.677419 6.32257H13.3226C13.5022 6.32257 13.6745 6.39394 13.8016 6.52098C13.9286 6.64802 14 6.82033 14 6.99999C14 7.17965 13.9286 7.35196 13.8016 7.479C13.6745 7.60604 13.5022 7.67741 13.3226 7.67741ZM0.677419 11.7419H13.3226C13.5022 11.7419 13.6745 11.6706 13.8016 11.5435C13.9286 11.4165 14 11.2442 14 11.0645C14 10.8848 13.9286 10.7125 13.8016 10.5855C13.6745 10.4585 13.5022 10.3871 13.3226 10.3871H0.677419C0.497757 10.3871 0.325452 10.4585 0.198411 10.5855C0.0713707 10.7125 0 10.8848 0 11.0645C0 11.2442 0.0713707 11.4165 0.198411 11.5435C0.325452 11.6706 0.497757 11.7419 0.677419 11.7419Z\"\n fill=\"currentColor\"\n />\n </svg>\n</template>\n<script>\nimport BaseIcon from '@primevue/icons/baseicon';\n\nexport default {\n name: 'BarsIcon',\n extends: BaseIcon\n};\n</script>\n","<template>\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" v-bind=\"pti()\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M13.3226 3.6129H0.677419C0.497757 3.6129 0.325452 3.54152 0.198411 3.41448C0.0713707 3.28744 0 3.11514 0 2.93548C0 2.75581 0.0713707 2.58351 0.198411 2.45647C0.325452 2.32943 0.497757 2.25806 0.677419 2.25806H13.3226C13.5022 2.25806 13.6745 2.32943 13.8016 2.45647C13.9286 2.58351 14 2.75581 14 2.93548C14 3.11514 13.9286 3.28744 13.8016 3.41448C13.6745 3.54152 13.5022 3.6129 13.3226 3.6129ZM13.3226 7.67741H0.677419C0.497757 7.67741 0.325452 7.60604 0.198411 7.479C0.0713707 7.35196 0 7.17965 0 6.99999C0 6.82033 0.0713707 6.64802 0.198411 6.52098C0.325452 6.39394 0.497757 6.32257 0.677419 6.32257H13.3226C13.5022 6.32257 13.6745 6.39394 13.8016 6.52098C13.9286 6.64802 14 6.82033 14 6.99999C14 7.17965 13.9286 7.35196 13.8016 7.479C13.6745 7.60604 13.5022 7.67741 13.3226 7.67741ZM0.677419 11.7419H13.3226C13.5022 11.7419 13.6745 11.6706 13.8016 11.5435C13.9286 11.4165 14 11.2442 14 11.0645C14 10.8848 13.9286 10.7125 13.8016 10.5855C13.6745 10.4585 13.5022 10.3871 13.3226 10.3871H0.677419C0.497757 10.3871 0.325452 10.4585 0.198411 10.5855C0.0713707 10.7125 0 10.8848 0 11.0645C0 11.2442 0.0713707 11.4165 0.198411 11.5435C0.325452 11.6706 0.497757 11.7419 0.677419 11.7419Z\"\n fill=\"currentColor\"\n />\n </svg>\n</template>\n<script>\nimport BaseIcon from '@primevue/icons/baseicon';\n\nexport default {\n name: 'BarsIcon',\n extends: BaseIcon\n};\n</script>\n","import BaseStyle from '@primevue/core/base/style';\n\nconst theme = ({ dt }) => `\n.p-menubar {\n display: flex;\n align-items: center;\n background: ${dt('menubar.background')};\n border: 1px solid ${dt('menubar.border.color')};\n border-radius: ${dt('menubar.border.radius')};\n color: ${dt('menubar.color')};\n padding: ${dt('menubar.padding')};\n gap: ${dt('menubar.gap')};\n}\n\n.p-menubar-start,\n.p-megamenu-end {\n display: flex;\n align-items: center;\n}\n\n.p-menubar-root-list,\n.p-menubar-submenu {\n display: flex;\n margin: 0;\n padding: 0;\n list-style: none;\n outline: 0 none;\n}\n\n.p-menubar-root-list {\n align-items: center;\n flex-wrap: wrap;\n gap: ${dt('menubar.gap')};\n}\n\n.p-menubar-root-list > .p-menubar-item > .p-menubar-item-content {\n border-radius: ${dt('menubar.base.item.border.radius')};\n}\n\n.p-menubar-root-list > .p-menubar-item > .p-menubar-item-content > .p-menubar-item-link {\n padding: ${dt('menubar.base.item.padding')};\n}\n\n.p-menubar-item-content {\n transition: background ${dt('menubar.transition.duration')}, color ${dt('menubar.transition.duration')};\n border-radius: ${dt('menubar.item.border.radius')};\n color: ${dt('menubar.item.color')};\n}\n\n.p-menubar-item-link {\n cursor: pointer;\n display: flex;\n align-items: center;\n text-decoration: none;\n overflow: hidden;\n position: relative;\n color: inherit;\n padding: ${dt('menubar.item.padding')};\n gap: ${dt('menubar.item.gap')};\n user-select: none;\n outline: 0 none;\n}\n\n.p-menubar-item-label {\n line-height: 1;\n}\n\n.p-menubar-item-icon {\n color: ${dt('menubar.item.icon.color')};\n}\n\n.p-menubar-submenu-icon {\n color: ${dt('menubar.submenu.icon.color')};\n margin-left: auto;\n font-size: ${dt('menubar.submenu.icon.size')};\n width: ${dt('menubar.submenu.icon.size')};\n height: ${dt('menubar.submenu.icon.size')};\n}\n\n.p-menubar-item.p-focus > .p-menubar-item-content {\n color: ${dt('menubar.item.focus.color')};\n background: ${dt('menubar.item.focus.background')};\n}\n\n.p-menubar-item.p-focus > .p-menubar-item-content .p-menubar-item-icon {\n color: ${dt('menubar.item.icon.focus.color')};\n}\n\n.p-menubar-item.p-focus > .p-menubar-item-content .p-menubar-submenu-icon {\n color: ${dt('menubar.submenu.icon.focus.color')};\n}\n\n.p-menubar-item:not(.p-disabled) > .p-menubar-item-content:hover {\n color: ${dt('menubar.item.focus.color')};\n background: ${dt('menubar.item.focus.background')};\n}\n\n.p-menubar-item:not(.p-disabled) > .p-menubar-item-content:hover .p-menubar-item-icon {\n color: ${dt('menubar.item.icon.focus.color')};\n}\n\n.p-menubar-item:not(.p-disabled) > .p-menubar-item-content:hover .p-menubar-submenu-icon {\n color: ${dt('menubar.submenu.icon.focus.color')};\n}\n\n.p-menubar-item-active > .p-menubar-item-content {\n color: ${dt('menubar.item.active.color')};\n background: ${dt('menubar.item.active.background')};\n}\n\n.p-menubar-item-active > .p-menubar-item-content .p-menubar-item-icon {\n color: ${dt('menubar.item.icon.active.color')};\n}\n\n.p-menubar-item-active > .p-menubar-item-content .p-menubar-submenu-icon {\n color: ${dt('menubar.submenu.icon.active.color')};\n}\n\n.p-menubar-submenu {\n display: none;\n position: absolute;\n min-width: 12.5rem;\n z-index: 1;\n background: ${dt('menubar.submenu.background')};\n border: 1px solid ${dt('menubar.submenu.border.color')};\n border-radius: ${dt('menubar.border.radius')};\n box-shadow: ${dt('menubar.submenu.shadow')};\n color: ${dt('menubar.submenu.color')};\n flex-direction: column;\n padding: ${dt('menubar.submenu.padding')};\n gap: ${dt('menubar.submenu.gap')};\n}\n\n.p-menubar-submenu .p-menubar-separator {\n border-top: 1px solid ${dt('menubar.separator.border.color')};\n}\n\n.p-menubar-submenu .p-menubar-item {\n position: relative;\n}\n\n .p-menubar-submenu > .p-menubar-item-active > .p-menubar-submenu {\n display: block;\n left: 100%;\n top: 0;\n}\n\n.p-menubar-end {\n margin-left: auto;\n align-self: center;\n}\n\n.p-menubar-button {\n display: none;\n justify-content: center;\n align-items: center;\n cursor: pointer;\n width: ${dt('menubar.mobile.button.size')};\n height: ${dt('menubar.mobile.button.size')};\n position: relative;\n color: ${dt('menubar.mobile.button.color')};\n border: 0 none;\n background: transparent;\n border-radius: ${dt('menubar.mobile.button.border.radius')};\n transition: background ${dt('menubar.transition.duration')}, color ${dt('menubar.transition.duration')}, outline-color ${dt('menubar.transition.duration')};\n outline-color: transparent;\n}\n\n.p-menubar-button:hover {\n color: ${dt('menubar.mobile.button.hover.color')};\n background: ${dt('menubar.mobile.button.hover.background')};\n}\n\n.p-menubar-button:focus-visible {\n box-shadow: ${dt('menubar.mobile.button.focus.ring.shadow')};\n outline: ${dt('menubar.mobile.button.focus.ring.width')} ${dt('menubar.mobile.button.focus.ring.style')} ${dt('menubar.mobile.button.focus.ring.color')};\n outline-offset: ${dt('menubar.mobile.button.focus.ring.offset')};\n}\n\n.p-menubar-mobile {\n position: relative;\n}\n\n.p-menubar-mobile .p-menubar-button {\n display: flex;\n}\n\n.p-menubar-mobile .p-menubar-root-list {\n position: absolute;\n display: none;\n width: 100%;\n padding: ${dt('menubar.submenu.padding')};\n background: ${dt('menubar.submenu.background')};\n border: 1px solid ${dt('menubar.submenu.border.color')};\n box-shadow: ${dt('menubar.submenu.shadow')};\n}\n\n.p-menubar-mobile .p-menubar-root-list > .p-menubar-item > .p-menubar-item-content {\n border-radius: ${dt('menubar.item.border.radius')};\n}\n\n.p-menubar-mobile .p-menubar-root-list > .p-menubar-item > .p-menubar-item-content > .p-menubar-item-link {\n padding: ${dt('menubar.item.padding')};\n}\n\n.p-menubar-mobile-active .p-menubar-root-list {\n display: flex;\n flex-direction: column;\n top: 100%;\n left: 0;\n z-index: 1;\n}\n\n.p-menubar-mobile .p-menubar-root-list .p-menubar-item {\n width: 100%;\n position: static;\n}\n\n.p-menubar-mobile .p-menubar-root-list .p-menubar-separator {\n border-top: 1px solid ${dt('menubar.separator.border.color')};\n}\n\n.p-menubar-mobile .p-menubar-root-list > .p-menubar-item > .p-menubar-item-content .p-menubar-submenu-icon {\n margin-left: auto;\n transition: transform 0.2s;\n}\n\n.p-menubar-mobile .p-menubar-root-list > .p-menubar-item-active > .p-menubar-item-content .p-menubar-submenu-icon {\n transform: rotate(-180deg);\n}\n\n.p-menubar-mobile .p-menubar-submenu .p-menubar-submenu-icon {\n transition: transform 0.2s;\n transform: rotate(90deg);\n}\n\n.p-menubar-mobile .p-menubar-item-active > .p-menubar-item-content .p-menubar-submenu-icon {\n transform: rotate(-90deg);\n}\n\n.p-menubar-mobile .p-menubar-submenu {\n width: 100%;\n position: static;\n box-shadow: none;\n border: 0 none;\n padding-left: ${dt('menubar.submenu.mobile.indent')};\n}\n`;\n\nconst inlineStyles = {\n submenu: ({ instance, processedItem }) => ({ display: instance.isItemActive(processedItem) ? 'flex' : 'none' })\n};\n\nconst classes = {\n root: ({ instance }) => [\n 'p-menubar p-component',\n {\n 'p-menubar-mobile': instance.queryMatches,\n 'p-menubar-mobile-active': instance.mobileActive\n }\n ],\n start: 'p-menubar-start',\n button: 'p-menubar-button',\n rootList: 'p-menubar-root-list',\n item: ({ instance, processedItem }) => [\n 'p-menubar-item',\n {\n 'p-menubar-item-active': instance.isItemActive(processedItem),\n 'p-focus': instance.isItemFocused(processedItem),\n 'p-disabled': instance.isItemDisabled(processedItem)\n }\n ],\n itemContent: 'p-menubar-item-content',\n itemLink: 'p-menubar-item-link',\n itemIcon: 'p-menubar-item-icon',\n itemLabel: 'p-menubar-item-label',\n submenuIcon: 'p-menubar-submenu-icon',\n submenu: 'p-menubar-submenu',\n separator: 'p-menubar-separator',\n end: 'p-menubar-end'\n};\n\nexport default BaseStyle.extend({\n name: 'menubar',\n theme,\n classes,\n inlineStyles\n});\n","<template>\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" v-bind=\"pti()\">\n <path\n d=\"M3.58659 4.5007C3.68513 4.50023 3.78277 4.51945 3.87379 4.55723C3.9648 4.59501 4.04735 4.65058 4.11659 4.7207L7.11659 7.7207L10.1166 4.7207C10.2619 4.65055 10.4259 4.62911 10.5843 4.65956C10.7427 4.69002 10.8871 4.77074 10.996 4.88976C11.1049 5.00877 11.1726 5.15973 11.1889 5.32022C11.2052 5.48072 11.1693 5.6422 11.0866 5.7807L7.58659 9.2807C7.44597 9.42115 7.25534 9.50004 7.05659 9.50004C6.85784 9.50004 6.66722 9.42115 6.52659 9.2807L3.02659 5.7807C2.88614 5.64007 2.80725 5.44945 2.80725 5.2507C2.80725 5.05195 2.88614 4.86132 3.02659 4.7207C3.09932 4.64685 3.18675 4.58911 3.28322 4.55121C3.37969 4.51331 3.48305 4.4961 3.58659 4.5007Z\"\n fill=\"currentColor\"\n />\n </svg>\n</template>\n<script>\nimport BaseIcon from '@primevue/icons/baseicon';\n\nexport default {\n name: 'AngleDownIcon',\n extends: BaseIcon\n};\n</script>\n","<template>\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" v-bind=\"pti()\">\n <path\n d=\"M3.58659 4.5007C3.68513 4.50023 3.78277 4.51945 3.87379 4.55723C3.9648 4.59501 4.04735 4.65058 4.11659 4.7207L7.11659 7.7207L10.1166 4.7207C10.2619 4.65055 10.4259 4.62911 10.5843 4.65956C10.7427 4.69002 10.8871 4.77074 10.996 4.88976C11.1049 5.00877 11.1726 5.15973 11.1889 5.32022C11.2052 5.48072 11.1693 5.6422 11.0866 5.7807L7.58659 9.2807C7.44597 9.42115 7.25534 9.50004 7.05659 9.50004C6.85784 9.50004 6.66722 9.42115 6.52659 9.2807L3.02659 5.7807C2.88614 5.64007 2.80725 5.44945 2.80725 5.2507C2.80725 5.05195 2.88614 4.86132 3.02659 4.7207C3.09932 4.64685 3.18675 4.58911 3.28322 4.55121C3.37969 4.51331 3.48305 4.4961 3.58659 4.5007Z\"\n fill=\"currentColor\"\n />\n </svg>\n</template>\n<script>\nimport BaseIcon from '@primevue/icons/baseicon';\n\nexport default {\n name: 'AngleDownIcon',\n extends: BaseIcon\n};\n</script>\n","<template>\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" v-bind=\"pti()\">\n <path\n d=\"M5.25 11.1728C5.14929 11.1694 5.05033 11.1455 4.9592 11.1025C4.86806 11.0595 4.78666 10.9984 4.72 10.9228C4.57955 10.7822 4.50066 10.5916 4.50066 10.3928C4.50066 10.1941 4.57955 10.0035 4.72 9.86283L7.72 6.86283L4.72 3.86283C4.66067 3.71882 4.64765 3.55991 4.68275 3.40816C4.71785 3.25642 4.79932 3.11936 4.91585 3.01602C5.03238 2.91268 5.17819 2.84819 5.33305 2.83149C5.4879 2.81479 5.64411 2.84671 5.78 2.92283L9.28 6.42283C9.42045 6.56346 9.49934 6.75408 9.49934 6.95283C9.49934 7.15158 9.42045 7.34221 9.28 7.48283L5.78 10.9228C5.71333 10.9984 5.63193 11.0595 5.5408 11.1025C5.44966 11.1455 5.35071 11.1694 5.25 11.1728Z\"\n fill=\"currentColor\"\n />\n </svg>\n</template>\n<script>\nimport BaseIcon from '@primevue/icons/baseicon';\n\nexport default {\n name: 'AngleRightIcon',\n extends: BaseIcon\n};\n</script>\n","<template>\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" v-bind=\"pti()\">\n <path\n d=\"M5.25 11.1728C5.14929 11.1694 5.05033 11.1455 4.9592 11.1025C4.86806 11.0595 4.78666 10.9984 4.72 10.9228C4.57955 10.7822 4.50066 10.5916 4.50066 10.3928C4.50066 10.1941 4.57955 10.0035 4.72 9.86283L7.72 6.86283L4.72 3.86283C4.66067 3.71882 4.64765 3.55991 4.68275 3.40816C4.71785 3.25642 4.79932 3.11936 4.91585 3.01602C5.03238 2.91268 5.17819 2.84819 5.33305 2.83149C5.4879 2.81479 5.64411 2.84671 5.78 2.92283L9.28 6.42283C9.42045 6.56346 9.49934 6.75408 9.49934 6.95283C9.49934 7.15158 9.42045 7.34221 9.28 7.48283L5.78 10.9228C5.71333 10.9984 5.63193 11.0595 5.5408 11.1025C5.44966 11.1455 5.35071 11.1694 5.25 11.1728Z\"\n fill=\"currentColor\"\n />\n </svg>\n</template>\n<script>\nimport BaseIcon from '@primevue/icons/baseicon';\n\nexport default {\n name: 'AngleRightIcon',\n extends: BaseIcon\n};\n</script>\n","import { Theme, ThemeService } from '@primeuix/styled';\nimport { getKeyValue, isArray, isEmpty, isFunction, isObject, isString, resolve, toCapitalCase, toFlatCase } from '@primeuix/utils/object';\nimport Base from '@primevue/core/base';\nimport BaseStyle from '@primevue/core/base/style';\nimport PrimeVueService from '@primevue/core/service';\nimport { UniqueComponentId } from '@primevue/core/utils';\nimport { mergeProps } from 'vue';\n\nconst BaseDirective = {\n _getMeta: (...args) => [isObject(args[0]) ? undefined : args[0], resolve(isObject(args[0]) ? args[0] : args[1])],\n _getConfig: (binding, vnode) => (binding?.instance?.$primevue || vnode?.ctx?.appContext?.config?.globalProperties?.$primevue)?.config,\n _getOptionValue: getKeyValue,\n _getPTValue: (instance = {}, obj = {}, key = '', params = {}, searchInDefaultPT = true) => {\n const getValue = (...args) => {\n const value = BaseDirective._getOptionValue(...args);\n\n return isString(value) || isArray(value) ? { class: value } : value;\n };\n\n const { mergeSections = true, mergeProps: useMergeProps = false } = instance.binding?.value?.ptOptions || instance.$primevueConfig?.ptOptions || {};\n const global = searchInDefaultPT ? BaseDirective._useDefaultPT(instance, instance.defaultPT(), getValue, key, params) : undefined;\n const self = BaseDirective._usePT(instance, BaseDirective._getPT(obj, instance.$name), getValue, key, { ...params, global: global || {} });\n const datasets = BaseDirective._getPTDatasets(instance, key);\n\n return mergeSections || (!mergeSections && self) ? (useMergeProps ? BaseDirective._mergeProps(instance, useMergeProps, global, self, datasets) : { ...global, ...self, ...datasets }) : { ...self, ...datasets };\n },\n _getPTDatasets(instance = {}, key = '') {\n const datasetPrefix = 'data-pc-';\n\n return {\n ...(key === 'root' && { [`${datasetPrefix}name`]: toFlatCase(instance.$name) }),\n [`${datasetPrefix}section`]: toFlatCase(key)\n };\n },\n _getPT: (pt, key = '', callback) => {\n const getValue = (value) => {\n const computedValue = callback ? callback(value) : value;\n const _key = toFlatCase(key);\n\n return computedValue?.[_key] ?? computedValue;\n };\n\n return pt?.hasOwnProperty('_usept')\n ? {\n _usept: pt['_usept'],\n originalValue: getValue(pt.originalValue),\n value: getValue(pt.value)\n }\n : getValue(pt);\n },\n _usePT: (instance = {}, pt, callback, key, params) => {\n const fn = (value) => callback(value, key, params);\n\n if (pt?.hasOwnProperty('_usept')) {\n const { mergeSections = true, mergeProps: useMergeProps = false } = pt['_usept'] || instance.$primevueConfig?.ptOptions || {};\n const originalValue = fn(pt.originalValue);\n const value = fn(pt.value);\n\n if (originalValue === undefined && value === undefined) return undefined;\n else if (isString(value)) return value;\n else if (isString(originalValue)) return originalValue;\n\n return mergeSections || (!mergeSections && value) ? (useMergeProps ? BaseDirective._mergeProps(instance, useMergeProps, originalValue, value) : { ...originalValue, ...value }) : value;\n }\n\n return fn(pt);\n },\n _useDefaultPT: (instance = {}, defaultPT = {}, callback, key, params) => {\n return BaseDirective._usePT(instance, defaultPT, callback, key, params);\n },\n _loadStyles: (el, binding, vnode) => {\n const config = BaseDirective._getConfig(binding, vnode);\n const useStyleOptions = { nonce: config?.csp?.nonce };\n\n BaseDirective._loadCoreStyles(el.$instance, useStyleOptions);\n BaseDirective._loadThemeStyles(el.$instance, useStyleOptions);\n BaseDirective._loadScopedThemeStyles(el.$instance, useStyleOptions);\n\n BaseDirective._themeChangeListener(() => BaseDirective._loadThemeStyles(el.$instance, useStyleOptions));\n },\n _loadCoreStyles(instance = {}, useStyleOptions) {\n if (!Base.isStyleNameLoaded(instance.$style?.name) && instance.$style?.name) {\n BaseStyle.loadCSS(useStyleOptions);\n instance.isUnstyled() && instance.$style?.loadCSS(useStyleOptions);\n\n Base.setLoadedStyleName(instance.$style.name);\n }\n },\n _loadThemeStyles: (instance = {}, useStyleOptions) => {\n if (instance?.isUnstyled()) return;\n\n // common\n if (!Theme.isStyleNameLoaded('common')) {\n const { primitive, semantic } = instance.$style?.getCommonTheme?.() || {};\n\n BaseStyle.load(primitive?.css, { name: 'primitive-variables', ...useStyleOptions });\n BaseStyle.load(semantic?.css, { name: 'semantic-variables', ...useStyleOptions });\n BaseStyle.loadTheme({ name: 'global-style', ...useStyleOptions });\n\n Theme.setLoadedStyleName('common');\n }\n\n // directive\n if (!Theme.isStyleNameLoaded(instance.$style?.name) && instance.$style?.name) {\n const { css } = instance.$style?.getDirectiveTheme?.() || {};\n\n instance.$style?.load(css, { name: `${instance.$style.name}-variables`, ...useStyleOptions });\n instance.$style?.loadTheme({ name: `${instance.$style.name}-style`, ...useStyleOptions });\n\n Theme.setLoadedStyleName(instance.$style.name);\n }\n\n // layer order\n if (!Theme.isStyleNameLoaded('layer-order')) {\n const layerOrder = instance.$style?.getLayerOrderThemeCSS?.();\n\n BaseStyle.load(layerOrder, { name: 'layer-order', first: true, ...useStyleOptions });\n\n Theme.setLoadedStyleName('layer-order');\n }\n },\n _loadScopedThemeStyles(instance = {}, useStyleOptions) {\n const preset = instance.preset();\n\n if (preset && instance.$attrSelector) {\n const { css } = instance.$style?.getPresetTheme?.(preset, `[${instance.$attrSelector}]`) || {};\n const scopedStyle = instance.$style?.load(css, { name: `${instance.$attrSelector}-${instance.$style.name}`, ...useStyleOptions });\n\n instance.scopedStyleEl = scopedStyle.el;\n }\n },\n _themeChangeListener(callback = () => {}) {\n Base.clearLoadedStyleNames();\n ThemeService.on('theme:change', callback);\n },\n _hook: (directiveName, hookName, el, binding, vnode, prevVnode) => {\n const name = `on${toCapitalCase(hookName)}`;\n const config = BaseDirective._getConfig(binding, vnode);\n const instance = el?.$instance;\n const selfHook = BaseDirective._usePT(instance, BaseDirective._getPT(binding?.value?.pt, directiveName), BaseDirective._getOptionValue, `hooks.${name}`);\n const defaultHook = BaseDirective._useDefaultPT(instance, config?.pt?.directives?.[directiveName], BaseDirective._getOptionValue, `hooks.${name}`);\n const options = { el, binding, vnode, prevVnode };\n\n selfHook?.(instance, options);\n defaultHook?.(instance, options);\n },\n _mergeProps(instance = {}, fn, ...args) {\n return isFunction(fn) ? fn(...args) : mergeProps(...args);\n },\n _extend: (name, options = {}) => {\n const handleHook = (hook, el, binding, vnode, prevVnode) => {\n el._$instances = el._$instances || {};\n\n const config = BaseDirective._getConfig(binding, vnode);\n const $prevInstance = el._$instances[name] || {};\n const $options = isEmpty($prevInstance) ? { ...options, ...options?.methods } : {};\n\n el._$instances[name] = {\n ...$prevInstance,\n /* new instance variables to pass in directive methods */\n $name: name,\n $host: el,\n $binding: binding,\n $modifiers: binding?.modifiers,\n $value: binding?.value,\n $el: $prevInstance['$el'] || el || undefined,\n $style: { classes: undefined, inlineStyles: undefined, load: () => {}, loadCSS: () => {}, loadTheme: () => {}, ...options?.style },\n $primevueConfig: config,\n $attrSelector: el.$attrSelector,\n /* computed instance variables */\n defaultPT: () => BaseDirective._getPT(config?.pt, undefined, (value) => value?.directives?.[name]),\n isUnstyled: () => (el.$instance?.$binding?.value?.unstyled !== undefined ? el.$instance?.$binding?.value?.unstyled : config?.unstyled),\n theme: () => el.$instance?.$primevueConfig?.theme,\n preset: () => el.$instance?.$binding?.value?.dt,\n /* instance's methods */\n ptm: (key = '', params = {}) => BaseDirective._getPTValue(el.$instance, el.$instance?.$binding?.value?.pt, key, { ...params }),\n ptmo: (obj = {}, key = '', params = {}) => BaseDirective._getPTValue(el.$instance, obj, key, params, false),\n cx: (key = '', params = {}) => (!el.$instance?.isUnstyled() ? BaseDirective._getOptionValue(el.$instance?.$style?.classes, key, { ...params }) : undefined),\n sx: (key = '', when = true, params = {}) => (when ? BaseDirective._getOptionValue(el.$instance?.$style?.inlineStyles, key, { ...params }) : undefined),\n ...$options\n };\n\n el.$instance = el._$instances[name]; // pass instance data to hooks\n el.$instance[hook]?.(el, binding, vnode, prevVnode); // handle hook in directive implementation\n el[`$${name}`] = el.$instance; // expose all options with $<directive_name>\n BaseDirective._hook(name, hook, el, binding, vnode, prevVnode); // handle hooks during directive uses (global and self-definition)\n\n el.$pd ||= {};\n el.$pd[name] = { ...el.$pd?.[name], name, instance: el.$instance };\n };\n\n const handleWatch = (el) => {\n const watchers = el.$instance?.watch;\n\n // for 'config'\n watchers?.['config']?.call(el.$instance, el.$instance?.$primevueConfig);\n PrimeVueService.on('config:change', ({ newValue, oldValue }) => watchers?.['config']?.call(el.$instance, newValue, oldValue));\n\n // for 'config.ripple'\n watchers?.['config.ripple']?.call(el.$instance, el.$instance?.$primevueConfig?.ripple);\n PrimeVueService.on('config:ripple:change', ({ newValue, oldValue }) => watchers?.['config.ripple']?.call(el.$instance, newValue, oldValue));\n };\n\n return {\n created: (el, binding, vnode, prevVnode) => {\n handleHook('created', el, binding, vnode, prevVnode);\n },\n beforeMount: (el, binding, vnode, prevVnode) => {\n el.$attrSelector = UniqueComponentId('pd');\n BaseDirective._loadStyles(el, binding, vnode);\n handleHook('beforeMount', el, binding, vnode, prevVnode);\n handleWatch(el);\n },\n mounted: (el, binding, vnode, prevVnode) => {\n BaseDirective._loadStyles(el, binding, vnode);\n handleHook('mounted', el, binding, vnode, prevVnode);\n },\n beforeUpdate: (el, binding, vnode, prevVnode) => {\n handleHook('beforeUpdate', el, binding, vnode, prevVnode);\n },\n updated: (el, binding, vnode, prevVnode) => {\n BaseDirective._loadStyles(el, binding, vnode);\n handleHook('updated', el, binding, vnode, prevVnode);\n },\n beforeUnmount: (el, binding, vnode, prevVnode) => {\n handleHook('beforeUnmount', el, binding, vnode, prevVnode);\n },\n unmounted: (el, binding, vnode, prevVnode) => {\n el.$instance?.scopedStyleEl?.value?.remove();\n handleHook('unmounted', el, binding, vnode, prevVnode);\n }\n };\n },\n extend: (...args) => {\n const [name, options] = BaseDirective._getMeta(...args);\n\n return {\n extend: (..._args) => {\n const [_name, _options] = BaseDirective._getMeta(..._args);\n\n return BaseDirective.extend(_name, { ...options, ...options?.methods, ..._options });\n },\n ...BaseDirective._extend(name, options)\n };\n }\n};\n\nexport default BaseDirective;\n","import BaseStyle from '@primevue/core/base/style';\n\nconst theme = ({ dt }) => `\n.p-ink {\n display: block;\n position: absolute;\n background: ${dt('ripple.background')};\n border-radius: 100%;\n transform: scale(0);\n pointer-events: none;\n}\n\n.p-ink-active {\n animation: ripple 0.4s linear;\n}\n\n@keyframes ripple {\n 100% {\n opacity: 0;\n transform: scale(2.5);\n }\n}\n`;\n\nconst classes = {\n root: 'p-ink'\n};\n\nexport default BaseStyle.extend({\n name: 'ripple-directive',\n theme,\n classes\n});\n","import BaseDirective from '@primevue/core/basedirective';\nimport RippleStyle from 'primevue/ripple/style';\n\nconst BaseRipple = BaseDirective.extend({\n style: RippleStyle\n});\n\nexport default BaseRipple;\n","import { addClass, createElement, getAttribute, getHeight, getOffset, getOuterHeight, getOuterWidth, getWidth, removeClass } from '@primeuix/utils/dom';\nimport BaseRipple from './BaseRipple';\n\nconst Ripple = BaseRipple.extend('ripple', {\n watch: {\n 'config.ripple'(newValue) {\n if (newValue) {\n this.createRipple(this.$host);\n this.bindEvents(this.$host);\n\n this.$host.setAttribute('data-pd-ripple', true);\n this.$host.style['overflow'] = 'hidden';\n this.$host.style['position'] = 'relative';\n } else {\n this.remove(this.$host);\n this.$host.removeAttribute('data-pd-ripple');\n }\n }\n },\n unmounted(el) {\n this.remove(el);\n },\n timeout: undefined,\n methods: {\n bindEvents(el) {\n el.addEventListener('mousedown', this.onMouseDown.bind(this));\n },\n unbindEvents(el) {\n el.removeEventListener('mousedown', this.onMouseDown.bind(this));\n },\n createRipple(el) {\n const ink = createElement('span', {\n role: 'presentation',\n 'aria-hidden': true,\n 'data-p-ink': true,\n 'data-p-ink-active': false,\n class: !this.isUnstyled() && this.cx('root'),\n onAnimationEnd: this.onAnimationEnd.bind(this),\n [this.$attrSelector]: '',\n 'p-bind': this.ptm('root')\n });\n\n el.appendChild(ink);\n\n this.$el = ink;\n },\n remove(el) {\n let ink = this.getInk(el);\n\n if (ink) {\n this.$host.style['overflow'] = '';\n this.$host.style['position'] = '';\n\n this.unbindEvents(el);\n ink.removeEventListener('animationend', this.onAnimationEnd);\n ink.remove();\n }\n },\n onMouseDown(event) {\n let target = event.currentTarget;\n let ink = this.getInk(target);\n\n if (!ink || getComputedStyle(ink, null).display === 'none') {\n return;\n }\n\n !this.isUnstyled() && removeClass(ink, 'p-ink-active');\n ink.setAttribute('data-p-ink-active', 'false');\n\n if (!getHeight(ink) && !getWidth(ink)) {\n let d = Math.max(getOuterWidth(target), getOuterHeight(target));\n\n ink.style.height = d + 'px';\n ink.style.width = d + 'px';\n }\n\n let offset = getOffset(target);\n let x = event.pageX - offset.left + document.body.scrollTop - getWidth(ink) / 2;\n let y = event.pageY - offset.top + document.body.scrollLeft - getHeight(ink) / 2;\n\n ink.style.top = y + 'px';\n ink.style.left = x + 'px';\n\n !this.isUnstyled() && addClass(ink, 'p-ink-active');\n ink.setAttribute('data-p-ink-active', 'true');\n\n this.timeout = setTimeout(() => {\n if (ink) {\n !this.isUnstyled() && removeClass(ink, 'p-ink-active');\n ink.setAttribute('data-p-ink-active', 'false');\n }\n }, 401);\n },\n onAnimationEnd(event) {\n if (this.timeout) {\n clearTimeout(this.timeout);\n }\n\n !this.isUnstyled() && removeClass(event.currentTarget, 'p-ink-active');\n event.currentTarget.setAttribute('data-p-ink-active', 'false');\n },\n getInk(el) {\n return el && el.children ? [...el.children].find((child) => getAttribute(child, 'data-pc-name') === 'ripple') : undefined;\n }\n }\n});\n\nexport default Ripple;\n","<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport MenubarStyle from 'primevue/menubar/style';\n\nexport default {\n name: 'BaseMenubar',\n extends: BaseComponent,\n props: {\n model: {\n type: Array,\n default: null\n },\n buttonProps: {\n type: null,\n default: null\n },\n breakpoint: {\n type: String,\n default: '960px'\n },\n ariaLabelledby: {\n type: String,\n default: null\n },\n ariaLabel: {\n type: String,\n default: null\n }\n },\n style: MenubarStyle,\n provide() {\n return {\n $pcMenubar: this,\n $parentInstance: this\n };\n }\n};\n</script>\n","<template>\n <ul :class=\"level === 0 ? cx('rootList') : cx('submenu')\" v-bind=\"level === 0 ? ptm('rootList') : ptm('submenu')\">\n <template v-for=\"(processedItem, index) of items\" :key=\"getItemKey(processedItem)\">\n <li\n v-if=\"isItemVisible(processedItem) && !getItemProp(processedItem, 'separator')\"\n :id=\"getItemId(processedItem)\"\n :style=\"getItemProp(processedItem, 'style')\"\n :class=\"[cx('item', { processedItem }), getItemProp(processedItem, 'class')]\"\n role=\"menuitem\"\n :aria-label=\"getItemLabel(processedItem)\"\n :aria-disabled=\"isItemDisabled(processedItem) || undefined\"\n :aria-expanded=\"isItemGroup(processedItem) ? isItemActive(processedItem) : undefined\"\n :aria-haspopup=\"isItemGroup(processedItem) && !getItemProp(processedItem, 'to') ? 'menu' : undefined\"\n :aria-level=\"level + 1\"\n :aria-setsize=\"getAriaSetSize\"\n :aria-posinset=\"getAriaPosInset(index)\"\n v-bind=\"getPTOptions(processedItem, index, 'item')\"\n :data-p-active=\"isItemActive(processedItem)\"\n :data-p-focused=\"isItemFocused(processedItem)\"\n :data-p-disabled=\"isItemDisabled(processedItem)\"\n >\n <div\n :class=\"cx('itemContent')\"\n @click=\"onItemClick($event, processedItem)\"\n @mouseenter=\"onItemMouseEnter($event, processedItem)\"\n @mousemove=\"onItemMouseMove($event, processedItem)\"\n v-bind=\"getPTOptions(processedItem, index, 'itemContent')\"\n >\n <template v-if=\"!templates.item\">\n <a v-ripple :href=\"getItemProp(processedItem, 'url')\" :class=\"cx('itemLink')\" :target=\"getItemProp(processedItem, 'target')\" tabindex=\"-1\" v-bind=\"getPTOptions(processedItem, index, 'itemLink')\">\n <component v-if=\"templates.itemicon\" :is=\"templates.itemicon\" :item=\"processedItem.item\" :class=\"cx('itemIcon')\" />\n <span v-else-if=\"getItemProp(processedItem, 'icon')\" :class=\"[cx('itemIcon'), getItemProp(processedItem, 'icon')]\" v-bind=\"getPTOptions(processedItem, index, 'itemIcon')\" />\n <span :id=\"getItemLabelId(processedItem)\" :class=\"cx('itemLabel')\" v-bind=\"getPTOptions(processedItem, index, 'itemLabel')\">{{ getItemLabel(processedItem) }}</span>\n <template v-if=\"getItemProp(processedItem, 'items')\">\n <component v-if=\"templates.submenuicon\" :is=\"templates.submenuicon\" :root=\"root\" :active=\"isItemActive(processedItem)\" :class=\"cx('submenuIcon')\" />\n <component v-else :is=\"root ? 'AngleDownIcon' : 'AngleRightIcon'\" :class=\"cx('submenuIcon')\" v-bind=\"getPTOptions(processedItem, index, 'submenuIcon')\" />\n </template>\n </a>\n </template>\n <component v-else :is=\"templates.item\" :item=\"processedItem.item\" :root=\"root\" :hasSubmenu=\"getItemProp(processedItem, 'items')\" :label=\"getItemLabel(processedItem)\" :props=\"getMenuItemProps(processedItem, index)\"></component>\n </div>\n <MenubarSub\n v-if=\"isItemVisible(processedItem) && isItemGroup(processedItem)\"\n :id=\"getItemId(processedItem) + '_list'\"\n :menuId=\"menuId\"\n role=\"menu\"\n :style=\"sx('submenu', true, { processedItem })\"\n :focusedItemId=\"focusedItemId\"\n :items=\"processedItem.items\"\n :mobileActive=\"mobileActive\"\n :activeItemPath=\"activeItemPath\"\n :templates=\"templates\"\n :level=\"level + 1\"\n :aria-labelledby=\"getItemLabelId(processedItem)\"\n :pt=\"pt\"\n :unstyled=\"unstyled\"\n @item-click=\"$emit('item-click', $event)\"\n @item-mouseenter=\"$emit('item-mouseenter', $event)\"\n @item-mousemove=\"$emit('item-mousemove', $event)\"\n />\n </li>\n <li\n v-if=\"isItemVisible(processedItem) && getItemProp(processedItem, 'separator')\"\n :id=\"getItemId(processedItem)\"\n :class=\"[cx('separator'), getItemProp(processedItem, 'class')]\"\n :style=\"getItemProp(processedItem, 'style')\"\n role=\"separator\"\n v-bind=\"ptm('separator')\"\n ></li>\n </template>\n </ul>\n</template>\n\n<script>\nimport { isNotEmpty, resolve } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport AngleDownIcon from '@primevue/icons/angledown';\nimport AngleRightIcon from '@primevue/icons/angleright';\nimport Ripple from 'primevue/ripple';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'MenubarSub',\n hostName: 'Menubar',\n extends: BaseComponent,\n emits: ['item-mouseenter', 'item-click', 'item-mousemove'],\n props: {\n items: {\n type: Array,\n default: null\n },\n root: {\n type: Boolean,\n default: false\n },\n popup: {\n type: Boolean,\n default: false\n },\n mobileActive: {\n type: Boolean,\n default: false\n },\n templates: {\n type: Object,\n default: null\n },\n level: {\n type: Number,\n default: 0\n },\n menuId: {\n type: String,\n default: null\n },\n focusedItemId: {\n type: String,\n default: null\n },\n activeItemPath: {\n type: Object,\n default: null\n }\n },\n list: null,\n\n methods: {\n getItemId(processedItem) {\n return `${this.menuId}_${processedItem.key}`;\n },\n getItemKey(processedItem) {\n return this.getItemId(processedItem);\n },\n getItemProp(processedItem, name, params) {\n return processedItem && processedItem.item ? resolve(processedItem.item[name], params) : undefined;\n },\n getItemLabel(processedItem) {\n return this.getItemProp(processedItem, 'label');\n },\n getItemLabelId(processedItem) {\n return `${this.menuId}_${processedItem.key}_label`;\n },\n getPTOptions(processedItem, index, key) {\n return this.ptm(key, {\n context: {\n item: processedItem.item,\n index,\n active: this.isItemActive(processedItem),\n focused: this.isItemFocused(processedItem),\n disabled: this.isItemDisabled(processedItem),\n level: this.level\n }\n });\n },\n isItemActive(processedItem) {\n return this.activeItemPath.some((path) => path.key === processedItem.key);\n },\n isItemVisible(processedItem) {\n return this.getItemProp(processedItem, 'visible') !== false;\n },\n isItemDisabled(processedItem) {\n return this.getItemProp(processedItem, 'disabled');\n },\n isItemFocused(processedItem) {\n return this.focusedItemId === this.getItemId(processedItem);\n },\n isItemGroup(processedItem) {\n return isNotEmpty(processedItem.items);\n },\n onItemClick(event, processedItem) {\n this.getItemProp(processedItem, 'command', { originalEvent: event, item: processedItem.item });\n this.$emit('item-click', { originalEvent: event, processedItem, isFocus: true });\n },\n onItemMouseEnter(event, processedItem) {\n this.$emit('item-mouseenter', { originalEvent: event, processedItem });\n },\n onItemMouseMove(event, processedItem) {\n this.$emit('item-mousemove', { originalEvent: event, processedItem });\n },\n getAriaPosInset(index) {\n return index - this.calculateAriaSetSize.slice(0, index).length + 1;\n },\n getMenuItemProps(processedItem, index) {\n return {\n action: mergeProps(\n {\n class: this.cx('itemLink'),\n tabindex: -1,\n 'aria-hidden': true\n },\n this.getPTOptions(processedItem, index, 'itemLink')\n ),\n icon: mergeProps(\n {\n class: [this.cx('itemIcon'), this.getItemProp(processedItem, 'icon')]\n },\n this.getPTOptions(processedItem, index, 'itemIcon')\n ),\n label: mergeProps(\n {\n class: this.cx('itemLabel')\n },\n this.getPTOptions(processedItem, index, 'itemLabel')\n ),\n submenuicon: mergeProps(\n {\n class: this.cx('submenuIcon')\n },\n this.getPTOptions(processedItem, index, 'submenuIcon')\n )\n };\n }\n },\n computed: {\n calculateAriaSetSize() {\n return this.items.filter((processedItem) => this.isItemVisible(processedItem) && this.getItemProp(processedItem, 'separator'));\n },\n getAriaSetSize() {\n return this.items.filter((processedItem) => this.isItemVisible(processedItem) && !this.getItemProp(processedItem, 'separator')).length;\n }\n },\n components: {\n AngleRightIcon: AngleRightIcon,\n AngleDownIcon: AngleDownIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n","<template>\n <ul :class=\"level === 0 ? cx('rootList') : cx('submenu')\" v-bind=\"level === 0 ? ptm('rootList') : ptm('submenu')\">\n <template v-for=\"(processedItem, index) of items\" :key=\"getItemKey(processedItem)\">\n <li\n v-if=\"isItemVisible(processedItem) && !getItemProp(processedItem, 'separator')\"\n :id=\"getItemId(processedItem)\"\n :style=\"getItemProp(processedItem, 'style')\"\n :class=\"[cx('item', { processedItem }), getItemProp(processedItem, 'class')]\"\n role=\"menuitem\"\n :aria-label=\"getItemLabel(processedItem)\"\n :aria-disabled=\"isItemDisabled(processedItem) || undefined\"\n :aria-expanded=\"isItemGroup(processedItem) ? isItemActive(processedItem) : undefined\"\n :aria-haspopup=\"isItemGroup(processedItem) && !getItemProp(processedItem, 'to') ? 'menu' : undefined\"\n :aria-level=\"level + 1\"\n :aria-setsize=\"getAriaSetSize\"\n :aria-posinset=\"getAriaPosInset(index)\"\n v-bind=\"getPTOptions(processedItem, index, 'item')\"\n :data-p-active=\"isItemActive(processedItem)\"\n :data-p-focused=\"isItemFocused(processedItem)\"\n :data-p-disabled=\"isItemDisabled(processedItem)\"\n >\n <div\n :class=\"cx('itemContent')\"\n @click=\"onItemClick($event, processedItem)\"\n @mouseenter=\"onItemMouseEnter($event, processedItem)\"\n @mousemove=\"onItemMouseMove($event, processedItem)\"\n v-bind=\"getPTOptions(processedItem, index, 'itemContent')\"\n >\n <template v-if=\"!templates.item\">\n <a v-ripple :href=\"getItemProp(processedItem, 'url')\" :class=\"cx('itemLink')\" :target=\"getItemProp(processedItem, 'target')\" tabindex=\"-1\" v-bind=\"getPTOptions(processedItem, index, 'itemLink')\">\n <component v-if=\"templates.itemicon\" :is=\"templates.itemicon\" :item=\"processedItem.item\" :class=\"cx('itemIcon')\" />\n <span v-else-if=\"getItemProp(processedItem, 'icon')\" :class=\"[cx('itemIcon'), getItemProp(processedItem, 'icon')]\" v-bind=\"getPTOptions(processedItem, index, 'itemIcon')\" />\n <span :id=\"getItemLabelId(processedItem)\" :class=\"cx('itemLabel')\" v-bind=\"getPTOptions(processedItem, index, 'itemLabel')\">{{ getItemLabel(processedItem) }}</span>\n <template v-if=\"getItemProp(processedItem, 'items')\">\n <component v-if=\"templates.submenuicon\" :is=\"templates.submenuicon\" :root=\"root\" :active=\"isItemActive(processedItem)\" :class=\"cx('submenuIcon')\" />\n <component v-else :is=\"root ? 'AngleDownIcon' : 'AngleRightIcon'\" :class=\"cx('submenuIcon')\" v-bind=\"getPTOptions(processedItem, index, 'submenuIcon')\" />\n </template>\n </a>\n </template>\n <component v-else :is=\"templates.item\" :item=\"processedItem.item\" :root=\"root\" :hasSubmenu=\"getItemProp(processedItem, 'items')\" :label=\"getItemLabel(processedItem)\" :props=\"getMenuItemProps(processedItem, index)\"></component>\n </div>\n <MenubarSub\n v-if=\"isItemVisible(processedItem) && isItemGroup(processedItem)\"\n :id=\"getItemId(processedItem) + '_list'\"\n :menuId=\"menuId\"\n role=\"menu\"\n :style=\"sx('submenu', true, { processedItem })\"\n :focusedItemId=\"focusedItemId\"\n :items=\"processedItem.items\"\n :mobileActive=\"mobileActive\"\n :activeItemPath=\"activeItemPath\"\n :templates=\"templates\"\n :level=\"level + 1\"\n :aria-labelledby=\"getItemLabelId(processedItem)\"\n :pt=\"pt\"\n :unstyled=\"unstyled\"\n @item-click=\"$emit('item-click', $event)\"\n @item-mouseenter=\"$emit('item-mouseenter', $event)\"\n @item-mousemove=\"$emit('item-mousemove', $event)\"\n />\n </li>\n <li\n v-if=\"isItemVisible(processedItem) && getItemProp(processedItem, 'separator')\"\n :id=\"getItemId(processedItem)\"\n :class=\"[cx('separator'), getItemProp(processedItem, 'class')]\"\n :style=\"getItemProp(processedItem, 'style')\"\n role=\"separator\"\n v-bind=\"ptm('separator')\"\n ></li>\n </template>\n </ul>\n</template>\n\n<script>\nimport { isNotEmpty, resolve } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport AngleDownIcon from '@primevue/icons/angledown';\nimport AngleRightIcon from '@primevue/icons/angleright';\nimport Ripple from 'primevue/ripple';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'MenubarSub',\n hostName: 'Menubar',\n extends: BaseComponent,\n emits: ['item-mouseenter', 'item-click', 'item-mousemove'],\n props: {\n items: {\n type: Array,\n default: null\n },\n root: {\n type: Boolean,\n default: false\n },\n popup: {\n type: Boolean,\n default: false\n },\n mobileActive: {\n type: Boolean,\n default: false\n },\n templates: {\n type: Object,\n default: null\n },\n level: {\n type: Number,\n default: 0\n },\n menuId: {\n type: String,\n default: null\n },\n focusedItemId: {\n type: String,\n default: null\n },\n activeItemPath: {\n type: Object,\n default: null\n }\n },\n list: null,\n\n methods: {\n getItemId(processedItem) {\n return `${this.menuId}_${processedItem.key}`;\n },\n getItemKey(processedItem) {\n return this.getItemId(processedItem);\n },\n getItemProp(processedItem, name, params) {\n return processedItem && processedItem.item ? resolve(processedItem.item[name], params) : undefined;\n },\n getItemLabel(processedItem) {\n return this.getItemProp(processedItem, 'label');\n },\n getItemLabelId(processedItem) {\n return `${this.menuId}_${processedItem.key}_label`;\n },\n getPTOptions(processedItem, index, key) {\n return this.ptm(key, {\n context: {\n item: processedItem.item,\n index,\n active: this.isItemActive(processedItem),\n focused: this.isItemFocused(processedItem),\n disabled: this.isItemDisabled(processedItem),\n level: this.level\n }\n });\n },\n isItemActive(processedItem) {\n return this.activeItemPath.some((path) => path.key === processedItem.key);\n },\n isItemVisible(processedItem) {\n return this.getItemProp(processedItem, 'visible') !== false;\n },\n isItemDisabled(processedItem) {\n return this.getItemProp(processedItem, 'disabled');\n },\n isItemFocused(processedItem) {\n return this.focusedItemId === this.getItemId(processedItem);\n },\n isItemGroup(processedItem) {\n return isNotEmpty(processedItem.items);\n },\n onItemClick(event, processedItem) {\n this.getItemProp(processedItem, 'command', { originalEvent: event, item: processedItem.item });\n this.$emit('item-click', { originalEvent: event, processedItem, isFocus: true });\n },\n onItemMouseEnter(event, processedItem) {\n this.$emit('item-mouseenter', { originalEvent: event, processedItem });\n },\n onItemMouseMove(event, processedItem) {\n this.$emit('item-mousemove', { originalEvent: event, processedItem });\n },\n getAriaPosInset(index) {\n return index - this.calculateAriaSetSize.slice(0, index).length + 1;\n },\n getMenuItemProps(processedItem, index) {\n return {\n action: mergeProps(\n {\n class: this.cx('itemLink'),\n tabindex: -1,\n 'aria-hidden': true\n },\n this.getPTOptions(processedItem, index, 'itemLink')\n ),\n icon: mergeProps(\n {\n class: [this.cx('itemIcon'), this.getItemProp(processedItem, 'icon')]\n },\n this.getPTOptions(processedItem, index, 'itemIcon')\n ),\n label: mergeProps(\n {\n class: this.cx('itemLabel')\n },\n this.getPTOptions(processedItem, index, 'itemLabel')\n ),\n submenuicon: mergeProps(\n {\n class: this.cx('submenuIcon')\n },\n this.getPTOptions(processedItem, index, 'submenuIcon')\n )\n };\n }\n },\n computed: {\n calculateAriaSetSize() {\n return this.items.filter((processedItem) => this.isItemVisible(processedItem) && this.getItemProp(processedItem, 'separator'));\n },\n getAriaSetSize() {\n return this.items.filter((processedItem) => this.isItemVisible(processedItem) && !this.getItemProp(processedItem, 'separator')).length;\n }\n },\n components: {\n AngleRightIcon: AngleRightIcon,\n AngleDownIcon: AngleDownIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n","<template>\n <div :ref=\"containerRef\" :class=\"cx('root')\" v-bind=\"ptmi('root')\">\n <div v-if=\"$slots.start\" :class=\"cx('start')\" v-bind=\"ptm('start')\">\n <slot name=\"start\"></slot>\n </div>\n <slot :id=\"id\" :name=\"$slots.button ? 'button' : 'menubutton'\" :class=\"cx('button')\" :toggleCallback=\"(event) => menuButtonClick(event)\">\n <!-- TODO: menubutton deprecated since v4.0-->\n <a\n v-if=\"model && model.length > 0\"\n ref=\"menubutton\"\n role=\"button\"\n tabindex=\"0\"\n :class=\"cx('button')\"\n :aria-haspopup=\"model.length && model.length > 0 ? true : false\"\n :aria-expanded=\"mobileActive\"\n :aria-controls=\"id\"\n :aria-label=\"$primevue.config.locale.aria?.navigation\"\n @click=\"menuButtonClick($event)\"\n @keydown=\"menuButtonKeydown($event)\"\n v-bind=\"{ ...buttonProps, ...ptm('button') }\"\n >\n <!-- TODO: menubuttonicon deprecated since v4.0-->\n <slot :name=\"$slots.buttonicon ? 'buttonicon' : 'menubuttonicon'\">\n <BarsIcon v-bind=\"ptm('buttonicon')\" />\n </slot>\n </a>\n </slot>\n <MenubarSub\n :ref=\"menubarRef\"\n :id=\"id + '_list'\"\n role=\"menubar\"\n :items=\"processedItems\"\n :templates=\"$slots\"\n :root=\"true\"\n :mobileActive=\"mobileActive\"\n tabindex=\"0\"\n :aria-activedescendant=\"focused ? focusedItemId : undefined\"\n :menuId=\"id\"\n :focusedItemId=\"focused ? focusedItemId : undefined\"\n :activeItemPath=\"activeItemPath\"\n :level=\"0\"\n :aria-labelledby=\"ariaLabelledby\"\n :aria-label=\"ariaLabel\"\n :pt=\"pt\"\n :unstyled=\"unstyled\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n @keydown=\"onKeyDown\"\n @item-click=\"onItemClick\"\n @item-mouseenter=\"onItemMouseEnter\"\n @item-mousemove=\"onItemMouseMove\"\n />\n <div v-if=\"$slots.end\" :class=\"cx('end')\" v-bind=\"ptm('end')\">\n <slot name=\"end\"></slot>\n </div>\n </div>\n</template>\n\n<script>\nimport { UniqueComponentId } from '@primevue/core/utils';\nimport { focus, isTouchDevice, findSingle } from '@primeuix/utils/dom';\nimport { isNotEmpty, resolve, isPrintableCharacter, isEmpty, findLastIndex } from '@primeuix/utils/object';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport BarsIcon from '@primevue/icons/bars';\nimport BaseMenubar from './BaseMenubar.vue';\nimport MenubarSub from './MenubarSub.vue';\n\nexport default {\n name: 'Menubar',\n extends: BaseMenubar,\n inheritAttrs: false,\n emits: ['focus', 'blur'],\n matchMediaListener: null,\n data() {\n return {\n id: this.$attrs.id,\n mobileActive: false,\n focused: false,\n focusedItemInfo: { index: -1, level: 0, parentKey: '' },\n activeItemPath: [],\n dirty: false,\n query: null,\n queryMatches: false\n };\n },\n watch: {\n '$attrs.id': function (newValue) {\n this.id = newValue || UniqueComponentId();\n },\n activeItemPath(newPath) {\n if (isNotEmpty(newPath)) {\n this.bindOutsideClickListener();\n this.bindResizeListener();\n } else {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n }\n }\n },\n outsideClickListener: null,\n container: null,\n menubar: null,\n mounted() {\n this.id = this.id || UniqueComponentId();\n this.bindMatchMediaListener();\n },\n beforeUnmount() {\n this.mobileActive = false;\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n this.unbindMatchMediaListener();\n\n if (this.container) {\n ZIndex.clear(this.container);\n }\n\n this.container = null;\n },\n methods: {\n getItemProp(item, name) {\n return item ? resolve(item[name]) : undefined;\n },\n getItemLabel(item) {\n return this.getItemProp(item, 'label');\n },\n isItemDisabled(item) {\n return this.getItemProp(item, 'disabled');\n },\n isItemVisible(item) {\n return this.getItemProp(item, 'visible') !== false;\n },\n isItemGroup(item) {\n return isNotEmpty(this.getItemProp(item, 'items'));\n },\n isItemSeparator(item) {\n return this.getItemProp(item, 'separator');\n },\n getProccessedItemLabel(processedItem) {\n return processedItem ? this.getItemLabel(processedItem.item) : undefined;\n },\n isProccessedItemGroup(processedItem) {\n return processedItem && isNotEmpty(processedItem.items);\n },\n toggle(event) {\n if (this.mobileActive) {\n this.mobileActive = false;\n ZIndex.clear(this.menubar);\n this.hide();\n } else {\n this.mobileActive = true;\n ZIndex.set('menu', this.menubar, this.$primevue.config.zIndex.menu);\n setTimeout(() => {\n this.show();\n }, 1);\n }\n\n this.bindOutsideClickListener();\n event.preventDefault();\n },\n show() {\n focus(this.menubar);\n },\n hide(event, isFocus) {\n if (this.mobileActive) {\n this.mobileActive = false;\n setTimeout(() => {\n focus(this.$refs.menubutton);\n }, 0);\n }\n\n this.activeItemPath = [];\n this.focusedItemInfo = { index: -1, level: 0, parentKey: '' };\n\n isFocus && focus(this.menubar);\n this.dirty = false;\n },\n onFocus(event) {\n this.focused = true;\n this.focusedItemInfo = this.focusedItemInfo.index !== -1 ? this.focusedItemInfo : { index: this.findFirstFocusedItemIndex(), level: 0, parentKey: '' };\n\n this.$emit('focus', event);\n },\n onBlur(event) {\n this.focused = false;\n this.focusedItemInfo = { index: -1, level: 0, parentKey: '' };\n this.searchValue = '';\n this.dirty = false;\n this.$emit('blur', event);\n },\n onKeyDown(event) {\n const metaKey = event.metaKey || event.ctrlKey;\n\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event);\n break;\n\n case 'ArrowLeft':\n this.onArrowLeftKey(event);\n break;\n\n case 'ArrowRight':\n this.onArrowRightKey(event);\n break;\n\n case 'Home':\n this.onHomeKey(event);\n break;\n\n case 'End':\n this.onEndKey(event);\n break;\n\n case 'Space':\n this.onSpaceKey(event);\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n this.onEnterKey(event);\n break;\n\n case 'Escape':\n this.onEscapeKey(event);\n break;\n\n case 'Tab':\n this.onTabKey(event);\n break;\n\n case 'PageDown':\n case 'PageUp':\n case 'Backspace':\n case 'ShiftLeft':\n case 'ShiftRight':\n //NOOP\n break;\n\n default:\n if (!metaKey && isPrintableCharacter(event.key)) {\n this.searchItems(event, event.key);\n }\n\n break;\n }\n },\n onItemChange(event) {\n const { processedItem, isFocus } = event;\n\n if (isEmpty(processedItem)) return;\n\n const { index, key, level, parentKey, items } = processedItem;\n const grouped = isNotEmpty(items);\n const activeItemPath = this.activeItemPath.filter((p) => p.parentKey !== parentKey && p.parentKey !== key);\n\n grouped && activeItemPath.push(processedItem);\n\n this.focusedItemInfo = { index, level, parentKey };\n this.activeItemPath = activeItemPath;\n\n grouped && (this.dirty = true);\n isFocus && focus(this.menubar);\n },\n onItemClick(event) {\n const { originalEvent, processedItem } = event;\n const grouped = this.isProccessedItemGroup(processedItem);\n const root = isEmpty(processedItem.parent);\n const selected = this.isSelected(processedItem);\n\n if (selected) {\n const { index, key, level, parentKey } = processedItem;\n\n this.activeItemPath = this.activeItemPath.filter((p) => key !== p.key && key.startsWith(p.key));\n this.focusedItemInfo = { index, level, parentKey };\n\n this.dirty = !root;\n focus(this.menubar);\n } else {\n if (grouped) {\n this.onItemChange(event);\n } else {\n const rootProcessedItem = root ? processedItem : this.activeItemPath.find((p) => p.parentKey === '');\n\n this.hide(originalEvent);\n this.changeFocusedItemIndex(originalEvent, rootProcessedItem ? rootProcessedItem.index : -1);\n\n this.mobileActive = false;\n focus(this.menubar);\n }\n }\n },\n onItemMouseEnter(event) {\n if (this.dirty) {\n this.onItemChange(event);\n }\n },\n onItemMouseMove(event) {\n if (this.focused) {\n this.changeFocusedItemIndex(event, event.processedItem.index);\n }\n },\n menuButtonClick(event) {\n this.toggle(event);\n },\n menuButtonKeydown(event) {\n (event.code === 'Enter' || event.code === 'NumpadEnter' || event.code === 'Space') && this.menuButtonClick(event);\n },\n onArrowDownKey(event) {\n const processedItem = this.visibleItems[this.focusedItemInfo.index];\n const root = processedItem ? isEmpty(processedItem.parent) : null;\n\n if (root) {\n const grouped = this.isProccessedItemGroup(processedItem);\n\n if (grouped) {\n this.onItemChange({ originalEvent: event, processedItem });\n this.focusedItemInfo = { index: -1, parentKey: processedItem.key };\n this.onArrowRightKey(event);\n }\n } else {\n const itemIndex = this.focusedItemInfo.index !== -1 ? this.findNextItemIndex(this.focusedItemInfo.index) : this.findFirstFocusedItemIndex();\n\n this.changeFocusedItemIndex(event, itemIndex);\n }\n\n event.preventDefault();\n },\n onArrowUpKey(event) {\n const processedItem = this.visibleItems[this.focusedItemInfo.index];\n const root = isEmpty(processedItem.parent);\n\n if (root) {\n const grouped = this.isProccessedItemGroup(processedItem);\n\n if (grouped) {\n this.onItemChange({ originalEvent: event, processedItem });\n this.focusedItemInfo = { index: -1, parentKey: processedItem.key };\n const itemIndex = this.findLastItemIndex();\n\n this.changeFocusedItemIndex(event, itemIndex);\n }\n } else {\n const parentItem = this.activeItemPath.find((p) => p.key === processedItem.parentKey);\n\n if (this.focusedItemInfo.index === 0) {\n this.focusedItemInfo = { index: -1, parentKey: parentItem ? parentItem.parentKey : '' };\n this.searchValue = '';\n this.onArrowLeftKey(event);\n this.activeItemPath = this.activeItemPath.filter((p) => p.parentKey !== this.focusedItemInfo.parentKey);\n } else {\n const itemIndex = this.focusedItemInfo.index !== -1 ? this.findPrevItemIndex(this.focusedItemInfo.index) : this.findLastFocusedItemIndex();\n\n this.changeFocusedItemIndex(event, itemIndex);\n }\n }\n\n event.preventDefault();\n },\n onArrowLeftKey(event) {\n const processedItem = this.visibleItems[this.focusedItemInfo.index];\n const parentItem = processedItem ? this.activeItemPath.find((p) => p.key === processedItem.parentKey) : null;\n\n if (parentItem) {\n this.onItemChange({ originalEvent: event, processedItem: parentItem });\n this.activeItemPath = this.activeItemPath.filter((p) => p.parentKey !== this.focusedItemInfo.parentKey);\n\n event.preventDefault();\n } else {\n const itemIndex = this.focusedItemInfo.index !== -1 ? this.findPrevItemIndex(this.focusedItemInfo.index) : this.findLastFocusedItemIndex();\n\n this.changeFocusedItemIndex(event, itemIndex);\n event.preventDefault();\n }\n },\n onArrowRightKey(event) {\n const processedItem = this.visibleItems[this.focusedItemInfo.index];\n const parentItem = processedItem ? this.activeItemPath.find((p) => p.key === processedItem.parentKey) : null;\n\n if (parentItem) {\n const grouped = this.isProccessedItemGroup(processedItem);\n\n if (grouped) {\n this.onItemChange({ originalEvent: event, processedItem });\n this.focusedItemInfo = { index: -1, parentKey: processedItem.key };\n this.onArrowDownKey(event);\n }\n } else {\n const itemIndex = this.focusedItemInfo.index !== -1 ? this.findNextItemIndex(this.focusedItemInfo.index) : this.findFirstFocusedItemIndex();\n\n this.changeFocusedItemIndex(event, itemIndex);\n event.preventDefault();\n }\n },\n onHomeKey(event) {\n this.changeFocusedItemIndex(event, this.findFirstItemIndex());\n event.preventDefault();\n },\n onEndKey(event) {\n this.changeFocusedItemIndex(event, this.findLastItemIndex());\n event.preventDefault();\n },\n onEnterKey(event) {\n if (this.focusedItemInfo.index !== -1) {\n const element = findSingle(this.menubar, `li[id=\"${`${this.focusedItemId}`}\"]`);\n const anchorElement = element && findSingle(element, 'a[data-pc-section=\"itemlink\"]');\n\n anchorElement ? anchorElement.click() : element && element.click();\n\n const processedItem = this.visibleItems[this.focusedItemInfo.index];\n const grouped = this.isProccessedItemGroup(processedItem);\n\n !grouped && (this.focusedItemInfo.index = this.findFirstFocusedItemIndex());\n }\n\n event.preventDefault();\n },\n onSpaceKey(event) {\n this.onEnterKey(event);\n },\n onEscapeKey(event) {\n if (this.focusedItemInfo.level !== 0) {\n const _focusedItemInfo = this.focusedItemInfo;\n\n this.hide(event, false);\n this.focusedItemInfo = { index: Number(_focusedItemInfo.parentKey.split('_')[0]), level: 0, parentKey: '' };\n }\n\n event.preventDefault();\n },\n onTabKey(event) {\n if (this.focusedItemInfo.index !== -1) {\n const processedItem = this.visibleItems[this.focusedItemInfo.index];\n const grouped = this.isProccessedItemGroup(processedItem);\n\n !grouped && this.onItemChange({ originalEvent: event, processedItem });\n }\n\n this.hide();\n },\n bindOutsideClickListener() {\n if (!this.outsideClickListener) {\n this.outsideClickListener = (event) => {\n const isOutsideContainer = this.container && !this.container.contains(event.target);\n const isOutsideTarget = !(this.target && (this.target === event.target || this.target.contains(event.target)));\n\n if (isOutsideContainer && isOutsideTarget) {\n this.hide();\n }\n };\n\n document.addEventListener('click', this.outsideClickListener);\n }\n },\n unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener);\n this.outsideClickListener = null;\n }\n },\n bindResizeListener() {\n if (!this.resizeListener) {\n this.resizeListener = (event) => {\n if (!isTouchDevice()) {\n this.hide(event, true);\n }\n\n this.mobileActive = false;\n };\n\n window.addEventListener('resize', this.resizeListener);\n }\n },\n unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n },\n bindMatchMediaListener() {\n if (!this.matchMediaListener) {\n const query = matchMedia(`(max-width: ${this.breakpoint})`);\n\n this.query = query;\n this.queryMatches = query.matches;\n\n this.matchMediaListener = () => {\n this.queryMatches = query.matches;\n this.mobileActive = false;\n };\n\n this.query.addEventListener('change', this.matchMediaListener);\n }\n },\n unbindMatchMediaListener() {\n if (this.matchMediaListener) {\n this.query.removeEventListener('change', this.matchMediaListener);\n this.matchMediaListener = null;\n }\n },\n isItemMatched(processedItem) {\n return this.isValidItem(processedItem) && this.getProccessedItemLabel(processedItem)?.toLocaleLowerCase().startsWith(this.searchValue.toLocaleLowerCase());\n },\n isValidItem(processedItem) {\n return !!processedItem && !this.isItemDisabled(processedItem.item) && !this.isItemSeparator(processedItem.item) && this.isItemVisible(processedItem.item);\n },\n isValidSelectedItem(processedItem) {\n return this.isValidItem(processedItem) && this.isSelected(processedItem);\n },\n isSelected(processedItem) {\n return this.activeItemPath.some((p) => p.key === processedItem.key);\n },\n findFirstItemIndex() {\n return this.visibleItems.findIndex((processedItem) => this.isValidItem(processedItem));\n },\n findLastItemIndex() {\n return findLastIndex(this.visibleItems, (processedItem) => this.isValidItem(processedItem));\n },\n findNextItemIndex(index) {\n const matchedItemIndex = index < this.visibleItems.length - 1 ? this.visibleItems.slice(index + 1).findIndex((processedItem) => this.isValidItem(processedItem)) : -1;\n\n return matchedItemIndex > -1 ? matchedItemIndex + index + 1 : index;\n },\n findPrevItemIndex(index) {\n const matchedItemIndex = index > 0 ? findLastIndex(this.visibleItems.slice(0, index), (processedItem) => this.isValidItem(processedItem)) : -1;\n\n return matchedItemIndex > -1 ? matchedItemIndex : index;\n },\n findSelectedItemIndex() {\n return this.visibleItems.findIndex((processedItem) => this.isValidSelectedItem(processedItem));\n },\n findFirstFocusedItemIndex() {\n const selectedIndex = this.findSelectedItemIndex();\n\n return selectedIndex < 0 ? this.findFirstItemIndex() : selectedIndex;\n },\n findLastFocusedItemIndex() {\n const selectedIndex = this.findSelectedItemIndex();\n\n return selectedIndex < 0 ? this.findLastItemIndex() : selectedIndex;\n },\n searchItems(event, char) {\n this.searchValue = (this.searchValue || '') + char;\n\n let itemIndex = -1;\n let matched = false;\n\n if (this.focusedItemInfo.index !== -1) {\n itemIndex = this.visibleItems.slice(this.focusedItemInfo.index).findIndex((processedItem) => this.isItemMatched(processedItem));\n itemIndex = itemIndex === -1 ? this.visibleItems.slice(0, this.focusedItemInfo.index).findIndex((processedItem) => this.isItemMatched(processedItem)) : itemIndex + this.focusedItemInfo.index;\n } else {\n itemIndex = this.visibleItems.findIndex((processedItem) => this.isItemMatched(processedItem));\n }\n\n if (itemIndex !== -1) {\n matched = true;\n }\n\n if (itemIndex === -1 && this.focusedItemInfo.index === -1) {\n itemIndex = this.findFirstFocusedItemIndex();\n }\n\n if (itemIndex !== -1) {\n this.changeFocusedItemIndex(event, itemIndex);\n }\n\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n\n this.searchTimeout = setTimeout(() => {\n this.searchValue = '';\n this.searchTimeout = null;\n }, 500);\n\n return matched;\n },\n changeFocusedItemIndex(event, index) {\n if (this.focusedItemInfo.index !== index) {\n this.focusedItemInfo.index = index;\n this.scrollInView();\n }\n },\n scrollInView(index = -1) {\n const id = index !== -1 ? `${this.id}_${index}` : this.focusedItemId;\n const element = findSingle(this.menubar, `li[id=\"${id}\"]`);\n\n if (element) {\n element.scrollIntoView && element.scrollIntoView({ block: 'nearest', inline: 'start' });\n }\n },\n createProcessedItems(items, level = 0, parent = {}, parentKey = '') {\n const processedItems = [];\n\n items &&\n items.forEach((item, index) => {\n const key = (parentKey !== '' ? parentKey + '_' : '') + index;\n const newItem = {\n item,\n index,\n level,\n key,\n parent,\n parentKey\n };\n\n newItem['items'] = this.createProcessedItems(item.items, level + 1, newItem, key);\n processedItems.push(newItem);\n });\n\n return processedItems;\n },\n containerRef(el) {\n this.container = el;\n },\n menubarRef(el) {\n this.menubar = el ? el.$el : undefined;\n }\n },\n computed: {\n processedItems() {\n return this.createProcessedItems(this.model || []);\n },\n visibleItems() {\n const processedItem = this.activeItemPath.find((p) => p.key === this.focusedItemInfo.parentKey);\n\n return processedItem ? processedItem.items : this.processedItems;\n },\n focusedItemId() {\n return this.focusedItemInfo.index !== -1 ? `${this.id}${isNotEmpty(this.focusedItemInfo.parentKey) ? '_' + this.focusedItemInfo.parentKey : ''}_${this.focusedItemInfo.index}` : null;\n }\n },\n components: {\n MenubarSub: MenubarSub,\n BarsIcon: BarsIcon\n }\n};\n</script>\n","<template>\n <div :ref=\"containerRef\" :class=\"cx('root')\" v-bind=\"ptmi('root')\">\n <div v-if=\"$slots.start\" :class=\"cx('start')\" v-bind=\"ptm('start')\">\n <slot name=\"start\"></slot>\n </div>\n <slot :id=\"id\" :name=\"$slots.button ? 'button' : 'menubutton'\" :class=\"cx('button')\" :toggleCallback=\"(event) => menuButtonClick(event)\">\n <!-- TODO: menubutton deprecated since v4.0-->\n <a\n v-if=\"model && model.length > 0\"\n ref=\"menubutton\"\n role=\"button\"\n tabindex=\"0\"\n :class=\"cx('button')\"\n :aria-haspopup=\"model.length && model.length > 0 ? true : false\"\n :aria-expanded=\"mobileActive\"\n :aria-controls=\"id\"\n :aria-label=\"$primevue.config.locale.aria?.navigation\"\n @click=\"menuButtonClick($event)\"\n @keydown=\"menuButtonKeydown($event)\"\n v-bind=\"{ ...buttonProps, ...ptm('button') }\"\n >\n <!-- TODO: menubuttonicon deprecated since v4.0-->\n <slot :name=\"$slots.buttonicon ? 'buttonicon' : 'menubuttonicon'\">\n <BarsIcon v-bind=\"ptm('buttonicon')\" />\n </slot>\n </a>\n </slot>\n <MenubarSub\n :ref=\"menubarRef\"\n :id=\"id + '_list'\"\n role=\"menubar\"\n :items=\"processedItems\"\n :templates=\"$slots\"\n :root=\"true\"\n :mobileActive=\"mobileActive\"\n tabindex=\"0\"\n :aria-activedescendant=\"focused ? focusedItemId : undefined\"\n :menuId=\"id\"\n :focusedItemId=\"focused ? focusedItemId : undefined\"\n :activeItemPath=\"activeItemPath\"\n :level=\"0\"\n :aria-labelledby=\"ariaLabelledby\"\n :aria-label=\"ariaLabel\"\n :pt=\"pt\"\n :unstyled=\"unstyled\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n @keydown=\"onKeyDown\"\n @item-click=\"onItemClick\"\n @item-mouseenter=\"onItemMouseEnter\"\n @item-mousemove=\"onItemMouseMove\"\n />\n <div v-if=\"$slots.end\" :class=\"cx('end')\" v-bind=\"ptm('end')\">\n <slot name=\"end\"></slot>\n </div>\n </div>\n</template>\n\n<script>\nimport { UniqueComponentId } from '@primevue/core/utils';\nimport { focus, isTouchDevice, findSingle } from '@primeuix/utils/dom';\nimport { isNotEmpty, resolve, isPrintableCharacter, isEmpty, findLastIndex } from '@primeuix/utils/object';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport BarsIcon from '@primevue/icons/bars';\nimport BaseMenubar from './BaseMenubar.vue';\nimport MenubarSub from './MenubarSub.vue';\n\nexport default {\n name: 'Menubar',\n extends: BaseMenubar,\n inheritAttrs: false,\n emits: ['focus', 'blur'],\n matchMediaListener: null,\n data() {\n return {\n id: this.$attrs.id,\n mobileActive: false,\n focused: false,\n focusedItemInfo: { index: -1, level: 0, parentKey: '' },\n activeItemPath: [],\n dirty: false,\n query: null,\n queryMatches: false\n };\n },\n watch: {\n '$attrs.id': function (newValue) {\n this.id = newValue || UniqueComponentId();\n },\n activeItemPath(newPath) {\n if (isNotEmpty(newPath)) {\n this.bindOutsideClickListener();\n this.bindResizeListener();\n } else {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n }\n }\n },\n outsideClickListener: null,\n container: null,\n menubar: null,\n mounted() {\n this.id = this.id || UniqueComponentId();\n this.bindMatchMediaListener();\n },\n beforeUnmount() {\n this.mobileActive = false;\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n this.unbindMatchMediaListener();\n\n if (this.container) {\n ZIndex.clear(this.container);\n }\n\n this.container = null;\n },\n methods: {\n getItemProp(item, name) {\n return item ? resolve(item[name]) : undefined;\n },\n getItemLabel(item) {\n return this.getItemProp(item, 'label');\n },\n isItemDisabled(item) {\n return this.getItemProp(item, 'disabled');\n },\n isItemVisible(item) {\n return this.getItemProp(item, 'visible') !== false;\n },\n isItemGroup(item) {\n return isNotEmpty(this.getItemProp(item, 'items'));\n },\n isItemSeparator(item) {\n return this.getItemProp(item, 'separator');\n },\n getProccessedItemLabel(processedItem) {\n return processedItem ? this.getItemLabel(processedItem.item) : undefined;\n },\n isProccessedItemGroup(processedItem) {\n return processedItem && isNotEmpty(processedItem.items);\n },\n toggle(event) {\n if (this.mobileActive) {\n this.mobileActive = false;\n ZIndex.clear(this.menubar);\n this.hide();\n } else {\n this.mobileActive = true;\n ZIndex.set('menu', this.menubar, this.$primevue.config.zIndex.menu);\n setTimeout(() => {\n this.show();\n }, 1);\n }\n\n this.bindOutsideClickListener();\n event.preventDefault();\n },\n show() {\n focus(this.menubar);\n },\n hide(event, isFocus) {\n if (this.mobileActive) {\n this.mobileActive = false;\n setTimeout(() => {\n focus(this.$refs.menubutton);\n }, 0);\n }\n\n this.activeItemPath = [];\n this.focusedItemInfo = { index: -1, level: 0, parentKey: '' };\n\n isFocus && focus(this.menubar);\n this.dirty = false;\n },\n onFocus(event) {\n this.focused = true;\n this.focusedItemInfo = this.focusedItemInfo.index !== -1 ? this.focusedItemInfo : { index: this.findFirstFocusedItemIndex(), level: 0, parentKey: '' };\n\n this.$emit('focus', event);\n },\n onBlur(event) {\n this.focused = false;\n this.focusedItemInfo = { index: -1, level: 0, parentKey: '' };\n this.searchValue = '';\n this.dirty = false;\n this.$emit('blur', event);\n },\n onKeyDown(event) {\n const metaKey = event.metaKey || event.ctrlKey;\n\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event);\n break;\n\n case 'ArrowLeft':\n this.onArrowLeftKey(event);\n break;\n\n case 'ArrowRight':\n this.onArrowRightKey(event);\n break;\n\n case 'Home':\n this.onHomeKey(event);\n break;\n\n case 'End':\n this.onEndKey(event);\n break;\n\n case 'Space':\n this.onSpaceKey(event);\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n this.onEnterKey(event);\n break;\n\n case 'Escape':\n this.onEscapeKey(event);\n break;\n\n case 'Tab':\n this.onTabKey(event);\n break;\n\n case 'PageDown':\n case 'PageUp':\n case 'Backspace':\n case 'ShiftLeft':\n case 'ShiftRight':\n //NOOP\n break;\n\n default:\n if (!metaKey && isPrintableCharacter(event.key)) {\n this.searchItems(event, event.key);\n }\n\n break;\n }\n },\n onItemChange(event) {\n const { processedItem, isFocus } = event;\n\n if (isEmpty(processedItem)) return;\n\n const { index, key, level, parentKey, items } = processedItem;\n const grouped = isNotEmpty(items);\n const activeItemPath = this.activeItemPath.filter((p) => p.parentKey !== parentKey && p.parentKey !== key);\n\n grouped && activeItemPath.push(processedItem);\n\n this.focusedItemInfo = { index, level, parentKey };\n this.activeItemPath = activeItemPath;\n\n grouped && (this.dirty = true);\n isFocus && focus(this.menubar);\n },\n onItemClick(event) {\n const { originalEvent, processedItem } = event;\n const grouped = this.isProccessedItemGroup(processedItem);\n const root = isEmpty(processedItem.parent);\n const selected = this.isSelected(processedItem);\n\n if (selected) {\n const { index, key, level, parentKey } = processedItem;\n\n this.activeItemPath = this.activeItemPath.filter((p) => key !== p.key && key.startsWith(p.key));\n this.focusedItemInfo = { index, level, parentKey };\n\n this.dirty = !root;\n focus(this.menubar);\n } else {\n if (grouped) {\n this.onItemChange(event);\n } else {\n const rootProcessedItem = root ? processedItem : this.activeItemPath.find((p) => p.parentKey === '');\n\n this.hide(originalEvent);\n this.changeFocusedItemIndex(originalEvent, rootProcessedItem ? rootProcessedItem.index : -1);\n\n this.mobileActive = false;\n focus(this.menubar);\n }\n }\n },\n onItemMouseEnter(event) {\n if (this.dirty) {\n this.onItemChange(event);\n }\n },\n onItemMouseMove(event) {\n if (this.focused) {\n this.changeFocusedItemIndex(event, event.processedItem.index);\n }\n },\n menuButtonClick(event) {\n this.toggle(event);\n },\n menuButtonKeydown(event) {\n (event.code === 'Enter' || event.code === 'NumpadEnter' || event.code === 'Space') && this.menuButtonClick(event);\n },\n onArrowDownKey(event) {\n const processedItem = this.visibleItems[this.focusedItemInfo.index];\n const root = processedItem ? isEmpty(processedItem.parent) : null;\n\n if (root) {\n const grouped = this.isProccessedItemGroup(processedItem);\n\n if (grouped) {\n this.onItemChange({ originalEvent: event, processedItem });\n this.focusedItemInfo = { index: -1, parentKey: processedItem.key };\n this.onArrowRightKey(event);\n }\n } else {\n const itemIndex = this.focusedItemInfo.index !== -1 ? this.findNextItemIndex(this.focusedItemInfo.index) : this.findFirstFocusedItemIndex();\n\n this.changeFocusedItemIndex(event, itemIndex);\n }\n\n event.preventDefault();\n },\n onArrowUpKey(event) {\n const processedItem = this.visibleItems[this.focusedItemInfo.index];\n const root = isEmpty(processedItem.parent);\n\n if (root) {\n const grouped = this.isProccessedItemGroup(processedItem);\n\n if (grouped) {\n this.onItemChange({ originalEvent: event, processedItem });\n this.focusedItemInfo = { index: -1, parentKey: processedItem.key };\n const itemIndex = this.findLastItemIndex();\n\n this.changeFocusedItemIndex(event, itemIndex);\n }\n } else {\n const parentItem = this.activeItemPath.find((p) => p.key === processedItem.parentKey);\n\n if (this.focusedItemInfo.index === 0) {\n this.focusedItemInfo = { index: -1, parentKey: parentItem ? parentItem.parentKey : '' };\n this.searchValue = '';\n this.onArrowLeftKey(event);\n this.activeItemPath = this.activeItemPath.filter((p) => p.parentKey !== this.focusedItemInfo.parentKey);\n } else {\n const itemIndex = this.focusedItemInfo.index !== -1 ? this.findPrevItemIndex(this.focusedItemInfo.index) : this.findLastFocusedItemIndex();\n\n this.changeFocusedItemIndex(event, itemIndex);\n }\n }\n\n event.preventDefault();\n },\n onArrowLeftKey(event) {\n const processedItem = this.visibleItems[this.focusedItemInfo.index];\n const parentItem = processedItem ? this.activeItemPath.find((p) => p.key === processedItem.parentKey) : null;\n\n if (parentItem) {\n this.onItemChange({ originalEvent: event, processedItem: parentItem });\n this.activeItemPath = this.activeItemPath.filter((p) => p.parentKey !== this.focusedItemInfo.parentKey);\n\n event.preventDefault();\n } else {\n const itemIndex = this.focusedItemInfo.index !== -1 ? this.findPrevItemIndex(this.focusedItemInfo.index) : this.findLastFocusedItemIndex();\n\n this.changeFocusedItemIndex(event, itemIndex);\n event.preventDefault();\n }\n },\n onArrowRightKey(event) {\n const processedItem = this.visibleItems[this.focusedItemInfo.index];\n const parentItem = processedItem ? this.activeItemPath.find((p) => p.key === processedItem.parentKey) : null;\n\n if (parentItem) {\n const grouped = this.isProccessedItemGroup(processedItem);\n\n if (grouped) {\n this.onItemChange({ originalEvent: event, processedItem });\n this.focusedItemInfo = { index: -1, parentKey: processedItem.key };\n this.onArrowDownKey(event);\n }\n } else {\n const itemIndex = this.focusedItemInfo.index !== -1 ? this.findNextItemIndex(this.focusedItemInfo.index) : this.findFirstFocusedItemIndex();\n\n this.changeFocusedItemIndex(event, itemIndex);\n event.preventDefault();\n }\n },\n onHomeKey(event) {\n this.changeFocusedItemIndex(event, this.findFirstItemIndex());\n event.preventDefault();\n },\n onEndKey(event) {\n this.changeFocusedItemIndex(event, this.findLastItemIndex());\n event.preventDefault();\n },\n onEnterKey(event) {\n if (this.focusedItemInfo.index !== -1) {\n const element = findSingle(this.menubar, `li[id=\"${`${this.focusedItemId}`}\"]`);\n const anchorElement = element && findSingle(element, 'a[data-pc-section=\"itemlink\"]');\n\n anchorElement ? anchorElement.click() : element && element.click();\n\n const processedItem = this.visibleItems[this.focusedItemInfo.index];\n const grouped = this.isProccessedItemGroup(processedItem);\n\n !grouped && (this.focusedItemInfo.index = this.findFirstFocusedItemIndex());\n }\n\n event.preventDefault();\n },\n onSpaceKey(event) {\n this.onEnterKey(event);\n },\n onEscapeKey(event) {\n if (this.focusedItemInfo.level !== 0) {\n const _focusedItemInfo = this.focusedItemInfo;\n\n this.hide(event, false);\n this.focusedItemInfo = { index: Number(_focusedItemInfo.parentKey.split('_')[0]), level: 0, parentKey: '' };\n }\n\n event.preventDefault();\n },\n onTabKey(event) {\n if (this.focusedItemInfo.index !== -1) {\n const processedItem = this.visibleItems[this.focusedItemInfo.index];\n const grouped = this.isProccessedItemGroup(processedItem);\n\n !grouped && this.onItemChange({ originalEvent: event, processedItem });\n }\n\n this.hide();\n },\n bindOutsideClickListener() {\n if (!this.outsideClickListener) {\n this.outsideClickListener = (event) => {\n const isOutsideContainer = this.container && !this.container.contains(event.target);\n const isOutsideTarget = !(this.target && (this.target === event.target || this.target.contains(event.target)));\n\n if (isOutsideContainer && isOutsideTarget) {\n this.hide();\n }\n };\n\n document.addEventListener('click', this.outsideClickListener);\n }\n },\n unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener);\n this.outsideClickListener = null;\n }\n },\n bindResizeListener() {\n if (!this.resizeListener) {\n this.resizeListener = (event) => {\n if (!isTouchDevice()) {\n this.hide(event, true);\n }\n\n this.mobileActive = false;\n };\n\n window.addEventListener('resize', this.resizeListener);\n }\n },\n unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n },\n bindMatchMediaListener() {\n if (!this.matchMediaListener) {\n const query = matchMedia(`(max-width: ${this.breakpoint})`);\n\n this.query = query;\n this.queryMatches = query.matches;\n\n this.matchMediaListener = () => {\n this.queryMatches = query.matches;\n this.mobileActive = false;\n };\n\n this.query.addEventListener('change', this.matchMediaListener);\n }\n },\n unbindMatchMediaListener() {\n if (this.matchMediaListener) {\n this.query.removeEventListener('change', this.matchMediaListener);\n this.matchMediaListener = null;\n }\n },\n isItemMatched(processedItem) {\n return this.isValidItem(processedItem) && this.getProccessedItemLabel(processedItem)?.toLocaleLowerCase().startsWith(this.searchValue.toLocaleLowerCase());\n },\n isValidItem(processedItem) {\n return !!processedItem && !this.isItemDisabled(processedItem.item) && !this.isItemSeparator(processedItem.item) && this.isItemVisible(processedItem.item);\n },\n isValidSelectedItem(processedItem) {\n return this.isValidItem(processedItem) && this.isSelected(processedItem);\n },\n isSelected(processedItem) {\n return this.activeItemPath.some((p) => p.key === processedItem.key);\n },\n findFirstItemIndex() {\n return this.visibleItems.findIndex((processedItem) => this.isValidItem(processedItem));\n },\n findLastItemIndex() {\n return findLastIndex(this.visibleItems, (processedItem) => this.isValidItem(processedItem));\n },\n findNextItemIndex(index) {\n const matchedItemIndex = index < this.visibleItems.length - 1 ? this.visibleItems.slice(index + 1).findIndex((processedItem) => this.isValidItem(processedItem)) : -1;\n\n return matchedItemIndex > -1 ? matchedItemIndex + index + 1 : index;\n },\n findPrevItemIndex(index) {\n const matchedItemIndex = index > 0 ? findLastIndex(this.visibleItems.slice(0, index), (processedItem) => this.isValidItem(processedItem)) : -1;\n\n return matchedItemIndex > -1 ? matchedItemIndex : index;\n },\n findSelectedItemIndex() {\n return this.visibleItems.findIndex((processedItem) => this.isValidSelectedItem(processedItem));\n },\n findFirstFocusedItemIndex() {\n const selectedIndex = this.findSelectedItemIndex();\n\n return selectedIndex < 0 ? this.findFirstItemIndex() : selectedIndex;\n },\n findLastFocusedItemIndex() {\n const selectedIndex = this.findSelectedItemIndex();\n\n return selectedIndex < 0 ? this.findLastItemIndex() : selectedIndex;\n },\n searchItems(event, char) {\n this.searchValue = (this.searchValue || '') + char;\n\n let itemIndex = -1;\n let matched = false;\n\n if (this.focusedItemInfo.index !== -1) {\n itemIndex = this.visibleItems.slice(this.focusedItemInfo.index).findIndex((processedItem) => this.isItemMatched(processedItem));\n itemIndex = itemIndex === -1 ? this.visibleItems.slice(0, this.focusedItemInfo.index).findIndex((processedItem) => this.isItemMatched(processedItem)) : itemIndex + this.focusedItemInfo.index;\n } else {\n itemIndex = this.visibleItems.findIndex((processedItem) => this.isItemMatched(processedItem));\n }\n\n if (itemIndex !== -1) {\n matched = true;\n }\n\n if (itemIndex === -1 && this.focusedItemInfo.index === -1) {\n itemIndex = this.findFirstFocusedItemIndex();\n }\n\n if (itemIndex !== -1) {\n this.changeFocusedItemIndex(event, itemIndex);\n }\n\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n\n this.searchTimeout = setTimeout(() => {\n this.searchValue = '';\n this.searchTimeout = null;\n }, 500);\n\n return matched;\n },\n changeFocusedItemIndex(event, index) {\n if (this.focusedItemInfo.index !== index) {\n this.focusedItemInfo.index = index;\n this.scrollInView();\n }\n },\n scrollInView(index = -1) {\n const id = index !== -1 ? `${this.id}_${index}` : this.focusedItemId;\n const element = findSingle(this.menubar, `li[id=\"${id}\"]`);\n\n if (element) {\n element.scrollIntoView && element.scrollIntoView({ block: 'nearest', inline: 'start' });\n }\n },\n createProcessedItems(items, level = 0, parent = {}, parentKey = '') {\n const processedItems = [];\n\n items &&\n items.forEach((item, index) => {\n const key = (parentKey !== '' ? parentKey + '_' : '') + index;\n const newItem = {\n item,\n index,\n level,\n key,\n parent,\n parentKey\n };\n\n newItem['items'] = this.createProcessedItems(item.items, level + 1, newItem, key);\n processedItems.push(newItem);\n });\n\n return processedItems;\n },\n containerRef(el) {\n this.container = el;\n },\n menubarRef(el) {\n this.menubar = el ? el.$el : undefined;\n }\n },\n computed: {\n processedItems() {\n return this.createProcessedItems(this.model || []);\n },\n visibleItems() {\n const processedItem = this.activeItemPath.find((p) => p.key === this.focusedItemInfo.parentKey);\n\n return processedItem ? processedItem.items : this.processedItems;\n },\n focusedItemId() {\n return this.focusedItemInfo.index !== -1 ? `${this.id}${isNotEmpty(this.focusedItemInfo.parentKey) ? '_' + this.focusedItemInfo.parentKey : ''}_${this.focusedItemInfo.index}` : null;\n }\n },\n components: {\n MenubarSub: MenubarSub,\n BarsIcon: BarsIcon\n }\n};\n</script>\n","/*!\n * vue-router v4.4.5\n * (c) 2024 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 document !== 'undefined';\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}\nfunction isESModule(obj) {\n return (obj.__esModule ||\n obj[Symbol.toStringTag] === 'Module' ||\n // support CF with dynamic imports that do not\n // add the Module string tag\n (obj.default && isRouteComponent(obj.default)));\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\n/**\n * Encoding Rules (⣠= Space)\n * - Path: ⣠\" < > # ? { }\n * - Query: ⣠\" < > # & =\n * - Hash: ⣠\" < > `\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\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: decode(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.slice(toPosition).join('/'));\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 // TODO: could we use a symbol in the future?\n name: undefined,\n params: {},\n query: {},\n hash: '',\n fullPath: '/',\n matched: [],\n meta: {},\n redirectedFrom: undefined,\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 <base> 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.scrollX,\n top: window.scrollY,\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.scrollX, scrollToOptions.top != null ? scrollToOptions.top : window.scrollY);\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<ScrollPositionEntry extends HistoryStateValue, ScrollPosition extends ScrollPositionEntry> {\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<ScrollPosition> = {\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 `<base>` 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://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 `<base>` 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 `<base>` 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\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};\n/**\n * Creates a typed NavigationFailure object.\n * @internal\n * @param type - NavigationFailureType\n * @param params - { from, to }\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 (to.path != null)\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<string, Token[][]>()\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 = [mainNormalizedRecord];\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(\n // we need to normalize again to ensure the `mods` property\n // being non enumerable\n normalizeRouteRecord(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://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 // 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 (isMatchable(matcher)) {\n insertMatcher(matcher);\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 }\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 const index = findInsertionIndex(matcher, matchers);\n matchers.splice(index, 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 // only keep optional params coming from a parent record\n matcher.keys\n .filter(k => !k.optional)\n .concat(matcher.parent ? matcher.parent.keys.filter(k => k.optional) : [])\n .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 (location.path != null) {\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 function clearRoutes() {\n matchers.length = 0;\n matcherMap.clear();\n }\n return {\n addRoute,\n resolve,\n removeRoute,\n clearRoutes,\n getRoutes,\n getRecordMatcher,\n };\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 const normalized = {\n path: record.path,\n redirect: record.redirect,\n name: record.name,\n meta: record.meta || {},\n aliasOf: record.aliasOf,\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 // must be declared afterwards\n // mods: {},\n components: 'components' in record\n ? record.components || null\n : record.component && { default: record.component },\n };\n // mods contain modules and shouldn't be copied,\n // logged or anything. It's just used for internal\n // advanced use cases like data loaders\n Object.defineProperty(normalized, 'mods', {\n value: {},\n });\n return normalized;\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}\n/**\n * Performs a binary search to find the correct insertion index for a new matcher.\n *\n * Matchers are primarily sorted by their score. If scores are tied then we also consider parent/child relationships,\n * with descendants coming before ancestors. If there's still a tie, new routes are inserted after existing routes.\n *\n * @param matcher - new matcher to be inserted\n * @param matchers - existing matchers\n */\nfunction findInsertionIndex(matcher, matchers) {\n // First phase: binary search based on score\n let lower = 0;\n let upper = matchers.length;\n while (lower !== upper) {\n const mid = (lower + upper) >> 1;\n const sortOrder = comparePathParserScore(matcher, matchers[mid]);\n if (sortOrder < 0) {\n upper = mid;\n }\n else {\n lower = mid + 1;\n }\n }\n // Second phase: check for an ancestor with the same score\n const insertionAncestor = getInsertionAncestor(matcher);\n if (insertionAncestor) {\n upper = matchers.lastIndexOf(insertionAncestor, upper - 1);\n if ((process.env.NODE_ENV !== 'production') && upper < 0) {\n // This should never happen\n warn(`Finding ancestor route \"${insertionAncestor.record.path}\" failed for \"${matcher.record.path}\"`);\n }\n }\n return upper;\n}\nfunction getInsertionAncestor(matcher) {\n let ancestor = matcher;\n while ((ancestor = ancestor.parent)) {\n if (isMatchable(ancestor) &&\n comparePathParserScore(matcher, ancestor) === 0) {\n return ancestor;\n }\n }\n return;\n}\n/**\n * Checks if a matcher can be reachable. This means if it's possible to reach it as a route. For example, routes without\n * a component, or name, or redirect, are just used to group other routes.\n * @param matcher\n * @param matcher.record record of the matcher\n * @returns\n */\nfunction isMatchable({ record }) {\n return !!(record.name ||\n (record.components && Object.keys(record.components).length) ||\n record.redirect);\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 <router-view>. 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 <router-view>. Maybe you called it inside of App.vue?');\n return;\n }\n registerGuard(activeRecord, 'updateGuards', updateGuard);\n}\nfunction guardToPromiseFn(guard, to, from, record, name, runWithContext = fn => fn()) {\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 = runWithContext(() => 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, runWithContext = fn => fn()) {\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 &&\n guards.push(guardToPromiseFn(guard, to, from, record, name, runWithContext));\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 throw new Error(`Couldn't resolve component \"${name}\" at \"${record.path}\"`);\n const resolvedComponent = isESModule(resolved)\n ? resolved.default\n : resolved;\n // keep the resolved module for plugins like data loaders\n record.mods[name] = 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 &&\n guardToPromiseFn(guard, to, from, record, name, runWithContext)());\n }));\n }\n }\n }\n return guards;\n}\n/**\n * Ensures a route is loaded, so it can be passed as o prop to `<RouterView>`.\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 // keep the resolved module for plugins like data loaders\n record.mods[name] = 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\n/**\n * Returns the internal behavior of a {@link RouterLink} without the rendering part.\n *\n * @param props - a `to` location and an optional `replace` flag\n */\nfunction useLink(props) {\n const router = inject(routerKey);\n const currentRoute = inject(routeLocationKey);\n let hasPrevious = false;\n let previousTo = null;\n const route = computed(() => {\n const to = unref(props.to);\n if ((process.env.NODE_ENV !== 'production') && (!hasPrevious || to !== previousTo)) {\n if (!isRouteLocation(to)) {\n if (hasPrevious) {\n warn(`Invalid value for prop \"to\" in useLink()\\n- to:`, to, `\\n- previous to:`, previousTo, `\\n- props:`, props);\n }\n else {\n warn(`Invalid value for prop \"to\" in useLink()\\n- to:`, to, `\\n- props:`, props);\n }\n }\n previousTo = to;\n hasPrevious = true;\n }\n return router.resolve(to);\n });\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 error: null,\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 linkContextDevtools.error = isRouteLocation(unref(props.to))\n ? null\n : 'Invalid \"to\" 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 <component :is=\"...\"> 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 <transition> & <keep-alive>\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(`<router-view> can no longer be used directly inside <transition> or <keep-alive>.\\n` +\n `Use slot props instead:\\n\\n` +\n `<router-view v-slot=\"{ Component }\">\\n` +\n ` <${comp}>\\n` +\n ` <component :is=\"Component\" />\\n` +\n ` </${comp}>\\n` +\n `</router-view>`);\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 label = devtoolsData.route.path;\n let backgroundColor = ORANGE_400;\n let tooltip = '';\n let textColor = 0;\n if (devtoolsData.error) {\n label = devtoolsData.error;\n backgroundColor = RED_100;\n textColor = RED_700;\n }\n else 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,\n textColor,\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;\nconst RED_100 = 0xfee2e2;\nconst RED_700 = 0xb91c1c;\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://router.vuejs.org/api/interfaces/RouterOptions.html#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 if ((process.env.NODE_ENV !== 'production') && !parent) {\n warn(`Parent route \"${String(parentOrRoute)}\" not found when adding child route`, route);\n }\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 resolve: Router['resolve'] = (rawLocation: RouteLocationRaw, 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 if ((process.env.NODE_ENV !== 'production') && !isRouteLocation(rawLocation)) {\n warn(`router.resolve() was passed an invalid location. This will fail in production.\\n- Location:`, rawLocation);\n return resolve({});\n }\n let matcherLocation;\n // path could be relative in object as well\n if (rawLocation.path != null) {\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 \"${rawLocation.path != null ? 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 newTargetLocation.path == null &&\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: newTargetLocation.path != null ? {} : 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<Component>\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, runWithContext);\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 clearRoutes: matcher.clearRoutes,\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(_name) {\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"],"names":["compareVersions","v1","v2","n1","validateAndParse","n2","p1","pop","p2","r","compareSegments","split","validate","v","test","semver","compare","operator","assertValidOperator","res","operatorResMap","includes","satisfies","m","match","op","_validateAndParse","_validateAndParse2","_slicedToArray","v3","_validateAndParse3","_validateAndParse4","r1","r2","r3","compareStrings","_oktaAuth","_onAuthRequired","_router","originalUriTracker","TypeError","Error","concat","shift","isWildcard","s","tryParse","n","parseInt","isNaN","forceType","a","b","_typeof","String","_forceType","_forceType2","ap","bp","i","Math","max","length","allowedOperators","Object","keys","indexOf","join","guardSecureRoute","authState","__awaiter","isAuthenticated","setOriginalUri","_a","sent","signInWithRedirect","navigationGuard","to","authStateManager","unsubscribe","matched","some","record","meta","requiresAuth","fullPath","subscribe","getAuthState","install","app","_this","_b","oktaAuth","onAuthRequired","onAuthResume","AuthSdkError","_oktaUserAgent","isAuthJsSupported","getVersion","minSupportedVersion","addEnvironment","name","version","console","warn","options","restoreOriginalUri","originalUri","path","toRelativeUrl","window","location","origin","replace","start","mixin","data","beforeCreate","this","$router","created","$_oktaVue_handleAuthStateUpdate","beforeUnmount","methods","assign","config","globalProperties","$auth","OktaVue","script","defineComponent","error","beforeMount","_this2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","isInteractionRequiredError","_this2$$auth$options","callbackFn","wrap","_context","prev","next","handleLoginRedirect","t0","idx","abrupt","toString","stop","render","$slots","h","activeEffectScope","activeSub","EffectScope","detached","arguments","undefined","_classCallCheck","_active","effects","cleanups","_isPaused","parent","index","scopes","push","_createClass","key","get","value","l","pause","resume","fn","currentEffectScope","fromParent","last","getCurrentScope","batchedSub","pausedQueueEffects","WeakSet","ReactiveEffect","deps","depsTail","flags","cleanup","scheduler","active","has","trigger","batch","cleanupEffect","prepareDeps","prevEffect","prevShouldTrack","shouldTrack","cleanupDeps","link","nextDep","removeSub","onStop","add","runIfDirty","isDirty","run","batchDepth","sub","startBatch","endBatch","e","err","prevActiveLink","dep","activeLink","head","tail","prevDep","removeDep","computed","refreshComputed","_dirty","globalVersion","isSSR","prevSub","_value","hasChanged","nextSub","subs","trackStack","pauseTracking","resetTracking","Link","Dep","debugInfo","addSub","notify","currentTail","targetMap","WeakMap","ITERATE_KEY","Symbol","MAP_KEY_ITERATE_KEY","ARRAY_ITERATE_KEY","track","target","type","depsMap","set","Map","newValue","oldValue","oldTarget","forEach","targetIsArray","isArray","isArrayIndex","isIntegerKey","newLength","Number","key2","isSymbol","isMap","reactiveReadArray","array","raw","toRaw","isShallow","map","toReactive","shallowReadArray","arr","arrayInstrumentations","_arrayInstrumentation","__proto__","_defineProperty","iterator","_reactiveReadArray","_len2","args","Array","_key3","apply","_toConsumableArray","x","thisArg","_len3","_key4","searchProxy","_len4","_key5","separator","_len5","_key6","noTracking","_len6","_key7","_len7","_key8","reduce","_len8","_key9","_len9","_key10","toReversed","comparer","toSorted","_reactiveReadArray2","toSpliced","_len10","_key11","self","method","wrapValue","iter","_next","result","arrayProto","prototype","wrappedRetFn","needsWrap","methodFn","result2","wrappedFn","item","call","acc","isProxy","isNonTrackableKeys","makeMap","builtInSymbols","Set","getOwnPropertyNames","filter","hasOwnProperty","obj","BaseReactiveHandler","_isReadonly","_isShallow","receiver","isReadonly2","isShallow2","shallowReadonlyMap","readonlyMap","shallowReactiveMap","reactiveMap","getPrototypeOf","Reflect","isRef","isObject","readonly","reactive","MutableReactiveHandler","_BaseReactiveHandler","_callSuper","_inherits","isOldValueReadonly","isReadonly","hadKey","hasOwn","deleteProperty","ownKeys","ReadonlyReactiveHandler","_BaseReactiveHandler2","mutableHandlers","readonlyHandlers","shallowReactiveHandlers","toShallow","getProto","rawTarget","rawKey","_getProto","has2","toReadonly","size","proto","_getProto2","get2","deleteEntry","_getProto3","clear","hadItems","createForEach","callback","observed","createIterableMethod","targetIsMap","isPair","isKeyOnly","innerIterator","_innerIterator$next","done","createReadonlyMethod","createInstrumentations","mutableInstrumentations2","delete","shallowInstrumentations2","readonlyInstrumentations2","shallowReadonlyInstrumentations2","iteratorMethods","_createInstrumentatio","_createInstrumentatio2","mutableInstrumentations","readonlyInstrumentations","shallowInstrumentations","shallowReadonlyInstrumentations","createInstrumentationGetter","shallow","instrumentations","mutableCollectionHandlers","shallowCollectionHandlers","readonlyCollectionHandlers","targetTypeMap","rawType","getTargetType","isExtensible","toRawType","createReactiveObject","shallowReactive","baseHandlers","collectionHandlers","proxyMap","existingProxy","targetType","proxy","Proxy","isReactive","markRaw","def","ref","createRef","shallowRef","rawValue","RefImpl","_rawValue","useDirectValue","unref","ref2","shallowUnwrapHandlers","proxyRefs","objectWithRefs","ComputedRefImpl","setter","__v_isRef","effect","getterOrOptions","debugOptions","getter","isFunction","cRef","INITIAL_WATCHER_VALUE","cleanupMap","activeWatcher","onWatcherCleanup","cleanupFn","owner","watch","source","cb","boundCleanup","EMPTY_OBJ","immediate","deep","once","augmentJob","reactiveGetter","source2","traverse","forceTrigger","isMultiSource","currentEffect","NOOP","baseGetter","depth","Infinity","scope","watchHandle","remove","_cb","fill","job","immediateFirstRun","dirty","currentWatcher","_step","_iterator","_createForOfIteratorHelper","cleanup2","f","bind","seen","isSet","isPlainObject","_step2","_iterator2","getOwnPropertySymbols","propertyIsEnumerable","_ErrorTypeStrings$","callWithErrorHandling","instance","handleError","callWithAsyncErrorHandling","isPromise","values","throwInDev","contextVNode","vnode","_ref3","appContext","errorHandler","throwUnhandledErrorInProduction","cur","exposedInstance","errorInfo","errorCapturedHooks","ec","logError","throwInProd","isFlushing","isFlushPending","queue","flushIndex","pendingPostFlushCbs","activePostFlushCbs","postFlushIndex","resolvedPromise","Promise","resolve","currentFlushPromise","nextTick","p","then","findInsertionIndex","id","end","middle","middleJob","middleJobId","getId","queueJob","jobId","lastJob","splice","queueFlush","flushJobs","queuePostFlushCb","flushPreFlushCbs","uid","flushPostFlushCbs","_activePostFlushCbs","deduped","sort","currentRenderingInstance","currentScopeId","setCurrentRenderingInstance","__scopeId","withCtx","ctx","_n","renderFnWithContext","_d","setBlockTracking","prevInstance","_c","withDirectives","directives","getComponentPublicInstance","bindings","dirs","_directives$i","dir","arg","_directives$i$","modifiers","mounted","updated","invokeDirectiveHook","prevVNode","oldBindings","binding","hook","el","TeleportEndKey","isTeleport","__isTeleport","isTeleportDisabled","props","disabled","isTeleportDeferred","defer","isTargetSVG","SVGElement","isTargetMathML","MathMLElement","resolveTarget","select","targetSelector","isString","TeleportImpl","process","_process","_x","_x2","_x3","_x4","_x5","_x6","_x7","_x8","_x9","_x10","container","anchor","parentComponent","parentSuspense","namespace","slotScopeIds","optimized","internals","mountChildren","mc","patchChildren","pc","patchBlockChildren","pbc","_internals$o","o","insert","querySelector","createText","createComment","shapeFlag","children","dynamicChildren","placeholder","mainAnchor","mount","container2","anchor2","isCE","ce","_teleportTarget","mountToTarget","targetAnchor","prepareAnchor","updateCssVars","queuePostRenderEffect","targetStart","wasDisabled","currentContainer","currentAnchor","traverseStaticChildren","moveTeleport","nextTarget","_ref5","doRemove","unmount","um","hostRemove","shouldRemove","child","move","hydrate","hydrateTeleport","parentAnchor","_ref6","moveType","isReorder","node","_ref7","hydrateChildren","_ref7$o","nextSibling","parentNode","targetNode","_lpa","firstChild","nodeType","Teleport","ut","setAttribute","leaveCbKey","enterCbKey","useTransitionState","state","isMounted","isLeaving","isUnmounting","leavingVNodes","onMounted","onBeforeUnmount","TransitionHookValidator","Function","BaseTransitionPropsValidators","mode","appear","Boolean","persisted","onBeforeEnter","onEnter","onAfterEnter","onEnterCancelled","onBeforeLeave","onLeave","onAfterLeave","onLeaveCancelled","onBeforeAppear","onAppear","onAfterAppear","onAppearCancelled","getLeavingNodesForType","leavingVNodesCache","create","resolveTransitionHooks","postClone","_props$persisted","callHook","callAsyncHook","every","hook2","hooks","beforeEnter","leavingVNode","isSameVNodeType","enter","afterHook","cancelHook","called","cancelled","delayedLeave","leave","clone","vnode2","hooks2","setTransitionHooks","component","transition","subTree","ssContent","ssFallback","getTransitionRawChildren","keepComment","parentKey","ret","keyedFragmentCount","Fragment","patchFlag","Comment","cloneVNode","extraOptions","extend","setup","markAsyncBoundary","ids","setRef","rawRef","oldRawRef","isUnmount","isAsyncWrapper","refValue","oldRef","refs","setupState","rawSetupState","canSetSetupRef","_isString","_isRef","doSet","existing","k","__asyncLoader","isKeepAlive","__isKeepAlive","RegExp","matches","pattern","isRegExp","lastIndex","onActivated","registerKeepAliveHook","onDeactivated","currentInstance","wrappedHook","__wdc","current","isDeactivated","injectHook","injectToKeepAliveRoot","keepAliveRoot","injected","onUnmounted","resetShapeFlag","getInnerChild","prepend","__weh","reset","setCurrentInstance","unshift","createHook","lifecycle","isInSSRComponentSetup","onBeforeMount","onBeforeUpdate","onUpdated","onServerPrefetch","onRenderTriggered","onRenderTracked","onErrorCaptured","COMPONENTS","DIRECTIVES","resolveComponent","maybeSelfReference","resolveAsset","NULL_DYNAMIC_COMPONENT","resolveDynamicComponent","resolveDirective","Component","selfName","getComponentName","camelize","capitalize","registry","renderList","renderItem","cache","cached","sourceIsArray","sourceIsReactiveArray","from","renderSlot","slots","fallback","noSlotted","openBlock","createBlock","createVNode","slot","validSlotContent","ensureValidVNode","rendered","_","scopeId","vnodes","isVNode","getPublicInstance","isStatefulComponent","publicPropertiesMap","$","$el","$data","$props","$attrs","attrs","$refs","$parent","$root","root","$host","$emit","emit","$options","resolveMergedOptions","$forceUpdate","update","$nextTick","$watch","instanceWatch","hasSetupBinding","__isScriptSetup","PublicInstanceProxyHandlers","_ref12","normalizedProps","accessCache","propsOptions","shouldCacheAccess","cssModule","publicGetter","__cssModules","_ref13","slice","_ref14","_ref14$_","defineProperty","descriptor","normalizePropsOrEmits","normalized","applyOptions","publicThis","dataOptions","computedOptions","watchOptions","provideOptions","provide","injectOptions","inject","beforeUpdate","activated","deactivated","beforeDestroy","unmounted","destroyed","renderTracked","renderTriggered","errorCaptured","serverPrefetch","expose","inheritAttrs","components","checkDuplicateProperties","filters","resolveInjections","methodHandler","_loop5","opt","c","enumerable","configurable","createWatcher","provides","registerLifecycleHook","register","_hook","exposed","val","normalizeInject","_loop6","createPathGetter","handler","resolved","base","mixins","extendsOptions","_instance$appContext","globalMixins","optionsCache","optionMergeStrategies","mergeOptions","strats","asMixin","strat","internalOptionMergeStrats","mergeDataFn","mergeEmitsOrPropsOptions","emits","mergeObjectOptions","mergeAsArray","mergeWatchOptions","mergeInject","merged","createAppContext","isNativeTag","NO","performance","warnHandler","compilerOptions","propsCache","emitsCache","uid$1","createAppAPI","rootComponent","rootProps","context","installedPlugins","pluginCleanupFns","_uid","_component","_props","_container","_instance","use","plugin","directive","rootContainer","isHydrate","_ceVNode","__vue_app__","onUnmount","runWithContext","lastApp","currentApp","parentProvides","defaultValue","treatDefaultAsFactory","internalObjectProto","createInternalObject","isInternalObject","initProps","rawProps","isStateful","propsDefaults","setFullProps","updateProps","rawPrevProps","rawCurrentProps","_instance$propsOption3","hasAttrsChanged","kebabKey","hyphenate","resolvePropValue","propsToUpdate","dynamicProps","isEmitListener","emitsOptions","camelizedKey","rawCastValues","_instance$propsOption4","needCastKeys","isReservedProp","camelKey","castValues","isAbsent","hasDefault","skipFactory","_setProp","mixinPropsCache","normalizePropsOptions","comp","hasExtends","extendProps","raw2","_normalizePropsOption","_normalizePropsOption2","EMPTY_ARR","normalizedKey","validatePropName","prop","propType","shouldCast","shouldCastTrue","typeName","isInternalKey","normalizeSlotValue","normalizeVNode","normalizeSlot","rawSlot","normalizeObjectSlots","rawSlots","_ctx","_loop7","normalizeVNodeSlots","assignSlots","initSlots","updateSlots","needDeletionCheck","deletionComparisonTarget","$stable","default","initFeatureFlags","__VUE_PROD_HYDRATION_MISMATCH_DETAILS__","getGlobalThis","queueEffectWithSuspense","createRenderer","baseCreateRenderer","createHydrationFns","__VUE__","hydrateNode","hostInsert","hostPatchProp","patchProp","hostCreateElement","createElement","hostCreateText","hostCreateComment","hostSetText","setText","hostSetElementText","setElementText","hostParentNode","hostNextSibling","_options$setScopeId","setScopeId","hostSetScopeId","hostInsertStaticContent","insertStaticContent","patch","getNextHostNode","Text","processText","processCommentNode","Static","mountStaticNode","processFragment","processElement","processComponent","_hostInsertStaticCont","_hostInsertStaticCont2","moveStaticNode","_ref15","removeStaticNode","_ref16","mountElement","patchElement","vnodeHook","is","resolveChildrenNamespace","onVnodeBeforeMount","invokeVNodeHook","needCallTransitionHooks","needTransition","onVnodeMounted","isSuspense","parentVNode","cloneIfMounted","oldProps","newProps","toggleRecurse","onVnodeBeforeUpdate","innerHTML","textContent","patchProps","style","onVnodeUpdated","oldChildren","newChildren","fallbackContainer","oldVNode","newVNode","fragmentStartAnchor","fragmentEndAnchor","fragmentSlotScopeIds","activate","mountComponent","updateComponent","initialVNode","createComponentInstance","renderer","setupComponent","asyncDep","registerDep","setupRenderEffect","shouldUpdateComponent","asyncResolved","updateComponentPreRender","componentUpdateFn","bu","u","nonHydratedAsyncRoot","locateNonHydratedAsyncRoot","isUnmounted","originNext","invokeArrayFns","nextTree","renderComponentRoot","prevTree","updateHOCHostEl","_initialVNode","bm","isAsyncWrapperVNode","hydrateSubTree","__asyncHydrate","_injectChildStyle","scopedInitialVNode","on","off","nextVNode","prevProps","c1","prevShapeFlag","c2","patchKeyedChildren","patchUnkeyedChildren","unmountChildren","oldLength","commonLength","min","nextChild","l2","e1","e2","nextPos","j","s1","s2","keyToNewIndexMap","patched","toBePatched","moved","maxNewIndexSoFar","newIndexToOldIndexMap","prevChild","newIndex","increasingNewIndexSequence","getSequence","nextIndex","suspense","needTransition2","delayLeave","afterLeave","remove2","performLeave","cacheIndex","renderCache","deactivate","shouldInvokeDirs","shouldInvokeVnodeHook","onVnodeBeforeUnmount","unmountComponent","hasOnce","onVnodeUnmounted","performRemove","removeFragment","bum","invalidateMount","pendingBranch","suspenseId","pendingId","teleportEnd","_vnode","mt","_createHydrationFns","_createHydrationFns2","createApp","_ref17","currentNamespace","encoding","_ref18","allowed","ch1","ch2","len","arrI","subComponent","ssrContextKey","useSSRContext","doWatch","flush","ssrCleanup","baseWatchOptions","__watcherHandles","watchStopHandle","isPre","isFirstRun","watch$1","segments","getModelModifiers","modelName","modelModifiers","event","rawArgs","_key15","handlerName","isModelListener","startsWith","trim","number","looseToNumber","toHandlerKey","onceHandler","emitted","normalizeEmitsOptions","extendEmits","normalizedFromExtend","isOn","toLowerCase","fallthroughAttrs","withProxy","_instance$propsOption6","proxyToUse","thisProxy","render2","getFunctionalFallthrough","blockStack","_root","filterModelListeners","prevChildren","nextProps","nextChildren","hasPropsChanged","nextKeys","_ref19","activeBranch","__isSuspense","_suspense$effects","currentBlock","disableTracking","closeBlock","isBlockTreeEnabled","setupBlock","createElementBlock","createBaseVNode","__v_isVNode","normalizeKey","_ref21","normalizeRef","_ref22","ref_key","ref_for","isBlockNode","needFullChildrenNormalization","__v_skip","staticCount","normalizeChildren","normalize","_createVNode","cloned","isClassComponent","__vccOpts","guardReactiveProps","klass","normalizeClass","normalizeStyle","extraProps","mergeRef","cloneTransition","mergedProps","mergeProps","createTextVNode","text","flag","createStaticVNode","content","numberOfNodes","createCommentVNode","asBlock","memo","slotFlag","toMerge","incoming","emptyAppContext","exposeProxy","setupContext","bc","da","rtg","rtc","sp","internalSetCurrentInstance","setInSSRSetupState","getCurrentInstance","g","registerGlobalSetter","setters","unsetCurrentInstance","compile","installWithProxy","_instance$vnode","setupResult","setupStatefulComponent","createSetupContext","resolvedResult","handleSetupResult","finishComponentSetup","__ssrInlineRender","ssrRender","skipOptions","template","_instance$appContext$","isCustomElement","delimiters","componentCompilerOptions","finalCompilerOptions","attrsProxyHandlers","includeInferred","displayName","__name","computed$1","propsOrChildren","policy","tt","trustedTypes","createPolicy","createHTML","unsafeToTrustedHTML","svgNS","mathmlNS","doc","document","templateContainer","nodeOps","insertBefore","removeChild","tag","createElementNS","multiple","createTextNode","nodeValue","selector","before","previousSibling","lastChild","cloneNode","wrapper","appendChild","vtcKey","DOMTransitionPropsValidators","css","duration","enterFromClass","enterActiveClass","enterToClass","appearFromClass","appearActiveClass","appearToClass","leaveFromClass","leaveActiveClass","leaveToClass","patchClass","isSVG","transitionClasses","removeAttribute","className","vShowOriginalDisplay","vShowHidden","CSS_VAR_TEXT","displayRE","patchStyle","isCssString","hasControlledDisplay","prevStyle","setStyle","cssVarText","cssText","display","importantRE","setProperty","prefixed","autoPrefix","prefixes","prefixCache","rawName","xlinkNS","patchAttr","isBoolean","isSpecialBooleanAttr","removeAttributeNS","setAttributeNS","includeBooleanAttr","patchDOMProp","tagName","getAttribute","needRemove","addEventListener","removeEventListener","veiKey","patchEvent","prevValue","nextValue","invokers","existingInvoker","_parseName","parseName","_parseName2","invoker","createInvoker","optionsModifierRE","cachedNow","getNow","Date","now","initialValue","_vts","attached","patchStopImmediatePropagation","originalStop","stopImmediatePropagation","_stopped","isNativeOn","charCodeAt","shouldSetAsProp","_trueValue","_falseValue","_isVueCE","HTMLElement","rendererOptions","ensureRenderer","_ensureRenderer2","containerOrSelector","normalizeContainer","resolveRootNamespace","Element","str","_globalThis","toTypeString","isDate","objectToString","cacheStringFunction","hit","camelizeRE","toUpperCase","hyphenateRE","charAt","fns","_len","_key2","writable","parseFloat","toNumber","NaN","globalThis","global","_PatchFlagNames","GLOBALS_ALLOWED","isGloballyAllowed","parseStringStyle","listDelimiterRE","propertyDelimiterRE","styleCommentRE","tmp","normalizeProps","specialBooleanAttrs","looseCompareArrays","equal","looseEqual","aValidType","bValidType","getTime","aKeysCount","bKeysCount","aHasKey","bHasKey","looseIndexOf","findIndex","toDisplayString","JSON","stringify","replacer","_key","entries","_ref","_ref2","val2","stringifySymbol","description","__self__","F","fetch","DOMException","exports","support","searchParams","iterable","blob","Blob","formData","arrayBuffer","isDataView","DataView","isPrototypeOf","viewClasses","isArrayBufferView","ArrayBuffer","isView","normalizeName","normalizeValue","iteratorFor","items","Headers","headers","append","header","consumed","body","bodyUsed","reject","fileReaderReady","reader","onload","onerror","readBlobAsArrayBuffer","FileReader","promise","readAsArrayBuffer","readBlobAsText","readAsText","readArrayBufferAsText","buf","view","Uint8Array","chars","fromCharCode","bufferClone","byteLength","buffer","Body","_initBody","_bodyInit","_bodyText","_bodyBlob","FormData","_bodyFormData","URLSearchParams","_bodyArrayBuffer","rejected","decode","json","parse","normalizeMethod","upcased","Request","input","url","credentials","signal","referrer","form","bytes","decodeURIComponent","parseHeaders","rawHeaders","preProcessedHeaders","line","parts","Response","bodyInit","status","ok","statusText","response","redirectStatuses","redirect","RangeError","message","stack","constructor","init","request","aborted","xhr","XMLHttpRequest","abortXhr","abort","getAllResponseHeaders","responseURL","responseText","ontimeout","onabort","open","withCredentials","responseType","setRequestHeader","onreadystatechange","readyState","send","polyfill","ponyfill","module","require","_wrapNativeSuper","CancelError","_Error","reason","PCancelable","executor","_cancelHandlers","_isPending","_isCanceled","_rejectOnCancel","_promise","_reject","onResolve","onCancel","shouldReject","onReject","defineProperties","boolean","onFulfilled","onRejected","onFinally","userFn","arguments_","setPrototypeOf","t","__b","__r","diffed","__c","d","__h","__H","__","__V","y","B","__N","setState","shouldComponentUpdate","__s","z","A","T","q","useDebugValue","V","__v","__m","__P","w","__e","requestAnimationFrame","clearTimeout","cancelAnimationFrame","setTimeout","C","E","R","isReactComponent","__f","isPureReactComponent","N","$$typeof","O","count","only","toArray","__k","I","L","U","__d","D","__u","__a","M","__R","__O","forceUpdate","componentWillUnmount","W","revealOrder","P","getChildContext","childNodes","containerInfo","reverse","componentDidUpdate","componentDidMount","H","Z","Y","G","J","K","cancelBubble","Q","defaultPrevented","persist","isPropagationStopped","isDefaultPrevented","nativeEvent","X","nn","tn","selected","en","rn","ReactCurrentDispatcher","readContext","__n","ln","cn","an","sn","hn","vn","dn","pn","mn","yn","defaultProps","debounceRendering","ownerSVGElement","S","contextType","__E","_sb","getDerivedStateFromProps","componentWillMount","componentWillReceiveProps","componentWillUpdate","getSnapshotBeforeUpdate","localName","dangerouslySetInnerHTML","attributes","__html","checked","Consumer","Provider","getDerivedStateFromError","componentDidCatch","listener","evtArr","evts","liveEvents","isCallable","tryToString","$TypeError","argument","isConstructor","isPossiblePrototype","$String","it","wellKnownSymbol","UNSCOPABLES","ArrayPrototype","unicode","Prototype","uncurryThisAccessor","classof","uncurryThis","arrayBufferByteLength","ArrayBufferPrototype","fails","isDetached","toIndex","notDetached","detachTransferable","PROPER_STRUCTURED_CLONE_TRANSFER","structuredClone","DataViewPrototype","isResizable","maxByteLength","getInt8","setInt8","preserveResizability","newBuffer","newByteLength","fixedLength","transfer","copyLength","NAME","Constructor","NATIVE_ARRAY_BUFFER","DESCRIPTORS","createNonEnumerableProperty","defineBuiltIn","defineBuiltInAccessor","InternalStateModule","enforceInternalState","enforce","getInternalState","Int8Array","Int8ArrayPrototype","Uint8ClampedArray","Uint8ClampedArrayPrototype","TypedArray","TypedArrayPrototype","ObjectPrototype","TO_STRING_TAG","TYPED_ARRAY_TAG","TYPED_ARRAY_CONSTRUCTOR","NATIVE_ARRAY_BUFFER_VIEWS","opera","TYPED_ARRAY_TAG_REQUIRED","TypedArrayConstructorsList","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigIntArrayConstructorsList","BigInt64Array","BigUint64Array","getTypedArrayConstructor","isTypedArray","aTypedArray","aTypedArrayConstructor","exportTypedArrayMethod","KEY","property","forced","ARRAY","TypedArrayConstructor","error2","exportTypedArrayStaticMethod","FunctionName","defineBuiltIns","anInstance","toIntegerOrInfinity","toLength","fround","IEEE754","arrayFill","arraySlice","inheritIfRequired","copyConstructorProperties","setToStringTag","PROPER_FUNCTION_NAME","PROPER","CONFIGURABLE_FUNCTION_NAME","CONFIGURABLE","ARRAY_BUFFER","DATA_VIEW","PROTOTYPE","WRONG_LENGTH","WRONG_INDEX","getInternalArrayBufferState","getterFor","getInternalDataViewState","setInternalState","NativeArrayBuffer","$ArrayBuffer","$DataView","packIEEE754","pack","unpackIEEE754","unpack","packInt8","packInt16","packInt32","unpackInt32","packFloat32","packFloat64","addGetter","isLittleEndian","store","intIndex","boolIsLittleEndian","byteOffset","conversion","INCORRECT_ARRAY_BUFFER_NAME","testView","$setInt8","setUint8","unsafe","bufferState","bufferLength","offset","getUint8","getInt16","getUint16","getInt32","getUint32","getFloat32","getFloat64","setInt16","setUint16","setInt32","setUint32","setFloat32","setFloat64","toObject","toAbsoluteIndex","lengthOfArrayLike","deletePropertyOrThrow","copyWithin","inc","argumentsLength","endPos","$forEach","arrayMethodIsStrict","STRICT_METHOD","callbackfn","list","$length","callWithSafeIterationClosing","isArrayIteratorMethod","createProperty","getIterator","getIteratorMethod","$Array","arrayLike","IS_CONSTRUCTOR","mapfn","mapping","step","iteratorMethod","toIndexedObject","createMethod","IS_INCLUDES","$this","fromIndex","IndexedObject","TYPE","IS_FIND_LAST_INDEX","that","boundFunction","findLast","findLastIndex","arraySpeciesCreate","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_REJECT","NO_HOLES","specificCreate","find","filterReject","$lastIndexOf","lastIndexOf","NEGATIVE_ZERO","FORCED","searchElement","V8_VERSION","SPECIES","METHOD_NAME","foo","aCallable","REDUCE_EMPTY","IS_RIGHT","left","right","getOwnPropertyDescriptor","SILENT_ON_NON_WRITABLE_LENGTH_SET","floor","comparefn","element","llength","rlength","lindex","rindex","originalArray","arraySpeciesConstructor","$RangeError","relativeIndex","actualIndex","commonAlphabet","base64Alphabet","base64UrlAlphabet","inverse","characters","i2c","c2i","i2cUrl","c2iUrl","anObject","iteratorClose","ENTRIES","ITERATOR","SAFE_CLOSING","iteratorWithReturn","exec","SKIP_CLOSING","ITERATION_SUPPORT","object","stringSlice","TO_STRING_TAG_SUPPORT","classofRaw","$Object","CORRECT_ARGUMENTS","tryGet","callee","isNullOrUndefined","iterate","defineIterator","createIterResultObject","setSpecies","fastKey","internalStateGetterFor","getConstructor","CONSTRUCTOR_NAME","ADDER","first","AS_ENTRIES","define","previous","entry","getEntry","removed","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","kind","getWeakData","ArrayIterationModule","uncaughtFrozenStore","frozen","UncaughtFrozenStore","findUncaughtFrozen","isForced","InternalMetadataModule","checkCorrectnessOfIteration","common","IS_WEAK","NativeConstructor","NativePrototype","exported","fixMethod","uncurriedNativeMethod","REPLACE","enable","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","getOwnPropertyDescriptorModule","definePropertyModule","exceptions","MATCH","regexp","error1","requireObjectCoercible","quot","string","attribute","createPropertyDescriptor","bitmap","padStart","$isFinite","isFinite","abs","DatePrototype","nativeDateToISOString","toISOString","thisTimeValue","getUTCDate","getUTCFullYear","getUTCHours","getUTCMilliseconds","getUTCMinutes","getUTCMonth","getUTCSeconds","date","year","milliseconds","sign","ordinaryToPrimitive","hint","makeBuiltIn","defineGlobalProperty","simple","nonConfigurable","nonWritable","src","WorkerThreads","channel","$detach","getBuiltInNodeModule","$MessageChannel","MessageChannel","detach","transferable","port1","postMessage","EXISTS","MAX_SAFE_INTEGER","IndexSizeError","DOMStringSizeError","HierarchyRequestError","WrongDocumentError","InvalidCharacterError","NoDataAllowedError","NoModificationAllowedError","NotFoundError","NotSupportedError","InUseAttributeError","InvalidStateError","SyntaxError","InvalidModificationError","NamespaceError","InvalidAccessError","ValidationError","TypeMismatchError","SecurityError","NetworkError","AbortError","URLMismatchError","QuotaExceededError","TimeoutError","InvalidNodeTypeError","DataCloneError","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","documentCreateElement","classList","DOMTokenListPrototype","userAgent","firefox","UA","Pebble","ENVIRONMENT","navigator","Deno","versions","v8","webkit","userAgentStartsWith","Bun","$Error","TEST","V8_OR_CHAKRA_STACK_ENTRY","IS_V8_OR_CHAKRA_STACK","dropEntries","prepareStackTrace","clearErrorStack","ERROR_STACK_INSTALLABLE","captureStackTrace","normalizeStringArgument","nativeErrorToString","INCORRECT_TO_STRING","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","dontCallGetSet","sham","regexpExec","RegExpPrototype","SHAM","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","re","nativeRegExpMethod","nativeMethod","arg2","forceStringMethod","$exec","doesNotExceedSafeInteger","flattenIntoArray","original","sourceLen","mapper","elementLen","targetIndex","sourceIndex","mapFn","preventExtensions","NATIVE_BIND","FunctionPrototype","$Function","factories","construct","argsLength","partArgs","getDescriptor","uncurryThisWithBind","IS_NODE","getBuiltinModule","CONSTRUCTOR","METHOD","aFunction","getMethod","Iterators","usingIterator","rawLength","keysLength","func","getIteratorDirect","INVALID_SIZE","SetRecord","intSize","numSize","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","position","captures","namedCaptures","replacement","tailPos","symbols","ch","capture","check","getBuiltIn","pow","log","LN2","mantissaLength","exponent","mantissa","exponentLength","eMax","eBias","rt","nBits","Wrapper","NewTarget","NewTargetPrototype","functionToString","inspectSource","cause","hiddenKeys","getOwnPropertyNamesModule","getOwnPropertyNamesExternalModule","FREEZING","REQUIRED","METADATA","setMetadata","objectID","weakData","onFreeze","NATIVE_WEAK_MAP","shared","sharedKey","OBJECT_ALREADY_INITIALIZED","metadata","facade","STATE","documentAll","all","noop","constructorRegExp","isConstructorModern","isConstructorLegacy","feature","detection","POLYFILL","NATIVE","isInteger","USE_SYMBOL_AS_UID","$Symbol","ITERATOR_INSTEAD_OF_RECORD","Result","stopped","ResultPrototype","unboundFunction","iterFn","IS_RECORD","IS_ITERATOR","INTERRUPTED","condition","callFn","innerResult","innerError","IteratorPrototype","returnThis","IteratorConstructor","ENUMERABLE_NEXT","IS_PURE","createIteratorConstructor","IteratorsCore","BUGGY_SAFARI_ITERATORS","KEYS","VALUES","Iterable","DEFAULT","IS_SET","CurrentIteratorPrototype","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","PrototypeOfArrayIteratorPrototype","arrayIterator","NEW_ITERATOR_PROTOTYPE","CONFIGURABLE_LENGTH","TEMPLATE","arity","EPSILON","INVERSE_EPSILON","roundTiesToEven","FLOAT_EPSILON","FLOAT_MAX_VALUE","FLOAT_MIN_VALUE","absolute","floatRound","FLOAT32_EPSILON","FLOAT32_MAX_VALUE","FLOAT32_MIN_VALUE","ceil","trunc","toggle","safeGetBuiltIn","macrotask","Queue","IS_IOS","IS_IOS_PEBBLE","IS_WEBOS_WEBKIT","MutationObserver","WebKitMutationObserver","microtask","domain","exit","observe","characterData","PromiseCapability","$$resolve","$$reject","$default","globalIsFinite","whitespaces","$parseFloat","trimmedString","$parseInt","hex","radix","objectKeys","getOwnPropertySymbolsModule","propertyIsEnumerableModule","$assign","symbol","alphabet","chr","activeXDocument","definePropertiesModule","enumBugKeys","html","GT","LT","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","NullProtoObjectViaActiveX","write","close","temp","parentWindow","NullProtoObjectViaIFrame","iframeDocument","iframe","JS","contentWindow","NullProtoObject","ActiveXObject","Properties","V8_PROTOTYPE_DEFINE_BUG","IE8_DOM_DEFINE","toPropertyKey","$defineProperty","$getOwnPropertyDescriptor","ENUMERABLE","WRITABLE","Attributes","$getOwnPropertyNames","windowNames","getWindowNames","internalObjectKeys","CORRECT_PROTOTYPE_GETTER","ARRAY_BUFFER_NON_EXTENSIBLE","$isExtensible","FAILS_ON_PRIMITIVES","names","$propertyIsEnumerable","NASHORN_BUG","aPossiblePrototype","CORRECT_SETTER","objectGetPrototypeOf","IE_BUG","TO_ENTRIES","IE_WORKAROUND","pref","valueOf","NativePromiseConstructor","NativePromisePrototype","SUBCLASSING","NATIVE_PROMISE_REJECTION_EVENT","PromiseRejectionEvent","FORCED_PROMISE_CONSTRUCTOR","PROMISE_CONSTRUCTOR_SOURCE","GLOBAL_CORE_JS_PROMISE","FakePromise","REJECTION_EVENT","newPromiseCapability","promiseCapability","Target","Source","regexpFlags","stickyHelpers","UNSUPPORTED_DOT_ALL","UNSUPPORTED_NCG","nativeReplace","nativeExec","patchedExec","UPDATES_LAST_INDEX_WRONG","re1","re2","UNSUPPORTED_Y","BROKEN_CARET","NPCG_INCLUDED","PATCH","reCopy","group","groups","sticky","charsAdded","strCopy","multiline","hasIndices","ignoreCase","dotAll","unicodeSets","regExpFlags","$RegExp","MISSED_STICKY","USER_AGENT","validateArgumentsLength","WRAP","hasTimeArg","firstParamIndex","timeout","boundArgs","params","SetHelpers","aSet","getSetRecord","iterateSet","iterateSimple","other","otherRec","SetPrototype","interruptible","createSetLike","keysIter","TAG","SHARED","copyright","license","aConstructor","defaultConstructor","CONVERT_TO_STRING","pos","second","codeAt","$repeat","repeat","IS_END","maxLength","fillString","fillLen","stringFiller","intMaxLength","stringLength","fillStr","maxInt","tMin","tMax","skew","damp","initialBias","initialN","delimiter","regexNonASCII","regexSeparators","OVERFLOW_ERROR","baseMinusTMin","ucs2decode","output","counter","extra","digitToBasic","digit","adapt","delta","numPoints","firstTime","encode","currentValue","inputLength","bias","basicLength","handledCPCount","handledCPCountPlusOne","qMinusT","baseMinusT","label","encoded","labels","non","ltrim","rtrim","V8","SymbolPrototype","TO_PRIMITIVE","NATIVE_SYMBOL","keyFor","$location","port","setImmediate","clearImmediate","Dispatch","ONREADYSTATECHANGE","runner","eventListener","globalPostMessageDefer","protocol","host","port2","onmessage","importScripts","integer","toPrimitive","prim","BigInt","toPositiveInteger","BYTES","exoticToPrim","round","TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS","ArrayBufferViewCore","ArrayBufferModule","isIntegralNumber","toOffset","toUint8Clamped","typedArrayFrom","arrayFromConstructorAndList","nativeDefineProperty","nativeGetOwnPropertyDescriptor","BYTES_PER_ELEMENT","isArrayBuffer","isTypedArrayIndex","wrappedGetOwnPropertyDescriptor","wrappedDefineProperty","CLAMPED","GETTER","SETTER","NativeTypedArrayConstructor","TypedArrayConstructorPrototype","addElement","typedArrayOffset","$len","typedArraySpeciesConstructor","isBigIntArray","toBigInt","thisIsBigIntArray","speciesConstructor","postfix","random","URL","params2","pathname","toJSON","href","username","hash","passed","required","wrappedWellKnownSymbolModule","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","proxyAccessor","installErrorCause","installErrorStack","FULL_NAME","IS_AGGREGATE_ERROR","STACK_TRACE_LIMIT","OPTIONS_POSITION","ERROR_NAME","OriginalError","OriginalErrorPrototype","BaseError","WrappedError","arrayBufferModule","nativeArrayBufferSlice","INCORRECT_SLICE","fin","viewSource","viewTarget","$transfer","transferToFixedLength","arrayMethodHasSpeciesSupport","IS_CONCAT_SPREADABLE","IS_CONCAT_SPREADABLE_SUPPORT","isConcatSpreadable","spreadable","$every","addToUnscopables","$filter","HAS_SPECIES_SUPPORT","$findIndex","FIND_INDEX","SKIPS_HOLES","$findLastIndex","$findLast","$find","FIND","flat","depthArg","INCORRECT_ITERATION","$includes","BROKEN_ON_SPARSE","$indexOf","nativeIndexOf","ARRAY_ITERATOR","Arguments","nativeJoin","ES3_STRINGS","$map","setArrayLength","INCORRECT_TO_LENGTH","properErrorOnNonWritableLength","argCount","$reduce","CHROME_VERSION","CHROME_BUG","nativeReverse","nativeSlice","$some","internalSort","FF","IE_OR_EDGE","WEBKIT","nativeSort","FAILS_ON_UNDEFINED","FAILS_ON_NULL","STABLE_SORT","code","getSortCompare","itemsLength","arrayLength","deleteCount","insertCount","actualDeleteCount","actualStart","arrayToReversed","getBuiltInPrototypeMethod","compareFn","newLen","INCORRECT_RESULT","getYear","getFullYear","$Date","pv","dateToPrimitive","INVALID_DATE","TO_STRING","nativeDateToString","wrapErrorConstructorWithCause","WEB_ASSEMBLY","WebAssembly","exportGlobalErrorCauseWrapper","exportWebAssemblyErrorCauseWrapper","errorToString","ErrorPrototype","numberToString","escape","FUNCTION_NAME_EXISTS","nameRE","regExpExec","getReplacerFunction","$stringify","tester","low","hi","WRONG_SYMBOLS_CONVERSION","ILL_FORMED_UNICODE","stringifyWithSymbolsFix","$replacer","fixIllFormed","space","collection","collectionStrong","thisNumberValue","NUMBER","NativeNumber","PureNumberNamespace","NumberPrototype","toNumeric","primValue","third","maxCode","digits","calledWithNew","NumberWrapper","numberIsFinite","$entries","$freeze","freeze","fromEntries","getOwnPropertyDescriptors","$getOwnPropertySymbols","nativeGetPrototypeOf","nativeKeys","PROTO","$values","newPromiseCapabilityModule","perform","PROMISE_STATICS_INCORRECT_ITERATION","capability","$promiseResolve","remaining","alreadyCalled","real","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","task","hostReportErrors","PromiseConstructorDetection","PROMISE","NATIVE_PROMISE_SUBCLASSING","getInternalPromiseState","PromiseConstructor","PromisePrototype","newGenericPromiseCapability","DISPATCH_EVENT","createEvent","dispatchEvent","UNHANDLED_REJECTION","REJECTION_HANDLED","PENDING","FULFILLED","REJECTED","HANDLED","UNHANDLED","isThenable","callReaction","reaction","exited","fail","rejection","onHandleUnhandled","isReject","notified","reactions","onUnhandled","initEvent","IS_UNHANDLED","isUnhandled","unwrap","internalReject","internalResolve","promiseResolve","NON_GENERIC","race","capabilityReject","PromiseConstructorWrapper","CHECK_WRAPPER","nativeConstruct","NEW_TARGET_BUG","ARGS_BUG","newTarget","$args","ERROR_INSTEAD_OF_FALSE","propertyKey","isDataDescriptor","existingDescriptor","ownDescriptor","MS_EDGE_BUG","getRegExpFlags","NativeRegExp","stringIndexOf","IS_NCG","CORRECT_NEW","BASE_FORCED","handleDotAll","brackets","handleNCG","named","ncg","groupid","groupname","RegExpWrapper","rawFlags","handled","thisIsRegExp","patternIsRegExp","flagsAreUndefined","rawPattern","INDICES_SUPPORT","calls","expected","pairs","nativeTest","$toString","nativeToString","NOT_GENERIC","INCORRECT_NAME","difference","setMethodAcceptSetLike","intersection","INCORRECT","isDisjointFrom","isSubsetOf","isSupersetOf","symmetricDifference","union","forcedStringHTMLMethod","notARegExp","correctIsRegExpLogic","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","endsWith","searchString","endPosition","search","$fromCodePoint","fromCodePoint","INCORRECT_LENGTH","elements","STRING_ITERATOR","point","fixRegExpWellKnownSymbolLogic","advanceStringIndex","nativeMatch","maybeCallNative","matcher","rx","fullUnicode","matchStr","$padStart","WEBKIT_BUG","getSubstitution","replaceAll","searchValue","replaceValue","IS_REG_EXP","functionalReplace","searchLength","advanceBy","endOfLastMatch","maybeToString","REPLACE_KEEPS_$0","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","REPLACE_SUPPORTS_NAMED_GROUPS","UNSAFE_SUBSTITUTE","results","accumulatedResult","nextSourcePosition","replacerArgs","sameValue","SEARCH","nativeSearch","searcher","previousLastIndex","MAX_UINT32","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","BUGGY","SPLIT","nativeSplit","internalSplit","limit","splitter","unicodeMatching","lim","substr","intLength","intEnd","intStart","$trim","forcedStringTrimMethod","defineWellKnownSymbol","nativeObjectCreate","getOwnPropertyNamesExternal","defineSymbolToPrimitive","HIDDEN","QObject","nativeGetOwnPropertyNames","nativePropertyIsEnumerable","AllSymbols","ObjectPrototypeSymbols","USE_SETTER","findChild","fallbackDefineProperty","ObjectPrototypeDescriptor","setSymbolDescriptor","$defineProperties","properties","$create","IS_OBJECT_PROTOTYPE","useSetter","useSimple","NativeSymbol","EmptyStringDescriptionStore","SymbolWrapper","thisSymbolValue","symbolDescriptiveString","desc","NATIVE_SYMBOL_REGISTRY","StringToSymbolRegistry","SymbolToStringRegistry","sym","$ArrayCopyWithin","u$ArrayCopyWithin","$fill","CONVERSION_BUG","actualValue","fromSpeciesAndList","predicate","ArrayIterators","arrayValues","arrayKeys","arrayEntries","GENERIC","ITERATOR_IS_VALUES","typedArrayValues","$join","$reduceRight","$set","WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS","TO_OBJECT_BUG","ACCEPT_INCORRECT_ARGUMENTS","mod","begin","beginIndex","$toLocaleString","toLocaleString","TO_LOCALE_STRING_BUG","Uint8ArrayPrototype","arrayToString","IS_NOT_ARRAY_METHOD","createTypedArrayConstructor","arrayWith","PROPER_ORDER","InternalWeakMap","collectionWeak","isFrozen","isSealed","seal","IS_IE11","$WeakMap","WeakMapPrototype","nativeSet","hasMSEdgeFreezingBug","frozenArray","nativeDelete","nativeHas","nativeGet","arrayIntegrityLevel","disallowed","finalEq","$atob","BASIC","NO_SPACES_IGNORE","NO_ENCODING_CHECK","NO_ARG_RECEIVING_CHECK","WRONG_ARITY","atob","bs","$btoa","WRONG_ARG_CONVERSION","btoa","block","charCode","DOMIterables","handlePrototype","CollectionPrototype","COLLECTION_NAME","ArrayIteratorMethods","ArrayValues","DOMExceptionConstants","DOM_EXCEPTION","DATA_CLONE_ERR","NativeDOMException","NativeDOMExceptionPrototype","HAS_STACK","codeFor","$DOMException","DOMExceptionPrototype","createGetterDescriptor","INCORRECT_CONSTRUCTOR","INCORRECT_CODE","MISSED_CONSTANTS","FORCED_CONSTRUCTOR","PolyfilledDOMException","PolyfilledDOMExceptionPrototype","constant","constantName","ERROR_HAS_STACK","DOM_EXCEPTION_HAS_STACK","BUGGY_DESCRIPTOR","INCORRECT_VALUE","schedulersFix","setInterval","USE_NATIVE_URL","arraySort","URL_SEARCH_PARAMS","URL_SEARCH_PARAMS_ITERATOR","getInternalParamsState","nativeFetch","NativeRequest","RequestPrototype","HeadersPrototype","encodeURIComponent","plus","FALLBACK_REPLACER","VALID_HEX","parseHexOctet","getLeadingOnes","octet","mask","utf8Decode","octets","codePoint","decodedChar","byteSequenceLength","sequenceIndex","nextByte","replacements","serialize","URLSearchParamsIterator","URLSearchParamsState","parseObject","parseQuery","bindURL","entryIterator","entryNext","query","updateURL","URLSearchParamsConstructor","URLSearchParamsPrototype","$value","getAll","found","headersHas","headersSet","wrapRequestOptions","RequestConstructor","getState","$URLSearchParams","$delete","dindex","entriesLength","$has","EOF","arrayFrom","toASCII","URLSearchParamsModule","getInternalURLState","getInternalSearchParamsState","NativeURL","INVALID_AUTHORITY","INVALID_SCHEME","INVALID_HOST","INVALID_PORT","ALPHA","ALPHANUMERIC","DIGIT","HEX_START","OCT","DEC","HEX","FORBIDDEN_HOST_CODE_POINT","FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT","LEADING_C0_CONTROL_OR_SPACE","TRAILING_C0_CONTROL_OR_SPACE","TAB_AND_NEW_LINE","parseIPv4","partsLength","numbers","part","ipv4","parseIPv6","numbersSeen","ipv4Piece","swaps","swap","address","pieceIndex","compress","pointer","findLongestZeroSequence","ipv6","maxIndex","currStart","currLength","serializeHost","ignore0","C0ControlPercentEncodeSet","fragmentPercentEncodeSet","pathPercentEncodeSet","userinfoPercentEncodeSet","percentEncode","specialSchemes","ftp","file","http","https","ws","wss","isWindowsDriveLetter","startsWithWindowsDriveLetter","isSingleDot","segment","isDoubleDot","SCHEME_START","SCHEME","NO_SCHEME","SPECIAL_RELATIVE_OR_AUTHORITY","PATH_OR_AUTHORITY","RELATIVE","RELATIVE_SLASH","SPECIAL_AUTHORITY_SLASHES","SPECIAL_AUTHORITY_IGNORE_SLASHES","AUTHORITY","HOST","HOSTNAME","PORT","FILE","FILE_SLASH","FILE_HOST","PATH_START","PATH","CANNOT_BE_A_BASE_URL_PATH","QUERY","FRAGMENT","URLState","isBase","baseState","failure","urlString","stateOverride","codePoints","bufferCodePoints","seenAt","seenBracket","seenPasswordToken","scheme","password","fragment","cannotBeABaseURL","isSpecial","includesCredentials","encodedCodePoints","parseHost","shortenPath","cannotHaveUsernamePasswordPort","pathSize","setHref","getOrigin","URLConstructor","getProtocol","setProtocol","getUsername","setUsername","getPassword","setPassword","getHost","setHost","getHostname","setHostname","hostname","getPort","setPort","getPathname","setPathname","getSearch","setSearch","getSearchParams","getHash","setHash","URLPrototype","accessorDescriptor","nativeCreateObjectURL","createObjectURL","nativeRevokeObjectURL","revokeObjectURL","_arrayLikeToArray","__esModule","_assertThisInitialized","ReferenceError","isNativeReflectConstruct","possibleConstructorReturn","_construct","_defineProperties","unsupportedIterableToArray","_getPrototypeOf","_isNativeFunction","_isNativeReflectConstruct","assertThisInitialized","_possibleConstructorReturn","_setPrototypeOf","arrayLikeToArray","_unsupportedIterableToArray","isNativeFunction","asyncGeneratorStep","_throw","_objectSpread2","asyncIterator","toStringTag","Generator","Context","makeInvokeMethod","tryCatch","GeneratorFunction","GeneratorFunctionPrototype","defineIteratorMethods","_invoke","AsyncIterator","invoke","__await","callInvokeWithMethodAndArg","delegate","maybeInvokeDelegate","_sent","dispatchException","resultName","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","isGeneratorFunction","awrap","async","rval","handle","complete","finish","delegateYield","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","arrayWithHoles","iterableToArrayLimit","nonIterableRest","_superPropBase","_get","superPropBase","_superPropertyGet","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","arrayWithoutHoles","iterableToArray","nonIterableSpread","globalLocales","MINIMAL_RAW_EN_LOCALE","week","dow","doy","direction","buttonText","prevYear","nextYear","today","month","day","weekText","weekTextLong","closeHint","timeHint","eventHint","allDayText","moreLinkText","noEventsText","RAW_EN_LOCALE","buttonHints","unit","viewHint","navLinkHint","moreLinkHint","eventCnt","organizeRawLocales","explicitRawLocales","defaultCode","allRawLocales","rawLocaleMap","rawLocale","buildLocale","inputSingular","available","queryLocale","parseLocale","codeArg","codes","queryRawLocale","toLocaleLowerCase","simpleId","simpleNumberFormat","Intl","NumberFormat","createPlugin","guid","premiumReleaseDate","reducers","isLoadingFuncs","contextInit","eventRefiners","eventDefMemberAdders","eventSourceRefiners","isDraggableTransformers","eventDragMutationMassagers","eventDefMutationAppliers","dateSelectionTransformers","datePointTransforms","dateSpanTransforms","views","viewPropsTransformers","isPropsValid","externalDefTransforms","viewContainerAppends","eventDropTransformers","componentInteractions","calendarInteractions","themeClasses","eventSourceDefs","cmdFormatter","recurringTypes","namedTimeZonedImpl","initialView","elementDraggingImpl","optionChangeHandlers","scrollGridImpl","listenerRefiners","optionRefiners","propSetHandlers","buildPluginHooks","pluginDefs","globalDefs","currentPluginIds","addDefs","defs","pluginName","currentId","combineHooks","buildBuildPluginHooks","currentHooks","currentOverrideDefs","currentGlobalDefs","overrideDefs","isArraysEqual","hooks0","hooks1","compareOptionalDates","date0","date1","StandardTheme","_Theme","Theme","compileViewDefs","defaultConfigs","overrideConfigs","viewType","ensureViewDef","viewDef","buildViewDef","defaultConfig","overrideConfig","queryProp","theComponent","superType","superDef","defaults","rawOptions","overrides","parseViewConfigs","inputs","mapHash","parseViewConfig","createViewHookComponent","BaseComponent","viewProps","ViewContextType","ContentContainer","elTag","elClasses","buildViewClassNames","viewSpec","renderProps","nextDayThreshold","generatorName","customGenerator","classNameGenerator","classNames","didMount","willUnmount","buildViewSpecs","defaultInputs","optionOverrides","dynamicOptionOverrides","localeDefaults","viewDefs","buildViewSpec","durationInput","durationUnit","singleUnit","singleUnitOverrides","createDurationCached","denom","greatestDurationDenominator","queryButtonText","optionsSubset","buttonTextMap","buttonTextKey","queryButtonTitle","buttonKey","optionDefaults","buttonTextOverride","buttonTextDefault","BASE_OPTION_DEFAULTS","buttonTitleOverride","buttonHint","buttonTitleDefault","classes","tableCellShaded","buttonGroup","button","buttonActive","baseIconClass","iconClasses","rtlIconClasses","iconOverrideOption","iconOverrideCustomButtonOption","iconOverridePrefix","durationInputMap","createDuration","reduceViewType","action","reduceDynamicOptionOverrides","optionName","rawOptionValue","reduceDateProfile","currentDateProfile","currentDate","dateProfileGenerator","dp","build","dateMarker","buildPrev","isValid","buildNext","initEventSources","calendarOptions","dateProfile","activeRange","addSources","parseInitialSources","reduceEventSources","eventSources","sources","removeSource","sourceId","fetchDirtySources","fetchSourcesByIds","sourceIds","arrayToHash","excludeStaticSources","isRefetch","receiveResponse","fetchId","fetchRange","reduceEventSourcesNewTimeZone","computeEventSourcesLoading","isFetching","eventSourceHash","_step3","_iterator3","filterHash","eventSource","sourceHash","isSourceDirty","doesSourceNeedRange","lazyFetching","latestFetchId","prevSources","sourceIdHash","nextSources","fetchSource","calendarApi","sourceDef","pluginHooks","sourceDefId","range","rawEvents","eventSourceSuccess","success","dispatch","errorHandled","eventSourceFailure","refiners","buildEventSourceRefiners","rawSources","initialEvents","events","_step4","_iterator4","rawSource","parseEventSource","ignoreRange","reduceDateSelection","currentSelection","selection","reduceSelectedEvent","currentInstanceId","eventInstanceId","reduceEventDrag","currentDrag","newDrag","affectedEvents","mutatedEvents","isEvent","reduceEventResize","currentResize","newResize","parseToolbars","calendarOptionOverrides","theme","viewSpecs","headerToolbar","parseToolbar","footer","footerToolbar","sectionStrHash","sectionWidgets","viewsWithButtons","hasTitle","sectionName","sectionStr","sectionRes","parseSection","widgets","isRtl","calendarCustomButtons","customButtons","calendarButtonTextOverrides","calendarButtonText","calendarButtonHintOverrides","calendarButtonHints","sectionSubstrs","buttonGroupStr","buttonName","customButtonProps","buttonClick","buttonIcon","ev","click","getCustomButtonIconClass","getIconClass","changeView","textFallback","formatWithOrdinals","prevOrNext","navUnit","ViewImpl","getCurrentData","dateEnv","viewTitle","toDate","currentRange","eventSourceDef$2","parseMeta","refined","successCallback","arrayEventSourcePlugin","eventSourceDef$1","errorCallback","unpromisify","buildRangeApiWithTimeZone","funcEventSourcePlugin","JSON_FEED_EVENT_SOURCE_REFINERS","extraParams","identity","startParam","endParam","timeZoneParam","eventSourceDef","format","requestParams","buildRequestParams","requestJson","jsonFeedEventSourcePlugin","customRequestParams","formatIso","timeZone","SIMPLE_RECURRING_REFINERS","daysOfWeek","startTime","endTime","startRecur","endRecur","recurring","recurringData","createMarker","subtractDurations","allDayGuess","typeData","expand","framingRange","clippedFramingRange","intersectRanges","expandRanges","simpleRecurringEventsPlugin","dowHash","dayMarker","startOfDay","endMarker","instanceStarts","instanceStart","getUTCDay","addDays","changeHandlerPlugin","handleEventSources","unfoundSources","hashValuesToArray","_raw","_step5","newInputs","_iterator5","inputFound","_step6","_iterator6","unfoundSource","_i","_newInputs","newInput","addEventSource","handleDateProfile","emitter","viewApi","handleEventStore","eventStore","hasHandlers","buildEventApis","globalPlugins","TaskRunner","runTaskOption","drainedOption","delayedRunner","DelayedRunner","drain","delay","force","completedTasks","runTask","drained","buildTitle","viewOptions","currentRangeUnit","formatRange","createFormatter","titleFormat","buildTitleFormat","isEndExclusive","isRangeAllDay","defaultSeparator","titleRangeSeparator","days","diffWholeDays","CalendarDataManager","computeCurrentViewData","memoize","_computeCurrentViewData","buildDateEnv","buildDateEnv$1","buildTheme","buildDateProfileGenerator","memoizeObjArg","buildViewApi","buildViewUiProps","buildEventUiBySource","isPropsEqual","buildEventUiBases","parseContextBusinessHours","Emitter","actionRunner","_handleAction","updateData","currentCalendarOptionsInput","currentCalendarOptionsRefined","currentViewOptionsInput","currentViewOptionsRefined","currentCalendarOptionsRefiners","optionsForRefining","optionsForHandling","optionsData","computeOptionsData","currentViewType","currentViewData","currentDataManager","setThisContext","setOptions","getInitialDate","rangeContainsMarker","_step7","calendarContext","_iterator7","_step8","initialState","businessHours","eventUiBases","createEmptyEventStore","renderableEventStore","dateSelection","eventSelection","eventDrag","eventResize","selectionConfig","contextAndState","_iterator8","reducer","computeIsLoading","changedOptionNames","_this$optionsForRefin","reduceCurrentDate","_step9","reduceEventStore","isEventsLoading","progressiveEventRendering","_this$buildViewUiProp","eventUiSingleBase","eventUiBySource","newState","_iterator9","wasLoading","isLoading","onAction","oldData","changeHandlers","oldCalendarOptions","newCalendarOptions","rezoneEventStoreDates","onData","stableOptionOverrides","stableDynamicOptionOverrides","stableCalendarOptionsData","_this$processRawCalen","processRawCalendarOptions","refinedOptions","availableLocaleData","warnUnknownOptions","locale","weekNumberCalculation","firstDay","defaultRangeSeparator","toolbarConfig","availableRawLocales","_this$optionsForHandl","_mergeRawOptions","mergeRawOptions","locales","plugins","BASE_OPTION_REFINERS","CALENDAR_LISTENER_REFINERS","CALENDAR_OPTION_REFINERS","currentRaw","currentRefined","anyChanges","COMPLEX_OPTION_COMPARATORS","_this$processRawViewO","processRawViewOptions","dateProfileGeneratorClass","usesMinMaxTime","slotMinTime","slotMaxTime","showNonCurrentDates","dayCount","dateAlignment","dateIncrement","hiddenDays","weekends","nowInput","validRangeInput","validRange","visibleRangeInput","visibleRange","fixedWeekCount","VIEW_OPTION_REFINERS","explicitLocale","DateEnv","calendarSystem","namedTimeZoneImpl","ThemeClass","themeSystem","DateProfileGeneratorClass","DateProfileGenerator","ui","eventDefs","defId","createEventUi","eventDisplay","editable","startEditable","eventStartEditable","durationEditable","eventDurationEditable","constraint","eventConstraint","overlap","eventOverlap","allow","eventAllow","backgroundColor","eventBackgroundColor","borderColor","eventBorderColor","textColor","eventTextColor","color","eventColor","selectConstraint","selectOverlap","selectAllow","_step10","_iterator10","isLoadingFunc","parseBusinessHours","viewName","ToolbarSection","_BaseComponent","widgetGroups","widgetGroup","renderWidgetGroup","_step11","isOnlyButtons","_iterator11","widget","titleId","title","isPressed","activeButton","isDisabled","isTodayEnabled","isPrevEnabled","isNextEnabled","buttonClasses","getClass","onClick","role","groupClassName","Toolbar","_BaseComponent2","startContent","endContent","_this$props","model","extraClassName","forceLtr","centerContent","center","renderSection","ViewHarness","_BaseComponent3","_this3","availableWidth","handleEl","elRef","updateAvailableWidth","handleResize","aspectRatio","liquid","height","paddingBottom","labeledById","addResizeHandler","removeResizeHandler","offsetWidth","EventClicking","_Interaction","settings","_this4","handleSegClick","segEl","_this5","seg","getElSeg","isValidSegDownEl","hasUrlContainer","elementClosest","EventImpl","eventRange","jsEvent","destroy","listenBySelector","Interaction","EventHovering","_Interaction2","_this6","handleEventElRemove","currentSegEl","handleSegLeave","handleSegEnter","triggerEvent","removeHoverListeners","listenToHoverBySelector","publicEvName","CalendarContent","_PureComponent","_this7","buildViewContext","buildViewPropTransformers","buildToolbarProps","headerRef","footerRef","interactionsStore","viewLabelId","getUniqueDomId","registerInteractiveComponent","settingsInput","parseInteractionSettings","DEFAULT_INTERACTIONS","interactionClasses","interactions","TheInteractionClass","interactionSettingsStore","unregisterInteractiveComponent","listeners","_step12","_iterator12","resizeRunner","handleWindowResize","windowResizeDelay","viewAspectRatio","toolbarProps","viewVGrow","viewHeight","isHeightAuto","forPrint","contentHeight","viewContext","renderView","buildAppendContent","CalendarInteractionClass","propName","_step13","_iterator13","interaction","_step14","transformers","_iterator14","transformer","transform","ViewComponent","PureComponent","todayInfo","prevInfo","nextInfo","theClasses","TheClass","Calendar","_CalendarImpl","_this8","isRendering","isRendered","currentClassNames","customContentRenderId","handleAction","renderRunner","tryDrain","handleData","currentData","rerenderDelay","handleRenderRequest","_this9","flushSync","CalendarRoot","setClassNames","setHeight","RenderId","ensureElHasStyles","wasRendering","updateSize","_this10","_superPropGet","resetOptions","_step15","_iterator15","_step16","_iterator16","applyStyleProp","CalendarImpl","queriedNonceValue","styleTexts","styleEls","injectStyles","styleText","styleEl","appendStylesTo","isConnected","getRootNode","registerStylesRoot","rootNode","nonce","getNonceValue","parentEl","hydrateStylesRoot","sheet","ruleCnt","cssRules","styleStr","insertRule","queryNonceValue","metaWithNonce","hasAttribute","elWithNonce","css_248z","isRunning","pauseDepths","timeoutId","isPaused","_clearTimeout","removeElement","closest","documentElement","contains","elementMatches","parentElement","matchesSelector","msMatchesSelector","findElements","containers","allMatches","querySelectorAll","PIXEL_PROP_RE","applyStyle","getEventTargetViaRoot","composedPath","guid$1","buildDelegationHandler","matchedChild","eventType","attachedHandler","onMouseEnter","onMouseLeave","currentMatchedChild","mouseOverEv","realOnMouseLeave","mouseLeaveEv","createAriaClickAttrs","createAriaKeyboardAttrs","tabIndex","onKeyDown","preventDefault","guidNumber","parseFieldSpecs","token","specs","tokens","field","substring","order","compareByFieldSpecs","obj0","obj1","fieldSpecs","cmp","compareByFieldSpec","fieldSpec","flexibleCompare","localeCompare","formatter","fallbackText","isInt","computeSmallestCellWidth","cellEl","allWidthEl","contentWidthEl","getBoundingClientRect","width","PARSE_RE","parseString","years","months","hours","hour","minutes","minute","seconds","millisecond","ms","weeks","specifiedWeeks","durationsEqual","d0","d1","asRoughYears","dur","asRoughDays","asRoughMonths","asRoughMs","a0","a1","equalityFunc","DAY_IDS","addWeeks","dateToUtcArray","arrayToUtcDate","addMs","diffWeeks","m0","m1","diffDays","diffHours","diffMinutes","diffSeconds","diffDayAndTime","m0day","m1day","diffWholeWeeks","timeAsMs","startOfHour","startOfMinute","startOfSecond","weekOfYear","marker","weekOfGivenYear","nextW","firstWeekStart","firstWeekOffset","dayStart","fwd","fwdlw","dateToLocalArray","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","arrayToLocalDate","UTC","isValidDate","buildIsoString","timeZoneOffset","stripZeroTime","formatTimeZoneOffset","formatDayString","formatIsoMonthStr","doIso","mins","workerFunc","resEquality","teardownFunc","currentArgs","currentRes","newArgs","currentArg","newArg","EXTENDED_SETTINGS_AND_SEVERITIES","omitZeroMinute","meridiem","omitCommas","STANDARD_DATE_PROP_SEVERITIES","timeZoneName","era","weekday","MERIDIEM_RE","COMMA_RE","MULTI_SPACE_RE","LTR_RE","UTC_RE","NativeFormatter","formatSettings","standardDateProps","extendedSettings","severity","buildFormattingFunc","betterDefaultSeparator","diffSeverity","computeMarkerDiffSeverity","biggestUnitForPartial","full0","full1","partialDateProps","computePartialFormattingOptions","partialFormattingFunc","partial0","partial1","insertion","findCommonInsertion","after","standardDatePropCnt","formatWeekNumber","computeWeekNumber","buildNativeFormattingFunc","sanitizeSettings","zeroFormat","normalFormat","DateTimeFormat","zeroProps","postProcess","injectTzoStr","tzoStr","replaced","num","ca","getMarkerYear","getMarkerMonth","getMarkerDay","biggestUnit","partialOptions","i0","found0","before0","after0","i1","found1","before1","after1","expandZonedMarker","dateInfo","markerToArray","createVerboseFormattingArg","startInfo","endInfo","localeCodes","CmdFormatter","cmdStr","FuncFormatter","navLinkDayClick","navLinkWeekClick","bootstrapFontAwesome","buttonIcons","defaultAllDayEventDuration","defaultTimedEventDuration","scrollTime","scrollTimeReset","dayPopoverFormat","slotDuration","snapDuration","forceEventDuration","dayHeaders","dayHeaderFormat","dayHeaderClassNames","dayHeaderContent","dayHeaderDidMount","dayHeaderWillUnmount","dayCellClassNames","dayCellContent","dayCellDidMount","dayCellWillUnmount","weekNumbers","weekNumberClassNames","weekNumberContent","weekNumberDidMount","weekNumberWillUnmount","viewClassNames","viewDidMount","viewWillUnmount","nowIndicator","nowIndicatorClassNames","nowIndicatorContent","nowIndicatorDidMount","nowIndicatorWillUnmount","dragRevertDuration","dragScroll","allDayMaintainDuration","unselectAuto","dropAccept","eventOrder","eventOrderStrict","longPressDelay","eventDragMinDistance","expandRows","weekNumberFormat","eventResizableFromStart","displayEventTime","displayEventEnd","initialDate","eventDataTransform","stickyHeaderDates","stickyFooterScrollbar","defaultAllDay","eventClassNames","eventContent","eventDidMount","eventWillUnmount","droppable","unselectCancel","slotLabelFormat","slotLaneClassNames","slotLaneContent","slotLaneDidMount","slotLaneWillUnmount","slotLabelClassNames","slotLabelContent","slotLabelDidMount","slotLabelWillUnmount","dayMaxEvents","dayMaxEventRows","dayMinWidth","slotLabelInterval","allDayClassNames","allDayContent","allDayDidMount","allDayWillUnmount","slotMinWidth","navLinks","eventTimeFormat","selectMinDistance","selectable","selectLongPressDelay","eventLongPressDelay","selectMirror","eventMaxStack","eventMinHeight","eventMinWidth","eventShortHeight","slotEventOverlap","eventInteractive","moreLinkClick","moreLinkClassNames","moreLinkContent","moreLinkDidMount","moreLinkWillUnmount","monthStartFormat","handleCustomRendering","customRenderingMetaMap","customRenderingReplaces","datesSet","eventsSet","eventAdd","eventChange","eventRemove","windowResize","eventClick","eventMouseEnter","eventMouseLeave","unselect","loading","_unmount","_beforeprint","_afterprint","_noEventDrop","_noEventResize","_resize","_scrollRequest","isMaybeObjectsEqual","isMaybeArraysEqual","optionSets","refineProps","propObjs","complexPropsMap","dest","complexObjs","filtered","newHash","HANDLER_RE","isNonHandlerPropsEqual","getUnequalProps","compareObjs","equalityFuncs","isObjValsEqual","val0","val1","comparator","collectFromHash","startIndex","endIndex","calendarSystemClassMap","registerCalendarSystem","theClass","createCalendarSystem","GregorianCalendarSystem","ISO_RE","isTimeUnspecified","isNamedTimeZone","canComputeOffset","weekDow","weekDoy","weekNumberFunc","createMarkerMeta","timestampToMarker","forcedTzo","arrayToMarker","diffWholeYears","diffWholeMonths","diff","startOfYear","startOfMonth","startOfWeek","dateOptions","offsetForMarker","forcedStartTzo","forcedEndTzo","omitTimeZoneOffset","omitTime","timestampToArray","getTimezoneOffset","offsetForArray","setIconOverride","iconOverrideHash","iconClassesCopy","applyIconOverridePrefix","prefix","runBeforeFlush","oldDebounceRendering","preact","callbackQ","execCallbackSync","FakeComponent","_preact$Component","createContext","ContextType","origProvider","isNew","old","ScrollResponder","execFunc","handleScrollRequest","queuedRequest","fireInitialScroll","isDatesNew","time","createScrollResponder","_Component","nextState","debug","propEquality","stateEquality","addPropsEquality","addStateEquality","ContentInjector","queuedDomNodes","currentDomNodes","hasCustomRenderingHandler","updateElRef","innerContent","currentGeneratorMeta","defaultGenerator","buildElAttrs","useDefault","customGeneratorRes","domNodes","isValidElement","applyQueueudDomNodes","triggerCustomRendering","isActive","_context$options","generatorMeta","containerEl","reportNewContainerEl","isTruthy","newNode","extraClassNames","elAttrs","elStyle","_Component2","InnerContent","InnerContentInjector","didMountMisfire","generatedClassNames","generateClassNames","renderId","containerComponent","parentProps","ViewContainer","parseRange","invertRanges","ranges","constraintRange","dateRange","invertedRanges","compareRanges","range0","range1","newRange","rangesIntersect","constrainMarkerToRange","computeAlignedDayRange","timedRange","dayCnt","computeVisibleDayRange","startDay","endDay","endTimeMS","diffDates","largeUnit","initialDateInput","createNowMarker","nowDate","initHiddenDays","forceToValid","prevDate","subtract","startOf","nextDate","currentInfo","renderRange","buildValidRange","trimHiddenDays","buildCurrentRangeInfo","buildRenderRange","adjustActiveRange","buildDateIncrement","simpleInput","refineRange","buildRangeFromDuration","buildRangeFromDayCount","buildCustomVisibleRange","greatestWholeUnit","getFallbackDuration","_this$props2","computeRes","isHiddenDay","skipHiddenDays","_this$props3","runningCount","customAlignment","rangeInput","isHiddenDayHash","isExclusive","createEventInstance","instanceId","parseRecurring","parsed","allDay","typeId","expandRecurring","instances","recurringDef","starts","expandRecurringRanges","eventDef","typeDef","markers","EVENT_NON_DATE_REFINERS","groupId","interactive","EVENT_DATE_REFINERS","EVENT_REFINERS","extendedProps","parseEvent","allowOpenRange","buildEventRefiners","defIdMap","instanceIdMap","_refineEventDef","refineEventDef","computeIsDefaultAllDay","recurringRes","parseEventDef","singleRes","parseSingle","hasEnd","publicId","EVENT_UI_REFINERS","memberAdder","startMeta","endMeta","startMarker","startInput","parseEvents","rawEvent","tuple","eventTupleToStore","getRelevantEvents","newStore","filterEventStoreDefs","lookDef","isEventDefsGrouped","def0","def1","mergeEventStores","store0","store1","filterFunc","excludeSubEventStore","master","filteredDefs","filteredInstances","normalizeConstraint","parseClassNames","EMPTY_EVENT_UI","constraints","allows","combineEventUis","uis","combineTwoEventUis","item0","item1","EVENT_SOURCE_REFINERS","rawObj","_refineProps","metaRes","buildEventSourceMeta","receiveRawEvents","resetRawEvents","addEvent","excludeEventsBySourceId","subset","transformRawEvents","existingEventStore","_buildPublicIdMaps","buildPublicIdMaps","newEventStore","calEachTransform","sourceEachTransform","transformEachRawEvent","refinedEvents","refinedEvent","expandRange","oldDateEnv","newDateEnv","handlers","thisContext","addToHash","removeFromHash","attachedHandlers","optionHandler","DEF_DEFAULTS","refineInputs","rawDefs","rawDef","triggerDateSelect","pev","buildDateSpanApiWithContext","origEvent","triggerDateUnselect","dateSpan","buildDateSpanApi","getDefaultEventEnd","applyMutationToEventStore","eventConfigBase","mutation","eventConfigs","compileEventUis","applyMutationToEventDef","applyMutationToEventInstance","eventConfig","standardProps","startDelta","endDelta","copy","applier","eventInstance","forceAllDay","clearEnd","datesDelta","EventSourceImpl","internalEventSource","_def","mutate","instanceRange","granularity","maintainDuration","endInput","deltaInput","formatInput","_context$getCurrentDa","relevantEvents","oldEvent","relatedEvents","revert","asStore","eventApiToStore","startStr","endStr","collapseColor","collapseExtendedProps","toPlainObject","eventApi","excludeInstance","eventApis","excludeInstanceId","sliceEventStore","inverseBgByGroupId","inverseBgByDefId","defByGroupId","bgRanges","fgRanges","eventUis","origRange","normalRange","slicedRange","isStart","isEnd","invertedRange","bg","fg","setElSeg","fcSeg","compileEventUi","sortEventSegs","segs","eventOrderSpecs","objs","buildSegCompareObj","_seg","computeSegDraggable","_seg$eventRange","computeSegStartResizable","computeSegEndResizable","buildSegTimeText","timeFormat","defaultDisplayEventTime","defaultDisplayEventEnd","startOverride","endOverride","wholeEventStart","wholeEventEnd","segStart","segEnd","isStartDay","isEndDay","getSegMeta","todayRange","segRange","isPast","isFuture","isToday","getEventClassNames","isMirror","isDraggable","isStartResizable","isEndResizable","isDragging","isResizing","isSelected","buildEventRangeKey","getSegAnchorAttrs","_seg$eventRange2","STANDARD_PROPS","parseDateSpan","defaultDuration","span","parseOpenDateSpan","_refineProps2","buildRangeApi","fabricateEventRange","normalizedSuccessCallback","normalizedFailureCallback","isResolved","wrappedSuccess","wrappedFailure","canVGrowWithinCell","JsonRequestError","fetchOptions","fetchRes","parsedResponse","getCanVGrowWithinCell","computeCanVGrowWithinCell","top","div","possible","offsetHeight","handleBeforePrint","handleAfterPrint","isHitComboAllowed","useEventCenter","_this$currentDataMana","dateOrRange","batchRendering","_this10$getCurrentDat","spec","getUnitViewSpec","_this$getCurrentData","viewTypes","addYears","zonedDateInput","_this$getCurrentData2","_this$getCurrentData3","_this$getCurrentData4","dateOrObj","endDate","selectionInput","eventInput","sourceInput","triggerEventAdd","_hashValuesToArray","_hashValuesToArray2","sourceApi","getEventSourceById","newEventApi","_this11","_this$getCurrentData5","_state$eventStore","sourceApis","internalId","timeInput","intersectRects","rect1","rect2","bottom","getDateMeta","isOther","getDayClassNames","DAY_FORMAT","WEEK_FORMAT","buildNavLinkAttrs","isTabbable","dateStr","zonedDate","handleInteraction","customAction","zoomTo","_scrollbarWidths","getScrollbarWidths","computeScrollbarWidths","overflow","computeScrollbarWidthsForEl","clientHeight","clientWidth","computeClippedClientRect","_step19","clippingParents","getClippingParents","rect","_iterator19","clippingParent","parents","computedStyle","getComputedStyle","overflowY","overflowX","PositionCache","originEl","els","isHorizontal","isVertical","originClientRect","buildElHorizontals","buildElVerticals","originClientLeft","_step20","lefts","rights","_iterator20","originClientTop","_step21","tops","bottoms","_iterator21","leftPosition","topPosition","leftIndex","topIndex","otherCache","similarNumArrays","DateComponent","_BaseComponent4","_this15","positionLeft","positionTop","elWidth","elHeight","SegHierarchy","getEntryThickness","thickness","strictOrder","allowReslicing","maxCoord","maxStackCnt","levelCoords","entriesByLevel","stackCnts","_step22","hiddenEntries","_iterator22","insertEntry","findInsertion","isInsertionValid","insertEntryAt","handleInvalidInsertion","levelCoord","stackCnt","touchingEntry","hiddenEntry","intersectSpans","splitEntry","barrier","entrySpan","barrierSpan","lateral","insertAt","level","buildEntryKey","newEntry","levelCnt","candidateCoord","touchingLevel","touchingLateral","trackingLevel","trackingCoord","trackingEntries","trackingEntry","searchRes","binarySearch","getEntrySpanEnd","lateralIndex","trackingEntryBottom","destLevel","destLateral","rects","_step23","_iterator23","span0","span1","searchVal","getItemVal","middleIndex","middleVal","computeFallbackHeaderFormat","datesRepDistinctDays","CLASS_NAME","renderInner$1","TableDateCell","_BaseComponent5","_this$context","dayMeta","navLinkAttrs","colCnt","extraRenderProps","colSpan","extraDataAttrs","InnerContainer","isSticky","WEEKDAY_FORMAT","TableDowCell","_BaseComponent6","_this$context2","dateMeta","NowTimer","_Component3","_this16","initialNowDate","initialNowQueriedMs","computeTiming","currentState","unroundedNow","currentUnitStart","nextUnitStart","waitMs","buildDayRange","_setTimeout","_this17","_this$computeTiming","_clearTimeout2","DayHeader","_BaseComponent7","_this18","createDayHeaderFormatter","_this$props4","dates","renderIntro","explicitFormat","dateCnt","DaySeriesModel","indices","dayIndex","cnt","firstIndex","getDateDayIndex","clippedFirstIndex","clippedLastIndex","dayOffset","DayTableModel","daySeries","breakOnWeeks","daysPerRow","rowCnt","cells","buildCells","headerDates","buildHeaderDates","rows","row","col","buildCell","seriesSeg","sliceRange","firstCol","lastCol","Slicer","sliceBusinessHours","_sliceBusinessHours","sliceDateSelection","_sliceDateSpan","_sliceEventStore","sliceEventDrag","_sliceInteraction","sliceEventResize","forceDayIfListItem","extraArgs","eventSegs","dateSelectionSegs","businessHourSegs","fgEventSegs","bgEventSegs","computeActiveRange","rangeRes","_key12","sliceEventRanges","_key13","affectedInstances","activeDateSpanRange","_key14","_step26","_iterator26","eventRanges","_step27","_iterator27","sliceEventRange","_step28","_iterator28","isComponentAllDay","VISIBLE_HIDDEN_RE","Scroller","_BaseComponent8","_this19","liquidIsAbsolute","isAbsolute","overcomeLeft","overcomeRight","overcomeBottom","marginLeft","marginRight","marginBottom","maxHeight","realClientWidth","getYScrollbarWidth","childEl","realClientHeight","getXScrollbarWidth","RefMap","masterCallback","_this20","currentMap","depths","callbackMap","handleValue","added","_this21","refCallback","computeShrinkWidth","chunkEls","_step33","shrinkCells","largestWidth","_iterator33","shrinkCell","getSectionHasLiquidHeight","sectionConfig","getAllowYScrolling","renderChunkContent","chunkConfig","isHeader","tableClassName","syncRowHeights","minWidth","tableMinWidth","tableColGroupNode","rowContent","isColPropsEqual","cols0","cols1","renderMicroColGroup","cols","shrinkWidth","_step34","colNodes","_iterator34","colProps","sanitizeShrinkWidth","hasShrinkWidth","_step35","_iterator35","getScrollGridClassNames","getSectionClassNames","wholeTableVGrow","renderScrollShim","getStickyHeaderDates","getStickyFooterScrollbar","SimpleScrollGrid","_BaseComponent9","_this22","processCols","scrollerRefs","scrollerElRefs","_handleScrollerEl","forceYScrollbars","scrollerClientWidths","scrollerClientHeights","handleSizing","safeSetState","computeScrollerDims","sectionConfigs","sections","microColGroupNode","collapsibleWidth","currentConfig","configCnt","configI","headSectionNodes","bodySectionNodes","footSectionNodes","isBuggy","roleAttrs","outerContent","renderChunkTd","chunk","_this$state","needsYScrolling","isLiquid","sectionKey","rowSyncHeights","reportRowHeightChange","scrollerEl","section","getSectionByKey","scrollerElRef","scrollbarWidth","scroller","_step36","_iterator36","harnessEl","_step37","_iterator37","EventContainer","_BaseComponent10","_this23","timeText","disableDragging","disableResizing","isDateSelecting","StandardEvent","_BaseComponent11","defaultTimeFormat","renderInnerContent$1","eventContentArg","innerProps","DAY_NUM_FORMAT","DayCellContainer","_BaseComponent12","_this24","refineRenderProps","isMonthStart","showDayNumber","hasCustomDayCellContent","dayNumberText","BgEvent","_BaseComponent13","renderInnerContent","renderFill","fillType","WeekNumberContainer","defaultFormat","renderInner","PADDING_FROM_VIEWPORT","Popover","_BaseComponent14","_this25","handleRootEl","rootEl","handleDocumentMouseDown","handleCloseClick","handleDocumentKeyDown","onClose","_this$context3","createPortal","extraAttrs","_this$props5","alignmentEl","alignGridTop","alignmentRect","popoverDims","popoverTop","popoverLeft","offsetParent","MorePopover","_DateComponent","_this26","_this$context4","startDate","forceTimed","extraDateSpan","dayEl","layer","MoreLinkContainer","_BaseComponent15","_this27","isPopoverOpen","popoverId","handleLinkEl","linkEl","handleClick","_this28","computeRange","buildPublicSeg","_seg$eventRange3","allDayDate","allSegs","hiddenSegs","handlePopoverClose","_this29","moreCnt","shortText","renderMoreLinkInner","alignmentElRef","popoverContent","updateParentEl","computeEarliestSegStart","computeLatestSegEnd","pickEarliestStart","seg0","seg1","pickLatestEnd","Store","_step38","_iterator38","CustomRenderingStore","_Store","_this30","customRendering","TableView","headerElRef","headerRowContent","bodyContent","ScrollGrid","chunks","colGroups","splitSegsByRow","byRow","splitSegsByFirstCol","byCol","splitInteractionByRow","DEFAULT_TABLE_EVENT_TIME_FORMAT","hasListItemDisplay","TableBlockEvent","TableListItemEvent","TableCellMoreLink","compileSegs","_this$compileSegs","singlePlacements","invisibleSegs","isForcedInvisible","visibility","placement","isVisible","DEFAULT_WEEK_NUM_FORMAT","TableCell","_DateComponent2","rootElRef","dayNumberId","shouldDisplayMonthStart","renderTopInner","innerElRef","minHeight","showWeekNumber","forceDayTop","fgContentElRef","fgContent","marginTop","moreMarginTop","bgContent","currentStart","currentEnd","currentEndIncl","currentFirstYear","currentFirstMonth","currentLastYear","currentLastMonth","getDay","generateSegKey","generateSegUid","computeFgSegPlacement","segHeights","maxContentHeight","hierarchy","DayGridSegHierarchy","segEntry","segUid","hiddenConsumes","segInputs","unknownHeightSegs","eventHeight","addSegs","segRects","toRects","_placeRects","placeRects","singleColPlacements","multiColPlacements","leftoverMargins","moreCnts","moreMarginTops","_i2","_unknownHeightSegs","absoluteTop","resliceSeg","hiddenSpan","allRects","rectsByEachCol","groupRectsByEachCol","currentHeight","currentMarginTop","multiPlacements","isFirstCol","spanStart","spanEnd","_SegHierarchy","forceHidden","excludeHidden","touchingEntryId","hiddenEntryId","TableRow","_DateComponent3","cellElRefs","frameElRefs","fgElRefs","segHarnessRefs","framePositions","updateSizing","businessHoursByCol","bgEventSegsByCol","highlightSegsByCol","getHighlightSegs","mirrorSegsByCol","getMirrorSegs","_computeFgSegPlacemen","cell","normalFgNodes","renderFgSegs","mirrorFgNodes","buildMirrorPlacements","showDayNumbers","showWeekNumbers","renderFillSegs","cellMinHeight","prevState","currentProps","segPlacements","nodes","leftRightCss","isExternalSizingChange","frameEls","newPositionCache","similarTo","oldSegHeights","newSegHeights","querySegHeights","limitByContentHeight","computeMaxContentHeight","segElMap","firstKey","fcContainerEl","elMap","mirrorSegs","colPlacements","topsByInstanceId","buildAbsoluteTopHash","placements","TableRows","_DateComponent4","splitBusinessHourSegs","splitBgEventSegs","splitFgEventSegs","splitDateSelectionSegs","splitEventDrag","splitEventResize","rowRefs","businessHourSegsByRow","bgEventSegsByRow","fgEventSegsByRow","dateSelectionSegsByRow","eventDragByRow","eventResizeByRow","renderRowIntro","isSegAllDay","firstCellEl","getCellEls","rowPositions","collect","rowObj","colPositions","leftToIndex","topToIndex","getCellRange","getCellEl","Table","_DateComponent5","needsScrollReset","limitViaBalanced","colGroupNode","requestScrollReset","flushScrollReset","subjectEl","getScrollSubjectEl","scrollEl","scrollTop","DayTableSlicer","_Slicer","dayTableModel","DayTable","_DateComponent6","_this12","slicer","tableRef","sliceProps","headerAlignElRef","DayTableView","_TableView","_this13","buildDayTableModel","_this14","headerContent","contentArg","renderHScrollLayout","renderSimpleLayout","TableDateProfileGenerator","_DateProfileGenerator","buildDayTableRenderRange","snapToWeek","endOfWeek","lastMonthRenderStart","dayGrid","dayGridDay","dayGridWeek","dayGridMonth","dayGridYear","API_BASE","googleCalendarId","parseGoogleCalendarId","googleCalendarApiKey","googleCalendarApiBase","_arg$context","apiKey","buildUrl","extraParamsObj","gcalItemsToRawEventDefs","apiBase","timeMin","timeMax","singleEvents","maxResults","gcalTimezone","gcalItemToRawEventDef","htmlLink","injectQsComponent","summary","dateTime","attachments","extendedProperties","whole","qs","OPTION_REFINERS","OPTION_IS_COMPLEX","resources","FullCalendar","customRenderingMap","getApi","getSecret","calendar","buildOptions","suppliedOptions","_objectSpread","kebabToCamelKeys","customRenderingNodes","CustomRenderingComponent","customRenderingStore","needCustomRenderingResize","resumeRendering","buildWatchers","inst","watchers","pauseRendering","_loop","complexOptionName","newMap","kebabToCamel","word","IdxStatus","AuthenticatorKey","IdxFeature","isAuthenticator","getNativeConsole","getConsole","nativeConsole","groupEnd","removeNils","cleaned","omit","newobj","getLink","linkName","altName","_links","genRandomString","randomCharset","cl","split2","delim","isAbsoluteUrl","toAbsoluteUrl","baseUrl","removeTrailingSlash","toQueryString","trimmed","CustomError","_CustomError","msg","errorCode","errorSummary","errorLink","errorId","errorCauses","generateState","generateNonce","getIssuer","sdk","issuer","getOAuthBaseUrl","getOAuthDomain","getOAuthUrls","authorizeUrl","userinfoUrl","tokenUrl","logoutUrl","revokeUrl","createOAuthMeta","tokenParams","urls","oauthMeta","clientId","redirectUri","responseMode","ignoreSignature","acrValues","pkce","pkceMeta","codeVerifier","codeChallengeMethod","codeChallenge","defaultConverter","read","converter","defaultAttributes","expires","toUTCString","stringifiedAttributes","attributeName","cookie","cookies","jar","withAttributes","withConverter","api","createTransactionMeta","_createTransactionMeta","authClient","_Object$assign","_Object$assign$flow","flow","_Object$assign$withCr","_Object$assign$activa","activationToken","_Object$assign$recove","recoveryToken","_Object$assign$maxAge","maxAge","_Object$assign$acrVal","_args","prepareTokenParams","hasSavedInteractionHandle","savedMeta","getSavedTransactionMeta","interactionHandle","transactionManager","load","isTransactionMetaValid","getTransactionMeta","_getTransactionMeta","_callee2","validExistingMeta","_context2","saveTransactionMeta","save","muteWarning","clearTransactionMeta","isTransactionMetaValidForOptions","isTransactionMetaValidForFlow","shouldValidateFlow","mismatch","isNumber","STATE_TOKEN_KEY_NAME","DEFAULT_POLLING_DELAY","DEFAULT_MAX_CLOCK_SKEW","DEFAULT_CACHE_DURATION","TOKEN_STORAGE_NAME","CACHE_STORAGE_NAME","PKCE_STORAGE_NAME","TRANSACTION_STORAGE_NAME","SHARED_TRANSACTION_STORAGE_NAME","ORIGINAL_URI_STORAGE_NAME","IDX_RESPONSE_STORAGE_NAME","ACCESS_TOKEN_STORAGE_KEY","ID_TOKEN_STORAGE_KEY","REFRESH_TOKEN_STORAGE_KEY","REFERRER_PATH_STORAGE_KEY","MIN_VERIFIER_LENGTH","MAX_VERIFIER_LENGTH","DEFAULT_CODE_CHALLENGE_METHOD","IDX_API_VERSION","AuthApiError","OAuthError","error_description","parseInsufficientAuthenticationError","curr","formatError","resp","serverErr","transformErrorXHR","_parseInsufficientAut","max_age","acr_values","httpRequest","httpRequestInterceptors","interceptor","saveAuthnState","accessToken","storageUtil","storage","httpCache","storageManager","getHttpCache","cacheResponse","cacheContents","getStorage","cachedResponse","expiresAt","oktaUserAgentHeader","getHttpHeader","ajaxOptions","httpRequestClient","stateToken","updateStorage","getIssuerOrigin","getOptions","post","postOptions","getResponse","interact","_interact","_meta","clientSecret","newMeta","client_id","redirect_uri","code_challenge","code_challenge_method","activation_token","recovery_token","client_secret","interaction_handle","isFieldMutable","mutable","divideSingleActionParamsByMutability","defaultParamsForAction","neededParamsForAction","immutableParamsForAction","divideActionParamsByMutability","actionList","neededParams","defaultParams","immutableParams","_divideSingleActionPa","generateDirectFetch","actionDefinition","_ref$defaultParamsFor","_ref$immutableParamsF","_ref$toPersist","toPersist","_response","payload","wwwAuthHeader","idxResponse","accepts","makeIdxResponse","responseJSON","stepUp","generateIdxAction","generator","_divideActionParamsBy","generateRemediationFunctions","remediationValue","remediation","subClass","superClass","Parent","Class","_cache","_typeof2","_createSuper","Derived","hasNativeReflectConstruct","Super","minLen","arr2","allowArrayLike","normalCompletion","didErr","hasOwnProp","NewError","_super","avoidNew","JSONPath","opts","expr","otherTypeCallback","optObj","resultType","flatten","sandbox","preventEval","parentProperty","autostart","evaluate","currParent","currParentProperty","currResultType","currPreventEval","currSandbox","currOtherTypeCallback","_expr","toPathString","exprList","toPathArray","_hasParentSelector","_trace","ea","isParentSelector","hasArrExpr","rslt","valOrPath","_getPreferredOutput","toPointer","_handleCallback","fullRetObj","preferredOutput","parentPropName","literalPriority","retObj","loc","addRet","elems","_walk","par","pr","_slice","_eval","addType","valueType","locProp","rett","tl","_v","_vname","_$_parentProperty","_$_parent","_$_property","_$_path","_$_root","_$_v","vm","runInNewContext","pathArr","subx","$0","$1","ups","exp","moveToAnotherArray","conditionCb","il","jsonpath","funcs","vr","funcString","fString","lastStatementEnd","SKIP_FIELDS","parseNonRemediations","actions","fieldIsObject","rel","fieldValue","info","__rest","subField","expandRelatesTo","innerValue","convertRemediationAction","remediationActions","actionFn","parseIdxResponse","remediationData","remediations","_parseNonRemediations","makeIdxState","requestDidSucceed","rawIdxResponse","_parseIdxResponse","neededToProceed","proceed","remediationChoice","paramsFromUser","remediationChoiceObject","findCode","interactionCode","successWithInteractionCode","rawIdxState","parsersForVersion","validateVersionConfig","cleanVersion","_parsersForVersion","isRawIdxResponse","isAuthApiError","isOAuthError","introspect","_introspect","savedIdxResponse","stateHandle","_withCredentials","loadIdxResponse","Accept","getAllValues","idxRemediation","getRequiredValues","titleCase","getAuthenticatorFromRemediation","formatAuthenticator","authenticator","compareAuthenticators","auth1","auth2","findMatchedOption","authenticators","option","relatesTo","Remediator","formatAuthenticators","hasAuthenticatorInList","authenticatorsData","needed","hasData","allValues","getData","_authClient","getName","getInputs","getAuthenticator","inputsFromRemediation","inputFromRemediation","visible","messages","alias","aliases","inputsFromRemediator","authenticatorFromRemediation","enrollmentId","Authenticator","VerificationCodeAuthenticator","_Authenticator","verificationCode","otp","passcode","idxRemediationValue","OktaVerifyTotp","_VerificationCodeAuth","totp","OktaPassword","SecurityQuestionEnrollment","questionKey","answer","question","SecurityQuestionVerification","contextualData","enrolledQuestion","WebauthnEnrollment","clientData","attestation","WebauthnVerification","authenticatorData","signatureData","OKTA_PASSWORD","SECURITY_QUESTION","OKTA_VERIFY","WEBAUTHN","challengeData","VerifyAuthenticator","_Remediator","nextStep","authenticatorEnrollments","canVerify","mapCredentials","trimmedValues","valueKey","EnrollAuthenticator","_VerifyAuthenticator","remediationName","EnrollPoll","startPolling","currentAuthenticator","poll","refresh","SelectEnrollmentChannel","_this$values$authenti","filterKey","EnrollmentChannelData","email","phoneNumber","ChallengeAuthenticator","ChallengePoll","_EnrollPoll","ResetAuthenticator","EnrollProfile","getCredentialsFromRemediation","userProfileFromValues","userProfile","userProfileFromRemediation","canRemediate","profileAttributes","attributeNames","_ref4","attributeValues","errorRemediation","errors","Identify","_this$getData","identifier","_this$values","ReEnrollAuthenticator","newPassword","challengeType","RedirectIdp","_this$remediation","idp","SelectAuthenticator","matchedOption","_this$values2","selectedAuthenticator","selectedOption","SelectAuthenticatorAuthenticate","_SelectAuthenticator","isRecoveryFlow","hasPasswordInOptions","SelectAuthenticatorEnroll","SelectAuthenticatorUnlockAccount","authenticatorMap","methodTypeOption","methodTypeValue","methodType","SelectEnrollProfile","AuthenticatorData","formatAuthenticatorData","getAuthenticatorData","mapAuthenticatorDataFromValues","_this$authenticator","AuthenticatorVerificationData","_AuthenticatorData","AuthenticatorEnrollmentData","Skip","skip","unwrapFormValue","_Object$entries","_Object$entries$_i","formKeys","unwrappedForm","GenericRemediator","produces","rest","_action","isTerminalResponse","canSkipFn","canResendFn","actionName","getMessagesFromIdxRemediationValue","messagesFromForm","optionValues","messagesFromOptions","getMessagesFromResponse","globalMessages","useGenericRemediator","fieldMessages","i18n","getEnabledFeatures","PASSWORD_RECOVERY","REGISTRATION","SOCIAL_IDP","ACCOUNT_UNLOCK","getAvailableSteps","remediatorMap","remediatorClass","getRemediatorClass","remediators","remediator","getNextStep","stepObj","_split","_split2","part1","part2","actionObj","filterValuesForRemediation","valuesForRemediation","getRemediator","idxRemediations","remediatorCandidates","isRemeditionInFlow","canSkip","canResend","handleFailedResponse","terminal","getActionFromValues","resend","removeActionFromValues","removeActionFromOptions","remediate","_remediate","_idxResponse","_options","actionFromValues","actionFromOptions","_ret","gr","_nextStep","valuesWithoutExecutedAction","optionsWithoutExecutedAction","remediationAction","canceled","t1","getValuesAfterProceed","AuthenticationFlow","PasswordRecoveryFlow","RegistrationFlow","AccountUnlockFlow","getFlowSpecification","initializeValues","knownOptions","initializeData","getFlow","setFlow","flowSpec","getDataFromIntrospect","_getDataFromIntrospect","interactResponse","getDataFromRemediate","_getDataFromRemediate","autoRemediate","shouldRemediate","_yield$remediate","idxResponseFromRemediation","getTokens","_getTokens","_callee3","tokenResponse","_context3","exchangeCodeForTokens","finalizeData","_finalizeData","_callee4","shouldSaveResponse","shouldClearTransaction","clearSharedStorage","enabledFeatures","availableSteps","hasActions","hasErrors","isTerminalSuccess","_context4","TERMINAL","CANCELED","SUCCESS","_run","_callee5","_data","_requestDidSucceed","_args5","_context5","saveIdxResponse","authenticate","_authenticate","cancel","_cancel","urlParamsToObject","hashOrSearch","plus2space","paramSplit","param","EmailVerifyCallbackError","isEmailVerifyCallbackError","isEmailVerifyCallback","urlPath","parseEmailVerifyCallback","handleEmailVerifyCallback","_handleEmailVerifyCallback","_parseEmailVerifyCall","canProceed","_proceed","_poll","transaction","availablePollingRemeditaions","_args2","startTransaction","_startTransaction","_register","_yield$startTransacti","recoverPassword","_recoverPassword","handleInteractionCodeRedirect","_handleInteractionCodeRedirect","savedState","_URL","_yield$authClient$tok","tokenManager","setTokens","unlockAccount","_unlockAccount","oauthError","isRefreshTokenInvalidError","hasTokensInHash","hasAuthorizationCode","hasInteractionCode","hasErrorInUrl","isRedirectUri","uri","authParams","isCodeFlow","getHashOrSearch","codeFlow","useQuery","isLoginRedirect","hasCode","isInteractionRequired","createIdxAPI","boundStartTransaction","crypto","isWindowsPhone","isBrowser","isIE11OrLess","documentMode","getUserAgent","isFingerprintSupported","agent","isPopupPostMessageSupported","isIE8or9","isTokenVerifySupported","subtle","hasTextEncoder","TextEncoder","isPKCESupported","isHTTPS","isLocalhost","createOktaAuthBase","OptionsConstructor","OktaAuthBase","features","constants","mixinStorage","Base","StorageManager","_Base","OktaAuthStorage","_this$options","OktaUserAgent","environments","env","maybeAddNodeEnvironment","headerName","headerValue","mixinHttp","OktaAuthHttp","stringToBase64Url","b64","base64ToBase64Url","base64UrlToBase64","b64u","base64UrlToString","utf8","stringToBuffer","base64UrlDecode","base64UrlToBuffer","bufferToBase64Url","bin","byte","getOidcHash","digest","intBuffer","firstHalf","verifyToken","idToken","algo","extractable","usages","importKey","cryptoKey","jwt","b64Signature","signature","verify","PromiseQueue","quiet","running","thisObject","queueItem","dec2hex","dec","getRandomString","getRandomValues","generateVerifier","verifier","computeChallenge","PKCE","decodeToken","decodedToken","getDefaultTokenParams","_sdk$options","defaultRedirectUri","validateOptions","authorizationCode","getPostData","postToTokenEndpoint","postRefreshToken","refreshToken","grant_type","refresh_token","getWellKnown","authServerUri","getKey","kid","wellKnown","jwksUri","cachedKey","clearStorage","validateClaims","claims","validationParams","aud","iss","acr","iat","ignoreLifetime","maxClockSkew","_verifyToken","configuredIssuer","_yield$getWellKnown","validationOptions","valid","verifyToken$1","at_hash","validateResponse","oauthParams","handleOAuthResponse","_handleOAuthResponse","tokenDict","expiresIn","tokenType","accessJwt","idJwt","idTokenObj","interaction_code","expires_in","token_type","access_token","id_token","_tokenParams","getTokenOptions","handleResponseOptions","isAccessToken","isIDToken","isRefreshToken","getUserInfo","_getUserInfo","accessTokenObject","idTokenObject","userInfo","authenticateHeader","getResponseHeader","errorMatches","errorDescriptionMatches","errorDescription","addListener","eventTarget","attachEvent","removeListener","detachEvent","loadFrame","loadPopup","popupTitle","appearance","addPostMessageListener","responseHandler","msgReceivedOrTimeout","assertPKCESupport","errorMessage","validateCodeChallengeMethod","_validateCodeChallengeMethod","wellKnownResponse","preparePKCE","_preparePKCE","_prepareTokenParams","_args3","convertTokenParamsToOAuthParams","idpScope","loginHint","prompt","sessionToken","enrollAmrValues","mayBeArray","buildAuthorizeParams","oauthQueryParams","getToken","popupWindow","requestUrl","endpoint","flowType","sessionTokenOverrides","idpOverrides","iframePromise","iframeEl","oauthPromise","popupPromise","closePoller","closed","clearInterval","getWithoutPrompt","getWithPopup","getWithRedirect","_getWithRedirect","setLocation","removeHash","nativeHistory","parseFromUrl","_getHistory","nativeDoc","_getDocument","nativeLoc","_getLocation","replaceState","removeSearch","getResponseMode","defaultResponseMode","parseOAuthResponseFromUrl","paramStr","cleanOAuthResponseFromUrl","_parseFromUrl","isSameRefreshToken","renewTokensWithRefresh","_renewTokensWithRefresh","refreshTokenObject","renewTokenParams","_yield$handleOAuthRes","updateRefreshToken","removeRefreshToken","throwInvalidTokenError","getSingleToken","originalToken","renewToken","_renewToken","getTokensSync","renewTokens","_renewTokens","_getDefaultTokenParam","revokeToken","_revokeToken","creds","token_type_hint","createEnrollAuthenticatorMeta","getDefaultEnrollAuthenticatorParams","prepareParams","prepareEnrollAuthenticatorParams","enrollAuthenticator","createTokenAPI","useQueue","getWithRedirectFn","parseFromUrlFn","parseFromUrlApi","history","revoke","renew","toWrap","createEndpoints","authorize","validateToken","SdkClock","localOffset","EVENT_EXPIRED","EVENT_RENEWED","EVENT_ADDED","EVENT_REMOVED","EVENT_ERROR","EVENT_SET_STORAGE","DEFAULT_OPTIONS","autoRenew","autoRemove","syncStorage","clearPendingRemoveTokens","expireEarlySeconds","storageKey","defaultState","expireTimeouts","renewPromise","TokenManager","storageOptions","secure","storageProvider","storageType","getTokenStorage","useSeparateCookies","clock","setExpireEventTimeoutAll","started","clearExpireEventTimeoutAll","expireTime","getExpireTime","freshToken","oldToken","clearExpireEventTimeout","expireEventWait","expireEventTimeout","emitExpired","tokenStorage","setExpireEventTimeout","setStorage","emitSetStorageEvent","emitAdded","getSync","accessTokenCb","idTokenCb","refreshTokenCb","handleTokenCallback","getTokenType","handleAdded","handleRenewed","emitRenewed","handleRemoved","emitRemoved","types","existingTokens","getStorageKeyByType","newToken","existingToken","removedToken","tokenKey","emitError","removedTokens","pendingRemove","browserHasLocalStorage","getLocalStorage","testStorage","browserHasSessionStorage","getSessionStorage","testStorageType","supported","getStorageByType","getCookieStorage","getInMemoryStorage","findStorageType","curType","nextType","onstorage","localStorage","sessionStorage","sameSite","sessionCookie","getItem","setItem","removeItem","existingValues","valueToStore","inMemoryStore","cookieOptions","Cookies","provideOriginalUri","BaseClass","_BaseClass","WithOriginalUri","sharedStorage","getOriginalUriStorage","mixinOAuth","TransactionManagerConstructor","_WithOriginalUri","OktaAuthOAuth","_pending","handleLogin","_tokenQueue","endpoints","_isAuthenticated","_this$tokenManager$ge","shouldRenew","_this$tokenManager$ge2","_this$tokenManager$ge3","onExpiredToken","hasExpired","_signInWithRedirect","additionalParams","_getUser","_this$tokenManager$ge4","getUser","_this$tokenManager$ge5","_this$tokenManager$ge6","_this$tokenManager$ge7","_storeTokensFromRedirect","_yield$this$token$par","storeTokensFromRedirect","hasResponseType","_invokeApiMethod","invokeApiMethod","_revokeAccessToken","_callee6","accessTokenKey","_context6","revokeAccessToken","_revokeRefreshToken","_callee7","refreshTokenKey","_context7","revokeRefreshToken","postLogoutRedirectUri","idTokenHint","logoutUri","_signOut","_callee8","defaultUri","currentUri","_context8","getSignOutRedirectUrl","closeSession","sessionClosed","reload","clearTokensBeforeRedirect","addPendingRemoveFlags","signOut","INITIAL_AUTH_STATE","DEFAULT_PENDING","updateAuthStatePromise","canceledTimes","EVENT_AUTH_STATE_CHANGE","MAX_PROMISE_CANCEL_TIMES","isSameAuthState","AuthStateManager","_sdk","_authState","_logOptions","_prevAuthState","_transformQueue","_setLogOptions","updateAuthState","_updateAuthState","_this$_sdk$options","transformAuthState","devMode","emitAuthStateChange","_finalPromise","cancelablePromise","_this2$_logOptions","finalPromise","origPromise","curPromise","emitAndResolve","isCanceled","_this2$_sdk$tokenMana","AutoRenewService","renewTimeQueue","onTokenExpiredHandler","lastTime","shouldThrottleRenew","_start","canStart","isStarted","processExpiredTokens","_stop","PROMISE_RESOLVED_TRUE","PROMISE_RESOLVED_VOID","sleep","resolveWith","randomInt","randomToken","lastMs","additional","microSeconds","micro","channelName","messagesCallback","BroadcastChannel","subFns","channelState","messageJson","onMessage","canBeUsed","_pubkey","averageResponseTime","ObliviousSet","ttl","_to","removeTooOldValues","obliviousSet","olderThen","fillOptionsWithDefaults","originalOptions","webWorkerSupport","idb","fallbackInterval","onclose","localstorage","removeTimeout","maxParallelWrites","useFastPath","DB_PREFIX","OBJECT_STORE_ID","TRANSACTION_SETTINGS","durability","getIdb","indexedDB","mozIndexedDB","webkitIndexedDB","msIndexedDB","commitIndexedDBTransaction","tx","commit","createDatabase","IndexedDB","dbName","openRequest","onupgradeneeded","db","createObjectStore","keyPath","autoIncrement","dbPromise","rej","onsuccess","writeMessage","readerUuid","writeObject","uuid","oncomplete","objectStore","getMessagesHigherThan","lastCursorId","keyRangeValue","IDBKeyRange","bound","getAllRequest","openCursor","openCursorRequest","cursor","removeMessagesById","deleteRequest","getOldMessages","msgObk","cleanOldMessages","tooOld","eMIs","writeBlockPromise","readQueuePromises","_readLoop","readNewMessages","_filterMessage","msgObj","messagesCallbackTime","newerMessages","useMessages","msgObjA","msgObjB","KEY_PREFIX","writeObj","addStorageEventListener","removeStorageEventListener","ls","defaultTime","SIMULATE_CHANNELS","channelArray","METHODS","NativeMethod","IndexeDbMethod","LocalstorageMethod","chooseMethod","chooseMethods","SimulateMethod","useMethod","ENFORCED_OPTIONS","OPEN_BROADCAST_CHANNELS","lastId","_iL","_onML","_addEL","internal","_uMP","_befC","_prepP","_prepareChannel","_post","broadcastChannel","awaitPrepare","sendPromise","_state","maybePromise","_hasMessageListeners","_addListenerObject","_startListening","_removeListenerObject","_stopListening","listenerFn","listenerObject","hundredMsInMicro","minMessageTime","postInternal","listenObj","isClosed","WorkerGlobalScope","USE_METHOD","isNode","NodeMethod","BrowserMethod","LISTENERS","startedListening","startListening","runAll","addReturn","promises","LeaderElection","isLeader","hasLeader","isDead","_aplQ","_aplQC","_unl","_lstns","_dpL","_dpLC","hasLeaderListener","_awaitLeadershipOnce","leaderElector","whenDeathListener","applyOnce","tryOnFallBack","_sendMessage","msgJson","beLeader","unloadFn","unloadAdd","die","isLeaderListener","responseTime","createLeaderElection","_leaderElector","elector","isFromFallbackInterval","applyRun","stopCriteriaPromiseResolve","stopCriteria","stopCriteriaPromise","recieved","handleMessage","waitForAnswerTime","applyPromise","awaitLeadership","_aLP","onduplicate","uFn","SyncStorageService","enablePostMessage","onTokenAddedHandler","onTokenRemovedHandler","onTokenRenewedHandler","onSetStorageHandler","onSyncMessageHandler","syncChannelName","LeaderElectionService","onLeaderDuplicate","onLeader","_onLeader","electionChannelName","AUTO_RENEW","SYNC_STORAGE","LEADER_ELECTION","ServiceManager","_sdk$tokenManager$get","broadcastChannelName","defaultOptions","services","knownServices","svc","createService","startServices","getService","srv","requiresLeadership","stopServices","_startServices","_step$value","canStartService","_stopServices","isLeaderRequired","service","mixinCore","OktaAuthCore","serviceManager","_handleRedirect","handleRedirect","_handleLoginRedirect","oAuthResponse","getOriginalUri","removeOriginalUri","sessionExists","session","getSession","user","refreshSession","setCookieAndRedirect","redirectUrl","checkAccountSetupComplete","createSessionApi","exists","mixinSession","OktaAuthSession","createOktaAuthCore","StorageManagerConstructor","WithStorage","WithHttp","WithSession","WithOAuth","Core","getEnrolledCredentials","enrollement","credentialId","buildCredentialCreationOptions","activationData","publicKey","rp","challenge","pubKeyCredParams","authenticatorSelection","excludeCredentials","buildCredentialRequestOptions","userVerification","allowCredentials","getAttestation","credential","clientDataJSON","attestationObject","getAssertion","mixinIdx","OktaAuthIdx","webauthn","createOktaAuthIdx","WithIdx","createBaseOptionsConstructor","BaseOptionsConstructor","storageUtil$1","STORAGE_MANAGER_OPTIONS","storageTypes","getCookieSettings","cookieSettings","createStorageOptionsConstructor","_BaseOptionsConstruct","StorageOptionsConstructor","appJsonContentTypeRegex","readData","formatResult","pair","fetchRequest","contentType","crossFetch","fetchPromise","createHttpOptionsConstructor","_StorageOptionsConstr","HttpOptionsConstructor","enableSharedStorage","assertValidConfig","isUrlRegex","createOAuthOptionsConstructor","_HttpOptionsConstruct","OAuthOptionsConstructor","createCoreOptionsConstructor","_OAuthOptionsConstruc","CoreOptionsConstructor","createIdxOptionsConstructor","_CoreOptionsConstruct","IdxOptionsConstructor","SavedObject","storageName","storageString","logServerSideMemoryStorageWarning","BaseStorageManager","storageManagerOptions","overrideOptions","getOptionsForSection","createOAuthStorageManager","_BaseStorageManager","OAuthStorageManager","createCoreStorageManager","createIdxStorageManager","CoreStorageManager","_CoreStorageManager","IdxStorageManager","transactionStorage","getTransactionStorage","isObjectWithProperties","isOAuthTransactionMeta","isCustomAuthTransactionMeta","isAllStringValues","isTransactionMeta","MAX_ENTRY_LIFETIME","pruneSharedStorage","getSharedTansactionStorage","age","dateCreated","saveTransactionToSharedStorage","loadTransactionFromSharedStorage","clearTransactionFromSharedStorage","createTransactionManager","TransactionManager","saveLastResponse","createIdxTransactionManager","_TransactionManager","IdxTransactionManager","clearIdxResponse","getIdxResponseStorage","storedValue","EmailRole","Status","PasswordStatus","BaseTransaction","ProfileTransaction","_BaseTransaction","_options$res","createdAt","modifiedAt","profile","ProfileSchemaTransaction","EmailTransaction","roles","generateRequestFnFromLinks","methodName","links","transactionClassName","EmailStatusTransaction","EmailChallengeTransaction","PhoneTransaction","PasswordTransaction","lastUpdated","NOT_ENROLLED","enroll","sendRequest","_sendRequest","_oktaAuth$tokenManage","accessTokenObj","TransactionClass","_arr","hints","getProfile","updateProfile","getProfileSchema","getEmails","getEmail","addEmail","deleteEmail","sendEmailChallenge","getEmailChallenge","emailId","challengeId","_x11","_x12","verifyEmailChallenge","_x13","_x14","getPhones","getPhone","addPhone","deletePhone","sendPhoneChallenge","verifyPhoneChallenge","enrollPassword","updatePassword","deletePassword","mixinMyAccount","OktaAuthMyAccount","myaccount","addStateToken","builtArgs","getStateToken","transactionStatus","resumeTransaction","getSavedStateToken","createTransaction","introspectAuthn","transactionStep","transactionExists","postToTransaction","link2fn","lk","isPolling","factorType","provider","autoPush","rememberDevice","updatePhone","AuthPollStopError","getPollFn","delay$1","transactionCallBack","pollLink","pollFn","retryCount","recursivePoll","pollRes","factorResult","delayLength","links2fns","flattenEmbedded","objArr","ol","embedded","_embedded","AuthnTransactionImpl","createAuthnTransactionAPI","fingerprint","mixinAuthn","OktaAuthTx","authn","_signIn","_postToTransaction","sendFingerprint","signIn","_signInWithCredentials","signInWithCredentials","WithMyAccount","WithAuthn","OktaAuth","_WithAuthn","ThemeService","EventBus","service_default","merge","value1","value2","toValue","toUnit","variable","excludedProperties","valArr","toNormalizePrefix","toNormalizeVariable","getVariableName","getVariableValue","excludedKeyRegexes","regex","matchRegex","_val","_r","toKebabCase","isNotEmpty","calculationRegex","cleanedVarRegex","getRule","dt","dtwt","config_default","getTheme","tokenPath","VARIABLE","OPTIONS","matchRegex2","isStrictTransform","getTokenValue","excludedKeyRegex","toVariables_default","_options$prefix","_options$selector","_options$excludedKeyR","_toVariables","_theme","_prefix","_ref8","px","matchRegex3","toKebabCase2","isObject2","_toVariables2","variables2","variables","tokens2","_toVariables4","declarations","themeUtils_default","rules","class","attr","media","system","custom","rr","getCommon","_ref9","_e","_f","primitive_css","primitive_tokens","semantic_css","semantic_tokens","_ref9$name","_ref9$theme","preset","isNotEmpty2","primitive","semantic","colorScheme","sRest","__objRest","dark","csRest","prim_var","sRest_var","csRest_var","light","dark_var","_ref10","prim_css","prim_tokens","sRest_css","sRest_tokens","csRest_css","csRest_tokens","dark_css","dark_tokens","transformCSS","semantic_light_css","semantic_dark_css","getPreset","_ref11","_ref11$name","_ref11$preset","_name","vRest","vRest_var","vRest_css","vRest_tokens","light_variable_css","dark_variable_css","getPresetC","_ref12$name","_ref12$theme","cPreset","getPresetD","_ref13$name","_ref13$theme","dName","dPreset","getColorSchemeOption","darkModeSelector","getLayerOrder","cssLayer","resolve2","getCommonStyleSheet","_ref14$name","_ref14$theme","_ref14$props","_css","minifyCSS","getStyleSheet","_ref19$name","_ref19$theme","_ref19$props","preset_css","_ref20","createTokens","parentPath","_ref23","currentKey","matchRegex4","toTokenKey2","currentPath","isObject3","paths","tokenPathMap","computedValue","isEmpty","normalizePath","strArr","computedValues","_a2","cs","css2","colorSchemeOption","_ref24","_selector","layerOptions","layerNames","_layerNames","_loadedStyleNames","_loadingStyles","_tokens","newValues","__spreadProps","__spreadValues","clearLoadedStyleNames","setTheme","setPreset","getLayerNames","setLayerNames","layerName","getLoadedStyleNames","isStyleNameLoaded","setLoadedStyleName","deleteLoadedStyleName","getComponent","getDirective","getCustomPreset","getLayerOrderCSS","onStyleMounted","onStyleUpdated","onStyleLoaded","_ref25","hasClass","addClass","_className","_classNames","removeClass","getOuterWidth","margin","isElement","nodeName","setAttributes","computedStyles","rule","styles","cv","_cv","_k","matchedEvent","findSingle","focus","activeElement","getHeight","paddingTop","borderTopWidth","borderBottomWidth","getParentNode","ShadowRoot","getOffset","pageYOffset","pageXOffset","scrollLeft","getOuterHeight","isExist","getWidth","paddingLeft","paddingRight","borderLeftWidth","borderRightWidth","isClient","isTouchDevice","maxTouchPoints","msMaxTouchPoints","allHandlers","evt","deepEquals","obj2","arrObj1","arrObj2","dateObj1","dateObj2","regexpObj1","regexpObj2","resolveFieldData","fields","equals","empty","toFlatCase","getKeyValue","fKeys","fKey","isPrintableCharacter","char","mergeKeys","_mergeKeys","mergedObj","removeAccents","toCapitalCase","toTokenKey","lastIds","zIndexes","generateZIndex","autoZIndex","baseZIndex","lastZIndex","getLastZIndex","newZIndex","revertZIndex","zIndex","getCurrentZIndex","getZIndex","getCurrent","ZIndex","tryOnMounted","sync","_id","useStyle","isLoaded","cssRef","styleRef","defaultDocument","_options$document","_options$immediate","_options$manual","manual","_options$name","_options$id","_options$media","_options$nonce","_options$first","_options$onMounted","_options$onUpdated","_options$onLoad","onLoad","_options$props","_styleProps","_nonce","getElementById","unload","inlineStyles","BaseStyle","loadCSS","loadTheme","getCommonTheme","getComponentTheme","getDirectiveTheme","getPresetTheme","getLayerOrderThemeCSS","extendedCSS","_style","getCommonThemeStyleSheet","getThemeStyleSheet","BaseComponentStyle","pt","ptOptions","unstyled","$parentInstance","isUnstyled","_loadCoreStyles","_themeChangeListener","_loadScopedThemeStyles","_unloadScopedThemeStyles","scopedStyleEl","_this$pt","_this$pt2","_this$pt3","_ref$onBeforeCreate","_this$$primevueConfig","_this$$primevue","_this$$primevue2","_this$$primevue3","_ref2$onBeforeCreate","_usept","originalValue","_useptInConfig","$primevueConfig","originalValueInConfig","$primevue","valueInConfig","_loadStyles","$attrSelector","$pc","$params","hookName","hostName","selfHook","_usePT","_getPT","_getOptionValue","defaultHook","_useDefaultPT","_mergeProps","_load","$styleOptions","_loadGlobalStyles","_loadThemeStyles","_this$$style","_this$$style2","$style","globalCSS","_useGlobalPT","_this$$style4","_this$$style5","_this$$style3","_this$$style3$getComm","_this$$style6","_this$$style6$getComp","_this$$style7","_this$$style8","_this$$style9","_this$$style9$getLaye","layerOrder","_this$$style10","_this$$style10$getPre","_this$$style11","scopedStyle","_this$scopedStyleEl","_getHostInstance","_getPropValue","_this$_getHostInstanc","_getPTValue","_this$$primevueConfig2","searchInDefaultPT","searchOut","_ref6$mergeSections","mergeSections","_ref6$mergeProps","useMergeProps","_getPTClassValue","_getPTSelf","datasets","_getPTDatasets","$name","$_attrsPT","_this$pt4","_this$pt5","datasetPrefix","isExtended","getValue","checkSameKey","_cKey","_this$$primevueConfig3","_ref9$mergeSections","_ref9$mergeProps","globalPT","defaultPT","ptm","ptmi","$_attrsWithoutPT","ptmo","cx","sx","when","_this$$primevueConfig4","_this$$primevueConfig5","_this$$primevueConfig6","$theme","_this$$primevueConfig7","_this$$primevueConfig8","csp","_this$$primevue4","parentInstance","_key$split","_key$split2","_toArray","currentObj","nestedKey","UniqueComponentId","PrimeVueService","transitionDuration","panel","borderWidth","hoverColor","activeColor","padding","fontWeight","borderRadius","background","hoverBackground","activeBackground","activeHoverBackground","focusRing","shadow","toggleIcon","activeHoverColor","topBorderRadius","bottomBorderRadius","activeBottomBorderRadius","disabledBackground","filledBackground","filledFocusBackground","hoverBorderColor","focusBorderColor","invalidBorderColor","disabledColor","placeholderColor","paddingX","paddingY","overlay","gap","focusBackground","selectedBackground","selectedFocusBackground","focusColor","selectedColor","selectedFocusColor","optionGroup","dropdown","activeBorderColor","chip","emptyMessage","fontSize","lg","xl","dot","sm","primary","secondary","danger","contrast","icon","roundedBorderRadius","iconOnlyWidth","raisedShadow","badgeSize","help","outlined","plain","caption","subtitle","indicatorList","indicator","checkedBackground","checkedHoverBackground","checkedBorderColor","checkedHoverBorderColor","checkedFocusBorderColor","checkedDisabledBorderColor","checkedColor","checkedHoverColor","image","removeIcon","preview","gutter","arrowOffset","submenuIcon","headerCell","columnTitle","bodyCell","footerCell","columnFooter","dropPointColor","columnResizerWidth","resizeIndicator","sortIcon","loadingIcon","rowToggleButton","selectedHoverBackground","selectedHoverColor","inlineGap","overlaySelect","overlayPopover","constraintList","paginatorTop","paginatorBottom","stripedBackground","selectedBorderColor","inputIcon","selectMonth","selectYear","dayView","weekDay","rangeSelectedBackground","rangeSelectedColor","monthView","yearView","buttonbar","timePicker","buttonGap","horizontal","vertical","toolbar","toolbarItem","overlayOption","legend","highlightBorderColor","progressbar","basic","invalidColor","navButton","navIcon","thumbnailsContent","thumbnailNavButton","thumbnailNavButtonIcon","indicatorButton","insetIndicatorList","insetIndicatorButton","closeButton","closeButtonIcon","blur","iconSize","addon","verticalPadding","checkmark","gutterStart","gutterEnd","verticalOrientation","horizontalOrientation","baseItem","submenu","submenuLabel","mobileButton","mobileIndent","closeIcon","meters","labelMarker","labelIcon","labelList","verticalGap","horizontalGap","controls","toggleablePadding","nodeToggleButton","connector","outline","currentPageReport","jumpToPageInput","maxWidth","toggleableHeader","indent","meter","strength","weakBackground","mediumBackground","strongBackground","bar","clearIcon","animationBackground","contentBackground","stepHeader","stepTitle","stepNumber","steppanels","steppanel","itemLink","itemLabel","itemNumber","tablist","itemIcon","activeBar","tab","tabpanel","tabList","tabPanel","commandResponse","eventMarker","insetShadow","eventConnector","detail","detailColor","disabledBorderColor","checkedShadow","slideDuration","nodeIcon","tree","loader","none","xs","md","emerald","green","lime","red","orange","amber","yellow","teal","cyan","sky","blue","indigo","violet","purple","fuchsia","pink","rose","slate","gray","zinc","neutral","stone","disabledOpacity","anchorGutter","formField","navigation","popover","modal","surface","contrastColor","highlight","floatLabelColor","floatLabelFocusColor","floatLabelInvalidColor","iconColor","mutedColor","hoverMutedColor","accordion","autocomplete","avatar","badge","blockui","breadcrumb","datepicker","card","carousel","cascadeselect","checkbox","colorpicker","confirmdialog","confirmpopup","contextmenu","dataview","datatable","dialog","divider","dock","drawer","editor","fieldset","fileupload","floatlabel","galleria","iconfield","inlinemessage","inplace","inputchips","inputgroup","inputnumber","inputtext","knob","listbox","megamenu","menu","menubar","metergroup","multiselect","orderlist","organizationchart","overlaybadge","paginator","panelmenu","picklist","progressspinner","radiobutton","rating","scrollpanel","selectbutton","skeleton","slider","speeddial","splitbutton","stepper","steps","tabmenu","tabs","tabview","textarea","tieredmenu","timeline","togglebutton","toggleswitch","treeselect","treetable","toast","virtualscroller","tooltip","ripple","CardStyle","script$1","extends","$pcCard","createElementVNode","FilterMatchMode","STARTS_WITH","CONTAINS","NOT_CONTAINS","ENDS_WITH","EQUALS","NOT_EQUALS","IN","LESS_THAN","LESS_THAN_OR_EQUAL_TO","GREATER_THAN","GREATER_THAN_OR_EQUAL_TO","BETWEEN","DATE_IS","DATE_IS_NOT","DATE_BEFORE","DATE_AFTER","inputStyle","inputVariant","notContains","notEquals","noFilter","lt","lte","gt","gte","dateIs","dateIsNot","dateBefore","dateAfter","matchAll","matchAny","addRule","removeRule","accept","choose","upload","completed","pending","fileSizeTypes","dayNames","dayNamesShort","dayNamesMin","monthNames","monthNamesShort","chooseYear","chooseMonth","chooseDate","prevDecade","nextDecade","prevMonth","nextMonth","prevHour","nextHour","prevMinute","nextMinute","prevSecond","nextSecond","am","pm","weekHeader","firstDayOfWeek","showMonthAfterYear","dateFormat","weak","medium","strong","passwordPrompt","emptyFilterMessage","searchMessage","selectionMessage","emptySelectionMessage","emptySearchMessage","fileChosenMessage","noFileChosenMessage","aria","trueLabel","falseLabel","nullLabel","star","stars","selectAll","unselectAll","moveTop","moveUp","moveDown","moveBottom","moveToTarget","moveToSource","moveAllToTarget","moveAllToSource","pageLabel","firstPageLabel","lastPageLabel","nextPageLabel","prevPageLabel","rowsPerPageLabel","jumpToPageDropdownLabel","jumpToPageInputLabel","selectRow","unselectRow","expandRow","collapseRow","showFilterMenu","hideFilterMenu","filterOperator","filterConstraint","editRow","saveEdit","cancelEdit","listView","gridView","slide","slideNumber","zoomImage","zoomIn","zoomOut","rotateRight","rotateLeft","listLabel","filterMatchModeOptions","numeric","PrimeVueSymbol","PrimeVue","clearConfig","setupConfig","stopWatchers","isThemeChanged","loadCommonTheme","_BaseStyle$getCommonT","_PrimeVue$config","styleOptions","newTheme","stopConfigWatcher","stopRippleWatcher","stopThemeWatcher","stopUnstyledWatcher","configOptions","BaseIconStyle","spin","$pcIcon","pti","isLabelEmpty","BaseIcon","viewBox","xmlns","processedItem","isItemActive","queryMatches","mobileActive","rootList","isItemFocused","isItemDisabled","itemContent","MenubarStyle","BaseDirective","_getMeta","_getConfig","_binding$instance","_vnode$ctx","_instance$binding","_instance$$primevueCo","_ref2$mergeSections","_ref2$mergeProps","_computedValue$_key","_instance$$primevueCo2","_ref4$mergeSections","_ref4$mergeProps","_config$csp","useStyleOptions","_instance$$style","_instance$$style2","_instance$$style3","_instance$$style5","_instance$$style6","_instance$$style4","_instance$$style4$get","_instance$$style7","_instance$$style7$get","_instance$$style8","_instance$$style9","_instance$$style10","_instance$$style10$ge","_instance$$style11","_instance$$style11$ge","_instance$$style12","directiveName","prevVnode","_binding$value","_config$pt","_extend","handleHook","_el$$instance$hook","_el$$instance9","_el$$pd","_$instances","$prevInstance","$binding","$modifiers","_value$directives","_el$$instance","_el$$instance2","_el$$instance3","_el$$instance4","_el$$instance5","_el$$instance6","_el$$instance7","_el$$instance8","$pd","handleWatch","_el$$instance10","_watchers$config","_el$$instance11","_watchers$configRipp","_el$$instance12","_watchers$config2","_watchers$configRipp2","_el$$instance13","_BaseDirective$_getMe","_BaseDirective$_getMe2","_BaseDirective$_getMe3","_BaseDirective$_getMe4","RippleStyle","BaseRipple","Ripple","createRipple","bindEvents","onMouseDown","unbindEvents","ink","onAnimationEnd","getInk","currentTarget","pageX","pageY","script$2","buttonProps","breakpoint","ariaLabelledby","ariaLabel","$pcMenubar","popup","templates","menuId","focusedItemId","activeItemPath","getItemId","getItemKey","getItemProp","getItemLabel","getItemLabelId","getPTOptions","focused","isItemVisible","isItemGroup","onItemClick","originalEvent","isFocus","onItemMouseEnter","onItemMouseMove","getAriaPosInset","calculateAriaSetSize","getMenuItemProps","tabindex","submenuicon","getAriaSetSize","AngleRightIcon","AngleDownIcon","$event","onMouseenter","onMousemove","hasSubmenu","itemicon","_hoisted_4","_hoisted_3","_directive_ripple","_component_MenubarSub","onItemMouseenter","onItemMousemove","_hoisted_5","matchMediaListener","focusedItemInfo","newPath","bindOutsideClickListener","bindResizeListener","unbindOutsideClickListener","unbindResizeListener","outsideClickListener","bindMatchMediaListener","unbindMatchMediaListener","isItemSeparator","getProccessedItemLabel","isProccessedItemGroup","hide","show","menubutton","onFocus","findFirstFocusedItemIndex","onBlur","metaKey","ctrlKey","onArrowDownKey","onArrowUpKey","onArrowLeftKey","onArrowRightKey","onHomeKey","onEndKey","onSpaceKey","onEnterKey","onEscapeKey","onTabKey","searchItems","onItemChange","grouped","rootProcessedItem","changeFocusedItemIndex","menuButtonClick","menuButtonKeydown","visibleItems","itemIndex","findNextItemIndex","findLastItemIndex","parentItem","_itemIndex","findPrevItemIndex","findLastFocusedItemIndex","findFirstItemIndex","anchorElement","_focusedItemInfo","isOutsideContainer","isOutsideTarget","resizeListener","matchMedia","isItemMatched","_this$getProccessedIt","isValidItem","isValidSelectedItem","matchedItemIndex","findSelectedItemIndex","selectedIndex","_char","searchTimeout","scrollInView","scrollIntoView","inline","createProcessedItems","processedItems","newItem","containerRef","menubarRef","MenubarSub","BarsIcon","toggleCallback","_ctx$$primevue$config","onKeydown","buttonicon","_component_BarsIcon","isRouteComponent","isESModule","applyToParams","newParams","HASH_RE","AMPERSAND_RE","SLASH_RE","EQUAL_RE","IM_RE","PLUS_RE","ENC_BRACKET_OPEN_RE","ENC_BRACKET_CLOSE_RE","ENC_CARET_RE","ENC_BACKTICK_RE","ENC_CURLY_OPEN_RE","ENC_PIPE_RE","ENC_CURLY_CLOSE_RE","ENC_SPACE_RE","commonEncode","encodeURI","encodeHash","encodeQueryValue","encodeQueryKey","encodePath","encodeParam","TRAILING_SLASH_RE","parseURL","currentLocation","hashPos","searchPos","resolveRelativePath","stringifyURL","stringifyQuery","stripBase","isSameRouteLocation","aLastIndex","bLastIndex","isSameRouteRecord","isSameRouteLocationParams","aliasOf","isSameRouteLocationParamsValue","isEquivalentArray","fromSegments","toSegments","lastToSegment","toPosition","NavigationType","NavigationDirection","START_LOCATION_NORMALIZED","redirectedFrom","normalizeBase","baseEl","BEFORE_HASH_RE","createHref","getElementPosition","docRect","elRect","behavior","computeScrollPosition","scrollX","scrollY","scrollToPosition","scrollToOptions","positionEl","isIdSelector","scrollTo","getScrollKey","scrollPositions","saveScrollPosition","scrollPosition","getSavedScrollPosition","scroll","createBaseLocation","createCurrentLocation","slicePos","pathFromHash","useHistoryListeners","historyState","teardowns","pauseState","popStateHandler","fromState","forward","back","unknown","pauseListeners","listen","teardown","beforeUnloadListener","_window","passive","buildState","computeScroll","useHistoryStateNavigation","_window2","changeLocation","hashIndex","createWebHistory","historyNavigation","historyListeners","go","triggerListeners","routerHistory","isRouteLocation","route","isRouteName","NavigationFailureType","NavigationFailureSymbol","stringifyRoute","createRouterError","isNavigationFailure","propertiesToLog","BASE_PARAM_PATTERN","BASE_PATH_PARSER_OPTIONS","sensitive","strict","REGEX_CHARS_RE","tokensToParser","score","segmentScores","tokenIndex","subSegmentScore","repeatable","optional","subPattern","avoidDuplicatedSlash","compareScoreArray","comparePathParserScore","aScore","bScore","isLastScoreNegative","ROOT_TOKEN","VALID_PARAM_RE","tokenizePath","crash","previousState","finalizeSegment","customRe","consumeBuffer","addCharToBuffer","createRouteRecordMatcher","parser","createRouterMatcher","routes","globalOptions","matchers","matcherMap","getRecordMatcher","addRoute","originalRecord","isRootAdd","mainNormalizedRecord","normalizeRouteRecord","originalMatcher","normalizedRecords","_i3","_normalizedRecords","normalizedRecord","connectingSlash","isAliasRecord","removeRoute","isMatchable","insertMatcher","matcherRef","getRoutes","paramsFromLocation","parentMatcher","mergeMetaFields","clearRoutes","normalizeRecordProps","leaveGuards","updateGuards","enterCallbacks","propsObject","lower","upper","mid","sortOrder","insertionAncestor","getInsertionAncestor","ancestor","hasLeadingIM","searchParam","eqPos","normalizeQuery","normalizedQuery","matchedRouteKey","viewDepthKey","routerKey","routeLocationKey","routerViewLocationKey","useCallbacks","guardToPromiseFn","guard","enterCallbackArray","guardReturn","guardCall","extractComponentsGuards","guardType","guards","_loop2","_loop3","rawComponent","componentPromise","resolvedComponent","mods","useLink","router","currentRoute","activeRecordIndex","routeMatched","currentMatched","parentRecordPath","getOriginalPath","includesParams","isExactActive","navigate","guardEvent","RouterLinkImpl","compatConfig","MODE","activeClass","exactActiveClass","ariaCurrentValue","_inject","elClass","getLinkClass","linkActiveClass","linkExactActiveClass","RouterLink","altKey","shiftKey","outer","inner","_loop4","outerValue","propClass","globalClass","defaultClass","RouterViewImpl","injectedRoute","routeToDisplay","injectedDepth","matchedRoute","initialDepth","matchedRouteRef","viewRef","oldInstance","currentName","routePropsOption","routeProps","slotContent","RouterView","createRouter","parseQuery$1","stringifyQuery$1","beforeGuards","beforeResolveGuards","afterGuards","pendingLocation","scrollBehavior","scrollRestoration","removeHistoryListener","normalizeParams","paramValue","encodeParams","decodeParams","parentOrRoute","recordMatcher","routeMatcher","hasRoute","rawLocation","locationNormalized","matcherLocation","targetParams","locationAsObject","checkCanceledNavigation","pushWithRedirect","handleRedirectRecord","lastMatched","newTargetLocation","targetLocation","shouldRedirect","toLocation","handleScroll","markAsReady","triggerError","finalizeNavigation","triggerAfterEach","checkCanceledNavigationAndReject","installedApps","_extractChangingRecor","extractChangingRecords","_extractChangingRecor2","leavingRecords","updatingRecords","enteringRecords","canceledNavigationCheck","runGuardQueue","_step17","_iterator17","_step18","_iterator18","isPush","isFirstNavigation","setupListeners","_from","listening","ready","readyHandlers","errorListeners","isReady","beforeEach","beforeResolve","afterEach","onError","reactiveRoute","unmountApp","recordFrom","recordTo"],"sourceRoot":""}