@narmi/design_system 2.18.0 → 2.18.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","mappings":"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","sources":["webpack://@narmi/design_system/webpack/universalModuleDefinition","webpack://@narmi/design_system/./node_modules/classcat/index.js","webpack://@narmi/design_system/./src/util/AsElement.js","webpack://@narmi/design_system/./src/Row/RowItem.js","webpack://@narmi/design_system/./src/Row/index.js","webpack://@narmi/design_system/./src/Button/index.js","webpack://@narmi/design_system/./src/Card/index.js","webpack://@narmi/design_system/./src/Checkbox/index.js","webpack://@narmi/design_system/./src/ContentCard/index.js","webpack://@narmi/design_system/./src/Input/index.js","webpack://@narmi/design_system/./node_modules/flatpickr/dist/esm/types/options.js","webpack://@narmi/design_system/./node_modules/flatpickr/dist/esm/l10n/default.js","webpack://@narmi/design_system/./node_modules/flatpickr/dist/esm/utils/index.js","webpack://@narmi/design_system/./node_modules/flatpickr/dist/esm/utils/dom.js","webpack://@narmi/design_system/./node_modules/flatpickr/dist/esm/utils/formatting.js","webpack://@narmi/design_system/./node_modules/flatpickr/dist/esm/utils/dates.js","webpack://@narmi/design_system/./node_modules/flatpickr/dist/esm/index.js","webpack://@narmi/design_system/./src/DateInput/index.js","webpack://@narmi/design_system/./node_modules/@charlietango/use-focus-trap/lib/useFocusTrap.esm.js","webpack://@narmi/design_system/./src/Dialog/index.js","webpack://@narmi/design_system/./src/Dialog/useLockBodyScroll.js","webpack://@narmi/design_system/./node_modules/raf-schd/dist/raf-schd.esm.js","webpack://@narmi/design_system/./src/TextInput/index.js","webpack://@narmi/design_system/./src/Dropdown/index.js","webpack://@narmi/design_system/./src/DropdownTrigger/index.js","webpack://@narmi/design_system/./src/LoadingShim/index.js","webpack://@narmi/design_system/./src/LoadingSkeleton/index.js","webpack://@narmi/design_system/./src/Modal/index.js","webpack://@narmi/design_system/./src/Pagination/index.js","webpack://@narmi/design_system/./src/PlainButton/index.js","webpack://@narmi/design_system/./node_modules/react-laag/dist/react-laag.esm.js","webpack://@narmi/design_system/./src/Popover/index.js","webpack://@narmi/design_system/./src/RadioButtons/index.js","webpack://@narmi/design_system/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://@narmi/design_system/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://@narmi/design_system/./node_modules/compute-scroll-into-view/dist/index.module.js","webpack://@narmi/design_system/./node_modules/tslib/tslib.es6.js","webpack://@narmi/design_system/./node_modules/downshift/dist/downshift.esm.js","webpack://@narmi/design_system/./src/Select/SelectItem.js","webpack://@narmi/design_system/./src/Select/SelectAction.js","webpack://@narmi/design_system/./src/Select/index.js","webpack://@narmi/design_system/./src/SeparatorList/index.js","webpack://@narmi/design_system/./src/Tabs/context.js","webpack://@narmi/design_system/./src/Tabs/TabsList.js","webpack://@narmi/design_system/./src/Tabs/TabsTab.js","webpack://@narmi/design_system/./src/Tabs/TabsPanel.js","webpack://@narmi/design_system/./src/Tabs/index.js","webpack://@narmi/design_system/./src/Tag/index.js","webpack://@narmi/design_system/./src/Toggle/index.js","webpack://@narmi/design_system/./src/Tooltip/index.js","webpack://@narmi/design_system/./src/formatters/formatNumber.js","webpack://@narmi/design_system/./src/formatters/formatDate.js","webpack://@narmi/design_system/./src/index.js","webpack://@narmi/design_system/./node_modules/core-js/internals/a-callable.js","webpack://@narmi/design_system/./node_modules/core-js/internals/a-constructor.js","webpack://@narmi/design_system/./node_modules/core-js/internals/a-possible-prototype.js","webpack://@narmi/design_system/./node_modules/core-js/internals/add-to-unscopables.js","webpack://@narmi/design_system/./node_modules/core-js/internals/advance-string-index.js","webpack://@narmi/design_system/./node_modules/core-js/internals/an-instance.js","webpack://@narmi/design_system/./node_modules/core-js/internals/an-object.js","webpack://@narmi/design_system/./node_modules/core-js/internals/array-for-each.js","webpack://@narmi/design_system/./node_modules/core-js/internals/array-from.js","webpack://@narmi/design_system/./node_modules/core-js/internals/array-includes.js","webpack://@narmi/design_system/./node_modules/core-js/internals/array-iteration.js","webpack://@narmi/design_system/./node_modules/core-js/internals/array-method-has-species-support.js","webpack://@narmi/design_system/./node_modules/core-js/internals/array-method-is-strict.js","webpack://@narmi/design_system/./node_modules/core-js/internals/array-reduce.js","webpack://@narmi/design_system/./node_modules/core-js/internals/array-slice-simple.js","webpack://@narmi/design_system/./node_modules/core-js/internals/array-slice.js","webpack://@narmi/design_system/./node_modules/core-js/internals/array-species-constructor.js","webpack://@narmi/design_system/./node_modules/core-js/internals/array-species-create.js","webpack://@narmi/design_system/./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack://@narmi/design_system/./node_modules/core-js/internals/check-correctness-of-iteration.js","webpack://@narmi/design_system/./node_modules/core-js/internals/classof-raw.js","webpack://@narmi/design_system/./node_modules/core-js/internals/classof.js","webpack://@narmi/design_system/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://@narmi/design_system/./node_modules/core-js/internals/correct-is-regexp-logic.js","webpack://@narmi/design_system/./node_modules/core-js/internals/correct-prototype-getter.js","webpack://@narmi/design_system/./node_modules/core-js/internals/create-iterator-constructor.js","webpack://@narmi/design_system/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://@narmi/design_system/./node_modules/core-js/internals/create-property-descriptor.js","webpack://@narmi/design_system/./node_modules/core-js/internals/create-property.js","webpack://@narmi/design_system/./node_modules/core-js/internals/define-iterator.js","webpack://@narmi/design_system/./node_modules/core-js/internals/define-well-known-symbol.js","webpack://@narmi/design_system/./node_modules/core-js/internals/descriptors.js","webpack://@narmi/design_system/./node_modules/core-js/internals/document-create-element.js","webpack://@narmi/design_system/./node_modules/core-js/internals/dom-iterables.js","webpack://@narmi/design_system/./node_modules/core-js/internals/dom-token-list-prototype.js","webpack://@narmi/design_system/./node_modules/core-js/internals/engine-is-browser.js","webpack://@narmi/design_system/./node_modules/core-js/internals/engine-is-ios-pebble.js","webpack://@narmi/design_system/./node_modules/core-js/internals/engine-is-ios.js","webpack://@narmi/design_system/./node_modules/core-js/internals/engine-is-node.js","webpack://@narmi/design_system/./node_modules/core-js/internals/engine-is-webos-webkit.js","webpack://@narmi/design_system/./node_modules/core-js/internals/engine-user-agent.js","webpack://@narmi/design_system/./node_modules/core-js/internals/engine-v8-version.js","webpack://@narmi/design_system/./node_modules/core-js/internals/enum-bug-keys.js","webpack://@narmi/design_system/./node_modules/core-js/internals/export.js","webpack://@narmi/design_system/./node_modules/core-js/internals/fails.js","webpack://@narmi/design_system/./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack://@narmi/design_system/./node_modules/core-js/internals/flatten-into-array.js","webpack://@narmi/design_system/./node_modules/core-js/internals/function-apply.js","webpack://@narmi/design_system/./node_modules/core-js/internals/function-bind-context.js","webpack://@narmi/design_system/./node_modules/core-js/internals/function-call.js","webpack://@narmi/design_system/./node_modules/core-js/internals/function-name.js","webpack://@narmi/design_system/./node_modules/core-js/internals/function-uncurry-this.js","webpack://@narmi/design_system/./node_modules/core-js/internals/get-built-in.js","webpack://@narmi/design_system/./node_modules/core-js/internals/get-iterator-method.js","webpack://@narmi/design_system/./node_modules/core-js/internals/get-iterator.js","webpack://@narmi/design_system/./node_modules/core-js/internals/get-method.js","webpack://@narmi/design_system/./node_modules/core-js/internals/get-substitution.js","webpack://@narmi/design_system/./node_modules/core-js/internals/global.js","webpack://@narmi/design_system/./node_modules/core-js/internals/has-own-property.js","webpack://@narmi/design_system/./node_modules/core-js/internals/hidden-keys.js","webpack://@narmi/design_system/./node_modules/core-js/internals/host-report-errors.js","webpack://@narmi/design_system/./node_modules/core-js/internals/html.js","webpack://@narmi/design_system/./node_modules/core-js/internals/ie8-dom-define.js","webpack://@narmi/design_system/./node_modules/core-js/internals/indexed-object.js","webpack://@narmi/design_system/./node_modules/core-js/internals/inherit-if-required.js","webpack://@narmi/design_system/./node_modules/core-js/internals/inspect-source.js","webpack://@narmi/design_system/./node_modules/core-js/internals/internal-state.js","webpack://@narmi/design_system/./node_modules/core-js/internals/is-array-iterator-method.js","webpack://@narmi/design_system/./node_modules/core-js/internals/is-array.js","webpack://@narmi/design_system/./node_modules/core-js/internals/is-callable.js","webpack://@narmi/design_system/./node_modules/core-js/internals/is-constructor.js","webpack://@narmi/design_system/./node_modules/core-js/internals/is-forced.js","webpack://@narmi/design_system/./node_modules/core-js/internals/is-integral-number.js","webpack://@narmi/design_system/./node_modules/core-js/internals/is-object.js","webpack://@narmi/design_system/./node_modules/core-js/internals/is-pure.js","webpack://@narmi/design_system/./node_modules/core-js/internals/is-regexp.js","webpack://@narmi/design_system/./node_modules/core-js/internals/is-symbol.js","webpack://@narmi/design_system/./node_modules/core-js/internals/iterate.js","webpack://@narmi/design_system/./node_modules/core-js/internals/iterator-close.js","webpack://@narmi/design_system/./node_modules/core-js/internals/iterators-core.js","webpack://@narmi/design_system/./node_modules/core-js/internals/iterators.js","webpack://@narmi/design_system/./node_modules/core-js/internals/length-of-array-like.js","webpack://@narmi/design_system/./node_modules/core-js/internals/microtask.js","webpack://@narmi/design_system/./node_modules/core-js/internals/native-promise-constructor.js","webpack://@narmi/design_system/./node_modules/core-js/internals/native-symbol.js","webpack://@narmi/design_system/./node_modules/core-js/internals/native-weak-map.js","webpack://@narmi/design_system/./node_modules/core-js/internals/new-promise-capability.js","webpack://@narmi/design_system/./node_modules/core-js/internals/not-a-regexp.js","webpack://@narmi/design_system/./node_modules/core-js/internals/number-parse-float.js","webpack://@narmi/design_system/./node_modules/core-js/internals/number-parse-int.js","webpack://@narmi/design_system/./node_modules/core-js/internals/object-assign.js","webpack://@narmi/design_system/./node_modules/core-js/internals/object-create.js","webpack://@narmi/design_system/./node_modules/core-js/internals/object-define-properties.js","webpack://@narmi/design_system/./node_modules/core-js/internals/object-define-property.js","webpack://@narmi/design_system/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://@narmi/design_system/./node_modules/core-js/internals/object-get-own-property-names-external.js","webpack://@narmi/design_system/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://@narmi/design_system/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://@narmi/design_system/./node_modules/core-js/internals/object-get-prototype-of.js","webpack://@narmi/design_system/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://@narmi/design_system/./node_modules/core-js/internals/object-keys-internal.js","webpack://@narmi/design_system/./node_modules/core-js/internals/object-keys.js","webpack://@narmi/design_system/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://@narmi/design_system/./node_modules/core-js/internals/object-set-prototype-of.js","webpack://@narmi/design_system/./node_modules/core-js/internals/object-to-array.js","webpack://@narmi/design_system/./node_modules/core-js/internals/object-to-string.js","webpack://@narmi/design_system/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://@narmi/design_system/./node_modules/core-js/internals/own-keys.js","webpack://@narmi/design_system/./node_modules/core-js/internals/path.js","webpack://@narmi/design_system/./node_modules/core-js/internals/perform.js","webpack://@narmi/design_system/./node_modules/core-js/internals/promise-resolve.js","webpack://@narmi/design_system/./node_modules/core-js/internals/redefine-all.js","webpack://@narmi/design_system/./node_modules/core-js/internals/redefine.js","webpack://@narmi/design_system/./node_modules/core-js/internals/regexp-exec-abstract.js","webpack://@narmi/design_system/./node_modules/core-js/internals/regexp-exec.js","webpack://@narmi/design_system/./node_modules/core-js/internals/regexp-flags.js","webpack://@narmi/design_system/./node_modules/core-js/internals/regexp-sticky-helpers.js","webpack://@narmi/design_system/./node_modules/core-js/internals/regexp-unsupported-dot-all.js","webpack://@narmi/design_system/./node_modules/core-js/internals/regexp-unsupported-ncg.js","webpack://@narmi/design_system/./node_modules/core-js/internals/require-object-coercible.js","webpack://@narmi/design_system/./node_modules/core-js/internals/same-value.js","webpack://@narmi/design_system/./node_modules/core-js/internals/set-global.js","webpack://@narmi/design_system/./node_modules/core-js/internals/set-species.js","webpack://@narmi/design_system/./node_modules/core-js/internals/set-to-string-tag.js","webpack://@narmi/design_system/./node_modules/core-js/internals/shared-key.js","webpack://@narmi/design_system/./node_modules/core-js/internals/shared-store.js","webpack://@narmi/design_system/./node_modules/core-js/internals/shared.js","webpack://@narmi/design_system/./node_modules/core-js/internals/species-constructor.js","webpack://@narmi/design_system/./node_modules/core-js/internals/string-multibyte.js","webpack://@narmi/design_system/./node_modules/core-js/internals/string-repeat.js","webpack://@narmi/design_system/./node_modules/core-js/internals/string-trim.js","webpack://@narmi/design_system/./node_modules/core-js/internals/task.js","webpack://@narmi/design_system/./node_modules/core-js/internals/this-number-value.js","webpack://@narmi/design_system/./node_modules/core-js/internals/to-absolute-index.js","webpack://@narmi/design_system/./node_modules/core-js/internals/to-indexed-object.js","webpack://@narmi/design_system/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://@narmi/design_system/./node_modules/core-js/internals/to-length.js","webpack://@narmi/design_system/./node_modules/core-js/internals/to-object.js","webpack://@narmi/design_system/./node_modules/core-js/internals/to-primitive.js","webpack://@narmi/design_system/./node_modules/core-js/internals/to-property-key.js","webpack://@narmi/design_system/./node_modules/core-js/internals/to-string-tag-support.js","webpack://@narmi/design_system/./node_modules/core-js/internals/to-string.js","webpack://@narmi/design_system/./node_modules/core-js/internals/try-to-string.js","webpack://@narmi/design_system/./node_modules/core-js/internals/uid.js","webpack://@narmi/design_system/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://@narmi/design_system/./node_modules/core-js/internals/well-known-symbol-wrapped.js","webpack://@narmi/design_system/./node_modules/core-js/internals/well-known-symbol.js","webpack://@narmi/design_system/./node_modules/core-js/internals/whitespaces.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.array.concat.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.array.filter.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.array.flat.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.array.from.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.array.includes.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.array.index-of.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.array.iterator.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.array.join.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.array.map.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.array.reduce.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.array.slice.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.array.unscopables.flat.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.function.name.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.number.constructor.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.number.is-integer.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.number.to-fixed.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.object.assign.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.object.entries.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.object.get-own-property-descriptor.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.object.get-own-property-descriptors.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.object.keys.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.object.to-string.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.parse-float.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.parse-int.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.promise.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.regexp.exec.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.regexp.to-string.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.string.includes.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.string.iterator.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.string.replace.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.string.search.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.symbol.description.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.symbol.iterator.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.symbol.js","webpack://@narmi/design_system/./node_modules/core-js/modules/web.dom-collections.for-each.js","webpack://@narmi/design_system/./node_modules/core-js/modules/web.dom-collections.iterator.js","webpack://@narmi/design_system/./node_modules/flatpickr/dist/esm/utils/polyfills.js","webpack://@narmi/design_system/./node_modules/flatpickr/dist/l10n/default.js","webpack://@narmi/design_system/./node_modules/prop-types/factoryWithThrowingShims.js","webpack://@narmi/design_system/./node_modules/prop-types/index.js","webpack://@narmi/design_system/./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://@narmi/design_system/./node_modules/react-is/cjs/react-is.production.min.js","webpack://@narmi/design_system/./node_modules/react-is/index.js","webpack://@narmi/design_system/external umd {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}","webpack://@narmi/design_system/external umd {\"root\":\"ReactDOM\",\"commonjs2\":\"react-dom\",\"commonjs\":\"react-dom\",\"amd\":\"react-dom\"}","webpack://@narmi/design_system/webpack/bootstrap","webpack://@narmi/design_system/webpack/runtime/compat get default export","webpack://@narmi/design_system/webpack/runtime/define property getters","webpack://@narmi/design_system/webpack/runtime/global","webpack://@narmi/design_system/webpack/runtime/hasOwnProperty shorthand","webpack://@narmi/design_system/webpack/runtime/make namespace object","webpack://@narmi/design_system/webpack/startup"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"react-dom\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"react-dom\"], factory);\n\telse {\n\t\tvar a = typeof exports === 'object' ? factory(require(\"react\"), require(\"react-dom\")) : factory(root[\"React\"], root[\"ReactDOM\"]);\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(typeof self !== 'undefined' ? self : this, function(__WEBPACK_EXTERNAL_MODULE__9787__, __WEBPACK_EXTERNAL_MODULE__5156__) {\nreturn ","export default function cc(names) {\n if (typeof names === \"string\" || typeof names === \"number\") return \"\" + names\n\n let out = \"\"\n\n if (Array.isArray(names)) {\n for (let i = 0, tmp; i < names.length; i++) {\n if ((tmp = cc(names[i])) !== \"\") {\n out += (out && \" \") + tmp\n }\n }\n } else {\n for (let k in names) {\n if (names[k]) out += (out && \" \") + k\n }\n }\n\n return out\n}\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\n/**\n * This is not a complete list of HTML elements;\n * only the elements we want to support in `as` props.\n */\nexport const VALID_ELEMENTS = [\n \"span\",\n \"div\",\n \"ul\",\n \"ol\",\n \"li\",\n \"p\",\n \"nav\",\n \"article\",\n \"section\",\n \"h1\",\n \"h2\",\n \"h3\",\n \"h4\",\n \"h5\",\n \"h6\",\n \"button\",\n \"a\",\n];\n\n/**\n * Utility to conditionally render different HTML elements\n * in our components. Useful for exposing `as` props:\n *\n * `<Row as=\"ul\"><Row.Item as=\"li\" /></Row>\n *\n * @usage <AsElement elementName=\"ul\" otherProp=\"this gets passed through\">\n */\nconst AsElement = ({ elementType = \"div\", children, ...rest }) => {\n let Element = \"div\"; // always fall back to div if something is wrong\n\n // extra layer of validation; only set the element name to\n // the given `elementName` if it is in our valid elements list\n if (VALID_ELEMENTS.includes(elementType)) {\n Element = elementType;\n }\n\n return <Element {...rest}>{children}</Element>;\n};\n\nAsElement.propTypes = {\n /** element to render */\n elementType: PropTypes.oneOf(VALID_ELEMENTS).isRequired,\n children: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.arrayOf(PropTypes.node),\n ]),\n};\n\nexport default AsElement;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport cc from \"classcat\";\nimport AsElement from \"../util/AsElement\";\n\n/**\n * Child component of `Row`.\n * When a `Row.Item` has a boolean prop of `shrink`, it will shirnk to content width.\n */\nconst RowItem = ({ shrink = false, as = \"div\", children }) => (\n <AsElement\n elementType={as}\n className={cc([\"nds-row-item\", { \"nds-row-item--shrink\": shrink }])}\n >\n {children}\n </AsElement>\n);\n\nRowItem.propTypes = {\n /**\n * When `true`, the row item shrinks to content size of its children.\n * Otherwise, the item will expand to fill remaining space in the row.\n */\n shrink: PropTypes.bool,\n /** The html element to render as the root node of `Row` */\n as: PropTypes.oneOf([\"div\", \"li\"]),\n children: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.arrayOf(PropTypes.node),\n ]),\n};\n\nexport default RowItem;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport AsElement from \"../util/AsElement\";\nimport RowItem from \"./RowItem\";\n\n/**\n * builds style object for `Row`\n * @param {String} alignItems\n * @param {String} gapSize\n * @returns {Object} style object for `Row`\n */\nconst _getRowStyle = (alignItems, justifyContent, gapSize) => {\n let result = {};\n if (gapSize) {\n result.gap = gapSize === \"none\" ? \"0\" : `var(--space-${gapSize})`;\n }\n result.alignItems = alignItems === \"top\" ? \"flex-start\" : alignItems;\n result.justifyContent = `flex-${justifyContent}`;\n return result;\n};\n\n/**\n * Basic flexbox helper that arranges content into a non-wrapping row.\n * `Row` will grow to fill the width of its parent container.\n * Items of `Row` will grow to fit remaining space by default.\n * When a `Row.Item` has a boolean prop of `shrink`, it will shirnk to content width.\n */\nconst Row = ({\n alignItems = \"top\",\n justifyContent = \"start\",\n gapSize = \"l\",\n as = \"div\",\n children,\n}) => (\n <AsElement\n elementType={as}\n className=\"nds-row\"\n style={_getRowStyle(alignItems, justifyContent, gapSize)}\n >\n {children}\n </AsElement>\n);\n\nRow.propTypes = {\n /**\n * Adjusts size of gap between row items.\n * Sizes map to `var(--space-<size>)` variables.\n * Set `gapSize=\"none\"` to remove gaps between all row items.\n */\n gapSize: PropTypes.oneOf([\"xxs\", \"xs\", \"s\", \"m\", \"l\", \"xl\", \"none\"]),\n /** Controls vertical alignment of items within the row */\n alignItems: PropTypes.oneOf([\"top\", \"center\"]),\n /** Controls horizontal flex justification */\n justifyContent: PropTypes.oneOf([\"start\", \"end\"]),\n /** The html element to render as the root node of `Row` */\n as: PropTypes.oneOf([\"div\", \"ul\"]),\n /** Children must be of type `Row.Item` */\n children: PropTypes.arrayOf(PropTypes.node).isRequired,\n};\n\nRow.Item = RowItem;\nexport default Row;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport cc from \"classcat\";\nimport iconSelection from \"src/icons/selection.json\";\nimport AsElement from \"src/util/AsElement\";\nimport Row from \"src/Row\";\n\nexport const VALID_ICON_NAMES = iconSelection.icons.map(\n (icon) => icon.properties.name\n);\n\n/**\n * Narmi style action buttons.\n *\n * Button renders as a `button` element by default, but can render as an `a` element\n * via the `as` prop.\n *\n * This component supports rest props; any additional props on button will be\n * passed through to the root node of `Button`.\n */\nconst Button = ({\n disabled = false,\n kind = \"primary\",\n startIcon = null,\n endIcon = null,\n children,\n label,\n onClick = () => {},\n as = \"button\",\n ...otherProps\n}) => {\n const isButtonElement = as === \"button\";\n\n // support legacy method of passing label as children\n let buttonLabel = label;\n if (!buttonLabel) {\n buttonLabel = children;\n }\n\n const Icon = ({ name }) => (\n <div className=\"alignChild--center--center\">\n <i role=\"img\" aria-label={name} className={`narmi-icon-${name}`} />\n </div>\n );\n\n Icon.propTypes = {\n name: PropTypes.string.isRequired,\n };\n\n return (\n <AsElement\n elementType={as}\n tabIndex={0}\n onClick={onClick}\n {...otherProps}\n className={cc([\n \"nds-typography\",\n \"nds-button\",\n `nds-button--${kind}`,\n {\n resetButton: as === \"button\",\n \"nds-button--disabled\": disabled,\n },\n ])}\n disabled={isButtonElement && disabled ? true : undefined}\n data-testid=\"nds-button\"\n >\n <div className=\"nds-button-content\">\n <Row gapSize=\"s\" alignItems=\"center\">\n {startIcon && (\n <Row.Item shrink>\n <Icon name={startIcon} />\n </Row.Item>\n )}\n <Row.Item>\n <span className=\"nds-button-label\">{buttonLabel}</span>\n </Row.Item>\n {endIcon && (\n <Row.Item shrink>\n <Icon name={endIcon} />\n </Row.Item>\n )}\n </Row>\n </div>\n </AsElement>\n );\n};\n\nButton.propTypes = {\n /**\n * The html element to render as the root node of `Button`.\n *\n * When rendering as an \"a\" you **MUST** pass an `href` attribute\n * for the anchor to be valid.\n */\n as: PropTypes.oneOf([\"a\", \"button\"]),\n /** Renders the button label */\n label: PropTypes.string,\n /** disables the button when set to `true` */\n disabled: PropTypes.bool,\n /** style of button to render */\n kind: PropTypes.oneOf([\"primary\", \"secondary\", \"negative\", \"menu\", \"plain\"]),\n /** Click callback, with event object passed as argument */\n onClick: PropTypes.func,\n /** Name of Narmi icon to place at the start of the label */\n startIcon: PropTypes.oneOf(VALID_ICON_NAMES),\n /** Name of Narmi icon to place at the end of the label */\n endIcon: PropTypes.oneOf(VALID_ICON_NAMES),\n /**\n * **⚠️ DEPRECATED**\n *\n * Passing children to render the button label will be removed\n * in a future release. Use the `label` prop instead.\n */\n children: PropTypes.node,\n};\n\nexport default Button;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\nconst noop = () => {};\n\n/**\n * Optionally clickable outlined content card\n *\n * **⚠️ DEPRECATED ⚠️**\n *\n * This component will be removed in a future release.\n * Please use `ContentCard` instead\n */\nconst Card = (props) => {\n const icon = props.icon ? (\n <span className={`narmi-icon-${props.icon}`}></span>\n ) : (\n \"\"\n );\n const { iconSize, ...otherProps } = props;\n return (\n <div\n className={`nds-card nds-typography ${props.classes}`}\n data-hoverable={props.hoverable.toString()}\n data-selected={props.selected.toString()}\n {...otherProps}\n >\n <div className=\"nds-card-heading\">\n <div style={{ justifyContent: \"start\", display: \"flex\" }}>\n <h4 className=\"nds-sans nds-card-title\">{props.title}&nbsp;</h4>\n {icon && (\n <div\n className=\"nds-sans nds-card-title\"\n style={{ fontSize: iconSize }}\n >\n {icon}\n </div>\n )}\n </div>\n {props.button ? props.button : \"\"}\n </div>\n {props.children ? (\n <div className=\"nds-card-content\">{props.children}</div>\n ) : (\n \"\"\n )}\n </div>\n );\n};\n\nCard.propTypes = {\n /** JSX to render in the title */\n title: PropTypes.node,\n /** JSX to render in content area */\n children: PropTypes.node.isRequired,\n /** JSX to render in the top right of the card */\n button: PropTypes.node,\n /** `narmi-icon` name */\n icon: PropTypes.string,\n /** `narmi-icon` size in px */\n iconSize: PropTypes.string,\n /** When true, the Card will change style on hover */\n hoverable: PropTypes.bool,\n /** When true, the Card will change style to appear selected */\n selected: PropTypes.bool,\n /** classes to add to the `className` string of the root Card element */\n classes: PropTypes.string,\n /** Click callback, with event object passed as argument */\n onClick: PropTypes.func,\n};\n\nCard.defaultProps = {\n hoverable: false,\n selected: false,\n icon: \"\",\n iconSize: \"20px\",\n classes: \"\",\n onClick: noop,\n};\n\nexport default Card;\n","// https://www.w3schools.com/howto/tryit.asp?filename=tryhow_css_custom_checkbox\nimport React, { useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport cc from \"classcat\";\n\n/**\n * Narmi styled checkbox with built-in label.\n */\nconst Checkbox = ({\n label,\n onChange = () => {},\n id,\n name,\n defaultChecked,\n checked = false,\n value,\n kind = \"normal\",\n ...rest\n}) => {\n const [isChecked, setIsChecked] = useState(\n checked || defaultChecked || false\n );\n const [isFocused, setIsFocused] = useState(false);\n const isCard = kind === \"card\";\n\n const handleChange = (e) => {\n setIsChecked((isChecked) => !isChecked);\n onChange(e);\n };\n\n const handleFocus = () => {\n setIsFocused(true);\n };\n\n const handleBlur = () => {\n setIsFocused(false);\n };\n\n return (\n <>\n <label\n className={cc([\n \"nds-typograhy\",\n `nds-checkbox nds-checkbox--${kind}`,\n {\n \"nds-checkbox--checked\": isChecked,\n \"nds-checkbox--focused\": isFocused,\n \"padding--all rounded--all border--all\": isCard,\n },\n ])}\n >\n {label}\n <input\n onFocus={handleFocus}\n onBlur={handleBlur}\n onChange={handleChange}\n checked={isChecked}\n defaultChecked={defaultChecked}\n name={name}\n id={id}\n value={value}\n {...rest}\n type=\"checkbox\"\n />\n <span className=\"narmi-icon-check\"></span>\n </label>\n </>\n );\n};\n\nCheckbox.propTypes = {\n /** Content of `label` element */\n label: PropTypes.string.isRequired,\n /** Change callback invoked when the value of the `input` changes */\n onChange: PropTypes.func,\n /** `id` attribute of `input` */\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n /** `name` attribute of `input` */\n name: PropTypes.string,\n /**\n * ⚠️ DEPRECATED\n *\n * Uncontrolled Checkbox props will be removed in a future release.\n * Use `checked` instead to use Checkbox as a fully controlled input.\n */\n defaultChecked: PropTypes.bool,\n /** Sets the checkbox checked value */\n checked: PropTypes.bool,\n /** Sets the `value` attribute of the `input` */\n value: PropTypes.string,\n /**\n * `normal` - visually matche a checkbox input\n *\n * `card` - visually present as a toggleable card\n */\n kind: PropTypes.oneOf([\"normal\", \"card\"]),\n};\n\nexport default Checkbox;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport cc from \"classcat\";\n\n/**\n * Narmi style content containers, with support for rendering as an interactive button.\n */\nconst ContentCard = ({\n type, // DEPRECATED\n kind = \"plain\",\n paddingSize = \"l\",\n onClick = () => {},\n isSelected = false,\n children,\n}) => {\n const variant = type !== undefined ? type : kind; // support deprecated prop\n const isInteractive = variant === \"interactive\";\n\n return (\n <div\n data-testid=\"ndsContentCard\"\n role={isInteractive ? \"button\" : undefined}\n tabIndex={isInteractive ? \"0\" : undefined}\n aria-pressed={isInteractive ? isSelected : undefined}\n onClick={isInteractive ? onClick : undefined}\n onKeyUp={\n isInteractive\n ? ({ key }) => {\n if (key === \"Enter\") {\n onClick();\n }\n }\n : undefined\n }\n className={cc([\n \"nds-contentCard\",\n `nds-contentCard--${variant}`,\n `padding--all--${paddingSize}`,\n \"rounded--all bgColor--white\",\n { \"button--reset\": isInteractive },\n ])}\n >\n {children}\n </div>\n );\n};\n\nContentCard.propTypes = {\n /** Accepts any content as children */\n children: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.arrayOf(PropTypes.node),\n ]).isRequired,\n /**\n * Amount of padding to add on all sides of card.\n * For custom padding control, use `none` and compose your own element(s)\n * in ContentCard children.\n */\n paddingSize: PropTypes.oneOf([\"xs\", \"s\", \"m\", \"l\", \"xl\", \"none\"]),\n /**\n * Kind of card to render.\n *\n * `plain`: flat, rounded rect\n *\n * `elevated`: rounded rect with shadow\n *\n * `interactive`: rounded rect with border, hover styles, and click handler\n */\n kind: PropTypes.oneOf([\"plain\", \"elevated\", \"interactive\"]),\n /** DEPRECATED - use `kind` instead. This will be removed in a future release */\n type: PropTypes.oneOf([\"plain\", \"elevated\", \"interactive\"]),\n /**\n * Only valid for `interactive` card type.\n * Callback for card click event.\n */\n onClick: (props, propName) => {\n const isInteractive = props.type === \"interactive\";\n // must be a function\n if (isInteractive && typeof props[propName] != \"function\") {\n return new Error(\"ContentCard: `onClick` must be a function\");\n }\n // onClick required for `interactive` type\n if (isInteractive && props[propName] === undefined) {\n return new Error(\n \"ContentCard: `onClick` is required for `interactive` type\"\n );\n }\n // onClick invalid for non-interactive types\n if (props[propName] == \"function\" && !isInteractive) {\n return new Error(\n \"ContentCard: `onClick` is only valid for `interactive` type\"\n );\n }\n },\n /**\n * Only applicable for `interactive` type.\n * Renders card in visually selected state with appropriate attributes.\n */\n isSelected: PropTypes.bool,\n};\n\nexport default ContentCard;\n","/* eslint-disable jsx-a11y/no-static-element-interactions,jsx-a11y/click-events-have-key-events */\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\n\n/*\nThe Narmi TextInput component is designed for text-based form fields.\n\nIf `multiline` is true, it creates a <textarea>; otherwise, it creates an <input type=\"text\">.\nIf `icon` is provided, the value of the icon property must match an available icon class.\nBy default, if neither `multiline` nor `icon` are provided, an overhanging label will be shown in the input.\n\n*/\n\nconst Error = ({ error }) => {\n if (!error) return null;\n return (\n <div className=\"nds-input-error\">\n <div className=\"fontSize--s margin--right--xxs narmi-icon-x-circle\" />\n {error}\n </div>\n );\n};\n\nError.propTypes = {\n error: PropTypes.string,\n};\n\n/**\n * PRIVATE\n *\n * This component has no stories because it is only used internally by NDS.\n * In a future release, this base Input component will be merged with TextInput.\n */\nconst Input = ({\n id,\n label,\n startIconClass,\n disabled,\n multiline = false,\n decoration,\n error,\n search,\n onClick,\n style,\n children,\n ...props\n}) => {\n const className = [\n \"nds-input\",\n disabled ? \"disabled\" : \"\",\n props.multiline ? \"multiline\" : \"\",\n error ? \"error\" : \"\",\n search ? \"search\" : \"\",\n ].join(\" \");\n\n return (\n <div className={className} onClick={onClick} style={style}>\n <div className=\"nds-input-box\">\n {startIconClass ? (\n <div className={`nds-input-icon ${startIconClass}`}></div>\n ) : (\n \"\"\n )}\n <div\n className={`nds-input-column ${\n !label || (startIconClass && !multiline) ? \"no-label\" : \"\"\n }`}\n >\n {children}\n {decoration}\n {!multiline ? <label htmlFor={id}>{label}</label> : \"\"}\n </div>\n </div>\n <Error error={error} />\n </div>\n );\n};\n\nInput.propTypes = {\n id: PropTypes.string,\n label: PropTypes.string,\n /** full `narmi-icon-<shape>` className for icon at start of input*/\n startIconClass: PropTypes.node,\n decoration: PropTypes.oneOfType([PropTypes.node, PropTypes.element]),\n multiline: PropTypes.bool,\n disabled: PropTypes.bool,\n search: PropTypes.bool,\n onClick: PropTypes.func,\n style: PropTypes.object,\n error: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.arrayOf(PropTypes.node),\n ]),\n};\n\nexport default Input;\n","export const HOOKS = [\n \"onChange\",\n \"onClose\",\n \"onDayCreate\",\n \"onDestroy\",\n \"onKeyDown\",\n \"onMonthChange\",\n \"onOpen\",\n \"onParseConfig\",\n \"onReady\",\n \"onValueUpdate\",\n \"onYearChange\",\n \"onPreCalendarPosition\",\n];\nexport const defaults = {\n _disable: [],\n allowInput: false,\n allowInvalidPreload: false,\n altFormat: \"F j, Y\",\n altInput: false,\n altInputClass: \"form-control input\",\n animate: typeof window === \"object\" &&\n window.navigator.userAgent.indexOf(\"MSIE\") === -1,\n ariaDateFormat: \"F j, Y\",\n autoFillDefaultTime: true,\n clickOpens: true,\n closeOnSelect: true,\n conjunction: \", \",\n dateFormat: \"Y-m-d\",\n defaultHour: 12,\n defaultMinute: 0,\n defaultSeconds: 0,\n disable: [],\n disableMobile: false,\n enableSeconds: false,\n enableTime: false,\n errorHandler: (err) => typeof console !== \"undefined\" && console.warn(err),\n getWeek: (givenDate) => {\n const date = new Date(givenDate.getTime());\n date.setHours(0, 0, 0, 0);\n date.setDate(date.getDate() + 3 - ((date.getDay() + 6) % 7));\n var week1 = new Date(date.getFullYear(), 0, 4);\n return (1 +\n Math.round(((date.getTime() - week1.getTime()) / 86400000 -\n 3 +\n ((week1.getDay() + 6) % 7)) /\n 7));\n },\n hourIncrement: 1,\n ignoredFocusElements: [],\n inline: false,\n locale: \"default\",\n minuteIncrement: 5,\n mode: \"single\",\n monthSelectorType: \"dropdown\",\n nextArrow: \"<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 17 17'><g></g><path d='M13.207 8.472l-7.854 7.854-0.707-0.707 7.146-7.146-7.146-7.148 0.707-0.707 7.854 7.854z' /></svg>\",\n noCalendar: false,\n now: new Date(),\n onChange: [],\n onClose: [],\n onDayCreate: [],\n onDestroy: [],\n onKeyDown: [],\n onMonthChange: [],\n onOpen: [],\n onParseConfig: [],\n onReady: [],\n onValueUpdate: [],\n onYearChange: [],\n onPreCalendarPosition: [],\n plugins: [],\n position: \"auto\",\n positionElement: undefined,\n prevArrow: \"<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 17 17'><g></g><path d='M5.207 8.471l7.146 7.147-0.707 0.707-7.853-7.854 7.854-7.853 0.707 0.707-7.147 7.146z' /></svg>\",\n shorthandCurrentMonth: false,\n showMonths: 1,\n static: false,\n time_24hr: false,\n weekNumbers: false,\n wrap: false,\n};\n","export const english = {\n weekdays: {\n shorthand: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n longhand: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ],\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n longhand: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n },\n daysInMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],\n firstDayOfWeek: 0,\n ordinal: (nth) => {\n const s = nth % 100;\n if (s > 3 && s < 21)\n return \"th\";\n switch (s % 10) {\n case 1:\n return \"st\";\n case 2:\n return \"nd\";\n case 3:\n return \"rd\";\n default:\n return \"th\";\n }\n },\n rangeSeparator: \" to \",\n weekAbbreviation: \"Wk\",\n scrollTitle: \"Scroll to increment\",\n toggleTitle: \"Click to toggle\",\n amPM: [\"AM\", \"PM\"],\n yearAriaLabel: \"Year\",\n monthAriaLabel: \"Month\",\n hourAriaLabel: \"Hour\",\n minuteAriaLabel: \"Minute\",\n time_24hr: false,\n};\nexport default english;\n","export const pad = (number, length = 2) => `000${number}`.slice(length * -1);\nexport const int = (bool) => (bool === true ? 1 : 0);\nexport function debounce(fn, wait) {\n let t;\n return function () {\n clearTimeout(t);\n t = setTimeout(() => fn.apply(this, arguments), wait);\n };\n}\nexport const arrayify = (obj) => obj instanceof Array ? obj : [obj];\n","export function toggleClass(elem, className, bool) {\n if (bool === true)\n return elem.classList.add(className);\n elem.classList.remove(className);\n}\nexport function createElement(tag, className, content) {\n const e = window.document.createElement(tag);\n className = className || \"\";\n content = content || \"\";\n e.className = className;\n if (content !== undefined)\n e.textContent = content;\n return e;\n}\nexport function clearNode(node) {\n while (node.firstChild)\n node.removeChild(node.firstChild);\n}\nexport function findParent(node, condition) {\n if (condition(node))\n return node;\n else if (node.parentNode)\n return findParent(node.parentNode, condition);\n return undefined;\n}\nexport function createNumberInput(inputClassName, opts) {\n const wrapper = createElement(\"div\", \"numInputWrapper\"), numInput = createElement(\"input\", \"numInput \" + inputClassName), arrowUp = createElement(\"span\", \"arrowUp\"), arrowDown = createElement(\"span\", \"arrowDown\");\n if (navigator.userAgent.indexOf(\"MSIE 9.0\") === -1) {\n numInput.type = \"number\";\n }\n else {\n numInput.type = \"text\";\n numInput.pattern = \"\\\\d*\";\n }\n if (opts !== undefined)\n for (const key in opts)\n numInput.setAttribute(key, opts[key]);\n wrapper.appendChild(numInput);\n wrapper.appendChild(arrowUp);\n wrapper.appendChild(arrowDown);\n return wrapper;\n}\nexport function getEventTarget(event) {\n try {\n if (typeof event.composedPath === \"function\") {\n const path = event.composedPath();\n return path[0];\n }\n return event.target;\n }\n catch (error) {\n return event.target;\n }\n}\n","import { int, pad } from \"../utils\";\nconst doNothing = () => undefined;\nexport const monthToStr = (monthNumber, shorthand, locale) => locale.months[shorthand ? \"shorthand\" : \"longhand\"][monthNumber];\nexport const revFormat = {\n D: doNothing,\n F: function (dateObj, monthName, locale) {\n dateObj.setMonth(locale.months.longhand.indexOf(monthName));\n },\n G: (dateObj, hour) => {\n dateObj.setHours(parseFloat(hour));\n },\n H: (dateObj, hour) => {\n dateObj.setHours(parseFloat(hour));\n },\n J: (dateObj, day) => {\n dateObj.setDate(parseFloat(day));\n },\n K: (dateObj, amPM, locale) => {\n dateObj.setHours((dateObj.getHours() % 12) +\n 12 * int(new RegExp(locale.amPM[1], \"i\").test(amPM)));\n },\n M: function (dateObj, shortMonth, locale) {\n dateObj.setMonth(locale.months.shorthand.indexOf(shortMonth));\n },\n S: (dateObj, seconds) => {\n dateObj.setSeconds(parseFloat(seconds));\n },\n U: (_, unixSeconds) => new Date(parseFloat(unixSeconds) * 1000),\n W: function (dateObj, weekNum, locale) {\n const weekNumber = parseInt(weekNum);\n const date = new Date(dateObj.getFullYear(), 0, 2 + (weekNumber - 1) * 7, 0, 0, 0, 0);\n date.setDate(date.getDate() - date.getDay() + locale.firstDayOfWeek);\n return date;\n },\n Y: (dateObj, year) => {\n dateObj.setFullYear(parseFloat(year));\n },\n Z: (_, ISODate) => new Date(ISODate),\n d: (dateObj, day) => {\n dateObj.setDate(parseFloat(day));\n },\n h: (dateObj, hour) => {\n dateObj.setHours(parseFloat(hour));\n },\n i: (dateObj, minutes) => {\n dateObj.setMinutes(parseFloat(minutes));\n },\n j: (dateObj, day) => {\n dateObj.setDate(parseFloat(day));\n },\n l: doNothing,\n m: (dateObj, month) => {\n dateObj.setMonth(parseFloat(month) - 1);\n },\n n: (dateObj, month) => {\n dateObj.setMonth(parseFloat(month) - 1);\n },\n s: (dateObj, seconds) => {\n dateObj.setSeconds(parseFloat(seconds));\n },\n u: (_, unixMillSeconds) => new Date(parseFloat(unixMillSeconds)),\n w: doNothing,\n y: (dateObj, year) => {\n dateObj.setFullYear(2000 + parseFloat(year));\n },\n};\nexport const tokenRegex = {\n D: \"(\\\\w+)\",\n F: \"(\\\\w+)\",\n G: \"(\\\\d\\\\d|\\\\d)\",\n H: \"(\\\\d\\\\d|\\\\d)\",\n J: \"(\\\\d\\\\d|\\\\d)\\\\w+\",\n K: \"\",\n M: \"(\\\\w+)\",\n S: \"(\\\\d\\\\d|\\\\d)\",\n U: \"(.+)\",\n W: \"(\\\\d\\\\d|\\\\d)\",\n Y: \"(\\\\d{4})\",\n Z: \"(.+)\",\n d: \"(\\\\d\\\\d|\\\\d)\",\n h: \"(\\\\d\\\\d|\\\\d)\",\n i: \"(\\\\d\\\\d|\\\\d)\",\n j: \"(\\\\d\\\\d|\\\\d)\",\n l: \"(\\\\w+)\",\n m: \"(\\\\d\\\\d|\\\\d)\",\n n: \"(\\\\d\\\\d|\\\\d)\",\n s: \"(\\\\d\\\\d|\\\\d)\",\n u: \"(.+)\",\n w: \"(\\\\d\\\\d|\\\\d)\",\n y: \"(\\\\d{2})\",\n};\nexport const formats = {\n Z: (date) => date.toISOString(),\n D: function (date, locale, options) {\n return locale.weekdays.shorthand[formats.w(date, locale, options)];\n },\n F: function (date, locale, options) {\n return monthToStr(formats.n(date, locale, options) - 1, false, locale);\n },\n G: function (date, locale, options) {\n return pad(formats.h(date, locale, options));\n },\n H: (date) => pad(date.getHours()),\n J: function (date, locale) {\n return locale.ordinal !== undefined\n ? date.getDate() + locale.ordinal(date.getDate())\n : date.getDate();\n },\n K: (date, locale) => locale.amPM[int(date.getHours() > 11)],\n M: function (date, locale) {\n return monthToStr(date.getMonth(), true, locale);\n },\n S: (date) => pad(date.getSeconds()),\n U: (date) => date.getTime() / 1000,\n W: function (date, _, options) {\n return options.getWeek(date);\n },\n Y: (date) => pad(date.getFullYear(), 4),\n d: (date) => pad(date.getDate()),\n h: (date) => (date.getHours() % 12 ? date.getHours() % 12 : 12),\n i: (date) => pad(date.getMinutes()),\n j: (date) => date.getDate(),\n l: function (date, locale) {\n return locale.weekdays.longhand[date.getDay()];\n },\n m: (date) => pad(date.getMonth() + 1),\n n: (date) => date.getMonth() + 1,\n s: (date) => date.getSeconds(),\n u: (date) => date.getTime(),\n w: (date) => date.getDay(),\n y: (date) => String(date.getFullYear()).substring(2),\n};\n","import { tokenRegex, revFormat, formats, } from \"./formatting\";\nimport { defaults } from \"../types/options\";\nimport { english } from \"../l10n/default\";\nexport const createDateFormatter = ({ config = defaults, l10n = english, isMobile = false, }) => (dateObj, frmt, overrideLocale) => {\n const locale = overrideLocale || l10n;\n if (config.formatDate !== undefined && !isMobile) {\n return config.formatDate(dateObj, frmt, locale);\n }\n return frmt\n .split(\"\")\n .map((c, i, arr) => formats[c] && arr[i - 1] !== \"\\\\\"\n ? formats[c](dateObj, locale, config)\n : c !== \"\\\\\"\n ? c\n : \"\")\n .join(\"\");\n};\nexport const createDateParser = ({ config = defaults, l10n = english }) => (date, givenFormat, timeless, customLocale) => {\n if (date !== 0 && !date)\n return undefined;\n const locale = customLocale || l10n;\n let parsedDate;\n const dateOrig = date;\n if (date instanceof Date)\n parsedDate = new Date(date.getTime());\n else if (typeof date !== \"string\" &&\n date.toFixed !== undefined)\n parsedDate = new Date(date);\n else if (typeof date === \"string\") {\n const format = givenFormat || (config || defaults).dateFormat;\n const datestr = String(date).trim();\n if (datestr === \"today\") {\n parsedDate = new Date();\n timeless = true;\n }\n else if (/Z$/.test(datestr) ||\n /GMT$/.test(datestr))\n parsedDate = new Date(date);\n else if (config && config.parseDate)\n parsedDate = config.parseDate(date, format);\n else {\n parsedDate =\n !config || !config.noCalendar\n ? new Date(new Date().getFullYear(), 0, 1, 0, 0, 0, 0)\n : new Date(new Date().setHours(0, 0, 0, 0));\n let matched, ops = [];\n for (let i = 0, matchIndex = 0, regexStr = \"\"; i < format.length; i++) {\n const token = format[i];\n const isBackSlash = token === \"\\\\\";\n const escaped = format[i - 1] === \"\\\\\" || isBackSlash;\n if (tokenRegex[token] && !escaped) {\n regexStr += tokenRegex[token];\n const match = new RegExp(regexStr).exec(date);\n if (match && (matched = true)) {\n ops[token !== \"Y\" ? \"push\" : \"unshift\"]({\n fn: revFormat[token],\n val: match[++matchIndex],\n });\n }\n }\n else if (!isBackSlash)\n regexStr += \".\";\n ops.forEach(({ fn, val }) => (parsedDate = fn(parsedDate, val, locale) || parsedDate));\n }\n parsedDate = matched ? parsedDate : undefined;\n }\n }\n if (!(parsedDate instanceof Date && !isNaN(parsedDate.getTime()))) {\n config.errorHandler(new Error(`Invalid date provided: ${dateOrig}`));\n return undefined;\n }\n if (timeless === true)\n parsedDate.setHours(0, 0, 0, 0);\n return parsedDate;\n};\nexport function compareDates(date1, date2, timeless = true) {\n if (timeless !== false) {\n return (new Date(date1.getTime()).setHours(0, 0, 0, 0) -\n new Date(date2.getTime()).setHours(0, 0, 0, 0));\n }\n return date1.getTime() - date2.getTime();\n}\nexport function compareTimes(date1, date2) {\n return (3600 * (date1.getHours() - date2.getHours()) +\n 60 * (date1.getMinutes() - date2.getMinutes()) +\n date1.getSeconds() -\n date2.getSeconds());\n}\nexport const isBetween = (ts, ts1, ts2) => {\n return ts > Math.min(ts1, ts2) && ts < Math.max(ts1, ts2);\n};\nexport const duration = {\n DAY: 86400000,\n};\nexport function getDefaultHours(config) {\n let hours = config.defaultHour;\n let minutes = config.defaultMinute;\n let seconds = config.defaultSeconds;\n if (config.minDate !== undefined) {\n const minHour = config.minDate.getHours();\n const minMinutes = config.minDate.getMinutes();\n const minSeconds = config.minDate.getSeconds();\n if (hours < minHour) {\n hours = minHour;\n }\n if (hours === minHour && minutes < minMinutes) {\n minutes = minMinutes;\n }\n if (hours === minHour && minutes === minMinutes && seconds < minSeconds)\n seconds = config.minDate.getSeconds();\n }\n if (config.maxDate !== undefined) {\n const maxHr = config.maxDate.getHours();\n const maxMinutes = config.maxDate.getMinutes();\n hours = Math.min(hours, maxHr);\n if (hours === maxHr)\n minutes = Math.min(maxMinutes, minutes);\n if (hours === maxHr && minutes === maxMinutes)\n seconds = config.maxDate.getSeconds();\n }\n return { hours, minutes, seconds };\n}\n","import { defaults as defaultOptions, HOOKS, } from \"./types/options\";\nimport English from \"./l10n/default\";\nimport { arrayify, debounce, int, pad } from \"./utils\";\nimport { clearNode, createElement, createNumberInput, findParent, toggleClass, getEventTarget, } from \"./utils/dom\";\nimport { compareDates, createDateParser, createDateFormatter, duration, isBetween, getDefaultHours, } from \"./utils/dates\";\nimport { tokenRegex, monthToStr } from \"./utils/formatting\";\nimport \"./utils/polyfills\";\nconst DEBOUNCED_CHANGE_MS = 300;\nfunction FlatpickrInstance(element, instanceConfig) {\n const self = {\n config: Object.assign(Object.assign({}, defaultOptions), flatpickr.defaultConfig),\n l10n: English,\n };\n self.parseDate = createDateParser({ config: self.config, l10n: self.l10n });\n self._handlers = [];\n self.pluginElements = [];\n self.loadedPlugins = [];\n self._bind = bind;\n self._setHoursFromDate = setHoursFromDate;\n self._positionCalendar = positionCalendar;\n self.changeMonth = changeMonth;\n self.changeYear = changeYear;\n self.clear = clear;\n self.close = close;\n self._createElement = createElement;\n self.destroy = destroy;\n self.isEnabled = isEnabled;\n self.jumpToDate = jumpToDate;\n self.open = open;\n self.redraw = redraw;\n self.set = set;\n self.setDate = setDate;\n self.toggle = toggle;\n function setupHelperFunctions() {\n self.utils = {\n getDaysInMonth(month = self.currentMonth, yr = self.currentYear) {\n if (month === 1 && ((yr % 4 === 0 && yr % 100 !== 0) || yr % 400 === 0))\n return 29;\n return self.l10n.daysInMonth[month];\n },\n };\n }\n function init() {\n self.element = self.input = element;\n self.isOpen = false;\n parseConfig();\n setupLocale();\n setupInputs();\n setupDates();\n setupHelperFunctions();\n if (!self.isMobile)\n build();\n bindEvents();\n if (self.selectedDates.length || self.config.noCalendar) {\n if (self.config.enableTime) {\n setHoursFromDate(self.config.noCalendar ? self.latestSelectedDateObj : undefined);\n }\n updateValue(false);\n }\n setCalendarWidth();\n const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n if (!self.isMobile && isSafari) {\n positionCalendar();\n }\n triggerEvent(\"onReady\");\n }\n function bindToInstance(fn) {\n return fn.bind(self);\n }\n function setCalendarWidth() {\n const config = self.config;\n if (config.weekNumbers === false && config.showMonths === 1) {\n return;\n }\n else if (config.noCalendar !== true) {\n window.requestAnimationFrame(function () {\n if (self.calendarContainer !== undefined) {\n self.calendarContainer.style.visibility = \"hidden\";\n self.calendarContainer.style.display = \"block\";\n }\n if (self.daysContainer !== undefined) {\n const daysWidth = (self.days.offsetWidth + 1) * config.showMonths;\n self.daysContainer.style.width = daysWidth + \"px\";\n self.calendarContainer.style.width =\n daysWidth +\n (self.weekWrapper !== undefined\n ? self.weekWrapper.offsetWidth\n : 0) +\n \"px\";\n self.calendarContainer.style.removeProperty(\"visibility\");\n self.calendarContainer.style.removeProperty(\"display\");\n }\n });\n }\n }\n function updateTime(e) {\n if (self.selectedDates.length === 0) {\n const defaultDate = self.config.minDate === undefined ||\n compareDates(new Date(), self.config.minDate) >= 0\n ? new Date()\n : new Date(self.config.minDate.getTime());\n const defaults = getDefaultHours(self.config);\n defaultDate.setHours(defaults.hours, defaults.minutes, defaults.seconds, defaultDate.getMilliseconds());\n self.selectedDates = [defaultDate];\n self.latestSelectedDateObj = defaultDate;\n }\n if (e !== undefined && e.type !== \"blur\") {\n timeWrapper(e);\n }\n const prevValue = self._input.value;\n setHoursFromInputs();\n updateValue();\n if (self._input.value !== prevValue) {\n self._debouncedChange();\n }\n }\n function ampm2military(hour, amPM) {\n return (hour % 12) + 12 * int(amPM === self.l10n.amPM[1]);\n }\n function military2ampm(hour) {\n switch (hour % 24) {\n case 0:\n case 12:\n return 12;\n default:\n return hour % 12;\n }\n }\n function setHoursFromInputs() {\n if (self.hourElement === undefined || self.minuteElement === undefined)\n return;\n let hours = (parseInt(self.hourElement.value.slice(-2), 10) || 0) % 24, minutes = (parseInt(self.minuteElement.value, 10) || 0) % 60, seconds = self.secondElement !== undefined\n ? (parseInt(self.secondElement.value, 10) || 0) % 60\n : 0;\n if (self.amPM !== undefined) {\n hours = ampm2military(hours, self.amPM.textContent);\n }\n const limitMinHours = self.config.minTime !== undefined ||\n (self.config.minDate &&\n self.minDateHasTime &&\n self.latestSelectedDateObj &&\n compareDates(self.latestSelectedDateObj, self.config.minDate, true) ===\n 0);\n const limitMaxHours = self.config.maxTime !== undefined ||\n (self.config.maxDate &&\n self.maxDateHasTime &&\n self.latestSelectedDateObj &&\n compareDates(self.latestSelectedDateObj, self.config.maxDate, true) ===\n 0);\n if (limitMaxHours) {\n const maxTime = self.config.maxTime !== undefined\n ? self.config.maxTime\n : self.config.maxDate;\n hours = Math.min(hours, maxTime.getHours());\n if (hours === maxTime.getHours())\n minutes = Math.min(minutes, maxTime.getMinutes());\n if (minutes === maxTime.getMinutes())\n seconds = Math.min(seconds, maxTime.getSeconds());\n }\n if (limitMinHours) {\n const minTime = self.config.minTime !== undefined\n ? self.config.minTime\n : self.config.minDate;\n hours = Math.max(hours, minTime.getHours());\n if (hours === minTime.getHours() && minutes < minTime.getMinutes())\n minutes = minTime.getMinutes();\n if (minutes === minTime.getMinutes())\n seconds = Math.max(seconds, minTime.getSeconds());\n }\n setHours(hours, minutes, seconds);\n }\n function setHoursFromDate(dateObj) {\n const date = dateObj || self.latestSelectedDateObj;\n if (date) {\n setHours(date.getHours(), date.getMinutes(), date.getSeconds());\n }\n }\n function setHours(hours, minutes, seconds) {\n if (self.latestSelectedDateObj !== undefined) {\n self.latestSelectedDateObj.setHours(hours % 24, minutes, seconds || 0, 0);\n }\n if (!self.hourElement || !self.minuteElement || self.isMobile)\n return;\n self.hourElement.value = pad(!self.config.time_24hr\n ? ((12 + hours) % 12) + 12 * int(hours % 12 === 0)\n : hours);\n self.minuteElement.value = pad(minutes);\n if (self.amPM !== undefined)\n self.amPM.textContent = self.l10n.amPM[int(hours >= 12)];\n if (self.secondElement !== undefined)\n self.secondElement.value = pad(seconds);\n }\n function onYearInput(event) {\n const eventTarget = getEventTarget(event);\n const year = parseInt(eventTarget.value) + (event.delta || 0);\n if (year / 1000 > 1 ||\n (event.key === \"Enter\" && !/[^\\d]/.test(year.toString()))) {\n changeYear(year);\n }\n }\n function bind(element, event, handler, options) {\n if (event instanceof Array)\n return event.forEach((ev) => bind(element, ev, handler, options));\n if (element instanceof Array)\n return element.forEach((el) => bind(el, event, handler, options));\n element.addEventListener(event, handler, options);\n self._handlers.push({\n remove: () => element.removeEventListener(event, handler),\n });\n }\n function triggerChange() {\n triggerEvent(\"onChange\");\n }\n function bindEvents() {\n if (self.config.wrap) {\n [\"open\", \"close\", \"toggle\", \"clear\"].forEach((evt) => {\n Array.prototype.forEach.call(self.element.querySelectorAll(`[data-${evt}]`), (el) => bind(el, \"click\", self[evt]));\n });\n }\n if (self.isMobile) {\n setupMobile();\n return;\n }\n const debouncedResize = debounce(onResize, 50);\n self._debouncedChange = debounce(triggerChange, DEBOUNCED_CHANGE_MS);\n if (self.daysContainer && !/iPhone|iPad|iPod/i.test(navigator.userAgent))\n bind(self.daysContainer, \"mouseover\", (e) => {\n if (self.config.mode === \"range\")\n onMouseOver(getEventTarget(e));\n });\n bind(window.document.body, \"keydown\", onKeyDown);\n if (!self.config.inline && !self.config.static)\n bind(window, \"resize\", debouncedResize);\n if (window.ontouchstart !== undefined)\n bind(window.document, \"touchstart\", documentClick);\n else\n bind(window.document, \"mousedown\", documentClick);\n bind(window.document, \"focus\", documentClick, { capture: true });\n if (self.config.clickOpens === true) {\n bind(self._input, \"focus\", self.open);\n bind(self._input, \"click\", self.open);\n }\n if (self.daysContainer !== undefined) {\n bind(self.monthNav, \"click\", onMonthNavClick);\n bind(self.monthNav, [\"keyup\", \"increment\"], onYearInput);\n bind(self.daysContainer, \"click\", selectDate);\n }\n if (self.timeContainer !== undefined &&\n self.minuteElement !== undefined &&\n self.hourElement !== undefined) {\n const selText = (e) => getEventTarget(e).select();\n bind(self.timeContainer, [\"increment\"], updateTime);\n bind(self.timeContainer, \"blur\", updateTime, { capture: true });\n bind(self.timeContainer, \"click\", timeIncrement);\n bind([self.hourElement, self.minuteElement], [\"focus\", \"click\"], selText);\n if (self.secondElement !== undefined)\n bind(self.secondElement, \"focus\", () => self.secondElement && self.secondElement.select());\n if (self.amPM !== undefined) {\n bind(self.amPM, \"click\", (e) => {\n updateTime(e);\n triggerChange();\n });\n }\n }\n if (self.config.allowInput) {\n bind(self._input, \"blur\", onBlur);\n }\n }\n function jumpToDate(jumpDate, triggerChange) {\n const jumpTo = jumpDate !== undefined\n ? self.parseDate(jumpDate)\n : self.latestSelectedDateObj ||\n (self.config.minDate && self.config.minDate > self.now\n ? self.config.minDate\n : self.config.maxDate && self.config.maxDate < self.now\n ? self.config.maxDate\n : self.now);\n const oldYear = self.currentYear;\n const oldMonth = self.currentMonth;\n try {\n if (jumpTo !== undefined) {\n self.currentYear = jumpTo.getFullYear();\n self.currentMonth = jumpTo.getMonth();\n }\n }\n catch (e) {\n e.message = \"Invalid date supplied: \" + jumpTo;\n self.config.errorHandler(e);\n }\n if (triggerChange && self.currentYear !== oldYear) {\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n if (triggerChange &&\n (self.currentYear !== oldYear || self.currentMonth !== oldMonth)) {\n triggerEvent(\"onMonthChange\");\n }\n self.redraw();\n }\n function timeIncrement(e) {\n const eventTarget = getEventTarget(e);\n if (~eventTarget.className.indexOf(\"arrow\"))\n incrementNumInput(e, eventTarget.classList.contains(\"arrowUp\") ? 1 : -1);\n }\n function incrementNumInput(e, delta, inputElem) {\n const target = e && getEventTarget(e);\n const input = inputElem ||\n (target && target.parentNode && target.parentNode.firstChild);\n const event = createEvent(\"increment\");\n event.delta = delta;\n input && input.dispatchEvent(event);\n }\n function build() {\n const fragment = window.document.createDocumentFragment();\n self.calendarContainer = createElement(\"div\", \"flatpickr-calendar\");\n self.calendarContainer.tabIndex = -1;\n if (!self.config.noCalendar) {\n fragment.appendChild(buildMonthNav());\n self.innerContainer = createElement(\"div\", \"flatpickr-innerContainer\");\n if (self.config.weekNumbers) {\n const { weekWrapper, weekNumbers } = buildWeeks();\n self.innerContainer.appendChild(weekWrapper);\n self.weekNumbers = weekNumbers;\n self.weekWrapper = weekWrapper;\n }\n self.rContainer = createElement(\"div\", \"flatpickr-rContainer\");\n self.rContainer.appendChild(buildWeekdays());\n if (!self.daysContainer) {\n self.daysContainer = createElement(\"div\", \"flatpickr-days\");\n self.daysContainer.tabIndex = -1;\n }\n buildDays();\n self.rContainer.appendChild(self.daysContainer);\n self.innerContainer.appendChild(self.rContainer);\n fragment.appendChild(self.innerContainer);\n }\n if (self.config.enableTime) {\n fragment.appendChild(buildTime());\n }\n toggleClass(self.calendarContainer, \"rangeMode\", self.config.mode === \"range\");\n toggleClass(self.calendarContainer, \"animate\", self.config.animate === true);\n toggleClass(self.calendarContainer, \"multiMonth\", self.config.showMonths > 1);\n self.calendarContainer.appendChild(fragment);\n const customAppend = self.config.appendTo !== undefined &&\n self.config.appendTo.nodeType !== undefined;\n if (self.config.inline || self.config.static) {\n self.calendarContainer.classList.add(self.config.inline ? \"inline\" : \"static\");\n if (self.config.inline) {\n if (!customAppend && self.element.parentNode)\n self.element.parentNode.insertBefore(self.calendarContainer, self._input.nextSibling);\n else if (self.config.appendTo !== undefined)\n self.config.appendTo.appendChild(self.calendarContainer);\n }\n if (self.config.static) {\n const wrapper = createElement(\"div\", \"flatpickr-wrapper\");\n if (self.element.parentNode)\n self.element.parentNode.insertBefore(wrapper, self.element);\n wrapper.appendChild(self.element);\n if (self.altInput)\n wrapper.appendChild(self.altInput);\n wrapper.appendChild(self.calendarContainer);\n }\n }\n if (!self.config.static && !self.config.inline)\n (self.config.appendTo !== undefined\n ? self.config.appendTo\n : window.document.body).appendChild(self.calendarContainer);\n }\n function createDay(className, date, dayNumber, i) {\n const dateIsEnabled = isEnabled(date, true), dayElement = createElement(\"span\", \"flatpickr-day \" + className, date.getDate().toString());\n dayElement.dateObj = date;\n dayElement.$i = i;\n dayElement.setAttribute(\"aria-label\", self.formatDate(date, self.config.ariaDateFormat));\n if (className.indexOf(\"hidden\") === -1 &&\n compareDates(date, self.now) === 0) {\n self.todayDateElem = dayElement;\n dayElement.classList.add(\"today\");\n dayElement.setAttribute(\"aria-current\", \"date\");\n }\n if (dateIsEnabled) {\n dayElement.tabIndex = -1;\n if (isDateSelected(date)) {\n dayElement.classList.add(\"selected\");\n self.selectedDateElem = dayElement;\n if (self.config.mode === \"range\") {\n toggleClass(dayElement, \"startRange\", self.selectedDates[0] &&\n compareDates(date, self.selectedDates[0], true) === 0);\n toggleClass(dayElement, \"endRange\", self.selectedDates[1] &&\n compareDates(date, self.selectedDates[1], true) === 0);\n if (className === \"nextMonthDay\")\n dayElement.classList.add(\"inRange\");\n }\n }\n }\n else {\n dayElement.classList.add(\"flatpickr-disabled\");\n }\n if (self.config.mode === \"range\") {\n if (isDateInRange(date) && !isDateSelected(date))\n dayElement.classList.add(\"inRange\");\n }\n if (self.weekNumbers &&\n self.config.showMonths === 1 &&\n className !== \"prevMonthDay\" &&\n dayNumber % 7 === 1) {\n self.weekNumbers.insertAdjacentHTML(\"beforeend\", \"<span class='flatpickr-day'>\" + self.config.getWeek(date) + \"</span>\");\n }\n triggerEvent(\"onDayCreate\", dayElement);\n return dayElement;\n }\n function focusOnDayElem(targetNode) {\n targetNode.focus();\n if (self.config.mode === \"range\")\n onMouseOver(targetNode);\n }\n function getFirstAvailableDay(delta) {\n const startMonth = delta > 0 ? 0 : self.config.showMonths - 1;\n const endMonth = delta > 0 ? self.config.showMonths : -1;\n for (let m = startMonth; m != endMonth; m += delta) {\n const month = self.daysContainer.children[m];\n const startIndex = delta > 0 ? 0 : month.children.length - 1;\n const endIndex = delta > 0 ? month.children.length : -1;\n for (let i = startIndex; i != endIndex; i += delta) {\n const c = month.children[i];\n if (c.className.indexOf(\"hidden\") === -1 && isEnabled(c.dateObj))\n return c;\n }\n }\n return undefined;\n }\n function getNextAvailableDay(current, delta) {\n const givenMonth = current.className.indexOf(\"Month\") === -1\n ? current.dateObj.getMonth()\n : self.currentMonth;\n const endMonth = delta > 0 ? self.config.showMonths : -1;\n const loopDelta = delta > 0 ? 1 : -1;\n for (let m = givenMonth - self.currentMonth; m != endMonth; m += loopDelta) {\n const month = self.daysContainer.children[m];\n const startIndex = givenMonth - self.currentMonth === m\n ? current.$i + delta\n : delta < 0\n ? month.children.length - 1\n : 0;\n const numMonthDays = month.children.length;\n for (let i = startIndex; i >= 0 && i < numMonthDays && i != (delta > 0 ? numMonthDays : -1); i += loopDelta) {\n const c = month.children[i];\n if (c.className.indexOf(\"hidden\") === -1 &&\n isEnabled(c.dateObj) &&\n Math.abs(current.$i - i) >= Math.abs(delta))\n return focusOnDayElem(c);\n }\n }\n self.changeMonth(loopDelta);\n focusOnDay(getFirstAvailableDay(loopDelta), 0);\n return undefined;\n }\n function focusOnDay(current, offset) {\n const dayFocused = isInView(document.activeElement || document.body);\n const startElem = current !== undefined\n ? current\n : dayFocused\n ? document.activeElement\n : self.selectedDateElem !== undefined && isInView(self.selectedDateElem)\n ? self.selectedDateElem\n : self.todayDateElem !== undefined && isInView(self.todayDateElem)\n ? self.todayDateElem\n : getFirstAvailableDay(offset > 0 ? 1 : -1);\n if (startElem === undefined) {\n self._input.focus();\n }\n else if (!dayFocused) {\n focusOnDayElem(startElem);\n }\n else {\n getNextAvailableDay(startElem, offset);\n }\n }\n function buildMonthDays(year, month) {\n const firstOfMonth = (new Date(year, month, 1).getDay() - self.l10n.firstDayOfWeek + 7) % 7;\n const prevMonthDays = self.utils.getDaysInMonth((month - 1 + 12) % 12, year);\n const daysInMonth = self.utils.getDaysInMonth(month, year), days = window.document.createDocumentFragment(), isMultiMonth = self.config.showMonths > 1, prevMonthDayClass = isMultiMonth ? \"prevMonthDay hidden\" : \"prevMonthDay\", nextMonthDayClass = isMultiMonth ? \"nextMonthDay hidden\" : \"nextMonthDay\";\n let dayNumber = prevMonthDays + 1 - firstOfMonth, dayIndex = 0;\n for (; dayNumber <= prevMonthDays; dayNumber++, dayIndex++) {\n days.appendChild(createDay(prevMonthDayClass, new Date(year, month - 1, dayNumber), dayNumber, dayIndex));\n }\n for (dayNumber = 1; dayNumber <= daysInMonth; dayNumber++, dayIndex++) {\n days.appendChild(createDay(\"\", new Date(year, month, dayNumber), dayNumber, dayIndex));\n }\n for (let dayNum = daysInMonth + 1; dayNum <= 42 - firstOfMonth &&\n (self.config.showMonths === 1 || dayIndex % 7 !== 0); dayNum++, dayIndex++) {\n days.appendChild(createDay(nextMonthDayClass, new Date(year, month + 1, dayNum % daysInMonth), dayNum, dayIndex));\n }\n const dayContainer = createElement(\"div\", \"dayContainer\");\n dayContainer.appendChild(days);\n return dayContainer;\n }\n function buildDays() {\n if (self.daysContainer === undefined) {\n return;\n }\n clearNode(self.daysContainer);\n if (self.weekNumbers)\n clearNode(self.weekNumbers);\n const frag = document.createDocumentFragment();\n for (let i = 0; i < self.config.showMonths; i++) {\n const d = new Date(self.currentYear, self.currentMonth, 1);\n d.setMonth(self.currentMonth + i);\n frag.appendChild(buildMonthDays(d.getFullYear(), d.getMonth()));\n }\n self.daysContainer.appendChild(frag);\n self.days = self.daysContainer.firstChild;\n if (self.config.mode === \"range\" && self.selectedDates.length === 1) {\n onMouseOver();\n }\n }\n function buildMonthSwitch() {\n if (self.config.showMonths > 1 ||\n self.config.monthSelectorType !== \"dropdown\")\n return;\n const shouldBuildMonth = function (month) {\n if (self.config.minDate !== undefined &&\n self.currentYear === self.config.minDate.getFullYear() &&\n month < self.config.minDate.getMonth()) {\n return false;\n }\n return !(self.config.maxDate !== undefined &&\n self.currentYear === self.config.maxDate.getFullYear() &&\n month > self.config.maxDate.getMonth());\n };\n self.monthsDropdownContainer.tabIndex = -1;\n self.monthsDropdownContainer.innerHTML = \"\";\n for (let i = 0; i < 12; i++) {\n if (!shouldBuildMonth(i))\n continue;\n const month = createElement(\"option\", \"flatpickr-monthDropdown-month\");\n month.value = new Date(self.currentYear, i).getMonth().toString();\n month.textContent = monthToStr(i, self.config.shorthandCurrentMonth, self.l10n);\n month.tabIndex = -1;\n if (self.currentMonth === i) {\n month.selected = true;\n }\n self.monthsDropdownContainer.appendChild(month);\n }\n }\n function buildMonth() {\n const container = createElement(\"div\", \"flatpickr-month\");\n const monthNavFragment = window.document.createDocumentFragment();\n let monthElement;\n if (self.config.showMonths > 1 ||\n self.config.monthSelectorType === \"static\") {\n monthElement = createElement(\"span\", \"cur-month\");\n }\n else {\n self.monthsDropdownContainer = createElement(\"select\", \"flatpickr-monthDropdown-months\");\n self.monthsDropdownContainer.setAttribute(\"aria-label\", self.l10n.monthAriaLabel);\n bind(self.monthsDropdownContainer, \"change\", (e) => {\n const target = getEventTarget(e);\n const selectedMonth = parseInt(target.value, 10);\n self.changeMonth(selectedMonth - self.currentMonth);\n triggerEvent(\"onMonthChange\");\n });\n buildMonthSwitch();\n monthElement = self.monthsDropdownContainer;\n }\n const yearInput = createNumberInput(\"cur-year\", { tabindex: \"-1\" });\n const yearElement = yearInput.getElementsByTagName(\"input\")[0];\n yearElement.setAttribute(\"aria-label\", self.l10n.yearAriaLabel);\n if (self.config.minDate) {\n yearElement.setAttribute(\"min\", self.config.minDate.getFullYear().toString());\n }\n if (self.config.maxDate) {\n yearElement.setAttribute(\"max\", self.config.maxDate.getFullYear().toString());\n yearElement.disabled =\n !!self.config.minDate &&\n self.config.minDate.getFullYear() === self.config.maxDate.getFullYear();\n }\n const currentMonth = createElement(\"div\", \"flatpickr-current-month\");\n currentMonth.appendChild(monthElement);\n currentMonth.appendChild(yearInput);\n monthNavFragment.appendChild(currentMonth);\n container.appendChild(monthNavFragment);\n return {\n container,\n yearElement,\n monthElement,\n };\n }\n function buildMonths() {\n clearNode(self.monthNav);\n self.monthNav.appendChild(self.prevMonthNav);\n if (self.config.showMonths) {\n self.yearElements = [];\n self.monthElements = [];\n }\n for (let m = self.config.showMonths; m--;) {\n const month = buildMonth();\n self.yearElements.push(month.yearElement);\n self.monthElements.push(month.monthElement);\n self.monthNav.appendChild(month.container);\n }\n self.monthNav.appendChild(self.nextMonthNav);\n }\n function buildMonthNav() {\n self.monthNav = createElement(\"div\", \"flatpickr-months\");\n self.yearElements = [];\n self.monthElements = [];\n self.prevMonthNav = createElement(\"span\", \"flatpickr-prev-month\");\n self.prevMonthNav.innerHTML = self.config.prevArrow;\n self.nextMonthNav = createElement(\"span\", \"flatpickr-next-month\");\n self.nextMonthNav.innerHTML = self.config.nextArrow;\n buildMonths();\n Object.defineProperty(self, \"_hidePrevMonthArrow\", {\n get: () => self.__hidePrevMonthArrow,\n set(bool) {\n if (self.__hidePrevMonthArrow !== bool) {\n toggleClass(self.prevMonthNav, \"flatpickr-disabled\", bool);\n self.__hidePrevMonthArrow = bool;\n }\n },\n });\n Object.defineProperty(self, \"_hideNextMonthArrow\", {\n get: () => self.__hideNextMonthArrow,\n set(bool) {\n if (self.__hideNextMonthArrow !== bool) {\n toggleClass(self.nextMonthNav, \"flatpickr-disabled\", bool);\n self.__hideNextMonthArrow = bool;\n }\n },\n });\n self.currentYearElement = self.yearElements[0];\n updateNavigationCurrentMonth();\n return self.monthNav;\n }\n function buildTime() {\n self.calendarContainer.classList.add(\"hasTime\");\n if (self.config.noCalendar)\n self.calendarContainer.classList.add(\"noCalendar\");\n const defaults = getDefaultHours(self.config);\n self.timeContainer = createElement(\"div\", \"flatpickr-time\");\n self.timeContainer.tabIndex = -1;\n const separator = createElement(\"span\", \"flatpickr-time-separator\", \":\");\n const hourInput = createNumberInput(\"flatpickr-hour\", {\n \"aria-label\": self.l10n.hourAriaLabel,\n });\n self.hourElement = hourInput.getElementsByTagName(\"input\")[0];\n const minuteInput = createNumberInput(\"flatpickr-minute\", {\n \"aria-label\": self.l10n.minuteAriaLabel,\n });\n self.minuteElement = minuteInput.getElementsByTagName(\"input\")[0];\n self.hourElement.tabIndex = self.minuteElement.tabIndex = -1;\n self.hourElement.value = pad(self.latestSelectedDateObj\n ? self.latestSelectedDateObj.getHours()\n : self.config.time_24hr\n ? defaults.hours\n : military2ampm(defaults.hours));\n self.minuteElement.value = pad(self.latestSelectedDateObj\n ? self.latestSelectedDateObj.getMinutes()\n : defaults.minutes);\n self.hourElement.setAttribute(\"step\", self.config.hourIncrement.toString());\n self.minuteElement.setAttribute(\"step\", self.config.minuteIncrement.toString());\n self.hourElement.setAttribute(\"min\", self.config.time_24hr ? \"0\" : \"1\");\n self.hourElement.setAttribute(\"max\", self.config.time_24hr ? \"23\" : \"12\");\n self.hourElement.setAttribute(\"maxlength\", \"2\");\n self.minuteElement.setAttribute(\"min\", \"0\");\n self.minuteElement.setAttribute(\"max\", \"59\");\n self.minuteElement.setAttribute(\"maxlength\", \"2\");\n self.timeContainer.appendChild(hourInput);\n self.timeContainer.appendChild(separator);\n self.timeContainer.appendChild(minuteInput);\n if (self.config.time_24hr)\n self.timeContainer.classList.add(\"time24hr\");\n if (self.config.enableSeconds) {\n self.timeContainer.classList.add(\"hasSeconds\");\n const secondInput = createNumberInput(\"flatpickr-second\");\n self.secondElement = secondInput.getElementsByTagName(\"input\")[0];\n self.secondElement.value = pad(self.latestSelectedDateObj\n ? self.latestSelectedDateObj.getSeconds()\n : defaults.seconds);\n self.secondElement.setAttribute(\"step\", self.minuteElement.getAttribute(\"step\"));\n self.secondElement.setAttribute(\"min\", \"0\");\n self.secondElement.setAttribute(\"max\", \"59\");\n self.secondElement.setAttribute(\"maxlength\", \"2\");\n self.timeContainer.appendChild(createElement(\"span\", \"flatpickr-time-separator\", \":\"));\n self.timeContainer.appendChild(secondInput);\n }\n if (!self.config.time_24hr) {\n self.amPM = createElement(\"span\", \"flatpickr-am-pm\", self.l10n.amPM[int((self.latestSelectedDateObj\n ? self.hourElement.value\n : self.config.defaultHour) > 11)]);\n self.amPM.title = self.l10n.toggleTitle;\n self.amPM.tabIndex = -1;\n self.timeContainer.appendChild(self.amPM);\n }\n return self.timeContainer;\n }\n function buildWeekdays() {\n if (!self.weekdayContainer)\n self.weekdayContainer = createElement(\"div\", \"flatpickr-weekdays\");\n else\n clearNode(self.weekdayContainer);\n for (let i = self.config.showMonths; i--;) {\n const container = createElement(\"div\", \"flatpickr-weekdaycontainer\");\n self.weekdayContainer.appendChild(container);\n }\n updateWeekdays();\n return self.weekdayContainer;\n }\n function updateWeekdays() {\n if (!self.weekdayContainer) {\n return;\n }\n const firstDayOfWeek = self.l10n.firstDayOfWeek;\n let weekdays = [...self.l10n.weekdays.shorthand];\n if (firstDayOfWeek > 0 && firstDayOfWeek < weekdays.length) {\n weekdays = [\n ...weekdays.splice(firstDayOfWeek, weekdays.length),\n ...weekdays.splice(0, firstDayOfWeek),\n ];\n }\n for (let i = self.config.showMonths; i--;) {\n self.weekdayContainer.children[i].innerHTML = `\n <span class='flatpickr-weekday'>\n ${weekdays.join(\"</span><span class='flatpickr-weekday'>\")}\n </span>\n `;\n }\n }\n function buildWeeks() {\n self.calendarContainer.classList.add(\"hasWeeks\");\n const weekWrapper = createElement(\"div\", \"flatpickr-weekwrapper\");\n weekWrapper.appendChild(createElement(\"span\", \"flatpickr-weekday\", self.l10n.weekAbbreviation));\n const weekNumbers = createElement(\"div\", \"flatpickr-weeks\");\n weekWrapper.appendChild(weekNumbers);\n return {\n weekWrapper,\n weekNumbers,\n };\n }\n function changeMonth(value, isOffset = true) {\n const delta = isOffset ? value : value - self.currentMonth;\n if ((delta < 0 && self._hidePrevMonthArrow === true) ||\n (delta > 0 && self._hideNextMonthArrow === true))\n return;\n self.currentMonth += delta;\n if (self.currentMonth < 0 || self.currentMonth > 11) {\n self.currentYear += self.currentMonth > 11 ? 1 : -1;\n self.currentMonth = (self.currentMonth + 12) % 12;\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n buildDays();\n triggerEvent(\"onMonthChange\");\n updateNavigationCurrentMonth();\n }\n function clear(triggerChangeEvent = true, toInitial = true) {\n self.input.value = \"\";\n if (self.altInput !== undefined)\n self.altInput.value = \"\";\n if (self.mobileInput !== undefined)\n self.mobileInput.value = \"\";\n self.selectedDates = [];\n self.latestSelectedDateObj = undefined;\n if (toInitial === true) {\n self.currentYear = self._initialDate.getFullYear();\n self.currentMonth = self._initialDate.getMonth();\n }\n if (self.config.enableTime === true) {\n const { hours, minutes, seconds } = getDefaultHours(self.config);\n setHours(hours, minutes, seconds);\n }\n self.redraw();\n if (triggerChangeEvent)\n triggerEvent(\"onChange\");\n }\n function close() {\n self.isOpen = false;\n if (!self.isMobile) {\n if (self.calendarContainer !== undefined) {\n self.calendarContainer.classList.remove(\"open\");\n }\n if (self._input !== undefined) {\n self._input.classList.remove(\"active\");\n }\n }\n triggerEvent(\"onClose\");\n }\n function destroy() {\n if (self.config !== undefined)\n triggerEvent(\"onDestroy\");\n for (let i = self._handlers.length; i--;) {\n self._handlers[i].remove();\n }\n self._handlers = [];\n if (self.mobileInput) {\n if (self.mobileInput.parentNode)\n self.mobileInput.parentNode.removeChild(self.mobileInput);\n self.mobileInput = undefined;\n }\n else if (self.calendarContainer && self.calendarContainer.parentNode) {\n if (self.config.static && self.calendarContainer.parentNode) {\n const wrapper = self.calendarContainer.parentNode;\n wrapper.lastChild && wrapper.removeChild(wrapper.lastChild);\n if (wrapper.parentNode) {\n while (wrapper.firstChild)\n wrapper.parentNode.insertBefore(wrapper.firstChild, wrapper);\n wrapper.parentNode.removeChild(wrapper);\n }\n }\n else\n self.calendarContainer.parentNode.removeChild(self.calendarContainer);\n }\n if (self.altInput) {\n self.input.type = \"text\";\n if (self.altInput.parentNode)\n self.altInput.parentNode.removeChild(self.altInput);\n delete self.altInput;\n }\n if (self.input) {\n self.input.type = self.input._type;\n self.input.classList.remove(\"flatpickr-input\");\n self.input.removeAttribute(\"readonly\");\n }\n [\n \"_showTimeInput\",\n \"latestSelectedDateObj\",\n \"_hideNextMonthArrow\",\n \"_hidePrevMonthArrow\",\n \"__hideNextMonthArrow\",\n \"__hidePrevMonthArrow\",\n \"isMobile\",\n \"isOpen\",\n \"selectedDateElem\",\n \"minDateHasTime\",\n \"maxDateHasTime\",\n \"days\",\n \"daysContainer\",\n \"_input\",\n \"_positionElement\",\n \"innerContainer\",\n \"rContainer\",\n \"monthNav\",\n \"todayDateElem\",\n \"calendarContainer\",\n \"weekdayContainer\",\n \"prevMonthNav\",\n \"nextMonthNav\",\n \"monthsDropdownContainer\",\n \"currentMonthElement\",\n \"currentYearElement\",\n \"navigationCurrentMonth\",\n \"selectedDateElem\",\n \"config\",\n ].forEach((k) => {\n try {\n delete self[k];\n }\n catch (_) { }\n });\n }\n function isCalendarElem(elem) {\n if (self.config.appendTo && self.config.appendTo.contains(elem))\n return true;\n return self.calendarContainer.contains(elem);\n }\n function documentClick(e) {\n if (self.isOpen && !self.config.inline) {\n const eventTarget = getEventTarget(e);\n const isCalendarElement = isCalendarElem(eventTarget);\n const isInput = eventTarget === self.input ||\n eventTarget === self.altInput ||\n self.element.contains(eventTarget) ||\n (e.path &&\n e.path.indexOf &&\n (~e.path.indexOf(self.input) ||\n ~e.path.indexOf(self.altInput)));\n const lostFocus = e.type === \"blur\"\n ? isInput &&\n e.relatedTarget &&\n !isCalendarElem(e.relatedTarget)\n : !isInput &&\n !isCalendarElement &&\n !isCalendarElem(e.relatedTarget);\n const isIgnored = !self.config.ignoredFocusElements.some((elem) => elem.contains(eventTarget));\n if (lostFocus && isIgnored) {\n if (self.timeContainer !== undefined &&\n self.minuteElement !== undefined &&\n self.hourElement !== undefined &&\n self.input.value !== \"\" &&\n self.input.value !== undefined) {\n updateTime();\n }\n self.close();\n if (self.config &&\n self.config.mode === \"range\" &&\n self.selectedDates.length === 1) {\n self.clear(false);\n self.redraw();\n }\n }\n }\n }\n function changeYear(newYear) {\n if (!newYear ||\n (self.config.minDate && newYear < self.config.minDate.getFullYear()) ||\n (self.config.maxDate && newYear > self.config.maxDate.getFullYear()))\n return;\n const newYearNum = newYear, isNewYear = self.currentYear !== newYearNum;\n self.currentYear = newYearNum || self.currentYear;\n if (self.config.maxDate &&\n self.currentYear === self.config.maxDate.getFullYear()) {\n self.currentMonth = Math.min(self.config.maxDate.getMonth(), self.currentMonth);\n }\n else if (self.config.minDate &&\n self.currentYear === self.config.minDate.getFullYear()) {\n self.currentMonth = Math.max(self.config.minDate.getMonth(), self.currentMonth);\n }\n if (isNewYear) {\n self.redraw();\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n }\n function isEnabled(date, timeless = true) {\n var _a;\n const dateToCheck = self.parseDate(date, undefined, timeless);\n if ((self.config.minDate &&\n dateToCheck &&\n compareDates(dateToCheck, self.config.minDate, timeless !== undefined ? timeless : !self.minDateHasTime) < 0) ||\n (self.config.maxDate &&\n dateToCheck &&\n compareDates(dateToCheck, self.config.maxDate, timeless !== undefined ? timeless : !self.maxDateHasTime) > 0))\n return false;\n if (!self.config.enable && self.config.disable.length === 0)\n return true;\n if (dateToCheck === undefined)\n return false;\n const bool = !!self.config.enable, array = (_a = self.config.enable) !== null && _a !== void 0 ? _a : self.config.disable;\n for (let i = 0, d; i < array.length; i++) {\n d = array[i];\n if (typeof d === \"function\" &&\n d(dateToCheck))\n return bool;\n else if (d instanceof Date &&\n dateToCheck !== undefined &&\n d.getTime() === dateToCheck.getTime())\n return bool;\n else if (typeof d === \"string\") {\n const parsed = self.parseDate(d, undefined, true);\n return parsed && parsed.getTime() === dateToCheck.getTime()\n ? bool\n : !bool;\n }\n else if (typeof d === \"object\" &&\n dateToCheck !== undefined &&\n d.from &&\n d.to &&\n dateToCheck.getTime() >= d.from.getTime() &&\n dateToCheck.getTime() <= d.to.getTime())\n return bool;\n }\n return !bool;\n }\n function isInView(elem) {\n if (self.daysContainer !== undefined)\n return (elem.className.indexOf(\"hidden\") === -1 &&\n elem.className.indexOf(\"flatpickr-disabled\") === -1 &&\n self.daysContainer.contains(elem));\n return false;\n }\n function onBlur(e) {\n const isInput = e.target === self._input;\n if (isInput &&\n (self.selectedDates.length > 0 || self._input.value.length > 0) &&\n !(e.relatedTarget && isCalendarElem(e.relatedTarget))) {\n self.setDate(self._input.value, true, e.target === self.altInput\n ? self.config.altFormat\n : self.config.dateFormat);\n }\n }\n function onKeyDown(e) {\n const eventTarget = getEventTarget(e);\n const isInput = self.config.wrap\n ? element.contains(eventTarget)\n : eventTarget === self._input;\n const allowInput = self.config.allowInput;\n const allowKeydown = self.isOpen && (!allowInput || !isInput);\n const allowInlineKeydown = self.config.inline && isInput && !allowInput;\n if (e.keyCode === 13 && isInput) {\n if (allowInput) {\n self.setDate(self._input.value, true, eventTarget === self.altInput\n ? self.config.altFormat\n : self.config.dateFormat);\n return eventTarget.blur();\n }\n else {\n self.open();\n }\n }\n else if (isCalendarElem(eventTarget) ||\n allowKeydown ||\n allowInlineKeydown) {\n const isTimeObj = !!self.timeContainer &&\n self.timeContainer.contains(eventTarget);\n switch (e.keyCode) {\n case 13:\n if (isTimeObj) {\n e.preventDefault();\n updateTime();\n focusAndClose();\n }\n else\n selectDate(e);\n break;\n case 27:\n e.preventDefault();\n focusAndClose();\n break;\n case 8:\n case 46:\n if (isInput && !self.config.allowInput) {\n e.preventDefault();\n self.clear();\n }\n break;\n case 37:\n case 39:\n if (!isTimeObj && !isInput) {\n e.preventDefault();\n if (self.daysContainer !== undefined &&\n (allowInput === false ||\n (document.activeElement && isInView(document.activeElement)))) {\n const delta = e.keyCode === 39 ? 1 : -1;\n if (!e.ctrlKey)\n focusOnDay(undefined, delta);\n else {\n e.stopPropagation();\n changeMonth(delta);\n focusOnDay(getFirstAvailableDay(1), 0);\n }\n }\n }\n else if (self.hourElement)\n self.hourElement.focus();\n break;\n case 38:\n case 40:\n e.preventDefault();\n const delta = e.keyCode === 40 ? 1 : -1;\n if ((self.daysContainer &&\n eventTarget.$i !== undefined) ||\n eventTarget === self.input ||\n eventTarget === self.altInput) {\n if (e.ctrlKey) {\n e.stopPropagation();\n changeYear(self.currentYear - delta);\n focusOnDay(getFirstAvailableDay(1), 0);\n }\n else if (!isTimeObj)\n focusOnDay(undefined, delta * 7);\n }\n else if (eventTarget === self.currentYearElement) {\n changeYear(self.currentYear - delta);\n }\n else if (self.config.enableTime) {\n if (!isTimeObj && self.hourElement)\n self.hourElement.focus();\n updateTime(e);\n self._debouncedChange();\n }\n break;\n case 9:\n if (isTimeObj) {\n const elems = [\n self.hourElement,\n self.minuteElement,\n self.secondElement,\n self.amPM,\n ]\n .concat(self.pluginElements)\n .filter((x) => x);\n const i = elems.indexOf(eventTarget);\n if (i !== -1) {\n const target = elems[i + (e.shiftKey ? -1 : 1)];\n e.preventDefault();\n (target || self._input).focus();\n }\n }\n else if (!self.config.noCalendar &&\n self.daysContainer &&\n self.daysContainer.contains(eventTarget) &&\n e.shiftKey) {\n e.preventDefault();\n self._input.focus();\n }\n break;\n default:\n break;\n }\n }\n if (self.amPM !== undefined && eventTarget === self.amPM) {\n switch (e.key) {\n case self.l10n.amPM[0].charAt(0):\n case self.l10n.amPM[0].charAt(0).toLowerCase():\n self.amPM.textContent = self.l10n.amPM[0];\n setHoursFromInputs();\n updateValue();\n break;\n case self.l10n.amPM[1].charAt(0):\n case self.l10n.amPM[1].charAt(0).toLowerCase():\n self.amPM.textContent = self.l10n.amPM[1];\n setHoursFromInputs();\n updateValue();\n break;\n }\n }\n if (isInput || isCalendarElem(eventTarget)) {\n triggerEvent(\"onKeyDown\", e);\n }\n }\n function onMouseOver(elem) {\n if (self.selectedDates.length !== 1 ||\n (elem &&\n (!elem.classList.contains(\"flatpickr-day\") ||\n elem.classList.contains(\"flatpickr-disabled\"))))\n return;\n const hoverDate = elem\n ? elem.dateObj.getTime()\n : self.days.firstElementChild.dateObj.getTime(), initialDate = self.parseDate(self.selectedDates[0], undefined, true).getTime(), rangeStartDate = Math.min(hoverDate, self.selectedDates[0].getTime()), rangeEndDate = Math.max(hoverDate, self.selectedDates[0].getTime());\n let containsDisabled = false;\n let minRange = 0, maxRange = 0;\n for (let t = rangeStartDate; t < rangeEndDate; t += duration.DAY) {\n if (!isEnabled(new Date(t), true)) {\n containsDisabled =\n containsDisabled || (t > rangeStartDate && t < rangeEndDate);\n if (t < initialDate && (!minRange || t > minRange))\n minRange = t;\n else if (t > initialDate && (!maxRange || t < maxRange))\n maxRange = t;\n }\n }\n for (let m = 0; m < self.config.showMonths; m++) {\n const month = self.daysContainer.children[m];\n for (let i = 0, l = month.children.length; i < l; i++) {\n const dayElem = month.children[i], date = dayElem.dateObj;\n const timestamp = date.getTime();\n const outOfRange = (minRange > 0 && timestamp < minRange) ||\n (maxRange > 0 && timestamp > maxRange);\n if (outOfRange) {\n dayElem.classList.add(\"notAllowed\");\n [\"inRange\", \"startRange\", \"endRange\"].forEach((c) => {\n dayElem.classList.remove(c);\n });\n continue;\n }\n else if (containsDisabled && !outOfRange)\n continue;\n [\"startRange\", \"inRange\", \"endRange\", \"notAllowed\"].forEach((c) => {\n dayElem.classList.remove(c);\n });\n if (elem !== undefined) {\n elem.classList.add(hoverDate <= self.selectedDates[0].getTime()\n ? \"startRange\"\n : \"endRange\");\n if (initialDate < hoverDate && timestamp === initialDate)\n dayElem.classList.add(\"startRange\");\n else if (initialDate > hoverDate && timestamp === initialDate)\n dayElem.classList.add(\"endRange\");\n if (timestamp >= minRange &&\n (maxRange === 0 || timestamp <= maxRange) &&\n isBetween(timestamp, initialDate, hoverDate))\n dayElem.classList.add(\"inRange\");\n }\n }\n }\n }\n function onResize() {\n if (self.isOpen && !self.config.static && !self.config.inline)\n positionCalendar();\n }\n function open(e, positionElement = self._positionElement) {\n if (self.isMobile === true) {\n if (e) {\n e.preventDefault();\n const eventTarget = getEventTarget(e);\n if (eventTarget) {\n eventTarget.blur();\n }\n }\n if (self.mobileInput !== undefined) {\n self.mobileInput.focus();\n self.mobileInput.click();\n }\n triggerEvent(\"onOpen\");\n return;\n }\n else if (self._input.disabled || self.config.inline) {\n return;\n }\n const wasOpen = self.isOpen;\n self.isOpen = true;\n if (!wasOpen) {\n self.calendarContainer.classList.add(\"open\");\n self._input.classList.add(\"active\");\n triggerEvent(\"onOpen\");\n positionCalendar(positionElement);\n }\n if (self.config.enableTime === true && self.config.noCalendar === true) {\n if (self.config.allowInput === false &&\n (e === undefined ||\n !self.timeContainer.contains(e.relatedTarget))) {\n setTimeout(() => self.hourElement.select(), 50);\n }\n }\n }\n function minMaxDateSetter(type) {\n return (date) => {\n const dateObj = (self.config[`_${type}Date`] = self.parseDate(date, self.config.dateFormat));\n const inverseDateObj = self.config[`_${type === \"min\" ? \"max\" : \"min\"}Date`];\n if (dateObj !== undefined) {\n self[type === \"min\" ? \"minDateHasTime\" : \"maxDateHasTime\"] =\n dateObj.getHours() > 0 ||\n dateObj.getMinutes() > 0 ||\n dateObj.getSeconds() > 0;\n }\n if (self.selectedDates) {\n self.selectedDates = self.selectedDates.filter((d) => isEnabled(d));\n if (!self.selectedDates.length && type === \"min\")\n setHoursFromDate(dateObj);\n updateValue();\n }\n if (self.daysContainer) {\n redraw();\n if (dateObj !== undefined)\n self.currentYearElement[type] = dateObj.getFullYear().toString();\n else\n self.currentYearElement.removeAttribute(type);\n self.currentYearElement.disabled =\n !!inverseDateObj &&\n dateObj !== undefined &&\n inverseDateObj.getFullYear() === dateObj.getFullYear();\n }\n };\n }\n function parseConfig() {\n const boolOpts = [\n \"wrap\",\n \"weekNumbers\",\n \"allowInput\",\n \"allowInvalidPreload\",\n \"clickOpens\",\n \"time_24hr\",\n \"enableTime\",\n \"noCalendar\",\n \"altInput\",\n \"shorthandCurrentMonth\",\n \"inline\",\n \"static\",\n \"enableSeconds\",\n \"disableMobile\",\n ];\n const userConfig = Object.assign(Object.assign({}, JSON.parse(JSON.stringify(element.dataset || {}))), instanceConfig);\n const formats = {};\n self.config.parseDate = userConfig.parseDate;\n self.config.formatDate = userConfig.formatDate;\n Object.defineProperty(self.config, \"enable\", {\n get: () => self.config._enable,\n set: (dates) => {\n self.config._enable = parseDateRules(dates);\n },\n });\n Object.defineProperty(self.config, \"disable\", {\n get: () => self.config._disable,\n set: (dates) => {\n self.config._disable = parseDateRules(dates);\n },\n });\n const timeMode = userConfig.mode === \"time\";\n if (!userConfig.dateFormat && (userConfig.enableTime || timeMode)) {\n const defaultDateFormat = flatpickr.defaultConfig.dateFormat || defaultOptions.dateFormat;\n formats.dateFormat =\n userConfig.noCalendar || timeMode\n ? \"H:i\" + (userConfig.enableSeconds ? \":S\" : \"\")\n : defaultDateFormat + \" H:i\" + (userConfig.enableSeconds ? \":S\" : \"\");\n }\n if (userConfig.altInput &&\n (userConfig.enableTime || timeMode) &&\n !userConfig.altFormat) {\n const defaultAltFormat = flatpickr.defaultConfig.altFormat || defaultOptions.altFormat;\n formats.altFormat =\n userConfig.noCalendar || timeMode\n ? \"h:i\" + (userConfig.enableSeconds ? \":S K\" : \" K\")\n : defaultAltFormat + ` h:i${userConfig.enableSeconds ? \":S\" : \"\"} K`;\n }\n Object.defineProperty(self.config, \"minDate\", {\n get: () => self.config._minDate,\n set: minMaxDateSetter(\"min\"),\n });\n Object.defineProperty(self.config, \"maxDate\", {\n get: () => self.config._maxDate,\n set: minMaxDateSetter(\"max\"),\n });\n const minMaxTimeSetter = (type) => (val) => {\n self.config[type === \"min\" ? \"_minTime\" : \"_maxTime\"] = self.parseDate(val, \"H:i:S\");\n };\n Object.defineProperty(self.config, \"minTime\", {\n get: () => self.config._minTime,\n set: minMaxTimeSetter(\"min\"),\n });\n Object.defineProperty(self.config, \"maxTime\", {\n get: () => self.config._maxTime,\n set: minMaxTimeSetter(\"max\"),\n });\n if (userConfig.mode === \"time\") {\n self.config.noCalendar = true;\n self.config.enableTime = true;\n }\n Object.assign(self.config, formats, userConfig);\n for (let i = 0; i < boolOpts.length; i++)\n self.config[boolOpts[i]] =\n self.config[boolOpts[i]] === true ||\n self.config[boolOpts[i]] === \"true\";\n HOOKS.filter((hook) => self.config[hook] !== undefined).forEach((hook) => {\n self.config[hook] = arrayify(self.config[hook] || []).map(bindToInstance);\n });\n self.isMobile =\n !self.config.disableMobile &&\n !self.config.inline &&\n self.config.mode === \"single\" &&\n !self.config.disable.length &&\n !self.config.enable &&\n !self.config.weekNumbers &&\n /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\n for (let i = 0; i < self.config.plugins.length; i++) {\n const pluginConf = self.config.plugins[i](self) || {};\n for (const key in pluginConf) {\n if (HOOKS.indexOf(key) > -1) {\n self.config[key] = arrayify(pluginConf[key])\n .map(bindToInstance)\n .concat(self.config[key]);\n }\n else if (typeof userConfig[key] === \"undefined\")\n self.config[key] = pluginConf[key];\n }\n }\n if (!userConfig.altInputClass) {\n self.config.altInputClass =\n getInputElem().className + \" \" + self.config.altInputClass;\n }\n triggerEvent(\"onParseConfig\");\n }\n function getInputElem() {\n return self.config.wrap\n ? element.querySelector(\"[data-input]\")\n : element;\n }\n function setupLocale() {\n if (typeof self.config.locale !== \"object\" &&\n typeof flatpickr.l10ns[self.config.locale] === \"undefined\")\n self.config.errorHandler(new Error(`flatpickr: invalid locale ${self.config.locale}`));\n self.l10n = Object.assign(Object.assign({}, flatpickr.l10ns.default), (typeof self.config.locale === \"object\"\n ? self.config.locale\n : self.config.locale !== \"default\"\n ? flatpickr.l10ns[self.config.locale]\n : undefined));\n tokenRegex.K = `(${self.l10n.amPM[0]}|${self.l10n.amPM[1]}|${self.l10n.amPM[0].toLowerCase()}|${self.l10n.amPM[1].toLowerCase()})`;\n const userConfig = Object.assign(Object.assign({}, instanceConfig), JSON.parse(JSON.stringify(element.dataset || {})));\n if (userConfig.time_24hr === undefined &&\n flatpickr.defaultConfig.time_24hr === undefined) {\n self.config.time_24hr = self.l10n.time_24hr;\n }\n self.formatDate = createDateFormatter(self);\n self.parseDate = createDateParser({ config: self.config, l10n: self.l10n });\n }\n function positionCalendar(customPositionElement) {\n if (typeof self.config.position === \"function\") {\n return void self.config.position(self, customPositionElement);\n }\n if (self.calendarContainer === undefined)\n return;\n triggerEvent(\"onPreCalendarPosition\");\n const positionElement = customPositionElement || self._positionElement;\n const calendarHeight = Array.prototype.reduce.call(self.calendarContainer.children, ((acc, child) => acc + child.offsetHeight), 0), calendarWidth = self.calendarContainer.offsetWidth, configPos = self.config.position.split(\" \"), configPosVertical = configPos[0], configPosHorizontal = configPos.length > 1 ? configPos[1] : null, inputBounds = positionElement.getBoundingClientRect(), distanceFromBottom = window.innerHeight - inputBounds.bottom, showOnTop = configPosVertical === \"above\" ||\n (configPosVertical !== \"below\" &&\n distanceFromBottom < calendarHeight &&\n inputBounds.top > calendarHeight);\n const top = window.pageYOffset +\n inputBounds.top +\n (!showOnTop ? positionElement.offsetHeight + 2 : -calendarHeight - 2);\n toggleClass(self.calendarContainer, \"arrowTop\", !showOnTop);\n toggleClass(self.calendarContainer, \"arrowBottom\", showOnTop);\n if (self.config.inline)\n return;\n let left = window.pageXOffset + inputBounds.left;\n let isCenter = false;\n let isRight = false;\n if (configPosHorizontal === \"center\") {\n left -= (calendarWidth - inputBounds.width) / 2;\n isCenter = true;\n }\n else if (configPosHorizontal === \"right\") {\n left -= calendarWidth - inputBounds.width;\n isRight = true;\n }\n toggleClass(self.calendarContainer, \"arrowLeft\", !isCenter && !isRight);\n toggleClass(self.calendarContainer, \"arrowCenter\", isCenter);\n toggleClass(self.calendarContainer, \"arrowRight\", isRight);\n const right = window.document.body.offsetWidth -\n (window.pageXOffset + inputBounds.right);\n const rightMost = left + calendarWidth > window.document.body.offsetWidth;\n const centerMost = right + calendarWidth > window.document.body.offsetWidth;\n toggleClass(self.calendarContainer, \"rightMost\", rightMost);\n if (self.config.static)\n return;\n self.calendarContainer.style.top = `${top}px`;\n if (!rightMost) {\n self.calendarContainer.style.left = `${left}px`;\n self.calendarContainer.style.right = \"auto\";\n }\n else if (!centerMost) {\n self.calendarContainer.style.left = \"auto\";\n self.calendarContainer.style.right = `${right}px`;\n }\n else {\n const doc = getDocumentStyleSheet();\n if (doc === undefined)\n return;\n const bodyWidth = window.document.body.offsetWidth;\n const centerLeft = Math.max(0, bodyWidth / 2 - calendarWidth / 2);\n const centerBefore = \".flatpickr-calendar.centerMost:before\";\n const centerAfter = \".flatpickr-calendar.centerMost:after\";\n const centerIndex = doc.cssRules.length;\n const centerStyle = `{left:${inputBounds.left}px;right:auto;}`;\n toggleClass(self.calendarContainer, \"rightMost\", false);\n toggleClass(self.calendarContainer, \"centerMost\", true);\n doc.insertRule(`${centerBefore},${centerAfter}${centerStyle}`, centerIndex);\n self.calendarContainer.style.left = `${centerLeft}px`;\n self.calendarContainer.style.right = \"auto\";\n }\n }\n function getDocumentStyleSheet() {\n let editableSheet = null;\n for (let i = 0; i < document.styleSheets.length; i++) {\n const sheet = document.styleSheets[i];\n try {\n sheet.cssRules;\n }\n catch (err) {\n continue;\n }\n editableSheet = sheet;\n break;\n }\n return editableSheet != null ? editableSheet : createStyleSheet();\n }\n function createStyleSheet() {\n const style = document.createElement(\"style\");\n document.head.appendChild(style);\n return style.sheet;\n }\n function redraw() {\n if (self.config.noCalendar || self.isMobile)\n return;\n buildMonthSwitch();\n updateNavigationCurrentMonth();\n buildDays();\n }\n function focusAndClose() {\n self._input.focus();\n if (window.navigator.userAgent.indexOf(\"MSIE\") !== -1 ||\n navigator.msMaxTouchPoints !== undefined) {\n setTimeout(self.close, 0);\n }\n else {\n self.close();\n }\n }\n function selectDate(e) {\n e.preventDefault();\n e.stopPropagation();\n const isSelectable = (day) => day.classList &&\n day.classList.contains(\"flatpickr-day\") &&\n !day.classList.contains(\"flatpickr-disabled\") &&\n !day.classList.contains(\"notAllowed\");\n const t = findParent(getEventTarget(e), isSelectable);\n if (t === undefined)\n return;\n const target = t;\n const selectedDate = (self.latestSelectedDateObj = new Date(target.dateObj.getTime()));\n const shouldChangeMonth = (selectedDate.getMonth() < self.currentMonth ||\n selectedDate.getMonth() >\n self.currentMonth + self.config.showMonths - 1) &&\n self.config.mode !== \"range\";\n self.selectedDateElem = target;\n if (self.config.mode === \"single\")\n self.selectedDates = [selectedDate];\n else if (self.config.mode === \"multiple\") {\n const selectedIndex = isDateSelected(selectedDate);\n if (selectedIndex)\n self.selectedDates.splice(parseInt(selectedIndex), 1);\n else\n self.selectedDates.push(selectedDate);\n }\n else if (self.config.mode === \"range\") {\n if (self.selectedDates.length === 2) {\n self.clear(false, false);\n }\n self.latestSelectedDateObj = selectedDate;\n self.selectedDates.push(selectedDate);\n if (compareDates(selectedDate, self.selectedDates[0], true) !== 0)\n self.selectedDates.sort((a, b) => a.getTime() - b.getTime());\n }\n setHoursFromInputs();\n if (shouldChangeMonth) {\n const isNewYear = self.currentYear !== selectedDate.getFullYear();\n self.currentYear = selectedDate.getFullYear();\n self.currentMonth = selectedDate.getMonth();\n if (isNewYear) {\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n triggerEvent(\"onMonthChange\");\n }\n updateNavigationCurrentMonth();\n buildDays();\n updateValue();\n if (!shouldChangeMonth &&\n self.config.mode !== \"range\" &&\n self.config.showMonths === 1)\n focusOnDayElem(target);\n else if (self.selectedDateElem !== undefined &&\n self.hourElement === undefined) {\n self.selectedDateElem && self.selectedDateElem.focus();\n }\n if (self.hourElement !== undefined)\n self.hourElement !== undefined && self.hourElement.focus();\n if (self.config.closeOnSelect) {\n const single = self.config.mode === \"single\" && !self.config.enableTime;\n const range = self.config.mode === \"range\" &&\n self.selectedDates.length === 2 &&\n !self.config.enableTime;\n if (single || range) {\n focusAndClose();\n }\n }\n triggerChange();\n }\n const CALLBACKS = {\n locale: [setupLocale, updateWeekdays],\n showMonths: [buildMonths, setCalendarWidth, buildWeekdays],\n minDate: [jumpToDate],\n maxDate: [jumpToDate],\n clickOpens: [\n () => {\n if (self.config.clickOpens === true) {\n bind(self._input, \"focus\", self.open);\n bind(self._input, \"click\", self.open);\n }\n else {\n self._input.removeEventListener(\"focus\", self.open);\n self._input.removeEventListener(\"click\", self.open);\n }\n },\n ],\n };\n function set(option, value) {\n if (option !== null && typeof option === \"object\") {\n Object.assign(self.config, option);\n for (const key in option) {\n if (CALLBACKS[key] !== undefined)\n CALLBACKS[key].forEach((x) => x());\n }\n }\n else {\n self.config[option] = value;\n if (CALLBACKS[option] !== undefined)\n CALLBACKS[option].forEach((x) => x());\n else if (HOOKS.indexOf(option) > -1)\n self.config[option] = arrayify(value);\n }\n self.redraw();\n updateValue(true);\n }\n function setSelectedDate(inputDate, format) {\n let dates = [];\n if (inputDate instanceof Array)\n dates = inputDate.map((d) => self.parseDate(d, format));\n else if (inputDate instanceof Date || typeof inputDate === \"number\")\n dates = [self.parseDate(inputDate, format)];\n else if (typeof inputDate === \"string\") {\n switch (self.config.mode) {\n case \"single\":\n case \"time\":\n dates = [self.parseDate(inputDate, format)];\n break;\n case \"multiple\":\n dates = inputDate\n .split(self.config.conjunction)\n .map((date) => self.parseDate(date, format));\n break;\n case \"range\":\n dates = inputDate\n .split(self.l10n.rangeSeparator)\n .map((date) => self.parseDate(date, format));\n break;\n default:\n break;\n }\n }\n else\n self.config.errorHandler(new Error(`Invalid date supplied: ${JSON.stringify(inputDate)}`));\n self.selectedDates = (self.config.allowInvalidPreload\n ? dates\n : dates.filter((d) => d instanceof Date && isEnabled(d, false)));\n if (self.config.mode === \"range\")\n self.selectedDates.sort((a, b) => a.getTime() - b.getTime());\n }\n function setDate(date, triggerChange = false, format = self.config.dateFormat) {\n if ((date !== 0 && !date) || (date instanceof Array && date.length === 0))\n return self.clear(triggerChange);\n setSelectedDate(date, format);\n self.latestSelectedDateObj =\n self.selectedDates[self.selectedDates.length - 1];\n self.redraw();\n jumpToDate(undefined, triggerChange);\n setHoursFromDate();\n if (self.selectedDates.length === 0) {\n self.clear(false);\n }\n updateValue(triggerChange);\n if (triggerChange)\n triggerEvent(\"onChange\");\n }\n function parseDateRules(arr) {\n return arr\n .slice()\n .map((rule) => {\n if (typeof rule === \"string\" ||\n typeof rule === \"number\" ||\n rule instanceof Date) {\n return self.parseDate(rule, undefined, true);\n }\n else if (rule &&\n typeof rule === \"object\" &&\n rule.from &&\n rule.to)\n return {\n from: self.parseDate(rule.from, undefined),\n to: self.parseDate(rule.to, undefined),\n };\n return rule;\n })\n .filter((x) => x);\n }\n function setupDates() {\n self.selectedDates = [];\n self.now = self.parseDate(self.config.now) || new Date();\n const preloadedDate = self.config.defaultDate ||\n ((self.input.nodeName === \"INPUT\" ||\n self.input.nodeName === \"TEXTAREA\") &&\n self.input.placeholder &&\n self.input.value === self.input.placeholder\n ? null\n : self.input.value);\n if (preloadedDate)\n setSelectedDate(preloadedDate, self.config.dateFormat);\n self._initialDate =\n self.selectedDates.length > 0\n ? self.selectedDates[0]\n : self.config.minDate &&\n self.config.minDate.getTime() > self.now.getTime()\n ? self.config.minDate\n : self.config.maxDate &&\n self.config.maxDate.getTime() < self.now.getTime()\n ? self.config.maxDate\n : self.now;\n self.currentYear = self._initialDate.getFullYear();\n self.currentMonth = self._initialDate.getMonth();\n if (self.selectedDates.length > 0)\n self.latestSelectedDateObj = self.selectedDates[0];\n if (self.config.minTime !== undefined)\n self.config.minTime = self.parseDate(self.config.minTime, \"H:i\");\n if (self.config.maxTime !== undefined)\n self.config.maxTime = self.parseDate(self.config.maxTime, \"H:i\");\n self.minDateHasTime =\n !!self.config.minDate &&\n (self.config.minDate.getHours() > 0 ||\n self.config.minDate.getMinutes() > 0 ||\n self.config.minDate.getSeconds() > 0);\n self.maxDateHasTime =\n !!self.config.maxDate &&\n (self.config.maxDate.getHours() > 0 ||\n self.config.maxDate.getMinutes() > 0 ||\n self.config.maxDate.getSeconds() > 0);\n }\n function setupInputs() {\n self.input = getInputElem();\n if (!self.input) {\n self.config.errorHandler(new Error(\"Invalid input element specified\"));\n return;\n }\n self.input._type = self.input.type;\n self.input.type = \"text\";\n self.input.classList.add(\"flatpickr-input\");\n self._input = self.input;\n if (self.config.altInput) {\n self.altInput = createElement(self.input.nodeName, self.config.altInputClass);\n self._input = self.altInput;\n self.altInput.placeholder = self.input.placeholder;\n self.altInput.disabled = self.input.disabled;\n self.altInput.required = self.input.required;\n self.altInput.tabIndex = self.input.tabIndex;\n self.altInput.type = \"text\";\n self.input.setAttribute(\"type\", \"hidden\");\n if (!self.config.static && self.input.parentNode)\n self.input.parentNode.insertBefore(self.altInput, self.input.nextSibling);\n }\n if (!self.config.allowInput)\n self._input.setAttribute(\"readonly\", \"readonly\");\n self._positionElement = self.config.positionElement || self._input;\n }\n function setupMobile() {\n const inputType = self.config.enableTime\n ? self.config.noCalendar\n ? \"time\"\n : \"datetime-local\"\n : \"date\";\n self.mobileInput = createElement(\"input\", self.input.className + \" flatpickr-mobile\");\n self.mobileInput.tabIndex = 1;\n self.mobileInput.type = inputType;\n self.mobileInput.disabled = self.input.disabled;\n self.mobileInput.required = self.input.required;\n self.mobileInput.placeholder = self.input.placeholder;\n self.mobileFormatStr =\n inputType === \"datetime-local\"\n ? \"Y-m-d\\\\TH:i:S\"\n : inputType === \"date\"\n ? \"Y-m-d\"\n : \"H:i:S\";\n if (self.selectedDates.length > 0) {\n self.mobileInput.defaultValue = self.mobileInput.value = self.formatDate(self.selectedDates[0], self.mobileFormatStr);\n }\n if (self.config.minDate)\n self.mobileInput.min = self.formatDate(self.config.minDate, \"Y-m-d\");\n if (self.config.maxDate)\n self.mobileInput.max = self.formatDate(self.config.maxDate, \"Y-m-d\");\n if (self.input.getAttribute(\"step\"))\n self.mobileInput.step = String(self.input.getAttribute(\"step\"));\n self.input.type = \"hidden\";\n if (self.altInput !== undefined)\n self.altInput.type = \"hidden\";\n try {\n if (self.input.parentNode)\n self.input.parentNode.insertBefore(self.mobileInput, self.input.nextSibling);\n }\n catch (_a) { }\n bind(self.mobileInput, \"change\", (e) => {\n self.setDate(getEventTarget(e).value, false, self.mobileFormatStr);\n triggerEvent(\"onChange\");\n triggerEvent(\"onClose\");\n });\n }\n function toggle(e) {\n if (self.isOpen === true)\n return self.close();\n self.open(e);\n }\n function triggerEvent(event, data) {\n if (self.config === undefined)\n return;\n const hooks = self.config[event];\n if (hooks !== undefined && hooks.length > 0) {\n for (let i = 0; hooks[i] && i < hooks.length; i++)\n hooks[i](self.selectedDates, self.input.value, self, data);\n }\n if (event === \"onChange\") {\n self.input.dispatchEvent(createEvent(\"change\"));\n self.input.dispatchEvent(createEvent(\"input\"));\n }\n }\n function createEvent(name) {\n const e = document.createEvent(\"Event\");\n e.initEvent(name, true, true);\n return e;\n }\n function isDateSelected(date) {\n for (let i = 0; i < self.selectedDates.length; i++) {\n if (compareDates(self.selectedDates[i], date) === 0)\n return \"\" + i;\n }\n return false;\n }\n function isDateInRange(date) {\n if (self.config.mode !== \"range\" || self.selectedDates.length < 2)\n return false;\n return (compareDates(date, self.selectedDates[0]) >= 0 &&\n compareDates(date, self.selectedDates[1]) <= 0);\n }\n function updateNavigationCurrentMonth() {\n if (self.config.noCalendar || self.isMobile || !self.monthNav)\n return;\n self.yearElements.forEach((yearElement, i) => {\n const d = new Date(self.currentYear, self.currentMonth, 1);\n d.setMonth(self.currentMonth + i);\n if (self.config.showMonths > 1 ||\n self.config.monthSelectorType === \"static\") {\n self.monthElements[i].textContent =\n monthToStr(d.getMonth(), self.config.shorthandCurrentMonth, self.l10n) + \" \";\n }\n else {\n self.monthsDropdownContainer.value = d.getMonth().toString();\n }\n yearElement.value = d.getFullYear().toString();\n });\n self._hidePrevMonthArrow =\n self.config.minDate !== undefined &&\n (self.currentYear === self.config.minDate.getFullYear()\n ? self.currentMonth <= self.config.minDate.getMonth()\n : self.currentYear < self.config.minDate.getFullYear());\n self._hideNextMonthArrow =\n self.config.maxDate !== undefined &&\n (self.currentYear === self.config.maxDate.getFullYear()\n ? self.currentMonth + 1 > self.config.maxDate.getMonth()\n : self.currentYear > self.config.maxDate.getFullYear());\n }\n function getDateStr(format) {\n return self.selectedDates\n .map((dObj) => self.formatDate(dObj, format))\n .filter((d, i, arr) => self.config.mode !== \"range\" ||\n self.config.enableTime ||\n arr.indexOf(d) === i)\n .join(self.config.mode !== \"range\"\n ? self.config.conjunction\n : self.l10n.rangeSeparator);\n }\n function updateValue(triggerChange = true) {\n if (self.mobileInput !== undefined && self.mobileFormatStr) {\n self.mobileInput.value =\n self.latestSelectedDateObj !== undefined\n ? self.formatDate(self.latestSelectedDateObj, self.mobileFormatStr)\n : \"\";\n }\n self.input.value = getDateStr(self.config.dateFormat);\n if (self.altInput !== undefined) {\n self.altInput.value = getDateStr(self.config.altFormat);\n }\n if (triggerChange !== false)\n triggerEvent(\"onValueUpdate\");\n }\n function onMonthNavClick(e) {\n const eventTarget = getEventTarget(e);\n const isPrevMonth = self.prevMonthNav.contains(eventTarget);\n const isNextMonth = self.nextMonthNav.contains(eventTarget);\n if (isPrevMonth || isNextMonth) {\n changeMonth(isPrevMonth ? -1 : 1);\n }\n else if (self.yearElements.indexOf(eventTarget) >= 0) {\n eventTarget.select();\n }\n else if (eventTarget.classList.contains(\"arrowUp\")) {\n self.changeYear(self.currentYear + 1);\n }\n else if (eventTarget.classList.contains(\"arrowDown\")) {\n self.changeYear(self.currentYear - 1);\n }\n }\n function timeWrapper(e) {\n e.preventDefault();\n const isKeyDown = e.type === \"keydown\", eventTarget = getEventTarget(e), input = eventTarget;\n if (self.amPM !== undefined && eventTarget === self.amPM) {\n self.amPM.textContent =\n self.l10n.amPM[int(self.amPM.textContent === self.l10n.amPM[0])];\n }\n const min = parseFloat(input.getAttribute(\"min\")), max = parseFloat(input.getAttribute(\"max\")), step = parseFloat(input.getAttribute(\"step\")), curValue = parseInt(input.value, 10), delta = e.delta ||\n (isKeyDown ? (e.which === 38 ? 1 : -1) : 0);\n let newValue = curValue + step * delta;\n if (typeof input.value !== \"undefined\" && input.value.length === 2) {\n const isHourElem = input === self.hourElement, isMinuteElem = input === self.minuteElement;\n if (newValue < min) {\n newValue =\n max +\n newValue +\n int(!isHourElem) +\n (int(isHourElem) && int(!self.amPM));\n if (isMinuteElem)\n incrementNumInput(undefined, -1, self.hourElement);\n }\n else if (newValue > max) {\n newValue =\n input === self.hourElement ? newValue - max - int(!self.amPM) : min;\n if (isMinuteElem)\n incrementNumInput(undefined, 1, self.hourElement);\n }\n if (self.amPM &&\n isHourElem &&\n (step === 1\n ? newValue + curValue === 23\n : Math.abs(newValue - curValue) > step)) {\n self.amPM.textContent =\n self.l10n.amPM[int(self.amPM.textContent === self.l10n.amPM[0])];\n }\n input.value = pad(newValue);\n }\n }\n init();\n return self;\n}\nfunction _flatpickr(nodeList, config) {\n const nodes = Array.prototype.slice\n .call(nodeList)\n .filter((x) => x instanceof HTMLElement);\n const instances = [];\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n try {\n if (node.getAttribute(\"data-fp-omit\") !== null)\n continue;\n if (node._flatpickr !== undefined) {\n node._flatpickr.destroy();\n node._flatpickr = undefined;\n }\n node._flatpickr = FlatpickrInstance(node, config || {});\n instances.push(node._flatpickr);\n }\n catch (e) {\n console.error(e);\n }\n }\n return instances.length === 1 ? instances[0] : instances;\n}\nif (typeof HTMLElement !== \"undefined\" &&\n typeof HTMLCollection !== \"undefined\" &&\n typeof NodeList !== \"undefined\") {\n HTMLCollection.prototype.flatpickr = NodeList.prototype.flatpickr = function (config) {\n return _flatpickr(this, config);\n };\n HTMLElement.prototype.flatpickr = function (config) {\n return _flatpickr([this], config);\n };\n}\nvar flatpickr = function (selector, config) {\n if (typeof selector === \"string\") {\n return _flatpickr(window.document.querySelectorAll(selector), config);\n }\n else if (selector instanceof Node) {\n return _flatpickr([selector], config);\n }\n else {\n return _flatpickr(selector, config);\n }\n};\nflatpickr.defaultConfig = {};\nflatpickr.l10ns = {\n en: Object.assign({}, English),\n default: Object.assign({}, English),\n};\nflatpickr.localize = (l10n) => {\n flatpickr.l10ns.default = Object.assign(Object.assign({}, flatpickr.l10ns.default), l10n);\n};\nflatpickr.setDefaults = (config) => {\n flatpickr.defaultConfig = Object.assign(Object.assign({}, flatpickr.defaultConfig), config);\n};\nflatpickr.parseDate = createDateParser({});\nflatpickr.formatDate = createDateFormatter({});\nflatpickr.compareDates = compareDates;\nif (typeof jQuery !== \"undefined\" && typeof jQuery.fn !== \"undefined\") {\n jQuery.fn.flatpickr = function (config) {\n return _flatpickr(this, config);\n };\n}\nDate.prototype.fp_incr = function (days) {\n return new Date(this.getFullYear(), this.getMonth(), this.getDate() + (typeof days === \"string\" ? parseInt(days, 10) : days));\n};\nif (typeof window !== \"undefined\") {\n window.flatpickr = flatpickr;\n}\nexport default flatpickr;\n","import React, { useEffect, useRef } from \"react\";\nimport PropTypes from \"prop-types\";\nimport Input from \"../Input\";\nimport { english } from \"flatpickr/dist/l10n/default\";\nimport flatpickr from \"flatpickr\";\n\nconst noop = () => {};\n\n/**\n * Single day picker.\n * Composes NDS input with a [flatpickr](http://flatpickrjs.org) calendar UI.\n */\nconst DateInput = ({\n disableDates,\n minDate,\n dateFormat,\n altInput,\n altFormat,\n defaultDate,\n onChange: onChangeProp = noop,\n ...props\n}) => {\n const input = useRef();\n\n // Shorten \"Sun\" to \"Su\", \"Mon\" to \"Mo\", etc.\n english.weekdays.shorthand = english.weekdays.shorthand.map((abbrev) =>\n abbrev.substr(0, 2)\n );\n const flatpickrOptions = {\n monthSelectorType: \"static\",\n locale: english,\n allowInput: true,\n dateFormat,\n minDate,\n altInput,\n altFormat,\n disable: disableDates,\n defaultDate,\n onChange: (flatpickrVal) => {\n const selectedDate = new Date(flatpickrVal);\n // 🇨🇦 Our neighbors to the north have adopted ISO 8601.\n // localizing to en-CA produces the expected result of YYYY-MM-DD\n const formattedDate = new Intl.DateTimeFormat(\"en-CA\").format(\n selectedDate\n );\n onChangeProp(formattedDate);\n },\n };\n\n useEffect(() => {\n flatpickr(input.current, flatpickrOptions);\n }, [flatpickrOptions, input]);\n\n return (\n <Input {...props}>\n <input\n key={\"nds-text\"}\n ref={input}\n type=\"date\"\n required\n placeholder={props.label}\n {...props}\n />\n </Input>\n );\n};\nDateInput.propTypes = {\n /** Placeholder of the input */\n label: PropTypes.string.isRequired,\n /** Fired with 'YYYY-MM-DD' selected date string when selected date changes */\n onChange: PropTypes.func,\n /** Disables dates. See [flatpickr docs](https://flatpickr.js.org/examples/#disabling-dates) for usage instructions */\n disableDates: PropTypes.array,\n /** Sets the minimum selectable date (inclusive) */\n minDate: PropTypes.bool,\n /** Alternate date format to show in input when a date is selected (e.g. 'm/d/Y')*/\n altFormat: PropTypes.string,\n /**\n * When true, the input value will follow an alternate format defined by the `altFormat` prop\n */\n altInput: PropTypes.bool,\n /**\n * Sets a default selected date.\n * DateInput uses the format 'YYYY-MM-DD' by default.\n */\n defaultDate: PropTypes.string,\n /** Changes date format used in input. See [flatpickr docs](https://flatpickr.js.org/formatting/) for formatting options */\n dateFormat: PropTypes.string,\n};\nDateInput.defaultProps = {\n onChange: () => {},\n disableDates: [],\n dateFormat: \"Y-m-d\",\n};\n\nexport default DateInput;\n","import { useRef, useCallback, useEffect } from 'react';\n\n/*!\n * Adapted from jQuery UI core\n *\n * http://jqueryui.com\n *\n * Copyright 2014 jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/category/ui-core/\n */\nvar tabbableNode = /input|select|textarea|button|object/;\nvar focusSelector = 'a, input, select, textarea, button, object, [tabindex]';\n\nfunction hidden(el) {\n if (process.env.NODE_ENV === 'test') return false;\n return el.offsetWidth <= 0 && el.offsetHeight <= 0 || el.style.display === 'none';\n}\n\nfunction visible(element) {\n var parentElement = element;\n\n while (parentElement) {\n if (parentElement === document.body) break;\n if (hidden(parentElement)) return false;\n parentElement = parentElement.parentNode;\n }\n\n return true;\n}\n\nfunction getElementTabIndex(element) {\n var tabIndex = element.getAttribute('tabindex');\n if (tabIndex === null) tabIndex = undefined;\n return parseInt(tabIndex, 10);\n}\n\nfunction focusable(element) {\n var nodeName = element.nodeName.toLowerCase();\n var isTabIndexNotNaN = !isNaN(getElementTabIndex(element));\n var res = // @ts-ignore\n tabbableNode.test(nodeName) && !element.disabled || (element instanceof HTMLAnchorElement ? element.href || isTabIndexNotNaN : isTabIndexNotNaN);\n return res && visible(element);\n}\nfunction tabbable(element) {\n var tabIndex = getElementTabIndex(element);\n var isTabIndexNaN = isNaN(tabIndex);\n return (isTabIndexNaN || tabIndex >= 0) && focusable(element);\n}\n/**\n * Tabbable elements are elements the user can tab between. This excludes elements with tabIndex=-1\n * */\n\nfunction findTabbableDescendants(element) {\n return Array.from(element.querySelectorAll(focusSelector)).filter(tabbable);\n}\n\nvar focusLaterElements = [];\nvar focusElement = null;\nvar needToFocus = false;\n\nfunction handleBlur() {\n needToFocus = true;\n}\n\nfunction handleFocus() {\n if (needToFocus) {\n needToFocus = false;\n\n if (!focusElement) {\n return;\n }\n\n if (!focusElement) return;\n\n if (focusElement.contains(document.activeElement)) {\n return;\n }\n\n var el = findTabbableDescendants(focusElement)[0] || focusElement;\n el.focus();\n }\n}\n\nfunction markForFocusLater() {\n focusLaterElements.push(document.activeElement);\n}\nfunction returnFocus() {\n var toFocus = null;\n\n try {\n toFocus = focusLaterElements.pop();\n if (toFocus) toFocus.focus();\n } catch (e) {\n // eslint-disable-next-line no-console\n console.warn(['You tried to return focus to', toFocus, 'but it is not in the DOM anymore'].join(' '));\n }\n}\nfunction setupScopedFocus(element) {\n focusElement = element;\n document.addEventListener('focusout', handleBlur, false);\n document.addEventListener('focusin', handleFocus, true);\n}\nfunction teardownScopedFocus() {\n focusElement = null;\n document.removeEventListener('focusout', handleBlur);\n document.removeEventListener('focusin', handleFocus);\n}\n\n/**\n * Controls tabbing, so it stays inside the node element\n * @param node\n * @param event\n */\n\nfunction scopeTab(node, event) {\n var tabbable = findTabbableDescendants(node);\n\n if (!tabbable.length) {\n event.preventDefault();\n return;\n }\n\n var finalTabbable = tabbable[event.shiftKey ? 0 : tabbable.length - 1];\n var leavingFinalTabbable = finalTabbable === document.activeElement || // handle immediate shift+tab after opening with mouse\n node === document.activeElement;\n if (!leavingFinalTabbable) return;\n event.preventDefault();\n var target = tabbable[event.shiftKey ? tabbable.length - 1 : 0];\n if (target) target.focus();\n}\n\n/**\n * Sets `aria-hidden` on all elements on the body, except for the active node.\n **/\nfunction createAriaHider(containerNode, selector) {\n if (selector === void 0) {\n selector = 'body > :not(script)';\n }\n\n var rootNodes = Array.from(document.querySelectorAll(selector)).map(function (node) {\n if (node.contains(containerNode)) {\n return undefined;\n }\n\n var ariaHidden = node.getAttribute('aria-hidden');\n\n if (ariaHidden === null || ariaHidden === 'false') {\n node.setAttribute('aria-hidden', 'true');\n }\n\n return {\n node: node,\n ariaHidden: ariaHidden\n };\n });\n return function () {\n rootNodes.forEach(function (item) {\n if (!item) return;\n\n if (item.ariaHidden === null) {\n item.node.removeAttribute('aria-hidden');\n } else {\n item.node.setAttribute('aria-hidden', item.ariaHidden);\n }\n });\n };\n}\n\n/**\n * Traps focus to DOM node. Use this with a modal to ensure the user focus doesn't leave.\n * */\nfunction useFocusTrap(active, options) {\n if (active === void 0) {\n active = true;\n }\n\n if (options === void 0) {\n options = {};\n }\n\n var ref = useRef();\n var restoreAria = useRef(null);\n var setRef = useCallback(function (node) {\n if (restoreAria.current) {\n restoreAria.current();\n }\n\n if (ref.current) {\n returnFocus();\n teardownScopedFocus();\n }\n\n if (active && node) {\n setupScopedFocus(node);\n markForFocusLater();\n\n var processNode = function processNode(node) {\n // See if we should disable aria\n restoreAria.current = !options.disableAriaHider ? createAriaHider(node) : null; // Find the initial focus element\n\n var focusElement = null;\n\n if (options.focusSelector) {\n focusElement = typeof options.focusSelector === 'string' ? node.querySelector(options.focusSelector) : options.focusSelector;\n }\n\n if (!focusElement) {\n var children = Array.from(node.querySelectorAll(focusSelector));\n focusElement = // Prefer tabbable elements, But fallback to any focusable element\n children.find(tabbable) || // But fallback to any focusable element\n children.find(focusable) || // Nothing found\n null; // If everything else fails, see if the node itself can handle focus\n\n if (!focusElement && focusable(node)) focusElement = node;\n }\n\n if (focusElement) {\n // Set the initial focus inside the traps\n focusElement.focus();\n } else {\n if (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn('[useFocusTrap]: Failed to find a focusable element after activating the focus trap. Make sure to include at an element that can recieve focus. As a fallback, you can also set \"tabIndex={-1}\" on the focus trap node.', node);\n }\n }\n }; // Delay processing the HTML node by a frame. This ensures focus is assigned correctly.\n\n\n setTimeout(function () {\n if (node.ownerDocument) {\n processNode(node);\n } else if (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn('[useFocusTrap]: The focus trap is not part of the DOM yet, so it is unable to correctly set focus. Make sure to render the ref node.', node);\n }\n });\n ref.current = node;\n } else {\n ref.current = null;\n }\n }, [active, options.focusSelector, options.disableAriaHider]);\n useEffect(function () {\n if (!active) return undefined;\n\n var handleKeyDown = function handleKeyDown(event) {\n if (event.key === 'Tab' && ref.current) {\n scopeTab(ref.current, event);\n }\n };\n\n document.addEventListener('keydown', handleKeyDown);\n return function () {\n document.removeEventListener('keydown', handleKeyDown);\n };\n }, [active]);\n return setRef;\n}\n\nexport default useFocusTrap;\n","import React, { useRef, useEffect, useState } from \"react\";\nimport ReactDOM from \"react-dom\";\nimport PropTypes from \"prop-types\";\nimport rafSchd from \"raf-schd\";\nimport useFocusTrap from \"@charlietango/use-focus-trap\";\nimport cc from \"classcat\";\nimport useLockBodyScroll from \"./useLockBodyScroll\";\n\nconst noop = () => {};\n\n/**\n * Checks if content in content area is overflowing\n * @param {Object} contentRef ref of the element to check\n * @returns {Boolean}\n */\nconst getIsContentTooLong = (contentRef) => {\n let result = false;\n if (contentRef.current) {\n result = contentRef.current.scrollHeight > contentRef.current.clientHeight;\n }\n return result;\n};\n\n/**\n * Renders a centered modal dialog with an overlay\n *\n * This component uses a `ReactDOM` portal to render it as a direct\n * child of `document.body`.\n */\nconst Dialog = ({\n isOpen = false,\n onUserDismiss = noop,\n title,\n headerStyle = \"bordered\",\n children,\n footer,\n width = \"500px\",\n}) => {\n const [isContentOverflowing, setIsContentOverflowing] = useState(false);\n const contentRef = useRef(null);\n const shimRef = useRef(null);\n const focusTrapRef = useFocusTrap(isOpen);\n useLockBodyScroll(isOpen);\n\n // `rafSchd` uses `requestAnimationFrame` to schedule the state update\n // for the next frame the browser draws - good for performance\n const checkContentOverflow = () => {\n rafSchd(setIsContentOverflowing(getIsContentTooLong(contentRef)));\n };\n\n const handleKeyDown = ({ key }) => {\n if (key === \"Escape\") {\n onUserDismiss();\n }\n };\n\n useEffect(() => {\n if (isOpen) checkContentOverflow(); // run when the dialog initially opens\n window.addEventListener(\"keydown\", handleKeyDown);\n window.addEventListener(\"resize\", checkContentOverflow);\n return () => {\n window.removeEventListener(\"keydown\", handleKeyDown);\n window.removeEventListener(\"resize\", checkContentOverflow);\n };\n }, [handleKeyDown, checkContentOverflow, isOpen]);\n\n const handleShimClick = ({ target }) => {\n if (shimRef.current && target === shimRef.current) {\n onUserDismiss();\n }\n };\n\n // the shim has events for mouse users only; does not require a role\n /* eslint-disable jsx-a11y/no-static-element-interactions,jsx-a11y/click-events-have-key-events */\n const dialogJSX = (\n <div className=\"nds-shim--dark\" ref={shimRef} onClick={handleShimClick}>\n <div\n role=\"dialog\"\n aria-labelledby=\"aria-dialog-label\"\n aria-modal=\"true\"\n className=\"nds-dialog\"\n style={{ width }}\n ref={focusTrapRef}\n >\n <div className={`nds-dialog-header nds-dialog-header--${headerStyle}`}>\n <h4 id=\"aria-dialog-label\">{title}</h4>\n <button\n className=\"resetButton nds-dialog-closeButton\"\n aria-label=\"close\"\n onClick={onUserDismiss}\n >\n <span className=\"narmi-icon-x\"></span>\n </button>\n </div>\n <div\n ref={contentRef}\n className=\"nds-dialog-content nds-typography padding--top--xs\"\n >\n {children}\n </div>\n {footer && (\n <div\n className={cc([\n \"nds-dialog-footer\",\n { \"nds-dialog-footer--overflowing\": isContentOverflowing },\n ])}\n >\n {footer}\n </div>\n )}\n </div>\n </div>\n );\n /* eslint-enable jsx-a11y/no-static-element-interactions,jsx-a11y/click-events-have-key-events */\n\n return <>{isOpen && ReactDOM.createPortal(dialogJSX, document.body)}</>;\n};\n\nDialog.propTypes = {\n /** Scrollable contents of the Dialog */\n children: PropTypes.node.isRequired,\n /** Heading in the top of the Dialog */\n title: PropTypes.string.isRequired,\n /** Contents of Dialog footer, typically reserved for action buttons */\n footer: PropTypes.node,\n /** Visual style for Dialog header */\n headerStyle: PropTypes.oneOf([\"bordered\", \"plain\"]),\n /** Controls open/close state of the modal. Use the `onUserDismiss` callback to update. */\n isOpen: PropTypes.bool,\n /**\n * Callback to handle user taking an action to dismiss the modal\n * (click outside, Escape key, click close button)\n */\n onUserDismiss: PropTypes.func,\n /**\n * Sets a custom modal width.\n * Use the full CSS value with the unit (e.g. \"400px\")\n */\n width: PropTypes.string,\n};\n\nexport default Dialog;\n","import { useLayoutEffect } from \"react\";\n\n/**\n * Hook for locking body scrolling while a component is mounted\n * @param {Boolean} isActive - applies scroll locking when `true`\n */\nconst useLockBodyScroll = (isActive) => {\n useLayoutEffect(() => {\n if (isActive) {\n document.body.classList.add(\"overflow--hidden\");\n }\n return () => {\n document.body.classList.remove(\"overflow--hidden\");\n };\n }, [isActive]);\n};\n\nexport default useLockBodyScroll;\n","var rafSchd = function rafSchd(fn) {\n var lastArgs = [];\n var frameId = null;\n\n var wrapperFn = function wrapperFn() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n lastArgs = args;\n\n if (frameId) {\n return;\n }\n\n frameId = requestAnimationFrame(function () {\n frameId = null;\n fn.apply(void 0, lastArgs);\n });\n };\n\n wrapperFn.cancel = function () {\n if (!frameId) {\n return;\n }\n\n cancelAnimationFrame(frameId);\n frameId = null;\n };\n\n return wrapperFn;\n};\n\nexport default rafSchd;\n","import React, { useRef, useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport Input from \"../Input\";\nimport iconSelection from \"src/icons/selection.json\";\n\nexport const VALID_ICON_NAMES = iconSelection.icons.map(\n (icon) => icon.properties.name\n);\n\n/**\n * Narmi flavored text input with floating label\n */\nconst TextInput = (props) => {\n const {\n icon, // DEPRECATED\n startIcon,\n formatter,\n multiline,\n defaultValue,\n onChange,\n onBlur,\n ...nativeElementProps\n } = props;\n\n // support deprecated `icon` prop as the startIcon until we remove it\n const leftIcon = icon !== undefined ? icon : startIcon;\n\n const [inputValue, setInputValue] = useState(\n defaultValue ? defaultValue : \"\"\n );\n const ref = useRef();\n\n function _onBlur(e) {\n if (onBlur) {\n onBlur(e);\n }\n setInputValue(formatter(ref.current.value));\n }\n function _onChange(e) {\n if (onChange) {\n onChange(e);\n }\n setInputValue(ref.current.value);\n }\n\n return (\n <Input\n onClick={() => {\n ref.current?.focus();\n }}\n {...props}\n startIconClass={leftIcon ? `narmi-icon-${leftIcon}` : undefined}\n >\n {multiline ? (\n <div\n className=\"nds-input-multiline-grid\"\n data-textarea-value={inputValue}\n >\n <textarea\n key={\"nds-text\"}\n wrap=\"soft\"\n ref={ref}\n value={inputValue}\n onChange={_onChange}\n onBlur={_onBlur}\n required\n {...nativeElementProps}\n />\n </div>\n ) : (\n <input\n key={\"nds-text\"}\n value={inputValue}\n onChange={_onChange}\n onBlur={_onBlur}\n ref={ref}\n type=\"text\"\n required\n placeholder={props.label}\n {...nativeElementProps}\n />\n )}\n </Input>\n );\n};\nTextInput.propTypes = {\n /** Label used as input placeholder _and_ floating label */\n label: PropTypes.string.isRequired,\n /** Callback invoked with event object on input change */\n onChange: PropTypes.func,\n /** Callback invoked with event object on input blur */\n onBlur: PropTypes.func,\n /** Sets the [uncontrolled](https://reactjs.org/docs/uncontrolled-components.html) value of the input */\n defaultValue: PropTypes.string,\n /** When true, the input is displayed as an auto-growing textarea */\n multiline: PropTypes.bool,\n /** function that formats the input value on blur */\n formatter: PropTypes.func,\n /** Name of Narmi icon to place at the start of the input box */\n startIcon: PropTypes.oneOf(VALID_ICON_NAMES),\n /** DEPREACTED - use `startIcon` instead */\n icon: PropTypes.oneOf(VALID_ICON_NAMES),\n};\n\nTextInput.defaultProps = {\n multiline: false,\n formatter: (x) => x,\n};\n\nexport default TextInput;\n","/* eslint-disable */ // this file will be removed in a future release\nimport React, { useState, useEffect } from \"react\";\nimport TextInput from \"../TextInput\";\nimport PropTypes from \"prop-types\";\n\nconst Chevron = ({ open, setOpen }) => {\n if (open) {\n return (\n <span\n className={\"nds-dropdown-chevron narmi-icon-chevron-up\"}\n onClick={setOpen.bind(null, false)}\n />\n );\n }\n return (\n <span\n onClick={setOpen.bind(null, true)}\n className={\"nds-dropdown-chevron narmi-icon-chevron-down\"}\n />\n );\n};\nChevron.propTypes = {\n open: PropTypes.bool,\n setOpen: PropTypes.func,\n};\n\nconst DropdownMenu = ({ open, onClose, children, ...rest }) => {\n /*\n * Expand and display the dropdown options, if open=true\n */\n return open ? (\n <div className=\"nds-dropdown-menu\">\n <div className=\"nds-dropdown-overlay\" onClick={onClose}></div>\n <div\n className=\"nds-dropdown-menu-items\"\n aria-modal\n aria-hidden\n tabIndex={-1}\n role=\"dialog\"\n {...rest}\n >\n {children}\n </div>\n </div>\n ) : null;\n};\n\n/**\n * **⚠️ DEPRECATED ⚠️**\n *\n * This component will be removed in a future release.\n * Please use `Select` instead\n */\nconst Dropdown = ({ error, ...props }) => {\n const [open, setOpen] = useState(props.defaultOpen);\n const [value, setValue] = useState(props.defaultValue || \"\");\n\n useEffect(() => {\n if (value === undefined && props.defaultValue) {\n setValue(props.defaultValue);\n }\n }, []);\n useEffect(() => {\n if (props.closeDropDown === true) {\n closeDropdown();\n }\n }, [props.closeDropDown]);\n\n const closeDropdown = () => {\n setOpen(false);\n };\n\n const childrenList = Array.isArray(props.children)\n ? props.children.flat()\n : props.children.flat();\n\n return (\n <div\n onKeyDown={(event) => {\n if ([\"Tab\", \"Escape\"].includes(event.key)) closeDropdown();\n }}\n className=\"nds-dropdown\"\n field=\"test\"\n >\n <TextInput\n onClick={() => {\n setOpen(true);\n }}\n value={value}\n field={props.field}\n label={props.triggerLabel}\n readOnly\n error={error}\n />\n <DropdownMenu open={open} onClose={closeDropdown}>\n <div className=\"nds-dropdown-children nds-typography\">\n {childrenList.map((child, i) =>\n React.cloneElement(child, {\n className: \"nds-dropdown-item\",\n onClick: child.props.onClick\n ? child.props.onClick\n : () => {\n setValue(child.props.children);\n props.onChange(child.props.children);\n closeDropdown();\n },\n key: i,\n })\n )}\n </div>\n </DropdownMenu>\n <Chevron open={open} setOpen={setOpen} />\n </div>\n );\n};\n\nDropdown.defaultProps = {\n defaultOpen: false,\n onChange: () => {},\n};\nDropdown.propTypes = {\n /** Initial label shown in input */\n triggerLabel: PropTypes.string.isRequired,\n /** Array of elements to render as items in the dropdown */\n children: PropTypes.array,\n /** Sets `field` prop of internal `TextInput` */\n field: PropTypes.string,\n /** When true, the dropdown initially renders as open */\n defaultOpen: PropTypes.bool,\n /** Callback invoked when user selects a new value from the options list */\n onChange: PropTypes.func,\n /** Callback invoked when the dropdown closes*/\n onClose: PropTypes.func,\n /** When true, the dropdown is forced to close */\n closeDropDown: PropTypes.bool,\n /** Optional error message that displays an error state when passed */\n error: PropTypes.string,\n};\n\nexport default Dropdown;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport cc from \"classcat\";\n\n/**\n * Generic trigger button for dropdowns. `DropdownTrigger` can be composed with\n * other components like `Popover` to create a wide range of dropdown, popover, and menu components.\n *\n * The entire clickable area is a `button` element to ensure dropdown triggers are accessible.\n *\n * **Additional props will be spread on the `button` element.**\n */\nconst DropdownTrigger = React.forwardRef(\n (\n {\n isOpen = false,\n showOpenIndicator = true,\n labelText,\n labelProps,\n displayValue,\n errorText,\n minWidth = \"auto\",\n ...otherProps\n },\n ref\n ) => (\n <>\n <div className=\"nds-dropdownTrigger\" style={{ minWidth }}>\n <button\n ref={ref}\n data-testid=\"dropdownTriggerButton\"\n className={cc([\n \"nds-dropdownTrigger-button button--reset padding--x--s\",\n \"bgColor--white rounded--all\",\n {\n \"nds-dropdownTrigger-button--hasValue\": Boolean(displayValue),\n \"nds-dropdownTrigger-button--hasError\": Boolean(errorText),\n },\n ])}\n aria-expanded={isOpen ? \"true\" : \"false\"}\n {...otherProps}\n >\n {labelText && (\n <label className=\"nds-dropdownTrigger-label\" {...labelProps}>\n {labelText}\n </label>\n )}\n {displayValue && <span>{displayValue}</span>}\n {showOpenIndicator && (\n <span\n role=\"img\"\n aria-label={isOpen ? \"popup open\" : \"popup closed\"}\n className={cc([\n \"nds-dropdownTrigger-chevron fontSize--l fontColor--secondary\",\n `narmi-icon-chevron-${isOpen ? \"up\" : \"down\"}`,\n ])}\n />\n )}\n </button>\n </div>\n {errorText && (\n <div className=\"nds-dropdownTrigger-error fontColor--error\">\n <span role=\"img\" className=\"narmi-icon-x-circle fontSize--s\" />\n <span className=\"padding--left--xxs fontColor--error fontSize--xs\">\n {errorText}\n </span>\n </div>\n )}\n </>\n )\n);\nDropdownTrigger.displayName = \"DropdownTrigger\";\n\nDropdownTrigger.propTypes = {\n /** Set this to `true` when the associated popup is open */\n isOpen: PropTypes.bool,\n /** Set to `false` to hide the chevron icon indicating open state */\n showOpenIndicator: PropTypes.bool,\n /** Text of `label` element */\n labelText: PropTypes.string,\n /** Props to spread onto the `label` element */\n labelProps: PropTypes.object,\n /**\n * Renders a string or node as the value displayed in the `DropdownTrigger`\n * Usually, this represents the name of a selected option\n */\n displayValue: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n /** Error message. When this prop is passed, an error state is dsiplayed */\n errorText: PropTypes.string,\n /**\n * Sets a mimimum width.\n * Use the full CSS value with the unit (e.g. \"400px\")\n */\n minWidth: PropTypes.string,\n};\n\nexport default DropdownTrigger;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\n/**\n * Used to wrap a block of loadable content. When `isLoading` is set to true,\n * the content area will have an overlay and loading animation.\n */\nconst LoadingShim = ({ isLoading = false, children }) => (\n <div\n data-testid=\"nds-loadingshim\"\n aria-live=\"polite\"\n aria-busy={isLoading.toString()}\n style={{ position: \"relative\" }}\n >\n {isLoading && (\n <div className=\"nds-loadingShim\">\n <div\n title=\"Loading...\"\n role=\"img\"\n className=\"nds-loadingShim-indicator\"\n >\n <div>&nbsp;</div>\n <div>&nbsp;</div>\n <div>&nbsp;</div>\n </div>\n </div>\n )}\n {children}\n </div>\n);\n\nLoadingShim.propTypes = {\n /** Loadable content area - will render normally unless `isLoading` is true */\n children: PropTypes.node.isRequired,\n /** When `true`, the loading shim appears over child content */\n isLoading: PropTypes.bool,\n};\n\nexport default LoadingShim;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\n/**\n * Used to mask a limited block of loadable content. When `isLoading` is set to true,\n * the content area will be be replaced by a shadowed, skeletal imitation of the\n * pending content.\n */\n\nconst LoadingSkeleton = ({\n children,\n isLoading = false,\n content = \"paragraph\",\n lines = 3,\n showTitle = false,\n size = \"medium\",\n}) => {\n return isLoading ? (\n <div className=\"nds-loading-skeleton\">\n {content === \"paragraph\" && (\n <>\n {showTitle && <div className=\"nds-line-block header\" />}\n {[...Array(lines)].map((_, i) => (\n <div className=\"nds-line-block\" key={i} />\n ))}\n </>\n )}\n {content === \"headerText\" && <div className={`nds-line-block ${size}`} />}\n </div>\n ) : (\n <>{children}</>\n );\n};\nLoadingSkeleton.propTypes = {\n /** Loadable content area - will render normally unless `isLoading` is true. */\n children: PropTypes.node,\n /** When `true`, the child content is replaced by the skeleton imitation. */\n isLoading: PropTypes.bool,\n /** The mask type that best represents the content. */\n content: PropTypes.oneOf([\"paragraph\", \"headerText\"]),\n /**\n * Only applies if `content` prop is set to `paragraph`.\n * The number of lines to be shown by the skeleton.\n */\n lines: PropTypes.number,\n /**\n * Only applies if `content` prop is set to `paragraph`.\n * When `true`, a skeletal title row will be shown above the first line.\n */\n showTitle: PropTypes.bool,\n /**\n * Only applies if `content` prop is set to `headerText`.\n * The size of the skeletal header text.\n */\n size: PropTypes.oneOf([\"small\", \"medium\", \"large\"]),\n};\n\nexport default LoadingSkeleton;\n","/* eslint-disable */ // file will be removed in a future release\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\n\n/**\n * **⚠️ DEPRECATED ⚠️**\n *\n * This component will be removed in a future release.\n * Please use `Dialog` instead to display a centered modal window.\n */\nconst Modal = ({\n open = false,\n setOpen,\n handleClose,\n children,\n classes = \"center\",\n maxWidth,\n header,\n actions,\n}) => {\n const setNotOpen = setOpen ? () => setOpen(false) : handleClose;\n React.useEffect(() => {\n if (open) document.body.style.overflow = \"hidden\";\n else {\n document.body.style.overflow = \"\";\n }\n }, [open]);\n return (\n <div\n className={`nds-modal ${classes}`}\n data-open={open.toString()}\n style={{ borderRadius: \"8px\" }}\n >\n <div className=\"nds-modal-overlay\" onClick={setNotOpen}></div>\n <div\n className=\"nds-modal-container\"\n style={{ maxWidth: `${maxWidth}px` }}\n >\n <div className=\"nds-modal-dismiss\" onClick={setNotOpen}>\n <span\n className={\"narmi-icon-x\"}\n style={{ fontSize: \"20px\", color: \"rgb(var(--nds-black))\" }}\n />\n </div>\n {header ? (\n <>\n <h4 className=\"nds-sans\">{header}</h4> <hr className=\"nds-hr\" />{\" \"}\n </>\n ) : (\n \"\"\n )}\n {children}\n {actions && <div className=\"nds-modal-action-row\">{actions}</div>}\n </div>\n </div>\n );\n};\n\nModal.propTypes = {\n /** JSX content to render within the Modal body */\n children: PropTypes.node.isRequired,\n /** JSX content to render as the Modal header */\n header: PropTypes.node,\n /** When true, the Modal will be open */\n open: PropTypes.bool,\n /**\n * Callback called when user takes and opening or dismissal action on the modal.\n * Function is invoked with a boolean representing the new `open` value to set.\n */\n setOpen: PropTypes.func,\n /**\n * ⚠️ DEPRECATED\n * This prop will be removed in a future release.\n * Callback invoked on user dismissal actions.\n */\n handleClose: PropTypes.func,\n /** JSX content to render within the actions area of the Modal */\n actions: PropTypes.node,\n /** Additional classes to pass to the root Modal element */\n classes: PropTypes.oneOf([\"center\", \"right\", \"details\", \"wide details\"]),\n /** Sets a max-width for the Modal container */\n maxWidth: PropTypes.oneOf([PropTypes.number, PropTypes.string]),\n};\n\nexport default Modal;\n","import React, { useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport cc from \"classcat\";\nimport Row from \"../Row\";\n\nconst noop = () => {};\nconst MAX_VISIBLE_PAGES = 5;\n\n/**\n * Business logic for pagination; given a total number of pages\n * and the selected page, returns attributes used to render pagination\n *\n * @param {Number} totalPages\n * @param {Number} selectedPage\n * @returns {Object} attributes used to render pagination\n */\nexport const _getAttributes = (\n totalPages,\n selectedPage = 1,\n segmentSize = MAX_VISIBLE_PAGES\n) => {\n // create a list of page segments\n // each segment is an array of page numbers.\n const pageSegments = [...new Array(totalPages)]\n .map((p, i) => i + 1) // [1,2,3,4,5,6,7, ...]\n .reduce((segments, page, i) => {\n const segmentIndex = Math.floor(i / segmentSize);\n if (!segments[segmentIndex]) {\n segments[segmentIndex] = [];\n }\n segments[segmentIndex].push(page);\n return segments;\n }, []); // [[1,2,3,4,5], [6,7,8,9,10], ...]\n\n // show the segment that has the selected page\n const visiblePages = pageSegments.filter((segment) =>\n segment.includes(selectedPage)\n )[0];\n const selectedIndex = visiblePages.indexOf(selectedPage);\n\n // show prev/next arrows unless we are in the first or last segment\n const showPrev = !visiblePages.includes(1);\n const showNext = !visiblePages.includes(totalPages);\n\n // only populate first/last pages when they are outside the visible segment\n const firstPage = !visiblePages.includes(1) && 1;\n const lastPage = !visiblePages.includes(totalPages) && totalPages;\n\n return {\n visiblePages,\n selectedIndex,\n firstPage,\n lastPage,\n showPrev,\n showNext,\n };\n};\n\n/**\n * Component that allows users to navigate between pages of information.\n * Your application is responsible for setting the total number of pages and\n * responding to the `onPageChange` callback.\n *\n * The component will handle which page numbers to render, next and previous arrows,\n * and conditionally rendering first and last pages.\n *\n * If your pagination setup expectes a fully controlled component, you may set `defaultSelectedPage` on every `onPageChange` call.\n */\nconst Pagination = ({\n onPageChange = noop,\n totalPages = 1,\n defaultSelectedPage = 1,\n}) => {\n // no jokers allowed 🤡\n // - default to first page if default selected page is out of bounds\n // - enforce minimum of 1 pages\n if (defaultSelectedPage > totalPages || defaultSelectedPage < 1) {\n defaultSelectedPage = 1;\n }\n if (totalPages < 1) {\n totalPages = 1;\n }\n\n const [selectedPage, setSelectedPage] = useState(defaultSelectedPage);\n const {\n visiblePages,\n selectedIndex,\n showPrev,\n showNext,\n firstPage,\n lastPage,\n } = _getAttributes(totalPages, selectedPage);\n\n const handlePageClick = ({ target }) => {\n const page = parseInt(target.dataset.page, 10);\n setSelectedPage(page);\n onPageChange(page);\n };\n\n const handlePrevClick = () => {\n const newSelectedPage = selectedPage - 1;\n setSelectedPage(newSelectedPage);\n onPageChange(newSelectedPage);\n };\n\n const handleNextClick = () => {\n const newSelectedPage = selectedPage + 1;\n setSelectedPage(newSelectedPage);\n onPageChange(newSelectedPage);\n };\n\n const pagination = (\n <div className=\"nds-typography nds-pagination\">\n <nav aria-label=\"pagination\">\n <Row gapSize=\"xxs\" alignItems=\"center\" as=\"ul\">\n <Row.Item as=\"li\" shrink>\n <span\n role=\"button\"\n tabIndex={0}\n aria-disabled={!showPrev}\n aria-label=\"Previous page\"\n onClick={handlePrevClick}\n onKeyUp={({ key }) => {\n if (key === \"Enter\") {\n handlePrevClick();\n }\n }}\n className={cc([\n \"nds-pagination-page\",\n \"padding--none\",\n {\n \"nds-pagination-page--disabled\": !showPrev,\n },\n ])}\n >\n <i role=\"img\" className=\"narmi-icon-chevron-left fontSize--l\"></i>\n </span>\n </Row.Item>\n\n {firstPage && (\n <Row.Item as=\"li\" shrink>\n <span\n role=\"button\"\n tabIndex={0}\n aria-label=\"First page\"\n onClick={handlePageClick}\n onKeyUp={(e) => {\n if (e.key === \"Enter\") {\n handlePageClick(e);\n }\n }}\n data-page={firstPage}\n className=\"nds-pagination-page\"\n >\n {firstPage.toString()}\n </span>\n </Row.Item>\n )}\n {firstPage && (\n <Row.Item as=\"li\" shrink>\n <div className=\"nds-pagination-ellipsis\">&hellip;</div>\n </Row.Item>\n )}\n\n {visiblePages.map((page, i) => (\n <Row.Item as=\"li\" key={page} shrink>\n <span\n role=\"button\"\n tabIndex={0}\n className={cc([\n \"nds-pagination-page\",\n {\n \"nds-pagination-page--selected\": i === selectedIndex,\n },\n ])}\n data-page={page}\n onClick={handlePageClick}\n onKeyUp={(e) => {\n if (e.key === \"Enter\") {\n handlePageClick(e);\n }\n }}\n aria-label={`Page ${page}`}\n aria-current={i === selectedIndex && \"page\"}\n >\n {page.toString()}\n </span>\n </Row.Item>\n ))}\n\n {lastPage && (\n <Row.Item as=\"li\" shrink>\n <div className=\"nds-pagination-ellipsis\">&hellip;</div>\n </Row.Item>\n )}\n {lastPage && (\n <Row.Item as=\"li\" shrink>\n <span\n role=\"button\"\n tabIndex={0}\n aria-label=\"Last page\"\n onClick={handlePageClick}\n onKeyUp={(e) => {\n if (e.key === \"Enter\") {\n handlePageClick(e);\n }\n }}\n data-page={lastPage}\n className=\"nds-pagination-page\"\n >\n {lastPage.toString()}\n </span>\n </Row.Item>\n )}\n\n <Row.Item as=\"li\" shrink>\n <span\n role=\"button\"\n tabIndex={0}\n aria-disabled={!showNext}\n aria-label=\"Next page\"\n onClick={handleNextClick}\n onKeyUp={({ key }) => {\n if (key === \"Enter\") {\n handleNextClick();\n }\n }}\n className={cc([\n \"nds-pagination-page\",\n \"padding--none\",\n {\n \"nds-pagination-page--disabled\": !showNext,\n },\n ])}\n >\n <i\n role=\"img\"\n className=\"narmi-icon-chevron-right fontSize--l\"\n ></i>\n </span>\n </Row.Item>\n </Row>\n </nav>\n </div>\n );\n\n return totalPages > 1 ? pagination : <></>;\n};\n\nPagination.propTypes = {\n /**\n * Total number of pages\n * If the number of pages is 1, pagination will not render\n */\n totalPages: PropTypes.number.isRequired,\n /**\n * Default selected page by page number.\n */\n defaultSelectedPage: PropTypes.number,\n /**\n * Callback invoked when user selects a new page via page numbers or\n * previous/next arrows.\n *\n * Invoked with selected page number as the argument.\n */\n onPageChange: PropTypes.func,\n};\n\nexport default Pagination;\n","/* eslint-disable */ // deprecated; will remove this file in a future release\nimport React from \"react\";\n\n/**\n * ⚠️ DEPRECATED ⚠️\n * This component will be removed in a future release.\n * Use `<Button type=\"plain\">` instead.\n */\nconst PlainButton = (props) => {\n return (\n <a {...props} className=\"nds-plain-button\">\n {props.children ? props.children : \"\"}\n </a>\n );\n};\n\nexport default PlainButton;\n","import { useRef, useState, useMemo, useLayoutEffect, useEffect, useCallback, createElement, useContext, createContext, forwardRef } from 'react';\nimport { createPortal } from 'react-dom';\nimport warning from 'tiny-warning';\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _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 _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\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/**\r\n * Utility hook to track the reference of a html-element.\r\n * It notifies the listener when a change occured, so it can act\r\n * on the change\r\n */\n\nfunction useTrackRef(onRefChange) {\n var storedReference = useRef(null); // this is de function that actually gets passed to the `ref` prop\n // on the html element. I.e.:\n // <div ref={setter} />\n\n function setter(element) {\n if (!element || element === storedReference.current) {\n return;\n }\n\n storedReference.current = element;\n onRefChange(element);\n }\n\n return setter;\n}\n/**\r\n * Utility hook that stores mutable state.\r\n * Since a getter function is used, it will always return the most\r\n * up-to-date state. This is useful when you want to get certain state within\r\n * an effect, without triggering the same effect when the same state changes.\r\n * Note: may be seen as an anti-pattern.\r\n */\n\nfunction useMutableStore(initialState) {\n var state = useRef(initialState);\n return useMemo(function () {\n function set(setter) {\n if (typeof setter === \"function\") {\n state.current = setter(state.current);\n } else {\n state.current = setter;\n }\n }\n\n function get() {\n return state.current;\n }\n\n return [get, set];\n }, []);\n}\n/**\r\n * Utility hook that keeps track of active event listeners and how\r\n * to remove these listeners\r\n */\n\nfunction useEventSubscriptions() {\n var subscriptions = useRef([]);\n return useMemo(function () {\n function hasEventSubscriptions() {\n return subscriptions.current.length > 0;\n }\n\n function removeAllEventSubscriptions() {\n for (var _iterator = _createForOfIteratorHelperLoose(subscriptions.current), _step; !(_step = _iterator()).done;) {\n var unsubscribe = _step.value;\n unsubscribe();\n }\n\n subscriptions.current = [];\n }\n\n function addEventSubscription(unsubscriber) {\n subscriptions.current.push(unsubscriber);\n }\n\n return {\n hasEventSubscriptions: hasEventSubscriptions,\n removeAllEventSubscriptions: removeAllEventSubscriptions,\n addEventSubscription: addEventSubscription\n };\n }, []);\n}\n/**\r\n * SSR-safe effect hook\r\n */\n\nvar useIsomorphicLayoutEffect = typeof window !== \"undefined\" ? useLayoutEffect : useEffect;\n/**\r\n * Utility hook that tracks an state object.\r\n * If `enabled=false` it will discard changes and reset the lastState to `null`\r\n */\n\nfunction useLastState(currentState, enabled) {\n var lastState = useRef(currentState);\n\n if (!enabled) {\n lastState.current = null;\n return lastState;\n }\n\n lastState.current = currentState;\n return lastState;\n}\nvar EMPTY_BOUNDS = {\n top: 0,\n left: 0,\n right: 1,\n bottom: 1,\n width: 1,\n height: 1\n};\n/**\r\n * @description Utility hook that lets you use the mouse-position as source of the trigger.\r\n * This is useful in scenario's like context-menu's.\r\n *\r\n * @example\r\n * ```tsx\r\n * const {\r\n * hasMousePosition,\r\n * resetMousePosition,\r\n * handleMouseEvent,\r\n * trigger\r\n * } = useMousePositionAsTrigger();\r\n *\r\n * const { renderLayer, layerProps } = useLayer({\r\n * isOpen: hasMousePosition,\r\n * trigger,\r\n * onOutsideClick: resetMousePosition\r\n * });\r\n *\r\n * return (\r\n * <>\r\n * {isOpen && renderLayer(<div {...layerProps} />)}\r\n * <div onContextMenu={handleMouseEvent} />\r\n * </>\r\n * );\r\n * ```\r\n */\n\nfunction useMousePositionAsTrigger(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$enabled = _ref.enabled,\n enabled = _ref$enabled === void 0 ? true : _ref$enabled,\n _ref$preventDefault = _ref.preventDefault,\n preventDefault = _ref$preventDefault === void 0 ? true : _ref$preventDefault;\n\n var parentRef = useRef(null);\n\n var _useState = useState(EMPTY_BOUNDS),\n mouseBounds = _useState[0],\n setMouseBounds = _useState[1];\n\n function resetMousePosition() {\n setMouseBounds(EMPTY_BOUNDS);\n }\n\n var hasMousePosition = mouseBounds !== EMPTY_BOUNDS;\n\n function handleMouseEvent(evt) {\n if (!enabled) {\n return;\n }\n\n if (preventDefault) {\n evt.preventDefault();\n }\n\n var left = evt.clientX,\n top = evt.clientY;\n setMouseBounds({\n top: top,\n left: left,\n width: 1,\n height: 1,\n right: left + 1,\n bottom: top + 1\n });\n }\n\n return {\n hasMousePosition: hasMousePosition,\n resetMousePosition: resetMousePosition,\n handleMouseEvent: handleMouseEvent,\n trigger: {\n getBounds: function getBounds() {\n return mouseBounds;\n },\n getParent: parentRef.current ? function () {\n return parentRef.current;\n } : undefined\n },\n parentRef: parentRef\n };\n}\n\n/**\r\n * Convert a pixel value into a numeric value\r\n * @param value string value (ie. '12px')\r\n */\nfunction getPixelValue(value) {\n return parseFloat(value.replace(\"px\", \"\"));\n}\n/**\r\n * Returns a numeric value that doesn't exceed min or max\r\n */\n\nfunction limit(value, min, max) {\n return value < min ? min : value > max ? max : value;\n}\n/**\r\n * Utility function which ensures whether a value is truthy\r\n */\n\nfunction isSet(value) {\n return value === null || value === undefined ? false : true;\n}\n/**\r\n * Utility function that let's you assign multiple references to a 'ref' prop\r\n * @param refs list of MutableRefObject's and / or callbacks\r\n */\n\nfunction mergeRefs() {\n for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n refs[_key] = arguments[_key];\n }\n\n return function (element) {\n for (var _iterator = _createForOfIteratorHelperLoose(refs), _step; !(_step = _iterator()).done;) {\n var ref = _step.value;\n\n if (!ref) {\n continue;\n }\n\n if (typeof ref === \"function\") {\n ref(element);\n } else {\n ref.current = element;\n }\n }\n };\n}\n\n/**\r\n * Utility to get the correct ResizeObserver class\r\n */\n\nfunction getResizeObserver(environment, polyfill) {\n if (typeof environment === \"undefined\") {\n return undefined;\n }\n\n return polyfill || environment.ResizeObserver;\n}\n/**\r\n * Utility function that given a element traverses up in the html-hierarchy\r\n * to find and return all ancestors that have scroll behavior\r\n */\n\nfunction findScrollContainers(element, environment) {\n var result = [];\n\n if (!element || !environment || element === document.body) {\n return result;\n }\n\n var _environment$getCompu = environment.getComputedStyle(element),\n overflow = _environment$getCompu.overflow,\n overflowX = _environment$getCompu.overflowX,\n overflowY = _environment$getCompu.overflowY;\n\n if ([overflow, overflowX, overflowY].some(function (prop) {\n return [\"auto\", \"scroll\"].includes(prop);\n })) {\n result.push(element);\n }\n\n return [].concat(result, findScrollContainers(element.parentElement, environment));\n}\n\nfunction createReferenceError(subject) {\n return \"react-laag: Could not find a valid reference for the \" + subject + \" element. There might be 2 causes:\\n - Make sure that the 'ref' is set correctly on the \" + subject + \" element when isOpen: true. Also make sure your component forwards the ref with \\\"forwardRef()\\\".\\n - Make sure that you are actually rendering the \" + subject + \" when the isOpen prop is set to true\";\n}\n/**\r\n * This hook has the responsibility to track the bounds of:\r\n * - the trigger element\r\n * - the layer element\r\n * - the arrow element\r\n * - the scroll-containers of which the trigger element is a descendant of\r\n *\r\n * It will call the `onChange` callback with a collection of these elements when any\r\n * of the tracked elements bounds have changed\r\n *\r\n * It will detect these changes by listening:\r\n * - when the reference of the trigger element changes\r\n * - when the reference of the layer element changes\r\n * - when the trigger, layer or document body changes in size\r\n * - when the user scrolls the page, or any of the scroll containers\r\n */\n\n\nfunction useTrackElements(_ref) {\n var enabled = _ref.enabled,\n onChange = _ref.onChange,\n environment = _ref.environment,\n ResizeObserverPolyfill = _ref.ResizeObserverPolyfill,\n overflowContainer = _ref.overflowContainer,\n triggerOption = _ref.triggerOption;\n // get the correct reference to the ResizeObserver class\n var ResizeObserver = getResizeObserver(environment, ResizeObserverPolyfill); // warn the user when no valid ResizeObserver class could be found\n\n useEffect(function () {\n process.env.NODE_ENV !== \"production\" ? warning(ResizeObserver, \"This browser does not support ResizeObserver out of the box. We recommend to add a polyfill in order to utilize the full capabilities of react-laag. See: https://github.com/everweij/react-laag#resize-observer\") : void 0;\n }, [ResizeObserver]); // keep reference of the optional arrow-component\n\n var arrowRef = useRef(null); // if user has provided the trigger-option we should ingore certain things elsewhere\n\n var hasTriggerOption = Boolean(triggerOption); // Keep track of mutable element related state\n // It is generally better to use React.useState, but unfortunately that causes to many re-renders\n\n var _useMutableStore = useMutableStore({\n scrollContainers: [],\n trigger: null,\n layer: null\n }),\n get = _useMutableStore[0],\n set = _useMutableStore[1]; // utility to keep track of the scroll and resize listeners and how to unsubscribe them\n\n\n var _useEventSubscription = useEventSubscriptions(),\n hasEventSubscriptions = _useEventSubscription.hasEventSubscriptions,\n addEventSubscription = _useEventSubscription.addEventSubscription,\n removeAllEventSubscriptions = _useEventSubscription.removeAllEventSubscriptions; // All scroll and resize changes eventually end up here, where the collection of bounds (subjectsBounds) is\n // constructed in order to notifiy the `onBoundsChange` callback\n\n\n var handleChange = useCallback(function handleChange() {\n var _get = get(),\n layer = _get.layer,\n trigger = _get.trigger,\n scrollContainers = _get.scrollContainers;\n\n var closestScrollContainer = scrollContainers[0];\n\n if (!layer) {\n throw new Error(createReferenceError(\"layer\"));\n } // ignore when user has provided the trigger-option\n\n\n if (!trigger && !hasTriggerOption) {\n throw new Error(createReferenceError(\"trigger\"));\n }\n\n var scrollOffsets = {\n top: 0,\n left: 0\n };\n\n if (closestScrollContainer) {\n var scrollLeft = closestScrollContainer.scrollLeft,\n scrollTop = closestScrollContainer.scrollTop;\n scrollOffsets = {\n top: scrollTop,\n left: scrollLeft\n };\n } else {\n var scrollX = environment.scrollX,\n scrollY = environment.scrollY;\n scrollOffsets = {\n top: scrollY,\n left: scrollX\n };\n }\n\n var borderOffsets = {\n left: 0,\n top: 0\n };\n\n if (closestScrollContainer) {\n var _environment$getCompu2 = environment.getComputedStyle(closestScrollContainer),\n borderLeftWidth = _environment$getCompu2.borderLeftWidth,\n borderTopWidth = _environment$getCompu2.borderTopWidth;\n\n borderOffsets = {\n left: getPixelValue(borderLeftWidth) || 0,\n top: getPixelValue(borderTopWidth) || 0\n };\n }\n\n onChange({\n layer: layer,\n trigger: trigger,\n scrollContainers: scrollContainers,\n arrow: arrowRef.current\n }, scrollOffsets, borderOffsets);\n }, [get, onChange, environment, arrowRef, hasTriggerOption]); // responsible for adding the scroll and resize listeners to the correct\n // html elements\n\n var addEventListeners = useCallback(function addEventListeners() {\n var _get2 = get(),\n trigger = _get2.trigger,\n layer = _get2.layer,\n scrollContainers = _get2.scrollContainers;\n\n if (!layer) {\n throw new Error(createReferenceError(\"layer\"));\n }\n\n if (!trigger && !hasTriggerOption) {\n // ignore when user has provided the trigger-option\n throw new Error(createReferenceError(\"trigger\"));\n }\n\n if (ResizeObserver) {\n var ignoredInitialCall = false;\n\n var observerCallback = function observerCallback() {\n if (!ignoredInitialCall) {\n ignoredInitialCall = true;\n return;\n }\n\n handleChange();\n };\n\n var observer = new ResizeObserver(observerCallback);\n\n for (var _i = 0, _arr = [trigger, layer, document.body]; _i < _arr.length; _i++) {\n var element = _arr[_i];\n if (element) observer.observe(element);\n }\n\n addEventSubscription(function () {\n for (var _i2 = 0, _arr2 = [trigger, layer, document.body]; _i2 < _arr2.length; _i2++) {\n var _element = _arr2[_i2];\n if (_element) observer.unobserve(_element);\n }\n\n observer.disconnect();\n });\n }\n\n var listenForScrollElements = [environment].concat(scrollContainers);\n\n var _loop = function _loop() {\n var element = _step.value;\n element.addEventListener(\"scroll\", handleChange);\n addEventSubscription(function () {\n return element.removeEventListener(\"scroll\", handleChange);\n });\n };\n\n for (var _iterator = _createForOfIteratorHelperLoose(listenForScrollElements), _step; !(_step = _iterator()).done;) {\n _loop();\n }\n }, [get, addEventSubscription, handleChange, environment, ResizeObserver, hasTriggerOption]); // when either the reference to the trigger or layer element changes\n // we should reset the event listeners and trigger a `onChange`\n\n var resetWhenReferenceChangedWhileTracking = useCallback(function (previous, next) {\n if (enabled && previous && previous !== next) {\n removeAllEventSubscriptions();\n addEventListeners();\n handleChange();\n }\n }, [removeAllEventSubscriptions, addEventListeners, handleChange, enabled]); // Logic when reference to layer changes\n\n var layerRef = useTrackRef(useCallback(function (layer) {\n var _get3 = get(),\n previousLayer = _get3.layer; // store new reference\n\n\n set(function (state) {\n return _extends({}, state, {\n layer: layer\n });\n }); // check if we should reset the event listeners\n\n resetWhenReferenceChangedWhileTracking(previousLayer, layer);\n }, [get, set, resetWhenReferenceChangedWhileTracking]));\n var getScrollContainers = useCallback(function handleScrollContainers(element) {\n var scrollContainers = findScrollContainers(element, environment);\n var closestScrollContainer = scrollContainers[0];\n\n if (closestScrollContainer) {\n // Check if we should warn the user about 'position: relative; stuff...'\n var position = environment.getComputedStyle(closestScrollContainer).position;\n var closestScrollContainerHasCorrectStyling = [\"relative\", \"absolute\", \"fixed\"].includes(position) || overflowContainer;\n\n if (!closestScrollContainerHasCorrectStyling) {\n closestScrollContainer.style.position = \"relative\";\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(closestScrollContainerHasCorrectStyling, \"react-laag: Set the 'position' style of the nearest scroll-container to 'relative', 'absolute' or 'fixed', or set the 'overflowContainer' prop to true. This is needed in order to position the layer properly. Currently the scroll-container is positioned: \\\"\" + position + \"\\\". For now, \\\"position: relative;\\\" is added for you, but this behavior might be removed in the future. Visit https://react-laag.com/docs/#position-relative for more info.\") : void 0;\n }\n\n return scrollContainers;\n }, [environment, overflowContainer]); // Logic when reference to trigger changes\n // Note: this will have no effect when user provided the trigger-option\n\n var triggerRef = useTrackRef(useCallback(function (trigger) {\n // collect list of scroll containers\n var scrollContainers = getScrollContainers(trigger);\n\n var _get4 = get(),\n previousTrigger = _get4.trigger; // store new references\n\n\n set(function (state) {\n return _extends({}, state, {\n trigger: trigger,\n scrollContainers: scrollContainers\n });\n }); // check if we should reset the event listeners\n\n resetWhenReferenceChangedWhileTracking(previousTrigger, trigger);\n }, [get, set, resetWhenReferenceChangedWhileTracking, getScrollContainers])); // when user has provided the trigger-option, it monitors the optional parent-element\n // in order to determine the scroll-containers\n\n var triggerOptionParent = triggerOption == null ? void 0 : triggerOption.getParent == null ? void 0 : triggerOption.getParent();\n useIsomorphicLayoutEffect(function () {\n if (!triggerOptionParent) {\n return;\n }\n\n set(function (state) {\n return _extends({}, state, {\n scrollContainers: getScrollContainers(triggerOptionParent)\n });\n });\n }, [triggerOptionParent, set, getScrollContainers]);\n useIsomorphicLayoutEffect(function () {\n if (enabled) {\n // add event listeners if necessary\n if (!hasEventSubscriptions()) {\n addEventListeners();\n }\n }\n\n return function () {\n if (hasEventSubscriptions()) {\n removeAllEventSubscriptions();\n }\n };\n }, [enabled, hasEventSubscriptions, addEventListeners, removeAllEventSubscriptions]); // run this effect after every render\n\n useIsomorphicLayoutEffect(function () {\n if (enabled) {\n // eventually call `handleChange` with latest elements-refs\n handleChange();\n }\n });\n return {\n triggerRef: triggerRef,\n layerRef: layerRef,\n arrowRef: arrowRef,\n closestScrollContainer: get().scrollContainers[0] || null\n };\n}\n\nvar GroupContext = /*#__PURE__*/createContext({}); // Provider that wraps arround the layer in order to provide other useLayers\n// down in the hiearchy (child layers) with means to communicate with the parent.\n// This provider receives a `registrations` Set which can be used to add and\n// delete registrations.\n\nfunction GroupProvider(_ref) {\n var children = _ref.children,\n registrations = _ref.registrations;\n // registration function that is used as 'context payload' for child layers\n // to call. It returns a function to unregister.\n var handleRegister = useCallback(function register(registration) {\n registrations.current.add(registration);\n return function () {\n return registrations.current.delete(registration);\n };\n }, [registrations]);\n return createElement(GroupContext.Provider, {\n value: handleRegister\n }, children);\n} // asks child layers if they would close given the documents click event\n// if there's one that signals not to close, return early (false)\n\nfunction getShouldCloseAccordingToChildren(registrations, event) {\n for (var _iterator = _createForOfIteratorHelperLoose(registrations), _step; !(_step = _iterator()).done;) {\n var shouldCloseWhenClickedOutside = _step.value.shouldCloseWhenClickedOutside;\n\n if (!shouldCloseWhenClickedOutside(event)) {\n return false;\n }\n }\n\n return true;\n}\n/**\r\n * Responsible for close behavior\r\n * When the `onOutsideClick` callback is provided by the user, it will listen for clicks\r\n * in the document, and tell whether the user clicked outside -> not on layer / trigger.\r\n * It keeps track of nested useLayers a.k.a child layers (`registrations` Set), through which\r\n * we can ask whether they `shouldCloseWhenClickedOutside`, or tell them to close.\r\n *\r\n * Behavior:\r\n * - `onOutsideClick` only works on the most outer parent, and not on children. The parent will ask\r\n * the child layers whether they would close, and will handle accordingly. The parent may\r\n * command the children to close indirectly with the help of `onParentClose`\r\n * - When the parent just was closed, it will make sure that any children will also close\r\n * with the help of `onParentClose`\r\n */\n\n\nfunction useGroup(_ref2) {\n var isOpen = _ref2.isOpen,\n onOutsideClick = _ref2.onOutsideClick,\n onParentClose = _ref2.onParentClose;\n // store references to the dom-elements\n // we need these to later determine wether the clicked outside or not\n var trigger = useRef(null);\n var layer = useRef(null); // a Set which keeps track of callbacks given by the child layers through context\n\n var registrations = useRef(new Set()); // if this instance is a child itself, we should use this function to register\n // some callbacks to the parent\n\n var possibleRegisterFn = useContext(GroupContext); // recursively checks whether to close or not. This mechanism has some similarities\n // with event bubbling.\n\n var shouldCloseWhenClickedOutside = useCallback(function shouldCloseWhenClickedOutside(event) {\n var target = event.target;\n var clickedOnTrigger = trigger.current && trigger.current.contains(target);\n var clickedOnLayer = layer.current && layer.current.contains(target);\n var shouldCloseAccordingToChildren = getShouldCloseAccordingToChildren(registrations.current, event); // when clicked on own layer, but the child would have closed ->\n // let child close\n\n if (clickedOnLayer && shouldCloseAccordingToChildren) {\n registrations.current.forEach(function (_ref3) {\n var closeChild = _ref3.closeChild;\n return closeChild();\n });\n }\n\n return !clickedOnTrigger && !clickedOnLayer && shouldCloseAccordingToChildren;\n }, [trigger, layer, registrations]); // registration stuff\n\n useEffect(function () {\n if (typeof possibleRegisterFn !== \"function\") {\n return;\n } // 'possibleRegisterFn' will return a function that will unregister\n // on cleanup\n\n\n return possibleRegisterFn({\n shouldCloseWhenClickedOutside: shouldCloseWhenClickedOutside,\n closeChild: function closeChild() {\n process.env.NODE_ENV !== \"production\" ? warning(onParentClose, \"react-laag: You are using useLayer() in a nested setting but forgot to set the 'onParentClose()' callback in the options. This could lead to unexpected behavior.\") : void 0;\n\n if (onParentClose) {\n onParentClose();\n }\n }\n });\n }, [possibleRegisterFn, shouldCloseWhenClickedOutside, onParentClose, registrations]); // document click handling\n\n useEffect(function () {\n var isChild = typeof possibleRegisterFn === \"function\";\n var shouldNotListen = !isOpen || !onOutsideClick || isChild;\n\n if (shouldNotListen) {\n return;\n }\n\n function handleClick(event) {\n if (shouldCloseWhenClickedOutside(event)) {\n onOutsideClick();\n }\n }\n\n document.addEventListener(\"click\", handleClick, true);\n return function () {\n return document.removeEventListener(\"click\", handleClick, true);\n };\n }, [isOpen, onOutsideClick, shouldCloseWhenClickedOutside, possibleRegisterFn]); // When this 'useLayer' gets closed -> tell child layers to close as well\n\n useEffect(function () {\n if (!isOpen) {\n registrations.current.forEach(function (_ref4) {\n var closeChild = _ref4.closeChild;\n return closeChild();\n });\n }\n }, [isOpen]);\n return {\n closeOnOutsideClickRefs: {\n trigger: trigger,\n layer: layer\n },\n registrations: registrations\n };\n}\n\nvar PLACEMENT_TYPES = [\"bottom-start\", \"bottom-end\", \"bottom-center\", \"top-start\", \"top-center\", \"top-end\", \"left-end\", \"left-center\", \"left-start\", \"right-end\", \"right-center\", \"right-start\", \"center\"];\n\nvar OPPOSITES = {\n top: \"bottom\",\n left: \"right\",\n bottom: \"top\",\n right: \"left\",\n center: \"center\"\n};\n\nvar SideBase = /*#__PURE__*/function () {\n function SideBase(prop, opposite, isHorizontal, sizeProp, oppositeSizeProp, cssProp, oppositeCssProp, isCenter, isPush // left | top\n ) {\n this.prop = void 0;\n this.opposite = void 0;\n this.isHorizontal = void 0;\n this.sizeProp = void 0;\n this.oppositeSizeProp = void 0;\n this.cssProp = void 0;\n this.oppositeCssProp = void 0;\n this.isCenter = void 0;\n this.isPush = void 0;\n this.prop = prop;\n this.opposite = opposite;\n this.isHorizontal = isHorizontal;\n this.sizeProp = sizeProp;\n this.oppositeSizeProp = oppositeSizeProp;\n this.cssProp = cssProp;\n this.oppositeCssProp = oppositeCssProp;\n this.isCenter = isCenter;\n this.isPush = isPush;\n }\n\n var _proto = SideBase.prototype;\n\n _proto.factor = function factor(value) {\n return value * (this.isPush ? 1 : -1);\n };\n\n _proto.isOppositeDirection = function isOppositeDirection(side) {\n return this.isHorizontal !== side.isHorizontal;\n };\n\n return SideBase;\n}();\n\nfunction createSide(prop, recursive) {\n if (recursive === void 0) {\n recursive = true;\n }\n\n var isHorizontal = [\"left\", \"right\"].includes(prop);\n return new SideBase(prop, recursive ? createSide(OPPOSITES[prop], false) : null, isHorizontal, isHorizontal ? \"width\" : \"height\", isHorizontal ? \"height\" : \"width\", isHorizontal ? \"left\" : \"top\", isHorizontal ? \"top\" : \"left\", prop === \"center\", ![\"right\", \"bottom\"].includes(prop));\n}\n\nvar BoundSide = {\n top: /*#__PURE__*/createSide(\"top\"),\n bottom: /*#__PURE__*/createSide(\"bottom\"),\n left: /*#__PURE__*/createSide(\"left\"),\n right: /*#__PURE__*/createSide(\"right\")\n};\nvar Side = /*#__PURE__*/_extends({}, BoundSide, {\n center: /*#__PURE__*/createSide(\"center\")\n});\n\nvar SIDES = [\"top\", \"left\", \"bottom\", \"right\"];\n/**\r\n * A class containing the positional properties which represent the distance\r\n * between two Bounds instances for each side\r\n */\n\nvar BoundsOffsets = /*#__PURE__*/function () {\n function BoundsOffsets(offsets) {\n this.top = void 0;\n this.left = void 0;\n this.right = void 0;\n this.bottom = void 0;\n return Object.assign(this, offsets);\n }\n /**\r\n * Takes multiple BoundsOffets instances and creates a new BoundsOffsets instance\r\n * by taking the smallest value for each side\r\n * @param boundsOffsets list of BoundsOffsets instances\r\n */\n\n\n BoundsOffsets.mergeSmallestSides = function mergeSmallestSides(boundsOffsets) {\n var first = boundsOffsets[0],\n rest = boundsOffsets.slice(1);\n\n if (!first) {\n throw new Error(\"Please provide at least 1 bounds objects in order to merge\");\n }\n\n var result = Object.fromEntries(SIDES.map(function (side) {\n return [side, first[side]];\n }));\n\n for (var _iterator = _createForOfIteratorHelperLoose(rest), _step; !(_step = _iterator()).done;) {\n var boundsOffset = _step.value;\n\n for (var _iterator2 = _createForOfIteratorHelperLoose(SIDES), _step2; !(_step2 = _iterator2()).done;) {\n var side = _step2.value;\n result[side] = Math.min(result[side], boundsOffset[side]);\n }\n }\n\n return new BoundsOffsets(result);\n }\n /**\r\n * Checks whether all sides sides are positive, meaning the corresponding Bounds instance\r\n * fits perfectly within a parent Bounds instance\r\n */\n ;\n\n _createClass(BoundsOffsets, [{\n key: \"allSidesArePositive\",\n get: function get() {\n var _this = this;\n\n return SIDES.every(function (side) {\n return _this[side] >= 0;\n });\n }\n /**\r\n * Returns a partial IBoundsOffsets with sides that are negative, meaning sides aren't entirely\r\n * visible in respect to a parent Bounds instance\r\n */\n\n }, {\n key: \"negativeSides\",\n get: function get() {\n var _this2 = this;\n\n return Object.fromEntries(SIDES.filter(function (side) {\n return _this2[side] < 0;\n }).map(function (side) {\n return [side, _this2[side]];\n }));\n }\n }]);\n\n return BoundsOffsets;\n}();\n\n/**\r\n * Utility function that returns sum of various computed styles\r\n * @param propertyValues list of computed styles (ie. '12px')\r\n */\n\nfunction sumOfPropertyValues() {\n for (var _len = arguments.length, propertyValues = new Array(_len), _key = 0; _key < _len; _key++) {\n propertyValues[_key] = arguments[_key];\n }\n\n return propertyValues.reduce(function (sum, propertyValue) {\n return sum + (propertyValue ? getPixelValue(propertyValue) : 0);\n }, 0);\n}\n\nfunction boundsToObject(_ref) {\n var top = _ref.top,\n left = _ref.left,\n right = _ref.right,\n bottom = _ref.bottom,\n width = _ref.width,\n height = _ref.height;\n return {\n top: top,\n left: left,\n right: right,\n bottom: bottom,\n width: width,\n height: height\n };\n}\nvar EMPTY = {\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n width: 0,\n height: 0\n};\n/**\r\n * A class containing the positional properties of the native DOM's ClientRect\r\n * (`element.getBoundingClientRect()`), together with some utility methods\r\n */\n\nvar Bounds = /*#__PURE__*/function () {\n /**\r\n * Creates a new Bounds class\r\n * @param bounds An object that adheres to the `IBounds` interface\r\n */\n Bounds.create = function create(bounds) {\n return new Bounds(bounds);\n }\n /**\r\n * Creates a new Bounds class from a DOM-element\r\n * @param element reference to the DOM-element\r\n * @param options optional options object\r\n */\n ;\n\n Bounds.fromElement = function fromElement(element, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$withTransfor = _options.withTransform,\n withTransform = _options$withTransfor === void 0 ? true : _options$withTransfor,\n _options$environment = _options.environment,\n environment = _options$environment === void 0 ? window : _options$environment,\n _options$withScrollba = _options.withScrollbars,\n withScrollbars = _options$withScrollba === void 0 ? true : _options$withScrollba;\n var plain = boundsToObject(element.getBoundingClientRect());\n var bounds = new Bounds(plain);\n\n if (!withTransform) {\n var _environment$getCompu = environment.getComputedStyle(element),\n width = _environment$getCompu.width,\n height = _environment$getCompu.height,\n boxSizing = _environment$getCompu.boxSizing,\n borderLeft = _environment$getCompu.borderLeft,\n borderRight = _environment$getCompu.borderRight,\n borderTop = _environment$getCompu.borderTop,\n borderBottom = _environment$getCompu.borderBottom,\n paddingLeft = _environment$getCompu.paddingLeft,\n paddingRight = _environment$getCompu.paddingRight,\n paddingTop = _environment$getCompu.paddingTop,\n paddingBottom = _environment$getCompu.paddingBottom;\n\n var boxWidth = boxSizing === \"border-box\" ? getPixelValue(width) : sumOfPropertyValues(width, borderLeft, borderRight, paddingLeft, paddingRight);\n var boxHeight = boxSizing === \"border-box\" ? getPixelValue(height) : sumOfPropertyValues(height, borderTop, borderBottom, paddingTop, paddingBottom);\n bounds = new Bounds(_extends({}, bounds, {\n width: boxWidth,\n height: boxHeight\n }));\n }\n\n if (!withScrollbars) {\n var scrollbarWidth = bounds.width - element.clientWidth;\n var scrollbarHeight = bounds.height - element.clientHeight;\n return bounds.substract({\n right: scrollbarWidth,\n bottom: scrollbarHeight\n });\n }\n\n return bounds;\n }\n /**\r\n * Creates an empty Bounds class\r\n */\n ;\n\n Bounds.empty = function empty() {\n return new Bounds();\n }\n /**\r\n * Creates a Bounds class from the window's dimensions\r\n * @param environment reference to the window-object (needed when working with iframes for instance). Defaults to `window`\r\n */\n ;\n\n Bounds.fromWindow = function fromWindow(environment) {\n var _ref2 = environment || {},\n _ref2$innerWidth = _ref2.innerWidth,\n width = _ref2$innerWidth === void 0 ? 0 : _ref2$innerWidth,\n _ref2$innerHeight = _ref2.innerHeight,\n height = _ref2$innerHeight === void 0 ? 0 : _ref2$innerHeight;\n\n return new Bounds({\n width: width,\n height: height,\n right: width,\n bottom: height\n });\n };\n\n function Bounds(bounds) {\n if (bounds === void 0) {\n bounds = {};\n }\n\n this.top = void 0;\n this.left = void 0;\n this.right = void 0;\n this.bottom = void 0;\n this.width = void 0;\n this.height = void 0;\n return Object.assign(this, EMPTY, bounds);\n }\n /**\r\n * Returns the square surface of the bounds in pixels\r\n */\n\n\n var _proto = Bounds.prototype;\n\n /**\r\n * Returns a plain object containing only positional properties\r\n */\n _proto.toObject = function toObject() {\n return boundsToObject(this);\n };\n\n _proto.merge = function merge(partialBoundsOrMergeFn) {\n var current = this.toObject();\n return new Bounds(_extends({}, current, typeof partialBoundsOrMergeFn === \"function\" ? partialBoundsOrMergeFn(current) : partialBoundsOrMergeFn));\n }\n /**\r\n * Return a new Bounds instance by subtracting each property of the provided IBounds object\r\n * @param bounds partial IBounds object to substract with\r\n */\n ;\n\n _proto.substract = function substract(bounds) {\n var result = this.toObject();\n var entries = Object.entries(bounds);\n\n for (var _i = 0, _entries = entries; _i < _entries.length; _i++) {\n var _entries$_i = _entries[_i],\n prop = _entries$_i[0],\n value = _entries$_i[1];\n\n if (prop in BoundSide) {\n // if `prop` is one of 'top', 'left', 'bottom' or 'right'...\n var boundSide = BoundSide[prop]; // decide if we should add or substract\n\n result[prop] += boundSide.factor(value); // make sure that the size-properties are also updated\n\n result[boundSide.isHorizontal ? \"width\" : \"height\"] -= value;\n } else {\n // prop is 'width' or 'height'\n result[prop] -= value || 0;\n }\n }\n\n return new Bounds(result);\n }\n /**\r\n * Returns a new BoundsOffsets instance by determining the distance for each bound-side:\r\n * (child -> parent)\r\n * @param child child bounds instance\r\n */\n ;\n\n _proto.offsetsTo = function offsetsTo(child) {\n return new BoundsOffsets({\n top: child.top - this.top,\n bottom: this.bottom - child.bottom,\n left: child.left - this.left,\n right: this.right - child.right\n });\n }\n /**\r\n * Return a new Bounds instance by mapping over each bound-side\r\n * @param mapper callback that takes a boundSide + value in pixels, returning a new value for that side\r\n */\n ;\n\n _proto.mapSides = function mapSides(mapper) {\n var result = this.toObject();\n var boundSides = Object.values(BoundSide);\n\n for (var _i2 = 0, _boundSides = boundSides; _i2 < _boundSides.length; _i2++) {\n var boundSide = _boundSides[_i2];\n result[boundSide.prop] = mapper(boundSide, result[boundSide.prop]);\n }\n\n return new Bounds(result);\n };\n\n _createClass(Bounds, [{\n key: \"surface\",\n get: function get() {\n return this.width * this.height;\n }\n }]);\n\n return Bounds;\n}();\n\n/**\r\n * Class for various calculations based on a placement-type. I.e 'top-left';\r\n */\n\nvar Placement = /*#__PURE__*/function () {\n function Placement(primary, secondary, subjectBounds, layerDimensions, offsets) {\n this.primary = void 0;\n this.secondary = void 0;\n this.offsets = void 0;\n this.subjectsBounds = void 0;\n this._cachedLayerBounds = null;\n this._cachedContainerOffsets = null;\n this.primary = primary;\n this.secondary = secondary;\n this.offsets = offsets;\n this.setSubjectsBounds(subjectBounds, layerDimensions);\n }\n /**\r\n * Set subjectsBounds that are specific for this placement\r\n * @param subjectBounds original SubjectBounds instance\r\n * @param layerDimensions possible config prodvided by the user\r\n */\n\n\n var _proto = Placement.prototype;\n\n _proto.setSubjectsBounds = function setSubjectsBounds(subjectBounds, layerDimensions) {\n // if user did not provide any layerDimensions config...\n if (!layerDimensions) {\n this.subjectsBounds = subjectBounds;\n return;\n } // get anticipated layer-dimensions provided by the user\n\n\n var dimensions = // if the user passed a callback, call it with the layerSide corresponding to\n // the placement\n typeof layerDimensions === \"function\" ? layerDimensions(this.primary.prop) : layerDimensions; // create new SubjectsBounds instance by merging our newly create layer-bounds\n\n this.subjectsBounds = subjectBounds.merge({\n layer: _extends({}, subjectBounds.layer, dimensions)\n });\n }\n /**\r\n * Returns the string respresentation of this placement (ie. 'top-start')\r\n */\n ;\n\n /**\r\n * Calculates the actual boundaries based on the placement\r\n * @param secondaryOffset optional offset on the secondary-side\r\n */\n _proto.getLayerBounds = function getLayerBounds(secondaryOffset) {\n if (secondaryOffset === void 0) {\n secondaryOffset = 0;\n }\n\n // return cached version if possible\n if (this._cachedLayerBounds && secondaryOffset === 0) {\n return this._cachedLayerBounds;\n }\n\n var primary = this.primary,\n secondary = this.secondary,\n subjectsBounds = this.subjectsBounds;\n var trigger = subjectsBounds.trigger,\n layer = subjectsBounds.layer,\n arrow = subjectsBounds.arrow;\n var isHorizontal = primary.isHorizontal,\n oppositeCssProp = primary.oppositeCssProp,\n oppositeSizeProp = primary.oppositeSizeProp,\n prop = primary.prop,\n opposite = primary.opposite;\n var result = Bounds.empty(); // let's take the placement 'top-start' as an example...\n // the offsets are the following:\n // trigger -> 8px\n // container -> 10px;\n // arrow -> 2px;\n // PRIMARY STUFF\n // bottom = trigger.top + 8;\n\n result[opposite.prop] = trigger[prop] - primary.factor(this.offsets.trigger); // top = bottom - layer.height\n\n result[prop] = result[opposite.prop] - primary.factor(layer[primary.sizeProp]); // SECONDARY STUFF\n // arrowOffsetBase = 4\n\n var arrowOffsetBase = this.offsets.arrow * 2; // limitMin = trigger.left - (layer.width - arrow.width) + 4\n\n var limitMin = trigger[oppositeCssProp] - (layer[oppositeSizeProp] - arrow[oppositeSizeProp]) + arrowOffsetBase; // limitMax = trigger.left + (trigger.width - arrow.width) - 4\n\n var limitMax = trigger[oppositeCssProp] + (trigger[oppositeSizeProp] - arrow[oppositeSizeProp]) - arrowOffsetBase;\n\n if (!secondary.isPush) {\n // if secondary is bottom or right -> add the width or height of the layer\n limitMin += layer[oppositeSizeProp];\n limitMax += layer[oppositeSizeProp];\n }\n\n if (secondary.isCenter) {\n var propertyA = (isHorizontal ? BoundSide.top : BoundSide.left).prop;\n var propertyB = (isHorizontal ? BoundSide.bottom : BoundSide.right).prop; // left = limit(\n // trigger.left + trigger.width / 2 - layer.width / 2 + secondaryOffset,\n // limitMin,\n // limitMax\n // )\n\n result[propertyA] = limit(trigger[propertyA] + trigger[oppositeSizeProp] / 2 - layer[oppositeSizeProp] / 2 + secondaryOffset, limitMin, limitMax); // right = left + layer.width\n\n result[propertyB] = result[propertyA] + layer[oppositeSizeProp];\n } else {\n var sec = secondary;\n var triggerValue = trigger[sec.prop]; // Under some conditions, when the layer is not able to align with the trigger\n // due to arrow-size and arrow-offsets, we need to compensate.\n // Otherwise, the secondary-offset will have no impact\n\n var arrowCompensation = triggerValue < limitMin ? limitMin - triggerValue : triggerValue > limitMax ? limitMax - triggerValue : 0; // left = limit(\n // trigger.left + secondaryOffset + arrowCompensation,\n // limitMin,\n // limitMax\n // )\n\n result[sec.prop] = limit(triggerValue + secondaryOffset + arrowCompensation, limitMin, limitMax); // right = left + layer.width\n\n result[sec.opposite.prop] = result[sec.prop] + secondary.factor(layer[oppositeSizeProp]);\n } // set the correct dimensions\n\n\n result.width = result.right - result.left;\n result.height = result.bottom - result.top; // create new bounds object\n\n var layerBounds = Bounds.create(result);\n\n if (secondaryOffset === 0) {\n this._cachedLayerBounds = layerBounds;\n }\n\n return layerBounds;\n }\n /**\r\n * Checks whether the trigger is bigger on the opposite side\r\n * ie. placement \"top-start\" -> has trigger a bigger width?\r\n */\n ;\n\n /**\r\n * returns getLayerBounds(), including container-offsets\r\n */\n _proto.getLayerCollisionBounds = function getLayerCollisionBounds() {\n var container = this.offsets.container;\n return this.getLayerBounds().mapSides(function (side, value) {\n return value -= side.factor(container);\n }).merge(function (_ref) {\n var width = _ref.width,\n height = _ref.height;\n return {\n width: width + container * 2,\n height: height + container * 2\n };\n });\n }\n /**\r\n * Returns a BoundsOffsets instance containing merged offsets to containers with the most\r\n * negative scenario\r\n */\n ;\n\n _proto.getContainerOffsets = function getContainerOffsets(layerBounds) {\n if (this._cachedContainerOffsets && !layerBounds) {\n return this._cachedContainerOffsets;\n }\n\n var subjectBounds = this.subjectsBounds.merge({\n layer: layerBounds || this.getLayerCollisionBounds()\n });\n var offsets = BoundsOffsets.mergeSmallestSides(subjectBounds.layerOffsetsToScrollContainers);\n\n if (!layerBounds) {\n this._cachedContainerOffsets = offsets;\n }\n\n return offsets;\n };\n\n _createClass(Placement, [{\n key: \"type\",\n get: function get() {\n return this.primary.prop + \"-\" + (this.secondary.prop === \"center\" ? \"center\" : [\"bottom\", \"right\"].includes(this.secondary.prop) ? \"end\" : \"start\");\n }\n }, {\n key: \"triggerIsBigger\",\n get: function get() {\n var isHorizontal = this.secondary.isHorizontal;\n var _this$subjectsBounds = this.subjectsBounds,\n triggerHasBiggerWidth = _this$subjectsBounds.triggerHasBiggerWidth,\n triggerHasBiggerHeight = _this$subjectsBounds.triggerHasBiggerHeight;\n return isHorizontal && triggerHasBiggerWidth || !isHorizontal && triggerHasBiggerHeight;\n }\n /**\r\n * Checks whether the placement fits within all it's container (including container-offset)\r\n */\n\n }, {\n key: \"fitsContainer\",\n get: function get() {\n return this.getContainerOffsets().allSidesArePositive;\n }\n /**\r\n * Returns the surface in square pixels of the visible part of the layer\r\n */\n\n }, {\n key: \"visibleSurface\",\n get: function get() {\n var layerBounds = this.getLayerBounds();\n var containerOffsets = this.getContainerOffsets(layerBounds);\n var substract = containerOffsets.negativeSides;\n\n for (var side in substract) {\n // @ts-ignore\n substract[side] = -substract[side]; // make positive for substraction;\n }\n\n return layerBounds.substract(substract).surface;\n }\n /**\r\n * Returns a BoundSide by looking at the most negative offset that is the opposite direction\r\n */\n\n }, {\n key: \"secondaryOffsetSide\",\n get: function get() {\n var _Object$entries$map$f,\n _Object$entries$map$f2,\n _this = this;\n\n // Given placement 'top-start' and containerOffsets { left: -20, top: -10, right: -10, bottom: 200 }...\n // the only negative offsets on the opposite side are { left: -20, right: -10 }\n // since we have to return only 1 side, we pick the most negative, which is 'left'\n var containerOffsets = this.getContainerOffsets();\n\n var _ref2 = (_Object$entries$map$f = (_Object$entries$map$f2 = Object.entries(containerOffsets.negativeSides).map(function (_ref3) {\n var side = _ref3[0],\n value = _ref3[1];\n return [BoundSide[side], value];\n }).filter(function (_ref4) {\n var side = _ref4[0];\n return _this.primary.isOppositeDirection(side);\n }).sort(function (_ref5, _ref6) {\n var a = _ref5[1];\n var b = _ref6[1];\n return b - a;\n })) == null ? void 0 : _Object$entries$map$f2[0]) != null ? _Object$entries$map$f : [],\n mostNegativeSide = _ref2[0];\n\n return mostNegativeSide || null;\n }\n }]);\n\n return Placement;\n}();\nvar PlacementCenter = /*#__PURE__*/function (_Placement) {\n _inheritsLoose(PlacementCenter, _Placement);\n\n function PlacementCenter() {\n return _Placement.apply(this, arguments) || this;\n }\n\n var _proto2 = PlacementCenter.prototype;\n\n _proto2.getLayerBounds = function getLayerBounds() {\n var _this$subjectsBounds2 = this.subjectsBounds,\n trigger = _this$subjectsBounds2.trigger,\n layer = _this$subjectsBounds2.layer;\n var result = Bounds.empty();\n result.top = trigger.top + trigger.height / 2 - layer.height / 2;\n result.bottom = result.top + layer.height;\n result.left = trigger.left + trigger.width / 2 - layer.width / 2;\n result.right = result.left + layer.width;\n result.width = result.right - result.left;\n result.height = result.bottom - result.top;\n return result;\n };\n\n return PlacementCenter;\n}(Placement);\n\nfunction getNegativeOffsetBetweenLayerCenterAndTrigger(subjectsBounds, placement, arrowOffset) {\n var layer = subjectsBounds.layer,\n trigger = subjectsBounds.trigger,\n arrow = subjectsBounds.arrow;\n var sizeProperty = placement.primary.oppositeSizeProp;\n\n var _ref = !placement.primary.isHorizontal ? [\"left\", \"right\"] : [\"top\", \"bottom\"],\n sideA = _ref[0],\n sideB = _ref[1];\n\n var offsetA = layer[sideA] + layer[sizeProperty] / 2 - trigger[sideA] - arrow[sizeProperty] / 2 - arrowOffset;\n var offsetB = layer[sideB] - layer[sizeProperty] / 2 - trigger[sideB] + arrow[sizeProperty] / 2 + arrowOffset;\n return (offsetA < 0 ? -offsetA : 0) + (offsetB > 0 ? -offsetB : 0);\n}\n\nvar STYLE_BASE = {\n position: \"absolute\",\n willChange: \"top, left\",\n left: null,\n right: null,\n top: null,\n bottom: null\n};\nfunction getArrowStyle(subjectsBounds, placement, arrowOffset) {\n var _extends2;\n\n if (placement.primary.isCenter) {\n return STYLE_BASE;\n }\n\n var layer = subjectsBounds.layer,\n trigger = subjectsBounds.trigger,\n arrow = subjectsBounds.arrow;\n var sizeProperty = placement.primary.oppositeSizeProp;\n var triggerIsBigger = trigger[sizeProperty] > layer[sizeProperty];\n var min = arrowOffset + arrow[sizeProperty] / 2;\n var max = layer[sizeProperty] - arrow[sizeProperty] / 2 - arrowOffset;\n var negativeOffset = getNegativeOffsetBetweenLayerCenterAndTrigger(subjectsBounds, placement, arrowOffset);\n var primarySide = placement.primary.prop;\n var secondarySide = placement.primary.oppositeCssProp;\n var secondaryValue = triggerIsBigger ? layer[sizeProperty] / 2 + negativeOffset : trigger[secondarySide] + trigger[sizeProperty] / 2 - layer[secondarySide];\n return _extends({}, STYLE_BASE, (_extends2 = {}, _extends2[primarySide] = \"100%\", _extends2[secondarySide] = limit(secondaryValue, min, max), _extends2));\n}\n\n/**\r\n * Class mostly concerned about calculating and finding the right placement\r\n */\n\nvar Placements = /*#__PURE__*/function () {\n function Placements(placements, config, subjectsBounds) {\n this.placements = void 0;\n this.config = void 0;\n this.subjectsBounds = void 0;\n this.placements = placements;\n this.config = config;\n this.subjectsBounds = subjectsBounds;\n }\n /**\r\n * Converts a placement-type into a primary-side and a secondary-side\r\n */\n\n\n Placements.getSidesFromPlacementType = function getSidesFromPlacementType(type) {\n var _type$split = type.split(\"-\"),\n a = _type$split[0],\n b = _type$split[1];\n\n var primary = BoundSide[a];\n var secondary;\n\n if (b === \"center\") {\n secondary = Side.center;\n } else if (primary.isHorizontal) {\n secondary = b === \"start\" ? Side.top : Side.bottom;\n } else {\n secondary = b === \"start\" ? Side.left : Side.right;\n }\n\n return [primary, secondary];\n }\n /**\r\n * Main static method to create a Placements instance\r\n * @param subjectsBounds instance of the SubjectsBounds class\r\n * @param config config provided by the user\r\n */\n ;\n\n Placements.create = function create(subjectsBounds, config) {\n // create offsets-object from user config\n var offsets = {\n arrow: config.arrowOffset,\n container: config.containerOffset,\n trigger: config.triggerOffset\n }; // function which creates a prioritized list of possible placments\n // by looking at user-config\n\n function getListOfPlacements(preferedPlacement) {\n if (preferedPlacement === void 0) {\n preferedPlacement = config.placement;\n }\n\n var _Placements$getSidesF = Placements.getSidesFromPlacementType(preferedPlacement),\n primary = _Placements$getSidesF[0],\n secondary = _Placements$getSidesF[1];\n\n var preferredSide = BoundSide[primary.isHorizontal ? config.preferY : config.preferX]; // some priorities may alter when the trigger is bigger\n\n var triggerIsBigger = !primary.isHorizontal && subjectsBounds.triggerHasBiggerWidth || primary.isHorizontal && subjectsBounds.triggerHasBiggerHeight; // utility function which constructs a placement by primary and secondary sides\n\n function placementFrom(primary, secondary) {\n return new Placement(primary, secondary, subjectsBounds, config.layerDimensions, offsets);\n } // creating the list\n\n\n var list = [];\n list[0] = placementFrom(primary, secondary);\n list[1] = placementFrom(primary, secondary.isCenter ? preferredSide : Side.center);\n list[2] = placementFrom(primary, Side[(secondary.opposite.isCenter ? preferredSide.opposite : secondary.opposite).prop]);\n list[3] = placementFrom(preferredSide, triggerIsBigger ? primary : Side[primary.opposite.prop]);\n list[4] = placementFrom(preferredSide, Side.center);\n list[5] = placementFrom(preferredSide, triggerIsBigger ? Side[primary.opposite.prop] : primary);\n list[6] = placementFrom(BoundSide[preferredSide.opposite.prop], triggerIsBigger ? primary : Side[primary.opposite.prop]);\n list[7] = placementFrom(BoundSide[preferredSide.opposite.prop], Side.center);\n list[8] = placementFrom(BoundSide[preferredSide.opposite.prop], triggerIsBigger ? Side[primary.opposite.prop] : primary);\n list[9] = placementFrom(BoundSide[primary.opposite.prop], secondary);\n list[10] = placementFrom(BoundSide[primary.opposite.prop], secondary.isCenter ? preferredSide : Side.center);\n list[11] = placementFrom(BoundSide[primary.opposite.prop], Side[(secondary.opposite.isCenter ? preferredSide.opposite : secondary.opposite).prop]); // only include placements that are part of 'possible-placements'\n\n list = list.filter(function (placement) {\n return placement.type === config.placement || config.possiblePlacements.includes(placement.type);\n });\n return list;\n } // treat placement 'center' a little bit different\n\n\n if (config.placement === \"center\") {\n return new Placements([new PlacementCenter(Side.center, Side.center, subjectsBounds, config.layerDimensions, offsets)].concat(getListOfPlacements(config.preferY + \"-\" + config.preferX)), config, subjectsBounds);\n }\n\n return new Placements(getListOfPlacements(), config, subjectsBounds);\n };\n\n var _proto = Placements.prototype;\n\n _proto.filterPlacementsBySide = function filterPlacementsBySide(side) {\n return this.placements.filter(function (placement) {\n return placement.primary === side;\n });\n };\n\n _proto.findFirstPlacementThatFits = function findFirstPlacementThatFits() {\n return this.placements.find(function (placement) {\n return placement.fitsContainer;\n });\n };\n\n _proto.placementWithBiggestVisibleSurface = function placementWithBiggestVisibleSurface() {\n var _this$placements$map$ = this.placements.map(function (placement) {\n return {\n placement: placement,\n surface: placement.visibleSurface\n };\n }) // sort -> biggest surface first\n . // sort -> biggest surface first\n sort(function (a, b) {\n return b.surface - a.surface;\n }),\n placementWithBiggestSurface = _this$placements$map$[0].placement;\n\n return placementWithBiggestSurface;\n };\n\n _proto.findSuitablePlacement = function findSuitablePlacement() {\n if (!this.config.auto) {\n return this.placements[0];\n }\n\n return this.findFirstPlacementThatFits() || this.placementWithBiggestVisibleSurface();\n }\n /**\r\n * secondary offset: the number of pixels between the edge of the\r\n * scroll-container and the current placement, on the side of the layer\r\n * that didn't fit.\r\n * Eventually this secondary offset gets added / subtracted from the\r\n * placement that does fit in order to move the layer closer to the\r\n * position of the placement that just would not fit.\r\n * This creates the effect that the layer is moving gradually from one\r\n * placement to the next as the users scrolls the page or scroll-container\r\n */\n ;\n\n _proto.getSecondaryOffset = function getSecondaryOffset(placement) {\n var _this$config = this.config,\n auto = _this$config.auto,\n snap = _this$config.snap; // return early when we're not interested...\n\n if (!auto || snap || placement instanceof PlacementCenter) {\n return 0;\n } // if current placement fits and is prefered placement...\n // return early\n\n\n var placementsOnSameSide = this.filterPlacementsBySide(placement.primary);\n var currentPlacementHasHighestPriority = placementsOnSameSide.indexOf(placement) === 0;\n\n if (currentPlacementHasHighestPriority && placement.fitsContainer) {\n return 0;\n }\n\n var firstPlacementThatDoesNotFit = placementsOnSameSide.find(function (placement) {\n return !placement.fitsContainer;\n });\n\n if (!firstPlacementThatDoesNotFit) {\n return 0;\n }\n\n var secondaryOffsetSide = firstPlacementThatDoesNotFit.secondaryOffsetSide;\n\n if (!secondaryOffsetSide) {\n return 0;\n }\n\n var containerOffsets = placement.getContainerOffsets(); // determine whether we should add or substract the secondary-offset\n\n var secondary = placement.secondary;\n var factor;\n\n if (placement.triggerIsBigger || firstPlacementThatDoesNotFit === placement) {\n factor = secondaryOffsetSide.isPush ? -1 : 1;\n } else {\n factor = secondary === Side.left || [Side.top, Side.center].includes(secondary) && secondaryOffsetSide.isPush ? -1 : 1;\n } // get number of pixels between placement that did not fit and current\n // placement\n\n\n var secondaryOffset = containerOffsets[secondaryOffsetSide.prop];\n return secondaryOffset * factor;\n };\n\n _proto.getStyles = function getStyles(layerBounds, placement, scrollOffsets, borderOffsets) {\n var layerStyleBase = {\n willChange: \"top, left, width, height\"\n };\n var arrow = getArrowStyle(this.subjectsBounds.merge({\n layer: layerBounds\n }), placement, this.config.arrowOffset);\n var layer = this.config.overflowContainer ? _extends({}, layerStyleBase, {\n position: \"fixed\",\n top: layerBounds.top,\n left: layerBounds.left\n }) : _extends({}, layerStyleBase, {\n position: \"absolute\",\n top: layerBounds.top - this.subjectsBounds.parent.top + scrollOffsets.top - borderOffsets.top,\n left: layerBounds.left - this.subjectsBounds.parent.left + scrollOffsets.left - borderOffsets.left\n });\n return {\n arrow: arrow,\n layer: layer\n };\n };\n\n _proto.getHasDisappeared = function getHasDisappeared(layerBounds) {\n var subject = this.config.overflowContainer ? this.subjectsBounds.trigger : layerBounds;\n var containerOffsets = BoundsOffsets.mergeSmallestSides(this.subjectsBounds.offsetsToScrollContainers(subject, true));\n var entries = Object.entries(containerOffsets.negativeSides);\n var hasFullyDisappeared = entries.some(function (_ref) {\n var prop = _ref[0],\n value = _ref[1];\n var side = BoundSide[prop];\n return value <= -subject[side.sizeProp];\n });\n\n if (hasFullyDisappeared) {\n return \"full\";\n }\n\n if (!containerOffsets.allSidesArePositive) {\n return \"partial\";\n }\n\n return null;\n };\n\n _proto.result = function result(scrollOffsets, borderOffsets) {\n var suitablePlacement = this.findSuitablePlacement();\n var secondaryOffset = this.getSecondaryOffset(suitablePlacement);\n var layerBounds = suitablePlacement.getLayerBounds(secondaryOffset);\n var styles = this.getStyles(layerBounds, suitablePlacement, scrollOffsets, borderOffsets);\n var layerSide = suitablePlacement.primary.prop;\n return {\n styles: styles,\n layerSide: layerSide,\n placement: suitablePlacement,\n layerBounds: layerBounds,\n hasDisappeared: this.getHasDisappeared(layerBounds)\n };\n };\n\n return Placements;\n}();\n\nvar SubjectsBounds = /*#__PURE__*/function () {\n function SubjectsBounds(subjectsBounds, overflowContainer) {\n this.overflowContainer = void 0;\n this.trigger = void 0;\n this.layer = void 0;\n this.arrow = void 0;\n this.parent = void 0;\n this.window = void 0;\n this.scrollContainers = void 0;\n this.overflowContainer = overflowContainer;\n Object.assign(this, subjectsBounds);\n }\n\n SubjectsBounds.create = function create(environment, layer, trigger, parent, arrow, scrollContainers, overflowContainer, getTriggerBounds) {\n var window = Bounds.fromWindow(environment);\n return new SubjectsBounds({\n layer: Bounds.fromElement(layer, {\n environment: environment,\n withTransform: false\n }),\n trigger: getTriggerBounds ? Bounds.create(boundsToObject(getTriggerBounds())) : Bounds.fromElement(trigger),\n arrow: arrow ? Bounds.fromElement(arrow) : Bounds.empty(),\n parent: parent ? Bounds.fromElement(parent) : window,\n window: window,\n scrollContainers: [window].concat(scrollContainers.map(function (container) {\n return Bounds.fromElement(container, {\n withScrollbars: false\n });\n }))\n }, overflowContainer);\n };\n\n var _proto = SubjectsBounds.prototype;\n\n _proto.merge = function merge(subjectsBounds) {\n return new SubjectsBounds(_extends({}, this, subjectsBounds), this.overflowContainer);\n };\n\n _proto.offsetsToScrollContainers = function offsetsToScrollContainers(subject, allContainers) {\n if (allContainers === void 0) {\n allContainers = false;\n }\n\n var scrollContainers = this.overflowContainer && !allContainers ? [this.window] : this.scrollContainers;\n return scrollContainers.map(function (scrollContainer) {\n return scrollContainer.offsetsTo(subject);\n });\n };\n\n _createClass(SubjectsBounds, [{\n key: \"layerOffsetsToScrollContainers\",\n get: function get() {\n return this.offsetsToScrollContainers(this.layer);\n }\n }, {\n key: \"triggerHasBiggerWidth\",\n get: function get() {\n return this.trigger.width > this.layer.width;\n }\n }, {\n key: \"triggerHasBiggerHeight\",\n get: function get() {\n return this.trigger.height > this.layer.height;\n }\n }]);\n\n return SubjectsBounds;\n}();\n\nvar GLOBAL_CONTAINER = null;\nfunction setGlobalContainer(container) {\n if (typeof document === \"undefined\") {\n return;\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(!(GLOBAL_CONTAINER instanceof HTMLElement), \"react-laag: You've called 'setGlobalContainer() previously'. It is recommended to only set the global container once, otherwise this may lead to unexpected behaviour.\") : void 0;\n\n if (typeof container === \"function\") {\n GLOBAL_CONTAINER = container();\n } else if (typeof container === \"string\") {\n GLOBAL_CONTAINER = document.getElementById(container);\n } else {\n GLOBAL_CONTAINER = container;\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(GLOBAL_CONTAINER instanceof HTMLElement, \"react-laag: You've called 'setGlobalContainer()', but it didn't result in a valid html-element\") : void 0;\n}\nvar DEFAULT_OPTIONS = {\n auto: false,\n arrowOffset: 0,\n containerOffset: 10,\n triggerOffset: 0,\n overflowContainer: true,\n placement: \"top-center\",\n possiblePlacements: PLACEMENT_TYPES,\n preferX: \"right\",\n preferY: \"bottom\",\n snap: false,\n container: undefined,\n trigger: undefined\n};\nfunction useLayer(_ref) {\n var _triggerBoundsRef$cur;\n\n var _ref$isOpen = _ref.isOpen,\n isOpen = _ref$isOpen === void 0 ? false : _ref$isOpen,\n _ref$overflowContaine = _ref.overflowContainer,\n overflowContainer = _ref$overflowContaine === void 0 ? DEFAULT_OPTIONS.overflowContainer : _ref$overflowContaine,\n _ref$environment = _ref.environment,\n environment = _ref$environment === void 0 ? typeof window !== \"undefined\" ? window : undefined : _ref$environment,\n ResizeObserverPolyfill = _ref.ResizeObserver,\n _ref$placement = _ref.placement,\n placement = _ref$placement === void 0 ? DEFAULT_OPTIONS.placement : _ref$placement,\n _ref$possiblePlacemen = _ref.possiblePlacements,\n possiblePlacements = _ref$possiblePlacemen === void 0 ? DEFAULT_OPTIONS.possiblePlacements : _ref$possiblePlacemen,\n _ref$preferX = _ref.preferX,\n preferX = _ref$preferX === void 0 ? DEFAULT_OPTIONS.preferX : _ref$preferX,\n _ref$preferY = _ref.preferY,\n preferY = _ref$preferY === void 0 ? DEFAULT_OPTIONS.preferY : _ref$preferY,\n _ref$auto = _ref.auto,\n auto = _ref$auto === void 0 ? DEFAULT_OPTIONS.auto : _ref$auto,\n _ref$snap = _ref.snap,\n snap = _ref$snap === void 0 ? DEFAULT_OPTIONS.snap : _ref$snap,\n _ref$triggerOffset = _ref.triggerOffset,\n triggerOffset = _ref$triggerOffset === void 0 ? DEFAULT_OPTIONS.triggerOffset : _ref$triggerOffset,\n _ref$containerOffset = _ref.containerOffset,\n containerOffset = _ref$containerOffset === void 0 ? DEFAULT_OPTIONS.containerOffset : _ref$containerOffset,\n _ref$arrowOffset = _ref.arrowOffset,\n arrowOffset = _ref$arrowOffset === void 0 ? DEFAULT_OPTIONS.arrowOffset : _ref$arrowOffset,\n _ref$container = _ref.container,\n container = _ref$container === void 0 ? DEFAULT_OPTIONS.container : _ref$container,\n _ref$layerDimensions = _ref.layerDimensions,\n layerDimensions = _ref$layerDimensions === void 0 ? null : _ref$layerDimensions,\n onDisappear = _ref.onDisappear,\n onOutsideClick = _ref.onOutsideClick,\n onParentClose = _ref.onParentClose,\n triggerOption = _ref.trigger;\n\n // initialize styles\n var _useState = useState(function () {\n return {\n layerSide: placement === \"center\" ? \"center\" : Placements.getSidesFromPlacementType(placement)[0].prop,\n styles: {\n layer: {\n position: overflowContainer ? \"fixed\" : \"absolute\",\n top: 0,\n left: 0\n },\n arrow: {\n position: \"absolute\",\n top: 0,\n left: 0\n }\n }\n };\n }),\n state = _useState[0],\n setState = _useState[1];\n\n var triggerBoundsRef = useRef(null); // tracks state in order for us to use read inside functions that require dependencies,\n // like `useCallback`, without triggering an update\n\n var lastState = useLastState(state, isOpen); // keeps track of scheduled animation-frames\n\n var raf = useRef(null);\n useEffect(function () {\n return function () {\n // when this hook unmounts, make sure to cancel any scheduled animation-frames\n if (raf.current) {\n cancelAnimationFrame(raf.current);\n raf.current = null;\n }\n };\n }, []); // Most important function regarding positioning\n // It receives boundaries collected by `useTrackElements`, does some calculations,\n // sets new styles, and handles when a layer has disappeared.\n\n var handlePositioning = useCallback(function handlePositioning(_ref2, scrollOffsets, borderOffsets) {\n var arrow = _ref2.arrow,\n layer = _ref2.layer,\n scrollContainers = _ref2.scrollContainers,\n trigger = _ref2.trigger;\n var parent = scrollContainers[0];\n var subjectsBounds = SubjectsBounds.create(environment, layer, trigger, parent, arrow, scrollContainers, overflowContainer, triggerOption == null ? void 0 : triggerOption.getBounds);\n var config = {\n placement: placement,\n possiblePlacements: possiblePlacements,\n auto: auto,\n layerDimensions: layerDimensions,\n arrowOffset: arrowOffset,\n containerOffset: containerOffset,\n triggerOffset: triggerOffset,\n preferX: preferX,\n preferY: preferY,\n snap: snap,\n overflowContainer: overflowContainer\n };\n\n var _Placements$create$re = Placements.create(subjectsBounds, config).result(scrollOffsets, borderOffsets),\n hasDisappeared = _Placements$create$re.hasDisappeared,\n layerSide = _Placements$create$re.layerSide,\n styles = _Placements$create$re.styles;\n\n var newState = {\n layerSide: layerSide,\n styles: styles\n };\n\n if (!lastState.current || didStateChange(lastState.current, newState)) {\n lastState.current = newState; // optimistically update lastState to prevent infinite loop\n\n /**\r\n * We're using requestAnimationFrame-features here to ensure that position updates will\r\n * happen max once per frame.\r\n * If during a frame there's already an update scheduled, the existing update will be cancelled\r\n * and the new update will take precedence.\r\n */\n\n if (raf.current) {\n cancelAnimationFrame(raf.current);\n }\n\n raf.current = requestAnimationFrame(function () {\n setState(newState);\n raf.current = null;\n });\n }\n\n if (isSet(hasDisappeared) && isSet(onDisappear)) {\n onDisappear(hasDisappeared);\n }\n }, [arrowOffset, auto, containerOffset, environment, layerDimensions, onDisappear, overflowContainer, placement, possiblePlacements, preferX, preferY, snap, triggerOffset, lastState, triggerOption]);\n\n var _useTrackElements = useTrackElements({\n ResizeObserverPolyfill: ResizeObserverPolyfill,\n environment: environment,\n enabled: isOpen,\n overflowContainer: overflowContainer,\n onChange: handlePositioning,\n triggerOption: triggerOption\n }),\n triggerRef = _useTrackElements.triggerRef,\n layerRef = _useTrackElements.layerRef,\n arrowRef = _useTrackElements.arrowRef,\n closestScrollContainer = _useTrackElements.closestScrollContainer;\n\n var _useGroup = useGroup({\n isOpen: isOpen,\n onOutsideClick: onOutsideClick,\n onParentClose: onParentClose\n }),\n closeOnOutsideClickRefs = _useGroup.closeOnOutsideClickRefs,\n registrations = _useGroup.registrations;\n\n var props = {\n triggerProps: Boolean(triggerOption) ? {} // when using the `trigger` option, make `triggerProps` useless\n : {\n ref: mergeRefs(triggerRef, closeOnOutsideClickRefs.trigger, triggerBoundsRef)\n },\n layerProps: {\n ref: mergeRefs(layerRef, closeOnOutsideClickRefs.layer),\n style: state.styles.layer\n },\n arrowProps: {\n ref: arrowRef,\n style: state.styles.arrow,\n layerSide: state.layerSide\n },\n layerSide: state.layerSide,\n triggerBounds: isOpen ? triggerOption ? triggerOption.getBounds() : (_triggerBoundsRef$cur = triggerBoundsRef.current) == null ? void 0 : _triggerBoundsRef$cur.getBoundingClientRect() : null,\n renderLayer: function renderLayer(children) {\n return typeof document !== \"undefined\" ? createPortal(createElement(GroupProvider, {\n registrations: registrations,\n children: children\n }), overflowContainer || !closestScrollContainer ? getContainerElement(container) : closestScrollContainer) : null;\n }\n };\n return props;\n}\n\nfunction didStateChange(previous, next) {\n if (previous.layerSide !== next.layerSide) {\n return true;\n }\n\n var styleProps = [\"position\", \"top\", \"left\", \"right\", \"bottom\"];\n\n for (var _i = 0, _styleProps = styleProps; _i < _styleProps.length; _i++) {\n var prop = _styleProps[_i];\n\n if (previous.styles.layer[prop] !== next.styles.layer[prop] || previous.styles.arrow[prop] !== next.styles.arrow[prop]) {\n return true;\n }\n }\n\n return false;\n}\n\nvar DEFAULT_CONTAINER_ID = \"layers\";\n\nfunction getContainerElement(container) {\n var element;\n\n if (typeof container === \"function\") {\n element = container();\n\n if (!element || !(element instanceof HTMLElement)) {\n throw new Error(\"react-laag: You've passed a function to the 'container' prop, but it returned no valid HTMLElement\");\n }\n } else if (container instanceof HTMLElement) {\n element = container;\n } else if (typeof container === \"string\") {\n element = document.getElementById(container);\n\n if (!element) {\n throw new Error(\"react-laag: You've passed element with id '\" + container + \"' to the 'container' prop, but it returned no valid HTMLElement\");\n }\n } else if (GLOBAL_CONTAINER instanceof HTMLElement) {\n return GLOBAL_CONTAINER;\n } else {\n element = document.getElementById(DEFAULT_CONTAINER_ID);\n\n if (!element) {\n element = document.createElement(\"div\");\n element.id = DEFAULT_CONTAINER_ID;\n element.style.cssText = \"\\n position: absolute;\\n top: 0px;\\n left: 0px;\\n right: 0px;\\n \";\n document.body.appendChild(element);\n }\n }\n\n return element;\n}\n\nvar _excluded = [\"size\", \"angle\", \"borderWidth\", \"borderColor\", \"roundness\", \"backgroundColor\", \"layerSide\", \"style\"];\nvar LEFT = \"left\";\nvar TOP = \"top\";\nvar BOTTOM = \"bottom\";\nvar RIGHT = \"right\";\n\nfunction getWidthBasedOnAngle(angle, size) {\n return Math.tan(angle * (Math.PI / 180)) * size;\n}\n\nfunction getViewBox(sizeA, sizeB, side, borderWidth) {\n var _map;\n\n var map = (_map = {}, _map[BOTTOM] = \"0 \" + -borderWidth + \" \" + sizeB + \" \" + sizeA, _map[TOP] = \"0 0 \" + sizeB + \" \" + (sizeA + borderWidth), _map[RIGHT] = -borderWidth + \" 0 \" + sizeA + \" \" + sizeB, _map[LEFT] = \"0 0 \" + (sizeA + borderWidth) + \" \" + sizeB, _map);\n return map[side.prop];\n}\n\nfunction getTrianglePath(sizeA, sizeB, side, roundness, angle) {\n var _BOTTOM$TOP$RIGHT$LEF, _BOTTOM$TOP$RIGHT$LEF2, _BOTTOM$TOP$RIGHT$LEF3;\n\n var relativeRoundness = roundness / 10 * sizeA * 2;\n var A = (_BOTTOM$TOP$RIGHT$LEF = {}, _BOTTOM$TOP$RIGHT$LEF[BOTTOM] = [0, sizeA], _BOTTOM$TOP$RIGHT$LEF[TOP] = [0, 0], _BOTTOM$TOP$RIGHT$LEF[RIGHT] = [sizeA, sizeB], _BOTTOM$TOP$RIGHT$LEF[LEFT] = [0, sizeB], _BOTTOM$TOP$RIGHT$LEF)[side.prop].join(\" \");\n var B = side.isHorizontal ? \"V 0\" : \"H \" + sizeB;\n var cPoint = sizeB / 2;\n var c1A = sizeB / 2 + getWidthBasedOnAngle(angle, sizeA / 8);\n var c1B = sizeA / 8;\n var C = (_BOTTOM$TOP$RIGHT$LEF2 = {}, _BOTTOM$TOP$RIGHT$LEF2[BOTTOM] = [\"C\", c1A, c1B, cPoint + relativeRoundness, 0, cPoint, 0], _BOTTOM$TOP$RIGHT$LEF2[TOP] = [\"C\", c1A, sizeA - c1B, cPoint + relativeRoundness, sizeA, cPoint, sizeA], _BOTTOM$TOP$RIGHT$LEF2[RIGHT] = [\"C\", c1B, sizeB - c1A, 0, cPoint - relativeRoundness, 0, cPoint], _BOTTOM$TOP$RIGHT$LEF2[LEFT] = [\"C\", sizeA - c1B, sizeB - c1A, sizeA, cPoint - relativeRoundness, sizeA, cPoint], _BOTTOM$TOP$RIGHT$LEF2)[side.prop].join(\" \");\n var d1A = sizeB / 2 - getWidthBasedOnAngle(angle, sizeA / 8);\n var d1B = sizeA / 8;\n var D = (_BOTTOM$TOP$RIGHT$LEF3 = {}, _BOTTOM$TOP$RIGHT$LEF3[BOTTOM] = [\"C\", cPoint - relativeRoundness, 0, d1A, d1B, A], _BOTTOM$TOP$RIGHT$LEF3[TOP] = [\"C\", cPoint - relativeRoundness, sizeA, d1A, sizeA - d1B, A], _BOTTOM$TOP$RIGHT$LEF3[RIGHT] = [\"C\", 0, cPoint + relativeRoundness, d1B, sizeB - d1A, A], _BOTTOM$TOP$RIGHT$LEF3[LEFT] = [\"C\", sizeA, cPoint + relativeRoundness, sizeA - d1B, sizeB - d1A, A], _BOTTOM$TOP$RIGHT$LEF3)[side.prop].join(\" \");\n return [\"M\", A, B, C, D].join(\" \");\n}\n\nfunction getBorderMaskPath(sizeA, sizeB, borderWidth, side, angle) {\n var borderOffset = getWidthBasedOnAngle(angle, borderWidth);\n\n var _ref = !side.isPush ? [sizeA, sizeA - borderWidth] : [0, borderWidth],\n A = _ref[0],\n B = _ref[1];\n\n if (side.isHorizontal) {\n return [\"M\", A, borderWidth, \"V\", sizeB - borderWidth, \"L\", B, sizeB - borderWidth - borderOffset, \"V\", borderOffset + borderWidth, \"Z\"].join(\" \");\n }\n\n return [\"M\", borderWidth, A, \"H\", sizeB - borderWidth, \"L\", sizeB - borderWidth - borderOffset, B, \"H\", borderOffset + borderWidth, \"Z\"].join(\" \");\n}\n\nvar Arrow = /*#__PURE__*/forwardRef(function Arrow(_ref2, ref) {\n var _ref2$size = _ref2.size,\n size = _ref2$size === void 0 ? 8 : _ref2$size,\n _ref2$angle = _ref2.angle,\n angle = _ref2$angle === void 0 ? 45 : _ref2$angle,\n _ref2$borderWidth = _ref2.borderWidth,\n borderWidth = _ref2$borderWidth === void 0 ? 0 : _ref2$borderWidth,\n _ref2$borderColor = _ref2.borderColor,\n borderColor = _ref2$borderColor === void 0 ? \"black\" : _ref2$borderColor,\n _ref2$roundness = _ref2.roundness,\n roundness = _ref2$roundness === void 0 ? 0 : _ref2$roundness,\n _ref2$backgroundColor = _ref2.backgroundColor,\n backgroundColor = _ref2$backgroundColor === void 0 ? \"white\" : _ref2$backgroundColor,\n _ref2$layerSide = _ref2.layerSide,\n layerSide = _ref2$layerSide === void 0 ? \"top\" : _ref2$layerSide,\n _ref2$style = _ref2.style,\n style = _ref2$style === void 0 ? {} : _ref2$style,\n rest = _objectWithoutPropertiesLoose(_ref2, _excluded);\n\n if (layerSide === \"center\") {\n return null;\n }\n\n var side = BoundSide[layerSide];\n var sizeA = size;\n var sizeB = getWidthBasedOnAngle(angle, size) * 2;\n var maxSize = Math.max(sizeA, sizeB);\n return createElement(\"svg\", _extends({\n ref: ref\n }, rest, {\n style: _extends({}, style, {\n transform: \"translate\" + (side.isHorizontal ? \"Y\" : \"X\") + \"(-50%)\"\n }),\n width: maxSize,\n height: maxSize,\n preserveAspectRatio: side.isPush ? \"xMinYMin\" : \"xMaxYMax\",\n viewBox: getViewBox(sizeA, sizeB, side, borderWidth)\n }), createElement(\"path\", {\n fill: backgroundColor,\n strokeWidth: borderWidth,\n stroke: borderColor,\n d: getTrianglePath(sizeA, sizeB, side, roundness, angle)\n }), createElement(\"path\", {\n fill: backgroundColor,\n d: getBorderMaskPath(sizeA, sizeB, borderWidth, side, angle)\n }));\n});\n\nvar Status;\n\n(function (Status) {\n Status[Status[\"ENTERING\"] = 0] = \"ENTERING\";\n Status[Status[\"LEAVING\"] = 1] = \"LEAVING\";\n Status[Status[\"IDLE\"] = 2] = \"IDLE\";\n})(Status || (Status = {}));\n\nfunction useHover(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$delayEnter = _ref.delayEnter,\n delayEnter = _ref$delayEnter === void 0 ? 0 : _ref$delayEnter,\n _ref$delayLeave = _ref.delayLeave,\n delayLeave = _ref$delayLeave === void 0 ? 0 : _ref$delayLeave,\n _ref$hideOnScroll = _ref.hideOnScroll,\n hideOnScroll = _ref$hideOnScroll === void 0 ? true : _ref$hideOnScroll;\n\n var _useState = useState(false),\n show = _useState[0],\n setShow = _useState[1];\n\n var timeout = useRef(null);\n var status = useRef(Status.IDLE);\n var hasTouchMoved = useRef(false);\n var removeTimeout = useCallback(function removeTimeout() {\n clearTimeout(timeout.current);\n timeout.current = null;\n status.current = Status.IDLE;\n }, []);\n\n function onMouseEnter() {\n // if was leaving, stop leaving\n if (status.current === Status.LEAVING && timeout.current) {\n removeTimeout();\n }\n\n if (show) {\n return;\n }\n\n status.current = Status.ENTERING;\n timeout.current = window.setTimeout(function () {\n setShow(true);\n timeout.current = null;\n status.current = Status.IDLE;\n }, delayEnter);\n }\n\n function onMouseLeave(_, immediate) {\n // if was waiting for entering,\n // clear timeout\n if (status.current === Status.ENTERING && timeout.current) {\n removeTimeout();\n }\n\n if (!show) {\n return;\n }\n\n if (immediate) {\n setShow(false);\n timeout.current = null;\n status.current = Status.IDLE;\n return;\n }\n\n status.current = Status.LEAVING;\n timeout.current = window.setTimeout(function () {\n setShow(false);\n timeout.current = null;\n status.current = Status.IDLE;\n }, delayLeave);\n } // make sure to clear timeout on unmount\n\n\n useEffect(function () {\n function onScroll() {\n if (show && hideOnScroll) {\n removeTimeout();\n setShow(false);\n }\n }\n\n function onTouchEnd() {\n if (show) {\n removeTimeout();\n setShow(false);\n }\n }\n\n window.addEventListener(\"scroll\", onScroll, true);\n window.addEventListener(\"touchend\", onTouchEnd, true);\n return function () {\n window.removeEventListener(\"scroll\", onScroll, true);\n window.removeEventListener(\"touchend\", onTouchEnd, true);\n\n if (timeout.current) {\n clearTimeout(timeout.current);\n }\n };\n }, [show, hideOnScroll, removeTimeout]);\n var hoverProps = {\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onTouchStart: function onTouchStart() {\n hasTouchMoved.current = false;\n },\n onTouchMove: function onTouchMove() {\n hasTouchMoved.current = true;\n },\n onTouchEnd: function onTouchEnd() {\n if (!hasTouchMoved.current && !show) {\n setShow(true);\n }\n\n hasTouchMoved.current = false;\n }\n };\n return [show, hoverProps, function () {\n return onMouseLeave(null, true);\n }];\n}\n\n/**\r\n * @deprecated\r\n * Note: this component is marked as deprecated and will be removed and a possible\r\n * future release\r\n */\n\nfunction Transition(_ref) {\n var isOpenExternal = _ref.isOpen,\n children = _ref.children;\n\n var _useState = useState({\n isOpenInternal: isOpenExternal,\n isLeaving: false\n }),\n state = _useState[0],\n setState = _useState[1];\n\n var didMount = useRef(false);\n useEffect(function () {\n if (isOpenExternal) {\n setState({\n isOpenInternal: true,\n isLeaving: false\n });\n } else if (didMount.current) {\n setState({\n isOpenInternal: false,\n isLeaving: true\n });\n }\n }, [isOpenExternal, setState]);\n useEffect(function () {\n process.env.NODE_ENV !== \"production\" ? warning(children, \"react-laag: You are using 'Transition'. Note that this component is marked as deprecated and will be removed at future releases\") : void 0;\n }, [children]);\n useEffect(function () {\n didMount.current = true;\n }, []);\n\n if (!isOpenExternal && !state.isOpenInternal && !state.isLeaving) {\n return null;\n }\n\n return children(state.isOpenInternal, function () {\n if (!state.isOpenInternal) {\n setState(function (s) {\n return _extends({}, s, {\n isLeaving: false\n });\n });\n }\n }, state.isLeaving);\n}\n\nexport { Arrow, DEFAULT_OPTIONS, PLACEMENT_TYPES, Transition, mergeRefs, setGlobalContainer, useHover, useLayer, useMousePositionAsTrigger };\n//# sourceMappingURL=react-laag.esm.js.map\n","import React, { useState, useEffect } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { useLayer } from \"react-laag\";\nimport useFocusTrap from \"@charlietango/use-focus-trap\";\n\n/**\n * Generic Popover component. Renders a floating element that can contain any content,\n * positioned relatively to its triggering element.\n *\n * This Popover only appears on \"click\" (focus + activate or mouse click) interactions.\n * The Escape key and clicking outside of the Popover will dismiss it.\n * For a hover-based informative popover, use `Tooltip`.\n *\n * The popover will position itself based on the `side` prop, but will\n * automatically reposition to avoid collisions with viewport edges.\n */\nconst Popover = ({\n side = \"bottom\",\n content,\n children,\n wrapperDisplay = \"inline-flex\",\n offset = 2,\n disableAutoPlacement = false,\n matchTriggerWidth = false,\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n const focusTrapRef = useFocusTrap(isOpen);\n\n const closePopover = () => {\n setIsOpen(false);\n };\n\n const togglePopover = () => {\n setIsOpen(!isOpen);\n };\n\n const handleKeyDown = ({ key }) => {\n switch (key) {\n case \"Escape\":\n setIsOpen(false);\n break;\n case \"Enter\":\n setIsOpen(true);\n break;\n }\n };\n\n const { renderLayer, triggerProps, triggerBounds, layerProps } = useLayer({\n isOpen,\n onOutsideClick: closePopover,\n onDisappear: closePopover,\n auto: !disableAutoPlacement,\n placement: `${side}-center`,\n preferX: \"left\",\n preferY: \"bottom\",\n container: document.body,\n triggerOffset: offset,\n });\n\n useEffect(() => {\n window.addEventListener(\"keydown\", handleKeyDown);\n return () => {\n window.removeEventListener(\"keydown\", handleKeyDown);\n };\n }, [handleKeyDown]);\n\n let layerStyle = layerProps.style;\n if (triggerBounds && matchTriggerWidth) {\n layerStyle = {\n width: triggerBounds.width,\n ...layerProps.style,\n };\n }\n\n return (\n <>\n <div\n {...triggerProps}\n style={{ display: wrapperDisplay }}\n onClick={togglePopover}\n onKeyDown={handleKeyDown}\n role=\"button\"\n tabIndex=\"0\"\n data-testid=\"nds-popover-trigger\"\n aria-haspopup=\"true\"\n aria-expanded={isOpen.toString()}\n >\n {children}\n </div>\n {renderLayer(\n <>\n {isOpen && (\n <div\n {...layerProps}\n className=\"nds-typography nds-popover rounded--all bgColor--white\"\n style={layerStyle}\n >\n <div ref={focusTrapRef} tabIndex={-1}>\n {content}\n </div>\n </div>\n )}\n </>\n )}\n </>\n );\n};\n\nPopover.propTypes = {\n /** The root node of JSX passed into Tooltip as children will act as the tooltip trigger */\n children: PropTypes.node.isRequired,\n /** Content of popover */\n content: PropTypes.node.isRequired,\n /** Sets prefferred side of the trigger the tooltip should appear */\n side: PropTypes.oneOf([\"top\", \"right\", \"bottom\", \"left\"]),\n /** CSS `display` value for the element that wraps the Tooltip children */\n wrapperDisplay: PropTypes.oneOf([\n \"inline-flex\",\n \"inline-block\",\n \"inline\",\n \"block\",\n \"flex\",\n ]),\n /** Distance of Popover from trigger element in number of pixels */\n offset: PropTypes.number,\n /** When `true`, the Popover container will match the width of its triggering element */\n matchTriggerWidth: PropTypes.bool,\n /**\n * By default, the Popover will automatically reposition itself to avoid viewport edges.\n * Setting this prop to `true` will disable this behavior so that the Popover will\n * always be placed on the given `side` prop.\n */\n disableAutoPlacement: PropTypes.bool,\n};\n\nexport default Popover;\n","import React, { useState, useEffect } from \"react\";\nimport PropTypes from \"prop-types\";\nimport cc from \"classcat\";\n\n/**\nThe Narmi RadioButtons component expects an \"options\" Prop, which is an object where the keys are the radiobutton\nlabels and the values are the radiobutton values. An \"initialvalue\" Prop can be passed to set a default checked\nradiobutton.\n\n```\n options={{ \"First Label\": \"firstValue\", \"Second Label\": \"secondValue\" }}\n```\n*/\nconst RadioButtons = ({\n options,\n name,\n initialValue,\n value,\n kind = \"normal\",\n onChange = () => {},\n ...containerProps\n}) => {\n const isControlled = value !== undefined;\n const [checkedValue, setCheckedValue] = useState(\n isControlled ? value : initialValue\n );\n const [focusedValue, setFocusedValue] = useState(null);\n\n useEffect(() => {\n if (isControlled) {\n setCheckedValue(value);\n }\n }, [value]);\n\n const handleChange = (e) => {\n if (!isControlled) {\n setCheckedValue(e.target.value);\n }\n onChange(e);\n };\n\n const handleFocus = ({ target }) => {\n setFocusedValue(target.value);\n };\n\n const handleBlur = () => {\n setFocusedValue(null);\n };\n\n return (\n <div\n className={`nds-radiobuttons nds-radiobuttons--${kind}`}\n onChange={handleChange}\n {...containerProps}\n >\n {Object.entries(options).map(([label, inputValue]) => (\n <label\n className={cc([\n \"nds-radiobuttons-option\",\n {\n \"nds-radiobuttons-option--checked\": checkedValue == inputValue,\n \"nds-radiobuttons-option--focused\": focusedValue == inputValue,\n \"padding--all rounded--all border--all\": kind === \"card\",\n },\n ])}\n key={inputValue}\n >\n {label}\n <input\n type=\"radio\"\n checked={checkedValue === inputValue}\n onChange={handleChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n value={inputValue}\n name={name}\n />\n <div\n role=\"img\"\n className={cc([\n \"nds-radio\",\n { \"narmi-icon-check\": kind === \"card\" },\n ])}\n />\n </label>\n ))}\n </div>\n );\n};\n\nRadioButtons.propTypes = {\n /** Map of label strings to input values */\n options: PropTypes.object,\n /** name of radiogroup */\n name: PropTypes.string,\n /** initially selected option by input value (uncontrolled) */\n initialValue: PropTypes.any,\n /**\n * selected option by input value (fully controlled)\n * When passing a `value` prop, you must use the `onChange`\n * hanlder to update the `value`\n */\n value: PropTypes.string,\n /** change callback invoked with input value */\n onChange: PropTypes.func,\n /**\n * `normal` - display input and label normally\n *\n * `card` - display input and label as a toggleable card\n */\n kind: PropTypes.oneOf([\"normal\", \"card\"]),\n};\n\nexport default RadioButtons;\n","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","function t(t){return\"object\"==typeof t&&null!=t&&1===t.nodeType}function e(t,e){return(!e||\"hidden\"!==t)&&\"visible\"!==t&&\"clip\"!==t}function n(t,n){if(t.clientHeight<t.scrollHeight||t.clientWidth<t.scrollWidth){var r=getComputedStyle(t,null);return e(r.overflowY,n)||e(r.overflowX,n)||function(t){var e=function(t){if(!t.ownerDocument||!t.ownerDocument.defaultView)return null;try{return t.ownerDocument.defaultView.frameElement}catch(t){return null}}(t);return!!e&&(e.clientHeight<t.scrollHeight||e.clientWidth<t.scrollWidth)}(t)}return!1}function r(t,e,n,r,i,o,l,d){return o<t&&l>e||o>t&&l<e?0:o<=t&&d<=n||l>=e&&d>=n?o-t-r:l>e&&d<n||o<t&&d>n?l-e+i:0}export default function(e,i){var o=window,l=i.scrollMode,d=i.block,u=i.inline,h=i.boundary,a=i.skipOverflowHiddenElements,c=\"function\"==typeof h?h:function(t){return t!==h};if(!t(e))throw new TypeError(\"Invalid target\");for(var f=document.scrollingElement||document.documentElement,s=[],p=e;t(p)&&c(p);){if((p=p.parentElement)===f){s.push(p);break}null!=p&&p===document.body&&n(p)&&!n(document.documentElement)||null!=p&&n(p,a)&&s.push(p)}for(var m=o.visualViewport?o.visualViewport.width:innerWidth,g=o.visualViewport?o.visualViewport.height:innerHeight,w=window.scrollX||pageXOffset,v=window.scrollY||pageYOffset,W=e.getBoundingClientRect(),b=W.height,H=W.width,y=W.top,E=W.right,M=W.bottom,V=W.left,x=\"start\"===d||\"nearest\"===d?y:\"end\"===d?M:y+b/2,I=\"center\"===u?V+H/2:\"end\"===u?E:V,C=[],T=0;T<s.length;T++){var k=s[T],B=k.getBoundingClientRect(),D=B.height,O=B.width,R=B.top,X=B.right,Y=B.bottom,L=B.left;if(\"if-needed\"===l&&y>=0&&V>=0&&M<=g&&E<=m&&y>=R&&M<=Y&&V>=L&&E<=X)return C;var S=getComputedStyle(k),j=parseInt(S.borderLeftWidth,10),q=parseInt(S.borderTopWidth,10),z=parseInt(S.borderRightWidth,10),A=parseInt(S.borderBottomWidth,10),F=0,G=0,J=\"offsetWidth\"in k?k.offsetWidth-k.clientWidth-j-z:0,K=\"offsetHeight\"in k?k.offsetHeight-k.clientHeight-q-A:0;if(f===k)F=\"start\"===d?x:\"end\"===d?x-g:\"nearest\"===d?r(v,v+g,g,q,A,v+x,v+x+b,b):x-g/2,G=\"start\"===u?I:\"center\"===u?I-m/2:\"end\"===u?I-m:r(w,w+m,m,j,z,w+I,w+I+H,H),F=Math.max(0,F+v),G=Math.max(0,G+w);else{F=\"start\"===d?x-R-q:\"end\"===d?x-Y+A+K:\"nearest\"===d?r(R,Y,D,q,A+K,x,x+b,b):x-(R+D/2)+K/2,G=\"start\"===u?I-L-j:\"center\"===u?I-(L+O/2)+J/2:\"end\"===u?I-X+z+J:r(L,X,O,j,z+J,I,I+H,H);var N=k.scrollLeft,P=k.scrollTop;x+=P-(F=Math.max(0,Math.min(P+F,k.scrollHeight-D+K))),I+=N-(G=Math.max(0,Math.min(N+G,k.scrollWidth-O+J)))}C.push({el:k,top:F,left:G})}return C}\n//# sourceMappingURL=index.module.js.map\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport PropTypes from 'prop-types';\nimport { cloneElement, Component, useRef, useEffect, useCallback, useLayoutEffect, useReducer, useMemo } from 'react';\nimport { isForwardRef } from 'react-is';\nimport computeScrollIntoView from 'compute-scroll-into-view';\nimport { __assign } from 'tslib';\n\nvar idCounter = 0;\n/**\n * Accepts a parameter and returns it if it's a function\n * or a noop function if it's not. This allows us to\n * accept a callback, but not worry about it if it's not\n * passed.\n * @param {Function} cb the callback\n * @return {Function} a function\n */\n\nfunction cbToCb(cb) {\n return typeof cb === 'function' ? cb : noop;\n}\n\nfunction noop() {}\n/**\n * Scroll node into view if necessary\n * @param {HTMLElement} node the element that should scroll into view\n * @param {HTMLElement} menuNode the menu element of the component\n */\n\n\nfunction scrollIntoView(node, menuNode) {\n if (!node) {\n return;\n }\n\n var actions = computeScrollIntoView(node, {\n boundary: menuNode,\n block: 'nearest',\n scrollMode: 'if-needed'\n });\n actions.forEach(function (_ref) {\n var el = _ref.el,\n top = _ref.top,\n left = _ref.left;\n el.scrollTop = top;\n el.scrollLeft = left;\n });\n}\n/**\n * @param {HTMLElement} parent the parent node\n * @param {HTMLElement} child the child node\n * @param {Window} environment The window context where downshift renders.\n * @return {Boolean} whether the parent is the child or the child is in the parent\n */\n\n\nfunction isOrContainsNode(parent, child, environment) {\n var result = parent === child || child instanceof environment.Node && parent.contains && parent.contains(child);\n return result;\n}\n/**\n * Simple debounce implementation. Will call the given\n * function once after the time given has passed since\n * it was last called.\n * @param {Function} fn the function to call after the time\n * @param {Number} time the time to wait\n * @return {Function} the debounced function\n */\n\n\nfunction debounce(fn, time) {\n var timeoutId;\n\n function cancel() {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n }\n\n function wrapper() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n cancel();\n timeoutId = setTimeout(function () {\n timeoutId = null;\n fn.apply(void 0, args);\n }, time);\n }\n\n wrapper.cancel = cancel;\n return wrapper;\n}\n/**\n * This is intended to be used to compose event handlers.\n * They are executed in order until one of them sets\n * `event.preventDownshiftDefault = true`.\n * @param {...Function} fns the event handler functions\n * @return {Function} the event handler to add to an element\n */\n\n\nfunction callAllEventHandlers() {\n for (var _len2 = arguments.length, fns = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n fns[_key2] = arguments[_key2];\n }\n\n return function (event) {\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n\n return fns.some(function (fn) {\n if (fn) {\n fn.apply(void 0, [event].concat(args));\n }\n\n return event.preventDownshiftDefault || event.hasOwnProperty('nativeEvent') && event.nativeEvent.preventDownshiftDefault;\n });\n };\n}\n\nfunction handleRefs() {\n for (var _len4 = arguments.length, refs = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n refs[_key4] = arguments[_key4];\n }\n\n return function (node) {\n refs.forEach(function (ref) {\n if (typeof ref === 'function') {\n ref(node);\n } else if (ref) {\n ref.current = node;\n }\n });\n };\n}\n/**\n * This generates a unique ID for an instance of Downshift\n * @return {String} the unique ID\n */\n\n\nfunction generateId() {\n return String(idCounter++);\n}\n/**\n * Resets idCounter to 0. Used for SSR.\n */\n\n\nfunction resetIdCounter() {\n idCounter = 0;\n}\n/**\n * Default implementation for status message. Only added when menu is open.\n * Will specify if there are results in the list, and if so, how many,\n * and what keys are relevant.\n *\n * @param {Object} param the downshift state and other relevant properties\n * @return {String} the a11y status message\n */\n\n\nfunction getA11yStatusMessage$1(_ref2) {\n var isOpen = _ref2.isOpen,\n resultCount = _ref2.resultCount,\n previousResultCount = _ref2.previousResultCount;\n\n if (!isOpen) {\n return '';\n }\n\n if (!resultCount) {\n return 'No results are available.';\n }\n\n if (resultCount !== previousResultCount) {\n return resultCount + \" result\" + (resultCount === 1 ? ' is' : 's are') + \" available, use up and down arrow keys to navigate. Press Enter key to select.\";\n }\n\n return '';\n}\n/**\n * Takes an argument and if it's an array, returns the first item in the array\n * otherwise returns the argument\n * @param {*} arg the maybe-array\n * @param {*} defaultValue the value if arg is falsey not defined\n * @return {*} the arg or it's first item\n */\n\n\nfunction unwrapArray(arg, defaultValue) {\n arg = Array.isArray(arg) ?\n /* istanbul ignore next (preact) */\n arg[0] : arg;\n\n if (!arg && defaultValue) {\n return defaultValue;\n } else {\n return arg;\n }\n}\n/**\n * @param {Object} element (P)react element\n * @return {Boolean} whether it's a DOM element\n */\n\n\nfunction isDOMElement(element) {\n\n\n return typeof element.type === 'string';\n}\n/**\n * @param {Object} element (P)react element\n * @return {Object} the props\n */\n\n\nfunction getElementProps(element) {\n\n return element.props;\n}\n/**\n * Throws a helpful error message for required properties. Useful\n * to be used as a default in destructuring or object params.\n * @param {String} fnName the function name\n * @param {String} propName the prop name\n */\n\n\nfunction requiredProp(fnName, propName) {\n // eslint-disable-next-line no-console\n console.error(\"The property \\\"\" + propName + \"\\\" is required in \\\"\" + fnName + \"\\\"\");\n}\n\nvar stateKeys = ['highlightedIndex', 'inputValue', 'isOpen', 'selectedItem', 'type'];\n/**\n * @param {Object} state the state object\n * @return {Object} state that is relevant to downshift\n */\n\nfunction pickState(state) {\n if (state === void 0) {\n state = {};\n }\n\n var result = {};\n stateKeys.forEach(function (k) {\n if (state.hasOwnProperty(k)) {\n result[k] = state[k];\n }\n });\n return result;\n}\n/**\n * This will perform a shallow merge of the given state object\n * with the state coming from props\n * (for the controlled component scenario)\n * This is used in state updater functions so they're referencing\n * the right state regardless of where it comes from.\n *\n * @param {Object} state The state of the component/hook.\n * @param {Object} props The props that may contain controlled values.\n * @returns {Object} The merged controlled state.\n */\n\n\nfunction getState(state, props) {\n return Object.keys(state).reduce(function (prevState, key) {\n prevState[key] = isControlledProp(props, key) ? props[key] : state[key];\n return prevState;\n }, {});\n}\n/**\n * This determines whether a prop is a \"controlled prop\" meaning it is\n * state which is controlled by the outside of this component rather\n * than within this component.\n *\n * @param {Object} props The props that may contain controlled values.\n * @param {String} key the key to check\n * @return {Boolean} whether it is a controlled controlled prop\n */\n\n\nfunction isControlledProp(props, key) {\n return props[key] !== undefined;\n}\n/**\n * Normalizes the 'key' property of a KeyboardEvent in IE/Edge\n * @param {Object} event a keyboardEvent object\n * @return {String} keyboard key\n */\n\n\nfunction normalizeArrowKey(event) {\n var key = event.key,\n keyCode = event.keyCode;\n /* istanbul ignore next (ie) */\n\n if (keyCode >= 37 && keyCode <= 40 && key.indexOf('Arrow') !== 0) {\n return \"Arrow\" + key;\n }\n\n return key;\n}\n/**\n * Simple check if the value passed is object literal\n * @param {*} obj any things\n * @return {Boolean} whether it's object literal\n */\n\n\nfunction isPlainObject(obj) {\n return Object.prototype.toString.call(obj) === '[object Object]';\n}\n/**\n * Returns the new index in the list, in a circular way. If next value is out of bonds from the total,\n * it will wrap to either 0 or itemCount - 1.\n *\n * @param {number} moveAmount Number of positions to move. Negative to move backwards, positive forwards.\n * @param {number} baseIndex The initial position to move from.\n * @param {number} itemCount The total number of items.\n * @param {Function} getItemNodeFromIndex Used to check if item is disabled.\n * @param {boolean} circular Specify if navigation is circular. Default is true.\n * @returns {number} The new index after the move.\n */\n\n\nfunction getNextWrappingIndex(moveAmount, baseIndex, itemCount, getItemNodeFromIndex, circular) {\n if (circular === void 0) {\n circular = true;\n }\n\n if (itemCount === 0) {\n return -1;\n }\n\n var itemsLastIndex = itemCount - 1;\n\n if (typeof baseIndex !== 'number' || baseIndex < 0 || baseIndex >= itemCount) {\n baseIndex = moveAmount > 0 ? -1 : itemsLastIndex + 1;\n }\n\n var newIndex = baseIndex + moveAmount;\n\n if (newIndex < 0) {\n newIndex = circular ? itemsLastIndex : 0;\n } else if (newIndex > itemsLastIndex) {\n newIndex = circular ? 0 : itemsLastIndex;\n }\n\n var nonDisabledNewIndex = getNextNonDisabledIndex(moveAmount, newIndex, itemCount, getItemNodeFromIndex, circular);\n\n if (nonDisabledNewIndex === -1) {\n return baseIndex >= itemCount ? -1 : baseIndex;\n }\n\n return nonDisabledNewIndex;\n}\n/**\n * Returns the next index in the list of an item that is not disabled.\n *\n * @param {number} moveAmount Number of positions to move. Negative to move backwards, positive forwards.\n * @param {number} baseIndex The initial position to move from.\n * @param {number} itemCount The total number of items.\n * @param {Function} getItemNodeFromIndex Used to check if item is disabled.\n * @param {boolean} circular Specify if navigation is circular. Default is true.\n * @returns {number} The new index. Returns baseIndex if item is not disabled. Returns next non-disabled item otherwise. If no non-disabled found it will return -1.\n */\n\n\nfunction getNextNonDisabledIndex(moveAmount, baseIndex, itemCount, getItemNodeFromIndex, circular) {\n var currentElementNode = getItemNodeFromIndex(baseIndex);\n\n if (!currentElementNode || !currentElementNode.hasAttribute('disabled')) {\n return baseIndex;\n }\n\n if (moveAmount > 0) {\n for (var index = baseIndex + 1; index < itemCount; index++) {\n if (!getItemNodeFromIndex(index).hasAttribute('disabled')) {\n return index;\n }\n }\n } else {\n for (var _index = baseIndex - 1; _index >= 0; _index--) {\n if (!getItemNodeFromIndex(_index).hasAttribute('disabled')) {\n return _index;\n }\n }\n }\n\n if (circular) {\n return moveAmount > 0 ? getNextNonDisabledIndex(1, 0, itemCount, getItemNodeFromIndex, false) : getNextNonDisabledIndex(-1, itemCount - 1, itemCount, getItemNodeFromIndex, false);\n }\n\n return -1;\n}\n/**\n * Checks if event target is within the downshift elements.\n *\n * @param {EventTarget} target Target to check.\n * @param {HTMLElement[]} downshiftElements The elements that form downshift (list, toggle button etc).\n * @param {Window} environment The window context where downshift renders.\n * @param {boolean} checkActiveElement Whether to also check activeElement.\n *\n * @returns {boolean} Whether or not the target is within downshift elements.\n */\n\n\nfunction targetWithinDownshift(target, downshiftElements, environment, checkActiveElement) {\n if (checkActiveElement === void 0) {\n checkActiveElement = true;\n }\n\n return downshiftElements.some(function (contextNode) {\n return contextNode && (isOrContainsNode(contextNode, target, environment) || checkActiveElement && isOrContainsNode(contextNode, environment.document.activeElement, environment));\n });\n} // eslint-disable-next-line import/no-mutable-exports\n\n\nvar validateControlledUnchanged = noop;\n/* istanbul ignore next */\n\nif (process.env.NODE_ENV !== 'production') {\n validateControlledUnchanged = function validateControlledUnchanged(state, prevProps, nextProps) {\n var warningDescription = \"This prop should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled Downshift element for the lifetime of the component. More info: https://github.com/downshift-js/downshift#control-props\";\n Object.keys(state).forEach(function (propKey) {\n if (prevProps[propKey] !== undefined && nextProps[propKey] === undefined) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: A component has changed the controlled prop \\\"\" + propKey + \"\\\" to be uncontrolled. \" + warningDescription);\n } else if (prevProps[propKey] === undefined && nextProps[propKey] !== undefined) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: A component has changed the uncontrolled prop \\\"\" + propKey + \"\\\" to be controlled. \" + warningDescription);\n }\n });\n };\n}\n\nvar cleanupStatus = debounce(function (documentProp) {\n getStatusDiv(documentProp).textContent = '';\n}, 500);\n/**\n * @param {String} status the status message\n * @param {Object} documentProp document passed by the user.\n */\n\nfunction setStatus(status, documentProp) {\n var div = getStatusDiv(documentProp);\n\n if (!status) {\n return;\n }\n\n div.textContent = status;\n cleanupStatus(documentProp);\n}\n/**\n * Get the status node or create it if it does not already exist.\n * @param {Object} documentProp document passed by the user.\n * @return {HTMLElement} the status node.\n */\n\n\nfunction getStatusDiv(documentProp) {\n if (documentProp === void 0) {\n documentProp = document;\n }\n\n var statusDiv = documentProp.getElementById('a11y-status-message');\n\n if (statusDiv) {\n return statusDiv;\n }\n\n statusDiv = documentProp.createElement('div');\n statusDiv.setAttribute('id', 'a11y-status-message');\n statusDiv.setAttribute('role', 'status');\n statusDiv.setAttribute('aria-live', 'polite');\n statusDiv.setAttribute('aria-relevant', 'additions text');\n Object.assign(statusDiv.style, {\n border: '0',\n clip: 'rect(0 0 0 0)',\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n padding: '0',\n position: 'absolute',\n width: '1px'\n });\n documentProp.body.appendChild(statusDiv);\n return statusDiv;\n}\n\nvar unknown = process.env.NODE_ENV !== \"production\" ? '__autocomplete_unknown__' : 0;\nvar mouseUp = process.env.NODE_ENV !== \"production\" ? '__autocomplete_mouseup__' : 1;\nvar itemMouseEnter = process.env.NODE_ENV !== \"production\" ? '__autocomplete_item_mouseenter__' : 2;\nvar keyDownArrowUp = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_arrow_up__' : 3;\nvar keyDownArrowDown = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_arrow_down__' : 4;\nvar keyDownEscape = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_escape__' : 5;\nvar keyDownEnter = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_enter__' : 6;\nvar keyDownHome = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_home__' : 7;\nvar keyDownEnd = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_end__' : 8;\nvar clickItem = process.env.NODE_ENV !== \"production\" ? '__autocomplete_click_item__' : 9;\nvar blurInput = process.env.NODE_ENV !== \"production\" ? '__autocomplete_blur_input__' : 10;\nvar changeInput = process.env.NODE_ENV !== \"production\" ? '__autocomplete_change_input__' : 11;\nvar keyDownSpaceButton = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_space_button__' : 12;\nvar clickButton = process.env.NODE_ENV !== \"production\" ? '__autocomplete_click_button__' : 13;\nvar blurButton = process.env.NODE_ENV !== \"production\" ? '__autocomplete_blur_button__' : 14;\nvar controlledPropUpdatedSelectedItem = process.env.NODE_ENV !== \"production\" ? '__autocomplete_controlled_prop_updated_selected_item__' : 15;\nvar touchEnd = process.env.NODE_ENV !== \"production\" ? '__autocomplete_touchend__' : 16;\n\nvar stateChangeTypes$3 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n unknown: unknown,\n mouseUp: mouseUp,\n itemMouseEnter: itemMouseEnter,\n keyDownArrowUp: keyDownArrowUp,\n keyDownArrowDown: keyDownArrowDown,\n keyDownEscape: keyDownEscape,\n keyDownEnter: keyDownEnter,\n keyDownHome: keyDownHome,\n keyDownEnd: keyDownEnd,\n clickItem: clickItem,\n blurInput: blurInput,\n changeInput: changeInput,\n keyDownSpaceButton: keyDownSpaceButton,\n clickButton: clickButton,\n blurButton: blurButton,\n controlledPropUpdatedSelectedItem: controlledPropUpdatedSelectedItem,\n touchEnd: touchEnd\n});\n\nvar _excluded$4 = [\"refKey\", \"ref\"],\n _excluded2$3 = [\"onClick\", \"onPress\", \"onKeyDown\", \"onKeyUp\", \"onBlur\"],\n _excluded3$2 = [\"onKeyDown\", \"onBlur\", \"onChange\", \"onInput\", \"onChangeText\"],\n _excluded4$1 = [\"refKey\", \"ref\"],\n _excluded5$1 = [\"onMouseMove\", \"onMouseDown\", \"onClick\", \"onPress\", \"index\", \"item\"];\n\nvar Downshift = /*#__PURE__*/function () {\n var Downshift = /*#__PURE__*/function (_Component) {\n _inheritsLoose(Downshift, _Component);\n\n function Downshift(_props) {\n var _this;\n\n _this = _Component.call(this, _props) || this; // fancy destructuring + defaults + aliases\n // this basically says each value of state should either be set to\n // the initial value or the default value if the initial value is not provided\n\n _this.id = _this.props.id || \"downshift-\" + generateId();\n _this.menuId = _this.props.menuId || _this.id + \"-menu\";\n _this.labelId = _this.props.labelId || _this.id + \"-label\";\n _this.inputId = _this.props.inputId || _this.id + \"-input\";\n\n _this.getItemId = _this.props.getItemId || function (index) {\n return _this.id + \"-item-\" + index;\n };\n\n _this.input = null;\n _this.items = [];\n _this.itemCount = null;\n _this.previousResultCount = 0;\n _this.timeoutIds = [];\n\n _this.internalSetTimeout = function (fn, time) {\n var id = setTimeout(function () {\n _this.timeoutIds = _this.timeoutIds.filter(function (i) {\n return i !== id;\n });\n fn();\n }, time);\n\n _this.timeoutIds.push(id);\n };\n\n _this.setItemCount = function (count) {\n _this.itemCount = count;\n };\n\n _this.unsetItemCount = function () {\n _this.itemCount = null;\n };\n\n _this.setHighlightedIndex = function (highlightedIndex, otherStateToSet) {\n if (highlightedIndex === void 0) {\n highlightedIndex = _this.props.defaultHighlightedIndex;\n }\n\n if (otherStateToSet === void 0) {\n otherStateToSet = {};\n }\n\n otherStateToSet = pickState(otherStateToSet);\n\n _this.internalSetState(_extends({\n highlightedIndex: highlightedIndex\n }, otherStateToSet));\n };\n\n _this.clearSelection = function (cb) {\n _this.internalSetState({\n selectedItem: null,\n inputValue: '',\n highlightedIndex: _this.props.defaultHighlightedIndex,\n isOpen: _this.props.defaultIsOpen\n }, cb);\n };\n\n _this.selectItem = function (item, otherStateToSet, cb) {\n otherStateToSet = pickState(otherStateToSet);\n\n _this.internalSetState(_extends({\n isOpen: _this.props.defaultIsOpen,\n highlightedIndex: _this.props.defaultHighlightedIndex,\n selectedItem: item,\n inputValue: _this.props.itemToString(item)\n }, otherStateToSet), cb);\n };\n\n _this.selectItemAtIndex = function (itemIndex, otherStateToSet, cb) {\n var item = _this.items[itemIndex];\n\n if (item == null) {\n return;\n }\n\n _this.selectItem(item, otherStateToSet, cb);\n };\n\n _this.selectHighlightedItem = function (otherStateToSet, cb) {\n return _this.selectItemAtIndex(_this.getState().highlightedIndex, otherStateToSet, cb);\n };\n\n _this.internalSetState = function (stateToSet, cb) {\n var isItemSelected, onChangeArg;\n var onStateChangeArg = {};\n var isStateToSetFunction = typeof stateToSet === 'function'; // we want to call `onInputValueChange` before the `setState` call\n // so someone controlling the `inputValue` state gets notified of\n // the input change as soon as possible. This avoids issues with\n // preserving the cursor position.\n // See https://github.com/downshift-js/downshift/issues/217 for more info.\n\n if (!isStateToSetFunction && stateToSet.hasOwnProperty('inputValue')) {\n _this.props.onInputValueChange(stateToSet.inputValue, _extends({}, _this.getStateAndHelpers(), stateToSet));\n }\n\n return _this.setState(function (state) {\n state = _this.getState(state);\n var newStateToSet = isStateToSetFunction ? stateToSet(state) : stateToSet; // Your own function that could modify the state that will be set.\n\n newStateToSet = _this.props.stateReducer(state, newStateToSet); // checks if an item is selected, regardless of if it's different from\n // what was selected before\n // used to determine if onSelect and onChange callbacks should be called\n\n isItemSelected = newStateToSet.hasOwnProperty('selectedItem'); // this keeps track of the object we want to call with setState\n\n var nextState = {}; // this is just used to tell whether the state changed\n\n var nextFullState = {}; // we need to call on change if the outside world is controlling any of our state\n // and we're trying to update that state. OR if the selection has changed and we're\n // trying to update the selection\n\n if (isItemSelected && newStateToSet.selectedItem !== state.selectedItem) {\n onChangeArg = newStateToSet.selectedItem;\n }\n\n newStateToSet.type = newStateToSet.type || unknown;\n Object.keys(newStateToSet).forEach(function (key) {\n // onStateChangeArg should only have the state that is\n // actually changing\n if (state[key] !== newStateToSet[key]) {\n onStateChangeArg[key] = newStateToSet[key];\n } // the type is useful for the onStateChangeArg\n // but we don't actually want to set it in internal state.\n // this is an undocumented feature for now... Not all internalSetState\n // calls support it and I'm not certain we want them to yet.\n // But it enables users controlling the isOpen state to know when\n // the isOpen state changes due to mouseup events which is quite handy.\n\n\n if (key === 'type') {\n return;\n }\n\n nextFullState[key] = newStateToSet[key]; // if it's coming from props, then we don't care to set it internally\n\n if (!isControlledProp(_this.props, key)) {\n nextState[key] = newStateToSet[key];\n }\n }); // if stateToSet is a function, then we weren't able to call onInputValueChange\n // earlier, so we'll call it now that we know what the inputValue state will be.\n\n if (isStateToSetFunction && newStateToSet.hasOwnProperty('inputValue')) {\n _this.props.onInputValueChange(newStateToSet.inputValue, _extends({}, _this.getStateAndHelpers(), newStateToSet));\n }\n\n return nextState;\n }, function () {\n // call the provided callback if it's a function\n cbToCb(cb)(); // only call the onStateChange and onChange callbacks if\n // we have relevant information to pass them.\n\n var hasMoreStateThanType = Object.keys(onStateChangeArg).length > 1;\n\n if (hasMoreStateThanType) {\n _this.props.onStateChange(onStateChangeArg, _this.getStateAndHelpers());\n }\n\n if (isItemSelected) {\n _this.props.onSelect(stateToSet.selectedItem, _this.getStateAndHelpers());\n }\n\n if (onChangeArg !== undefined) {\n _this.props.onChange(onChangeArg, _this.getStateAndHelpers());\n } // this is currently undocumented and therefore subject to change\n // We'll try to not break it, but just be warned.\n\n\n _this.props.onUserAction(onStateChangeArg, _this.getStateAndHelpers());\n });\n };\n\n _this.rootRef = function (node) {\n return _this._rootNode = node;\n };\n\n _this.getRootProps = function (_temp, _temp2) {\n var _extends2;\n\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$refKey = _ref.refKey,\n refKey = _ref$refKey === void 0 ? 'ref' : _ref$refKey,\n ref = _ref.ref,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$4);\n\n var _ref2 = _temp2 === void 0 ? {} : _temp2,\n _ref2$suppressRefErro = _ref2.suppressRefError,\n suppressRefError = _ref2$suppressRefErro === void 0 ? false : _ref2$suppressRefErro;\n\n // this is used in the render to know whether the user has called getRootProps.\n // It uses that to know whether to apply the props automatically\n _this.getRootProps.called = true;\n _this.getRootProps.refKey = refKey;\n _this.getRootProps.suppressRefError = suppressRefError;\n\n var _this$getState = _this.getState(),\n isOpen = _this$getState.isOpen;\n\n return _extends((_extends2 = {}, _extends2[refKey] = handleRefs(ref, _this.rootRef), _extends2.role = 'combobox', _extends2['aria-expanded'] = isOpen, _extends2['aria-haspopup'] = 'listbox', _extends2['aria-owns'] = isOpen ? _this.menuId : null, _extends2['aria-labelledby'] = _this.labelId, _extends2), rest);\n };\n\n _this.keyDownHandlers = {\n ArrowDown: function ArrowDown(event) {\n var _this2 = this;\n\n event.preventDefault();\n\n if (this.getState().isOpen) {\n var amount = event.shiftKey ? 5 : 1;\n this.moveHighlightedIndex(amount, {\n type: keyDownArrowDown\n });\n } else {\n this.internalSetState({\n isOpen: true,\n type: keyDownArrowDown\n }, function () {\n var itemCount = _this2.getItemCount();\n\n if (itemCount > 0) {\n var _this2$getState = _this2.getState(),\n highlightedIndex = _this2$getState.highlightedIndex;\n\n var nextHighlightedIndex = getNextWrappingIndex(1, highlightedIndex, itemCount, function (index) {\n return _this2.getItemNodeFromIndex(index);\n });\n\n _this2.setHighlightedIndex(nextHighlightedIndex, {\n type: keyDownArrowDown\n });\n }\n });\n }\n },\n ArrowUp: function ArrowUp(event) {\n var _this3 = this;\n\n event.preventDefault();\n\n if (this.getState().isOpen) {\n var amount = event.shiftKey ? -5 : -1;\n this.moveHighlightedIndex(amount, {\n type: keyDownArrowUp\n });\n } else {\n this.internalSetState({\n isOpen: true,\n type: keyDownArrowUp\n }, function () {\n var itemCount = _this3.getItemCount();\n\n if (itemCount > 0) {\n var _this3$getState = _this3.getState(),\n highlightedIndex = _this3$getState.highlightedIndex;\n\n var nextHighlightedIndex = getNextWrappingIndex(-1, highlightedIndex, itemCount, function (index) {\n return _this3.getItemNodeFromIndex(index);\n });\n\n _this3.setHighlightedIndex(nextHighlightedIndex, {\n type: keyDownArrowUp\n });\n }\n });\n }\n },\n Enter: function Enter(event) {\n if (event.which === 229) {\n return;\n }\n\n var _this$getState2 = this.getState(),\n isOpen = _this$getState2.isOpen,\n highlightedIndex = _this$getState2.highlightedIndex;\n\n if (isOpen && highlightedIndex != null) {\n event.preventDefault();\n var item = this.items[highlightedIndex];\n var itemNode = this.getItemNodeFromIndex(highlightedIndex);\n\n if (item == null || itemNode && itemNode.hasAttribute('disabled')) {\n return;\n }\n\n this.selectHighlightedItem({\n type: keyDownEnter\n });\n }\n },\n Escape: function Escape(event) {\n event.preventDefault();\n this.reset(_extends({\n type: keyDownEscape\n }, !this.state.isOpen && {\n selectedItem: null,\n inputValue: ''\n }));\n }\n };\n _this.buttonKeyDownHandlers = _extends({}, _this.keyDownHandlers, {\n ' ': function _(event) {\n event.preventDefault();\n this.toggleMenu({\n type: keyDownSpaceButton\n });\n }\n });\n _this.inputKeyDownHandlers = _extends({}, _this.keyDownHandlers, {\n Home: function Home(event) {\n var _this4 = this;\n\n var _this$getState3 = this.getState(),\n isOpen = _this$getState3.isOpen;\n\n if (!isOpen) {\n return;\n }\n\n event.preventDefault();\n var itemCount = this.getItemCount();\n\n if (itemCount <= 0 || !isOpen) {\n return;\n } // get next non-disabled starting downwards from 0 if that's disabled.\n\n\n var newHighlightedIndex = getNextNonDisabledIndex(1, 0, itemCount, function (index) {\n return _this4.getItemNodeFromIndex(index);\n }, false);\n this.setHighlightedIndex(newHighlightedIndex, {\n type: keyDownHome\n });\n },\n End: function End(event) {\n var _this5 = this;\n\n var _this$getState4 = this.getState(),\n isOpen = _this$getState4.isOpen;\n\n if (!isOpen) {\n return;\n }\n\n event.preventDefault();\n var itemCount = this.getItemCount();\n\n if (itemCount <= 0 || !isOpen) {\n return;\n } // get next non-disabled starting upwards from last index if that's disabled.\n\n\n var newHighlightedIndex = getNextNonDisabledIndex(-1, itemCount - 1, itemCount, function (index) {\n return _this5.getItemNodeFromIndex(index);\n }, false);\n this.setHighlightedIndex(newHighlightedIndex, {\n type: keyDownEnd\n });\n }\n });\n\n _this.getToggleButtonProps = function (_temp3) {\n var _ref3 = _temp3 === void 0 ? {} : _temp3,\n onClick = _ref3.onClick;\n _ref3.onPress;\n var onKeyDown = _ref3.onKeyDown,\n onKeyUp = _ref3.onKeyUp,\n onBlur = _ref3.onBlur,\n rest = _objectWithoutPropertiesLoose(_ref3, _excluded2$3);\n\n var _this$getState5 = _this.getState(),\n isOpen = _this$getState5.isOpen;\n\n var enabledEventHandlers = {\n onClick: callAllEventHandlers(onClick, _this.buttonHandleClick),\n onKeyDown: callAllEventHandlers(onKeyDown, _this.buttonHandleKeyDown),\n onKeyUp: callAllEventHandlers(onKeyUp, _this.buttonHandleKeyUp),\n onBlur: callAllEventHandlers(onBlur, _this.buttonHandleBlur)\n };\n var eventHandlers = rest.disabled ? {} : enabledEventHandlers;\n return _extends({\n type: 'button',\n role: 'button',\n 'aria-label': isOpen ? 'close menu' : 'open menu',\n 'aria-haspopup': true,\n 'data-toggle': true\n }, eventHandlers, rest);\n };\n\n _this.buttonHandleKeyUp = function (event) {\n // Prevent click event from emitting in Firefox\n event.preventDefault();\n };\n\n _this.buttonHandleKeyDown = function (event) {\n var key = normalizeArrowKey(event);\n\n if (_this.buttonKeyDownHandlers[key]) {\n _this.buttonKeyDownHandlers[key].call(_assertThisInitialized(_this), event);\n }\n };\n\n _this.buttonHandleClick = function (event) {\n event.preventDefault(); // handle odd case for Safari and Firefox which\n // don't give the button the focus properly.\n\n /* istanbul ignore if (can't reasonably test this) */\n\n if (_this.props.environment.document.activeElement === _this.props.environment.document.body) {\n event.target.focus();\n } // to simplify testing components that use downshift, we'll not wrap this in a setTimeout\n // if the NODE_ENV is test. With the proper build system, this should be dead code eliminated\n // when building for production and should therefore have no impact on production code.\n\n\n if (process.env.NODE_ENV === 'test') {\n _this.toggleMenu({\n type: clickButton\n });\n } else {\n // Ensure that toggle of menu occurs after the potential blur event in iOS\n _this.internalSetTimeout(function () {\n return _this.toggleMenu({\n type: clickButton\n });\n });\n }\n };\n\n _this.buttonHandleBlur = function (event) {\n var blurTarget = event.target; // Save blur target for comparison with activeElement later\n // Need setTimeout, so that when the user presses Tab, the activeElement is the next focused element, not body element\n\n _this.internalSetTimeout(function () {\n if (!_this.isMouseDown && (_this.props.environment.document.activeElement == null || _this.props.environment.document.activeElement.id !== _this.inputId) && _this.props.environment.document.activeElement !== blurTarget // Do nothing if we refocus the same element again (to solve issue in Safari on iOS)\n ) {\n _this.reset({\n type: blurButton\n });\n }\n });\n };\n\n _this.getLabelProps = function (props) {\n return _extends({\n htmlFor: _this.inputId,\n id: _this.labelId\n }, props);\n };\n\n _this.getInputProps = function (_temp4) {\n var _ref4 = _temp4 === void 0 ? {} : _temp4,\n onKeyDown = _ref4.onKeyDown,\n onBlur = _ref4.onBlur,\n onChange = _ref4.onChange,\n onInput = _ref4.onInput;\n _ref4.onChangeText;\n var rest = _objectWithoutPropertiesLoose(_ref4, _excluded3$2);\n\n var onChangeKey;\n var eventHandlers = {};\n /* istanbul ignore next (preact) */\n\n {\n onChangeKey = 'onChange';\n }\n\n var _this$getState6 = _this.getState(),\n inputValue = _this$getState6.inputValue,\n isOpen = _this$getState6.isOpen,\n highlightedIndex = _this$getState6.highlightedIndex;\n\n if (!rest.disabled) {\n var _eventHandlers;\n\n eventHandlers = (_eventHandlers = {}, _eventHandlers[onChangeKey] = callAllEventHandlers(onChange, onInput, _this.inputHandleChange), _eventHandlers.onKeyDown = callAllEventHandlers(onKeyDown, _this.inputHandleKeyDown), _eventHandlers.onBlur = callAllEventHandlers(onBlur, _this.inputHandleBlur), _eventHandlers);\n }\n\n return _extends({\n 'aria-autocomplete': 'list',\n 'aria-activedescendant': isOpen && typeof highlightedIndex === 'number' && highlightedIndex >= 0 ? _this.getItemId(highlightedIndex) : null,\n 'aria-controls': isOpen ? _this.menuId : null,\n 'aria-labelledby': _this.labelId,\n // https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion\n // revert back since autocomplete=\"nope\" is ignored on latest Chrome and Opera\n autoComplete: 'off',\n value: inputValue,\n id: _this.inputId\n }, eventHandlers, rest);\n };\n\n _this.inputHandleKeyDown = function (event) {\n var key = normalizeArrowKey(event);\n\n if (key && _this.inputKeyDownHandlers[key]) {\n _this.inputKeyDownHandlers[key].call(_assertThisInitialized(_this), event);\n }\n };\n\n _this.inputHandleChange = function (event) {\n _this.internalSetState({\n type: changeInput,\n isOpen: true,\n inputValue: event.target.value,\n highlightedIndex: _this.props.defaultHighlightedIndex\n });\n };\n\n _this.inputHandleBlur = function () {\n // Need setTimeout, so that when the user presses Tab, the activeElement is the next focused element, not the body element\n _this.internalSetTimeout(function () {\n var downshiftButtonIsActive = _this.props.environment.document && !!_this.props.environment.document.activeElement && !!_this.props.environment.document.activeElement.dataset && _this.props.environment.document.activeElement.dataset.toggle && _this._rootNode && _this._rootNode.contains(_this.props.environment.document.activeElement);\n\n if (!_this.isMouseDown && !downshiftButtonIsActive) {\n _this.reset({\n type: blurInput\n });\n }\n });\n };\n\n _this.menuRef = function (node) {\n _this._menuNode = node;\n };\n\n _this.getMenuProps = function (_temp5, _temp6) {\n var _extends3;\n\n var _ref5 = _temp5 === void 0 ? {} : _temp5,\n _ref5$refKey = _ref5.refKey,\n refKey = _ref5$refKey === void 0 ? 'ref' : _ref5$refKey,\n ref = _ref5.ref,\n props = _objectWithoutPropertiesLoose(_ref5, _excluded4$1);\n\n var _ref6 = _temp6 === void 0 ? {} : _temp6,\n _ref6$suppressRefErro = _ref6.suppressRefError,\n suppressRefError = _ref6$suppressRefErro === void 0 ? false : _ref6$suppressRefErro;\n\n _this.getMenuProps.called = true;\n _this.getMenuProps.refKey = refKey;\n _this.getMenuProps.suppressRefError = suppressRefError;\n return _extends((_extends3 = {}, _extends3[refKey] = handleRefs(ref, _this.menuRef), _extends3.role = 'listbox', _extends3['aria-labelledby'] = props && props['aria-label'] ? null : _this.labelId, _extends3.id = _this.menuId, _extends3), props);\n };\n\n _this.getItemProps = function (_temp7) {\n var _enabledEventHandlers;\n\n var _ref7 = _temp7 === void 0 ? {} : _temp7,\n onMouseMove = _ref7.onMouseMove,\n onMouseDown = _ref7.onMouseDown,\n onClick = _ref7.onClick;\n _ref7.onPress;\n var index = _ref7.index,\n _ref7$item = _ref7.item,\n item = _ref7$item === void 0 ? process.env.NODE_ENV === 'production' ?\n /* istanbul ignore next */\n undefined : requiredProp('getItemProps', 'item') : _ref7$item,\n rest = _objectWithoutPropertiesLoose(_ref7, _excluded5$1);\n\n if (index === undefined) {\n _this.items.push(item);\n\n index = _this.items.indexOf(item);\n } else {\n _this.items[index] = item;\n }\n\n var onSelectKey = 'onClick';\n var customClickHandler = onClick;\n var enabledEventHandlers = (_enabledEventHandlers = {\n // onMouseMove is used over onMouseEnter here. onMouseMove\n // is only triggered on actual mouse movement while onMouseEnter\n // can fire on DOM changes, interrupting keyboard navigation\n onMouseMove: callAllEventHandlers(onMouseMove, function () {\n if (index === _this.getState().highlightedIndex) {\n return;\n }\n\n _this.setHighlightedIndex(index, {\n type: itemMouseEnter\n }); // We never want to manually scroll when changing state based\n // on `onMouseMove` because we will be moving the element out\n // from under the user which is currently scrolling/moving the\n // cursor\n\n\n _this.avoidScrolling = true;\n\n _this.internalSetTimeout(function () {\n return _this.avoidScrolling = false;\n }, 250);\n }),\n onMouseDown: callAllEventHandlers(onMouseDown, function (event) {\n // This prevents the activeElement from being changed\n // to the item so it can remain with the current activeElement\n // which is a more common use case.\n event.preventDefault();\n })\n }, _enabledEventHandlers[onSelectKey] = callAllEventHandlers(customClickHandler, function () {\n _this.selectItemAtIndex(index, {\n type: clickItem\n });\n }), _enabledEventHandlers); // Passing down the onMouseDown handler to prevent redirect\n // of the activeElement if clicking on disabled items\n\n var eventHandlers = rest.disabled ? {\n onMouseDown: enabledEventHandlers.onMouseDown\n } : enabledEventHandlers;\n return _extends({\n id: _this.getItemId(index),\n role: 'option',\n 'aria-selected': _this.getState().highlightedIndex === index\n }, eventHandlers, rest);\n };\n\n _this.clearItems = function () {\n _this.items = [];\n };\n\n _this.reset = function (otherStateToSet, cb) {\n if (otherStateToSet === void 0) {\n otherStateToSet = {};\n }\n\n otherStateToSet = pickState(otherStateToSet);\n\n _this.internalSetState(function (_ref8) {\n var selectedItem = _ref8.selectedItem;\n return _extends({\n isOpen: _this.props.defaultIsOpen,\n highlightedIndex: _this.props.defaultHighlightedIndex,\n inputValue: _this.props.itemToString(selectedItem)\n }, otherStateToSet);\n }, cb);\n };\n\n _this.toggleMenu = function (otherStateToSet, cb) {\n if (otherStateToSet === void 0) {\n otherStateToSet = {};\n }\n\n otherStateToSet = pickState(otherStateToSet);\n\n _this.internalSetState(function (_ref9) {\n var isOpen = _ref9.isOpen;\n return _extends({\n isOpen: !isOpen\n }, isOpen && {\n highlightedIndex: _this.props.defaultHighlightedIndex\n }, otherStateToSet);\n }, function () {\n var _this$getState7 = _this.getState(),\n isOpen = _this$getState7.isOpen,\n highlightedIndex = _this$getState7.highlightedIndex;\n\n if (isOpen) {\n if (_this.getItemCount() > 0 && typeof highlightedIndex === 'number') {\n _this.setHighlightedIndex(highlightedIndex, otherStateToSet);\n }\n }\n\n cbToCb(cb)();\n });\n };\n\n _this.openMenu = function (cb) {\n _this.internalSetState({\n isOpen: true\n }, cb);\n };\n\n _this.closeMenu = function (cb) {\n _this.internalSetState({\n isOpen: false\n }, cb);\n };\n\n _this.updateStatus = debounce(function () {\n var state = _this.getState();\n\n var item = _this.items[state.highlightedIndex];\n\n var resultCount = _this.getItemCount();\n\n var status = _this.props.getA11yStatusMessage(_extends({\n itemToString: _this.props.itemToString,\n previousResultCount: _this.previousResultCount,\n resultCount: resultCount,\n highlightedItem: item\n }, state));\n\n _this.previousResultCount = resultCount;\n setStatus(status, _this.props.environment.document);\n }, 200);\n\n var _this$props = _this.props,\n defaultHighlightedIndex = _this$props.defaultHighlightedIndex,\n _this$props$initialHi = _this$props.initialHighlightedIndex,\n _highlightedIndex = _this$props$initialHi === void 0 ? defaultHighlightedIndex : _this$props$initialHi,\n defaultIsOpen = _this$props.defaultIsOpen,\n _this$props$initialIs = _this$props.initialIsOpen,\n _isOpen = _this$props$initialIs === void 0 ? defaultIsOpen : _this$props$initialIs,\n _this$props$initialIn = _this$props.initialInputValue,\n _inputValue = _this$props$initialIn === void 0 ? '' : _this$props$initialIn,\n _this$props$initialSe = _this$props.initialSelectedItem,\n _selectedItem = _this$props$initialSe === void 0 ? null : _this$props$initialSe;\n\n var _state = _this.getState({\n highlightedIndex: _highlightedIndex,\n isOpen: _isOpen,\n inputValue: _inputValue,\n selectedItem: _selectedItem\n });\n\n if (_state.selectedItem != null && _this.props.initialInputValue === undefined) {\n _state.inputValue = _this.props.itemToString(_state.selectedItem);\n }\n\n _this.state = _state;\n return _this;\n }\n\n var _proto = Downshift.prototype;\n\n /**\n * Clear all running timeouts\n */\n _proto.internalClearTimeouts = function internalClearTimeouts() {\n this.timeoutIds.forEach(function (id) {\n clearTimeout(id);\n });\n this.timeoutIds = [];\n }\n /**\n * Gets the state based on internal state or props\n * If a state value is passed via props, then that\n * is the value given, otherwise it's retrieved from\n * stateToMerge\n *\n * @param {Object} stateToMerge defaults to this.state\n * @return {Object} the state\n */\n ;\n\n _proto.getState = function getState$1(stateToMerge) {\n if (stateToMerge === void 0) {\n stateToMerge = this.state;\n }\n\n return getState(stateToMerge, this.props);\n };\n\n _proto.getItemCount = function getItemCount() {\n // things read better this way. They're in priority order:\n // 1. `this.itemCount`\n // 2. `this.props.itemCount`\n // 3. `this.items.length`\n var itemCount = this.items.length;\n\n if (this.itemCount != null) {\n itemCount = this.itemCount;\n } else if (this.props.itemCount !== undefined) {\n itemCount = this.props.itemCount;\n }\n\n return itemCount;\n };\n\n _proto.getItemNodeFromIndex = function getItemNodeFromIndex(index) {\n return this.props.environment.document.getElementById(this.getItemId(index));\n };\n\n _proto.scrollHighlightedItemIntoView = function scrollHighlightedItemIntoView() {\n /* istanbul ignore else (react-native) */\n {\n var node = this.getItemNodeFromIndex(this.getState().highlightedIndex);\n this.props.scrollIntoView(node, this._menuNode);\n }\n };\n\n _proto.moveHighlightedIndex = function moveHighlightedIndex(amount, otherStateToSet) {\n var _this6 = this;\n\n var itemCount = this.getItemCount();\n\n var _this$getState8 = this.getState(),\n highlightedIndex = _this$getState8.highlightedIndex;\n\n if (itemCount > 0) {\n var nextHighlightedIndex = getNextWrappingIndex(amount, highlightedIndex, itemCount, function (index) {\n return _this6.getItemNodeFromIndex(index);\n });\n this.setHighlightedIndex(nextHighlightedIndex, otherStateToSet);\n }\n };\n\n _proto.getStateAndHelpers = function getStateAndHelpers() {\n var _this$getState9 = this.getState(),\n highlightedIndex = _this$getState9.highlightedIndex,\n inputValue = _this$getState9.inputValue,\n selectedItem = _this$getState9.selectedItem,\n isOpen = _this$getState9.isOpen;\n\n var itemToString = this.props.itemToString;\n var id = this.id;\n var getRootProps = this.getRootProps,\n getToggleButtonProps = this.getToggleButtonProps,\n getLabelProps = this.getLabelProps,\n getMenuProps = this.getMenuProps,\n getInputProps = this.getInputProps,\n getItemProps = this.getItemProps,\n openMenu = this.openMenu,\n closeMenu = this.closeMenu,\n toggleMenu = this.toggleMenu,\n selectItem = this.selectItem,\n selectItemAtIndex = this.selectItemAtIndex,\n selectHighlightedItem = this.selectHighlightedItem,\n setHighlightedIndex = this.setHighlightedIndex,\n clearSelection = this.clearSelection,\n clearItems = this.clearItems,\n reset = this.reset,\n setItemCount = this.setItemCount,\n unsetItemCount = this.unsetItemCount,\n setState = this.internalSetState;\n return {\n // prop getters\n getRootProps: getRootProps,\n getToggleButtonProps: getToggleButtonProps,\n getLabelProps: getLabelProps,\n getMenuProps: getMenuProps,\n getInputProps: getInputProps,\n getItemProps: getItemProps,\n // actions\n reset: reset,\n openMenu: openMenu,\n closeMenu: closeMenu,\n toggleMenu: toggleMenu,\n selectItem: selectItem,\n selectItemAtIndex: selectItemAtIndex,\n selectHighlightedItem: selectHighlightedItem,\n setHighlightedIndex: setHighlightedIndex,\n clearSelection: clearSelection,\n clearItems: clearItems,\n setItemCount: setItemCount,\n unsetItemCount: unsetItemCount,\n setState: setState,\n // props\n itemToString: itemToString,\n // derived\n id: id,\n // state\n highlightedIndex: highlightedIndex,\n inputValue: inputValue,\n isOpen: isOpen,\n selectedItem: selectedItem\n };\n } //////////////////////////// ROOT\n ;\n\n _proto.componentDidMount = function componentDidMount() {\n var _this7 = this;\n\n /* istanbul ignore if (react-native) */\n if (process.env.NODE_ENV !== 'production' && !false && this.getMenuProps.called && !this.getMenuProps.suppressRefError) {\n validateGetMenuPropsCalledCorrectly(this._menuNode, this.getMenuProps);\n }\n /* istanbul ignore if (react-native) */\n\n\n {\n // this.isMouseDown helps us track whether the mouse is currently held down.\n // This is useful when the user clicks on an item in the list, but holds the mouse\n // down long enough for the list to disappear (because the blur event fires on the input)\n // this.isMouseDown is used in the blur handler on the input to determine whether the blur event should\n // trigger hiding the menu.\n var onMouseDown = function onMouseDown() {\n _this7.isMouseDown = true;\n };\n\n var onMouseUp = function onMouseUp(event) {\n _this7.isMouseDown = false; // if the target element or the activeElement is within a downshift node\n // then we don't want to reset downshift\n\n var contextWithinDownshift = targetWithinDownshift(event.target, [_this7._rootNode, _this7._menuNode], _this7.props.environment);\n\n if (!contextWithinDownshift && _this7.getState().isOpen) {\n _this7.reset({\n type: mouseUp\n }, function () {\n return _this7.props.onOuterClick(_this7.getStateAndHelpers());\n });\n }\n }; // Touching an element in iOS gives focus and hover states, but touching out of\n // the element will remove hover, and persist the focus state, resulting in the\n // blur event not being triggered.\n // this.isTouchMove helps us track whether the user is tapping or swiping on a touch screen.\n // If the user taps outside of Downshift, the component should be reset,\n // but not if the user is swiping\n\n\n var onTouchStart = function onTouchStart() {\n _this7.isTouchMove = false;\n };\n\n var onTouchMove = function onTouchMove() {\n _this7.isTouchMove = true;\n };\n\n var onTouchEnd = function onTouchEnd(event) {\n var contextWithinDownshift = targetWithinDownshift(event.target, [_this7._rootNode, _this7._menuNode], _this7.props.environment, false);\n\n if (!_this7.isTouchMove && !contextWithinDownshift && _this7.getState().isOpen) {\n _this7.reset({\n type: touchEnd\n }, function () {\n return _this7.props.onOuterClick(_this7.getStateAndHelpers());\n });\n }\n };\n\n var environment = this.props.environment;\n environment.addEventListener('mousedown', onMouseDown);\n environment.addEventListener('mouseup', onMouseUp);\n environment.addEventListener('touchstart', onTouchStart);\n environment.addEventListener('touchmove', onTouchMove);\n environment.addEventListener('touchend', onTouchEnd);\n\n this.cleanup = function () {\n _this7.internalClearTimeouts();\n\n _this7.updateStatus.cancel();\n\n environment.removeEventListener('mousedown', onMouseDown);\n environment.removeEventListener('mouseup', onMouseUp);\n environment.removeEventListener('touchstart', onTouchStart);\n environment.removeEventListener('touchmove', onTouchMove);\n environment.removeEventListener('touchend', onTouchEnd);\n };\n }\n };\n\n _proto.shouldScroll = function shouldScroll(prevState, prevProps) {\n var _ref10 = this.props.highlightedIndex === undefined ? this.getState() : this.props,\n currentHighlightedIndex = _ref10.highlightedIndex;\n\n var _ref11 = prevProps.highlightedIndex === undefined ? prevState : prevProps,\n prevHighlightedIndex = _ref11.highlightedIndex;\n\n var scrollWhenOpen = currentHighlightedIndex && this.getState().isOpen && !prevState.isOpen;\n var scrollWhenNavigating = currentHighlightedIndex !== prevHighlightedIndex;\n return scrollWhenOpen || scrollWhenNavigating;\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (process.env.NODE_ENV !== 'production') {\n validateControlledUnchanged(this.state, prevProps, this.props);\n /* istanbul ignore if (react-native) */\n\n if (this.getMenuProps.called && !this.getMenuProps.suppressRefError) {\n validateGetMenuPropsCalledCorrectly(this._menuNode, this.getMenuProps);\n }\n }\n\n if (isControlledProp(this.props, 'selectedItem') && this.props.selectedItemChanged(prevProps.selectedItem, this.props.selectedItem)) {\n this.internalSetState({\n type: controlledPropUpdatedSelectedItem,\n inputValue: this.props.itemToString(this.props.selectedItem)\n });\n }\n\n if (!this.avoidScrolling && this.shouldScroll(prevState, prevProps)) {\n this.scrollHighlightedItemIntoView();\n }\n /* istanbul ignore else (react-native) */\n\n\n {\n this.updateStatus();\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cleanup(); // avoids memory leak\n };\n\n _proto.render = function render() {\n var children = unwrapArray(this.props.children, noop); // because the items are rerendered every time we call the children\n // we clear this out each render and it will be populated again as\n // getItemProps is called.\n\n this.clearItems(); // we reset this so we know whether the user calls getRootProps during\n // this render. If they do then we don't need to do anything,\n // if they don't then we need to clone the element they return and\n // apply the props for them.\n\n this.getRootProps.called = false;\n this.getRootProps.refKey = undefined;\n this.getRootProps.suppressRefError = undefined; // we do something similar for getMenuProps\n\n this.getMenuProps.called = false;\n this.getMenuProps.refKey = undefined;\n this.getMenuProps.suppressRefError = undefined; // we do something similar for getLabelProps\n\n this.getLabelProps.called = false; // and something similar for getInputProps\n\n this.getInputProps.called = false;\n var element = unwrapArray(children(this.getStateAndHelpers()));\n\n if (!element) {\n return null;\n }\n\n if (this.getRootProps.called || this.props.suppressRefError) {\n if (process.env.NODE_ENV !== 'production' && !this.getRootProps.suppressRefError && !this.props.suppressRefError) {\n validateGetRootPropsCalledCorrectly(element, this.getRootProps);\n }\n\n return element;\n } else if (isDOMElement(element)) {\n // they didn't apply the root props, but we can clone\n // this and apply the props ourselves\n return /*#__PURE__*/cloneElement(element, this.getRootProps(getElementProps(element)));\n }\n /* istanbul ignore else */\n\n\n if (process.env.NODE_ENV !== 'production') {\n // they didn't apply the root props, but they need to\n // otherwise we can't query around the autocomplete\n throw new Error('downshift: If you return a non-DOM element, you must apply the getRootProps function');\n }\n /* istanbul ignore next */\n\n\n return undefined;\n };\n\n return Downshift;\n }(Component);\n\n Downshift.defaultProps = {\n defaultHighlightedIndex: null,\n defaultIsOpen: false,\n getA11yStatusMessage: getA11yStatusMessage$1,\n itemToString: function itemToString(i) {\n if (i == null) {\n return '';\n }\n\n if (process.env.NODE_ENV !== 'production' && isPlainObject(i) && !i.hasOwnProperty('toString')) {\n // eslint-disable-next-line no-console\n console.warn('downshift: An object was passed to the default implementation of `itemToString`. You should probably provide your own `itemToString` implementation. Please refer to the `itemToString` API documentation.', 'The object that was passed:', i);\n }\n\n return String(i);\n },\n onStateChange: noop,\n onInputValueChange: noop,\n onUserAction: noop,\n onChange: noop,\n onSelect: noop,\n onOuterClick: noop,\n selectedItemChanged: function selectedItemChanged(prevItem, item) {\n return prevItem !== item;\n },\n environment:\n /* istanbul ignore next (ssr) */\n typeof window === 'undefined' ? {} : window,\n stateReducer: function stateReducer(state, stateToSet) {\n return stateToSet;\n },\n suppressRefError: false,\n scrollIntoView: scrollIntoView\n };\n Downshift.stateChangeTypes = stateChangeTypes$3;\n return Downshift;\n}();\n\nprocess.env.NODE_ENV !== \"production\" ? Downshift.propTypes = {\n children: PropTypes.func,\n defaultHighlightedIndex: PropTypes.number,\n defaultIsOpen: PropTypes.bool,\n initialHighlightedIndex: PropTypes.number,\n initialSelectedItem: PropTypes.any,\n initialInputValue: PropTypes.string,\n initialIsOpen: PropTypes.bool,\n getA11yStatusMessage: PropTypes.func,\n itemToString: PropTypes.func,\n onChange: PropTypes.func,\n onSelect: PropTypes.func,\n onStateChange: PropTypes.func,\n onInputValueChange: PropTypes.func,\n onUserAction: PropTypes.func,\n onOuterClick: PropTypes.func,\n selectedItemChanged: PropTypes.func,\n stateReducer: PropTypes.func,\n itemCount: PropTypes.number,\n id: PropTypes.string,\n environment: PropTypes.shape({\n addEventListener: PropTypes.func,\n removeEventListener: PropTypes.func,\n document: PropTypes.shape({\n getElementById: PropTypes.func,\n activeElement: PropTypes.any,\n body: PropTypes.any\n })\n }),\n suppressRefError: PropTypes.bool,\n scrollIntoView: PropTypes.func,\n // things we keep in state for uncontrolled components\n // but can accept as props for controlled components\n\n /* eslint-disable react/no-unused-prop-types */\n selectedItem: PropTypes.any,\n isOpen: PropTypes.bool,\n inputValue: PropTypes.string,\n highlightedIndex: PropTypes.number,\n labelId: PropTypes.string,\n inputId: PropTypes.string,\n menuId: PropTypes.string,\n getItemId: PropTypes.func\n /* eslint-enable react/no-unused-prop-types */\n\n} : void 0;\nvar Downshift$1 = Downshift;\n\nfunction validateGetMenuPropsCalledCorrectly(node, _ref12) {\n var refKey = _ref12.refKey;\n\n if (!node) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: The ref prop \\\"\" + refKey + \"\\\" from getMenuProps was not applied correctly on your menu element.\");\n }\n}\n\nfunction validateGetRootPropsCalledCorrectly(element, _ref13) {\n var refKey = _ref13.refKey;\n var refKeySpecified = refKey !== 'ref';\n var isComposite = !isDOMElement(element);\n\n if (isComposite && !refKeySpecified && !isForwardRef(element)) {\n // eslint-disable-next-line no-console\n console.error('downshift: You returned a non-DOM element. You must specify a refKey in getRootProps');\n } else if (!isComposite && refKeySpecified) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: You returned a DOM element. You should not specify a refKey in getRootProps. You specified \\\"\" + refKey + \"\\\"\");\n }\n\n if (!isForwardRef(element) && !getElementProps(element)[refKey]) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: You must apply the ref prop \\\"\" + refKey + \"\\\" from getRootProps onto your root element.\");\n }\n}\n\nvar _excluded$3 = [\"isInitialMount\", \"highlightedIndex\", \"items\", \"environment\"];\nvar dropdownDefaultStateValues = {\n highlightedIndex: -1,\n isOpen: false,\n selectedItem: null,\n inputValue: ''\n};\n\nfunction callOnChangeProps(action, state, newState) {\n var props = action.props,\n type = action.type;\n var changes = {};\n Object.keys(state).forEach(function (key) {\n invokeOnChangeHandler(key, action, state, newState);\n\n if (newState[key] !== state[key]) {\n changes[key] = newState[key];\n }\n });\n\n if (props.onStateChange && Object.keys(changes).length) {\n props.onStateChange(_extends({\n type: type\n }, changes));\n }\n}\n\nfunction invokeOnChangeHandler(key, action, state, newState) {\n var props = action.props,\n type = action.type;\n var handler = \"on\" + capitalizeString(key) + \"Change\";\n\n if (props[handler] && newState[key] !== undefined && newState[key] !== state[key]) {\n props[handler](_extends({\n type: type\n }, newState));\n }\n}\n/**\n * Default state reducer that returns the changes.\n *\n * @param {Object} s state.\n * @param {Object} a action with changes.\n * @returns {Object} changes.\n */\n\n\nfunction stateReducer(s, a) {\n return a.changes;\n}\n/**\n * Returns a message to be added to aria-live region when item is selected.\n *\n * @param {Object} selectionParameters Parameters required to build the message.\n * @returns {string} The a11y message.\n */\n\n\nfunction getA11ySelectionMessage(selectionParameters) {\n var selectedItem = selectionParameters.selectedItem,\n itemToStringLocal = selectionParameters.itemToString;\n return selectedItem ? itemToStringLocal(selectedItem) + \" has been selected.\" : '';\n}\n/**\n * Debounced call for updating the a11y message.\n */\n\n\nvar updateA11yStatus = debounce(function (getA11yMessage, document) {\n setStatus(getA11yMessage(), document);\n}, 200); // istanbul ignore next\n\nvar useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? useLayoutEffect : useEffect;\n\nfunction useElementIds(_ref) {\n var _ref$id = _ref.id,\n id = _ref$id === void 0 ? \"downshift-\" + generateId() : _ref$id,\n labelId = _ref.labelId,\n menuId = _ref.menuId,\n getItemId = _ref.getItemId,\n toggleButtonId = _ref.toggleButtonId,\n inputId = _ref.inputId;\n var elementIdsRef = useRef({\n labelId: labelId || id + \"-label\",\n menuId: menuId || id + \"-menu\",\n getItemId: getItemId || function (index) {\n return id + \"-item-\" + index;\n },\n toggleButtonId: toggleButtonId || id + \"-toggle-button\",\n inputId: inputId || id + \"-input\"\n });\n return elementIdsRef.current;\n}\n\nfunction getItemIndex(index, item, items) {\n if (index !== undefined) {\n return index;\n }\n\n if (items.length === 0) {\n return -1;\n }\n\n return items.indexOf(item);\n}\n\nfunction itemToString(item) {\n return item ? String(item) : '';\n}\n\nfunction isAcceptedCharacterKey(key) {\n return /^\\S{1}$/.test(key);\n}\n\nfunction capitalizeString(string) {\n return \"\" + string.slice(0, 1).toUpperCase() + string.slice(1);\n}\n\nfunction useLatestRef(val) {\n var ref = useRef(val); // technically this is not \"concurrent mode safe\" because we're manipulating\n // the value during render (so it's not idempotent). However, the places this\n // hook is used is to support memoizing callbacks which will be called\n // *during* render, so we need the latest values *during* render.\n // If not for this, then we'd probably want to use useLayoutEffect instead.\n\n ref.current = val;\n return ref;\n}\n/**\n * Computes the controlled state using a the previous state, props,\n * two reducers, one from downshift and an optional one from the user.\n * Also calls the onChange handlers for state values that have changed.\n *\n * @param {Function} reducer Reducer function from downshift.\n * @param {Object} initialState Initial state of the hook.\n * @param {Object} props The hook props.\n * @returns {Array} An array with the state and an action dispatcher.\n */\n\n\nfunction useEnhancedReducer(reducer, initialState, props) {\n var prevStateRef = useRef();\n var actionRef = useRef();\n var enhancedReducer = useCallback(function (state, action) {\n actionRef.current = action;\n state = getState(state, action.props);\n var changes = reducer(state, action);\n var newState = action.props.stateReducer(state, _extends({}, action, {\n changes: changes\n }));\n return newState;\n }, [reducer]);\n\n var _useReducer = useReducer(enhancedReducer, initialState),\n state = _useReducer[0],\n dispatch = _useReducer[1];\n\n var propsRef = useLatestRef(props);\n var dispatchWithProps = useCallback(function (action) {\n return dispatch(_extends({\n props: propsRef.current\n }, action));\n }, [propsRef]);\n var action = actionRef.current;\n useEffect(function () {\n if (action && prevStateRef.current && prevStateRef.current !== state) {\n callOnChangeProps(action, getState(prevStateRef.current, action.props), state);\n }\n\n prevStateRef.current = state;\n }, [state, props, action]);\n return [state, dispatchWithProps];\n}\n/**\n * Wraps the useEnhancedReducer and applies the controlled prop values before\n * returning the new state.\n *\n * @param {Function} reducer Reducer function from downshift.\n * @param {Object} initialState Initial state of the hook.\n * @param {Object} props The hook props.\n * @returns {Array} An array with the state and an action dispatcher.\n */\n\n\nfunction useControlledReducer$1(reducer, initialState, props) {\n var _useEnhancedReducer = useEnhancedReducer(reducer, initialState, props),\n state = _useEnhancedReducer[0],\n dispatch = _useEnhancedReducer[1];\n\n return [getState(state, props), dispatch];\n}\n\nvar defaultProps$3 = {\n itemToString: itemToString,\n stateReducer: stateReducer,\n getA11ySelectionMessage: getA11ySelectionMessage,\n scrollIntoView: scrollIntoView,\n circularNavigation: false,\n environment:\n /* istanbul ignore next (ssr) */\n typeof window === 'undefined' ? {} : window\n};\n\nfunction getDefaultValue$1(props, propKey, defaultStateValues) {\n if (defaultStateValues === void 0) {\n defaultStateValues = dropdownDefaultStateValues;\n }\n\n var defaultPropKey = \"default\" + capitalizeString(propKey);\n\n if (defaultPropKey in props) {\n return props[defaultPropKey];\n }\n\n return defaultStateValues[propKey];\n}\n\nfunction getInitialValue$1(props, propKey, defaultStateValues) {\n if (defaultStateValues === void 0) {\n defaultStateValues = dropdownDefaultStateValues;\n }\n\n if (propKey in props) {\n return props[propKey];\n }\n\n var initialPropKey = \"initial\" + capitalizeString(propKey);\n\n if (initialPropKey in props) {\n return props[initialPropKey];\n }\n\n return getDefaultValue$1(props, propKey, defaultStateValues);\n}\n\nfunction getInitialState$2(props) {\n var selectedItem = getInitialValue$1(props, 'selectedItem');\n var isOpen = getInitialValue$1(props, 'isOpen');\n var highlightedIndex = getInitialValue$1(props, 'highlightedIndex');\n var inputValue = getInitialValue$1(props, 'inputValue');\n return {\n highlightedIndex: highlightedIndex < 0 && selectedItem && isOpen ? props.items.indexOf(selectedItem) : highlightedIndex,\n isOpen: isOpen,\n selectedItem: selectedItem,\n inputValue: inputValue\n };\n}\n\nfunction getHighlightedIndexOnOpen(props, state, offset, getItemNodeFromIndex) {\n var items = props.items,\n initialHighlightedIndex = props.initialHighlightedIndex,\n defaultHighlightedIndex = props.defaultHighlightedIndex;\n var selectedItem = state.selectedItem,\n highlightedIndex = state.highlightedIndex;\n\n if (items.length === 0) {\n return -1;\n } // initialHighlightedIndex will give value to highlightedIndex on initial state only.\n\n\n if (initialHighlightedIndex !== undefined && highlightedIndex === initialHighlightedIndex) {\n return initialHighlightedIndex;\n }\n\n if (defaultHighlightedIndex !== undefined) {\n return defaultHighlightedIndex;\n }\n\n if (selectedItem) {\n if (offset === 0) {\n return items.indexOf(selectedItem);\n }\n\n return getNextWrappingIndex(offset, items.indexOf(selectedItem), items.length, getItemNodeFromIndex, false);\n }\n\n if (offset === 0) {\n return -1;\n }\n\n return offset < 0 ? items.length - 1 : 0;\n}\n/**\n * Reuse the movement tracking of mouse and touch events.\n *\n * @param {boolean} isOpen Whether the dropdown is open or not.\n * @param {Array<Object>} downshiftElementRefs Downshift element refs to track movement (toggleButton, menu etc.)\n * @param {Object} environment Environment where component/hook exists.\n * @param {Function} handleBlur Handler on blur from mouse or touch.\n * @returns {Object} Ref containing whether mouseDown or touchMove event is happening\n */\n\n\nfunction useMouseAndTouchTracker(isOpen, downshiftElementRefs, environment, handleBlur) {\n var mouseAndTouchTrackersRef = useRef({\n isMouseDown: false,\n isTouchMove: false\n });\n useEffect(function () {\n // The same strategy for checking if a click occurred inside or outside downsift\n // as in downshift.js.\n var onMouseDown = function onMouseDown() {\n mouseAndTouchTrackersRef.current.isMouseDown = true;\n };\n\n var onMouseUp = function onMouseUp(event) {\n mouseAndTouchTrackersRef.current.isMouseDown = false;\n\n if (isOpen && !targetWithinDownshift(event.target, downshiftElementRefs.map(function (ref) {\n return ref.current;\n }), environment)) {\n handleBlur();\n }\n };\n\n var onTouchStart = function onTouchStart() {\n mouseAndTouchTrackersRef.current.isTouchMove = false;\n };\n\n var onTouchMove = function onTouchMove() {\n mouseAndTouchTrackersRef.current.isTouchMove = true;\n };\n\n var onTouchEnd = function onTouchEnd(event) {\n if (isOpen && !mouseAndTouchTrackersRef.current.isTouchMove && !targetWithinDownshift(event.target, downshiftElementRefs.map(function (ref) {\n return ref.current;\n }), environment, false)) {\n handleBlur();\n }\n };\n\n environment.addEventListener('mousedown', onMouseDown);\n environment.addEventListener('mouseup', onMouseUp);\n environment.addEventListener('touchstart', onTouchStart);\n environment.addEventListener('touchmove', onTouchMove);\n environment.addEventListener('touchend', onTouchEnd);\n return function cleanup() {\n environment.removeEventListener('mousedown', onMouseDown);\n environment.removeEventListener('mouseup', onMouseUp);\n environment.removeEventListener('touchstart', onTouchStart);\n environment.removeEventListener('touchmove', onTouchMove);\n environment.removeEventListener('touchend', onTouchEnd);\n }; // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isOpen, environment]);\n return mouseAndTouchTrackersRef;\n}\n/* istanbul ignore next */\n// eslint-disable-next-line import/no-mutable-exports\n\n\nvar useGetterPropsCalledChecker = function useGetterPropsCalledChecker() {\n return noop;\n};\n/**\n * Custom hook that checks if getter props are called correctly.\n *\n * @param {...any} propKeys Getter prop names to be handled.\n * @returns {Function} Setter function called inside getter props to set call information.\n */\n\n/* istanbul ignore next */\n\n\nif (process.env.NODE_ENV !== 'production') {\n useGetterPropsCalledChecker = function useGetterPropsCalledChecker() {\n var isInitialMountRef = useRef(true);\n\n for (var _len = arguments.length, propKeys = new Array(_len), _key = 0; _key < _len; _key++) {\n propKeys[_key] = arguments[_key];\n }\n\n var getterPropsCalledRef = useRef(propKeys.reduce(function (acc, propKey) {\n acc[propKey] = {};\n return acc;\n }, {}));\n useEffect(function () {\n Object.keys(getterPropsCalledRef.current).forEach(function (propKey) {\n var propCallInfo = getterPropsCalledRef.current[propKey];\n\n if (isInitialMountRef.current) {\n if (!Object.keys(propCallInfo).length) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: You forgot to call the \" + propKey + \" getter function on your component / element.\");\n return;\n }\n }\n\n var suppressRefError = propCallInfo.suppressRefError,\n refKey = propCallInfo.refKey,\n elementRef = propCallInfo.elementRef;\n\n if ((!elementRef || !elementRef.current) && !suppressRefError) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: The ref prop \\\"\" + refKey + \"\\\" from \" + propKey + \" was not applied correctly on your element.\");\n }\n });\n isInitialMountRef.current = false;\n });\n var setGetterPropCallInfo = useCallback(function (propKey, suppressRefError, refKey, elementRef) {\n getterPropsCalledRef.current[propKey] = {\n suppressRefError: suppressRefError,\n refKey: refKey,\n elementRef: elementRef\n };\n }, []);\n return setGetterPropCallInfo;\n };\n}\n\nfunction useA11yMessageSetter(getA11yMessage, dependencyArray, _ref2) {\n var isInitialMount = _ref2.isInitialMount,\n highlightedIndex = _ref2.highlightedIndex,\n items = _ref2.items,\n environment = _ref2.environment,\n rest = _objectWithoutPropertiesLoose(_ref2, _excluded$3);\n\n // Sets a11y status message on changes in state.\n useEffect(function () {\n if (isInitialMount || false) {\n return;\n }\n\n updateA11yStatus(function () {\n return getA11yMessage(_extends({\n highlightedIndex: highlightedIndex,\n highlightedItem: items[highlightedIndex],\n resultCount: items.length\n }, rest));\n }, environment.document); // eslint-disable-next-line react-hooks/exhaustive-deps\n }, dependencyArray);\n}\n\nfunction useScrollIntoView(_ref3) {\n var highlightedIndex = _ref3.highlightedIndex,\n isOpen = _ref3.isOpen,\n itemRefs = _ref3.itemRefs,\n getItemNodeFromIndex = _ref3.getItemNodeFromIndex,\n menuElement = _ref3.menuElement,\n scrollIntoViewProp = _ref3.scrollIntoView;\n // used not to scroll on highlight by mouse.\n var shouldScrollRef = useRef(true); // Scroll on highlighted item if change comes from keyboard.\n\n useIsomorphicLayoutEffect(function () {\n if (highlightedIndex < 0 || !isOpen || !Object.keys(itemRefs.current).length) {\n return;\n }\n\n if (shouldScrollRef.current === false) {\n shouldScrollRef.current = true;\n } else {\n scrollIntoViewProp(getItemNodeFromIndex(highlightedIndex), menuElement);\n } // eslint-disable-next-line react-hooks/exhaustive-deps\n\n }, [highlightedIndex]);\n return shouldScrollRef;\n} // eslint-disable-next-line import/no-mutable-exports\n\n\nvar useControlPropsValidator = noop;\n/* istanbul ignore next */\n\nif (process.env.NODE_ENV !== 'production') {\n useControlPropsValidator = function useControlPropsValidator(_ref4) {\n var isInitialMount = _ref4.isInitialMount,\n props = _ref4.props,\n state = _ref4.state;\n // used for checking when props are moving from controlled to uncontrolled.\n var prevPropsRef = useRef(props);\n useEffect(function () {\n if (isInitialMount) {\n return;\n }\n\n validateControlledUnchanged(state, prevPropsRef.current, props);\n prevPropsRef.current = props;\n }, [state, props, isInitialMount]);\n };\n}\n\n/* eslint-disable complexity */\n\nfunction downshiftCommonReducer(state, action, stateChangeTypes) {\n var type = action.type,\n props = action.props;\n var changes;\n\n switch (type) {\n case stateChangeTypes.ItemMouseMove:\n changes = {\n highlightedIndex: action.index\n };\n break;\n\n case stateChangeTypes.MenuMouseLeave:\n changes = {\n highlightedIndex: -1\n };\n break;\n\n case stateChangeTypes.ToggleButtonClick:\n case stateChangeTypes.FunctionToggleMenu:\n changes = {\n isOpen: !state.isOpen,\n highlightedIndex: state.isOpen ? -1 : getHighlightedIndexOnOpen(props, state, 0)\n };\n break;\n\n case stateChangeTypes.FunctionOpenMenu:\n changes = {\n isOpen: true,\n highlightedIndex: getHighlightedIndexOnOpen(props, state, 0)\n };\n break;\n\n case stateChangeTypes.FunctionCloseMenu:\n changes = {\n isOpen: false\n };\n break;\n\n case stateChangeTypes.FunctionSetHighlightedIndex:\n changes = {\n highlightedIndex: action.highlightedIndex\n };\n break;\n\n case stateChangeTypes.FunctionSetInputValue:\n changes = {\n inputValue: action.inputValue\n };\n break;\n\n case stateChangeTypes.FunctionReset:\n changes = {\n highlightedIndex: getDefaultValue$1(props, 'highlightedIndex'),\n isOpen: getDefaultValue$1(props, 'isOpen'),\n selectedItem: getDefaultValue$1(props, 'selectedItem'),\n inputValue: getDefaultValue$1(props, 'inputValue')\n };\n break;\n\n default:\n throw new Error('Reducer called without proper action type.');\n }\n\n return _extends({}, state, changes);\n}\n/* eslint-enable complexity */\n\nfunction getItemIndexByCharacterKey(_a) {\n var keysSoFar = _a.keysSoFar, highlightedIndex = _a.highlightedIndex, items = _a.items, itemToString = _a.itemToString, getItemNodeFromIndex = _a.getItemNodeFromIndex;\n var lowerCasedKeysSoFar = keysSoFar.toLowerCase();\n for (var index = 0; index < items.length; index++) {\n var offsetIndex = (index + highlightedIndex + 1) % items.length;\n var item = items[offsetIndex];\n if (item !== undefined &&\n itemToString(item)\n .toLowerCase()\n .startsWith(lowerCasedKeysSoFar)) {\n var element = getItemNodeFromIndex(offsetIndex);\n if (!(element === null || element === void 0 ? void 0 : element.hasAttribute('disabled'))) {\n return offsetIndex;\n }\n }\n }\n return highlightedIndex;\n}\nvar propTypes$2 = {\n items: PropTypes.array.isRequired,\n itemToString: PropTypes.func,\n getA11yStatusMessage: PropTypes.func,\n getA11ySelectionMessage: PropTypes.func,\n circularNavigation: PropTypes.bool,\n highlightedIndex: PropTypes.number,\n defaultHighlightedIndex: PropTypes.number,\n initialHighlightedIndex: PropTypes.number,\n isOpen: PropTypes.bool,\n defaultIsOpen: PropTypes.bool,\n initialIsOpen: PropTypes.bool,\n selectedItem: PropTypes.any,\n initialSelectedItem: PropTypes.any,\n defaultSelectedItem: PropTypes.any,\n id: PropTypes.string,\n labelId: PropTypes.string,\n menuId: PropTypes.string,\n getItemId: PropTypes.func,\n toggleButtonId: PropTypes.string,\n stateReducer: PropTypes.func,\n onSelectedItemChange: PropTypes.func,\n onHighlightedIndexChange: PropTypes.func,\n onStateChange: PropTypes.func,\n onIsOpenChange: PropTypes.func,\n environment: PropTypes.shape({\n addEventListener: PropTypes.func,\n removeEventListener: PropTypes.func,\n document: PropTypes.shape({\n getElementById: PropTypes.func,\n activeElement: PropTypes.any,\n body: PropTypes.any\n })\n })\n};\n/**\n * Default implementation for status message. Only added when menu is open.\n * Will specift if there are results in the list, and if so, how many,\n * and what keys are relevant.\n *\n * @param {Object} param the downshift state and other relevant properties\n * @return {String} the a11y status message\n */\nfunction getA11yStatusMessage(_a) {\n var isOpen = _a.isOpen, resultCount = _a.resultCount, previousResultCount = _a.previousResultCount;\n if (!isOpen) {\n return '';\n }\n if (!resultCount) {\n return 'No results are available.';\n }\n if (resultCount !== previousResultCount) {\n return resultCount + \" result\" + (resultCount === 1 ? ' is' : 's are') + \" available, use up and down arrow keys to navigate. Press Enter or Space Bar keys to select.\";\n }\n return '';\n}\nvar defaultProps$2 = __assign(__assign({}, defaultProps$3), { getA11yStatusMessage: getA11yStatusMessage });\n// eslint-disable-next-line import/no-mutable-exports\nvar validatePropTypes$2 = noop;\n/* istanbul ignore next */\nif (process.env.NODE_ENV !== 'production') {\n validatePropTypes$2 = function (options, caller) {\n PropTypes.checkPropTypes(propTypes$2, options, 'prop', caller.name);\n };\n}\n\nvar MenuKeyDownArrowDown = process.env.NODE_ENV !== \"production\" ? '__menu_keydown_arrow_down__' : 0;\nvar MenuKeyDownArrowUp = process.env.NODE_ENV !== \"production\" ? '__menu_keydown_arrow_up__' : 1;\nvar MenuKeyDownEscape = process.env.NODE_ENV !== \"production\" ? '__menu_keydown_escape__' : 2;\nvar MenuKeyDownHome = process.env.NODE_ENV !== \"production\" ? '__menu_keydown_home__' : 3;\nvar MenuKeyDownEnd = process.env.NODE_ENV !== \"production\" ? '__menu_keydown_end__' : 4;\nvar MenuKeyDownEnter = process.env.NODE_ENV !== \"production\" ? '__menu_keydown_enter__' : 5;\nvar MenuKeyDownSpaceButton = process.env.NODE_ENV !== \"production\" ? '__menu_keydown_space_button__' : 6;\nvar MenuKeyDownCharacter = process.env.NODE_ENV !== \"production\" ? '__menu_keydown_character__' : 7;\nvar MenuBlur = process.env.NODE_ENV !== \"production\" ? '__menu_blur__' : 8;\nvar MenuMouseLeave$1 = process.env.NODE_ENV !== \"production\" ? '__menu_mouse_leave__' : 9;\nvar ItemMouseMove$1 = process.env.NODE_ENV !== \"production\" ? '__item_mouse_move__' : 10;\nvar ItemClick$1 = process.env.NODE_ENV !== \"production\" ? '__item_click__' : 11;\nvar ToggleButtonClick$1 = process.env.NODE_ENV !== \"production\" ? '__togglebutton_click__' : 12;\nvar ToggleButtonKeyDownArrowDown = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_arrow_down__' : 13;\nvar ToggleButtonKeyDownArrowUp = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_arrow_up__' : 14;\nvar ToggleButtonKeyDownCharacter = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_character__' : 15;\nvar FunctionToggleMenu$1 = process.env.NODE_ENV !== \"production\" ? '__function_toggle_menu__' : 16;\nvar FunctionOpenMenu$1 = process.env.NODE_ENV !== \"production\" ? '__function_open_menu__' : 17;\nvar FunctionCloseMenu$1 = process.env.NODE_ENV !== \"production\" ? '__function_close_menu__' : 18;\nvar FunctionSetHighlightedIndex$1 = process.env.NODE_ENV !== \"production\" ? '__function_set_highlighted_index__' : 19;\nvar FunctionSelectItem$1 = process.env.NODE_ENV !== \"production\" ? '__function_select_item__' : 20;\nvar FunctionSetInputValue$1 = process.env.NODE_ENV !== \"production\" ? '__function_set_input_value__' : 21;\nvar FunctionReset$2 = process.env.NODE_ENV !== \"production\" ? '__function_reset__' : 22;\n\nvar stateChangeTypes$2 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n MenuKeyDownArrowDown: MenuKeyDownArrowDown,\n MenuKeyDownArrowUp: MenuKeyDownArrowUp,\n MenuKeyDownEscape: MenuKeyDownEscape,\n MenuKeyDownHome: MenuKeyDownHome,\n MenuKeyDownEnd: MenuKeyDownEnd,\n MenuKeyDownEnter: MenuKeyDownEnter,\n MenuKeyDownSpaceButton: MenuKeyDownSpaceButton,\n MenuKeyDownCharacter: MenuKeyDownCharacter,\n MenuBlur: MenuBlur,\n MenuMouseLeave: MenuMouseLeave$1,\n ItemMouseMove: ItemMouseMove$1,\n ItemClick: ItemClick$1,\n ToggleButtonClick: ToggleButtonClick$1,\n ToggleButtonKeyDownArrowDown: ToggleButtonKeyDownArrowDown,\n ToggleButtonKeyDownArrowUp: ToggleButtonKeyDownArrowUp,\n ToggleButtonKeyDownCharacter: ToggleButtonKeyDownCharacter,\n FunctionToggleMenu: FunctionToggleMenu$1,\n FunctionOpenMenu: FunctionOpenMenu$1,\n FunctionCloseMenu: FunctionCloseMenu$1,\n FunctionSetHighlightedIndex: FunctionSetHighlightedIndex$1,\n FunctionSelectItem: FunctionSelectItem$1,\n FunctionSetInputValue: FunctionSetInputValue$1,\n FunctionReset: FunctionReset$2\n});\n\n/* eslint-disable complexity */\n\nfunction downshiftSelectReducer(state, action) {\n var type = action.type,\n props = action.props,\n shiftKey = action.shiftKey;\n var changes;\n\n switch (type) {\n case ItemClick$1:\n changes = {\n isOpen: getDefaultValue$1(props, 'isOpen'),\n highlightedIndex: getDefaultValue$1(props, 'highlightedIndex'),\n selectedItem: props.items[action.index]\n };\n break;\n\n case ToggleButtonKeyDownCharacter:\n {\n var lowercasedKey = action.key;\n var inputValue = \"\" + state.inputValue + lowercasedKey;\n var itemIndex = getItemIndexByCharacterKey({\n keysSoFar: inputValue,\n highlightedIndex: state.selectedItem ? props.items.indexOf(state.selectedItem) : -1,\n items: props.items,\n itemToString: props.itemToString,\n getItemNodeFromIndex: action.getItemNodeFromIndex\n });\n changes = _extends({\n inputValue: inputValue\n }, itemIndex >= 0 && {\n selectedItem: props.items[itemIndex]\n });\n }\n break;\n\n case ToggleButtonKeyDownArrowDown:\n changes = {\n highlightedIndex: getHighlightedIndexOnOpen(props, state, 1, action.getItemNodeFromIndex),\n isOpen: true\n };\n break;\n\n case ToggleButtonKeyDownArrowUp:\n changes = {\n highlightedIndex: getHighlightedIndexOnOpen(props, state, -1, action.getItemNodeFromIndex),\n isOpen: true\n };\n break;\n\n case MenuKeyDownEnter:\n case MenuKeyDownSpaceButton:\n changes = _extends({\n isOpen: getDefaultValue$1(props, 'isOpen'),\n highlightedIndex: getDefaultValue$1(props, 'highlightedIndex')\n }, state.highlightedIndex >= 0 && {\n selectedItem: props.items[state.highlightedIndex]\n });\n break;\n\n case MenuKeyDownHome:\n changes = {\n highlightedIndex: getNextNonDisabledIndex(1, 0, props.items.length, action.getItemNodeFromIndex, false)\n };\n break;\n\n case MenuKeyDownEnd:\n changes = {\n highlightedIndex: getNextNonDisabledIndex(-1, props.items.length - 1, props.items.length, action.getItemNodeFromIndex, false)\n };\n break;\n\n case MenuKeyDownEscape:\n changes = {\n isOpen: false,\n highlightedIndex: -1\n };\n break;\n\n case MenuBlur:\n changes = {\n isOpen: false,\n highlightedIndex: -1\n };\n break;\n\n case MenuKeyDownCharacter:\n {\n var _lowercasedKey = action.key;\n\n var _inputValue = \"\" + state.inputValue + _lowercasedKey;\n\n var highlightedIndex = getItemIndexByCharacterKey({\n keysSoFar: _inputValue,\n highlightedIndex: state.highlightedIndex,\n items: props.items,\n itemToString: props.itemToString,\n getItemNodeFromIndex: action.getItemNodeFromIndex\n });\n changes = _extends({\n inputValue: _inputValue\n }, highlightedIndex >= 0 && {\n highlightedIndex: highlightedIndex\n });\n }\n break;\n\n case MenuKeyDownArrowDown:\n changes = {\n highlightedIndex: getNextWrappingIndex(shiftKey ? 5 : 1, state.highlightedIndex, props.items.length, action.getItemNodeFromIndex, props.circularNavigation)\n };\n break;\n\n case MenuKeyDownArrowUp:\n changes = {\n highlightedIndex: getNextWrappingIndex(shiftKey ? -5 : -1, state.highlightedIndex, props.items.length, action.getItemNodeFromIndex, props.circularNavigation)\n };\n break;\n\n case FunctionSelectItem$1:\n changes = {\n selectedItem: action.selectedItem\n };\n break;\n\n default:\n return downshiftCommonReducer(state, action, stateChangeTypes$2);\n }\n\n return _extends({}, state, changes);\n}\n/* eslint-enable complexity */\n\nvar _excluded$2 = [\"onMouseLeave\", \"refKey\", \"onKeyDown\", \"onBlur\", \"ref\"],\n _excluded2$2 = [\"onClick\", \"onKeyDown\", \"refKey\", \"ref\"],\n _excluded3$1 = [\"item\", \"index\", \"onMouseMove\", \"onClick\", \"refKey\", \"ref\"];\nuseSelect.stateChangeTypes = stateChangeTypes$2;\n\nfunction useSelect(userProps) {\n if (userProps === void 0) {\n userProps = {};\n }\n\n validatePropTypes$2(userProps, useSelect); // Props defaults and destructuring.\n\n var props = _extends({}, defaultProps$2, userProps);\n\n var items = props.items,\n scrollIntoView = props.scrollIntoView,\n environment = props.environment,\n initialIsOpen = props.initialIsOpen,\n defaultIsOpen = props.defaultIsOpen,\n itemToString = props.itemToString,\n getA11ySelectionMessage = props.getA11ySelectionMessage,\n getA11yStatusMessage = props.getA11yStatusMessage; // Initial state depending on controlled props.\n\n var initialState = getInitialState$2(props);\n\n var _useControlledReducer = useControlledReducer$1(downshiftSelectReducer, initialState, props),\n state = _useControlledReducer[0],\n dispatch = _useControlledReducer[1];\n\n var isOpen = state.isOpen,\n highlightedIndex = state.highlightedIndex,\n selectedItem = state.selectedItem,\n inputValue = state.inputValue; // Element efs.\n\n var toggleButtonRef = useRef(null);\n var menuRef = useRef(null);\n var itemRefs = useRef({}); // used not to trigger menu blur action in some scenarios.\n\n var shouldBlurRef = useRef(true); // used to keep the inputValue clearTimeout object between renders.\n\n var clearTimeoutRef = useRef(null); // prevent id re-generation between renders.\n\n var elementIds = useElementIds(props); // used to keep track of how many items we had on previous cycle.\n\n var previousResultCountRef = useRef();\n var isInitialMountRef = useRef(true); // utility callback to get item element.\n\n var latest = useLatestRef({\n state: state,\n props: props\n }); // Some utils.\n\n var getItemNodeFromIndex = useCallback(function (index) {\n return itemRefs.current[elementIds.getItemId(index)];\n }, [elementIds]); // Effects.\n // Sets a11y status message on changes in state.\n\n useA11yMessageSetter(getA11yStatusMessage, [isOpen, highlightedIndex, inputValue, items], _extends({\n isInitialMount: isInitialMountRef.current,\n previousResultCount: previousResultCountRef.current,\n items: items,\n environment: environment,\n itemToString: itemToString\n }, state)); // Sets a11y status message on changes in selectedItem.\n\n useA11yMessageSetter(getA11ySelectionMessage, [selectedItem], _extends({\n isInitialMount: isInitialMountRef.current,\n previousResultCount: previousResultCountRef.current,\n items: items,\n environment: environment,\n itemToString: itemToString\n }, state)); // Scroll on highlighted item if change comes from keyboard.\n\n var shouldScrollRef = useScrollIntoView({\n menuElement: menuRef.current,\n highlightedIndex: highlightedIndex,\n isOpen: isOpen,\n itemRefs: itemRefs,\n scrollIntoView: scrollIntoView,\n getItemNodeFromIndex: getItemNodeFromIndex\n }); // Sets cleanup for the keysSoFar callback, debounded after 500ms.\n\n useEffect(function () {\n // init the clean function here as we need access to dispatch.\n clearTimeoutRef.current = debounce(function (outerDispatch) {\n outerDispatch({\n type: FunctionSetInputValue$1,\n inputValue: ''\n });\n }, 500); // Cancel any pending debounced calls on mount\n\n return function () {\n clearTimeoutRef.current.cancel();\n };\n }, []); // Invokes the keysSoFar callback set up above.\n\n useEffect(function () {\n if (!inputValue) {\n return;\n }\n\n clearTimeoutRef.current(dispatch);\n }, [dispatch, inputValue]);\n useControlPropsValidator({\n isInitialMount: isInitialMountRef.current,\n props: props,\n state: state\n });\n /* Controls the focus on the menu or the toggle button. */\n\n useEffect(function () {\n // Don't focus menu on first render.\n if (isInitialMountRef.current) {\n // Unless it was initialised as open.\n if ((initialIsOpen || defaultIsOpen || isOpen) && menuRef.current) {\n menuRef.current.focus();\n }\n\n return;\n } // Focus menu on open.\n\n\n if (isOpen) {\n // istanbul ignore else\n if (menuRef.current) {\n menuRef.current.focus();\n }\n\n return;\n } // Focus toggleButton on close, but not if it was closed with (Shift+)Tab.\n\n\n if (environment.document.activeElement === menuRef.current) {\n // istanbul ignore else\n if (toggleButtonRef.current) {\n shouldBlurRef.current = false;\n toggleButtonRef.current.focus();\n }\n } // eslint-disable-next-line react-hooks/exhaustive-deps\n\n }, [isOpen]);\n useEffect(function () {\n if (isInitialMountRef.current) {\n return;\n }\n\n previousResultCountRef.current = items.length;\n }); // Add mouse/touch events to document.\n\n var mouseAndTouchTrackersRef = useMouseAndTouchTracker(isOpen, [menuRef, toggleButtonRef], environment, function () {\n dispatch({\n type: MenuBlur\n });\n });\n var setGetterPropCallInfo = useGetterPropsCalledChecker('getMenuProps', 'getToggleButtonProps'); // Make initial ref false.\n\n useEffect(function () {\n isInitialMountRef.current = false;\n }, []); // Reset itemRefs on close.\n\n useEffect(function () {\n if (!isOpen) {\n itemRefs.current = {};\n }\n }, [isOpen]); // Event handler functions.\n\n var toggleButtonKeyDownHandlers = useMemo(function () {\n return {\n ArrowDown: function ArrowDown(event) {\n event.preventDefault();\n dispatch({\n type: ToggleButtonKeyDownArrowDown,\n getItemNodeFromIndex: getItemNodeFromIndex,\n shiftKey: event.shiftKey\n });\n },\n ArrowUp: function ArrowUp(event) {\n event.preventDefault();\n dispatch({\n type: ToggleButtonKeyDownArrowUp,\n getItemNodeFromIndex: getItemNodeFromIndex,\n shiftKey: event.shiftKey\n });\n }\n };\n }, [dispatch, getItemNodeFromIndex]);\n var menuKeyDownHandlers = useMemo(function () {\n return {\n ArrowDown: function ArrowDown(event) {\n event.preventDefault();\n dispatch({\n type: MenuKeyDownArrowDown,\n getItemNodeFromIndex: getItemNodeFromIndex,\n shiftKey: event.shiftKey\n });\n },\n ArrowUp: function ArrowUp(event) {\n event.preventDefault();\n dispatch({\n type: MenuKeyDownArrowUp,\n getItemNodeFromIndex: getItemNodeFromIndex,\n shiftKey: event.shiftKey\n });\n },\n Home: function Home(event) {\n event.preventDefault();\n dispatch({\n type: MenuKeyDownHome,\n getItemNodeFromIndex: getItemNodeFromIndex\n });\n },\n End: function End(event) {\n event.preventDefault();\n dispatch({\n type: MenuKeyDownEnd,\n getItemNodeFromIndex: getItemNodeFromIndex\n });\n },\n Escape: function Escape() {\n dispatch({\n type: MenuKeyDownEscape\n });\n },\n Enter: function Enter(event) {\n event.preventDefault();\n dispatch({\n type: MenuKeyDownEnter\n });\n },\n ' ': function _(event) {\n event.preventDefault();\n dispatch({\n type: MenuKeyDownSpaceButton\n });\n }\n };\n }, [dispatch, getItemNodeFromIndex]); // Action functions.\n\n var toggleMenu = useCallback(function () {\n dispatch({\n type: FunctionToggleMenu$1\n });\n }, [dispatch]);\n var closeMenu = useCallback(function () {\n dispatch({\n type: FunctionCloseMenu$1\n });\n }, [dispatch]);\n var openMenu = useCallback(function () {\n dispatch({\n type: FunctionOpenMenu$1\n });\n }, [dispatch]);\n var setHighlightedIndex = useCallback(function (newHighlightedIndex) {\n dispatch({\n type: FunctionSetHighlightedIndex$1,\n highlightedIndex: newHighlightedIndex\n });\n }, [dispatch]);\n var selectItem = useCallback(function (newSelectedItem) {\n dispatch({\n type: FunctionSelectItem$1,\n selectedItem: newSelectedItem\n });\n }, [dispatch]);\n var reset = useCallback(function () {\n dispatch({\n type: FunctionReset$2\n });\n }, [dispatch]);\n var setInputValue = useCallback(function (newInputValue) {\n dispatch({\n type: FunctionSetInputValue$1,\n inputValue: newInputValue\n });\n }, [dispatch]); // Getter functions.\n\n var getLabelProps = useCallback(function (labelProps) {\n return _extends({\n id: elementIds.labelId,\n htmlFor: elementIds.toggleButtonId\n }, labelProps);\n }, [elementIds]);\n var getMenuProps = useCallback(function (_temp, _temp2) {\n var _extends2;\n\n var _ref = _temp === void 0 ? {} : _temp,\n onMouseLeave = _ref.onMouseLeave,\n _ref$refKey = _ref.refKey,\n refKey = _ref$refKey === void 0 ? 'ref' : _ref$refKey,\n onKeyDown = _ref.onKeyDown,\n onBlur = _ref.onBlur,\n ref = _ref.ref,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$2);\n\n var _ref2 = _temp2 === void 0 ? {} : _temp2,\n _ref2$suppressRefErro = _ref2.suppressRefError,\n suppressRefError = _ref2$suppressRefErro === void 0 ? false : _ref2$suppressRefErro;\n\n var latestState = latest.current.state;\n\n var menuHandleKeyDown = function menuHandleKeyDown(event) {\n var key = normalizeArrowKey(event);\n\n if (key && menuKeyDownHandlers[key]) {\n menuKeyDownHandlers[key](event);\n } else if (isAcceptedCharacterKey(key)) {\n dispatch({\n type: MenuKeyDownCharacter,\n key: key,\n getItemNodeFromIndex: getItemNodeFromIndex\n });\n }\n };\n\n var menuHandleBlur = function menuHandleBlur() {\n // if the blur was a result of selection, we don't trigger this action.\n if (shouldBlurRef.current === false) {\n shouldBlurRef.current = true;\n return;\n }\n\n var shouldBlur = !mouseAndTouchTrackersRef.current.isMouseDown;\n /* istanbul ignore else */\n\n if (shouldBlur) {\n dispatch({\n type: MenuBlur\n });\n }\n };\n\n var menuHandleMouseLeave = function menuHandleMouseLeave() {\n dispatch({\n type: MenuMouseLeave$1\n });\n };\n\n setGetterPropCallInfo('getMenuProps', suppressRefError, refKey, menuRef);\n return _extends((_extends2 = {}, _extends2[refKey] = handleRefs(ref, function (menuNode) {\n menuRef.current = menuNode;\n }), _extends2.id = elementIds.menuId, _extends2.role = 'listbox', _extends2['aria-labelledby'] = elementIds.labelId, _extends2.tabIndex = -1, _extends2), latestState.isOpen && latestState.highlightedIndex > -1 && {\n 'aria-activedescendant': elementIds.getItemId(latestState.highlightedIndex)\n }, {\n onMouseLeave: callAllEventHandlers(onMouseLeave, menuHandleMouseLeave),\n onKeyDown: callAllEventHandlers(onKeyDown, menuHandleKeyDown),\n onBlur: callAllEventHandlers(onBlur, menuHandleBlur)\n }, rest);\n }, [dispatch, latest, menuKeyDownHandlers, mouseAndTouchTrackersRef, setGetterPropCallInfo, elementIds, getItemNodeFromIndex]);\n var getToggleButtonProps = useCallback(function (_temp3, _temp4) {\n var _extends3;\n\n var _ref3 = _temp3 === void 0 ? {} : _temp3,\n onClick = _ref3.onClick,\n onKeyDown = _ref3.onKeyDown,\n _ref3$refKey = _ref3.refKey,\n refKey = _ref3$refKey === void 0 ? 'ref' : _ref3$refKey,\n ref = _ref3.ref,\n rest = _objectWithoutPropertiesLoose(_ref3, _excluded2$2);\n\n var _ref4 = _temp4 === void 0 ? {} : _temp4,\n _ref4$suppressRefErro = _ref4.suppressRefError,\n suppressRefError = _ref4$suppressRefErro === void 0 ? false : _ref4$suppressRefErro;\n\n var toggleButtonHandleClick = function toggleButtonHandleClick() {\n dispatch({\n type: ToggleButtonClick$1\n });\n };\n\n var toggleButtonHandleKeyDown = function toggleButtonHandleKeyDown(event) {\n var key = normalizeArrowKey(event);\n\n if (key && toggleButtonKeyDownHandlers[key]) {\n toggleButtonKeyDownHandlers[key](event);\n } else if (isAcceptedCharacterKey(key)) {\n dispatch({\n type: ToggleButtonKeyDownCharacter,\n key: key,\n getItemNodeFromIndex: getItemNodeFromIndex\n });\n }\n };\n\n var toggleProps = _extends((_extends3 = {}, _extends3[refKey] = handleRefs(ref, function (toggleButtonNode) {\n toggleButtonRef.current = toggleButtonNode;\n }), _extends3.id = elementIds.toggleButtonId, _extends3['aria-haspopup'] = 'listbox', _extends3['aria-expanded'] = latest.current.state.isOpen, _extends3['aria-labelledby'] = elementIds.labelId + \" \" + elementIds.toggleButtonId, _extends3), rest);\n\n if (!rest.disabled) {\n toggleProps.onClick = callAllEventHandlers(onClick, toggleButtonHandleClick);\n toggleProps.onKeyDown = callAllEventHandlers(onKeyDown, toggleButtonHandleKeyDown);\n }\n\n setGetterPropCallInfo('getToggleButtonProps', suppressRefError, refKey, toggleButtonRef);\n return toggleProps;\n }, [dispatch, latest, toggleButtonKeyDownHandlers, setGetterPropCallInfo, elementIds, getItemNodeFromIndex]);\n var getItemProps = useCallback(function (_temp5) {\n var _extends4;\n\n var _ref5 = _temp5 === void 0 ? {} : _temp5,\n item = _ref5.item,\n index = _ref5.index,\n onMouseMove = _ref5.onMouseMove,\n onClick = _ref5.onClick,\n _ref5$refKey = _ref5.refKey,\n refKey = _ref5$refKey === void 0 ? 'ref' : _ref5$refKey,\n ref = _ref5.ref,\n rest = _objectWithoutPropertiesLoose(_ref5, _excluded3$1);\n\n var _latest$current = latest.current,\n latestState = _latest$current.state,\n latestProps = _latest$current.props;\n\n var itemHandleMouseMove = function itemHandleMouseMove() {\n if (index === latestState.highlightedIndex) {\n return;\n }\n\n shouldScrollRef.current = false;\n dispatch({\n type: ItemMouseMove$1,\n index: index\n });\n };\n\n var itemHandleClick = function itemHandleClick() {\n dispatch({\n type: ItemClick$1,\n index: index\n });\n };\n\n var itemIndex = getItemIndex(index, item, latestProps.items);\n\n if (itemIndex < 0) {\n throw new Error('Pass either item or item index in getItemProps!');\n }\n\n var itemProps = _extends((_extends4 = {\n role: 'option',\n 'aria-selected': \"\" + (itemIndex === latestState.highlightedIndex),\n id: elementIds.getItemId(itemIndex)\n }, _extends4[refKey] = handleRefs(ref, function (itemNode) {\n if (itemNode) {\n itemRefs.current[elementIds.getItemId(itemIndex)] = itemNode;\n }\n }), _extends4), rest);\n\n if (!rest.disabled) {\n itemProps.onMouseMove = callAllEventHandlers(onMouseMove, itemHandleMouseMove);\n itemProps.onClick = callAllEventHandlers(onClick, itemHandleClick);\n }\n\n return itemProps;\n }, [dispatch, latest, shouldScrollRef, elementIds]);\n return {\n // prop getters.\n getToggleButtonProps: getToggleButtonProps,\n getLabelProps: getLabelProps,\n getMenuProps: getMenuProps,\n getItemProps: getItemProps,\n // actions.\n toggleMenu: toggleMenu,\n openMenu: openMenu,\n closeMenu: closeMenu,\n setHighlightedIndex: setHighlightedIndex,\n selectItem: selectItem,\n reset: reset,\n setInputValue: setInputValue,\n // state.\n highlightedIndex: highlightedIndex,\n isOpen: isOpen,\n selectedItem: selectedItem,\n inputValue: inputValue\n };\n}\n\nvar InputKeyDownArrowDown = process.env.NODE_ENV !== \"production\" ? '__input_keydown_arrow_down__' : 0;\nvar InputKeyDownArrowUp = process.env.NODE_ENV !== \"production\" ? '__input_keydown_arrow_up__' : 1;\nvar InputKeyDownEscape = process.env.NODE_ENV !== \"production\" ? '__input_keydown_escape__' : 2;\nvar InputKeyDownHome = process.env.NODE_ENV !== \"production\" ? '__input_keydown_home__' : 3;\nvar InputKeyDownEnd = process.env.NODE_ENV !== \"production\" ? '__input_keydown_end__' : 4;\nvar InputKeyDownEnter = process.env.NODE_ENV !== \"production\" ? '__input_keydown_enter__' : 5;\nvar InputChange = process.env.NODE_ENV !== \"production\" ? '__input_change__' : 6;\nvar InputBlur = process.env.NODE_ENV !== \"production\" ? '__input_blur__' : 7;\nvar MenuMouseLeave = process.env.NODE_ENV !== \"production\" ? '__menu_mouse_leave__' : 8;\nvar ItemMouseMove = process.env.NODE_ENV !== \"production\" ? '__item_mouse_move__' : 9;\nvar ItemClick = process.env.NODE_ENV !== \"production\" ? '__item_click__' : 10;\nvar ToggleButtonClick = process.env.NODE_ENV !== \"production\" ? '__togglebutton_click__' : 11;\nvar FunctionToggleMenu = process.env.NODE_ENV !== \"production\" ? '__function_toggle_menu__' : 12;\nvar FunctionOpenMenu = process.env.NODE_ENV !== \"production\" ? '__function_open_menu__' : 13;\nvar FunctionCloseMenu = process.env.NODE_ENV !== \"production\" ? '__function_close_menu__' : 14;\nvar FunctionSetHighlightedIndex = process.env.NODE_ENV !== \"production\" ? '__function_set_highlighted_index__' : 15;\nvar FunctionSelectItem = process.env.NODE_ENV !== \"production\" ? '__function_select_item__' : 16;\nvar FunctionSetInputValue = process.env.NODE_ENV !== \"production\" ? '__function_set_input_value__' : 17;\nvar FunctionReset$1 = process.env.NODE_ENV !== \"production\" ? '__function_reset__' : 18;\nvar ControlledPropUpdatedSelectedItem = process.env.NODE_ENV !== \"production\" ? '__controlled_prop_updated_selected_item__' : 19;\n\nvar stateChangeTypes$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n InputKeyDownArrowDown: InputKeyDownArrowDown,\n InputKeyDownArrowUp: InputKeyDownArrowUp,\n InputKeyDownEscape: InputKeyDownEscape,\n InputKeyDownHome: InputKeyDownHome,\n InputKeyDownEnd: InputKeyDownEnd,\n InputKeyDownEnter: InputKeyDownEnter,\n InputChange: InputChange,\n InputBlur: InputBlur,\n MenuMouseLeave: MenuMouseLeave,\n ItemMouseMove: ItemMouseMove,\n ItemClick: ItemClick,\n ToggleButtonClick: ToggleButtonClick,\n FunctionToggleMenu: FunctionToggleMenu,\n FunctionOpenMenu: FunctionOpenMenu,\n FunctionCloseMenu: FunctionCloseMenu,\n FunctionSetHighlightedIndex: FunctionSetHighlightedIndex,\n FunctionSelectItem: FunctionSelectItem,\n FunctionSetInputValue: FunctionSetInputValue,\n FunctionReset: FunctionReset$1,\n ControlledPropUpdatedSelectedItem: ControlledPropUpdatedSelectedItem\n});\n\nfunction getInitialState$1(props) {\n var initialState = getInitialState$2(props);\n var selectedItem = initialState.selectedItem;\n var inputValue = initialState.inputValue;\n\n if (inputValue === '' && selectedItem && props.defaultInputValue === undefined && props.initialInputValue === undefined && props.inputValue === undefined) {\n inputValue = props.itemToString(selectedItem);\n }\n\n return _extends({}, initialState, {\n inputValue: inputValue\n });\n}\n\nvar propTypes$1 = {\n items: PropTypes.array.isRequired,\n itemToString: PropTypes.func,\n getA11yStatusMessage: PropTypes.func,\n getA11ySelectionMessage: PropTypes.func,\n circularNavigation: PropTypes.bool,\n highlightedIndex: PropTypes.number,\n defaultHighlightedIndex: PropTypes.number,\n initialHighlightedIndex: PropTypes.number,\n isOpen: PropTypes.bool,\n defaultIsOpen: PropTypes.bool,\n initialIsOpen: PropTypes.bool,\n selectedItem: PropTypes.any,\n initialSelectedItem: PropTypes.any,\n defaultSelectedItem: PropTypes.any,\n inputValue: PropTypes.string,\n defaultInputValue: PropTypes.string,\n initialInputValue: PropTypes.string,\n id: PropTypes.string,\n labelId: PropTypes.string,\n menuId: PropTypes.string,\n getItemId: PropTypes.func,\n inputId: PropTypes.string,\n toggleButtonId: PropTypes.string,\n stateReducer: PropTypes.func,\n onSelectedItemChange: PropTypes.func,\n onHighlightedIndexChange: PropTypes.func,\n onStateChange: PropTypes.func,\n onIsOpenChange: PropTypes.func,\n onInputValueChange: PropTypes.func,\n environment: PropTypes.shape({\n addEventListener: PropTypes.func,\n removeEventListener: PropTypes.func,\n document: PropTypes.shape({\n getElementById: PropTypes.func,\n activeElement: PropTypes.any,\n body: PropTypes.any\n })\n })\n};\n/**\n * The useCombobox version of useControlledReducer, which also\n * checks if the controlled prop selectedItem changed between\n * renders. If so, it will also update inputValue with its\n * string equivalent. It uses the common useEnhancedReducer to\n * compute the rest of the state.\n *\n * @param {Function} reducer Reducer function from downshift.\n * @param {Object} initialState Initial state of the hook.\n * @param {Object} props The hook props.\n * @returns {Array} An array with the state and an action dispatcher.\n */\n\nfunction useControlledReducer(reducer, initialState, props) {\n var previousSelectedItemRef = useRef();\n\n var _useEnhancedReducer = useEnhancedReducer(reducer, initialState, props),\n state = _useEnhancedReducer[0],\n dispatch = _useEnhancedReducer[1]; // ToDo: if needed, make same approach as selectedItemChanged from Downshift.\n\n\n useEffect(function () {\n if (isControlledProp(props, 'selectedItem')) {\n if (previousSelectedItemRef.current !== props.selectedItem) {\n dispatch({\n type: ControlledPropUpdatedSelectedItem,\n inputValue: props.itemToString(props.selectedItem)\n });\n }\n\n previousSelectedItemRef.current = state.selectedItem === previousSelectedItemRef.current ? props.selectedItem : state.selectedItem;\n }\n });\n return [getState(state, props), dispatch];\n} // eslint-disable-next-line import/no-mutable-exports\n\n\nvar validatePropTypes$1 = noop;\n/* istanbul ignore next */\n\nif (process.env.NODE_ENV !== 'production') {\n validatePropTypes$1 = function validatePropTypes(options, caller) {\n PropTypes.checkPropTypes(propTypes$1, options, 'prop', caller.name);\n };\n}\n\nvar defaultProps$1 = _extends({}, defaultProps$3, {\n getA11yStatusMessage: getA11yStatusMessage$1,\n circularNavigation: true\n});\n\n/* eslint-disable complexity */\n\nfunction downshiftUseComboboxReducer(state, action) {\n var type = action.type,\n props = action.props,\n shiftKey = action.shiftKey;\n var changes;\n\n switch (type) {\n case ItemClick:\n changes = {\n isOpen: getDefaultValue$1(props, 'isOpen'),\n highlightedIndex: getDefaultValue$1(props, 'highlightedIndex'),\n selectedItem: props.items[action.index],\n inputValue: props.itemToString(props.items[action.index])\n };\n break;\n\n case InputKeyDownArrowDown:\n if (state.isOpen) {\n changes = {\n highlightedIndex: getNextWrappingIndex(shiftKey ? 5 : 1, state.highlightedIndex, props.items.length, action.getItemNodeFromIndex, props.circularNavigation)\n };\n } else {\n changes = {\n highlightedIndex: getHighlightedIndexOnOpen(props, state, 1, action.getItemNodeFromIndex),\n isOpen: props.items.length >= 0\n };\n }\n\n break;\n\n case InputKeyDownArrowUp:\n if (state.isOpen) {\n changes = {\n highlightedIndex: getNextWrappingIndex(shiftKey ? -5 : -1, state.highlightedIndex, props.items.length, action.getItemNodeFromIndex, props.circularNavigation)\n };\n } else {\n changes = {\n highlightedIndex: getHighlightedIndexOnOpen(props, state, -1, action.getItemNodeFromIndex),\n isOpen: props.items.length >= 0\n };\n }\n\n break;\n\n case InputKeyDownEnter:\n changes = _extends({}, state.isOpen && state.highlightedIndex >= 0 && {\n selectedItem: props.items[state.highlightedIndex],\n isOpen: getDefaultValue$1(props, 'isOpen'),\n highlightedIndex: getDefaultValue$1(props, 'highlightedIndex'),\n inputValue: props.itemToString(props.items[state.highlightedIndex])\n });\n break;\n\n case InputKeyDownEscape:\n changes = _extends({\n isOpen: false,\n highlightedIndex: -1\n }, !state.isOpen && {\n selectedItem: null,\n inputValue: ''\n });\n break;\n\n case InputKeyDownHome:\n changes = {\n highlightedIndex: getNextNonDisabledIndex(1, 0, props.items.length, action.getItemNodeFromIndex, false)\n };\n break;\n\n case InputKeyDownEnd:\n changes = {\n highlightedIndex: getNextNonDisabledIndex(-1, props.items.length - 1, props.items.length, action.getItemNodeFromIndex, false)\n };\n break;\n\n case InputBlur:\n changes = _extends({\n isOpen: false,\n highlightedIndex: -1\n }, state.highlightedIndex >= 0 && action.selectItem && {\n selectedItem: props.items[state.highlightedIndex],\n inputValue: props.itemToString(props.items[state.highlightedIndex])\n });\n break;\n\n case InputChange:\n changes = {\n isOpen: true,\n highlightedIndex: getDefaultValue$1(props, 'highlightedIndex'),\n inputValue: action.inputValue\n };\n break;\n\n case FunctionSelectItem:\n changes = {\n selectedItem: action.selectedItem,\n inputValue: props.itemToString(action.selectedItem)\n };\n break;\n\n case ControlledPropUpdatedSelectedItem:\n changes = {\n inputValue: action.inputValue\n };\n break;\n\n default:\n return downshiftCommonReducer(state, action, stateChangeTypes$1);\n }\n\n return _extends({}, state, changes);\n}\n/* eslint-enable complexity */\n\nvar _excluded$1 = [\"onMouseLeave\", \"refKey\", \"ref\"],\n _excluded2$1 = [\"item\", \"index\", \"refKey\", \"ref\", \"onMouseMove\", \"onClick\", \"onPress\"],\n _excluded3 = [\"onClick\", \"onPress\", \"refKey\", \"ref\"],\n _excluded4 = [\"onKeyDown\", \"onChange\", \"onInput\", \"onBlur\", \"onChangeText\", \"refKey\", \"ref\"],\n _excluded5 = [\"refKey\", \"ref\"];\nuseCombobox.stateChangeTypes = stateChangeTypes$1;\n\nfunction useCombobox(userProps) {\n if (userProps === void 0) {\n userProps = {};\n }\n\n validatePropTypes$1(userProps, useCombobox); // Props defaults and destructuring.\n\n var props = _extends({}, defaultProps$1, userProps);\n\n var initialIsOpen = props.initialIsOpen,\n defaultIsOpen = props.defaultIsOpen,\n items = props.items,\n scrollIntoView = props.scrollIntoView,\n environment = props.environment,\n getA11yStatusMessage = props.getA11yStatusMessage,\n getA11ySelectionMessage = props.getA11ySelectionMessage,\n itemToString = props.itemToString; // Initial state depending on controlled props.\n\n var initialState = getInitialState$1(props);\n\n var _useControlledReducer = useControlledReducer(downshiftUseComboboxReducer, initialState, props),\n state = _useControlledReducer[0],\n dispatch = _useControlledReducer[1];\n\n var isOpen = state.isOpen,\n highlightedIndex = state.highlightedIndex,\n selectedItem = state.selectedItem,\n inputValue = state.inputValue; // Element refs.\n\n var menuRef = useRef(null);\n var itemRefs = useRef({});\n var inputRef = useRef(null);\n var toggleButtonRef = useRef(null);\n var comboboxRef = useRef(null);\n var isInitialMountRef = useRef(true); // prevent id re-generation between renders.\n\n var elementIds = useElementIds(props); // used to keep track of how many items we had on previous cycle.\n\n var previousResultCountRef = useRef(); // utility callback to get item element.\n\n var latest = useLatestRef({\n state: state,\n props: props\n });\n var getItemNodeFromIndex = useCallback(function (index) {\n return itemRefs.current[elementIds.getItemId(index)];\n }, [elementIds]); // Effects.\n // Sets a11y status message on changes in state.\n\n useA11yMessageSetter(getA11yStatusMessage, [isOpen, highlightedIndex, inputValue, items], _extends({\n isInitialMount: isInitialMountRef.current,\n previousResultCount: previousResultCountRef.current,\n items: items,\n environment: environment,\n itemToString: itemToString\n }, state)); // Sets a11y status message on changes in selectedItem.\n\n useA11yMessageSetter(getA11ySelectionMessage, [selectedItem], _extends({\n isInitialMount: isInitialMountRef.current,\n previousResultCount: previousResultCountRef.current,\n items: items,\n environment: environment,\n itemToString: itemToString\n }, state)); // Scroll on highlighted item if change comes from keyboard.\n\n var shouldScrollRef = useScrollIntoView({\n menuElement: menuRef.current,\n highlightedIndex: highlightedIndex,\n isOpen: isOpen,\n itemRefs: itemRefs,\n scrollIntoView: scrollIntoView,\n getItemNodeFromIndex: getItemNodeFromIndex\n });\n useControlPropsValidator({\n isInitialMount: isInitialMountRef.current,\n props: props,\n state: state\n }); // Focus the input on first render if required.\n\n useEffect(function () {\n var focusOnOpen = initialIsOpen || defaultIsOpen || isOpen;\n\n if (focusOnOpen && inputRef.current) {\n inputRef.current.focus();\n } // eslint-disable-next-line react-hooks/exhaustive-deps\n\n }, []);\n useEffect(function () {\n if (isInitialMountRef.current) {\n return;\n }\n\n previousResultCountRef.current = items.length;\n }); // Add mouse/touch events to document.\n\n var mouseAndTouchTrackersRef = useMouseAndTouchTracker(isOpen, [comboboxRef, menuRef, toggleButtonRef], environment, function () {\n dispatch({\n type: InputBlur,\n selectItem: false\n });\n });\n var setGetterPropCallInfo = useGetterPropsCalledChecker('getInputProps', 'getComboboxProps', 'getMenuProps'); // Make initial ref false.\n\n useEffect(function () {\n isInitialMountRef.current = false;\n }, []); // Reset itemRefs on close.\n\n useEffect(function () {\n if (!isOpen) {\n itemRefs.current = {};\n }\n }, [isOpen]);\n /* Event handler functions */\n\n var inputKeyDownHandlers = useMemo(function () {\n return {\n ArrowDown: function ArrowDown(event) {\n event.preventDefault();\n dispatch({\n type: InputKeyDownArrowDown,\n shiftKey: event.shiftKey,\n getItemNodeFromIndex: getItemNodeFromIndex\n });\n },\n ArrowUp: function ArrowUp(event) {\n event.preventDefault();\n dispatch({\n type: InputKeyDownArrowUp,\n shiftKey: event.shiftKey,\n getItemNodeFromIndex: getItemNodeFromIndex\n });\n },\n Home: function Home(event) {\n if (!latest.current.state.isOpen) {\n return;\n }\n\n event.preventDefault();\n dispatch({\n type: InputKeyDownHome,\n getItemNodeFromIndex: getItemNodeFromIndex\n });\n },\n End: function End(event) {\n if (!latest.current.state.isOpen) {\n return;\n }\n\n event.preventDefault();\n dispatch({\n type: InputKeyDownEnd,\n getItemNodeFromIndex: getItemNodeFromIndex\n });\n },\n Escape: function Escape() {\n var latestState = latest.current.state;\n\n if (latestState.isOpen || latestState.inputValue || latestState.selectedItem || latestState.highlightedIndex > -1) {\n dispatch({\n type: InputKeyDownEscape\n });\n }\n },\n Enter: function Enter(event) {\n var latestState = latest.current.state; // if closed or no highlighted index, do nothing.\n\n if (!latestState.isOpen || latestState.highlightedIndex < 0 || event.which === 229 // if IME composing, wait for next Enter keydown event.\n ) {\n return;\n }\n\n event.preventDefault();\n dispatch({\n type: InputKeyDownEnter,\n getItemNodeFromIndex: getItemNodeFromIndex\n });\n }\n };\n }, [dispatch, latest, getItemNodeFromIndex]); // Getter props.\n\n var getLabelProps = useCallback(function (labelProps) {\n return _extends({\n id: elementIds.labelId,\n htmlFor: elementIds.inputId\n }, labelProps);\n }, [elementIds]);\n var getMenuProps = useCallback(function (_temp, _temp2) {\n var _extends2;\n\n var _ref = _temp === void 0 ? {} : _temp,\n onMouseLeave = _ref.onMouseLeave,\n _ref$refKey = _ref.refKey,\n refKey = _ref$refKey === void 0 ? 'ref' : _ref$refKey,\n ref = _ref.ref,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$1);\n\n var _ref2 = _temp2 === void 0 ? {} : _temp2,\n _ref2$suppressRefErro = _ref2.suppressRefError,\n suppressRefError = _ref2$suppressRefErro === void 0 ? false : _ref2$suppressRefErro;\n\n setGetterPropCallInfo('getMenuProps', suppressRefError, refKey, menuRef);\n return _extends((_extends2 = {}, _extends2[refKey] = handleRefs(ref, function (menuNode) {\n menuRef.current = menuNode;\n }), _extends2.id = elementIds.menuId, _extends2.role = 'listbox', _extends2['aria-labelledby'] = elementIds.labelId, _extends2.onMouseLeave = callAllEventHandlers(onMouseLeave, function () {\n dispatch({\n type: MenuMouseLeave\n });\n }), _extends2), rest);\n }, [dispatch, setGetterPropCallInfo, elementIds]);\n var getItemProps = useCallback(function (_temp3) {\n var _extends3, _ref4;\n\n var _ref3 = _temp3 === void 0 ? {} : _temp3,\n item = _ref3.item,\n index = _ref3.index,\n _ref3$refKey = _ref3.refKey,\n refKey = _ref3$refKey === void 0 ? 'ref' : _ref3$refKey,\n ref = _ref3.ref,\n onMouseMove = _ref3.onMouseMove,\n onClick = _ref3.onClick;\n _ref3.onPress;\n var rest = _objectWithoutPropertiesLoose(_ref3, _excluded2$1);\n\n var _latest$current = latest.current,\n latestProps = _latest$current.props,\n latestState = _latest$current.state;\n var itemIndex = getItemIndex(index, item, latestProps.items);\n\n if (itemIndex < 0) {\n throw new Error('Pass either item or item index in getItemProps!');\n }\n\n var onSelectKey = 'onClick';\n var customClickHandler = onClick;\n\n var itemHandleMouseMove = function itemHandleMouseMove() {\n if (index === latestState.highlightedIndex) {\n return;\n }\n\n shouldScrollRef.current = false;\n dispatch({\n type: ItemMouseMove,\n index: index\n });\n };\n\n var itemHandleClick = function itemHandleClick() {\n dispatch({\n type: ItemClick,\n index: index\n });\n\n if (inputRef.current) {\n inputRef.current.focus();\n }\n };\n\n return _extends((_extends3 = {}, _extends3[refKey] = handleRefs(ref, function (itemNode) {\n if (itemNode) {\n itemRefs.current[elementIds.getItemId(itemIndex)] = itemNode;\n }\n }), _extends3.role = 'option', _extends3['aria-selected'] = \"\" + (itemIndex === latestState.highlightedIndex), _extends3.id = elementIds.getItemId(itemIndex), _extends3), !rest.disabled && (_ref4 = {\n onMouseMove: callAllEventHandlers(onMouseMove, itemHandleMouseMove)\n }, _ref4[onSelectKey] = callAllEventHandlers(customClickHandler, itemHandleClick), _ref4), rest);\n }, [dispatch, latest, shouldScrollRef, elementIds]);\n var getToggleButtonProps = useCallback(function (_temp4) {\n var _extends4;\n\n var _ref5 = _temp4 === void 0 ? {} : _temp4,\n onClick = _ref5.onClick;\n _ref5.onPress;\n var _ref5$refKey = _ref5.refKey,\n refKey = _ref5$refKey === void 0 ? 'ref' : _ref5$refKey,\n ref = _ref5.ref,\n rest = _objectWithoutPropertiesLoose(_ref5, _excluded3);\n\n var toggleButtonHandleClick = function toggleButtonHandleClick() {\n dispatch({\n type: ToggleButtonClick\n });\n\n if (!latest.current.state.isOpen && inputRef.current) {\n inputRef.current.focus();\n }\n };\n\n return _extends((_extends4 = {}, _extends4[refKey] = handleRefs(ref, function (toggleButtonNode) {\n toggleButtonRef.current = toggleButtonNode;\n }), _extends4.id = elementIds.toggleButtonId, _extends4.tabIndex = -1, _extends4), !rest.disabled && _extends({}, {\n onClick: callAllEventHandlers(onClick, toggleButtonHandleClick)\n }), rest);\n }, [dispatch, latest, elementIds]);\n var getInputProps = useCallback(function (_temp5, _temp6) {\n var _extends5;\n\n var _ref6 = _temp5 === void 0 ? {} : _temp5,\n onKeyDown = _ref6.onKeyDown,\n onChange = _ref6.onChange,\n onInput = _ref6.onInput,\n onBlur = _ref6.onBlur;\n _ref6.onChangeText;\n var _ref6$refKey = _ref6.refKey,\n refKey = _ref6$refKey === void 0 ? 'ref' : _ref6$refKey,\n ref = _ref6.ref,\n rest = _objectWithoutPropertiesLoose(_ref6, _excluded4);\n\n var _ref7 = _temp6 === void 0 ? {} : _temp6,\n _ref7$suppressRefErro = _ref7.suppressRefError,\n suppressRefError = _ref7$suppressRefErro === void 0 ? false : _ref7$suppressRefErro;\n\n setGetterPropCallInfo('getInputProps', suppressRefError, refKey, inputRef);\n var latestState = latest.current.state;\n\n var inputHandleKeyDown = function inputHandleKeyDown(event) {\n var key = normalizeArrowKey(event);\n\n if (key && inputKeyDownHandlers[key]) {\n inputKeyDownHandlers[key](event);\n }\n };\n\n var inputHandleChange = function inputHandleChange(event) {\n dispatch({\n type: InputChange,\n inputValue: event.target.value\n });\n };\n\n var inputHandleBlur = function inputHandleBlur() {\n /* istanbul ignore else */\n if (latestState.isOpen && !mouseAndTouchTrackersRef.current.isMouseDown) {\n dispatch({\n type: InputBlur,\n selectItem: true\n });\n }\n };\n /* istanbul ignore next (preact) */\n\n\n var onChangeKey = 'onChange';\n var eventHandlers = {};\n\n if (!rest.disabled) {\n var _eventHandlers;\n\n eventHandlers = (_eventHandlers = {}, _eventHandlers[onChangeKey] = callAllEventHandlers(onChange, onInput, inputHandleChange), _eventHandlers.onKeyDown = callAllEventHandlers(onKeyDown, inputHandleKeyDown), _eventHandlers.onBlur = callAllEventHandlers(onBlur, inputHandleBlur), _eventHandlers);\n }\n\n return _extends((_extends5 = {}, _extends5[refKey] = handleRefs(ref, function (inputNode) {\n inputRef.current = inputNode;\n }), _extends5.id = elementIds.inputId, _extends5['aria-autocomplete'] = 'list', _extends5['aria-controls'] = elementIds.menuId, _extends5), latestState.isOpen && latestState.highlightedIndex > -1 && {\n 'aria-activedescendant': elementIds.getItemId(latestState.highlightedIndex)\n }, {\n 'aria-labelledby': elementIds.labelId,\n // https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion\n // revert back since autocomplete=\"nope\" is ignored on latest Chrome and Opera\n autoComplete: 'off',\n value: latestState.inputValue\n }, eventHandlers, rest);\n }, [dispatch, inputKeyDownHandlers, latest, mouseAndTouchTrackersRef, setGetterPropCallInfo, elementIds]);\n var getComboboxProps = useCallback(function (_temp7, _temp8) {\n var _extends6;\n\n var _ref8 = _temp7 === void 0 ? {} : _temp7,\n _ref8$refKey = _ref8.refKey,\n refKey = _ref8$refKey === void 0 ? 'ref' : _ref8$refKey,\n ref = _ref8.ref,\n rest = _objectWithoutPropertiesLoose(_ref8, _excluded5);\n\n var _ref9 = _temp8 === void 0 ? {} : _temp8,\n _ref9$suppressRefErro = _ref9.suppressRefError,\n suppressRefError = _ref9$suppressRefErro === void 0 ? false : _ref9$suppressRefErro;\n\n setGetterPropCallInfo('getComboboxProps', suppressRefError, refKey, comboboxRef);\n return _extends((_extends6 = {}, _extends6[refKey] = handleRefs(ref, function (comboboxNode) {\n comboboxRef.current = comboboxNode;\n }), _extends6.role = 'combobox', _extends6['aria-haspopup'] = 'listbox', _extends6['aria-owns'] = elementIds.menuId, _extends6['aria-expanded'] = latest.current.state.isOpen, _extends6), rest);\n }, [latest, setGetterPropCallInfo, elementIds]); // returns\n\n var toggleMenu = useCallback(function () {\n dispatch({\n type: FunctionToggleMenu\n });\n }, [dispatch]);\n var closeMenu = useCallback(function () {\n dispatch({\n type: FunctionCloseMenu\n });\n }, [dispatch]);\n var openMenu = useCallback(function () {\n dispatch({\n type: FunctionOpenMenu\n });\n }, [dispatch]);\n var setHighlightedIndex = useCallback(function (newHighlightedIndex) {\n dispatch({\n type: FunctionSetHighlightedIndex,\n highlightedIndex: newHighlightedIndex\n });\n }, [dispatch]);\n var selectItem = useCallback(function (newSelectedItem) {\n dispatch({\n type: FunctionSelectItem,\n selectedItem: newSelectedItem\n });\n }, [dispatch]);\n var setInputValue = useCallback(function (newInputValue) {\n dispatch({\n type: FunctionSetInputValue,\n inputValue: newInputValue\n });\n }, [dispatch]);\n var reset = useCallback(function () {\n dispatch({\n type: FunctionReset$1\n });\n }, [dispatch]);\n return {\n // prop getters.\n getItemProps: getItemProps,\n getLabelProps: getLabelProps,\n getMenuProps: getMenuProps,\n getInputProps: getInputProps,\n getComboboxProps: getComboboxProps,\n getToggleButtonProps: getToggleButtonProps,\n // actions.\n toggleMenu: toggleMenu,\n openMenu: openMenu,\n closeMenu: closeMenu,\n setHighlightedIndex: setHighlightedIndex,\n setInputValue: setInputValue,\n selectItem: selectItem,\n reset: reset,\n // state.\n highlightedIndex: highlightedIndex,\n isOpen: isOpen,\n selectedItem: selectedItem,\n inputValue: inputValue\n };\n}\n\nvar defaultStateValues = {\n activeIndex: -1,\n selectedItems: []\n};\n/**\n * Returns the initial value for a state key in the following order:\n * 1. controlled prop, 2. initial prop, 3. default prop, 4. default\n * value from Downshift.\n *\n * @param {Object} props Props passed to the hook.\n * @param {string} propKey Props key to generate the value for.\n * @returns {any} The initial value for that prop.\n */\n\nfunction getInitialValue(props, propKey) {\n return getInitialValue$1(props, propKey, defaultStateValues);\n}\n/**\n * Returns the default value for a state key in the following order:\n * 1. controlled prop, 2. default prop, 3. default value from Downshift.\n *\n * @param {Object} props Props passed to the hook.\n * @param {string} propKey Props key to generate the value for.\n * @returns {any} The initial value for that prop.\n */\n\n\nfunction getDefaultValue(props, propKey) {\n return getDefaultValue$1(props, propKey, defaultStateValues);\n}\n/**\n * Gets the initial state based on the provided props. It uses initial, default\n * and controlled props related to state in order to compute the initial value.\n *\n * @param {Object} props Props passed to the hook.\n * @returns {Object} The initial state.\n */\n\n\nfunction getInitialState(props) {\n var activeIndex = getInitialValue(props, 'activeIndex');\n var selectedItems = getInitialValue(props, 'selectedItems');\n return {\n activeIndex: activeIndex,\n selectedItems: selectedItems\n };\n}\n/**\n * Returns true if dropdown keydown operation is permitted. Should not be\n * allowed on keydown with modifier keys (ctrl, alt, shift, meta), on\n * input element with text content that is either highlighted or selection\n * cursor is not at the starting position.\n *\n * @param {KeyboardEvent} event The event from keydown.\n * @returns {boolean} Whether the operation is allowed.\n */\n\n\nfunction isKeyDownOperationPermitted(event) {\n if (event.shiftKey || event.metaKey || event.ctrlKey || event.altKey) {\n return false;\n }\n\n var element = event.target;\n\n if (element instanceof HTMLInputElement && // if element is a text input\n element.value !== '' && (element.selectionStart !== 0 || element.selectionEnd !== 0)) {\n return false;\n }\n\n return true;\n}\n/**\n * Returns a message to be added to aria-live region when item is removed.\n *\n * @param {Object} selectionParameters Parameters required to build the message.\n * @returns {string} The a11y message.\n */\n\n\nfunction getA11yRemovalMessage(selectionParameters) {\n var removedSelectedItem = selectionParameters.removedSelectedItem,\n itemToStringLocal = selectionParameters.itemToString;\n return itemToStringLocal(removedSelectedItem) + \" has been removed.\";\n}\n\nvar propTypes = {\n selectedItems: PropTypes.array,\n initialSelectedItems: PropTypes.array,\n defaultSelectedItems: PropTypes.array,\n itemToString: PropTypes.func,\n getA11yRemovalMessage: PropTypes.func,\n stateReducer: PropTypes.func,\n activeIndex: PropTypes.number,\n initialActiveIndex: PropTypes.number,\n defaultActiveIndex: PropTypes.number,\n onActiveIndexChange: PropTypes.func,\n onSelectedItemsChange: PropTypes.func,\n keyNavigationNext: PropTypes.string,\n keyNavigationPrevious: PropTypes.string,\n environment: PropTypes.shape({\n addEventListener: PropTypes.func,\n removeEventListener: PropTypes.func,\n document: PropTypes.shape({\n getElementById: PropTypes.func,\n activeElement: PropTypes.any,\n body: PropTypes.any\n })\n })\n};\nvar defaultProps = {\n itemToString: defaultProps$3.itemToString,\n stateReducer: defaultProps$3.stateReducer,\n environment: defaultProps$3.environment,\n getA11yRemovalMessage: getA11yRemovalMessage,\n keyNavigationNext: 'ArrowRight',\n keyNavigationPrevious: 'ArrowLeft'\n}; // eslint-disable-next-line import/no-mutable-exports\n\nvar validatePropTypes = noop;\n/* istanbul ignore next */\n\nif (process.env.NODE_ENV !== 'production') {\n validatePropTypes = function validatePropTypes(options, caller) {\n PropTypes.checkPropTypes(propTypes, options, 'prop', caller.name);\n };\n}\n\nvar SelectedItemClick = process.env.NODE_ENV !== \"production\" ? '__selected_item_click__' : 0;\nvar SelectedItemKeyDownDelete = process.env.NODE_ENV !== \"production\" ? '__selected_item_keydown_delete__' : 1;\nvar SelectedItemKeyDownBackspace = process.env.NODE_ENV !== \"production\" ? '__selected_item_keydown_backspace__' : 2;\nvar SelectedItemKeyDownNavigationNext = process.env.NODE_ENV !== \"production\" ? '__selected_item_keydown_navigation_next__' : 3;\nvar SelectedItemKeyDownNavigationPrevious = process.env.NODE_ENV !== \"production\" ? '__selected_item_keydown_navigation_previous__' : 4;\nvar DropdownKeyDownNavigationPrevious = process.env.NODE_ENV !== \"production\" ? '__dropdown_keydown_navigation_previous__' : 5;\nvar DropdownKeyDownBackspace = process.env.NODE_ENV !== \"production\" ? '__dropdown_keydown_backspace__' : 6;\nvar DropdownClick = process.env.NODE_ENV !== \"production\" ? '__dropdown_click__' : 7;\nvar FunctionAddSelectedItem = process.env.NODE_ENV !== \"production\" ? '__function_add_selected_item__' : 8;\nvar FunctionRemoveSelectedItem = process.env.NODE_ENV !== \"production\" ? '__function_remove_selected_item__' : 9;\nvar FunctionSetSelectedItems = process.env.NODE_ENV !== \"production\" ? '__function_set_selected_items__' : 10;\nvar FunctionSetActiveIndex = process.env.NODE_ENV !== \"production\" ? '__function_set_active_index__' : 11;\nvar FunctionReset = process.env.NODE_ENV !== \"production\" ? '__function_reset__' : 12;\n\nvar stateChangeTypes = /*#__PURE__*/Object.freeze({\n __proto__: null,\n SelectedItemClick: SelectedItemClick,\n SelectedItemKeyDownDelete: SelectedItemKeyDownDelete,\n SelectedItemKeyDownBackspace: SelectedItemKeyDownBackspace,\n SelectedItemKeyDownNavigationNext: SelectedItemKeyDownNavigationNext,\n SelectedItemKeyDownNavigationPrevious: SelectedItemKeyDownNavigationPrevious,\n DropdownKeyDownNavigationPrevious: DropdownKeyDownNavigationPrevious,\n DropdownKeyDownBackspace: DropdownKeyDownBackspace,\n DropdownClick: DropdownClick,\n FunctionAddSelectedItem: FunctionAddSelectedItem,\n FunctionRemoveSelectedItem: FunctionRemoveSelectedItem,\n FunctionSetSelectedItems: FunctionSetSelectedItems,\n FunctionSetActiveIndex: FunctionSetActiveIndex,\n FunctionReset: FunctionReset\n});\n\n/* eslint-disable complexity */\n\nfunction downshiftMultipleSelectionReducer(state, action) {\n var type = action.type,\n index = action.index,\n props = action.props,\n selectedItem = action.selectedItem;\n var activeIndex = state.activeIndex,\n selectedItems = state.selectedItems;\n var changes;\n\n switch (type) {\n case SelectedItemClick:\n changes = {\n activeIndex: index\n };\n break;\n\n case SelectedItemKeyDownNavigationPrevious:\n changes = {\n activeIndex: activeIndex - 1 < 0 ? 0 : activeIndex - 1\n };\n break;\n\n case SelectedItemKeyDownNavigationNext:\n changes = {\n activeIndex: activeIndex + 1 >= selectedItems.length ? -1 : activeIndex + 1\n };\n break;\n\n case SelectedItemKeyDownBackspace:\n case SelectedItemKeyDownDelete:\n {\n var newActiveIndex = activeIndex;\n\n if (selectedItems.length === 1) {\n newActiveIndex = -1;\n } else if (activeIndex === selectedItems.length - 1) {\n newActiveIndex = selectedItems.length - 2;\n }\n\n changes = _extends({\n selectedItems: [].concat(selectedItems.slice(0, activeIndex), selectedItems.slice(activeIndex + 1))\n }, {\n activeIndex: newActiveIndex\n });\n break;\n }\n\n case DropdownKeyDownNavigationPrevious:\n changes = {\n activeIndex: selectedItems.length - 1\n };\n break;\n\n case DropdownKeyDownBackspace:\n changes = {\n selectedItems: selectedItems.slice(0, selectedItems.length - 1)\n };\n break;\n\n case FunctionAddSelectedItem:\n changes = {\n selectedItems: [].concat(selectedItems, [selectedItem])\n };\n break;\n\n case DropdownClick:\n changes = {\n activeIndex: -1\n };\n break;\n\n case FunctionRemoveSelectedItem:\n {\n var _newActiveIndex = activeIndex;\n var selectedItemIndex = selectedItems.indexOf(selectedItem);\n\n if (selectedItems.length === 1) {\n _newActiveIndex = -1;\n } else if (selectedItemIndex === selectedItems.length - 1) {\n _newActiveIndex = selectedItems.length - 2;\n }\n\n changes = _extends({\n selectedItems: [].concat(selectedItems.slice(0, selectedItemIndex), selectedItems.slice(selectedItemIndex + 1))\n }, {\n activeIndex: _newActiveIndex\n });\n break;\n }\n\n case FunctionSetSelectedItems:\n {\n var newSelectedItems = action.selectedItems;\n changes = {\n selectedItems: newSelectedItems\n };\n break;\n }\n\n case FunctionSetActiveIndex:\n {\n var _newActiveIndex2 = action.activeIndex;\n changes = {\n activeIndex: _newActiveIndex2\n };\n break;\n }\n\n case FunctionReset:\n changes = {\n activeIndex: getDefaultValue(props, 'activeIndex'),\n selectedItems: getDefaultValue(props, 'selectedItems')\n };\n break;\n\n default:\n throw new Error('Reducer called without proper action type.');\n }\n\n return _extends({}, state, changes);\n}\n\nvar _excluded = [\"refKey\", \"ref\", \"onClick\", \"onKeyDown\", \"selectedItem\", \"index\"],\n _excluded2 = [\"refKey\", \"ref\", \"onKeyDown\", \"onClick\", \"preventKeyAction\"];\nuseMultipleSelection.stateChangeTypes = stateChangeTypes;\n\nfunction useMultipleSelection(userProps) {\n if (userProps === void 0) {\n userProps = {};\n }\n\n validatePropTypes(userProps, useMultipleSelection); // Props defaults and destructuring.\n\n var props = _extends({}, defaultProps, userProps);\n\n var getA11yRemovalMessage = props.getA11yRemovalMessage,\n itemToString = props.itemToString,\n environment = props.environment,\n keyNavigationNext = props.keyNavigationNext,\n keyNavigationPrevious = props.keyNavigationPrevious; // Reducer init.\n\n var _useControlledReducer = useControlledReducer$1(downshiftMultipleSelectionReducer, getInitialState(props), props),\n state = _useControlledReducer[0],\n dispatch = _useControlledReducer[1];\n\n var activeIndex = state.activeIndex,\n selectedItems = state.selectedItems; // Refs.\n\n var isInitialMountRef = useRef(true);\n var dropdownRef = useRef(null);\n var previousSelectedItemsRef = useRef(selectedItems);\n var selectedItemRefs = useRef();\n selectedItemRefs.current = [];\n var latest = useLatestRef({\n state: state,\n props: props\n }); // Effects.\n\n /* Sets a11y status message on changes in selectedItem. */\n\n useEffect(function () {\n if (isInitialMountRef.current) {\n return;\n }\n\n if (selectedItems.length < previousSelectedItemsRef.current.length) {\n var removedSelectedItem = previousSelectedItemsRef.current.find(function (item) {\n return selectedItems.indexOf(item) < 0;\n });\n setStatus(getA11yRemovalMessage({\n itemToString: itemToString,\n resultCount: selectedItems.length,\n removedSelectedItem: removedSelectedItem,\n activeIndex: activeIndex,\n activeSelectedItem: selectedItems[activeIndex]\n }), environment.document);\n }\n\n previousSelectedItemsRef.current = selectedItems; // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedItems.length]); // Sets focus on active item.\n\n useEffect(function () {\n if (isInitialMountRef.current) {\n return;\n }\n\n if (activeIndex === -1 && dropdownRef.current) {\n dropdownRef.current.focus();\n } else if (selectedItemRefs.current[activeIndex]) {\n selectedItemRefs.current[activeIndex].focus();\n }\n }, [activeIndex]);\n useControlPropsValidator({\n isInitialMount: isInitialMountRef.current,\n props: props,\n state: state\n });\n var setGetterPropCallInfo = useGetterPropsCalledChecker('getDropdownProps'); // Make initial ref false.\n\n useEffect(function () {\n isInitialMountRef.current = false;\n }, []); // Event handler functions.\n\n var selectedItemKeyDownHandlers = useMemo(function () {\n var _ref;\n\n return _ref = {}, _ref[keyNavigationPrevious] = function () {\n dispatch({\n type: SelectedItemKeyDownNavigationPrevious\n });\n }, _ref[keyNavigationNext] = function () {\n dispatch({\n type: SelectedItemKeyDownNavigationNext\n });\n }, _ref.Delete = function Delete() {\n dispatch({\n type: SelectedItemKeyDownDelete\n });\n }, _ref.Backspace = function Backspace() {\n dispatch({\n type: SelectedItemKeyDownBackspace\n });\n }, _ref;\n }, [dispatch, keyNavigationNext, keyNavigationPrevious]);\n var dropdownKeyDownHandlers = useMemo(function () {\n var _ref2;\n\n return _ref2 = {}, _ref2[keyNavigationPrevious] = function (event) {\n if (isKeyDownOperationPermitted(event)) {\n dispatch({\n type: DropdownKeyDownNavigationPrevious\n });\n }\n }, _ref2.Backspace = function Backspace(event) {\n if (isKeyDownOperationPermitted(event)) {\n dispatch({\n type: DropdownKeyDownBackspace\n });\n }\n }, _ref2;\n }, [dispatch, keyNavigationPrevious]); // Getter props.\n\n var getSelectedItemProps = useCallback(function (_temp) {\n var _extends2;\n\n var _ref3 = _temp === void 0 ? {} : _temp,\n _ref3$refKey = _ref3.refKey,\n refKey = _ref3$refKey === void 0 ? 'ref' : _ref3$refKey,\n ref = _ref3.ref,\n onClick = _ref3.onClick,\n onKeyDown = _ref3.onKeyDown,\n selectedItem = _ref3.selectedItem,\n index = _ref3.index,\n rest = _objectWithoutPropertiesLoose(_ref3, _excluded);\n\n var latestState = latest.current.state;\n var itemIndex = getItemIndex(index, selectedItem, latestState.selectedItems);\n\n if (itemIndex < 0) {\n throw new Error('Pass either selectedItem or index in getSelectedItemProps!');\n }\n\n var selectedItemHandleClick = function selectedItemHandleClick() {\n dispatch({\n type: SelectedItemClick,\n index: index\n });\n };\n\n var selectedItemHandleKeyDown = function selectedItemHandleKeyDown(event) {\n var key = normalizeArrowKey(event);\n\n if (key && selectedItemKeyDownHandlers[key]) {\n selectedItemKeyDownHandlers[key](event);\n }\n };\n\n return _extends((_extends2 = {}, _extends2[refKey] = handleRefs(ref, function (selectedItemNode) {\n if (selectedItemNode) {\n selectedItemRefs.current.push(selectedItemNode);\n }\n }), _extends2.tabIndex = index === latestState.activeIndex ? 0 : -1, _extends2.onClick = callAllEventHandlers(onClick, selectedItemHandleClick), _extends2.onKeyDown = callAllEventHandlers(onKeyDown, selectedItemHandleKeyDown), _extends2), rest);\n }, [dispatch, latest, selectedItemKeyDownHandlers]);\n var getDropdownProps = useCallback(function (_temp2, _temp3) {\n var _extends3;\n\n var _ref4 = _temp2 === void 0 ? {} : _temp2,\n _ref4$refKey = _ref4.refKey,\n refKey = _ref4$refKey === void 0 ? 'ref' : _ref4$refKey,\n ref = _ref4.ref,\n onKeyDown = _ref4.onKeyDown,\n onClick = _ref4.onClick,\n _ref4$preventKeyActio = _ref4.preventKeyAction,\n preventKeyAction = _ref4$preventKeyActio === void 0 ? false : _ref4$preventKeyActio,\n rest = _objectWithoutPropertiesLoose(_ref4, _excluded2);\n\n var _ref5 = _temp3 === void 0 ? {} : _temp3,\n _ref5$suppressRefErro = _ref5.suppressRefError,\n suppressRefError = _ref5$suppressRefErro === void 0 ? false : _ref5$suppressRefErro;\n\n setGetterPropCallInfo('getDropdownProps', suppressRefError, refKey, dropdownRef);\n\n var dropdownHandleKeyDown = function dropdownHandleKeyDown(event) {\n var key = normalizeArrowKey(event);\n\n if (key && dropdownKeyDownHandlers[key]) {\n dropdownKeyDownHandlers[key](event);\n }\n };\n\n var dropdownHandleClick = function dropdownHandleClick() {\n dispatch({\n type: DropdownClick\n });\n };\n\n return _extends((_extends3 = {}, _extends3[refKey] = handleRefs(ref, function (dropdownNode) {\n if (dropdownNode) {\n dropdownRef.current = dropdownNode;\n }\n }), _extends3), !preventKeyAction && {\n onKeyDown: callAllEventHandlers(onKeyDown, dropdownHandleKeyDown),\n onClick: callAllEventHandlers(onClick, dropdownHandleClick)\n }, rest);\n }, [dispatch, dropdownKeyDownHandlers, setGetterPropCallInfo]); // returns\n\n var addSelectedItem = useCallback(function (selectedItem) {\n dispatch({\n type: FunctionAddSelectedItem,\n selectedItem: selectedItem\n });\n }, [dispatch]);\n var removeSelectedItem = useCallback(function (selectedItem) {\n dispatch({\n type: FunctionRemoveSelectedItem,\n selectedItem: selectedItem\n });\n }, [dispatch]);\n var setSelectedItems = useCallback(function (newSelectedItems) {\n dispatch({\n type: FunctionSetSelectedItems,\n selectedItems: newSelectedItems\n });\n }, [dispatch]);\n var setActiveIndex = useCallback(function (newActiveIndex) {\n dispatch({\n type: FunctionSetActiveIndex,\n activeIndex: newActiveIndex\n });\n }, [dispatch]);\n var reset = useCallback(function () {\n dispatch({\n type: FunctionReset\n });\n }, [dispatch]);\n return {\n getSelectedItemProps: getSelectedItemProps,\n getDropdownProps: getDropdownProps,\n addSelectedItem: addSelectedItem,\n removeSelectedItem: removeSelectedItem,\n setSelectedItems: setSelectedItems,\n setActiveIndex: setActiveIndex,\n reset: reset,\n selectedItems: selectedItems,\n activeIndex: activeIndex\n };\n}\n\nexport { Downshift$1 as default, resetIdCounter, useCombobox, useMultipleSelection, useSelect };\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\nconst SelectItem = ({ children }) => <>{children}</>;\n\nSelectItem.propTypes = {\n /**\n * String representation of the option.\n *\n * This value is also used as a typeahead; if a user types \"n\" while\n * the Select is open, highlight will move to the first item with a\n * value starting with `n`.\n */\n value: PropTypes.string.isRequired,\n children: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.arrayOf(PropTypes.node),\n ]),\n};\n\nexport default SelectItem;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\nconst SelectAction = ({ children }) => <>{children}</>;\n\nSelectAction.propTypes = {\n /** Side effect to run on selection */\n onSelect: PropTypes.func.isRequired,\n children: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.arrayOf(PropTypes.node),\n ]),\n};\n\nexport default SelectAction;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { useSelect } from \"downshift\";\nimport cc from \"classcat\";\nimport DropdownTrigger from \"../DropdownTrigger\";\nimport SelectItem from \"./SelectItem\";\nimport SelectAction from \"./SelectAction\";\n\nconst noop = () => {};\n\n/**\n * @param {Object} item a Select.Item or Select.Action component\n * @returns {Boolean} true if the item is a Select.Action\n */\nexport const isAction = (item) => {\n let result = false;\n if (item) {\n result = \"onSelect\" in item.props;\n }\n return result;\n};\n\n/**\n * Sets the selected value in the DropdownTrigger.\n * A Select.Action should _not_ display as selected in the button.\n *\n * @param {Object} item the currently selected Select.Item or Select.Action\n * @returns {String|Node} The value to display in the trigger button\n */\nexport const getSelectedItemDisplay = (item) => {\n let result = \"\";\n if (item && !isAction(item)) {\n result = item.props.children;\n }\n return result;\n};\n\n/**\n * @param {String} value `value` of the Select.Item to get\n * @param {Array} items Select.Item nodes\n * @returns {ReactElement|String} the Select.Item elemenet found or an empty string\n */\nexport const getItemByValue = (value, items) => {\n const founditem = items\n .filter((item) => !isAction(item)) // action items are not selectable\n .filter(({ props }) => props.value === value)\n .pop();\n\n return founditem || \"\";\n};\n\n/**\n * Accessible custom select control for giving users the ability to select one option from a list of options.\n * `Select` also supports the ability to pass in a `<Select.Action>` that acts as an option that only triggers a side effect.\n * Typeahead is enabled based on the `value` prop of `<Select.Item>` elements passed in.\n */\nconst Select = ({\n label,\n children,\n onChange = noop,\n value,\n defaultValue,\n defaultOpen = false,\n errorText,\n}) => {\n // The menu should only render children that have `value` or `onSelect` prop\n const items = React.Children.toArray(\n children.filter(({ props }) => \"value\" in props || \"onSelect\" in props)\n );\n\n const downshiftOpts = {\n id: \"nds-select\",\n items,\n initialSelectedItem: defaultValue && getItemByValue(defaultValue, items),\n initialIsOpen: defaultOpen,\n itemToString: (item) => item.props.value || item.props.children, // typeahead string\n onSelectedItemChange: ({ selectedItem }) => {\n // for Select.Action items, we only fire the side effect\n if (isAction(selectedItem)) {\n selectedItem.props.onSelect();\n } else {\n onChange(selectedItem.props.value);\n }\n },\n };\n\n // When `value` prop is passed, the Select becomes fully controlled and the\n // selected item is set programmitically by the consumer only\n if (value !== undefined) {\n downshiftOpts.selectedItem = getItemByValue(value, items);\n }\n\n /** @see https://www.downshift-js.com/use-select */\n const {\n isOpen,\n selectedItem,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n highlightedIndex,\n getItemProps,\n } = useSelect(downshiftOpts);\n\n const hasSelectedItem = selectedItem !== undefined;\n\n return (\n <div className=\"nds-select\">\n <DropdownTrigger\n isOpen={isOpen}\n labelText={label}\n displayValue={getSelectedItemDisplay(selectedItem)}\n labelProps={{ ...getLabelProps() }}\n errorText={errorText}\n {...getToggleButtonProps()}\n />\n <ul\n className={cc([\n \"nds-select-list\",\n \"list--reset bgColor--white rounded--all border--all\",\n { \"nds-select-list--active\": isOpen },\n ])}\n {...getMenuProps()}\n >\n {isOpen &&\n items.map((item, index) => (\n <li\n key={`${item}${index}`}\n className={cc([\n \"nds-select-item\",\n \"alignChild--left--center padding--x--s padding--y--xs\",\n {\n \"nds-select-item--highlighted\": highlightedIndex === index,\n \"rounded--top\": index === 0,\n \"rounded--bottom\": index === items.length - 1,\n // make a left gutter for the checkmark if any item selected\n \"nds-select-item--hasGutter\": hasSelectedItem,\n },\n ])}\n {...getItemProps({ item, index })}\n >\n {hasSelectedItem &&\n selectedItem.props.value === item.props.value && (\n <span className=\"narmi-icon-check fontSize--l fontWeight--bold\" />\n )}\n {item}\n </li>\n ))}\n </ul>\n </div>\n );\n};\n\nSelect.propTypes = {\n /** Label for the select control */\n label: PropTypes.string.isRequired,\n /** Change callback. Called with value string from the selected item */\n onChange: PropTypes.func,\n /**\n * Sets selected item by value and makes the Select **fully controlled**.\n *\n * When passing a `value`, you must provide an `onChange` handler to update it\n */\n value: PropTypes.string,\n /**\n * Use to set a default selection by passing the `value` prop\n * of one of the `<Select.Item>` children.\n * The Select will remain uncontrolled.\n */\n defaultValue: PropTypes.string,\n /** Open the dropdown on render if `true` */\n defaultOpen: PropTypes.bool,\n /**\n * Error message.\n * When passed, this will cause the trigger to render in error state.\n */\n errorText: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.arrayOf(PropTypes.node),\n ]),\n};\n\nSelect.Item = SelectItem;\nSelect.Action = SelectAction;\nexport default Select;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\n/**\n * Takes a list of elements and places a visual separator between items.\n */\nconst SeparatorList = ({ separator = \"|\", items = [] }) => (\n <ul className=\"list--reset nds-typography nds-separatorList\">\n {items.map((item, i) => {\n const itemProps = {};\n if (i !== items.length - 1) {\n itemProps[\"data-separator\"] = separator;\n }\n return (\n <li key={`${i}-${separator}`} {...itemProps}>\n {item}\n </li>\n );\n })}\n </ul>\n);\n\nSeparatorList.propTypes = {\n /**\n * Items to render in the list\n */\n items: PropTypes.arrayOf(PropTypes.node),\n /**\n * Character to use as separator between items\n */\n separator: PropTypes.string,\n};\n\nexport default SeparatorList;\n","import { createContext } from \"react\";\n\nconst TabsContext = createContext({\n // list of tabIds set by TabsList\n tabIds: [],\n setTabIds: () => {},\n\n // index of tab in source order that is currently selected\n currentIndex: 0,\n\n // only set if there is a TabsPanel present inside Tabs.\n // used to determine when to add aria labelling attributes\n hasPanels: false,\n setHasPanels: () => {},\n\n // allows any consumer of this context to change tabs by id\n changeTabs: () => {},\n});\n\nexport default TabsContext;\n","/* eslint-disable jsx-a11y/no-noninteractive-element-interactions */\nimport React, { useEffect, useContext } from \"react\";\nimport PropTypes from \"prop-types\";\nimport TabsContext from \"./context\";\n\nconst noop = () => {};\n\nconst TabsList = ({ children, xPadding = \"none\" }) => {\n const { tabIds, setTabIds, changeTabs, currentIndex, hasPanels } =\n useContext(TabsContext);\n const childArray = React.Children.toArray(children);\n\n // populate tabIds state variable in root component\n // with tabId props from `Tabs.Tab` children passed into `Tabs.List`\n useEffect(() => {\n if (tabIds.length !== childArray.length) {\n setTabIds(childArray.map((t) => t.props.tabId));\n }\n }, [tabIds, setTabIds, childArray]);\n\n const handleKeyDown = ({ key }) => {\n let newIndex;\n switch (key) {\n case \"ArrowLeft\":\n newIndex = currentIndex - 1;\n if (newIndex >= 0) {\n changeTabs(tabIds[newIndex]);\n }\n break;\n case \"ArrowRight\":\n newIndex = currentIndex + 1;\n if (newIndex <= tabIds.length - 1) {\n changeTabs(tabIds[newIndex]);\n }\n break;\n }\n };\n\n return (\n <ul\n role={hasPanels ? \"tablist\" : undefined}\n className={`nds-tabs-tabsList list--reset padding--x--${xPadding}`}\n onKeyDown={hasPanels ? handleKeyDown : noop}\n tabIndex={hasPanels ? \"0\" : undefined}\n data-testid=\"nds-tablist\"\n >\n {children}\n </ul>\n );\n};\n\nTabsList.propTypes = {\n /** Children must be of type `Tabs.Tab` */\n children: PropTypes.node.isRequired,\n /**\n * Amount of padding to apply on the x axis to indent tabs\n * from edges of the `Tabs.Panel`\n * */\n xPadding: PropTypes.oneOf([\"xxs\", \"xs\", \"s\", \"m\", \"l\", \"xl\", \"none\"]),\n};\n\nTabsList.displayName = \"Tabs.List\";\n\nexport default TabsList;\n","import React, { useContext } from \"react\";\nimport PropTypes from \"prop-types\";\nimport TabsContext from \"./context\";\nimport cc from \"classcat\";\n\nconst TabsTab = ({ label, tabId }) => {\n const { currentIndex, tabIds, hasPanels, changeTabs } =\n useContext(TabsContext);\n const isSelected = tabId === tabIds[currentIndex];\n\n return (\n <li\n className={cc([\n \"nds-tabs-tabItem\",\n {\n \"nds-tabs-tabItem--selected\": isSelected,\n },\n ])}\n >\n <button\n className={cc([\n \"resetButton\",\n \"nds-tabs-button\",\n {\n \"nds-tabs-button--selected\": isSelected,\n },\n ])}\n role={hasPanels ? \"tab\" : undefined}\n aria-selected={isSelected.toString()}\n aria-controls={hasPanels ? `${tabId}-tabpanel` : undefined}\n id={`${tabId}-tab`}\n tabIndex={hasPanels ? \"-1\" : \"0\"}\n onClick={() => changeTabs(tabId)}\n >\n {label}\n </button>\n </li>\n );\n};\n\nTabsTab.propTypes = {\n /** Label of the tab button */\n label: PropTypes.string.isRequired,\n /** String ID used to link the `Tabs.Tab` to a `Tabs.Panel` */\n tabId: PropTypes.string.isRequired,\n};\n\nTabsTab.displayName = \"Tabs.Tab\";\n\nexport default TabsTab;\n","import React, { useEffect, useContext } from \"react\";\nimport PropTypes from \"prop-types\";\nimport TabsContext from \"./context\";\n\nconst TabsPanel = ({ children, tabId }) => {\n const { currentIndex, tabIds, hasPanels, setHasPanels } =\n useContext(TabsContext);\n const selectedId = tabIds[currentIndex];\n\n useEffect(() => {\n if (!hasPanels) {\n setHasPanels(true);\n }\n }, [hasPanels, setHasPanels]);\n\n return (\n <div\n className=\"nds-tabs-panel\"\n tabIndex=\"0\"\n role=\"tabpanel\"\n id={`${tabId}-tabpanel`}\n aria-labelledby={`${tabId}-tab`}\n hidden={tabId !== selectedId ? true : undefined}\n >\n {children}\n </div>\n );\n};\n\nTabsPanel.propTypes = {\n /** The content of the tab panel (any node type) */\n children: PropTypes.node.isRequired,\n /** String ID used to link the `Tabs.Panel` to a `Tabs.Tab` */\n tabId: PropTypes.string.isRequired,\n};\n\nTabsPanel.displayName = \"Tabs.Panel\";\n\nexport default TabsPanel;\n","import React, { useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport cc from \"classcat\";\nimport TabsContext from \"./context\";\nimport TabsList from \"./TabsList\";\nimport TabsTab from \"./TabsTab\";\nimport TabsPanel from \"./TabsPanel\";\n\nconst noop = () => {};\n\n/**\n * Component that handles tabs and tab panels based on WAI-ARIA [best practices](https://www.w3.org/TR/wai-aria-practices/#tabpanel)\n * for the \"tabs\" design pattern.\n *\n * The `Tabs` component mananges its own state, changing the visible tab panel based\n * on user events. Use the `onTabChange` callback to add any custom behaviors.\n */\nconst Tabs = ({\n children,\n defaultSelectedIndex = 0,\n selectedIndex = null,\n onTabChange = noop,\n hasBorder = true,\n}) => {\n const [tabIds, setTabIds] = useState([]);\n const [hasPanels, setHasPanels] = useState(false);\n const [currentIndex, setCurrentIndex] = useState(defaultSelectedIndex);\n const isControlledComponent = selectedIndex !== null;\n\n const changeTabs = (tabId) => {\n const tabIndex = tabIds.indexOf(tabId);\n\n onTabChange(tabIndex);\n\n if (!isControlledComponent) {\n setCurrentIndex(tabIndex);\n }\n };\n\n return (\n <TabsContext.Provider\n value={{\n tabIds,\n setTabIds,\n currentIndex: isControlledComponent ? selectedIndex : currentIndex,\n hasPanels,\n setHasPanels,\n changeTabs,\n }}\n >\n <div className={cc([\"nds-tabs\", { \"nds-tabs--bordered\": hasBorder }])}>\n {children}\n </div>\n </TabsContext.Provider>\n );\n};\n\nTabs.propTypes = {\n /**\n * Direct children of `Tabs` should be one of:\n * `Tabs.List` or `Tabs.Panel`\n */\n children: PropTypes.node.isRequired,\n /**\n * Sets _default_ tab selection by index in source order\n */\n defaultSelectedIndex: PropTypes.number,\n /**\n * Sets selected tab by index, making Tabs **fully controlled**.\n * When using this prop, you must use the `onTabChange` callback\n * to update the value of this prop to update the selected tab.\n */\n selectedIndex: PropTypes.number,\n /** Callback invoked with the index of the tab the user is moving selection to */\n onTabChange: PropTypes.func,\n /** Shows bottom border when `true` */\n hasBorder: PropTypes.bool,\n};\n\nTabs.List = TabsList;\nTabs.Tab = TabsTab;\nTabs.Panel = TabsPanel;\n\nexport default Tabs;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport cc from \"classcat\";\nimport Row from \"../Row\";\n\nconst noop = () => {};\n\n/**\n * A rounded rectangle inline label.\n * The user has the option of firing a callback for 'dismissible' Tags.\n */\nconst Tag = ({\n kind = \"subdued\", // outline, subdued, x-tag (cactus400) #7fbc5b; #7FBC5B oneof\n onDismiss = noop,\n label,\n}) => {\n return (\n <div className={cc([\"nds-typography\", \"nds-tag\", `nds-tag--${kind}`])}>\n <Row alignItems=\"center\" gapSize=\"xxs\">\n <Row.Item shrink>{label}</Row.Item>\n {kind === \"dismissible\" && (\n <Row.Item shrink>\n <span\n className=\"narmi-icon-x\"\n role=\"button\"\n tabIndex={0}\n onClick={onDismiss}\n onKeyUp={({ key }) => {\n if (key === \"Enter\" || key == \" \") {\n onDismiss();\n }\n }}\n />\n </Row.Item>\n )}\n </Row>\n </div>\n );\n};\n\nTag.propTypes = {\n disableAutoPlacement: PropTypes.bool,\n kind: PropTypes.oneOf([\"subdued\", \"dismissible\", \"outline\"]),\n onDismiss: PropTypes.func,\n label: PropTypes.string,\n};\n\nexport default Tag;\n","import React, { useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport cc from \"classcat\";\n\n/**\n * Checkbox behavior with the visual treatment of a physical toggle switch.\n */\nconst Toggle = ({\n defaultActive = false,\n onChange = () => {},\n labelledBy,\n label,\n}) => {\n const [isActive, setIsActive] = useState(defaultActive);\n\n const toggleActive = () => {\n onChange(!isActive);\n setIsActive(!isActive);\n };\n\n const buttonJsx = (\n <button\n className={cc([\n \"resetButton\",\n \"nds-toggle\",\n {\n \"nds-toggle--active\": isActive,\n },\n ])}\n type=\"button\"\n role=\"switch\"\n aria-checked={isActive.toString()}\n onClick={toggleActive}\n aria-labelledby={labelledBy}\n >\n <span className=\"nds-toggle-indicator elevation--low\" />\n <span className=\"nds-toggle-buttonText\">{isActive ? \"on\" : \"off\"}</span>\n </button>\n );\n\n return label ? (\n <label className=\"alignChild--center--center\">\n {buttonJsx}\n <span className=\"padding--left--xs\">{label}</span>\n </label>\n ) : (\n buttonJsx\n );\n};\n\nToggle.propTypes = {\n /**\n * Callback invoked with current active state (bool) as the function argument\n * when user changes the active state of the Toggle\n */\n onChange: PropTypes.func,\n /** When set to `true`, the toggle will initially render as active */\n defaultActive: PropTypes.bool,\n /** Label element to render to the right of the toggle */\n label: PropTypes.string,\n /** ID of element that labels the toggle control (e.g. `my-label-element`)*/\n labelledBy: PropTypes.string,\n};\n\nexport default Toggle;\n","import React, { useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { useLayer, Arrow } from \"react-laag\";\n\n/**\n * Renders a text-only tooltip on hover or focus of a trigger.\n *\n * The tooltip will position itself based on the `side` prop, but will\n * automatically reposition to avoid collisions with viewport edges.\n */\nconst Tooltip = ({\n side = \"top\",\n text,\n children,\n wrapperDisplay = \"inline-flex\",\n maxWidth = \"400px\",\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n const delays = {\n open: 500,\n close: 100,\n };\n let activeTimer;\n\n const openPopover = () => {\n clearTimeout(activeTimer);\n activeTimer = setTimeout(setIsOpen, delays.open, true);\n };\n\n const closePopover = () => {\n clearTimeout(activeTimer);\n activeTimer = setTimeout(setIsOpen, delays.close, false);\n };\n\n const { renderLayer, triggerProps, layerProps, arrowProps } = useLayer({\n isOpen,\n onOutsideClick: closePopover,\n onDisappear: closePopover,\n auto: true,\n placement: `${side}-center`,\n preferX: \"left\",\n preferY: \"top\",\n triggerOffset: 12,\n arrowOffset: 12,\n container: document.body,\n });\n\n return (\n <>\n <div\n {...triggerProps}\n aria-describedby=\"nds-tooltip\"\n style={{ display: wrapperDisplay }}\n onFocus={openPopover}\n onBlur={closePopover}\n onMouseEnter={openPopover}\n onMouseLeave={closePopover}\n role=\"button\"\n tabIndex=\"0\"\n data-testid=\"nds-tooltip-trigger\"\n >\n {children}\n </div>\n {renderLayer(\n <>\n {isOpen && (\n <div\n id=\"nds-tooltip\"\n role=\"tooltip\"\n className=\"nds-typography nds-tooltip elevation--middle\"\n {...layerProps}\n style={{ maxWidth: maxWidth, ...layerProps.style }}\n >\n {text}\n <Arrow {...arrowProps} />\n </div>\n )}\n </>\n )}\n </>\n );\n};\n\nTooltip.propTypes = {\n /** The root node of JSX passed into Tooltip as children will act as the tooltip trigger */\n children: PropTypes.node.isRequired,\n /** Message shown inside the tooltip */\n text: PropTypes.string.isRequired,\n /** Sets prefferred side of the trigger the tooltip should appear */\n side: PropTypes.oneOf([\"top\", \"right\", \"bottom\", \"left\"]),\n /** CSS `display` value for the element that wraps the Tooltip children */\n wrapperDisplay: PropTypes.oneOf([\n \"inline-flex\",\n \"inline-block\",\n \"inline\",\n \"block\",\n \"flex\",\n ]),\n /** Sets maximum width of tooltip */\n maxWidth: PropTypes.number,\n};\n\nexport default Tooltip;\n","/**\n * Wrapper for `Intl.NumberFormat` with options configured for Narmi applications.\n *\n * @example\n * import { formatNumber } from '@narmi/design_system';\n *\n * formatNumber(1234.56, 'currency'); // '$1,234.56'\n * formatNumber(34.4, 'currency'); // '$34.40'\n * formatNumber(-12, 'currency'); // '-$12'\n * formatNumber('0.0342', 'percent'); // '3.42%'\n * formatNumber(0.0023, 'percent'); // '0.23%'\n * formatNumber(0.215555, 'percent'); // '21.56%'\n *\n * @param {String|Number} input string or number to format into a number string\n * @param {String} style format style (`currency` or `percent`)\n * @returns {String} number string formatted for display\n */\nconst formatNumber = (input, style = \"currency\") => {\n let number = parseFloat(input, 10);\n let formatterOpts = {\n style,\n currencyDisplay: \"narrowSymbol\",\n maximumFractionDigits: Number.isInteger(number) ? 0 : 2,\n };\n\n // only allow currency and percentage types for now\n const validStyles = [\"currency\", \"percent\"];\n if (!validStyles.includes(style)) {\n throw new Error(\n `formatNumber: invalid style argument. Must be one of: ${JSON.stringify(\n validStyles\n )}`\n );\n }\n\n if (style === \"currency\") {\n formatterOpts.currency = \"USD\";\n }\n\n try {\n return new Intl.NumberFormat(\"en-US\", formatterOpts).format(number);\n }\n catch {\n // Failover for browsers that do not support Intl.NumberFormat\n return style === \"currency\" ? '$' + number.toFixed(2).replace(/\\d(?=(\\d{3})+\\.)/g, '$&,') : number.toFixed(2) + '%';\n }\n};\n\nexport default formatNumber;\n","/**\n * Wrapper for `Intl.DateTimeFormat` with options configured for Narmi applications.\n *\n * @example\n * import { formatDate } from '@narmi/design_system';\n *\n * formatDate(new Date('July 4, 2022'), 'short'); // '7/4/22'\n * formatDate(new Date('7/4/2022'), 'long'); // 'July 4, 2022'\n *\n * @param {Date} date native date object\n * @param {String} style formatting style (`short` or `long`)\n * @returns {String} date string formatted for display\n */\nconst formatDate = (date, style = \"short\") => {\n let formatterOpts = {\n dateStyle: style,\n };\n\n const validStyles = [\"short\", \"long\"];\n if (!validStyles.includes(style)) {\n throw new Error(\n `formatDate: invalid style argument. Must be one of: ${JSON.stringify(\n validStyles\n )}`\n );\n }\n\n return new Intl.DateTimeFormat(\"en-US\", formatterOpts).format(date);\n};\n\nexport default formatDate;\n","require(\"./index.scss\");\n\nimport Button from \"./Button\";\nimport Card from \"./Card\";\nimport Checkbox from \"./Checkbox\";\nimport ContentCard from \"./ContentCard\";\nimport DateInput from \"./DateInput\";\nimport Dialog from \"./Dialog\";\nimport Dropdown from \"./Dropdown\";\nimport DropdownTrigger from \"./DropdownTrigger\";\nimport Input from \"./Input\";\nimport LoadingShim from \"./LoadingShim\";\nimport LoadingSkeleton from \"./LoadingSkeleton\";\nimport Modal from \"./Modal\";\nimport Pagination from \"./Pagination\";\nimport PlainButton from \"./PlainButton\";\nimport Popover from \"./Popover\";\nimport RadioButtons from \"./RadioButtons\";\nimport Row from \"./Row\";\nimport Select from \"./Select\";\nimport SeparatorList from \"./SeparatorList\";\nimport Tabs from \"./Tabs\";\nimport Tag from \"./Tag\";\nimport TextInput from \"./TextInput\";\nimport Toggle from \"./Toggle\";\nimport Tooltip from \"./Tooltip\";\nimport formatNumber from \"./formatters/formatNumber\";\nimport formatDate from \"./formatters/formatDate\";\n\nexport {\n Button,\n Card,\n Checkbox,\n ContentCard,\n DateInput,\n Dialog,\n Dropdown,\n DropdownTrigger,\n Input,\n LoadingShim,\n LoadingSkeleton,\n Modal,\n Pagination,\n PlainButton,\n Popover,\n RadioButtons,\n Row,\n Select,\n SeparatorList,\n Tabs,\n Tag,\n TextInput,\n Toggle,\n Tooltip,\n formatNumber,\n formatDate,\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar TypeError = global.TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw TypeError(tryToString(argument) + ' is not a function');\n};\n","var global = require('../internals/global');\nvar isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar TypeError = global.TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw TypeError(tryToString(argument) + ' is not a constructor');\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar String = global.String;\nvar TypeError = global.TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw TypeError(\"Can't set \" + String(argument) + ' as a prototype');\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'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","var global = require('../internals/global');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw TypeError('Incorrect invocation');\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar String = global.String;\nvar TypeError = global.TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw TypeError(String(argument) + ' is not an object');\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 global = require('../internals/global');\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 = global.Array;\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var IS_CONSTRUCTOR = isConstructor(this);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined);\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod && !(this == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n result = IS_CONSTRUCTOR ? new this() : [];\n for (;!(step = call(next, iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = lengthOfArrayLike(O);\n result = IS_CONSTRUCTOR ? new this(length) : Array(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var 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 boundFunction = bind(callbackfn, that);\n var length = lengthOfArrayLike(self);\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","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call,no-throw-literal -- required for testing\n method.call(null, argument || function () { throw 1; }, 1);\n });\n};\n","var global = require('../internals/global');\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 = global.TypeError;\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n aCallable(callbackfn);\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = lengthOfArrayLike(O);\n var index = IS_RIGHT ? length - 1 : 0;\n var i = IS_RIGHT ? -1 : 1;\n if (argumentsLength < 2) while (true) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (IS_RIGHT ? index < 0 : length <= index) {\n throw TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.reduce` method\n // https://tc39.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","var global = require('../internals/global');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\n\nvar Array = global.Array;\nvar max = Math.max;\n\nmodule.exports = function (O, start, end) {\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = Array(max(fin - k, 0));\n for (var n = 0; k < fin; k++, n++) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","var global = require('../internals/global');\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 = global.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","var 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","var 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","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line 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 if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var 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","var global = require('../internals/global');\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 = global.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","var 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","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) { /* empty */ }\n } return false;\n};\n","var 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 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","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","'use strict';\nvar $ = 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/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar 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 in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (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 redefine(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 redefine(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 redefine(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","var 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","var 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","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","// 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","// 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","module.exports = typeof window == 'object';\n","var userAgent = require('../internals/engine-user-agent');\nvar global = require('../internals/global');\n\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && global.Pebble !== undefined;\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","var classof = require('../internals/classof-raw');\nvar global = require('../internals/global');\n\nmodule.exports = classof(global.process) == 'process';\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","module.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 uncurryThis = require('../internals/function-uncurry-this');\nvar redefine = require('../internals/redefine');\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 RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {};\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () { execCalled = true; return null; };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n FORCED\n ) {\n var uncurriedNativeRegExpMethod = uncurryThis(/./[SYMBOL]);\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n var uncurriedNativeMethod = uncurryThis(nativeMethod);\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: uncurriedNativeRegExpMethod(regexp, str, arg2) };\n }\n return { done: true, value: uncurriedNativeMethod(str, regexp, arg2) };\n }\n return { done: false };\n });\n\n redefine(String.prototype, KEY, methods[0]);\n redefine(RegExpPrototype, SYMBOL, methods[1]);\n }\n\n if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true);\n};\n","'use strict';\nvar global = require('../internals/global');\nvar isArray = require('../internals/is-array');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar bind = require('../internals/function-bind-context');\n\nvar TypeError = global.TypeError;\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 if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","var FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar bind = FunctionPrototype.bind;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (bind ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\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 : bind ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var call = Function.prototype.call;\n\nmodule.exports = call.bind ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","var 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","var FunctionPrototype = Function.prototype;\nvar bind = FunctionPrototype.bind;\nvar call = FunctionPrototype.call;\nvar callBind = bind && bind.bind(call);\n\nmodule.exports = bind ? function (fn) {\n return fn && callBind(call, fn);\n} : function (fn) {\n return fn && function () {\n return call.apply(fn, arguments);\n };\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","var global = require('../internals/global');\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 = global.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 TypeError(tryToString(argument) + ' is not iterable');\n};\n","var aCallable = require('../internals/a-callable');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return func == null ? undefined : aCallable(func);\n};\n","var 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);\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","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line 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 // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","var 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\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","module.exports = {};\n","var global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n var console = global.console;\n if (console && console.error) {\n arguments.length == 1 ? console.error(a) : console.error(a, b);\n }\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- requied for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar Object = global.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","var 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","var 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","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-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 = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw 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 var wmget = uncurryThis(store.get);\n var wmhas = uncurryThis(store.has);\n var wmset = uncurryThis(store.set);\n set = function (it, metadata) {\n if (wmhas(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget(store, it) || {};\n };\n has = function (it) {\n return wmhas(store, 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","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var 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","// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = function (argument) {\n return typeof argument == 'function';\n};\n","var 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 empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, 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","var 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","var 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","var isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","module.exports = false;\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.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","var global = require('../internals/global');\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 = global.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","var global = require('../internals/global');\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 = global.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_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_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw 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 = 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","var 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 fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar redefine = require('../internals/redefine');\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 = IteratorPrototype == undefined || 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 redefine(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","module.exports = {};\n","var 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","var global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar macrotask = require('../internals/task').set;\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_IOS_PEBBLE = require('../internals/engine-is-ios-pebble');\nvar IS_WEBOS_WEBKIT = require('../internals/engine-is-webos-webkit');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar document = global.document;\nvar process = global.process;\nvar Promise = global.Promise;\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\n\nvar flush, head, last, notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!queueMicrotask) {\n flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (error) {\n if (head) notify();\n else last = undefined;\n throw error;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // 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.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n // strange IE + webpack dev server bug - use .bind(global)\n macrotask = bind(macrotask, global);\n notify = function () {\n macrotask(flush);\n };\n }\n}\n\nmodule.exports = queueMicrotask || function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n};\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\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","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(inspectSource(WeakMap));\n","'use strict';\nvar aCallable = require('../internals/a-callable');\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = 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","var global = require('../internals/global');\nvar isRegExp = require('../internals/is-regexp');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar charAt = uncurryThis(''.charAt);\nvar n$ParseFloat = global.parseFloat;\nvar Symbol = global.Symbol;\nvar ITERATOR = Symbol && Symbol.iterator;\nvar FORCED = 1 / n$ParseFloat(whitespaces + '-0') !== -Infinity\n // MS Edge 18- broken with boxed symbols\n || (ITERATOR && !fails(function () { n$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 = n$ParseFloat(trimmedString);\n return result === 0 && charAt(trimmedString, 0) == '-' ? -0 : result;\n} : n$ParseFloat;\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar $parseInt = global.parseInt;\nvar Symbol = global.Symbol;\nvar ITERATOR = Symbol && Symbol.iterator;\nvar hex = /^[+-]?0x/i;\nvar exec = uncurryThis(hex.exec);\nvar FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22\n // MS Edge 18- broken with boxed symbols\n || (ITERATOR && !fails(function () { $parseInt(Object(ITERATOR)); }));\n\n// `parseInt` method\n// https://tc39.es/ecma262/#sec-parseint-string-radix\nmodule.exports = FORCED ? function parseInt(string, radix) {\n var S = trim(toString(string));\n return $parseInt(S, (radix >>> 0) || (exec(hex, S) ? 16 : 10));\n} : $parseInt;\n","'use strict';\nvar 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();\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","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar defineProperties = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n 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\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\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\nmodule.exports = DESCRIPTORS ? 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","var global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar TypeError = global.TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? $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 TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var 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","/* 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-simple');\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","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.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","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var global = require('../internals/global');\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 = global.Object;\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\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","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","var 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","var 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","/* eslint-disable no-proto -- safe */\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n setter = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set);\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","var DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\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// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n return function (it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || propertyIsEnumerable(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","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar TypeError = global.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 TypeError(\"Can't convert object to primitive value\");\n};\n","var 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","var global = require('../internals/global');\n\nmodule.exports = global;\n","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","var redefine = require('../internals/redefine');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) redefine(target, key, src[key], options);\n return target;\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n var name = options && options.name !== undefined ? options.name : key;\n var state;\n if (isCallable(value)) {\n if (String(name).slice(0, 7) === 'Symbol(') {\n name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n createNonEnumerableProperty(value, 'name', name);\n }\n state = enforceInternalState(value);\n if (!state.source) {\n state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\n }\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n});\n","var global = require('../internals/global');\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 = global.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 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' 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.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nvar UNSUPPORTED_Y = fails(function () {\n var re = $RegExp('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') != null;\n});\n\n// UC Browser bug\n// https://github.com/zloirock/core-js/issues/1008\nvar MISSED_STICKY = UNSUPPORTED_Y || fails(function () {\n return !$RegExp('a', 'y').sticky;\n});\n\nvar BROKEN_CARET = UNSUPPORTED_Y || fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = $RegExp('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') != null;\n});\n\nmodule.exports = {\n BROKEN_CARET: BROKEN_CARET,\n MISSED_STICKY: MISSED_STICKY,\n UNSUPPORTED_Y: UNSUPPORTED_Y\n};\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('.', 's');\n return !(re.dotAll && re.exec('\\n') && re.flags === 's');\n});\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('(?<a>b)', 'g') -> /(?<a>b)/g and it causes SyntaxError\nvar $RegExp = global.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","var global = require('../internals/global');\n\nvar TypeError = global.TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\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","var global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","var 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","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.20.0',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2021 Denis Pushkarev (zloirock.ru)'\n});\n","var anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\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 || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aConstructor(S);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","'use strict';\nvar global = require('../internals/global');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar RangeError = global.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 RangeError('Wrong number of repetitions');\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;\n return result;\n};\n","var 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 whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = toString(requireObjectCoercible($this));\n if (TYPE & 1) string = replace(string, ltrim, '');\n if (TYPE & 2) string = replace(string, rtrim, '');\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","var global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind-context');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar fails = require('../internals/fails');\nvar html = require('../internals/html');\nvar arraySlice = require('../internals/array-slice');\nvar createElement = require('../internals/document-create-element');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar Dispatch = global.Dispatch;\nvar Function = global.Function;\nvar MessageChannel = global.MessageChannel;\nvar String = global.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar location, defer, channel, port;\n\ntry {\n // Deno throws a ReferenceError on `location` access without `--location` flag\n location = global.location;\n} catch (error) { /* empty */ }\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 listener = function (event) {\n run(event.data);\n};\n\nvar post = function (id) {\n // old engines have not location.origin\n global.postMessage(String(id), location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(fn) {\n var args = arraySlice(arguments, 1);\n queue[++counter] = function () {\n apply(isCallable(fn) ? fn : Function(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 = listener;\n defer = bind(port.postMessage, port);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n isCallable(global.postMessage) &&\n !global.importScripts &&\n location && location.protocol !== 'file:' &&\n !fails(post)\n ) {\n defer = post;\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var 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","var 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","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\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 -- safe\n return number !== number || number === 0 ? 0 : (number > 0 ? floor : ceil)(number);\n};\n","var 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 return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var global = require('../internals/global');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar Object = global.Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var global = require('../internals/global');\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 = global.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 TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var 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","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var global = require('../internals/global');\nvar classof = require('../internals/classof');\n\nvar String = global.String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return String(argument);\n};\n","var global = require('../internals/global');\n\nvar String = global.String;\n\nmodule.exports = function (argument) {\n try {\n return String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var 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","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n var description = 'Symbol.' + name;\n if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else if (USE_SYMBOL_AS_UID && symbolFor) {\n WellKnownSymbolsStore[name] = symbolFor(description);\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n }\n } return WellKnownSymbolsStore[name];\n};\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 $ = require('../internals/export');\nvar global = require('../internals/global');\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 createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';\nvar TypeError = global.TypeError;\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, 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 if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","'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 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","var $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n // 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 addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.includes` method\n// https://tc39.es/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true }, {\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');\nvar $IndexOf = require('../internals/array-includes').indexOf;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar un$IndexOf = uncurryThis([].indexOf);\n\nvar NEGATIVE_ZERO = !!un$IndexOf && 1 / un$IndexOf([1], 1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('indexOf');\n\n// `Array.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-array.prototype.indexof\n$({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || !STRICT_METHOD }, {\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 ? un$IndexOf(this, searchElement, fromIndex) || 0\n : $IndexOf(this, searchElement, fromIndex);\n }\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/define-iterator');\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 kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.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 un$Join = uncurryThis([].join);\n\nvar ES3_STRINGS = IndexedObject != Object;\nvar STRICT_METHOD = arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.es/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, {\n join: function join(separator) {\n return un$Join(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\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 $reduce = require('../internals/array-reduce').left;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar CHROME_VERSION = require('../internals/engine-v8-version');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar STRICT_METHOD = arrayMethodIsStrict('reduce');\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;\n\n// `Array.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || CHROME_BUG }, {\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 global = require('../internals/global');\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 un$Slice = require('../internals/array-slice');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar Array = global.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 un$Slice(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","// 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","var DESCRIPTORS = require('../internals/descriptors');\nvar FUNCTION_NAME_EXISTS = require('../internals/function-name').EXISTS;\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineProperty = require('../internals/object-define-property').f;\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 defineProperty(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 DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar hasOwn = require('../internals/has-own-property');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isSymbol = require('../internals/is-symbol');\nvar toPrimitive = require('../internals/to-primitive');\nvar fails = require('../internals/fails');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar thisNumberValue = require('../internals/this-number-value');\nvar trim = require('../internals/string-trim').trim;\n\nvar NUMBER = 'Number';\nvar NativeNumber = global[NUMBER];\nvar NumberPrototype = NativeNumber.prototype;\nvar TypeError = global.TypeError;\nvar arraySlice = 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 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 case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i\n default: return +it;\n }\n digits = arraySlice(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\n// `Number` constructor\n// https://tc39.es/ecma262/#sec-number-constructor\nif (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) {\n var NumberWrapper = function Number(value) {\n var n = arguments.length < 1 ? 0 : NativeNumber(toNumeric(value));\n var dummy = this;\n // check on 1..constructor(foo) case\n return isPrototypeOf(NumberPrototype, dummy) && fails(function () { thisNumberValue(dummy); })\n ? inheritIfRequired(Object(n), dummy, NumberWrapper) : n;\n };\n for (var keys = DESCRIPTORS ? getOwnPropertyNames(NativeNumber) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES2015 (in case, if modules with ES2015 Number statics required before):\n 'EPSILON,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(NativeNumber, key = keys[j]) && !hasOwn(NumberWrapper, key)) {\n defineProperty(NumberWrapper, key, getOwnPropertyDescriptor(NativeNumber, key));\n }\n }\n NumberWrapper.prototype = NumberPrototype;\n NumberPrototype.constructor = NumberWrapper;\n redefine(global, NUMBER, NumberWrapper);\n}\n","var $ = require('../internals/export');\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 global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar thisNumberValue = require('../internals/this-number-value');\nvar $repeat = require('../internals/string-repeat');\nvar fails = require('../internals/fails');\n\nvar RangeError = global.RangeError;\nvar String = global.String;\nvar floor = Math.floor;\nvar repeat = uncurryThis($repeat);\nvar stringSlice = uncurryThis(''.slice);\nvar un$ToFixed = uncurryThis(1.0.toFixed);\n\nvar pow = function (x, n, acc) {\n return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\n\nvar log = function (x) {\n var n = 0;\n var x2 = x;\n while (x2 >= 4096) {\n n += 12;\n x2 /= 4096;\n }\n while (x2 >= 2) {\n n += 1;\n x2 /= 2;\n } return n;\n};\n\nvar multiply = function (data, n, c) {\n var index = -1;\n var c2 = c;\n while (++index < 6) {\n c2 += n * data[index];\n data[index] = c2 % 1e7;\n c2 = floor(c2 / 1e7);\n }\n};\n\nvar divide = function (data, n) {\n var index = 6;\n var c = 0;\n while (--index >= 0) {\n c += data[index];\n data[index] = floor(c / n);\n c = (c % n) * 1e7;\n }\n};\n\nvar dataToString = function (data) {\n var index = 6;\n var s = '';\n while (--index >= 0) {\n if (s !== '' || index === 0 || data[index] !== 0) {\n var t = String(data[index]);\n s = s === '' ? t : s + repeat('0', 7 - t.length) + t;\n }\n } return s;\n};\n\nvar FORCED = fails(function () {\n return un$ToFixed(0.00008, 3) !== '0.000' ||\n un$ToFixed(0.9, 0) !== '1' ||\n un$ToFixed(1.255, 2) !== '1.25' ||\n un$ToFixed(1000000000000000128.0, 0) !== '1000000000000000128';\n}) || !fails(function () {\n // V8 ~ Android 4.3-\n un$ToFixed({});\n});\n\n// `Number.prototype.toFixed` method\n// https://tc39.es/ecma262/#sec-number.prototype.tofixed\n$({ target: 'Number', proto: true, forced: FORCED }, {\n toFixed: function toFixed(fractionDigits) {\n var number = thisNumberValue(this);\n var fractDigits = toIntegerOrInfinity(fractionDigits);\n var data = [0, 0, 0, 0, 0, 0];\n var sign = '';\n var result = '0';\n var e, z, j, k;\n\n // TODO: ES2018 increased the maximum number of fraction digits to 100, need to improve the implementation\n if (fractDigits < 0 || fractDigits > 20) throw RangeError('Incorrect fraction digits');\n // eslint-disable-next-line no-self-compare -- NaN check\n if (number != number) return 'NaN';\n if (number <= -1e21 || number >= 1e21) return String(number);\n if (number < 0) {\n sign = '-';\n number = -number;\n }\n if (number > 1e-21) {\n e = log(number * pow(2, 69, 1)) - 69;\n z = e < 0 ? number * pow(2, -e, 1) : number / pow(2, e, 1);\n z *= 0x10000000000000;\n e = 52 - e;\n if (e > 0) {\n multiply(data, 0, z);\n j = fractDigits;\n while (j >= 7) {\n multiply(data, 1e7, 0);\n j -= 7;\n }\n multiply(data, pow(10, j, 1), 0);\n j = e - 1;\n while (j >= 23) {\n divide(data, 1 << 23);\n j -= 23;\n }\n divide(data, 1 << j);\n multiply(data, 1, 1);\n divide(data, 2);\n result = dataToString(data);\n } else {\n multiply(data, 0, z);\n multiply(data, 1 << -e, 0);\n result = dataToString(data) + repeat('0', fractDigits);\n }\n }\n if (fractDigits > 0) {\n k = result.length;\n result = sign + (k <= fractDigits\n ? '0.' + repeat('0', fractDigits - k) + result\n : stringSlice(result, 0, k - fractDigits) + '.' + stringSlice(result, k - fractDigits));\n } else {\n result = sign + result;\n } return result;\n }\n});\n","var $ = 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, forced: Object.assign !== assign }, {\n assign: assign\n});\n","var $ = 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","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetOwnPropertyDescriptor(1); });\nvar FORCED = !DESCRIPTORS || FAILS_ON_PRIMITIVES;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.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","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar ownKeys = require('../internals/own-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar createProperty = require('../internals/create-property');\n\n// `Object.getOwnPropertyDescriptors` method\n// https://tc39.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","var $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar nativeKeys = require('../internals/object-keys');\nvar fails = require('../internals/fails');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.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","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar redefine = require('../internals/redefine');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","var $ = 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","var $ = 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 IS_PURE = require('../internals/is-pure');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar call = require('../internals/function-call');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\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 inspectSource = require('../internals/inspect-source');\nvar iterate = require('../internals/iterate');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar promiseResolve = require('../internals/promise-resolve');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar InternalStateModule = require('../internals/internal-state');\nvar isForced = require('../internals/is-forced');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_BROWSER = require('../internals/engine-is-browser');\nvar IS_NODE = require('../internals/engine-is-node');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\nvar PROMISE = 'Promise';\n\nvar getInternalState = InternalStateModule.getterFor(PROMISE);\nvar setInternalState = InternalStateModule.set;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar NativePromisePrototype = NativePromise && NativePromise.prototype;\nvar PromiseConstructor = NativePromise;\nvar PromisePrototype = NativePromisePrototype;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\n\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar NATIVE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\nvar SUBCLASSING = false;\n\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\nvar FORCED = isForced(PROMISE, function () {\n var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(PromiseConstructor);\n var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(PromiseConstructor);\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#finally in the pure version for preventing prototype pollution\n if (IS_PURE && !PromisePrototype['finally']) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (V8_VERSION >= 51 && /native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) return false;\n // Detect correctness of subclassing with @@species support\n var promise = new PromiseConstructor(function (resolve) { resolve(1); });\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n if (!SUBCLASSING) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n return !GLOBAL_CORE_JS_PROMISE && IS_BROWSER && !NATIVE_REJECTION_EVENT;\n});\n\nvar INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {\n PromiseConstructor.all(iterable)['catch'](function () { /* empty */ });\n});\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && isCallable(then = it.then) ? then : false;\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n var chain = state.reactions;\n microtask(function () {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var index = 0;\n // variable length - can't use forEach\n while (chain.length > index) {\n var reaction = chain[index++];\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n 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 state.reactions = [];\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (!NATIVE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (state.facade === value) throw 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) {\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 = getInternalState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n PromisePrototype = PromiseConstructor.prototype;\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: [],\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n Internal.prototype = redefineAll(PromisePrototype, {\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n then: function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reactions = state.reactions;\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;\n reaction.fail = isCallable(onRejected) && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n state.parent = true;\n reactions[reactions.length] = reaction;\n if (state.state != PENDING) notify(state, false);\n return reaction.promise;\n },\n // `Promise.prototype.catch` method\n // https://tc39.es/ecma262/#sec-promise.prototype.catch\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && isCallable(NativePromise) && NativePromisePrototype !== Object.prototype) {\n nativeThen = NativePromisePrototype.then;\n\n if (!SUBCLASSING) {\n // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n redefine(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 // makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\n redefine(NativePromisePrototype, 'catch', PromisePrototype['catch'], { 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, wrap: true, forced: FORCED }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n\nPromiseWrapper = getBuiltIn(PROMISE);\n\n// statics\n$({ target: PROMISE, stat: true, forced: FORCED }, {\n // `Promise.reject` method\n // https://tc39.es/ecma262/#sec-promise.reject\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n call(capability.reject, undefined, r);\n return capability.promise;\n }\n});\n\n$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, {\n // `Promise.resolve` method\n // https://tc39.es/ecma262/#sec-promise.resolve\n resolve: function resolve(x) {\n return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);\n }\n});\n\n$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {\n // `Promise.all` method\n // https://tc39.es/ecma262/#sec-promise.all\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = 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 // `Promise.race` method\n // https://tc39.es/ecma262/#sec-promise.race\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = 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 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 uncurryThis = require('../internals/function-uncurry-this');\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar redefine = require('../internals/redefine');\nvar anObject = require('../internals/an-object');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar $toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar regExpFlags = require('../internals/regexp-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar n$ToString = RegExpPrototype[TO_STRING];\nvar getFlags = uncurryThis(regExpFlags);\n\nvar NOT_GENERIC = fails(function () { return n$ToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = PROPER_FUNCTION_NAME && n$ToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = $toString(R.source);\n var rf = R.flags;\n var f = $toString(rf === undefined && isPrototypeOf(RegExpPrototype, R) && !('flags' in RegExpPrototype) ? getFlags(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\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/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.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 { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\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 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 = searchValue == undefined ? 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 if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n 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 // 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 var 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 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 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 = regexp == undefined ? 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","// `Symbol.prototype.description` getter\n// https://tc39.es/ecma262/#sec-symbol.prototype.description\n'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar toString = require('../internals/to-string');\nvar defineProperty = require('../internals/object-define-property').f;\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar NativeSymbol = global.Symbol;\nvar SymbolPrototype = NativeSymbol && NativeSymbol.prototype;\n\nif (DESCRIPTORS && isCallable(NativeSymbol) && (!('description' in SymbolPrototype) ||\n // Safari 12 bug\n NativeSymbol().description !== undefined\n)) {\n var EmptyStringDescriptionStore = {};\n // wrap Symbol constructor for correct work with undefined description\n var SymbolWrapper = function Symbol() {\n var description = arguments.length < 1 || arguments[0] === undefined ? undefined : toString(arguments[0]);\n var result = isPrototypeOf(SymbolPrototype, this)\n ? new NativeSymbol(description)\n // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n : description === undefined ? NativeSymbol() : NativeSymbol(description);\n if (description === '') EmptyStringDescriptionStore[result] = true;\n return result;\n };\n\n copyConstructorProperties(SymbolWrapper, NativeSymbol);\n SymbolWrapper.prototype = SymbolPrototype;\n SymbolPrototype.constructor = SymbolWrapper;\n\n var NATIVE_SYMBOL = String(NativeSymbol('test')) == 'Symbol(test)';\n var symbolToString = uncurryThis(SymbolPrototype.toString);\n var symbolValueOf = uncurryThis(SymbolPrototype.valueOf);\n var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n var replace = uncurryThis(''.replace);\n var stringSlice = uncurryThis(''.slice);\n\n defineProperty(SymbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n var symbol = symbolValueOf(this);\n var string = symbolToString(symbol);\n if (hasOwn(EmptyStringDescriptionStore, symbol)) return '';\n var desc = NATIVE_SYMBOL ? stringSlice(string, 7, -1) : replace(string, regexp, '$1');\n return desc === '' ? undefined : desc;\n }\n });\n\n $({ global: true, forced: true }, {\n Symbol: SymbolWrapper\n });\n}\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\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 IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar isArray = require('../internals/is-array');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isSymbol = require('../internals/is-symbol');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-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 propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar arraySlice = require('../internals/array-slice');\nvar redefine = require('../internals/redefine');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineWellKnownSymbol = require('../internals/define-well-known-symbol');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\n\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar SymbolPrototype = $Symbol && $Symbol[PROTOTYPE];\nvar TypeError = global.TypeError;\nvar QObject = global.QObject;\nvar $stringify = getBuiltIn('JSON', 'stringify');\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 StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\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 setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (O, P, Attributes) {\n var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n nativeDefineProperty(O, P, Attributes);\n if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n }\n} : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n var symbol = AllSymbols[tag] = nativeObjectCreate(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, {}));\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 getOwnPropertySymbols(O) {\n var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (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 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 if (this === ObjectPrototype) call(setter, ObjectPrototypeSymbols, value);\n if (hasOwn(this, HIDDEN) && hasOwn(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));\n };\n if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n return wrap(tag, description);\n };\n\n SymbolPrototype = $Symbol[PROTOTYPE];\n\n redefine(SymbolPrototype, 'toString', function toString() {\n return getInternalState(this).tag;\n });\n\n redefine($Symbol, 'withoutSetter', function (description) {\n return wrap(uid(description), description);\n });\n\n propertyIsEnumerableModule.f = $propertyIsEnumerable;\n definePropertyModule.f = $defineProperty;\n getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n wrappedWellKnownSymbolModule.f = function (name) {\n return wrap(wellKnownSymbol(name), name);\n };\n\n if (DESCRIPTORS) {\n // https://github.com/tc39/proposal-Symbol-description\n nativeDefineProperty(SymbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n if (!IS_PURE) {\n redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n }\n }\n}\n\n$({ global: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n // `Symbol.for` method\n // https://tc39.es/ecma262/#sec-symbol.for\n 'for': function (key) {\n var string = $toString(key);\n if (hasOwn(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n var symbol = $Symbol(string);\n StringToSymbolRegistry[string] = symbol;\n SymbolToStringRegistry[symbol] = string;\n return symbol;\n },\n // `Symbol.keyFor` method\n // https://tc39.es/ecma262/#sec-symbol.keyfor\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol');\n if (hasOwn(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n },\n useSetter: function () { USE_SETTER = true; },\n useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n // `Object.create` method\n // https://tc39.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 // `Object.getOwnPropertySymbols` method\n // https://tc39.es/ecma262/#sec-object.getownpropertysymbols\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\n$({ target: 'Object', stat: true, forced: fails(function () { getOwnPropertySymbolsModule.f(1); }) }, {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return getOwnPropertySymbolsModule.f(toObject(it));\n }\n});\n\n// `JSON.stringify` method behavior with symbols\n// https://tc39.es/ecma262/#sec-json.stringify\nif ($stringify) {\n var FORCED_JSON_STRINGIFY = !NATIVE_SYMBOL || fails(function () {\n var symbol = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n return $stringify([symbol]) != '[null]'\n // WebKit converts symbol values to JSON as null\n || $stringify({ a: symbol }) != '{}'\n // V8 throws on boxed symbols\n || $stringify(Object(symbol)) != '{}';\n });\n\n $({ target: 'JSON', stat: true, forced: FORCED_JSON_STRINGIFY }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n stringify: function stringify(it, replacer, space) {\n var args = arraySlice(arguments);\n var $replacer = replacer;\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (isCallable($replacer)) value = call($replacer, this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return apply($stringify, null, args);\n }\n });\n}\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\nif (!SymbolPrototype[TO_PRIMITIVE]) {\n var valueOf = SymbolPrototype.valueOf;\n // eslint-disable-next-line no-unused-vars -- required for .length\n redefine(SymbolPrototype, TO_PRIMITIVE, function (hint) {\n // TODO: improve hint logic\n return call(valueOf, this);\n });\n}\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar handlePrototype = function (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n if (DOMIterables[COLLECTION_NAME]) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype);\n }\n}\n\nhandlePrototype(DOMTokenListPrototype);\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\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 if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype, COLLECTION_NAME);\n}\n\nhandlePrototype(DOMTokenListPrototype, 'DOMTokenList');\n","\"use strict\";\nif (typeof Object.assign !== \"function\") {\n Object.assign = function (target, ...args) {\n if (!target) {\n throw TypeError(\"Cannot convert undefined or null to object\");\n }\n for (const source of args) {\n if (source) {\n Object.keys(source).forEach((key) => (target[key] = source[key]));\n }\n }\n return target;\n };\n}\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.default = {}));\n}(this, (function (exports) { 'use strict';\n\n var english = {\n weekdays: {\n shorthand: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n longhand: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ],\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n longhand: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n },\n daysInMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],\n firstDayOfWeek: 0,\n ordinal: function (nth) {\n var s = nth % 100;\n if (s > 3 && s < 21)\n return \"th\";\n switch (s % 10) {\n case 1:\n return \"st\";\n case 2:\n return \"nd\";\n case 3:\n return \"rd\";\n default:\n return \"th\";\n }\n },\n rangeSeparator: \" to \",\n weekAbbreviation: \"Wk\",\n scrollTitle: \"Scroll to increment\",\n toggleTitle: \"Click to toggle\",\n amPM: [\"AM\", \"PM\"],\n yearAriaLabel: \"Year\",\n monthAriaLabel: \"Month\",\n hourAriaLabel: \"Hour\",\n minuteAriaLabel: \"Minute\",\n time_24hr: false,\n };\n\n exports.default = english;\n exports.english = english;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/** @license React v17.0.2\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=60103,c=60106,d=60107,e=60108,f=60114,g=60109,h=60110,k=60112,l=60113,m=60120,n=60115,p=60116,q=60121,r=60122,u=60117,v=60129,w=60131;\nif(\"function\"===typeof Symbol&&Symbol.for){var x=Symbol.for;b=x(\"react.element\");c=x(\"react.portal\");d=x(\"react.fragment\");e=x(\"react.strict_mode\");f=x(\"react.profiler\");g=x(\"react.provider\");h=x(\"react.context\");k=x(\"react.forward_ref\");l=x(\"react.suspense\");m=x(\"react.suspense_list\");n=x(\"react.memo\");p=x(\"react.lazy\");q=x(\"react.block\");r=x(\"react.server.block\");u=x(\"react.fundamental\");v=x(\"react.debug_trace_mode\");w=x(\"react.legacy_hidden\")}\nfunction y(a){if(\"object\"===typeof a&&null!==a){var t=a.$$typeof;switch(t){case b:switch(a=a.type,a){case d:case f:case e:case l:case m:return a;default:switch(a=a&&a.$$typeof,a){case h:case k:case p:case n:case g:return a;default:return t}}case c:return t}}}var z=g,A=b,B=k,C=d,D=p,E=n,F=c,G=f,H=e,I=l;exports.ContextConsumer=h;exports.ContextProvider=z;exports.Element=A;exports.ForwardRef=B;exports.Fragment=C;exports.Lazy=D;exports.Memo=E;exports.Portal=F;exports.Profiler=G;exports.StrictMode=H;\nexports.Suspense=I;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return y(a)===h};exports.isContextProvider=function(a){return y(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return y(a)===k};exports.isFragment=function(a){return y(a)===d};exports.isLazy=function(a){return y(a)===p};exports.isMemo=function(a){return y(a)===n};\nexports.isPortal=function(a){return y(a)===c};exports.isProfiler=function(a){return y(a)===f};exports.isStrictMode=function(a){return y(a)===e};exports.isSuspense=function(a){return y(a)===l};exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===v||a===e||a===l||a===m||a===w||\"object\"===typeof a&&null!==a&&(a.$$typeof===p||a.$$typeof===n||a.$$typeof===g||a.$$typeof===h||a.$$typeof===k||a.$$typeof===u||a.$$typeof===q||a[0]===r)?!0:!1};\nexports.typeOf=y;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","module.exports = __WEBPACK_EXTERNAL_MODULE__9787__;","module.exports = __WEBPACK_EXTERNAL_MODULE__5156__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// startup\n// Load entry module and return exports\n// This entry module doesn't tell about it's top-level declarations so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(7248);\n"],"names":["root","factory","exports","module","require","define","amd","a","i","self","this","__WEBPACK_EXTERNAL_MODULE__9787__","__WEBPACK_EXTERNAL_MODULE__5156__","cc","names","out","Array","isArray","tmp","length","k","VALID_ELEMENTS","AsElement","elementType","children","rest","Element","includes","propTypes","PropTypes","isRequired","RowItem","shrink","as","className","_getRowStyle","alignItems","justifyContent","gapSize","result","gap","Row","style","Item","VALID_ICON_NAMES","iconSelection","icon","properties","name","Button","disabled","kind","startIcon","endIcon","label","onClick","otherProps","isButtonElement","buttonLabel","Icon","role","tabIndex","resetButton","undefined","Card","props","iconSize","classes","hoverable","toString","selected","display","title","fontSize","button","defaultProps","Checkbox","onChange","id","defaultChecked","checked","value","useState","isChecked","setIsChecked","isFocused","setIsFocused","isCard","onFocus","onBlur","e","type","ContentCard","paddingSize","isSelected","variant","isInteractive","onKeyUp","key","propName","Error","error","Input","startIconClass","multiline","decoration","search","join","htmlFor","HOOKS","defaults","_disable","allowInput","allowInvalidPreload","altFormat","altInput","altInputClass","animate","window","navigator","userAgent","indexOf","ariaDateFormat","autoFillDefaultTime","clickOpens","closeOnSelect","conjunction","dateFormat","defaultHour","defaultMinute","defaultSeconds","disable","disableMobile","enableSeconds","enableTime","errorHandler","err","console","warn","getWeek","givenDate","date","Date","getTime","setHours","setDate","getDate","getDay","week1","getFullYear","Math","round","hourIncrement","ignoredFocusElements","inline","locale","minuteIncrement","mode","monthSelectorType","nextArrow","noCalendar","now","onClose","onDayCreate","onDestroy","onKeyDown","onMonthChange","onOpen","onParseConfig","onReady","onValueUpdate","onYearChange","onPreCalendarPosition","plugins","position","positionElement","prevArrow","shorthandCurrentMonth","showMonths","static","time_24hr","weekNumbers","wrap","english","weekdays","shorthand","longhand","months","daysInMonth","firstDayOfWeek","ordinal","nth","s","rangeSeparator","weekAbbreviation","scrollTitle","toggleTitle","amPM","yearAriaLabel","monthAriaLabel","hourAriaLabel","minuteAriaLabel","pad","number","slice","bool","debounce","fn","wait","t","clearTimeout","setTimeout","apply","arguments","arrayify","obj","toggleClass","elem","classList","add","remove","createElement","tag","content","document","textContent","clearNode","node","firstChild","removeChild","findParent","condition","parentNode","createNumberInput","inputClassName","opts","wrapper","numInput","arrowUp","arrowDown","pattern","setAttribute","appendChild","getEventTarget","event","composedPath","target","doNothing","monthToStr","monthNumber","revFormat","D","F","dateObj","monthName","setMonth","G","hour","parseFloat","H","J","day","K","getHours","RegExp","test","M","shortMonth","S","seconds","setSeconds","U","_","unixSeconds","W","weekNum","weekNumber","parseInt","Y","year","setFullYear","Z","ISODate","d","h","minutes","setMinutes","j","l","m","month","n","u","unixMillSeconds","w","y","tokenRegex","formats","toISOString","options","getMonth","getSeconds","getMinutes","String","substring","createDateFormatter","config","l10n","isMobile","frmt","overrideLocale","formatDate","split","map","c","arr","createDateParser","givenFormat","timeless","customLocale","parsedDate","dateOrig","toFixed","format","datestr","trim","parseDate","matched","ops","matchIndex","regexStr","token","isBackSlash","escaped","match","exec","val","forEach","isNaN","compareDates","date1","date2","getDefaultHours","hours","minDate","minHour","minMinutes","minSeconds","maxDate","maxHr","maxMinutes","min","FlatpickrInstance","element","instanceConfig","Object","assign","flatpickr","defaultConfig","bindToInstance","bind","setCalendarWidth","requestAnimationFrame","calendarContainer","visibility","daysContainer","daysWidth","days","offsetWidth","width","weekWrapper","removeProperty","updateTime","selectedDates","defaultDate","getMilliseconds","latestSelectedDateObj","preventDefault","isKeyDown","eventTarget","input","getAttribute","max","step","curValue","newValue","delta","which","isHourElem","hourElement","isMinuteElem","minuteElement","incrementNumInput","abs","timeWrapper","prevValue","_input","setHoursFromInputs","updateValue","_debouncedChange","secondElement","limitMinHours","minTime","minDateHasTime","maxTime","maxDateHasTime","setHoursFromDate","onYearInput","changeYear","handler","ev","el","addEventListener","_handlers","push","removeEventListener","triggerChange","triggerEvent","jumpToDate","jumpDate","jumpTo","oldYear","currentYear","oldMonth","currentMonth","message","buildMonthSwitch","redraw","timeIncrement","contains","inputElem","createEvent","dispatchEvent","createDay","dayNumber","dateIsEnabled","isEnabled","dayElement","$i","todayDateElem","isDateSelected","selectedDateElem","isDateInRange","insertAdjacentHTML","focusOnDayElem","targetNode","focus","onMouseOver","getFirstAvailableDay","startMonth","endMonth","startIndex","endIndex","focusOnDay","current","offset","dayFocused","isInView","activeElement","body","startElem","givenMonth","loopDelta","numMonthDays","changeMonth","getNextAvailableDay","buildMonthDays","firstOfMonth","prevMonthDays","utils","getDaysInMonth","createDocumentFragment","isMultiMonth","prevMonthDayClass","nextMonthDayClass","dayIndex","dayNum","dayContainer","buildDays","frag","shouldBuildMonth","monthsDropdownContainer","innerHTML","buildMonth","container","monthNavFragment","monthElement","selectedMonth","yearInput","tabindex","yearElement","getElementsByTagName","buildMonths","monthNav","prevMonthNav","yearElements","monthElements","nextMonthNav","buildWeekdays","weekdayContainer","updateWeekdays","splice","isOffset","_hidePrevMonthArrow","_hideNextMonthArrow","updateNavigationCurrentMonth","isCalendarElem","appendTo","documentClick","isOpen","isCalendarElement","isInput","path","lostFocus","relatedTarget","isIgnored","some","timeContainer","close","clear","newYear","newYearNum","isNewYear","_a","dateToCheck","enable","array","parsed","from","to","allowKeydown","allowInlineKeydown","keyCode","blur","open","isTimeObj","focusAndClose","selectDate","ctrlKey","stopPropagation","currentYearElement","elems","concat","pluginElements","filter","x","shiftKey","charAt","toLowerCase","hoverDate","firstElementChild","initialDate","rangeStartDate","rangeEndDate","containsDisabled","minRange","maxRange","dayElem","timestamp","outOfRange","ts1","ts2","ts","onResize","positionCalendar","minMaxDateSetter","inverseDateObj","removeAttribute","getInputElem","querySelector","setupLocale","l10ns","default","JSON","parse","stringify","dataset","customPositionElement","_positionElement","calendarHeight","prototype","reduce","call","acc","child","offsetHeight","calendarWidth","configPos","configPosVertical","configPosHorizontal","inputBounds","getBoundingClientRect","distanceFromBottom","innerHeight","bottom","showOnTop","top","pageYOffset","left","pageXOffset","isCenter","isRight","right","rightMost","centerMost","doc","editableSheet","styleSheets","sheet","cssRules","head","createStyleSheet","getDocumentStyleSheet","bodyWidth","centerLeft","centerBefore","centerAfter","centerIndex","centerStyle","insertRule","msMaxTouchPoints","selectedDate","shouldChangeMonth","selectedIndex","sort","b","single","range","loadedPlugins","_bind","_setHoursFromDate","_positionCalendar","triggerChangeEvent","toInitial","mobileInput","_initialDate","_createElement","destroy","lastChild","insertBefore","_type","click","wasOpen","select","set","option","CALLBACKS","setSelectedDate","toggle","inputDate","dates","parseDateRules","rule","data","hooks","initEvent","getDateStr","dObj","mobileFormatStr","onMonthNavClick","isPrevMonth","isNextMonth","boolOpts","userConfig","defineProperty","get","_enable","timeMode","defaultDateFormat","defaultAltFormat","_minDate","_maxDate","minMaxTimeSetter","_minTime","_maxTime","hook","pluginConf","parseConfig","nodeName","placeholder","required","nextSibling","preloadedDate","setupDates","yr","fragment","__hidePrevMonthArrow","__hideNextMonthArrow","innerContainer","buildWeeks","rContainer","separator","hourInput","minuteInput","military2ampm","secondInput","buildTime","customAppend","nodeType","build","evt","querySelectorAll","inputType","defaultValue","setupMobile","debouncedResize","ontouchstart","capture","selText","bindEvents","isSafari","init","_flatpickr","nodeList","nodes","HTMLElement","instances","HTMLCollection","NodeList","selector","Node","en","localize","setDefaults","jQuery","fp_incr","noop","DateInput","disableDates","onChangeProp","useRef","abbrev","substr","flatpickrOptions","flatpickrVal","formattedDate","Intl","DateTimeFormat","useEffect","ref","tabbableNode","focusSelector","getElementTabIndex","focusable","isTabIndexNotNaN","HTMLAnchorElement","href","parentElement","visible","tabbable","findTabbableDescendants","focusLaterElements","focusElement","needToFocus","handleBlur","handleFocus","active","restoreAria","setRef","useCallback","toFocus","pop","returnFocus","ownerDocument","disableAriaHider","containerNode","rootNodes","ariaHidden","item","createAriaHider","find","processNode","handleKeyDown","scopeTab","Dialog","isActive","onUserDismiss","headerStyle","footer","isContentOverflowing","setIsContentOverflowing","contentRef","shimRef","focusTrapRef","useFocusTrap","useLayoutEffect","checkContentOverflow","lastArgs","frameId","wrapperFn","scrollHeight","clientHeight","getIsContentTooLong","_len","args","_key","cancel","cancelAnimationFrame","dialogJSX","ReactDOM","TextInput","formatter","nativeElementProps","leftIcon","inputValue","setInputValue","_onBlur","_onChange","Chevron","setOpen","DropdownMenu","Dropdown","defaultOpen","setValue","closeDropDown","closeDropdown","childrenList","flat","field","triggerLabel","readOnly","React","DropdownTrigger","showOpenIndicator","labelText","labelProps","displayValue","errorText","minWidth","Boolean","displayName","LoadingShim","isLoading","LoadingSkeleton","lines","showTitle","size","Modal","handleClose","maxWidth","header","actions","setNotOpen","overflow","borderRadius","color","Pagination","onPageChange","totalPages","defaultSelectedPage","selectedPage","setSelectedPage","segmentSize","visiblePages","p","segments","page","segmentIndex","floor","segment","showPrev","showNext","firstPage","lastPage","_getAttributes","handlePageClick","handlePrevClick","newSelectedPage","handleNextClick","pagination","_defineProperties","descriptor","enumerable","configurable","writable","_createClass","Constructor","protoProps","staticProps","source","hasOwnProperty","_setPrototypeOf","o","setPrototypeOf","__proto__","len","arr2","_createForOfIteratorHelperLoose","allowArrayLike","it","Symbol","iterator","next","minLen","constructor","done","TypeError","useTrackRef","onRefChange","storedReference","useIsomorphicLayoutEffect","getPixelValue","replace","limit","isSet","mergeRefs","refs","_step","_iterator","findScrollContainers","environment","_environment$getCompu","getComputedStyle","overflowX","overflowY","prop","createReferenceError","subject","useTrackElements","_ref","enabled","ResizeObserverPolyfill","overflowContainer","triggerOption","ResizeObserver","polyfill","getResizeObserver","initialState","state","subscriptions","arrowRef","hasTriggerOption","_useMutableStore","scrollContainers","trigger","layer","useMemo","setter","_useEventSubscription","hasEventSubscriptions","removeAllEventSubscriptions","unsubscribe","addEventSubscription","unsubscriber","handleChange","_get","closestScrollContainer","scrollOffsets","scrollLeft","scrollTop","scrollX","scrollY","borderOffsets","_environment$getCompu2","borderLeftWidth","borderTopWidth","arrow","addEventListeners","_get2","ignoredInitialCall","observer","_i","_arr","observe","_i2","_arr2","_element","unobserve","disconnect","_loop","resetWhenReferenceChangedWhileTracking","previous","layerRef","previousLayer","getScrollContainers","triggerRef","previousTrigger","triggerOptionParent","getParent","GroupContext","createContext","GroupProvider","registrations","handleRegister","registration","delete","Provider","OPPOSITES","center","SideBase","opposite","isHorizontal","sizeProp","oppositeSizeProp","cssProp","oppositeCssProp","isPush","_proto","factor","isOppositeDirection","side","createSide","recursive","BoundSide","Side","SIDES","BoundsOffsets","offsets","mergeSmallestSides","boundsOffsets","first","fromEntries","_step2","boundsOffset","_iterator2","_this","every","_this2","sumOfPropertyValues","propertyValues","sum","propertyValue","boundsToObject","height","EMPTY","Bounds","bounds","create","fromElement","_options","_options$withTransfor","withTransform","_options$environment","_options$withScrollba","withScrollbars","boxSizing","borderLeft","borderRight","borderTop","borderBottom","paddingLeft","paddingRight","paddingTop","paddingBottom","scrollbarWidth","clientWidth","scrollbarHeight","substract","empty","fromWindow","_ref2","_ref2$innerWidth","innerWidth","_ref2$innerHeight","toObject","merge","partialBoundsOrMergeFn","_entries","entries","_entries$_i","boundSide","offsetsTo","mapSides","mapper","_boundSides","values","Placement","primary","secondary","subjectBounds","layerDimensions","subjectsBounds","_cachedLayerBounds","_cachedContainerOffsets","setSubjectsBounds","dimensions","getLayerBounds","secondaryOffset","arrowOffsetBase","limitMin","limitMax","propertyA","propertyB","sec","triggerValue","arrowCompensation","layerBounds","getLayerCollisionBounds","getContainerOffsets","layerOffsetsToScrollContainers","_this$subjectsBounds","triggerHasBiggerWidth","triggerHasBiggerHeight","allSidesArePositive","negativeSides","surface","_Object$entries$map$f","_Object$entries$map$f2","containerOffsets","_ref3","_ref4","_ref5","_ref6","PlacementCenter","_Placement","subClass","superClass","_this$subjectsBounds2","STYLE_BASE","willChange","Placements","placements","getSidesFromPlacementType","_type$split","arrowOffset","containerOffset","triggerOffset","getListOfPlacements","preferedPlacement","placement","_Placements$getSidesF","preferredSide","preferY","preferX","triggerIsBigger","placementFrom","list","possiblePlacements","filterPlacementsBySide","findFirstPlacementThatFits","fitsContainer","placementWithBiggestVisibleSurface","visibleSurface","findSuitablePlacement","auto","getSecondaryOffset","_this$config","snap","placementsOnSameSide","firstPlacementThatDoesNotFit","secondaryOffsetSide","getStyles","layerStyleBase","_extends2","sizeProperty","negativeOffset","sideA","sideB","offsetA","offsetB","getNegativeOffsetBetweenLayerCenterAndTrigger","primarySide","secondarySide","secondaryValue","getArrowStyle","parent","getHasDisappeared","offsetsToScrollContainers","suitablePlacement","styles","layerSide","hasDisappeared","SubjectsBounds","getTriggerBounds","allContainers","scrollContainer","DEFAULT_OPTIONS","useLayer","_triggerBoundsRef$cur","_ref$isOpen","_ref$overflowContaine","_ref$environment","_ref$placement","_ref$possiblePlacemen","_ref$preferX","_ref$preferY","_ref$auto","_ref$snap","_ref$triggerOffset","_ref$containerOffset","_ref$arrowOffset","_ref$container","_ref$layerDimensions","onDisappear","onOutsideClick","onParentClose","_useState","setState","triggerBoundsRef","lastState","currentState","useLastState","raf","handlePositioning","getBounds","_Placements$create$re","newState","_styleProps","didStateChange","_useTrackElements","_useGroup","Set","possibleRegisterFn","useContext","shouldCloseWhenClickedOutside","clickedOnTrigger","clickedOnLayer","shouldCloseAccordingToChildren","getShouldCloseAccordingToChildren","closeChild","handleClick","closeOnOutsideClickRefs","useGroup","triggerProps","layerProps","arrowProps","triggerBounds","renderLayer","createPortal","getElementById","DEFAULT_CONTAINER_ID","cssText","getContainerElement","getWidthBasedOnAngle","angle","tan","PI","getViewBox","sizeA","sizeB","borderWidth","_map","getTrianglePath","roundness","_BOTTOM$TOP$RIGHT$LEF","_BOTTOM$TOP$RIGHT$LEF2","_BOTTOM$TOP$RIGHT$LEF3","relativeRoundness","A","B","cPoint","c1A","c1B","C","d1A","d1B","getBorderMaskPath","borderOffset","Status","Arrow","forwardRef","_ref2$size","_ref2$angle","_ref2$borderWidth","_ref2$borderColor","borderColor","_ref2$roundness","_ref2$backgroundColor","backgroundColor","_ref2$layerSide","_ref2$style","excluded","sourceKeys","keys","maxSize","transform","preserveAspectRatio","viewBox","fill","strokeWidth","stroke","Popover","wrapperDisplay","disableAutoPlacement","matchTriggerWidth","setIsOpen","closePopover","layerStyle","RadioButtons","initialValue","containerProps","isControlled","checkedValue","setCheckedValue","focusedValue","setFocusedValue","scrollWidth","r","defaultView","frameElement","__assign","idCounter","isOrContainsNode","time","timeoutId","callAllEventHandlers","_len2","fns","_key2","_len3","_key3","preventDownshiftDefault","nativeEvent","handleRefs","_len4","_key4","getState","prevState","isControlledProp","normalizeArrowKey","getNextWrappingIndex","moveAmount","baseIndex","itemCount","getItemNodeFromIndex","circular","itemsLastIndex","newIndex","nonDisabledNewIndex","getNextNonDisabledIndex","currentElementNode","hasAttribute","index","_index","targetWithinDownshift","downshiftElements","checkActiveElement","contextNode","cleanupStatus","documentProp","getStatusDiv","statusDiv","border","clip","margin","padding","_excluded$3","dropdownDefaultStateValues","highlightedIndex","selectedItem","updateA11yStatus","getA11yMessage","status","div","useElementIds","_ref$id","labelId","menuId","getItemId","toggleButtonId","inputId","isAcceptedCharacterKey","capitalizeString","string","toUpperCase","useLatestRef","useEnhancedReducer","reducer","prevStateRef","actionRef","enhancedReducer","action","changes","stateReducer","_useReducer","useReducer","dispatch","propsRef","dispatchWithProps","invokeOnChangeHandler","onStateChange","callOnChangeProps","defaultProps$3","itemToString","getA11ySelectionMessage","selectionParameters","itemToStringLocal","scrollIntoView","menuNode","scrollMode","block","boundary","skipOverflowHiddenElements","f","scrollingElement","documentElement","visualViewport","g","v","E","V","I","T","O","R","X","L","q","z","borderRightWidth","borderBottomWidth","N","P","circularNavigation","getDefaultValue$1","propKey","defaultStateValues","defaultPropKey","getInitialValue$1","initialPropKey","getHighlightedIndexOnOpen","items","initialHighlightedIndex","defaultHighlightedIndex","useA11yMessageSetter","dependencyArray","isInitialMount","highlightedItem","resultCount","useControlPropsValidator","getItemIndexByCharacterKey","keysSoFar","lowerCasedKeysSoFar","offsetIndex","startsWith","defaultProps$2","getA11yStatusMessage","previousResultCount","validatePropTypes$2","stateChangeTypes$2","freeze","MenuKeyDownArrowDown","MenuKeyDownArrowUp","MenuKeyDownEscape","MenuKeyDownHome","MenuKeyDownEnd","MenuKeyDownEnter","MenuKeyDownSpaceButton","MenuKeyDownCharacter","MenuBlur","MenuMouseLeave","ItemMouseMove","ItemClick","ToggleButtonClick","ToggleButtonKeyDownArrowDown","ToggleButtonKeyDownArrowUp","ToggleButtonKeyDownCharacter","FunctionToggleMenu","FunctionOpenMenu","FunctionCloseMenu","FunctionSetHighlightedIndex","FunctionSelectItem","FunctionSetInputValue","FunctionReset","downshiftSelectReducer","lowercasedKey","itemIndex","_lowercasedKey","_inputValue","stateChangeTypes","downshiftCommonReducer","_excluded$2","_excluded2$2","_excluded3$1","useSelect","userProps","initialIsOpen","defaultIsOpen","_useControlledReducer","_useEnhancedReducer","useControlledReducer$1","getInitialState$2","toggleButtonRef","menuRef","itemRefs","shouldBlurRef","clearTimeoutRef","elementIds","previousResultCountRef","isInitialMountRef","latest","shouldScrollRef","menuElement","scrollIntoViewProp","useScrollIntoView","outerDispatch","mouseAndTouchTrackersRef","downshiftElementRefs","isMouseDown","isTouchMove","onMouseDown","onMouseUp","onTouchStart","onTouchMove","onTouchEnd","useMouseAndTouchTracker","setGetterPropCallInfo","toggleButtonKeyDownHandlers","ArrowDown","ArrowUp","menuKeyDownHandlers","Home","End","Escape","Enter","toggleMenu","closeMenu","openMenu","setHighlightedIndex","newHighlightedIndex","selectItem","newSelectedItem","reset","newInputValue","getLabelProps","getMenuProps","_temp","_temp2","onMouseLeave","_ref$refKey","refKey","_ref2$suppressRefErro","suppressRefError","latestState","getToggleButtonProps","_temp3","_temp4","_extends3","_ref3$refKey","_ref4$suppressRefErro","toggleProps","toggleButtonNode","getItemProps","_temp5","_extends4","onMouseMove","_ref5$refKey","_latest$current","latestProps","getItemIndex","itemProps","itemNode","SelectItem","SelectAction","onSelect","isAction","getItemByValue","Select","downshiftOpts","initialSelectedItem","onSelectedItemChange","hasSelectedItem","Action","SeparatorList","tabIds","setTabIds","currentIndex","hasPanels","setHasPanels","changeTabs","TabsList","xPadding","TabsContext","childArray","tabId","TabsTab","TabsPanel","selectedId","hidden","Tabs","defaultSelectedIndex","onTabChange","hasBorder","setCurrentIndex","isControlledComponent","List","Tab","Panel","Tag","onDismiss","Toggle","defaultActive","labelledBy","setIsActive","buttonJsx","Tooltip","activeTimer","text","openPopover","onMouseEnter","formatterOpts","currencyDisplay","maximumFractionDigits","Number","isInteger","validStyles","currency","NumberFormat","dateStyle","global","isCallable","tryToString","argument","isConstructor","wellKnownSymbol","definePropertyModule","UNSCOPABLES","ArrayPrototype","unicode","isPrototypeOf","Prototype","isObject","$forEach","STRICT_METHOD","arrayMethodIsStrict","callbackfn","callWithSafeIterationClosing","isArrayIteratorMethod","lengthOfArrayLike","createProperty","getIterator","getIteratorMethod","arrayLike","IS_CONSTRUCTOR","argumentsLength","mapfn","mapping","iteratorMethod","toIndexedObject","toAbsoluteIndex","createMethod","IS_INCLUDES","$this","fromIndex","uncurryThis","IndexedObject","arraySpeciesCreate","TYPE","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_REJECT","NO_HOLES","that","specificCreate","boundFunction","findIndex","filterReject","fails","V8_VERSION","SPECIES","METHOD_NAME","foo","method","aCallable","IS_RIGHT","memo","start","end","fin","originalArray","arraySpeciesConstructor","anObject","iteratorClose","ENTRIES","ITERATOR","SAFE_CLOSING","called","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","object","stringSlice","TO_STRING_TAG_SUPPORT","classofRaw","TO_STRING_TAG","CORRECT_ARGUMENTS","tryGet","callee","hasOwn","ownKeys","getOwnPropertyDescriptorModule","exceptions","getOwnPropertyDescriptor","MATCH","regexp","error1","error2","getPrototypeOf","IteratorPrototype","createPropertyDescriptor","setToStringTag","Iterators","returnThis","IteratorConstructor","NAME","ENUMERABLE_NEXT","DESCRIPTORS","bitmap","toPropertyKey","propertyKey","$","IS_PURE","FunctionName","createIteratorConstructor","createNonEnumerableProperty","redefine","IteratorsCore","PROPER_FUNCTION_NAME","PROPER","CONFIGURABLE_FUNCTION_NAME","CONFIGURABLE","BUGGY_SAFARI_ITERATORS","KEYS","VALUES","Iterable","DEFAULT","IS_SET","FORCED","CurrentIteratorPrototype","methods","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","proto","forced","wrappedWellKnownSymbolModule","EXISTS","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","documentCreateElement","DOMTokenListPrototype","Pebble","classof","process","getBuiltIn","version","Deno","versions","v8","setGlobal","copyConstructorProperties","isForced","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","noTargetGet","sham","regexpExec","RegExpPrototype","SHAM","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","re","flags","uncurriedNativeRegExpMethod","nativeMethod","str","arg2","forceStringMethod","uncurriedNativeMethod","$exec","flattenIntoArray","original","sourceLen","depth","thisArg","elementLen","targetIndex","sourceIndex","mapFn","FunctionPrototype","Function","Reflect","getDescriptor","callBind","aFunction","namespace","getMethod","usingIterator","func","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","captures","namedCaptures","replacement","tailPos","symbols","ch","check","globalThis","propertyIsEnumerable","dummy","Wrapper","NewTarget","NewTargetPrototype","store","functionToString","inspectSource","has","NATIVE_WEAK_MAP","shared","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","WeakMap","wmget","wmhas","wmset","metadata","facade","STATE","enforce","getterFor","construct","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","feature","detection","normalize","POLYFILL","NATIVE","isFinite","isRegExp","USE_SYMBOL_AS_UID","$Symbol","Result","stopped","ResultPrototype","iterable","unboundFunction","iterFn","AS_ENTRIES","IS_ITERATOR","INTERRUPTED","stop","callFn","innerResult","innerError","PrototypeOfArrayIteratorPrototype","arrayIterator","toLength","flush","last","notify","promise","then","macrotask","IS_IOS","IS_IOS_PEBBLE","IS_WEBOS_WEBKIT","IS_NODE","MutationObserver","WebKitMutationObserver","Promise","queueMicrotaskDescriptor","queueMicrotask","domain","exit","enter","resolve","nextTick","createTextNode","characterData","task","getOwnPropertySymbols","symbol","PromiseCapability","reject","$$resolve","$$reject","whitespaces","n$ParseFloat","trimmedString","$parseInt","hex","radix","objectKeys","getOwnPropertySymbolsModule","propertyIsEnumerableModule","$assign","alphabet","chr","activeXDocument","defineProperties","enumBugKeys","html","IE_PROTO","EmptyConstructor","scriptTag","LT","NullProtoObjectViaActiveX","write","temp","parentWindow","NullProtoObject","ActiveXObject","iframeDocument","iframe","src","contentWindow","Properties","IE8_DOM_DEFINE","$defineProperty","Attributes","$getOwnPropertyDescriptor","$getOwnPropertyNames","arraySlice","windowNames","getOwnPropertyNames","getWindowNames","internalObjectKeys","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","$propertyIsEnumerable","NASHORN_BUG","aPossiblePrototype","CORRECT_SETTER","TO_ENTRIES","pref","valueOf","getOwnPropertyNamesModule","newPromiseCapability","promiseCapability","InternalStateModule","getInternalState","enforceInternalState","TEMPLATE","unsafe","simple","re1","re2","regexpFlags","stickyHelpers","UNSUPPORTED_DOT_ALL","UNSUPPORTED_NCG","nativeReplace","nativeExec","patchedExec","UPDATES_LAST_INDEX_WRONG","lastIndex","UNSUPPORTED_Y","BROKEN_CARET","NPCG_INCLUDED","reCopy","group","raw","groups","sticky","charsAdded","strCopy","ignoreCase","dotAll","$RegExp","MISSED_STICKY","is","CONSTRUCTOR_NAME","TAG","uid","SHARED","copyright","aConstructor","defaultConstructor","toIntegerOrInfinity","requireObjectCoercible","charCodeAt","CONVERT_TO_STRING","pos","second","codeAt","RangeError","count","Infinity","whitespace","ltrim","rtrim","location","defer","channel","port","setImmediate","clearImmediate","Dispatch","MessageChannel","counter","queue","run","runner","listener","post","postMessage","protocol","host","port2","port1","onmessage","importScripts","integer","ceil","isSymbol","ordinaryToPrimitive","TO_PRIMITIVE","exoticToPrim","toPrimitive","postfix","random","NATIVE_SYMBOL","WellKnownSymbolsStore","symbolFor","createWellKnownSymbol","withoutSetter","description","arrayMethodHasSpeciesSupport","IS_CONCAT_SPREADABLE","MAX_SAFE_INTEGER","MAXIMUM_ALLOWED_INDEX_EXCEEDED","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","isConcatSpreadable","spreadable","arg","$filter","depthArg","checkCorrectnessOfIteration","$includes","addToUnscopables","$IndexOf","un$IndexOf","NEGATIVE_ZERO","searchElement","defineIterator","ARRAY_ITERATOR","setInternalState","iterated","Arguments","un$Join","ES3_STRINGS","$map","$reduce","CHROME_VERSION","un$Slice","HAS_SPECIES_SUPPORT","FUNCTION_NAME_EXISTS","nameRE","regExpExec","inheritIfRequired","thisNumberValue","NUMBER","NativeNumber","NumberPrototype","toNumeric","primValue","toNumber","third","maxCode","digits","code","NaN","NumberWrapper","$repeat","repeat","un$ToFixed","pow","multiply","c2","divide","dataToString","fractionDigits","fractDigits","sign","x2","log","$entries","nativeGetOwnPropertyDescriptor","FAILS_ON_PRIMITIVES","getOwnPropertyDescriptors","nativeKeys","$parseFloat","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","NativePromise","redefineAll","setSpecies","anInstance","iterate","speciesConstructor","microtask","promiseResolve","hostReportErrors","newPromiseCapabilityModule","perform","IS_BROWSER","PROMISE","getInternalPromiseState","NativePromisePrototype","PromiseConstructor","PromisePrototype","newGenericPromiseCapability","DISPATCH_EVENT","NATIVE_REJECTION_EVENT","PromiseRejectionEvent","UNHANDLED_REJECTION","SUBCLASSING","PROMISE_CONSTRUCTOR_SOURCE","GLOBAL_CORE_JS_PROMISE","FakePromise","INCORRECT_ITERATION","all","isThenable","isReject","notified","chain","reactions","ok","exited","reaction","fail","rejection","onHandleUnhandled","onUnhandled","reason","isUnhandled","emit","unwrap","internalReject","internalResolve","executor","onFulfilled","onRejected","capability","$promiseResolve","remaining","alreadyCalled","race","$toString","regExpFlags","TO_STRING","n$ToString","getFlags","NOT_GENERIC","INCORRECT_NAME","rf","notARegExp","correctIsRegExpLogic","stringIndexOf","searchString","STRING_ITERATOR","point","fixRegExpWellKnownSymbolLogic","advanceStringIndex","getSubstitution","REPLACE","REPLACE_KEEPS_$0","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","maybeCallNative","UNSAFE_SUBSTITUTE","searchValue","replaceValue","replacer","rx","res","functionalReplace","fullUnicode","results","accumulatedResult","nextSourcePosition","replacerArgs","sameValue","SEARCH","nativeSearch","searcher","previousLastIndex","NativeSymbol","SymbolPrototype","EmptyStringDescriptionStore","SymbolWrapper","symbolToString","symbolValueOf","desc","defineWellKnownSymbol","nativeObjectCreate","getOwnPropertyNamesExternal","HIDDEN","QObject","$stringify","nativeDefineProperty","nativeGetOwnPropertyNames","nativePropertyIsEnumerable","AllSymbols","ObjectPrototypeSymbols","StringToSymbolRegistry","SymbolToStringRegistry","USE_SETTER","findChild","setSymbolDescriptor","ObjectPrototypeDescriptor","$defineProperties","$getOwnPropertySymbols","IS_OBJECT_PROTOTYPE","keyFor","sym","useSetter","useSimple","space","$replacer","hint","DOMIterables","handlePrototype","CollectionPrototype","COLLECTION_NAME","ArrayIteratorMethods","ArrayValues","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","componentName","propFullName","secret","getShim","ReactPropTypes","bigint","any","arrayOf","instanceOf","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","for","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","__esModule","definition","toStringTag"],"sourceRoot":""}
1
+ {"version":3,"file":"index.js","mappings":"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","sources":["webpack://@narmi/design_system/webpack/universalModuleDefinition","webpack://@narmi/design_system/./node_modules/classcat/index.js","webpack://@narmi/design_system/./src/util/AsElement.js","webpack://@narmi/design_system/./src/Row/RowItem.js","webpack://@narmi/design_system/./src/Row/index.js","webpack://@narmi/design_system/./src/Button/index.js","webpack://@narmi/design_system/./src/Card/index.js","webpack://@narmi/design_system/./src/Checkbox/index.js","webpack://@narmi/design_system/./src/ContentCard/index.js","webpack://@narmi/design_system/./src/Input/index.js","webpack://@narmi/design_system/./node_modules/flatpickr/dist/esm/types/options.js","webpack://@narmi/design_system/./node_modules/flatpickr/dist/esm/l10n/default.js","webpack://@narmi/design_system/./node_modules/flatpickr/dist/esm/utils/index.js","webpack://@narmi/design_system/./node_modules/flatpickr/dist/esm/utils/dom.js","webpack://@narmi/design_system/./node_modules/flatpickr/dist/esm/utils/formatting.js","webpack://@narmi/design_system/./node_modules/flatpickr/dist/esm/utils/dates.js","webpack://@narmi/design_system/./node_modules/flatpickr/dist/esm/index.js","webpack://@narmi/design_system/./src/DateInput/index.js","webpack://@narmi/design_system/./node_modules/@charlietango/use-focus-trap/lib/useFocusTrap.esm.js","webpack://@narmi/design_system/./src/Dialog/index.js","webpack://@narmi/design_system/./src/Dialog/useLockBodyScroll.js","webpack://@narmi/design_system/./node_modules/raf-schd/dist/raf-schd.esm.js","webpack://@narmi/design_system/./src/TextInput/index.js","webpack://@narmi/design_system/./src/Dropdown/index.js","webpack://@narmi/design_system/./src/DropdownTrigger/index.js","webpack://@narmi/design_system/./src/LoadingShim/index.js","webpack://@narmi/design_system/./src/LoadingSkeleton/index.js","webpack://@narmi/design_system/./src/Modal/index.js","webpack://@narmi/design_system/./src/Pagination/index.js","webpack://@narmi/design_system/./src/PlainButton/index.js","webpack://@narmi/design_system/./node_modules/react-laag/dist/react-laag.esm.js","webpack://@narmi/design_system/./src/Popover/index.js","webpack://@narmi/design_system/./src/RadioButtons/index.js","webpack://@narmi/design_system/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://@narmi/design_system/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://@narmi/design_system/./node_modules/compute-scroll-into-view/dist/index.module.js","webpack://@narmi/design_system/./node_modules/tslib/tslib.es6.js","webpack://@narmi/design_system/./node_modules/downshift/dist/downshift.esm.js","webpack://@narmi/design_system/./src/Select/SelectItem.js","webpack://@narmi/design_system/./src/Select/SelectAction.js","webpack://@narmi/design_system/./src/Select/index.js","webpack://@narmi/design_system/./src/SeparatorList/index.js","webpack://@narmi/design_system/./src/Tabs/context.js","webpack://@narmi/design_system/./src/Tabs/TabsList.js","webpack://@narmi/design_system/./src/Tabs/TabsTab.js","webpack://@narmi/design_system/./src/Tabs/TabsPanel.js","webpack://@narmi/design_system/./src/Tabs/index.js","webpack://@narmi/design_system/./src/Tag/index.js","webpack://@narmi/design_system/./src/Toggle/index.js","webpack://@narmi/design_system/./src/Tooltip/index.js","webpack://@narmi/design_system/./src/formatters/formatNumber.js","webpack://@narmi/design_system/./src/formatters/formatDate.js","webpack://@narmi/design_system/./src/index.js","webpack://@narmi/design_system/./node_modules/core-js/internals/a-callable.js","webpack://@narmi/design_system/./node_modules/core-js/internals/a-constructor.js","webpack://@narmi/design_system/./node_modules/core-js/internals/a-possible-prototype.js","webpack://@narmi/design_system/./node_modules/core-js/internals/add-to-unscopables.js","webpack://@narmi/design_system/./node_modules/core-js/internals/advance-string-index.js","webpack://@narmi/design_system/./node_modules/core-js/internals/an-instance.js","webpack://@narmi/design_system/./node_modules/core-js/internals/an-object.js","webpack://@narmi/design_system/./node_modules/core-js/internals/array-for-each.js","webpack://@narmi/design_system/./node_modules/core-js/internals/array-from.js","webpack://@narmi/design_system/./node_modules/core-js/internals/array-includes.js","webpack://@narmi/design_system/./node_modules/core-js/internals/array-iteration.js","webpack://@narmi/design_system/./node_modules/core-js/internals/array-method-has-species-support.js","webpack://@narmi/design_system/./node_modules/core-js/internals/array-method-is-strict.js","webpack://@narmi/design_system/./node_modules/core-js/internals/array-reduce.js","webpack://@narmi/design_system/./node_modules/core-js/internals/array-slice-simple.js","webpack://@narmi/design_system/./node_modules/core-js/internals/array-slice.js","webpack://@narmi/design_system/./node_modules/core-js/internals/array-species-constructor.js","webpack://@narmi/design_system/./node_modules/core-js/internals/array-species-create.js","webpack://@narmi/design_system/./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack://@narmi/design_system/./node_modules/core-js/internals/check-correctness-of-iteration.js","webpack://@narmi/design_system/./node_modules/core-js/internals/classof-raw.js","webpack://@narmi/design_system/./node_modules/core-js/internals/classof.js","webpack://@narmi/design_system/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://@narmi/design_system/./node_modules/core-js/internals/correct-is-regexp-logic.js","webpack://@narmi/design_system/./node_modules/core-js/internals/correct-prototype-getter.js","webpack://@narmi/design_system/./node_modules/core-js/internals/create-iterator-constructor.js","webpack://@narmi/design_system/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://@narmi/design_system/./node_modules/core-js/internals/create-property-descriptor.js","webpack://@narmi/design_system/./node_modules/core-js/internals/create-property.js","webpack://@narmi/design_system/./node_modules/core-js/internals/define-iterator.js","webpack://@narmi/design_system/./node_modules/core-js/internals/define-well-known-symbol.js","webpack://@narmi/design_system/./node_modules/core-js/internals/descriptors.js","webpack://@narmi/design_system/./node_modules/core-js/internals/document-create-element.js","webpack://@narmi/design_system/./node_modules/core-js/internals/dom-iterables.js","webpack://@narmi/design_system/./node_modules/core-js/internals/dom-token-list-prototype.js","webpack://@narmi/design_system/./node_modules/core-js/internals/engine-is-browser.js","webpack://@narmi/design_system/./node_modules/core-js/internals/engine-is-ios-pebble.js","webpack://@narmi/design_system/./node_modules/core-js/internals/engine-is-ios.js","webpack://@narmi/design_system/./node_modules/core-js/internals/engine-is-node.js","webpack://@narmi/design_system/./node_modules/core-js/internals/engine-is-webos-webkit.js","webpack://@narmi/design_system/./node_modules/core-js/internals/engine-user-agent.js","webpack://@narmi/design_system/./node_modules/core-js/internals/engine-v8-version.js","webpack://@narmi/design_system/./node_modules/core-js/internals/enum-bug-keys.js","webpack://@narmi/design_system/./node_modules/core-js/internals/export.js","webpack://@narmi/design_system/./node_modules/core-js/internals/fails.js","webpack://@narmi/design_system/./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack://@narmi/design_system/./node_modules/core-js/internals/flatten-into-array.js","webpack://@narmi/design_system/./node_modules/core-js/internals/function-apply.js","webpack://@narmi/design_system/./node_modules/core-js/internals/function-bind-context.js","webpack://@narmi/design_system/./node_modules/core-js/internals/function-call.js","webpack://@narmi/design_system/./node_modules/core-js/internals/function-name.js","webpack://@narmi/design_system/./node_modules/core-js/internals/function-uncurry-this.js","webpack://@narmi/design_system/./node_modules/core-js/internals/get-built-in.js","webpack://@narmi/design_system/./node_modules/core-js/internals/get-iterator-method.js","webpack://@narmi/design_system/./node_modules/core-js/internals/get-iterator.js","webpack://@narmi/design_system/./node_modules/core-js/internals/get-method.js","webpack://@narmi/design_system/./node_modules/core-js/internals/get-substitution.js","webpack://@narmi/design_system/./node_modules/core-js/internals/global.js","webpack://@narmi/design_system/./node_modules/core-js/internals/has-own-property.js","webpack://@narmi/design_system/./node_modules/core-js/internals/hidden-keys.js","webpack://@narmi/design_system/./node_modules/core-js/internals/host-report-errors.js","webpack://@narmi/design_system/./node_modules/core-js/internals/html.js","webpack://@narmi/design_system/./node_modules/core-js/internals/ie8-dom-define.js","webpack://@narmi/design_system/./node_modules/core-js/internals/indexed-object.js","webpack://@narmi/design_system/./node_modules/core-js/internals/inherit-if-required.js","webpack://@narmi/design_system/./node_modules/core-js/internals/inspect-source.js","webpack://@narmi/design_system/./node_modules/core-js/internals/internal-state.js","webpack://@narmi/design_system/./node_modules/core-js/internals/is-array-iterator-method.js","webpack://@narmi/design_system/./node_modules/core-js/internals/is-array.js","webpack://@narmi/design_system/./node_modules/core-js/internals/is-callable.js","webpack://@narmi/design_system/./node_modules/core-js/internals/is-constructor.js","webpack://@narmi/design_system/./node_modules/core-js/internals/is-forced.js","webpack://@narmi/design_system/./node_modules/core-js/internals/is-integral-number.js","webpack://@narmi/design_system/./node_modules/core-js/internals/is-object.js","webpack://@narmi/design_system/./node_modules/core-js/internals/is-pure.js","webpack://@narmi/design_system/./node_modules/core-js/internals/is-regexp.js","webpack://@narmi/design_system/./node_modules/core-js/internals/is-symbol.js","webpack://@narmi/design_system/./node_modules/core-js/internals/iterate.js","webpack://@narmi/design_system/./node_modules/core-js/internals/iterator-close.js","webpack://@narmi/design_system/./node_modules/core-js/internals/iterators-core.js","webpack://@narmi/design_system/./node_modules/core-js/internals/iterators.js","webpack://@narmi/design_system/./node_modules/core-js/internals/length-of-array-like.js","webpack://@narmi/design_system/./node_modules/core-js/internals/microtask.js","webpack://@narmi/design_system/./node_modules/core-js/internals/native-promise-constructor.js","webpack://@narmi/design_system/./node_modules/core-js/internals/native-symbol.js","webpack://@narmi/design_system/./node_modules/core-js/internals/native-weak-map.js","webpack://@narmi/design_system/./node_modules/core-js/internals/new-promise-capability.js","webpack://@narmi/design_system/./node_modules/core-js/internals/not-a-regexp.js","webpack://@narmi/design_system/./node_modules/core-js/internals/number-parse-float.js","webpack://@narmi/design_system/./node_modules/core-js/internals/number-parse-int.js","webpack://@narmi/design_system/./node_modules/core-js/internals/object-assign.js","webpack://@narmi/design_system/./node_modules/core-js/internals/object-create.js","webpack://@narmi/design_system/./node_modules/core-js/internals/object-define-properties.js","webpack://@narmi/design_system/./node_modules/core-js/internals/object-define-property.js","webpack://@narmi/design_system/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://@narmi/design_system/./node_modules/core-js/internals/object-get-own-property-names-external.js","webpack://@narmi/design_system/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://@narmi/design_system/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://@narmi/design_system/./node_modules/core-js/internals/object-get-prototype-of.js","webpack://@narmi/design_system/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://@narmi/design_system/./node_modules/core-js/internals/object-keys-internal.js","webpack://@narmi/design_system/./node_modules/core-js/internals/object-keys.js","webpack://@narmi/design_system/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://@narmi/design_system/./node_modules/core-js/internals/object-set-prototype-of.js","webpack://@narmi/design_system/./node_modules/core-js/internals/object-to-array.js","webpack://@narmi/design_system/./node_modules/core-js/internals/object-to-string.js","webpack://@narmi/design_system/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://@narmi/design_system/./node_modules/core-js/internals/own-keys.js","webpack://@narmi/design_system/./node_modules/core-js/internals/path.js","webpack://@narmi/design_system/./node_modules/core-js/internals/perform.js","webpack://@narmi/design_system/./node_modules/core-js/internals/promise-resolve.js","webpack://@narmi/design_system/./node_modules/core-js/internals/redefine-all.js","webpack://@narmi/design_system/./node_modules/core-js/internals/redefine.js","webpack://@narmi/design_system/./node_modules/core-js/internals/regexp-exec-abstract.js","webpack://@narmi/design_system/./node_modules/core-js/internals/regexp-exec.js","webpack://@narmi/design_system/./node_modules/core-js/internals/regexp-flags.js","webpack://@narmi/design_system/./node_modules/core-js/internals/regexp-sticky-helpers.js","webpack://@narmi/design_system/./node_modules/core-js/internals/regexp-unsupported-dot-all.js","webpack://@narmi/design_system/./node_modules/core-js/internals/regexp-unsupported-ncg.js","webpack://@narmi/design_system/./node_modules/core-js/internals/require-object-coercible.js","webpack://@narmi/design_system/./node_modules/core-js/internals/same-value.js","webpack://@narmi/design_system/./node_modules/core-js/internals/set-global.js","webpack://@narmi/design_system/./node_modules/core-js/internals/set-species.js","webpack://@narmi/design_system/./node_modules/core-js/internals/set-to-string-tag.js","webpack://@narmi/design_system/./node_modules/core-js/internals/shared-key.js","webpack://@narmi/design_system/./node_modules/core-js/internals/shared-store.js","webpack://@narmi/design_system/./node_modules/core-js/internals/shared.js","webpack://@narmi/design_system/./node_modules/core-js/internals/species-constructor.js","webpack://@narmi/design_system/./node_modules/core-js/internals/string-multibyte.js","webpack://@narmi/design_system/./node_modules/core-js/internals/string-repeat.js","webpack://@narmi/design_system/./node_modules/core-js/internals/string-trim.js","webpack://@narmi/design_system/./node_modules/core-js/internals/task.js","webpack://@narmi/design_system/./node_modules/core-js/internals/this-number-value.js","webpack://@narmi/design_system/./node_modules/core-js/internals/to-absolute-index.js","webpack://@narmi/design_system/./node_modules/core-js/internals/to-indexed-object.js","webpack://@narmi/design_system/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://@narmi/design_system/./node_modules/core-js/internals/to-length.js","webpack://@narmi/design_system/./node_modules/core-js/internals/to-object.js","webpack://@narmi/design_system/./node_modules/core-js/internals/to-primitive.js","webpack://@narmi/design_system/./node_modules/core-js/internals/to-property-key.js","webpack://@narmi/design_system/./node_modules/core-js/internals/to-string-tag-support.js","webpack://@narmi/design_system/./node_modules/core-js/internals/to-string.js","webpack://@narmi/design_system/./node_modules/core-js/internals/try-to-string.js","webpack://@narmi/design_system/./node_modules/core-js/internals/uid.js","webpack://@narmi/design_system/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://@narmi/design_system/./node_modules/core-js/internals/well-known-symbol-wrapped.js","webpack://@narmi/design_system/./node_modules/core-js/internals/well-known-symbol.js","webpack://@narmi/design_system/./node_modules/core-js/internals/whitespaces.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.array.concat.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.array.filter.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.array.flat.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.array.from.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.array.includes.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.array.index-of.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.array.iterator.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.array.join.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.array.map.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.array.reduce.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.array.slice.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.array.unscopables.flat.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.function.name.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.number.constructor.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.number.is-integer.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.number.to-fixed.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.object.assign.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.object.entries.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.object.get-own-property-descriptor.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.object.get-own-property-descriptors.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.object.keys.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.object.to-string.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.parse-float.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.parse-int.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.promise.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.regexp.exec.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.regexp.to-string.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.string.includes.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.string.iterator.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.string.replace.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.string.search.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.symbol.description.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.symbol.iterator.js","webpack://@narmi/design_system/./node_modules/core-js/modules/es.symbol.js","webpack://@narmi/design_system/./node_modules/core-js/modules/web.dom-collections.for-each.js","webpack://@narmi/design_system/./node_modules/core-js/modules/web.dom-collections.iterator.js","webpack://@narmi/design_system/./node_modules/flatpickr/dist/esm/utils/polyfills.js","webpack://@narmi/design_system/./node_modules/flatpickr/dist/l10n/default.js","webpack://@narmi/design_system/./node_modules/prop-types/factoryWithThrowingShims.js","webpack://@narmi/design_system/./node_modules/prop-types/index.js","webpack://@narmi/design_system/./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://@narmi/design_system/./node_modules/react-is/cjs/react-is.production.min.js","webpack://@narmi/design_system/./node_modules/react-is/index.js","webpack://@narmi/design_system/external umd {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}","webpack://@narmi/design_system/external umd {\"root\":\"ReactDOM\",\"commonjs2\":\"react-dom\",\"commonjs\":\"react-dom\",\"amd\":\"react-dom\"}","webpack://@narmi/design_system/webpack/bootstrap","webpack://@narmi/design_system/webpack/runtime/compat get default export","webpack://@narmi/design_system/webpack/runtime/define property getters","webpack://@narmi/design_system/webpack/runtime/global","webpack://@narmi/design_system/webpack/runtime/hasOwnProperty shorthand","webpack://@narmi/design_system/webpack/runtime/make namespace object","webpack://@narmi/design_system/webpack/startup"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"react-dom\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"react-dom\"], factory);\n\telse {\n\t\tvar a = typeof exports === 'object' ? factory(require(\"react\"), require(\"react-dom\")) : factory(root[\"React\"], root[\"ReactDOM\"]);\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(typeof self !== 'undefined' ? self : this, function(__WEBPACK_EXTERNAL_MODULE__9787__, __WEBPACK_EXTERNAL_MODULE__5156__) {\nreturn ","export default function cc(names) {\n if (typeof names === \"string\" || typeof names === \"number\") return \"\" + names\n\n let out = \"\"\n\n if (Array.isArray(names)) {\n for (let i = 0, tmp; i < names.length; i++) {\n if ((tmp = cc(names[i])) !== \"\") {\n out += (out && \" \") + tmp\n }\n }\n } else {\n for (let k in names) {\n if (names[k]) out += (out && \" \") + k\n }\n }\n\n return out\n}\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\n/**\n * This is not a complete list of HTML elements;\n * only the elements we want to support in `as` props.\n */\nexport const VALID_ELEMENTS = [\n \"span\",\n \"div\",\n \"ul\",\n \"ol\",\n \"li\",\n \"p\",\n \"nav\",\n \"article\",\n \"section\",\n \"h1\",\n \"h2\",\n \"h3\",\n \"h4\",\n \"h5\",\n \"h6\",\n \"button\",\n \"a\",\n];\n\n/**\n * Utility to conditionally render different HTML elements\n * in our components. Useful for exposing `as` props:\n *\n * `<Row as=\"ul\"><Row.Item as=\"li\" /></Row>\n *\n * @usage <AsElement elementName=\"ul\" otherProp=\"this gets passed through\">\n */\nconst AsElement = ({ elementType = \"div\", children, ...rest }) => {\n let Element = \"div\"; // always fall back to div if something is wrong\n\n // extra layer of validation; only set the element name to\n // the given `elementName` if it is in our valid elements list\n if (VALID_ELEMENTS.includes(elementType)) {\n Element = elementType;\n }\n\n return <Element {...rest}>{children}</Element>;\n};\n\nAsElement.propTypes = {\n /** element to render */\n elementType: PropTypes.oneOf(VALID_ELEMENTS).isRequired,\n children: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.arrayOf(PropTypes.node),\n ]),\n};\n\nexport default AsElement;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport cc from \"classcat\";\nimport AsElement from \"../util/AsElement\";\n\n/**\n * Child component of `Row`.\n * When a `Row.Item` has a boolean prop of `shrink`, it will shirnk to content width.\n */\nconst RowItem = ({ shrink = false, as = \"div\", children }) => (\n <AsElement\n elementType={as}\n className={cc([\"nds-row-item\", { \"nds-row-item--shrink\": shrink }])}\n >\n {children}\n </AsElement>\n);\n\nRowItem.propTypes = {\n /**\n * When `true`, the row item shrinks to content size of its children.\n * Otherwise, the item will expand to fill remaining space in the row.\n */\n shrink: PropTypes.bool,\n /** The html element to render as the root node of `Row` */\n as: PropTypes.oneOf([\"div\", \"li\"]),\n children: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.arrayOf(PropTypes.node),\n ]),\n};\n\nexport default RowItem;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport AsElement from \"../util/AsElement\";\nimport RowItem from \"./RowItem\";\n\n/**\n * builds style object for `Row`\n * @param {String} alignItems\n * @param {String} gapSize\n * @returns {Object} style object for `Row`\n */\nconst _getRowStyle = (alignItems, justifyContent, gapSize) => {\n let result = {};\n if (gapSize) {\n result.gap = gapSize === \"none\" ? \"0\" : `var(--space-${gapSize})`;\n }\n result.alignItems = alignItems === \"top\" ? \"flex-start\" : alignItems;\n result.justifyContent = `flex-${justifyContent}`;\n return result;\n};\n\n/**\n * Basic flexbox helper that arranges content into a non-wrapping row.\n * `Row` will grow to fill the width of its parent container.\n * Items of `Row` will grow to fit remaining space by default.\n * When a `Row.Item` has a boolean prop of `shrink`, it will shirnk to content width.\n */\nconst Row = ({\n alignItems = \"top\",\n justifyContent = \"start\",\n gapSize = \"l\",\n as = \"div\",\n children,\n}) => (\n <AsElement\n elementType={as}\n className=\"nds-row\"\n style={_getRowStyle(alignItems, justifyContent, gapSize)}\n >\n {children}\n </AsElement>\n);\n\nRow.propTypes = {\n /**\n * Adjusts size of gap between row items.\n * Sizes map to `var(--space-<size>)` variables.\n * Set `gapSize=\"none\"` to remove gaps between all row items.\n */\n gapSize: PropTypes.oneOf([\"xxs\", \"xs\", \"s\", \"m\", \"l\", \"xl\", \"none\"]),\n /** Controls vertical alignment of items within the row */\n alignItems: PropTypes.oneOf([\"top\", \"center\"]),\n /** Controls horizontal flex justification */\n justifyContent: PropTypes.oneOf([\"start\", \"end\"]),\n /** The html element to render as the root node of `Row` */\n as: PropTypes.oneOf([\"div\", \"ul\"]),\n /** Children must be of type `Row.Item` */\n children: PropTypes.arrayOf(PropTypes.node).isRequired,\n};\n\nRow.Item = RowItem;\nexport default Row;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport cc from \"classcat\";\nimport iconSelection from \"src/icons/selection.json\";\nimport AsElement from \"src/util/AsElement\";\nimport Row from \"src/Row\";\n\nexport const VALID_ICON_NAMES = iconSelection.icons.map(\n (icon) => icon.properties.name\n);\n\n/**\n * Narmi style action buttons.\n *\n * Button renders as a `button` element by default, but can render as an `a` element\n * via the `as` prop.\n *\n * This component supports rest props; any additional props on button will be\n * passed through to the root node of `Button`.\n */\nconst Button = ({\n disabled = false,\n kind = \"primary\",\n startIcon = null,\n endIcon = null,\n children,\n label,\n onClick = () => {},\n as = \"button\",\n ...otherProps\n}) => {\n const isButtonElement = as === \"button\";\n\n // support legacy method of passing label as children\n let buttonLabel = label;\n if (!buttonLabel) {\n buttonLabel = children;\n }\n\n const Icon = ({ name }) => (\n <div className=\"alignChild--center--center\">\n <i role=\"img\" aria-label={name} className={`narmi-icon-${name}`} />\n </div>\n );\n\n Icon.propTypes = {\n name: PropTypes.string.isRequired,\n };\n\n return (\n <AsElement\n elementType={as}\n tabIndex={0}\n onClick={onClick}\n {...otherProps}\n className={cc([\n \"nds-typography\",\n \"nds-button\",\n `nds-button--${kind}`,\n {\n resetButton: as === \"button\",\n \"nds-button--disabled\": disabled,\n },\n ])}\n disabled={isButtonElement && disabled ? true : undefined}\n data-testid=\"nds-button\"\n >\n <div className=\"nds-button-content\">\n <Row gapSize=\"s\" alignItems=\"center\">\n {startIcon && (\n <Row.Item shrink>\n <Icon name={startIcon} />\n </Row.Item>\n )}\n <Row.Item>\n <span className=\"nds-button-label\">{buttonLabel}</span>\n </Row.Item>\n {endIcon && (\n <Row.Item shrink>\n <Icon name={endIcon} />\n </Row.Item>\n )}\n </Row>\n </div>\n </AsElement>\n );\n};\n\nButton.propTypes = {\n /**\n * The html element to render as the root node of `Button`.\n *\n * When rendering as an \"a\" you **MUST** pass an `href` attribute\n * for the anchor to be valid.\n */\n as: PropTypes.oneOf([\"a\", \"button\"]),\n /** Renders the button label */\n label: PropTypes.string,\n /** disables the button when set to `true` */\n disabled: PropTypes.bool,\n /** style of button to render */\n kind: PropTypes.oneOf([\"primary\", \"secondary\", \"negative\", \"menu\", \"plain\"]),\n /** Click callback, with event object passed as argument */\n onClick: PropTypes.func,\n /** Name of Narmi icon to place at the start of the label */\n startIcon: PropTypes.oneOf(VALID_ICON_NAMES),\n /** Name of Narmi icon to place at the end of the label */\n endIcon: PropTypes.oneOf(VALID_ICON_NAMES),\n /**\n * **⚠️ DEPRECATED**\n *\n * Passing children to render the button label will be removed\n * in a future release. Use the `label` prop instead.\n */\n children: PropTypes.node,\n};\n\nexport default Button;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\nconst noop = () => {};\n\n/**\n * Optionally clickable outlined content card\n *\n * **⚠️ DEPRECATED ⚠️**\n *\n * This component will be removed in a future release.\n * Please use `ContentCard` instead\n */\nconst Card = (props) => {\n const icon = props.icon ? (\n <span className={`narmi-icon-${props.icon}`}></span>\n ) : (\n \"\"\n );\n const { iconSize, ...otherProps } = props;\n return (\n <div\n className={`nds-card nds-typography ${props.classes}`}\n data-hoverable={props.hoverable.toString()}\n data-selected={props.selected.toString()}\n {...otherProps}\n >\n <div className=\"nds-card-heading\">\n <div style={{ justifyContent: \"start\", display: \"flex\" }}>\n <h4 className=\"nds-sans nds-card-title\">{props.title}&nbsp;</h4>\n {icon && (\n <div\n className=\"nds-sans nds-card-title\"\n style={{ fontSize: iconSize }}\n >\n {icon}\n </div>\n )}\n </div>\n {props.button ? props.button : \"\"}\n </div>\n {props.children ? (\n <div className=\"nds-card-content\">{props.children}</div>\n ) : (\n \"\"\n )}\n </div>\n );\n};\n\nCard.propTypes = {\n /** JSX to render in the title */\n title: PropTypes.node,\n /** JSX to render in content area */\n children: PropTypes.node.isRequired,\n /** JSX to render in the top right of the card */\n button: PropTypes.node,\n /** `narmi-icon` name */\n icon: PropTypes.string,\n /** `narmi-icon` size in px */\n iconSize: PropTypes.string,\n /** When true, the Card will change style on hover */\n hoverable: PropTypes.bool,\n /** When true, the Card will change style to appear selected */\n selected: PropTypes.bool,\n /** classes to add to the `className` string of the root Card element */\n classes: PropTypes.string,\n /** Click callback, with event object passed as argument */\n onClick: PropTypes.func,\n};\n\nCard.defaultProps = {\n hoverable: false,\n selected: false,\n icon: \"\",\n iconSize: \"20px\",\n classes: \"\",\n onClick: noop,\n};\n\nexport default Card;\n","// https://www.w3schools.com/howto/tryit.asp?filename=tryhow_css_custom_checkbox\nimport React, { useState, useEffect } from \"react\";\nimport PropTypes from \"prop-types\";\nimport cc from \"classcat\";\n\n/**\n * Narmi styled checkbox with built-in label.\n */\nconst Checkbox = ({\n label,\n onChange = () => {},\n id,\n name,\n defaultChecked,\n checked,\n value,\n kind = \"normal\",\n ...rest\n}) => {\n const isControlled = checked !== undefined;\n const [isChecked, setIsChecked] = useState(\n isControlled ? checked : defaultChecked || false\n );\n const [isFocused, setIsFocused] = useState(false);\n const isCard = kind === \"card\";\n\n useEffect(() => {\n if (isControlled) {\n setIsChecked(checked);\n }\n }, [checked]);\n\n const handleChange = (e) => {\n if (!isControlled) {\n setIsChecked((isChecked) => !isChecked);\n }\n onChange(e);\n };\n\n const handleFocus = () => {\n setIsFocused(true);\n };\n\n const handleBlur = () => {\n setIsFocused(false);\n };\n\n return (\n <>\n <label\n className={cc([\n \"nds-typograhy\",\n `nds-checkbox nds-checkbox--${kind}`,\n {\n \"nds-checkbox--checked\": isChecked,\n \"nds-checkbox--focused\": isFocused,\n \"padding--all rounded--all border--all\": isCard,\n },\n ])}\n >\n {label}\n <input\n onFocus={handleFocus}\n onBlur={handleBlur}\n onChange={handleChange}\n checked={isChecked}\n defaultChecked={defaultChecked}\n name={name}\n id={id}\n value={value}\n {...rest}\n type=\"checkbox\"\n />\n <span className=\"narmi-icon-check\"></span>\n </label>\n </>\n );\n};\n\nCheckbox.propTypes = {\n /** Content of `label` element */\n label: PropTypes.string.isRequired,\n /** Change callback invoked when the value of the `input` changes */\n onChange: PropTypes.func,\n /** `id` attribute of `input` */\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n /** `name` attribute of `input` */\n name: PropTypes.string,\n /**\n * ⚠️ DEPRECATED\n *\n * Uncontrolled Checkbox props will be removed in a future release.\n * Use `checked` instead to use Checkbox as a fully controlled input.\n */\n defaultChecked: PropTypes.bool,\n /** Sets the checkbox checked value */\n checked: PropTypes.bool,\n /** Sets the `value` attribute of the `input` */\n value: PropTypes.string,\n /**\n * `normal` - visually matche a checkbox input\n *\n * `card` - visually present as a toggleable card\n */\n kind: PropTypes.oneOf([\"normal\", \"card\"]),\n};\n\nexport default Checkbox;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport cc from \"classcat\";\n\n/**\n * Narmi style content containers, with support for rendering as an interactive button.\n */\nconst ContentCard = ({\n type, // DEPRECATED\n kind = \"plain\",\n paddingSize = \"l\",\n onClick = () => {},\n isSelected = false,\n children,\n}) => {\n const variant = type !== undefined ? type : kind; // support deprecated prop\n const isInteractive = variant === \"interactive\";\n\n return (\n <div\n data-testid=\"ndsContentCard\"\n role={isInteractive ? \"button\" : undefined}\n tabIndex={isInteractive ? \"0\" : undefined}\n aria-pressed={isInteractive ? isSelected : undefined}\n onClick={isInteractive ? onClick : undefined}\n onKeyUp={\n isInteractive\n ? ({ key }) => {\n if (key === \"Enter\") {\n onClick();\n }\n }\n : undefined\n }\n className={cc([\n \"nds-contentCard\",\n `nds-contentCard--${variant}`,\n `padding--all--${paddingSize}`,\n \"rounded--all bgColor--white\",\n { \"button--reset\": isInteractive },\n ])}\n >\n {children}\n </div>\n );\n};\n\nContentCard.propTypes = {\n /** Accepts any content as children */\n children: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.arrayOf(PropTypes.node),\n ]).isRequired,\n /**\n * Amount of padding to add on all sides of card.\n * For custom padding control, use `none` and compose your own element(s)\n * in ContentCard children.\n */\n paddingSize: PropTypes.oneOf([\"xs\", \"s\", \"m\", \"l\", \"xl\", \"none\"]),\n /**\n * Kind of card to render.\n *\n * `plain`: flat, rounded rect\n *\n * `elevated`: rounded rect with shadow\n *\n * `interactive`: rounded rect with border, hover styles, and click handler\n */\n kind: PropTypes.oneOf([\"plain\", \"elevated\", \"interactive\"]),\n /** DEPRECATED - use `kind` instead. This will be removed in a future release */\n type: PropTypes.oneOf([\"plain\", \"elevated\", \"interactive\"]),\n /**\n * Only valid for `interactive` card type.\n * Callback for card click event.\n */\n onClick: (props, propName) => {\n const isInteractive = props.type === \"interactive\";\n // must be a function\n if (isInteractive && typeof props[propName] != \"function\") {\n return new Error(\"ContentCard: `onClick` must be a function\");\n }\n // onClick required for `interactive` type\n if (isInteractive && props[propName] === undefined) {\n return new Error(\n \"ContentCard: `onClick` is required for `interactive` type\"\n );\n }\n // onClick invalid for non-interactive types\n if (props[propName] == \"function\" && !isInteractive) {\n return new Error(\n \"ContentCard: `onClick` is only valid for `interactive` type\"\n );\n }\n },\n /**\n * Only applicable for `interactive` type.\n * Renders card in visually selected state with appropriate attributes.\n */\n isSelected: PropTypes.bool,\n};\n\nexport default ContentCard;\n","/* eslint-disable jsx-a11y/no-static-element-interactions,jsx-a11y/click-events-have-key-events */\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\n\n/*\nThe Narmi TextInput component is designed for text-based form fields.\n\nIf `multiline` is true, it creates a <textarea>; otherwise, it creates an <input type=\"text\">.\nIf `icon` is provided, the value of the icon property must match an available icon class.\nBy default, if neither `multiline` nor `icon` are provided, an overhanging label will be shown in the input.\n\n*/\n\nconst Error = ({ error }) => {\n if (!error) return null;\n return (\n <div className=\"nds-input-error\">\n <div className=\"fontSize--s margin--right--xxs narmi-icon-x-circle\" />\n {error}\n </div>\n );\n};\n\nError.propTypes = {\n error: PropTypes.string,\n};\n\n/**\n * PRIVATE\n *\n * This component has no stories because it is only used internally by NDS.\n * In a future release, this base Input component will be merged with TextInput.\n */\nconst Input = ({\n id,\n label,\n startIconClass,\n disabled,\n multiline = false,\n decoration,\n error,\n search,\n onClick,\n style,\n children,\n ...props\n}) => {\n const className = [\n \"nds-input\",\n disabled ? \"disabled\" : \"\",\n props.multiline ? \"multiline\" : \"\",\n error ? \"error\" : \"\",\n search ? \"search\" : \"\",\n ].join(\" \");\n\n return (\n <div className={className} onClick={onClick} style={style}>\n <div className=\"nds-input-box\">\n {startIconClass ? (\n <div className={`nds-input-icon ${startIconClass}`}></div>\n ) : (\n \"\"\n )}\n <div\n className={`nds-input-column ${\n !label || (startIconClass && !multiline) ? \"no-label\" : \"\"\n }`}\n >\n {children}\n {decoration}\n {!multiline ? <label htmlFor={id}>{label}</label> : \"\"}\n </div>\n </div>\n <Error error={error} />\n </div>\n );\n};\n\nInput.propTypes = {\n id: PropTypes.string,\n label: PropTypes.string,\n /** full `narmi-icon-<shape>` className for icon at start of input*/\n startIconClass: PropTypes.node,\n decoration: PropTypes.oneOfType([PropTypes.node, PropTypes.element]),\n multiline: PropTypes.bool,\n disabled: PropTypes.bool,\n search: PropTypes.bool,\n onClick: PropTypes.func,\n style: PropTypes.object,\n error: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.arrayOf(PropTypes.node),\n ]),\n};\n\nexport default Input;\n","export const HOOKS = [\n \"onChange\",\n \"onClose\",\n \"onDayCreate\",\n \"onDestroy\",\n \"onKeyDown\",\n \"onMonthChange\",\n \"onOpen\",\n \"onParseConfig\",\n \"onReady\",\n \"onValueUpdate\",\n \"onYearChange\",\n \"onPreCalendarPosition\",\n];\nexport const defaults = {\n _disable: [],\n allowInput: false,\n allowInvalidPreload: false,\n altFormat: \"F j, Y\",\n altInput: false,\n altInputClass: \"form-control input\",\n animate: typeof window === \"object\" &&\n window.navigator.userAgent.indexOf(\"MSIE\") === -1,\n ariaDateFormat: \"F j, Y\",\n autoFillDefaultTime: true,\n clickOpens: true,\n closeOnSelect: true,\n conjunction: \", \",\n dateFormat: \"Y-m-d\",\n defaultHour: 12,\n defaultMinute: 0,\n defaultSeconds: 0,\n disable: [],\n disableMobile: false,\n enableSeconds: false,\n enableTime: false,\n errorHandler: (err) => typeof console !== \"undefined\" && console.warn(err),\n getWeek: (givenDate) => {\n const date = new Date(givenDate.getTime());\n date.setHours(0, 0, 0, 0);\n date.setDate(date.getDate() + 3 - ((date.getDay() + 6) % 7));\n var week1 = new Date(date.getFullYear(), 0, 4);\n return (1 +\n Math.round(((date.getTime() - week1.getTime()) / 86400000 -\n 3 +\n ((week1.getDay() + 6) % 7)) /\n 7));\n },\n hourIncrement: 1,\n ignoredFocusElements: [],\n inline: false,\n locale: \"default\",\n minuteIncrement: 5,\n mode: \"single\",\n monthSelectorType: \"dropdown\",\n nextArrow: \"<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 17 17'><g></g><path d='M13.207 8.472l-7.854 7.854-0.707-0.707 7.146-7.146-7.146-7.148 0.707-0.707 7.854 7.854z' /></svg>\",\n noCalendar: false,\n now: new Date(),\n onChange: [],\n onClose: [],\n onDayCreate: [],\n onDestroy: [],\n onKeyDown: [],\n onMonthChange: [],\n onOpen: [],\n onParseConfig: [],\n onReady: [],\n onValueUpdate: [],\n onYearChange: [],\n onPreCalendarPosition: [],\n plugins: [],\n position: \"auto\",\n positionElement: undefined,\n prevArrow: \"<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 17 17'><g></g><path d='M5.207 8.471l7.146 7.147-0.707 0.707-7.853-7.854 7.854-7.853 0.707 0.707-7.147 7.146z' /></svg>\",\n shorthandCurrentMonth: false,\n showMonths: 1,\n static: false,\n time_24hr: false,\n weekNumbers: false,\n wrap: false,\n};\n","export const english = {\n weekdays: {\n shorthand: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n longhand: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ],\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n longhand: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n },\n daysInMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],\n firstDayOfWeek: 0,\n ordinal: (nth) => {\n const s = nth % 100;\n if (s > 3 && s < 21)\n return \"th\";\n switch (s % 10) {\n case 1:\n return \"st\";\n case 2:\n return \"nd\";\n case 3:\n return \"rd\";\n default:\n return \"th\";\n }\n },\n rangeSeparator: \" to \",\n weekAbbreviation: \"Wk\",\n scrollTitle: \"Scroll to increment\",\n toggleTitle: \"Click to toggle\",\n amPM: [\"AM\", \"PM\"],\n yearAriaLabel: \"Year\",\n monthAriaLabel: \"Month\",\n hourAriaLabel: \"Hour\",\n minuteAriaLabel: \"Minute\",\n time_24hr: false,\n};\nexport default english;\n","export const pad = (number, length = 2) => `000${number}`.slice(length * -1);\nexport const int = (bool) => (bool === true ? 1 : 0);\nexport function debounce(fn, wait) {\n let t;\n return function () {\n clearTimeout(t);\n t = setTimeout(() => fn.apply(this, arguments), wait);\n };\n}\nexport const arrayify = (obj) => obj instanceof Array ? obj : [obj];\n","export function toggleClass(elem, className, bool) {\n if (bool === true)\n return elem.classList.add(className);\n elem.classList.remove(className);\n}\nexport function createElement(tag, className, content) {\n const e = window.document.createElement(tag);\n className = className || \"\";\n content = content || \"\";\n e.className = className;\n if (content !== undefined)\n e.textContent = content;\n return e;\n}\nexport function clearNode(node) {\n while (node.firstChild)\n node.removeChild(node.firstChild);\n}\nexport function findParent(node, condition) {\n if (condition(node))\n return node;\n else if (node.parentNode)\n return findParent(node.parentNode, condition);\n return undefined;\n}\nexport function createNumberInput(inputClassName, opts) {\n const wrapper = createElement(\"div\", \"numInputWrapper\"), numInput = createElement(\"input\", \"numInput \" + inputClassName), arrowUp = createElement(\"span\", \"arrowUp\"), arrowDown = createElement(\"span\", \"arrowDown\");\n if (navigator.userAgent.indexOf(\"MSIE 9.0\") === -1) {\n numInput.type = \"number\";\n }\n else {\n numInput.type = \"text\";\n numInput.pattern = \"\\\\d*\";\n }\n if (opts !== undefined)\n for (const key in opts)\n numInput.setAttribute(key, opts[key]);\n wrapper.appendChild(numInput);\n wrapper.appendChild(arrowUp);\n wrapper.appendChild(arrowDown);\n return wrapper;\n}\nexport function getEventTarget(event) {\n try {\n if (typeof event.composedPath === \"function\") {\n const path = event.composedPath();\n return path[0];\n }\n return event.target;\n }\n catch (error) {\n return event.target;\n }\n}\n","import { int, pad } from \"../utils\";\nconst doNothing = () => undefined;\nexport const monthToStr = (monthNumber, shorthand, locale) => locale.months[shorthand ? \"shorthand\" : \"longhand\"][monthNumber];\nexport const revFormat = {\n D: doNothing,\n F: function (dateObj, monthName, locale) {\n dateObj.setMonth(locale.months.longhand.indexOf(monthName));\n },\n G: (dateObj, hour) => {\n dateObj.setHours(parseFloat(hour));\n },\n H: (dateObj, hour) => {\n dateObj.setHours(parseFloat(hour));\n },\n J: (dateObj, day) => {\n dateObj.setDate(parseFloat(day));\n },\n K: (dateObj, amPM, locale) => {\n dateObj.setHours((dateObj.getHours() % 12) +\n 12 * int(new RegExp(locale.amPM[1], \"i\").test(amPM)));\n },\n M: function (dateObj, shortMonth, locale) {\n dateObj.setMonth(locale.months.shorthand.indexOf(shortMonth));\n },\n S: (dateObj, seconds) => {\n dateObj.setSeconds(parseFloat(seconds));\n },\n U: (_, unixSeconds) => new Date(parseFloat(unixSeconds) * 1000),\n W: function (dateObj, weekNum, locale) {\n const weekNumber = parseInt(weekNum);\n const date = new Date(dateObj.getFullYear(), 0, 2 + (weekNumber - 1) * 7, 0, 0, 0, 0);\n date.setDate(date.getDate() - date.getDay() + locale.firstDayOfWeek);\n return date;\n },\n Y: (dateObj, year) => {\n dateObj.setFullYear(parseFloat(year));\n },\n Z: (_, ISODate) => new Date(ISODate),\n d: (dateObj, day) => {\n dateObj.setDate(parseFloat(day));\n },\n h: (dateObj, hour) => {\n dateObj.setHours(parseFloat(hour));\n },\n i: (dateObj, minutes) => {\n dateObj.setMinutes(parseFloat(minutes));\n },\n j: (dateObj, day) => {\n dateObj.setDate(parseFloat(day));\n },\n l: doNothing,\n m: (dateObj, month) => {\n dateObj.setMonth(parseFloat(month) - 1);\n },\n n: (dateObj, month) => {\n dateObj.setMonth(parseFloat(month) - 1);\n },\n s: (dateObj, seconds) => {\n dateObj.setSeconds(parseFloat(seconds));\n },\n u: (_, unixMillSeconds) => new Date(parseFloat(unixMillSeconds)),\n w: doNothing,\n y: (dateObj, year) => {\n dateObj.setFullYear(2000 + parseFloat(year));\n },\n};\nexport const tokenRegex = {\n D: \"(\\\\w+)\",\n F: \"(\\\\w+)\",\n G: \"(\\\\d\\\\d|\\\\d)\",\n H: \"(\\\\d\\\\d|\\\\d)\",\n J: \"(\\\\d\\\\d|\\\\d)\\\\w+\",\n K: \"\",\n M: \"(\\\\w+)\",\n S: \"(\\\\d\\\\d|\\\\d)\",\n U: \"(.+)\",\n W: \"(\\\\d\\\\d|\\\\d)\",\n Y: \"(\\\\d{4})\",\n Z: \"(.+)\",\n d: \"(\\\\d\\\\d|\\\\d)\",\n h: \"(\\\\d\\\\d|\\\\d)\",\n i: \"(\\\\d\\\\d|\\\\d)\",\n j: \"(\\\\d\\\\d|\\\\d)\",\n l: \"(\\\\w+)\",\n m: \"(\\\\d\\\\d|\\\\d)\",\n n: \"(\\\\d\\\\d|\\\\d)\",\n s: \"(\\\\d\\\\d|\\\\d)\",\n u: \"(.+)\",\n w: \"(\\\\d\\\\d|\\\\d)\",\n y: \"(\\\\d{2})\",\n};\nexport const formats = {\n Z: (date) => date.toISOString(),\n D: function (date, locale, options) {\n return locale.weekdays.shorthand[formats.w(date, locale, options)];\n },\n F: function (date, locale, options) {\n return monthToStr(formats.n(date, locale, options) - 1, false, locale);\n },\n G: function (date, locale, options) {\n return pad(formats.h(date, locale, options));\n },\n H: (date) => pad(date.getHours()),\n J: function (date, locale) {\n return locale.ordinal !== undefined\n ? date.getDate() + locale.ordinal(date.getDate())\n : date.getDate();\n },\n K: (date, locale) => locale.amPM[int(date.getHours() > 11)],\n M: function (date, locale) {\n return monthToStr(date.getMonth(), true, locale);\n },\n S: (date) => pad(date.getSeconds()),\n U: (date) => date.getTime() / 1000,\n W: function (date, _, options) {\n return options.getWeek(date);\n },\n Y: (date) => pad(date.getFullYear(), 4),\n d: (date) => pad(date.getDate()),\n h: (date) => (date.getHours() % 12 ? date.getHours() % 12 : 12),\n i: (date) => pad(date.getMinutes()),\n j: (date) => date.getDate(),\n l: function (date, locale) {\n return locale.weekdays.longhand[date.getDay()];\n },\n m: (date) => pad(date.getMonth() + 1),\n n: (date) => date.getMonth() + 1,\n s: (date) => date.getSeconds(),\n u: (date) => date.getTime(),\n w: (date) => date.getDay(),\n y: (date) => String(date.getFullYear()).substring(2),\n};\n","import { tokenRegex, revFormat, formats, } from \"./formatting\";\nimport { defaults } from \"../types/options\";\nimport { english } from \"../l10n/default\";\nexport const createDateFormatter = ({ config = defaults, l10n = english, isMobile = false, }) => (dateObj, frmt, overrideLocale) => {\n const locale = overrideLocale || l10n;\n if (config.formatDate !== undefined && !isMobile) {\n return config.formatDate(dateObj, frmt, locale);\n }\n return frmt\n .split(\"\")\n .map((c, i, arr) => formats[c] && arr[i - 1] !== \"\\\\\"\n ? formats[c](dateObj, locale, config)\n : c !== \"\\\\\"\n ? c\n : \"\")\n .join(\"\");\n};\nexport const createDateParser = ({ config = defaults, l10n = english }) => (date, givenFormat, timeless, customLocale) => {\n if (date !== 0 && !date)\n return undefined;\n const locale = customLocale || l10n;\n let parsedDate;\n const dateOrig = date;\n if (date instanceof Date)\n parsedDate = new Date(date.getTime());\n else if (typeof date !== \"string\" &&\n date.toFixed !== undefined)\n parsedDate = new Date(date);\n else if (typeof date === \"string\") {\n const format = givenFormat || (config || defaults).dateFormat;\n const datestr = String(date).trim();\n if (datestr === \"today\") {\n parsedDate = new Date();\n timeless = true;\n }\n else if (/Z$/.test(datestr) ||\n /GMT$/.test(datestr))\n parsedDate = new Date(date);\n else if (config && config.parseDate)\n parsedDate = config.parseDate(date, format);\n else {\n parsedDate =\n !config || !config.noCalendar\n ? new Date(new Date().getFullYear(), 0, 1, 0, 0, 0, 0)\n : new Date(new Date().setHours(0, 0, 0, 0));\n let matched, ops = [];\n for (let i = 0, matchIndex = 0, regexStr = \"\"; i < format.length; i++) {\n const token = format[i];\n const isBackSlash = token === \"\\\\\";\n const escaped = format[i - 1] === \"\\\\\" || isBackSlash;\n if (tokenRegex[token] && !escaped) {\n regexStr += tokenRegex[token];\n const match = new RegExp(regexStr).exec(date);\n if (match && (matched = true)) {\n ops[token !== \"Y\" ? \"push\" : \"unshift\"]({\n fn: revFormat[token],\n val: match[++matchIndex],\n });\n }\n }\n else if (!isBackSlash)\n regexStr += \".\";\n ops.forEach(({ fn, val }) => (parsedDate = fn(parsedDate, val, locale) || parsedDate));\n }\n parsedDate = matched ? parsedDate : undefined;\n }\n }\n if (!(parsedDate instanceof Date && !isNaN(parsedDate.getTime()))) {\n config.errorHandler(new Error(`Invalid date provided: ${dateOrig}`));\n return undefined;\n }\n if (timeless === true)\n parsedDate.setHours(0, 0, 0, 0);\n return parsedDate;\n};\nexport function compareDates(date1, date2, timeless = true) {\n if (timeless !== false) {\n return (new Date(date1.getTime()).setHours(0, 0, 0, 0) -\n new Date(date2.getTime()).setHours(0, 0, 0, 0));\n }\n return date1.getTime() - date2.getTime();\n}\nexport function compareTimes(date1, date2) {\n return (3600 * (date1.getHours() - date2.getHours()) +\n 60 * (date1.getMinutes() - date2.getMinutes()) +\n date1.getSeconds() -\n date2.getSeconds());\n}\nexport const isBetween = (ts, ts1, ts2) => {\n return ts > Math.min(ts1, ts2) && ts < Math.max(ts1, ts2);\n};\nexport const duration = {\n DAY: 86400000,\n};\nexport function getDefaultHours(config) {\n let hours = config.defaultHour;\n let minutes = config.defaultMinute;\n let seconds = config.defaultSeconds;\n if (config.minDate !== undefined) {\n const minHour = config.minDate.getHours();\n const minMinutes = config.minDate.getMinutes();\n const minSeconds = config.minDate.getSeconds();\n if (hours < minHour) {\n hours = minHour;\n }\n if (hours === minHour && minutes < minMinutes) {\n minutes = minMinutes;\n }\n if (hours === minHour && minutes === minMinutes && seconds < minSeconds)\n seconds = config.minDate.getSeconds();\n }\n if (config.maxDate !== undefined) {\n const maxHr = config.maxDate.getHours();\n const maxMinutes = config.maxDate.getMinutes();\n hours = Math.min(hours, maxHr);\n if (hours === maxHr)\n minutes = Math.min(maxMinutes, minutes);\n if (hours === maxHr && minutes === maxMinutes)\n seconds = config.maxDate.getSeconds();\n }\n return { hours, minutes, seconds };\n}\n","import { defaults as defaultOptions, HOOKS, } from \"./types/options\";\nimport English from \"./l10n/default\";\nimport { arrayify, debounce, int, pad } from \"./utils\";\nimport { clearNode, createElement, createNumberInput, findParent, toggleClass, getEventTarget, } from \"./utils/dom\";\nimport { compareDates, createDateParser, createDateFormatter, duration, isBetween, getDefaultHours, } from \"./utils/dates\";\nimport { tokenRegex, monthToStr } from \"./utils/formatting\";\nimport \"./utils/polyfills\";\nconst DEBOUNCED_CHANGE_MS = 300;\nfunction FlatpickrInstance(element, instanceConfig) {\n const self = {\n config: Object.assign(Object.assign({}, defaultOptions), flatpickr.defaultConfig),\n l10n: English,\n };\n self.parseDate = createDateParser({ config: self.config, l10n: self.l10n });\n self._handlers = [];\n self.pluginElements = [];\n self.loadedPlugins = [];\n self._bind = bind;\n self._setHoursFromDate = setHoursFromDate;\n self._positionCalendar = positionCalendar;\n self.changeMonth = changeMonth;\n self.changeYear = changeYear;\n self.clear = clear;\n self.close = close;\n self._createElement = createElement;\n self.destroy = destroy;\n self.isEnabled = isEnabled;\n self.jumpToDate = jumpToDate;\n self.open = open;\n self.redraw = redraw;\n self.set = set;\n self.setDate = setDate;\n self.toggle = toggle;\n function setupHelperFunctions() {\n self.utils = {\n getDaysInMonth(month = self.currentMonth, yr = self.currentYear) {\n if (month === 1 && ((yr % 4 === 0 && yr % 100 !== 0) || yr % 400 === 0))\n return 29;\n return self.l10n.daysInMonth[month];\n },\n };\n }\n function init() {\n self.element = self.input = element;\n self.isOpen = false;\n parseConfig();\n setupLocale();\n setupInputs();\n setupDates();\n setupHelperFunctions();\n if (!self.isMobile)\n build();\n bindEvents();\n if (self.selectedDates.length || self.config.noCalendar) {\n if (self.config.enableTime) {\n setHoursFromDate(self.config.noCalendar ? self.latestSelectedDateObj : undefined);\n }\n updateValue(false);\n }\n setCalendarWidth();\n const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n if (!self.isMobile && isSafari) {\n positionCalendar();\n }\n triggerEvent(\"onReady\");\n }\n function bindToInstance(fn) {\n return fn.bind(self);\n }\n function setCalendarWidth() {\n const config = self.config;\n if (config.weekNumbers === false && config.showMonths === 1) {\n return;\n }\n else if (config.noCalendar !== true) {\n window.requestAnimationFrame(function () {\n if (self.calendarContainer !== undefined) {\n self.calendarContainer.style.visibility = \"hidden\";\n self.calendarContainer.style.display = \"block\";\n }\n if (self.daysContainer !== undefined) {\n const daysWidth = (self.days.offsetWidth + 1) * config.showMonths;\n self.daysContainer.style.width = daysWidth + \"px\";\n self.calendarContainer.style.width =\n daysWidth +\n (self.weekWrapper !== undefined\n ? self.weekWrapper.offsetWidth\n : 0) +\n \"px\";\n self.calendarContainer.style.removeProperty(\"visibility\");\n self.calendarContainer.style.removeProperty(\"display\");\n }\n });\n }\n }\n function updateTime(e) {\n if (self.selectedDates.length === 0) {\n const defaultDate = self.config.minDate === undefined ||\n compareDates(new Date(), self.config.minDate) >= 0\n ? new Date()\n : new Date(self.config.minDate.getTime());\n const defaults = getDefaultHours(self.config);\n defaultDate.setHours(defaults.hours, defaults.minutes, defaults.seconds, defaultDate.getMilliseconds());\n self.selectedDates = [defaultDate];\n self.latestSelectedDateObj = defaultDate;\n }\n if (e !== undefined && e.type !== \"blur\") {\n timeWrapper(e);\n }\n const prevValue = self._input.value;\n setHoursFromInputs();\n updateValue();\n if (self._input.value !== prevValue) {\n self._debouncedChange();\n }\n }\n function ampm2military(hour, amPM) {\n return (hour % 12) + 12 * int(amPM === self.l10n.amPM[1]);\n }\n function military2ampm(hour) {\n switch (hour % 24) {\n case 0:\n case 12:\n return 12;\n default:\n return hour % 12;\n }\n }\n function setHoursFromInputs() {\n if (self.hourElement === undefined || self.minuteElement === undefined)\n return;\n let hours = (parseInt(self.hourElement.value.slice(-2), 10) || 0) % 24, minutes = (parseInt(self.minuteElement.value, 10) || 0) % 60, seconds = self.secondElement !== undefined\n ? (parseInt(self.secondElement.value, 10) || 0) % 60\n : 0;\n if (self.amPM !== undefined) {\n hours = ampm2military(hours, self.amPM.textContent);\n }\n const limitMinHours = self.config.minTime !== undefined ||\n (self.config.minDate &&\n self.minDateHasTime &&\n self.latestSelectedDateObj &&\n compareDates(self.latestSelectedDateObj, self.config.minDate, true) ===\n 0);\n const limitMaxHours = self.config.maxTime !== undefined ||\n (self.config.maxDate &&\n self.maxDateHasTime &&\n self.latestSelectedDateObj &&\n compareDates(self.latestSelectedDateObj, self.config.maxDate, true) ===\n 0);\n if (limitMaxHours) {\n const maxTime = self.config.maxTime !== undefined\n ? self.config.maxTime\n : self.config.maxDate;\n hours = Math.min(hours, maxTime.getHours());\n if (hours === maxTime.getHours())\n minutes = Math.min(minutes, maxTime.getMinutes());\n if (minutes === maxTime.getMinutes())\n seconds = Math.min(seconds, maxTime.getSeconds());\n }\n if (limitMinHours) {\n const minTime = self.config.minTime !== undefined\n ? self.config.minTime\n : self.config.minDate;\n hours = Math.max(hours, minTime.getHours());\n if (hours === minTime.getHours() && minutes < minTime.getMinutes())\n minutes = minTime.getMinutes();\n if (minutes === minTime.getMinutes())\n seconds = Math.max(seconds, minTime.getSeconds());\n }\n setHours(hours, minutes, seconds);\n }\n function setHoursFromDate(dateObj) {\n const date = dateObj || self.latestSelectedDateObj;\n if (date) {\n setHours(date.getHours(), date.getMinutes(), date.getSeconds());\n }\n }\n function setHours(hours, minutes, seconds) {\n if (self.latestSelectedDateObj !== undefined) {\n self.latestSelectedDateObj.setHours(hours % 24, minutes, seconds || 0, 0);\n }\n if (!self.hourElement || !self.minuteElement || self.isMobile)\n return;\n self.hourElement.value = pad(!self.config.time_24hr\n ? ((12 + hours) % 12) + 12 * int(hours % 12 === 0)\n : hours);\n self.minuteElement.value = pad(minutes);\n if (self.amPM !== undefined)\n self.amPM.textContent = self.l10n.amPM[int(hours >= 12)];\n if (self.secondElement !== undefined)\n self.secondElement.value = pad(seconds);\n }\n function onYearInput(event) {\n const eventTarget = getEventTarget(event);\n const year = parseInt(eventTarget.value) + (event.delta || 0);\n if (year / 1000 > 1 ||\n (event.key === \"Enter\" && !/[^\\d]/.test(year.toString()))) {\n changeYear(year);\n }\n }\n function bind(element, event, handler, options) {\n if (event instanceof Array)\n return event.forEach((ev) => bind(element, ev, handler, options));\n if (element instanceof Array)\n return element.forEach((el) => bind(el, event, handler, options));\n element.addEventListener(event, handler, options);\n self._handlers.push({\n remove: () => element.removeEventListener(event, handler),\n });\n }\n function triggerChange() {\n triggerEvent(\"onChange\");\n }\n function bindEvents() {\n if (self.config.wrap) {\n [\"open\", \"close\", \"toggle\", \"clear\"].forEach((evt) => {\n Array.prototype.forEach.call(self.element.querySelectorAll(`[data-${evt}]`), (el) => bind(el, \"click\", self[evt]));\n });\n }\n if (self.isMobile) {\n setupMobile();\n return;\n }\n const debouncedResize = debounce(onResize, 50);\n self._debouncedChange = debounce(triggerChange, DEBOUNCED_CHANGE_MS);\n if (self.daysContainer && !/iPhone|iPad|iPod/i.test(navigator.userAgent))\n bind(self.daysContainer, \"mouseover\", (e) => {\n if (self.config.mode === \"range\")\n onMouseOver(getEventTarget(e));\n });\n bind(window.document.body, \"keydown\", onKeyDown);\n if (!self.config.inline && !self.config.static)\n bind(window, \"resize\", debouncedResize);\n if (window.ontouchstart !== undefined)\n bind(window.document, \"touchstart\", documentClick);\n else\n bind(window.document, \"mousedown\", documentClick);\n bind(window.document, \"focus\", documentClick, { capture: true });\n if (self.config.clickOpens === true) {\n bind(self._input, \"focus\", self.open);\n bind(self._input, \"click\", self.open);\n }\n if (self.daysContainer !== undefined) {\n bind(self.monthNav, \"click\", onMonthNavClick);\n bind(self.monthNav, [\"keyup\", \"increment\"], onYearInput);\n bind(self.daysContainer, \"click\", selectDate);\n }\n if (self.timeContainer !== undefined &&\n self.minuteElement !== undefined &&\n self.hourElement !== undefined) {\n const selText = (e) => getEventTarget(e).select();\n bind(self.timeContainer, [\"increment\"], updateTime);\n bind(self.timeContainer, \"blur\", updateTime, { capture: true });\n bind(self.timeContainer, \"click\", timeIncrement);\n bind([self.hourElement, self.minuteElement], [\"focus\", \"click\"], selText);\n if (self.secondElement !== undefined)\n bind(self.secondElement, \"focus\", () => self.secondElement && self.secondElement.select());\n if (self.amPM !== undefined) {\n bind(self.amPM, \"click\", (e) => {\n updateTime(e);\n triggerChange();\n });\n }\n }\n if (self.config.allowInput) {\n bind(self._input, \"blur\", onBlur);\n }\n }\n function jumpToDate(jumpDate, triggerChange) {\n const jumpTo = jumpDate !== undefined\n ? self.parseDate(jumpDate)\n : self.latestSelectedDateObj ||\n (self.config.minDate && self.config.minDate > self.now\n ? self.config.minDate\n : self.config.maxDate && self.config.maxDate < self.now\n ? self.config.maxDate\n : self.now);\n const oldYear = self.currentYear;\n const oldMonth = self.currentMonth;\n try {\n if (jumpTo !== undefined) {\n self.currentYear = jumpTo.getFullYear();\n self.currentMonth = jumpTo.getMonth();\n }\n }\n catch (e) {\n e.message = \"Invalid date supplied: \" + jumpTo;\n self.config.errorHandler(e);\n }\n if (triggerChange && self.currentYear !== oldYear) {\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n if (triggerChange &&\n (self.currentYear !== oldYear || self.currentMonth !== oldMonth)) {\n triggerEvent(\"onMonthChange\");\n }\n self.redraw();\n }\n function timeIncrement(e) {\n const eventTarget = getEventTarget(e);\n if (~eventTarget.className.indexOf(\"arrow\"))\n incrementNumInput(e, eventTarget.classList.contains(\"arrowUp\") ? 1 : -1);\n }\n function incrementNumInput(e, delta, inputElem) {\n const target = e && getEventTarget(e);\n const input = inputElem ||\n (target && target.parentNode && target.parentNode.firstChild);\n const event = createEvent(\"increment\");\n event.delta = delta;\n input && input.dispatchEvent(event);\n }\n function build() {\n const fragment = window.document.createDocumentFragment();\n self.calendarContainer = createElement(\"div\", \"flatpickr-calendar\");\n self.calendarContainer.tabIndex = -1;\n if (!self.config.noCalendar) {\n fragment.appendChild(buildMonthNav());\n self.innerContainer = createElement(\"div\", \"flatpickr-innerContainer\");\n if (self.config.weekNumbers) {\n const { weekWrapper, weekNumbers } = buildWeeks();\n self.innerContainer.appendChild(weekWrapper);\n self.weekNumbers = weekNumbers;\n self.weekWrapper = weekWrapper;\n }\n self.rContainer = createElement(\"div\", \"flatpickr-rContainer\");\n self.rContainer.appendChild(buildWeekdays());\n if (!self.daysContainer) {\n self.daysContainer = createElement(\"div\", \"flatpickr-days\");\n self.daysContainer.tabIndex = -1;\n }\n buildDays();\n self.rContainer.appendChild(self.daysContainer);\n self.innerContainer.appendChild(self.rContainer);\n fragment.appendChild(self.innerContainer);\n }\n if (self.config.enableTime) {\n fragment.appendChild(buildTime());\n }\n toggleClass(self.calendarContainer, \"rangeMode\", self.config.mode === \"range\");\n toggleClass(self.calendarContainer, \"animate\", self.config.animate === true);\n toggleClass(self.calendarContainer, \"multiMonth\", self.config.showMonths > 1);\n self.calendarContainer.appendChild(fragment);\n const customAppend = self.config.appendTo !== undefined &&\n self.config.appendTo.nodeType !== undefined;\n if (self.config.inline || self.config.static) {\n self.calendarContainer.classList.add(self.config.inline ? \"inline\" : \"static\");\n if (self.config.inline) {\n if (!customAppend && self.element.parentNode)\n self.element.parentNode.insertBefore(self.calendarContainer, self._input.nextSibling);\n else if (self.config.appendTo !== undefined)\n self.config.appendTo.appendChild(self.calendarContainer);\n }\n if (self.config.static) {\n const wrapper = createElement(\"div\", \"flatpickr-wrapper\");\n if (self.element.parentNode)\n self.element.parentNode.insertBefore(wrapper, self.element);\n wrapper.appendChild(self.element);\n if (self.altInput)\n wrapper.appendChild(self.altInput);\n wrapper.appendChild(self.calendarContainer);\n }\n }\n if (!self.config.static && !self.config.inline)\n (self.config.appendTo !== undefined\n ? self.config.appendTo\n : window.document.body).appendChild(self.calendarContainer);\n }\n function createDay(className, date, dayNumber, i) {\n const dateIsEnabled = isEnabled(date, true), dayElement = createElement(\"span\", \"flatpickr-day \" + className, date.getDate().toString());\n dayElement.dateObj = date;\n dayElement.$i = i;\n dayElement.setAttribute(\"aria-label\", self.formatDate(date, self.config.ariaDateFormat));\n if (className.indexOf(\"hidden\") === -1 &&\n compareDates(date, self.now) === 0) {\n self.todayDateElem = dayElement;\n dayElement.classList.add(\"today\");\n dayElement.setAttribute(\"aria-current\", \"date\");\n }\n if (dateIsEnabled) {\n dayElement.tabIndex = -1;\n if (isDateSelected(date)) {\n dayElement.classList.add(\"selected\");\n self.selectedDateElem = dayElement;\n if (self.config.mode === \"range\") {\n toggleClass(dayElement, \"startRange\", self.selectedDates[0] &&\n compareDates(date, self.selectedDates[0], true) === 0);\n toggleClass(dayElement, \"endRange\", self.selectedDates[1] &&\n compareDates(date, self.selectedDates[1], true) === 0);\n if (className === \"nextMonthDay\")\n dayElement.classList.add(\"inRange\");\n }\n }\n }\n else {\n dayElement.classList.add(\"flatpickr-disabled\");\n }\n if (self.config.mode === \"range\") {\n if (isDateInRange(date) && !isDateSelected(date))\n dayElement.classList.add(\"inRange\");\n }\n if (self.weekNumbers &&\n self.config.showMonths === 1 &&\n className !== \"prevMonthDay\" &&\n dayNumber % 7 === 1) {\n self.weekNumbers.insertAdjacentHTML(\"beforeend\", \"<span class='flatpickr-day'>\" + self.config.getWeek(date) + \"</span>\");\n }\n triggerEvent(\"onDayCreate\", dayElement);\n return dayElement;\n }\n function focusOnDayElem(targetNode) {\n targetNode.focus();\n if (self.config.mode === \"range\")\n onMouseOver(targetNode);\n }\n function getFirstAvailableDay(delta) {\n const startMonth = delta > 0 ? 0 : self.config.showMonths - 1;\n const endMonth = delta > 0 ? self.config.showMonths : -1;\n for (let m = startMonth; m != endMonth; m += delta) {\n const month = self.daysContainer.children[m];\n const startIndex = delta > 0 ? 0 : month.children.length - 1;\n const endIndex = delta > 0 ? month.children.length : -1;\n for (let i = startIndex; i != endIndex; i += delta) {\n const c = month.children[i];\n if (c.className.indexOf(\"hidden\") === -1 && isEnabled(c.dateObj))\n return c;\n }\n }\n return undefined;\n }\n function getNextAvailableDay(current, delta) {\n const givenMonth = current.className.indexOf(\"Month\") === -1\n ? current.dateObj.getMonth()\n : self.currentMonth;\n const endMonth = delta > 0 ? self.config.showMonths : -1;\n const loopDelta = delta > 0 ? 1 : -1;\n for (let m = givenMonth - self.currentMonth; m != endMonth; m += loopDelta) {\n const month = self.daysContainer.children[m];\n const startIndex = givenMonth - self.currentMonth === m\n ? current.$i + delta\n : delta < 0\n ? month.children.length - 1\n : 0;\n const numMonthDays = month.children.length;\n for (let i = startIndex; i >= 0 && i < numMonthDays && i != (delta > 0 ? numMonthDays : -1); i += loopDelta) {\n const c = month.children[i];\n if (c.className.indexOf(\"hidden\") === -1 &&\n isEnabled(c.dateObj) &&\n Math.abs(current.$i - i) >= Math.abs(delta))\n return focusOnDayElem(c);\n }\n }\n self.changeMonth(loopDelta);\n focusOnDay(getFirstAvailableDay(loopDelta), 0);\n return undefined;\n }\n function focusOnDay(current, offset) {\n const dayFocused = isInView(document.activeElement || document.body);\n const startElem = current !== undefined\n ? current\n : dayFocused\n ? document.activeElement\n : self.selectedDateElem !== undefined && isInView(self.selectedDateElem)\n ? self.selectedDateElem\n : self.todayDateElem !== undefined && isInView(self.todayDateElem)\n ? self.todayDateElem\n : getFirstAvailableDay(offset > 0 ? 1 : -1);\n if (startElem === undefined) {\n self._input.focus();\n }\n else if (!dayFocused) {\n focusOnDayElem(startElem);\n }\n else {\n getNextAvailableDay(startElem, offset);\n }\n }\n function buildMonthDays(year, month) {\n const firstOfMonth = (new Date(year, month, 1).getDay() - self.l10n.firstDayOfWeek + 7) % 7;\n const prevMonthDays = self.utils.getDaysInMonth((month - 1 + 12) % 12, year);\n const daysInMonth = self.utils.getDaysInMonth(month, year), days = window.document.createDocumentFragment(), isMultiMonth = self.config.showMonths > 1, prevMonthDayClass = isMultiMonth ? \"prevMonthDay hidden\" : \"prevMonthDay\", nextMonthDayClass = isMultiMonth ? \"nextMonthDay hidden\" : \"nextMonthDay\";\n let dayNumber = prevMonthDays + 1 - firstOfMonth, dayIndex = 0;\n for (; dayNumber <= prevMonthDays; dayNumber++, dayIndex++) {\n days.appendChild(createDay(prevMonthDayClass, new Date(year, month - 1, dayNumber), dayNumber, dayIndex));\n }\n for (dayNumber = 1; dayNumber <= daysInMonth; dayNumber++, dayIndex++) {\n days.appendChild(createDay(\"\", new Date(year, month, dayNumber), dayNumber, dayIndex));\n }\n for (let dayNum = daysInMonth + 1; dayNum <= 42 - firstOfMonth &&\n (self.config.showMonths === 1 || dayIndex % 7 !== 0); dayNum++, dayIndex++) {\n days.appendChild(createDay(nextMonthDayClass, new Date(year, month + 1, dayNum % daysInMonth), dayNum, dayIndex));\n }\n const dayContainer = createElement(\"div\", \"dayContainer\");\n dayContainer.appendChild(days);\n return dayContainer;\n }\n function buildDays() {\n if (self.daysContainer === undefined) {\n return;\n }\n clearNode(self.daysContainer);\n if (self.weekNumbers)\n clearNode(self.weekNumbers);\n const frag = document.createDocumentFragment();\n for (let i = 0; i < self.config.showMonths; i++) {\n const d = new Date(self.currentYear, self.currentMonth, 1);\n d.setMonth(self.currentMonth + i);\n frag.appendChild(buildMonthDays(d.getFullYear(), d.getMonth()));\n }\n self.daysContainer.appendChild(frag);\n self.days = self.daysContainer.firstChild;\n if (self.config.mode === \"range\" && self.selectedDates.length === 1) {\n onMouseOver();\n }\n }\n function buildMonthSwitch() {\n if (self.config.showMonths > 1 ||\n self.config.monthSelectorType !== \"dropdown\")\n return;\n const shouldBuildMonth = function (month) {\n if (self.config.minDate !== undefined &&\n self.currentYear === self.config.minDate.getFullYear() &&\n month < self.config.minDate.getMonth()) {\n return false;\n }\n return !(self.config.maxDate !== undefined &&\n self.currentYear === self.config.maxDate.getFullYear() &&\n month > self.config.maxDate.getMonth());\n };\n self.monthsDropdownContainer.tabIndex = -1;\n self.monthsDropdownContainer.innerHTML = \"\";\n for (let i = 0; i < 12; i++) {\n if (!shouldBuildMonth(i))\n continue;\n const month = createElement(\"option\", \"flatpickr-monthDropdown-month\");\n month.value = new Date(self.currentYear, i).getMonth().toString();\n month.textContent = monthToStr(i, self.config.shorthandCurrentMonth, self.l10n);\n month.tabIndex = -1;\n if (self.currentMonth === i) {\n month.selected = true;\n }\n self.monthsDropdownContainer.appendChild(month);\n }\n }\n function buildMonth() {\n const container = createElement(\"div\", \"flatpickr-month\");\n const monthNavFragment = window.document.createDocumentFragment();\n let monthElement;\n if (self.config.showMonths > 1 ||\n self.config.monthSelectorType === \"static\") {\n monthElement = createElement(\"span\", \"cur-month\");\n }\n else {\n self.monthsDropdownContainer = createElement(\"select\", \"flatpickr-monthDropdown-months\");\n self.monthsDropdownContainer.setAttribute(\"aria-label\", self.l10n.monthAriaLabel);\n bind(self.monthsDropdownContainer, \"change\", (e) => {\n const target = getEventTarget(e);\n const selectedMonth = parseInt(target.value, 10);\n self.changeMonth(selectedMonth - self.currentMonth);\n triggerEvent(\"onMonthChange\");\n });\n buildMonthSwitch();\n monthElement = self.monthsDropdownContainer;\n }\n const yearInput = createNumberInput(\"cur-year\", { tabindex: \"-1\" });\n const yearElement = yearInput.getElementsByTagName(\"input\")[0];\n yearElement.setAttribute(\"aria-label\", self.l10n.yearAriaLabel);\n if (self.config.minDate) {\n yearElement.setAttribute(\"min\", self.config.minDate.getFullYear().toString());\n }\n if (self.config.maxDate) {\n yearElement.setAttribute(\"max\", self.config.maxDate.getFullYear().toString());\n yearElement.disabled =\n !!self.config.minDate &&\n self.config.minDate.getFullYear() === self.config.maxDate.getFullYear();\n }\n const currentMonth = createElement(\"div\", \"flatpickr-current-month\");\n currentMonth.appendChild(monthElement);\n currentMonth.appendChild(yearInput);\n monthNavFragment.appendChild(currentMonth);\n container.appendChild(monthNavFragment);\n return {\n container,\n yearElement,\n monthElement,\n };\n }\n function buildMonths() {\n clearNode(self.monthNav);\n self.monthNav.appendChild(self.prevMonthNav);\n if (self.config.showMonths) {\n self.yearElements = [];\n self.monthElements = [];\n }\n for (let m = self.config.showMonths; m--;) {\n const month = buildMonth();\n self.yearElements.push(month.yearElement);\n self.monthElements.push(month.monthElement);\n self.monthNav.appendChild(month.container);\n }\n self.monthNav.appendChild(self.nextMonthNav);\n }\n function buildMonthNav() {\n self.monthNav = createElement(\"div\", \"flatpickr-months\");\n self.yearElements = [];\n self.monthElements = [];\n self.prevMonthNav = createElement(\"span\", \"flatpickr-prev-month\");\n self.prevMonthNav.innerHTML = self.config.prevArrow;\n self.nextMonthNav = createElement(\"span\", \"flatpickr-next-month\");\n self.nextMonthNav.innerHTML = self.config.nextArrow;\n buildMonths();\n Object.defineProperty(self, \"_hidePrevMonthArrow\", {\n get: () => self.__hidePrevMonthArrow,\n set(bool) {\n if (self.__hidePrevMonthArrow !== bool) {\n toggleClass(self.prevMonthNav, \"flatpickr-disabled\", bool);\n self.__hidePrevMonthArrow = bool;\n }\n },\n });\n Object.defineProperty(self, \"_hideNextMonthArrow\", {\n get: () => self.__hideNextMonthArrow,\n set(bool) {\n if (self.__hideNextMonthArrow !== bool) {\n toggleClass(self.nextMonthNav, \"flatpickr-disabled\", bool);\n self.__hideNextMonthArrow = bool;\n }\n },\n });\n self.currentYearElement = self.yearElements[0];\n updateNavigationCurrentMonth();\n return self.monthNav;\n }\n function buildTime() {\n self.calendarContainer.classList.add(\"hasTime\");\n if (self.config.noCalendar)\n self.calendarContainer.classList.add(\"noCalendar\");\n const defaults = getDefaultHours(self.config);\n self.timeContainer = createElement(\"div\", \"flatpickr-time\");\n self.timeContainer.tabIndex = -1;\n const separator = createElement(\"span\", \"flatpickr-time-separator\", \":\");\n const hourInput = createNumberInput(\"flatpickr-hour\", {\n \"aria-label\": self.l10n.hourAriaLabel,\n });\n self.hourElement = hourInput.getElementsByTagName(\"input\")[0];\n const minuteInput = createNumberInput(\"flatpickr-minute\", {\n \"aria-label\": self.l10n.minuteAriaLabel,\n });\n self.minuteElement = minuteInput.getElementsByTagName(\"input\")[0];\n self.hourElement.tabIndex = self.minuteElement.tabIndex = -1;\n self.hourElement.value = pad(self.latestSelectedDateObj\n ? self.latestSelectedDateObj.getHours()\n : self.config.time_24hr\n ? defaults.hours\n : military2ampm(defaults.hours));\n self.minuteElement.value = pad(self.latestSelectedDateObj\n ? self.latestSelectedDateObj.getMinutes()\n : defaults.minutes);\n self.hourElement.setAttribute(\"step\", self.config.hourIncrement.toString());\n self.minuteElement.setAttribute(\"step\", self.config.minuteIncrement.toString());\n self.hourElement.setAttribute(\"min\", self.config.time_24hr ? \"0\" : \"1\");\n self.hourElement.setAttribute(\"max\", self.config.time_24hr ? \"23\" : \"12\");\n self.hourElement.setAttribute(\"maxlength\", \"2\");\n self.minuteElement.setAttribute(\"min\", \"0\");\n self.minuteElement.setAttribute(\"max\", \"59\");\n self.minuteElement.setAttribute(\"maxlength\", \"2\");\n self.timeContainer.appendChild(hourInput);\n self.timeContainer.appendChild(separator);\n self.timeContainer.appendChild(minuteInput);\n if (self.config.time_24hr)\n self.timeContainer.classList.add(\"time24hr\");\n if (self.config.enableSeconds) {\n self.timeContainer.classList.add(\"hasSeconds\");\n const secondInput = createNumberInput(\"flatpickr-second\");\n self.secondElement = secondInput.getElementsByTagName(\"input\")[0];\n self.secondElement.value = pad(self.latestSelectedDateObj\n ? self.latestSelectedDateObj.getSeconds()\n : defaults.seconds);\n self.secondElement.setAttribute(\"step\", self.minuteElement.getAttribute(\"step\"));\n self.secondElement.setAttribute(\"min\", \"0\");\n self.secondElement.setAttribute(\"max\", \"59\");\n self.secondElement.setAttribute(\"maxlength\", \"2\");\n self.timeContainer.appendChild(createElement(\"span\", \"flatpickr-time-separator\", \":\"));\n self.timeContainer.appendChild(secondInput);\n }\n if (!self.config.time_24hr) {\n self.amPM = createElement(\"span\", \"flatpickr-am-pm\", self.l10n.amPM[int((self.latestSelectedDateObj\n ? self.hourElement.value\n : self.config.defaultHour) > 11)]);\n self.amPM.title = self.l10n.toggleTitle;\n self.amPM.tabIndex = -1;\n self.timeContainer.appendChild(self.amPM);\n }\n return self.timeContainer;\n }\n function buildWeekdays() {\n if (!self.weekdayContainer)\n self.weekdayContainer = createElement(\"div\", \"flatpickr-weekdays\");\n else\n clearNode(self.weekdayContainer);\n for (let i = self.config.showMonths; i--;) {\n const container = createElement(\"div\", \"flatpickr-weekdaycontainer\");\n self.weekdayContainer.appendChild(container);\n }\n updateWeekdays();\n return self.weekdayContainer;\n }\n function updateWeekdays() {\n if (!self.weekdayContainer) {\n return;\n }\n const firstDayOfWeek = self.l10n.firstDayOfWeek;\n let weekdays = [...self.l10n.weekdays.shorthand];\n if (firstDayOfWeek > 0 && firstDayOfWeek < weekdays.length) {\n weekdays = [\n ...weekdays.splice(firstDayOfWeek, weekdays.length),\n ...weekdays.splice(0, firstDayOfWeek),\n ];\n }\n for (let i = self.config.showMonths; i--;) {\n self.weekdayContainer.children[i].innerHTML = `\n <span class='flatpickr-weekday'>\n ${weekdays.join(\"</span><span class='flatpickr-weekday'>\")}\n </span>\n `;\n }\n }\n function buildWeeks() {\n self.calendarContainer.classList.add(\"hasWeeks\");\n const weekWrapper = createElement(\"div\", \"flatpickr-weekwrapper\");\n weekWrapper.appendChild(createElement(\"span\", \"flatpickr-weekday\", self.l10n.weekAbbreviation));\n const weekNumbers = createElement(\"div\", \"flatpickr-weeks\");\n weekWrapper.appendChild(weekNumbers);\n return {\n weekWrapper,\n weekNumbers,\n };\n }\n function changeMonth(value, isOffset = true) {\n const delta = isOffset ? value : value - self.currentMonth;\n if ((delta < 0 && self._hidePrevMonthArrow === true) ||\n (delta > 0 && self._hideNextMonthArrow === true))\n return;\n self.currentMonth += delta;\n if (self.currentMonth < 0 || self.currentMonth > 11) {\n self.currentYear += self.currentMonth > 11 ? 1 : -1;\n self.currentMonth = (self.currentMonth + 12) % 12;\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n buildDays();\n triggerEvent(\"onMonthChange\");\n updateNavigationCurrentMonth();\n }\n function clear(triggerChangeEvent = true, toInitial = true) {\n self.input.value = \"\";\n if (self.altInput !== undefined)\n self.altInput.value = \"\";\n if (self.mobileInput !== undefined)\n self.mobileInput.value = \"\";\n self.selectedDates = [];\n self.latestSelectedDateObj = undefined;\n if (toInitial === true) {\n self.currentYear = self._initialDate.getFullYear();\n self.currentMonth = self._initialDate.getMonth();\n }\n if (self.config.enableTime === true) {\n const { hours, minutes, seconds } = getDefaultHours(self.config);\n setHours(hours, minutes, seconds);\n }\n self.redraw();\n if (triggerChangeEvent)\n triggerEvent(\"onChange\");\n }\n function close() {\n self.isOpen = false;\n if (!self.isMobile) {\n if (self.calendarContainer !== undefined) {\n self.calendarContainer.classList.remove(\"open\");\n }\n if (self._input !== undefined) {\n self._input.classList.remove(\"active\");\n }\n }\n triggerEvent(\"onClose\");\n }\n function destroy() {\n if (self.config !== undefined)\n triggerEvent(\"onDestroy\");\n for (let i = self._handlers.length; i--;) {\n self._handlers[i].remove();\n }\n self._handlers = [];\n if (self.mobileInput) {\n if (self.mobileInput.parentNode)\n self.mobileInput.parentNode.removeChild(self.mobileInput);\n self.mobileInput = undefined;\n }\n else if (self.calendarContainer && self.calendarContainer.parentNode) {\n if (self.config.static && self.calendarContainer.parentNode) {\n const wrapper = self.calendarContainer.parentNode;\n wrapper.lastChild && wrapper.removeChild(wrapper.lastChild);\n if (wrapper.parentNode) {\n while (wrapper.firstChild)\n wrapper.parentNode.insertBefore(wrapper.firstChild, wrapper);\n wrapper.parentNode.removeChild(wrapper);\n }\n }\n else\n self.calendarContainer.parentNode.removeChild(self.calendarContainer);\n }\n if (self.altInput) {\n self.input.type = \"text\";\n if (self.altInput.parentNode)\n self.altInput.parentNode.removeChild(self.altInput);\n delete self.altInput;\n }\n if (self.input) {\n self.input.type = self.input._type;\n self.input.classList.remove(\"flatpickr-input\");\n self.input.removeAttribute(\"readonly\");\n }\n [\n \"_showTimeInput\",\n \"latestSelectedDateObj\",\n \"_hideNextMonthArrow\",\n \"_hidePrevMonthArrow\",\n \"__hideNextMonthArrow\",\n \"__hidePrevMonthArrow\",\n \"isMobile\",\n \"isOpen\",\n \"selectedDateElem\",\n \"minDateHasTime\",\n \"maxDateHasTime\",\n \"days\",\n \"daysContainer\",\n \"_input\",\n \"_positionElement\",\n \"innerContainer\",\n \"rContainer\",\n \"monthNav\",\n \"todayDateElem\",\n \"calendarContainer\",\n \"weekdayContainer\",\n \"prevMonthNav\",\n \"nextMonthNav\",\n \"monthsDropdownContainer\",\n \"currentMonthElement\",\n \"currentYearElement\",\n \"navigationCurrentMonth\",\n \"selectedDateElem\",\n \"config\",\n ].forEach((k) => {\n try {\n delete self[k];\n }\n catch (_) { }\n });\n }\n function isCalendarElem(elem) {\n if (self.config.appendTo && self.config.appendTo.contains(elem))\n return true;\n return self.calendarContainer.contains(elem);\n }\n function documentClick(e) {\n if (self.isOpen && !self.config.inline) {\n const eventTarget = getEventTarget(e);\n const isCalendarElement = isCalendarElem(eventTarget);\n const isInput = eventTarget === self.input ||\n eventTarget === self.altInput ||\n self.element.contains(eventTarget) ||\n (e.path &&\n e.path.indexOf &&\n (~e.path.indexOf(self.input) ||\n ~e.path.indexOf(self.altInput)));\n const lostFocus = e.type === \"blur\"\n ? isInput &&\n e.relatedTarget &&\n !isCalendarElem(e.relatedTarget)\n : !isInput &&\n !isCalendarElement &&\n !isCalendarElem(e.relatedTarget);\n const isIgnored = !self.config.ignoredFocusElements.some((elem) => elem.contains(eventTarget));\n if (lostFocus && isIgnored) {\n if (self.timeContainer !== undefined &&\n self.minuteElement !== undefined &&\n self.hourElement !== undefined &&\n self.input.value !== \"\" &&\n self.input.value !== undefined) {\n updateTime();\n }\n self.close();\n if (self.config &&\n self.config.mode === \"range\" &&\n self.selectedDates.length === 1) {\n self.clear(false);\n self.redraw();\n }\n }\n }\n }\n function changeYear(newYear) {\n if (!newYear ||\n (self.config.minDate && newYear < self.config.minDate.getFullYear()) ||\n (self.config.maxDate && newYear > self.config.maxDate.getFullYear()))\n return;\n const newYearNum = newYear, isNewYear = self.currentYear !== newYearNum;\n self.currentYear = newYearNum || self.currentYear;\n if (self.config.maxDate &&\n self.currentYear === self.config.maxDate.getFullYear()) {\n self.currentMonth = Math.min(self.config.maxDate.getMonth(), self.currentMonth);\n }\n else if (self.config.minDate &&\n self.currentYear === self.config.minDate.getFullYear()) {\n self.currentMonth = Math.max(self.config.minDate.getMonth(), self.currentMonth);\n }\n if (isNewYear) {\n self.redraw();\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n }\n function isEnabled(date, timeless = true) {\n var _a;\n const dateToCheck = self.parseDate(date, undefined, timeless);\n if ((self.config.minDate &&\n dateToCheck &&\n compareDates(dateToCheck, self.config.minDate, timeless !== undefined ? timeless : !self.minDateHasTime) < 0) ||\n (self.config.maxDate &&\n dateToCheck &&\n compareDates(dateToCheck, self.config.maxDate, timeless !== undefined ? timeless : !self.maxDateHasTime) > 0))\n return false;\n if (!self.config.enable && self.config.disable.length === 0)\n return true;\n if (dateToCheck === undefined)\n return false;\n const bool = !!self.config.enable, array = (_a = self.config.enable) !== null && _a !== void 0 ? _a : self.config.disable;\n for (let i = 0, d; i < array.length; i++) {\n d = array[i];\n if (typeof d === \"function\" &&\n d(dateToCheck))\n return bool;\n else if (d instanceof Date &&\n dateToCheck !== undefined &&\n d.getTime() === dateToCheck.getTime())\n return bool;\n else if (typeof d === \"string\") {\n const parsed = self.parseDate(d, undefined, true);\n return parsed && parsed.getTime() === dateToCheck.getTime()\n ? bool\n : !bool;\n }\n else if (typeof d === \"object\" &&\n dateToCheck !== undefined &&\n d.from &&\n d.to &&\n dateToCheck.getTime() >= d.from.getTime() &&\n dateToCheck.getTime() <= d.to.getTime())\n return bool;\n }\n return !bool;\n }\n function isInView(elem) {\n if (self.daysContainer !== undefined)\n return (elem.className.indexOf(\"hidden\") === -1 &&\n elem.className.indexOf(\"flatpickr-disabled\") === -1 &&\n self.daysContainer.contains(elem));\n return false;\n }\n function onBlur(e) {\n const isInput = e.target === self._input;\n if (isInput &&\n (self.selectedDates.length > 0 || self._input.value.length > 0) &&\n !(e.relatedTarget && isCalendarElem(e.relatedTarget))) {\n self.setDate(self._input.value, true, e.target === self.altInput\n ? self.config.altFormat\n : self.config.dateFormat);\n }\n }\n function onKeyDown(e) {\n const eventTarget = getEventTarget(e);\n const isInput = self.config.wrap\n ? element.contains(eventTarget)\n : eventTarget === self._input;\n const allowInput = self.config.allowInput;\n const allowKeydown = self.isOpen && (!allowInput || !isInput);\n const allowInlineKeydown = self.config.inline && isInput && !allowInput;\n if (e.keyCode === 13 && isInput) {\n if (allowInput) {\n self.setDate(self._input.value, true, eventTarget === self.altInput\n ? self.config.altFormat\n : self.config.dateFormat);\n return eventTarget.blur();\n }\n else {\n self.open();\n }\n }\n else if (isCalendarElem(eventTarget) ||\n allowKeydown ||\n allowInlineKeydown) {\n const isTimeObj = !!self.timeContainer &&\n self.timeContainer.contains(eventTarget);\n switch (e.keyCode) {\n case 13:\n if (isTimeObj) {\n e.preventDefault();\n updateTime();\n focusAndClose();\n }\n else\n selectDate(e);\n break;\n case 27:\n e.preventDefault();\n focusAndClose();\n break;\n case 8:\n case 46:\n if (isInput && !self.config.allowInput) {\n e.preventDefault();\n self.clear();\n }\n break;\n case 37:\n case 39:\n if (!isTimeObj && !isInput) {\n e.preventDefault();\n if (self.daysContainer !== undefined &&\n (allowInput === false ||\n (document.activeElement && isInView(document.activeElement)))) {\n const delta = e.keyCode === 39 ? 1 : -1;\n if (!e.ctrlKey)\n focusOnDay(undefined, delta);\n else {\n e.stopPropagation();\n changeMonth(delta);\n focusOnDay(getFirstAvailableDay(1), 0);\n }\n }\n }\n else if (self.hourElement)\n self.hourElement.focus();\n break;\n case 38:\n case 40:\n e.preventDefault();\n const delta = e.keyCode === 40 ? 1 : -1;\n if ((self.daysContainer &&\n eventTarget.$i !== undefined) ||\n eventTarget === self.input ||\n eventTarget === self.altInput) {\n if (e.ctrlKey) {\n e.stopPropagation();\n changeYear(self.currentYear - delta);\n focusOnDay(getFirstAvailableDay(1), 0);\n }\n else if (!isTimeObj)\n focusOnDay(undefined, delta * 7);\n }\n else if (eventTarget === self.currentYearElement) {\n changeYear(self.currentYear - delta);\n }\n else if (self.config.enableTime) {\n if (!isTimeObj && self.hourElement)\n self.hourElement.focus();\n updateTime(e);\n self._debouncedChange();\n }\n break;\n case 9:\n if (isTimeObj) {\n const elems = [\n self.hourElement,\n self.minuteElement,\n self.secondElement,\n self.amPM,\n ]\n .concat(self.pluginElements)\n .filter((x) => x);\n const i = elems.indexOf(eventTarget);\n if (i !== -1) {\n const target = elems[i + (e.shiftKey ? -1 : 1)];\n e.preventDefault();\n (target || self._input).focus();\n }\n }\n else if (!self.config.noCalendar &&\n self.daysContainer &&\n self.daysContainer.contains(eventTarget) &&\n e.shiftKey) {\n e.preventDefault();\n self._input.focus();\n }\n break;\n default:\n break;\n }\n }\n if (self.amPM !== undefined && eventTarget === self.amPM) {\n switch (e.key) {\n case self.l10n.amPM[0].charAt(0):\n case self.l10n.amPM[0].charAt(0).toLowerCase():\n self.amPM.textContent = self.l10n.amPM[0];\n setHoursFromInputs();\n updateValue();\n break;\n case self.l10n.amPM[1].charAt(0):\n case self.l10n.amPM[1].charAt(0).toLowerCase():\n self.amPM.textContent = self.l10n.amPM[1];\n setHoursFromInputs();\n updateValue();\n break;\n }\n }\n if (isInput || isCalendarElem(eventTarget)) {\n triggerEvent(\"onKeyDown\", e);\n }\n }\n function onMouseOver(elem) {\n if (self.selectedDates.length !== 1 ||\n (elem &&\n (!elem.classList.contains(\"flatpickr-day\") ||\n elem.classList.contains(\"flatpickr-disabled\"))))\n return;\n const hoverDate = elem\n ? elem.dateObj.getTime()\n : self.days.firstElementChild.dateObj.getTime(), initialDate = self.parseDate(self.selectedDates[0], undefined, true).getTime(), rangeStartDate = Math.min(hoverDate, self.selectedDates[0].getTime()), rangeEndDate = Math.max(hoverDate, self.selectedDates[0].getTime());\n let containsDisabled = false;\n let minRange = 0, maxRange = 0;\n for (let t = rangeStartDate; t < rangeEndDate; t += duration.DAY) {\n if (!isEnabled(new Date(t), true)) {\n containsDisabled =\n containsDisabled || (t > rangeStartDate && t < rangeEndDate);\n if (t < initialDate && (!minRange || t > minRange))\n minRange = t;\n else if (t > initialDate && (!maxRange || t < maxRange))\n maxRange = t;\n }\n }\n for (let m = 0; m < self.config.showMonths; m++) {\n const month = self.daysContainer.children[m];\n for (let i = 0, l = month.children.length; i < l; i++) {\n const dayElem = month.children[i], date = dayElem.dateObj;\n const timestamp = date.getTime();\n const outOfRange = (minRange > 0 && timestamp < minRange) ||\n (maxRange > 0 && timestamp > maxRange);\n if (outOfRange) {\n dayElem.classList.add(\"notAllowed\");\n [\"inRange\", \"startRange\", \"endRange\"].forEach((c) => {\n dayElem.classList.remove(c);\n });\n continue;\n }\n else if (containsDisabled && !outOfRange)\n continue;\n [\"startRange\", \"inRange\", \"endRange\", \"notAllowed\"].forEach((c) => {\n dayElem.classList.remove(c);\n });\n if (elem !== undefined) {\n elem.classList.add(hoverDate <= self.selectedDates[0].getTime()\n ? \"startRange\"\n : \"endRange\");\n if (initialDate < hoverDate && timestamp === initialDate)\n dayElem.classList.add(\"startRange\");\n else if (initialDate > hoverDate && timestamp === initialDate)\n dayElem.classList.add(\"endRange\");\n if (timestamp >= minRange &&\n (maxRange === 0 || timestamp <= maxRange) &&\n isBetween(timestamp, initialDate, hoverDate))\n dayElem.classList.add(\"inRange\");\n }\n }\n }\n }\n function onResize() {\n if (self.isOpen && !self.config.static && !self.config.inline)\n positionCalendar();\n }\n function open(e, positionElement = self._positionElement) {\n if (self.isMobile === true) {\n if (e) {\n e.preventDefault();\n const eventTarget = getEventTarget(e);\n if (eventTarget) {\n eventTarget.blur();\n }\n }\n if (self.mobileInput !== undefined) {\n self.mobileInput.focus();\n self.mobileInput.click();\n }\n triggerEvent(\"onOpen\");\n return;\n }\n else if (self._input.disabled || self.config.inline) {\n return;\n }\n const wasOpen = self.isOpen;\n self.isOpen = true;\n if (!wasOpen) {\n self.calendarContainer.classList.add(\"open\");\n self._input.classList.add(\"active\");\n triggerEvent(\"onOpen\");\n positionCalendar(positionElement);\n }\n if (self.config.enableTime === true && self.config.noCalendar === true) {\n if (self.config.allowInput === false &&\n (e === undefined ||\n !self.timeContainer.contains(e.relatedTarget))) {\n setTimeout(() => self.hourElement.select(), 50);\n }\n }\n }\n function minMaxDateSetter(type) {\n return (date) => {\n const dateObj = (self.config[`_${type}Date`] = self.parseDate(date, self.config.dateFormat));\n const inverseDateObj = self.config[`_${type === \"min\" ? \"max\" : \"min\"}Date`];\n if (dateObj !== undefined) {\n self[type === \"min\" ? \"minDateHasTime\" : \"maxDateHasTime\"] =\n dateObj.getHours() > 0 ||\n dateObj.getMinutes() > 0 ||\n dateObj.getSeconds() > 0;\n }\n if (self.selectedDates) {\n self.selectedDates = self.selectedDates.filter((d) => isEnabled(d));\n if (!self.selectedDates.length && type === \"min\")\n setHoursFromDate(dateObj);\n updateValue();\n }\n if (self.daysContainer) {\n redraw();\n if (dateObj !== undefined)\n self.currentYearElement[type] = dateObj.getFullYear().toString();\n else\n self.currentYearElement.removeAttribute(type);\n self.currentYearElement.disabled =\n !!inverseDateObj &&\n dateObj !== undefined &&\n inverseDateObj.getFullYear() === dateObj.getFullYear();\n }\n };\n }\n function parseConfig() {\n const boolOpts = [\n \"wrap\",\n \"weekNumbers\",\n \"allowInput\",\n \"allowInvalidPreload\",\n \"clickOpens\",\n \"time_24hr\",\n \"enableTime\",\n \"noCalendar\",\n \"altInput\",\n \"shorthandCurrentMonth\",\n \"inline\",\n \"static\",\n \"enableSeconds\",\n \"disableMobile\",\n ];\n const userConfig = Object.assign(Object.assign({}, JSON.parse(JSON.stringify(element.dataset || {}))), instanceConfig);\n const formats = {};\n self.config.parseDate = userConfig.parseDate;\n self.config.formatDate = userConfig.formatDate;\n Object.defineProperty(self.config, \"enable\", {\n get: () => self.config._enable,\n set: (dates) => {\n self.config._enable = parseDateRules(dates);\n },\n });\n Object.defineProperty(self.config, \"disable\", {\n get: () => self.config._disable,\n set: (dates) => {\n self.config._disable = parseDateRules(dates);\n },\n });\n const timeMode = userConfig.mode === \"time\";\n if (!userConfig.dateFormat && (userConfig.enableTime || timeMode)) {\n const defaultDateFormat = flatpickr.defaultConfig.dateFormat || defaultOptions.dateFormat;\n formats.dateFormat =\n userConfig.noCalendar || timeMode\n ? \"H:i\" + (userConfig.enableSeconds ? \":S\" : \"\")\n : defaultDateFormat + \" H:i\" + (userConfig.enableSeconds ? \":S\" : \"\");\n }\n if (userConfig.altInput &&\n (userConfig.enableTime || timeMode) &&\n !userConfig.altFormat) {\n const defaultAltFormat = flatpickr.defaultConfig.altFormat || defaultOptions.altFormat;\n formats.altFormat =\n userConfig.noCalendar || timeMode\n ? \"h:i\" + (userConfig.enableSeconds ? \":S K\" : \" K\")\n : defaultAltFormat + ` h:i${userConfig.enableSeconds ? \":S\" : \"\"} K`;\n }\n Object.defineProperty(self.config, \"minDate\", {\n get: () => self.config._minDate,\n set: minMaxDateSetter(\"min\"),\n });\n Object.defineProperty(self.config, \"maxDate\", {\n get: () => self.config._maxDate,\n set: minMaxDateSetter(\"max\"),\n });\n const minMaxTimeSetter = (type) => (val) => {\n self.config[type === \"min\" ? \"_minTime\" : \"_maxTime\"] = self.parseDate(val, \"H:i:S\");\n };\n Object.defineProperty(self.config, \"minTime\", {\n get: () => self.config._minTime,\n set: minMaxTimeSetter(\"min\"),\n });\n Object.defineProperty(self.config, \"maxTime\", {\n get: () => self.config._maxTime,\n set: minMaxTimeSetter(\"max\"),\n });\n if (userConfig.mode === \"time\") {\n self.config.noCalendar = true;\n self.config.enableTime = true;\n }\n Object.assign(self.config, formats, userConfig);\n for (let i = 0; i < boolOpts.length; i++)\n self.config[boolOpts[i]] =\n self.config[boolOpts[i]] === true ||\n self.config[boolOpts[i]] === \"true\";\n HOOKS.filter((hook) => self.config[hook] !== undefined).forEach((hook) => {\n self.config[hook] = arrayify(self.config[hook] || []).map(bindToInstance);\n });\n self.isMobile =\n !self.config.disableMobile &&\n !self.config.inline &&\n self.config.mode === \"single\" &&\n !self.config.disable.length &&\n !self.config.enable &&\n !self.config.weekNumbers &&\n /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\n for (let i = 0; i < self.config.plugins.length; i++) {\n const pluginConf = self.config.plugins[i](self) || {};\n for (const key in pluginConf) {\n if (HOOKS.indexOf(key) > -1) {\n self.config[key] = arrayify(pluginConf[key])\n .map(bindToInstance)\n .concat(self.config[key]);\n }\n else if (typeof userConfig[key] === \"undefined\")\n self.config[key] = pluginConf[key];\n }\n }\n if (!userConfig.altInputClass) {\n self.config.altInputClass =\n getInputElem().className + \" \" + self.config.altInputClass;\n }\n triggerEvent(\"onParseConfig\");\n }\n function getInputElem() {\n return self.config.wrap\n ? element.querySelector(\"[data-input]\")\n : element;\n }\n function setupLocale() {\n if (typeof self.config.locale !== \"object\" &&\n typeof flatpickr.l10ns[self.config.locale] === \"undefined\")\n self.config.errorHandler(new Error(`flatpickr: invalid locale ${self.config.locale}`));\n self.l10n = Object.assign(Object.assign({}, flatpickr.l10ns.default), (typeof self.config.locale === \"object\"\n ? self.config.locale\n : self.config.locale !== \"default\"\n ? flatpickr.l10ns[self.config.locale]\n : undefined));\n tokenRegex.K = `(${self.l10n.amPM[0]}|${self.l10n.amPM[1]}|${self.l10n.amPM[0].toLowerCase()}|${self.l10n.amPM[1].toLowerCase()})`;\n const userConfig = Object.assign(Object.assign({}, instanceConfig), JSON.parse(JSON.stringify(element.dataset || {})));\n if (userConfig.time_24hr === undefined &&\n flatpickr.defaultConfig.time_24hr === undefined) {\n self.config.time_24hr = self.l10n.time_24hr;\n }\n self.formatDate = createDateFormatter(self);\n self.parseDate = createDateParser({ config: self.config, l10n: self.l10n });\n }\n function positionCalendar(customPositionElement) {\n if (typeof self.config.position === \"function\") {\n return void self.config.position(self, customPositionElement);\n }\n if (self.calendarContainer === undefined)\n return;\n triggerEvent(\"onPreCalendarPosition\");\n const positionElement = customPositionElement || self._positionElement;\n const calendarHeight = Array.prototype.reduce.call(self.calendarContainer.children, ((acc, child) => acc + child.offsetHeight), 0), calendarWidth = self.calendarContainer.offsetWidth, configPos = self.config.position.split(\" \"), configPosVertical = configPos[0], configPosHorizontal = configPos.length > 1 ? configPos[1] : null, inputBounds = positionElement.getBoundingClientRect(), distanceFromBottom = window.innerHeight - inputBounds.bottom, showOnTop = configPosVertical === \"above\" ||\n (configPosVertical !== \"below\" &&\n distanceFromBottom < calendarHeight &&\n inputBounds.top > calendarHeight);\n const top = window.pageYOffset +\n inputBounds.top +\n (!showOnTop ? positionElement.offsetHeight + 2 : -calendarHeight - 2);\n toggleClass(self.calendarContainer, \"arrowTop\", !showOnTop);\n toggleClass(self.calendarContainer, \"arrowBottom\", showOnTop);\n if (self.config.inline)\n return;\n let left = window.pageXOffset + inputBounds.left;\n let isCenter = false;\n let isRight = false;\n if (configPosHorizontal === \"center\") {\n left -= (calendarWidth - inputBounds.width) / 2;\n isCenter = true;\n }\n else if (configPosHorizontal === \"right\") {\n left -= calendarWidth - inputBounds.width;\n isRight = true;\n }\n toggleClass(self.calendarContainer, \"arrowLeft\", !isCenter && !isRight);\n toggleClass(self.calendarContainer, \"arrowCenter\", isCenter);\n toggleClass(self.calendarContainer, \"arrowRight\", isRight);\n const right = window.document.body.offsetWidth -\n (window.pageXOffset + inputBounds.right);\n const rightMost = left + calendarWidth > window.document.body.offsetWidth;\n const centerMost = right + calendarWidth > window.document.body.offsetWidth;\n toggleClass(self.calendarContainer, \"rightMost\", rightMost);\n if (self.config.static)\n return;\n self.calendarContainer.style.top = `${top}px`;\n if (!rightMost) {\n self.calendarContainer.style.left = `${left}px`;\n self.calendarContainer.style.right = \"auto\";\n }\n else if (!centerMost) {\n self.calendarContainer.style.left = \"auto\";\n self.calendarContainer.style.right = `${right}px`;\n }\n else {\n const doc = getDocumentStyleSheet();\n if (doc === undefined)\n return;\n const bodyWidth = window.document.body.offsetWidth;\n const centerLeft = Math.max(0, bodyWidth / 2 - calendarWidth / 2);\n const centerBefore = \".flatpickr-calendar.centerMost:before\";\n const centerAfter = \".flatpickr-calendar.centerMost:after\";\n const centerIndex = doc.cssRules.length;\n const centerStyle = `{left:${inputBounds.left}px;right:auto;}`;\n toggleClass(self.calendarContainer, \"rightMost\", false);\n toggleClass(self.calendarContainer, \"centerMost\", true);\n doc.insertRule(`${centerBefore},${centerAfter}${centerStyle}`, centerIndex);\n self.calendarContainer.style.left = `${centerLeft}px`;\n self.calendarContainer.style.right = \"auto\";\n }\n }\n function getDocumentStyleSheet() {\n let editableSheet = null;\n for (let i = 0; i < document.styleSheets.length; i++) {\n const sheet = document.styleSheets[i];\n try {\n sheet.cssRules;\n }\n catch (err) {\n continue;\n }\n editableSheet = sheet;\n break;\n }\n return editableSheet != null ? editableSheet : createStyleSheet();\n }\n function createStyleSheet() {\n const style = document.createElement(\"style\");\n document.head.appendChild(style);\n return style.sheet;\n }\n function redraw() {\n if (self.config.noCalendar || self.isMobile)\n return;\n buildMonthSwitch();\n updateNavigationCurrentMonth();\n buildDays();\n }\n function focusAndClose() {\n self._input.focus();\n if (window.navigator.userAgent.indexOf(\"MSIE\") !== -1 ||\n navigator.msMaxTouchPoints !== undefined) {\n setTimeout(self.close, 0);\n }\n else {\n self.close();\n }\n }\n function selectDate(e) {\n e.preventDefault();\n e.stopPropagation();\n const isSelectable = (day) => day.classList &&\n day.classList.contains(\"flatpickr-day\") &&\n !day.classList.contains(\"flatpickr-disabled\") &&\n !day.classList.contains(\"notAllowed\");\n const t = findParent(getEventTarget(e), isSelectable);\n if (t === undefined)\n return;\n const target = t;\n const selectedDate = (self.latestSelectedDateObj = new Date(target.dateObj.getTime()));\n const shouldChangeMonth = (selectedDate.getMonth() < self.currentMonth ||\n selectedDate.getMonth() >\n self.currentMonth + self.config.showMonths - 1) &&\n self.config.mode !== \"range\";\n self.selectedDateElem = target;\n if (self.config.mode === \"single\")\n self.selectedDates = [selectedDate];\n else if (self.config.mode === \"multiple\") {\n const selectedIndex = isDateSelected(selectedDate);\n if (selectedIndex)\n self.selectedDates.splice(parseInt(selectedIndex), 1);\n else\n self.selectedDates.push(selectedDate);\n }\n else if (self.config.mode === \"range\") {\n if (self.selectedDates.length === 2) {\n self.clear(false, false);\n }\n self.latestSelectedDateObj = selectedDate;\n self.selectedDates.push(selectedDate);\n if (compareDates(selectedDate, self.selectedDates[0], true) !== 0)\n self.selectedDates.sort((a, b) => a.getTime() - b.getTime());\n }\n setHoursFromInputs();\n if (shouldChangeMonth) {\n const isNewYear = self.currentYear !== selectedDate.getFullYear();\n self.currentYear = selectedDate.getFullYear();\n self.currentMonth = selectedDate.getMonth();\n if (isNewYear) {\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n triggerEvent(\"onMonthChange\");\n }\n updateNavigationCurrentMonth();\n buildDays();\n updateValue();\n if (!shouldChangeMonth &&\n self.config.mode !== \"range\" &&\n self.config.showMonths === 1)\n focusOnDayElem(target);\n else if (self.selectedDateElem !== undefined &&\n self.hourElement === undefined) {\n self.selectedDateElem && self.selectedDateElem.focus();\n }\n if (self.hourElement !== undefined)\n self.hourElement !== undefined && self.hourElement.focus();\n if (self.config.closeOnSelect) {\n const single = self.config.mode === \"single\" && !self.config.enableTime;\n const range = self.config.mode === \"range\" &&\n self.selectedDates.length === 2 &&\n !self.config.enableTime;\n if (single || range) {\n focusAndClose();\n }\n }\n triggerChange();\n }\n const CALLBACKS = {\n locale: [setupLocale, updateWeekdays],\n showMonths: [buildMonths, setCalendarWidth, buildWeekdays],\n minDate: [jumpToDate],\n maxDate: [jumpToDate],\n clickOpens: [\n () => {\n if (self.config.clickOpens === true) {\n bind(self._input, \"focus\", self.open);\n bind(self._input, \"click\", self.open);\n }\n else {\n self._input.removeEventListener(\"focus\", self.open);\n self._input.removeEventListener(\"click\", self.open);\n }\n },\n ],\n };\n function set(option, value) {\n if (option !== null && typeof option === \"object\") {\n Object.assign(self.config, option);\n for (const key in option) {\n if (CALLBACKS[key] !== undefined)\n CALLBACKS[key].forEach((x) => x());\n }\n }\n else {\n self.config[option] = value;\n if (CALLBACKS[option] !== undefined)\n CALLBACKS[option].forEach((x) => x());\n else if (HOOKS.indexOf(option) > -1)\n self.config[option] = arrayify(value);\n }\n self.redraw();\n updateValue(true);\n }\n function setSelectedDate(inputDate, format) {\n let dates = [];\n if (inputDate instanceof Array)\n dates = inputDate.map((d) => self.parseDate(d, format));\n else if (inputDate instanceof Date || typeof inputDate === \"number\")\n dates = [self.parseDate(inputDate, format)];\n else if (typeof inputDate === \"string\") {\n switch (self.config.mode) {\n case \"single\":\n case \"time\":\n dates = [self.parseDate(inputDate, format)];\n break;\n case \"multiple\":\n dates = inputDate\n .split(self.config.conjunction)\n .map((date) => self.parseDate(date, format));\n break;\n case \"range\":\n dates = inputDate\n .split(self.l10n.rangeSeparator)\n .map((date) => self.parseDate(date, format));\n break;\n default:\n break;\n }\n }\n else\n self.config.errorHandler(new Error(`Invalid date supplied: ${JSON.stringify(inputDate)}`));\n self.selectedDates = (self.config.allowInvalidPreload\n ? dates\n : dates.filter((d) => d instanceof Date && isEnabled(d, false)));\n if (self.config.mode === \"range\")\n self.selectedDates.sort((a, b) => a.getTime() - b.getTime());\n }\n function setDate(date, triggerChange = false, format = self.config.dateFormat) {\n if ((date !== 0 && !date) || (date instanceof Array && date.length === 0))\n return self.clear(triggerChange);\n setSelectedDate(date, format);\n self.latestSelectedDateObj =\n self.selectedDates[self.selectedDates.length - 1];\n self.redraw();\n jumpToDate(undefined, triggerChange);\n setHoursFromDate();\n if (self.selectedDates.length === 0) {\n self.clear(false);\n }\n updateValue(triggerChange);\n if (triggerChange)\n triggerEvent(\"onChange\");\n }\n function parseDateRules(arr) {\n return arr\n .slice()\n .map((rule) => {\n if (typeof rule === \"string\" ||\n typeof rule === \"number\" ||\n rule instanceof Date) {\n return self.parseDate(rule, undefined, true);\n }\n else if (rule &&\n typeof rule === \"object\" &&\n rule.from &&\n rule.to)\n return {\n from: self.parseDate(rule.from, undefined),\n to: self.parseDate(rule.to, undefined),\n };\n return rule;\n })\n .filter((x) => x);\n }\n function setupDates() {\n self.selectedDates = [];\n self.now = self.parseDate(self.config.now) || new Date();\n const preloadedDate = self.config.defaultDate ||\n ((self.input.nodeName === \"INPUT\" ||\n self.input.nodeName === \"TEXTAREA\") &&\n self.input.placeholder &&\n self.input.value === self.input.placeholder\n ? null\n : self.input.value);\n if (preloadedDate)\n setSelectedDate(preloadedDate, self.config.dateFormat);\n self._initialDate =\n self.selectedDates.length > 0\n ? self.selectedDates[0]\n : self.config.minDate &&\n self.config.minDate.getTime() > self.now.getTime()\n ? self.config.minDate\n : self.config.maxDate &&\n self.config.maxDate.getTime() < self.now.getTime()\n ? self.config.maxDate\n : self.now;\n self.currentYear = self._initialDate.getFullYear();\n self.currentMonth = self._initialDate.getMonth();\n if (self.selectedDates.length > 0)\n self.latestSelectedDateObj = self.selectedDates[0];\n if (self.config.minTime !== undefined)\n self.config.minTime = self.parseDate(self.config.minTime, \"H:i\");\n if (self.config.maxTime !== undefined)\n self.config.maxTime = self.parseDate(self.config.maxTime, \"H:i\");\n self.minDateHasTime =\n !!self.config.minDate &&\n (self.config.minDate.getHours() > 0 ||\n self.config.minDate.getMinutes() > 0 ||\n self.config.minDate.getSeconds() > 0);\n self.maxDateHasTime =\n !!self.config.maxDate &&\n (self.config.maxDate.getHours() > 0 ||\n self.config.maxDate.getMinutes() > 0 ||\n self.config.maxDate.getSeconds() > 0);\n }\n function setupInputs() {\n self.input = getInputElem();\n if (!self.input) {\n self.config.errorHandler(new Error(\"Invalid input element specified\"));\n return;\n }\n self.input._type = self.input.type;\n self.input.type = \"text\";\n self.input.classList.add(\"flatpickr-input\");\n self._input = self.input;\n if (self.config.altInput) {\n self.altInput = createElement(self.input.nodeName, self.config.altInputClass);\n self._input = self.altInput;\n self.altInput.placeholder = self.input.placeholder;\n self.altInput.disabled = self.input.disabled;\n self.altInput.required = self.input.required;\n self.altInput.tabIndex = self.input.tabIndex;\n self.altInput.type = \"text\";\n self.input.setAttribute(\"type\", \"hidden\");\n if (!self.config.static && self.input.parentNode)\n self.input.parentNode.insertBefore(self.altInput, self.input.nextSibling);\n }\n if (!self.config.allowInput)\n self._input.setAttribute(\"readonly\", \"readonly\");\n self._positionElement = self.config.positionElement || self._input;\n }\n function setupMobile() {\n const inputType = self.config.enableTime\n ? self.config.noCalendar\n ? \"time\"\n : \"datetime-local\"\n : \"date\";\n self.mobileInput = createElement(\"input\", self.input.className + \" flatpickr-mobile\");\n self.mobileInput.tabIndex = 1;\n self.mobileInput.type = inputType;\n self.mobileInput.disabled = self.input.disabled;\n self.mobileInput.required = self.input.required;\n self.mobileInput.placeholder = self.input.placeholder;\n self.mobileFormatStr =\n inputType === \"datetime-local\"\n ? \"Y-m-d\\\\TH:i:S\"\n : inputType === \"date\"\n ? \"Y-m-d\"\n : \"H:i:S\";\n if (self.selectedDates.length > 0) {\n self.mobileInput.defaultValue = self.mobileInput.value = self.formatDate(self.selectedDates[0], self.mobileFormatStr);\n }\n if (self.config.minDate)\n self.mobileInput.min = self.formatDate(self.config.minDate, \"Y-m-d\");\n if (self.config.maxDate)\n self.mobileInput.max = self.formatDate(self.config.maxDate, \"Y-m-d\");\n if (self.input.getAttribute(\"step\"))\n self.mobileInput.step = String(self.input.getAttribute(\"step\"));\n self.input.type = \"hidden\";\n if (self.altInput !== undefined)\n self.altInput.type = \"hidden\";\n try {\n if (self.input.parentNode)\n self.input.parentNode.insertBefore(self.mobileInput, self.input.nextSibling);\n }\n catch (_a) { }\n bind(self.mobileInput, \"change\", (e) => {\n self.setDate(getEventTarget(e).value, false, self.mobileFormatStr);\n triggerEvent(\"onChange\");\n triggerEvent(\"onClose\");\n });\n }\n function toggle(e) {\n if (self.isOpen === true)\n return self.close();\n self.open(e);\n }\n function triggerEvent(event, data) {\n if (self.config === undefined)\n return;\n const hooks = self.config[event];\n if (hooks !== undefined && hooks.length > 0) {\n for (let i = 0; hooks[i] && i < hooks.length; i++)\n hooks[i](self.selectedDates, self.input.value, self, data);\n }\n if (event === \"onChange\") {\n self.input.dispatchEvent(createEvent(\"change\"));\n self.input.dispatchEvent(createEvent(\"input\"));\n }\n }\n function createEvent(name) {\n const e = document.createEvent(\"Event\");\n e.initEvent(name, true, true);\n return e;\n }\n function isDateSelected(date) {\n for (let i = 0; i < self.selectedDates.length; i++) {\n if (compareDates(self.selectedDates[i], date) === 0)\n return \"\" + i;\n }\n return false;\n }\n function isDateInRange(date) {\n if (self.config.mode !== \"range\" || self.selectedDates.length < 2)\n return false;\n return (compareDates(date, self.selectedDates[0]) >= 0 &&\n compareDates(date, self.selectedDates[1]) <= 0);\n }\n function updateNavigationCurrentMonth() {\n if (self.config.noCalendar || self.isMobile || !self.monthNav)\n return;\n self.yearElements.forEach((yearElement, i) => {\n const d = new Date(self.currentYear, self.currentMonth, 1);\n d.setMonth(self.currentMonth + i);\n if (self.config.showMonths > 1 ||\n self.config.monthSelectorType === \"static\") {\n self.monthElements[i].textContent =\n monthToStr(d.getMonth(), self.config.shorthandCurrentMonth, self.l10n) + \" \";\n }\n else {\n self.monthsDropdownContainer.value = d.getMonth().toString();\n }\n yearElement.value = d.getFullYear().toString();\n });\n self._hidePrevMonthArrow =\n self.config.minDate !== undefined &&\n (self.currentYear === self.config.minDate.getFullYear()\n ? self.currentMonth <= self.config.minDate.getMonth()\n : self.currentYear < self.config.minDate.getFullYear());\n self._hideNextMonthArrow =\n self.config.maxDate !== undefined &&\n (self.currentYear === self.config.maxDate.getFullYear()\n ? self.currentMonth + 1 > self.config.maxDate.getMonth()\n : self.currentYear > self.config.maxDate.getFullYear());\n }\n function getDateStr(format) {\n return self.selectedDates\n .map((dObj) => self.formatDate(dObj, format))\n .filter((d, i, arr) => self.config.mode !== \"range\" ||\n self.config.enableTime ||\n arr.indexOf(d) === i)\n .join(self.config.mode !== \"range\"\n ? self.config.conjunction\n : self.l10n.rangeSeparator);\n }\n function updateValue(triggerChange = true) {\n if (self.mobileInput !== undefined && self.mobileFormatStr) {\n self.mobileInput.value =\n self.latestSelectedDateObj !== undefined\n ? self.formatDate(self.latestSelectedDateObj, self.mobileFormatStr)\n : \"\";\n }\n self.input.value = getDateStr(self.config.dateFormat);\n if (self.altInput !== undefined) {\n self.altInput.value = getDateStr(self.config.altFormat);\n }\n if (triggerChange !== false)\n triggerEvent(\"onValueUpdate\");\n }\n function onMonthNavClick(e) {\n const eventTarget = getEventTarget(e);\n const isPrevMonth = self.prevMonthNav.contains(eventTarget);\n const isNextMonth = self.nextMonthNav.contains(eventTarget);\n if (isPrevMonth || isNextMonth) {\n changeMonth(isPrevMonth ? -1 : 1);\n }\n else if (self.yearElements.indexOf(eventTarget) >= 0) {\n eventTarget.select();\n }\n else if (eventTarget.classList.contains(\"arrowUp\")) {\n self.changeYear(self.currentYear + 1);\n }\n else if (eventTarget.classList.contains(\"arrowDown\")) {\n self.changeYear(self.currentYear - 1);\n }\n }\n function timeWrapper(e) {\n e.preventDefault();\n const isKeyDown = e.type === \"keydown\", eventTarget = getEventTarget(e), input = eventTarget;\n if (self.amPM !== undefined && eventTarget === self.amPM) {\n self.amPM.textContent =\n self.l10n.amPM[int(self.amPM.textContent === self.l10n.amPM[0])];\n }\n const min = parseFloat(input.getAttribute(\"min\")), max = parseFloat(input.getAttribute(\"max\")), step = parseFloat(input.getAttribute(\"step\")), curValue = parseInt(input.value, 10), delta = e.delta ||\n (isKeyDown ? (e.which === 38 ? 1 : -1) : 0);\n let newValue = curValue + step * delta;\n if (typeof input.value !== \"undefined\" && input.value.length === 2) {\n const isHourElem = input === self.hourElement, isMinuteElem = input === self.minuteElement;\n if (newValue < min) {\n newValue =\n max +\n newValue +\n int(!isHourElem) +\n (int(isHourElem) && int(!self.amPM));\n if (isMinuteElem)\n incrementNumInput(undefined, -1, self.hourElement);\n }\n else if (newValue > max) {\n newValue =\n input === self.hourElement ? newValue - max - int(!self.amPM) : min;\n if (isMinuteElem)\n incrementNumInput(undefined, 1, self.hourElement);\n }\n if (self.amPM &&\n isHourElem &&\n (step === 1\n ? newValue + curValue === 23\n : Math.abs(newValue - curValue) > step)) {\n self.amPM.textContent =\n self.l10n.amPM[int(self.amPM.textContent === self.l10n.amPM[0])];\n }\n input.value = pad(newValue);\n }\n }\n init();\n return self;\n}\nfunction _flatpickr(nodeList, config) {\n const nodes = Array.prototype.slice\n .call(nodeList)\n .filter((x) => x instanceof HTMLElement);\n const instances = [];\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n try {\n if (node.getAttribute(\"data-fp-omit\") !== null)\n continue;\n if (node._flatpickr !== undefined) {\n node._flatpickr.destroy();\n node._flatpickr = undefined;\n }\n node._flatpickr = FlatpickrInstance(node, config || {});\n instances.push(node._flatpickr);\n }\n catch (e) {\n console.error(e);\n }\n }\n return instances.length === 1 ? instances[0] : instances;\n}\nif (typeof HTMLElement !== \"undefined\" &&\n typeof HTMLCollection !== \"undefined\" &&\n typeof NodeList !== \"undefined\") {\n HTMLCollection.prototype.flatpickr = NodeList.prototype.flatpickr = function (config) {\n return _flatpickr(this, config);\n };\n HTMLElement.prototype.flatpickr = function (config) {\n return _flatpickr([this], config);\n };\n}\nvar flatpickr = function (selector, config) {\n if (typeof selector === \"string\") {\n return _flatpickr(window.document.querySelectorAll(selector), config);\n }\n else if (selector instanceof Node) {\n return _flatpickr([selector], config);\n }\n else {\n return _flatpickr(selector, config);\n }\n};\nflatpickr.defaultConfig = {};\nflatpickr.l10ns = {\n en: Object.assign({}, English),\n default: Object.assign({}, English),\n};\nflatpickr.localize = (l10n) => {\n flatpickr.l10ns.default = Object.assign(Object.assign({}, flatpickr.l10ns.default), l10n);\n};\nflatpickr.setDefaults = (config) => {\n flatpickr.defaultConfig = Object.assign(Object.assign({}, flatpickr.defaultConfig), config);\n};\nflatpickr.parseDate = createDateParser({});\nflatpickr.formatDate = createDateFormatter({});\nflatpickr.compareDates = compareDates;\nif (typeof jQuery !== \"undefined\" && typeof jQuery.fn !== \"undefined\") {\n jQuery.fn.flatpickr = function (config) {\n return _flatpickr(this, config);\n };\n}\nDate.prototype.fp_incr = function (days) {\n return new Date(this.getFullYear(), this.getMonth(), this.getDate() + (typeof days === \"string\" ? parseInt(days, 10) : days));\n};\nif (typeof window !== \"undefined\") {\n window.flatpickr = flatpickr;\n}\nexport default flatpickr;\n","import React, { useEffect, useRef } from \"react\";\nimport PropTypes from \"prop-types\";\nimport Input from \"../Input\";\nimport { english } from \"flatpickr/dist/l10n/default\";\nimport flatpickr from \"flatpickr\";\n\nconst noop = () => {};\n\n/**\n * Single day picker.\n * Composes NDS input with a [flatpickr](http://flatpickrjs.org) calendar UI.\n */\nconst DateInput = ({\n disableDates,\n minDate,\n dateFormat,\n altInput,\n altFormat,\n defaultDate,\n onChange: onChangeProp = noop,\n ...props\n}) => {\n const input = useRef();\n\n // Shorten \"Sun\" to \"Su\", \"Mon\" to \"Mo\", etc.\n english.weekdays.shorthand = english.weekdays.shorthand.map((abbrev) =>\n abbrev.substr(0, 2)\n );\n const flatpickrOptions = {\n monthSelectorType: \"static\",\n locale: english,\n allowInput: true,\n dateFormat,\n minDate,\n altInput,\n altFormat,\n disable: disableDates,\n defaultDate,\n onChange: (flatpickrVal) => {\n const selectedDate = new Date(flatpickrVal);\n // 🇨🇦 Our neighbors to the north have adopted ISO 8601.\n // localizing to en-CA produces the expected result of YYYY-MM-DD\n const formattedDate = new Intl.DateTimeFormat(\"en-CA\").format(\n selectedDate\n );\n onChangeProp(formattedDate);\n },\n };\n\n useEffect(() => {\n flatpickr(input.current, flatpickrOptions);\n }, [flatpickrOptions, input]);\n\n return (\n <Input {...props}>\n <input\n key={\"nds-text\"}\n ref={input}\n type=\"date\"\n required\n placeholder={props.label}\n {...props}\n />\n </Input>\n );\n};\nDateInput.propTypes = {\n /** Placeholder of the input */\n label: PropTypes.string.isRequired,\n /** Fired with 'YYYY-MM-DD' selected date string when selected date changes */\n onChange: PropTypes.func,\n /** Disables dates. See [flatpickr docs](https://flatpickr.js.org/examples/#disabling-dates) for usage instructions */\n disableDates: PropTypes.array,\n /** Sets the minimum selectable date (inclusive) */\n minDate: PropTypes.bool,\n /** Alternate date format to show in input when a date is selected (e.g. 'm/d/Y')*/\n altFormat: PropTypes.string,\n /**\n * When true, the input value will follow an alternate format defined by the `altFormat` prop\n */\n altInput: PropTypes.bool,\n /**\n * Sets a default selected date.\n * DateInput uses the format 'YYYY-MM-DD' by default.\n */\n defaultDate: PropTypes.string,\n /** Changes date format used in input. See [flatpickr docs](https://flatpickr.js.org/formatting/) for formatting options */\n dateFormat: PropTypes.string,\n};\nDateInput.defaultProps = {\n onChange: () => {},\n disableDates: [],\n dateFormat: \"Y-m-d\",\n};\n\nexport default DateInput;\n","import { useRef, useCallback, useEffect } from 'react';\n\n/*!\n * Adapted from jQuery UI core\n *\n * http://jqueryui.com\n *\n * Copyright 2014 jQuery Foundation and other contributors\n * Released under the MIT license.\n * http://jquery.org/license\n *\n * http://api.jqueryui.com/category/ui-core/\n */\nvar tabbableNode = /input|select|textarea|button|object/;\nvar focusSelector = 'a, input, select, textarea, button, object, [tabindex]';\n\nfunction hidden(el) {\n if (process.env.NODE_ENV === 'test') return false;\n return el.offsetWidth <= 0 && el.offsetHeight <= 0 || el.style.display === 'none';\n}\n\nfunction visible(element) {\n var parentElement = element;\n\n while (parentElement) {\n if (parentElement === document.body) break;\n if (hidden(parentElement)) return false;\n parentElement = parentElement.parentNode;\n }\n\n return true;\n}\n\nfunction getElementTabIndex(element) {\n var tabIndex = element.getAttribute('tabindex');\n if (tabIndex === null) tabIndex = undefined;\n return parseInt(tabIndex, 10);\n}\n\nfunction focusable(element) {\n var nodeName = element.nodeName.toLowerCase();\n var isTabIndexNotNaN = !isNaN(getElementTabIndex(element));\n var res = // @ts-ignore\n tabbableNode.test(nodeName) && !element.disabled || (element instanceof HTMLAnchorElement ? element.href || isTabIndexNotNaN : isTabIndexNotNaN);\n return res && visible(element);\n}\nfunction tabbable(element) {\n var tabIndex = getElementTabIndex(element);\n var isTabIndexNaN = isNaN(tabIndex);\n return (isTabIndexNaN || tabIndex >= 0) && focusable(element);\n}\n/**\n * Tabbable elements are elements the user can tab between. This excludes elements with tabIndex=-1\n * */\n\nfunction findTabbableDescendants(element) {\n return Array.from(element.querySelectorAll(focusSelector)).filter(tabbable);\n}\n\nvar focusLaterElements = [];\nvar focusElement = null;\nvar needToFocus = false;\n\nfunction handleBlur() {\n needToFocus = true;\n}\n\nfunction handleFocus() {\n if (needToFocus) {\n needToFocus = false;\n\n if (!focusElement) {\n return;\n }\n\n if (!focusElement) return;\n\n if (focusElement.contains(document.activeElement)) {\n return;\n }\n\n var el = findTabbableDescendants(focusElement)[0] || focusElement;\n el.focus();\n }\n}\n\nfunction markForFocusLater() {\n focusLaterElements.push(document.activeElement);\n}\nfunction returnFocus() {\n var toFocus = null;\n\n try {\n toFocus = focusLaterElements.pop();\n if (toFocus) toFocus.focus();\n } catch (e) {\n // eslint-disable-next-line no-console\n console.warn(['You tried to return focus to', toFocus, 'but it is not in the DOM anymore'].join(' '));\n }\n}\nfunction setupScopedFocus(element) {\n focusElement = element;\n document.addEventListener('focusout', handleBlur, false);\n document.addEventListener('focusin', handleFocus, true);\n}\nfunction teardownScopedFocus() {\n focusElement = null;\n document.removeEventListener('focusout', handleBlur);\n document.removeEventListener('focusin', handleFocus);\n}\n\n/**\n * Controls tabbing, so it stays inside the node element\n * @param node\n * @param event\n */\n\nfunction scopeTab(node, event) {\n var tabbable = findTabbableDescendants(node);\n\n if (!tabbable.length) {\n event.preventDefault();\n return;\n }\n\n var finalTabbable = tabbable[event.shiftKey ? 0 : tabbable.length - 1];\n var leavingFinalTabbable = finalTabbable === document.activeElement || // handle immediate shift+tab after opening with mouse\n node === document.activeElement;\n if (!leavingFinalTabbable) return;\n event.preventDefault();\n var target = tabbable[event.shiftKey ? tabbable.length - 1 : 0];\n if (target) target.focus();\n}\n\n/**\n * Sets `aria-hidden` on all elements on the body, except for the active node.\n **/\nfunction createAriaHider(containerNode, selector) {\n if (selector === void 0) {\n selector = 'body > :not(script)';\n }\n\n var rootNodes = Array.from(document.querySelectorAll(selector)).map(function (node) {\n if (node.contains(containerNode)) {\n return undefined;\n }\n\n var ariaHidden = node.getAttribute('aria-hidden');\n\n if (ariaHidden === null || ariaHidden === 'false') {\n node.setAttribute('aria-hidden', 'true');\n }\n\n return {\n node: node,\n ariaHidden: ariaHidden\n };\n });\n return function () {\n rootNodes.forEach(function (item) {\n if (!item) return;\n\n if (item.ariaHidden === null) {\n item.node.removeAttribute('aria-hidden');\n } else {\n item.node.setAttribute('aria-hidden', item.ariaHidden);\n }\n });\n };\n}\n\n/**\n * Traps focus to DOM node. Use this with a modal to ensure the user focus doesn't leave.\n * */\nfunction useFocusTrap(active, options) {\n if (active === void 0) {\n active = true;\n }\n\n if (options === void 0) {\n options = {};\n }\n\n var ref = useRef();\n var restoreAria = useRef(null);\n var setRef = useCallback(function (node) {\n if (restoreAria.current) {\n restoreAria.current();\n }\n\n if (ref.current) {\n returnFocus();\n teardownScopedFocus();\n }\n\n if (active && node) {\n setupScopedFocus(node);\n markForFocusLater();\n\n var processNode = function processNode(node) {\n // See if we should disable aria\n restoreAria.current = !options.disableAriaHider ? createAriaHider(node) : null; // Find the initial focus element\n\n var focusElement = null;\n\n if (options.focusSelector) {\n focusElement = typeof options.focusSelector === 'string' ? node.querySelector(options.focusSelector) : options.focusSelector;\n }\n\n if (!focusElement) {\n var children = Array.from(node.querySelectorAll(focusSelector));\n focusElement = // Prefer tabbable elements, But fallback to any focusable element\n children.find(tabbable) || // But fallback to any focusable element\n children.find(focusable) || // Nothing found\n null; // If everything else fails, see if the node itself can handle focus\n\n if (!focusElement && focusable(node)) focusElement = node;\n }\n\n if (focusElement) {\n // Set the initial focus inside the traps\n focusElement.focus();\n } else {\n if (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn('[useFocusTrap]: Failed to find a focusable element after activating the focus trap. Make sure to include at an element that can recieve focus. As a fallback, you can also set \"tabIndex={-1}\" on the focus trap node.', node);\n }\n }\n }; // Delay processing the HTML node by a frame. This ensures focus is assigned correctly.\n\n\n setTimeout(function () {\n if (node.ownerDocument) {\n processNode(node);\n } else if (process.env.NODE_ENV === 'development') {\n // eslint-disable-next-line no-console\n console.warn('[useFocusTrap]: The focus trap is not part of the DOM yet, so it is unable to correctly set focus. Make sure to render the ref node.', node);\n }\n });\n ref.current = node;\n } else {\n ref.current = null;\n }\n }, [active, options.focusSelector, options.disableAriaHider]);\n useEffect(function () {\n if (!active) return undefined;\n\n var handleKeyDown = function handleKeyDown(event) {\n if (event.key === 'Tab' && ref.current) {\n scopeTab(ref.current, event);\n }\n };\n\n document.addEventListener('keydown', handleKeyDown);\n return function () {\n document.removeEventListener('keydown', handleKeyDown);\n };\n }, [active]);\n return setRef;\n}\n\nexport default useFocusTrap;\n","import React, { useRef, useEffect, useState } from \"react\";\nimport ReactDOM from \"react-dom\";\nimport PropTypes from \"prop-types\";\nimport rafSchd from \"raf-schd\";\nimport useFocusTrap from \"@charlietango/use-focus-trap\";\nimport cc from \"classcat\";\nimport useLockBodyScroll from \"./useLockBodyScroll\";\n\nconst noop = () => {};\n\n/**\n * Checks if content in content area is overflowing\n * @param {Object} contentRef ref of the element to check\n * @returns {Boolean}\n */\nconst getIsContentTooLong = (contentRef) => {\n let result = false;\n if (contentRef.current) {\n result = contentRef.current.scrollHeight > contentRef.current.clientHeight;\n }\n return result;\n};\n\n/**\n * Renders a centered modal dialog with an overlay\n *\n * This component uses a `ReactDOM` portal to render it as a direct\n * child of `document.body`.\n */\nconst Dialog = ({\n isOpen = false,\n onUserDismiss = noop,\n title,\n headerStyle = \"bordered\",\n children,\n footer,\n width = \"500px\",\n}) => {\n const [isContentOverflowing, setIsContentOverflowing] = useState(false);\n const contentRef = useRef(null);\n const shimRef = useRef(null);\n const focusTrapRef = useFocusTrap(isOpen);\n useLockBodyScroll(isOpen);\n\n // `rafSchd` uses `requestAnimationFrame` to schedule the state update\n // for the next frame the browser draws - good for performance\n const checkContentOverflow = () => {\n rafSchd(setIsContentOverflowing(getIsContentTooLong(contentRef)));\n };\n\n const handleKeyDown = ({ key }) => {\n if (key === \"Escape\") {\n onUserDismiss();\n }\n };\n\n useEffect(() => {\n if (isOpen) checkContentOverflow(); // run when the dialog initially opens\n window.addEventListener(\"keydown\", handleKeyDown);\n window.addEventListener(\"resize\", checkContentOverflow);\n return () => {\n window.removeEventListener(\"keydown\", handleKeyDown);\n window.removeEventListener(\"resize\", checkContentOverflow);\n };\n }, [handleKeyDown, checkContentOverflow, isOpen]);\n\n const handleShimClick = ({ target }) => {\n if (shimRef.current && target === shimRef.current) {\n onUserDismiss();\n }\n };\n\n // the shim has events for mouse users only; does not require a role\n /* eslint-disable jsx-a11y/no-static-element-interactions,jsx-a11y/click-events-have-key-events */\n const dialogJSX = (\n <div className=\"nds-shim--dark\" ref={shimRef} onClick={handleShimClick}>\n <div\n role=\"dialog\"\n aria-labelledby=\"aria-dialog-label\"\n aria-modal=\"true\"\n className=\"nds-dialog\"\n style={{ width }}\n ref={focusTrapRef}\n >\n <div className={`nds-dialog-header nds-dialog-header--${headerStyle}`}>\n <h4 id=\"aria-dialog-label\">{title}</h4>\n <button\n className=\"resetButton nds-dialog-closeButton\"\n aria-label=\"close\"\n onClick={onUserDismiss}\n >\n <span className=\"narmi-icon-x\"></span>\n </button>\n </div>\n <div\n ref={contentRef}\n className=\"nds-dialog-content nds-typography padding--top--xs\"\n >\n {children}\n </div>\n {footer && (\n <div\n className={cc([\n \"nds-dialog-footer\",\n { \"nds-dialog-footer--overflowing\": isContentOverflowing },\n ])}\n >\n {footer}\n </div>\n )}\n </div>\n </div>\n );\n /* eslint-enable jsx-a11y/no-static-element-interactions,jsx-a11y/click-events-have-key-events */\n\n return <>{isOpen && ReactDOM.createPortal(dialogJSX, document.body)}</>;\n};\n\nDialog.propTypes = {\n /** Scrollable contents of the Dialog */\n children: PropTypes.node.isRequired,\n /** Heading in the top of the Dialog */\n title: PropTypes.string.isRequired,\n /** Contents of Dialog footer, typically reserved for action buttons */\n footer: PropTypes.node,\n /** Visual style for Dialog header */\n headerStyle: PropTypes.oneOf([\"bordered\", \"plain\"]),\n /** Controls open/close state of the modal. Use the `onUserDismiss` callback to update. */\n isOpen: PropTypes.bool,\n /**\n * Callback to handle user taking an action to dismiss the modal\n * (click outside, Escape key, click close button)\n */\n onUserDismiss: PropTypes.func,\n /**\n * Sets a custom modal width.\n * Use the full CSS value with the unit (e.g. \"400px\")\n */\n width: PropTypes.string,\n};\n\nexport default Dialog;\n","import { useLayoutEffect } from \"react\";\n\n/**\n * Hook for locking body scrolling while a component is mounted\n * @param {Boolean} isActive - applies scroll locking when `true`\n */\nconst useLockBodyScroll = (isActive) => {\n useLayoutEffect(() => {\n if (isActive) {\n document.body.classList.add(\"overflow--hidden\");\n }\n return () => {\n document.body.classList.remove(\"overflow--hidden\");\n };\n }, [isActive]);\n};\n\nexport default useLockBodyScroll;\n","var rafSchd = function rafSchd(fn) {\n var lastArgs = [];\n var frameId = null;\n\n var wrapperFn = function wrapperFn() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n lastArgs = args;\n\n if (frameId) {\n return;\n }\n\n frameId = requestAnimationFrame(function () {\n frameId = null;\n fn.apply(void 0, lastArgs);\n });\n };\n\n wrapperFn.cancel = function () {\n if (!frameId) {\n return;\n }\n\n cancelAnimationFrame(frameId);\n frameId = null;\n };\n\n return wrapperFn;\n};\n\nexport default rafSchd;\n","import React, { useRef, useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport Input from \"../Input\";\nimport iconSelection from \"src/icons/selection.json\";\n\nexport const VALID_ICON_NAMES = iconSelection.icons.map(\n (icon) => icon.properties.name\n);\n\n/**\n * Narmi flavored text input with floating label\n */\nconst TextInput = (props) => {\n const {\n icon, // DEPRECATED\n startIcon,\n formatter,\n multiline,\n defaultValue,\n onChange,\n onBlur,\n ...nativeElementProps\n } = props;\n\n // support deprecated `icon` prop as the startIcon until we remove it\n const leftIcon = icon !== undefined ? icon : startIcon;\n\n const [inputValue, setInputValue] = useState(\n defaultValue ? defaultValue : \"\"\n );\n const ref = useRef();\n\n function _onBlur(e) {\n if (onBlur) {\n onBlur(e);\n }\n setInputValue(formatter(ref.current.value));\n }\n function _onChange(e) {\n if (onChange) {\n onChange(e);\n }\n setInputValue(ref.current.value);\n }\n\n return (\n <Input\n onClick={() => {\n ref.current?.focus();\n }}\n {...props}\n startIconClass={leftIcon ? `narmi-icon-${leftIcon}` : undefined}\n >\n {multiline ? (\n <div\n className=\"nds-input-multiline-grid\"\n data-textarea-value={inputValue}\n >\n <textarea\n key={\"nds-text\"}\n wrap=\"soft\"\n ref={ref}\n value={inputValue}\n onChange={_onChange}\n onBlur={_onBlur}\n required\n {...nativeElementProps}\n />\n </div>\n ) : (\n <input\n key={\"nds-text\"}\n value={inputValue}\n onChange={_onChange}\n onBlur={_onBlur}\n ref={ref}\n type=\"text\"\n required\n placeholder={props.label}\n {...nativeElementProps}\n />\n )}\n </Input>\n );\n};\nTextInput.propTypes = {\n /** Label used as input placeholder _and_ floating label */\n label: PropTypes.string.isRequired,\n /** Callback invoked with event object on input change */\n onChange: PropTypes.func,\n /** Callback invoked with event object on input blur */\n onBlur: PropTypes.func,\n /** Sets the [uncontrolled](https://reactjs.org/docs/uncontrolled-components.html) value of the input */\n defaultValue: PropTypes.string,\n /** When true, the input is displayed as an auto-growing textarea */\n multiline: PropTypes.bool,\n /** function that formats the input value on blur */\n formatter: PropTypes.func,\n /** Name of Narmi icon to place at the start of the input box */\n startIcon: PropTypes.oneOf(VALID_ICON_NAMES),\n /** DEPREACTED - use `startIcon` instead */\n icon: PropTypes.oneOf(VALID_ICON_NAMES),\n};\n\nTextInput.defaultProps = {\n multiline: false,\n formatter: (x) => x,\n};\n\nexport default TextInput;\n","/* eslint-disable */ // this file will be removed in a future release\nimport React, { useState, useEffect } from \"react\";\nimport TextInput from \"../TextInput\";\nimport PropTypes from \"prop-types\";\n\nconst Chevron = ({ open, setOpen }) => {\n if (open) {\n return (\n <span\n className={\"nds-dropdown-chevron narmi-icon-chevron-up\"}\n onClick={setOpen.bind(null, false)}\n />\n );\n }\n return (\n <span\n onClick={setOpen.bind(null, true)}\n className={\"nds-dropdown-chevron narmi-icon-chevron-down\"}\n />\n );\n};\nChevron.propTypes = {\n open: PropTypes.bool,\n setOpen: PropTypes.func,\n};\n\nconst DropdownMenu = ({ open, onClose, children, ...rest }) => {\n /*\n * Expand and display the dropdown options, if open=true\n */\n return open ? (\n <div className=\"nds-dropdown-menu\">\n <div className=\"nds-dropdown-overlay\" onClick={onClose}></div>\n <div\n className=\"nds-dropdown-menu-items\"\n aria-modal\n aria-hidden\n tabIndex={-1}\n role=\"dialog\"\n {...rest}\n >\n {children}\n </div>\n </div>\n ) : null;\n};\n\n/**\n * **⚠️ DEPRECATED ⚠️**\n *\n * This component will be removed in a future release.\n * Please use `Select` instead\n */\nconst Dropdown = ({ error, ...props }) => {\n const [open, setOpen] = useState(props.defaultOpen);\n const [value, setValue] = useState(props.defaultValue || \"\");\n\n useEffect(() => {\n if (value === undefined && props.defaultValue) {\n setValue(props.defaultValue);\n }\n }, []);\n useEffect(() => {\n if (props.closeDropDown === true) {\n closeDropdown();\n }\n }, [props.closeDropDown]);\n\n const closeDropdown = () => {\n setOpen(false);\n };\n\n const childrenList = Array.isArray(props.children)\n ? props.children.flat()\n : props.children.flat();\n\n return (\n <div\n onKeyDown={(event) => {\n if ([\"Tab\", \"Escape\"].includes(event.key)) closeDropdown();\n }}\n className=\"nds-dropdown\"\n field=\"test\"\n >\n <TextInput\n onClick={() => {\n setOpen(true);\n }}\n value={value}\n field={props.field}\n label={props.triggerLabel}\n readOnly\n error={error}\n />\n <DropdownMenu open={open} onClose={closeDropdown}>\n <div className=\"nds-dropdown-children nds-typography\">\n {childrenList.map((child, i) =>\n React.cloneElement(child, {\n className: \"nds-dropdown-item\",\n onClick: child.props.onClick\n ? child.props.onClick\n : () => {\n setValue(child.props.children);\n props.onChange(child.props.children);\n closeDropdown();\n },\n key: i,\n })\n )}\n </div>\n </DropdownMenu>\n <Chevron open={open} setOpen={setOpen} />\n </div>\n );\n};\n\nDropdown.defaultProps = {\n defaultOpen: false,\n onChange: () => {},\n};\nDropdown.propTypes = {\n /** Initial label shown in input */\n triggerLabel: PropTypes.string.isRequired,\n /** Array of elements to render as items in the dropdown */\n children: PropTypes.array,\n /** Sets `field` prop of internal `TextInput` */\n field: PropTypes.string,\n /** When true, the dropdown initially renders as open */\n defaultOpen: PropTypes.bool,\n /** Callback invoked when user selects a new value from the options list */\n onChange: PropTypes.func,\n /** Callback invoked when the dropdown closes*/\n onClose: PropTypes.func,\n /** When true, the dropdown is forced to close */\n closeDropDown: PropTypes.bool,\n /** Optional error message that displays an error state when passed */\n error: PropTypes.string,\n};\n\nexport default Dropdown;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport cc from \"classcat\";\n\n/**\n * Generic trigger button for dropdowns. `DropdownTrigger` can be composed with\n * other components like `Popover` to create a wide range of dropdown, popover, and menu components.\n *\n * The entire clickable area is a `button` element to ensure dropdown triggers are accessible.\n *\n * **Additional props will be spread on the `button` element.**\n */\nconst DropdownTrigger = React.forwardRef(\n (\n {\n isOpen = false,\n showOpenIndicator = true,\n labelText,\n labelProps,\n displayValue,\n errorText,\n minWidth = \"auto\",\n ...otherProps\n },\n ref\n ) => (\n <>\n <div className=\"nds-dropdownTrigger\" style={{ minWidth }}>\n <button\n ref={ref}\n data-testid=\"dropdownTriggerButton\"\n className={cc([\n \"nds-dropdownTrigger-button button--reset padding--x--s\",\n \"bgColor--white rounded--all\",\n {\n \"nds-dropdownTrigger-button--hasValue\": Boolean(displayValue),\n \"nds-dropdownTrigger-button--hasError\": Boolean(errorText),\n },\n ])}\n aria-expanded={isOpen ? \"true\" : \"false\"}\n {...otherProps}\n >\n {labelText && (\n <label className=\"nds-dropdownTrigger-label\" {...labelProps}>\n {labelText}\n </label>\n )}\n {displayValue && <span>{displayValue}</span>}\n {showOpenIndicator && (\n <span\n role=\"img\"\n aria-label={isOpen ? \"popup open\" : \"popup closed\"}\n className={cc([\n \"nds-dropdownTrigger-chevron fontSize--l fontColor--secondary\",\n `narmi-icon-chevron-${isOpen ? \"up\" : \"down\"}`,\n ])}\n />\n )}\n </button>\n </div>\n {errorText && (\n <div className=\"nds-dropdownTrigger-error fontColor--error\">\n <span role=\"img\" className=\"narmi-icon-x-circle fontSize--s\" />\n <span className=\"padding--left--xxs fontColor--error fontSize--xs\">\n {errorText}\n </span>\n </div>\n )}\n </>\n )\n);\nDropdownTrigger.displayName = \"DropdownTrigger\";\n\nDropdownTrigger.propTypes = {\n /** Set this to `true` when the associated popup is open */\n isOpen: PropTypes.bool,\n /** Set to `false` to hide the chevron icon indicating open state */\n showOpenIndicator: PropTypes.bool,\n /** Text of `label` element */\n labelText: PropTypes.string,\n /** Props to spread onto the `label` element */\n labelProps: PropTypes.object,\n /**\n * Renders a string or node as the value displayed in the `DropdownTrigger`\n * Usually, this represents the name of a selected option\n */\n displayValue: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n /** Error message. When this prop is passed, an error state is dsiplayed */\n errorText: PropTypes.string,\n /**\n * Sets a mimimum width.\n * Use the full CSS value with the unit (e.g. \"400px\")\n */\n minWidth: PropTypes.string,\n};\n\nexport default DropdownTrigger;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\n/**\n * Used to wrap a block of loadable content. When `isLoading` is set to true,\n * the content area will have an overlay and loading animation.\n */\nconst LoadingShim = ({ isLoading = false, children }) => (\n <div\n data-testid=\"nds-loadingshim\"\n aria-live=\"polite\"\n aria-busy={isLoading.toString()}\n style={{ position: \"relative\" }}\n >\n {isLoading && (\n <div className=\"nds-loadingShim\">\n <div\n title=\"Loading...\"\n role=\"img\"\n className=\"nds-loadingShim-indicator\"\n >\n <div>&nbsp;</div>\n <div>&nbsp;</div>\n <div>&nbsp;</div>\n </div>\n </div>\n )}\n {children}\n </div>\n);\n\nLoadingShim.propTypes = {\n /** Loadable content area - will render normally unless `isLoading` is true */\n children: PropTypes.node.isRequired,\n /** When `true`, the loading shim appears over child content */\n isLoading: PropTypes.bool,\n};\n\nexport default LoadingShim;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\n/**\n * Used to mask a limited block of loadable content. When `isLoading` is set to true,\n * the content area will be be replaced by a shadowed, skeletal imitation of the\n * pending content.\n */\n\nconst LoadingSkeleton = ({\n children,\n isLoading = false,\n content = \"paragraph\",\n lines = 3,\n showTitle = false,\n size = \"medium\",\n}) => {\n return isLoading ? (\n <div className=\"nds-loading-skeleton\">\n {content === \"paragraph\" && (\n <>\n {showTitle && <div className=\"nds-line-block header\" />}\n {[...Array(lines)].map((_, i) => (\n <div className=\"nds-line-block\" key={i} />\n ))}\n </>\n )}\n {content === \"headerText\" && <div className={`nds-line-block ${size}`} />}\n </div>\n ) : (\n <>{children}</>\n );\n};\nLoadingSkeleton.propTypes = {\n /** Loadable content area - will render normally unless `isLoading` is true. */\n children: PropTypes.node,\n /** When `true`, the child content is replaced by the skeleton imitation. */\n isLoading: PropTypes.bool,\n /** The mask type that best represents the content. */\n content: PropTypes.oneOf([\"paragraph\", \"headerText\"]),\n /**\n * Only applies if `content` prop is set to `paragraph`.\n * The number of lines to be shown by the skeleton.\n */\n lines: PropTypes.number,\n /**\n * Only applies if `content` prop is set to `paragraph`.\n * When `true`, a skeletal title row will be shown above the first line.\n */\n showTitle: PropTypes.bool,\n /**\n * Only applies if `content` prop is set to `headerText`.\n * The size of the skeletal header text.\n */\n size: PropTypes.oneOf([\"small\", \"medium\", \"large\"]),\n};\n\nexport default LoadingSkeleton;\n","/* eslint-disable */ // file will be removed in a future release\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\n\n/**\n * **⚠️ DEPRECATED ⚠️**\n *\n * This component will be removed in a future release.\n * Please use `Dialog` instead to display a centered modal window.\n */\nconst Modal = ({\n open = false,\n setOpen,\n handleClose,\n children,\n classes = \"center\",\n maxWidth,\n header,\n actions,\n}) => {\n const setNotOpen = setOpen ? () => setOpen(false) : handleClose;\n React.useEffect(() => {\n if (open) document.body.style.overflow = \"hidden\";\n else {\n document.body.style.overflow = \"\";\n }\n }, [open]);\n return (\n <div\n className={`nds-modal ${classes}`}\n data-open={open.toString()}\n style={{ borderRadius: \"8px\" }}\n >\n <div className=\"nds-modal-overlay\" onClick={setNotOpen}></div>\n <div\n className=\"nds-modal-container\"\n style={{ maxWidth: `${maxWidth}px` }}\n >\n <div className=\"nds-modal-dismiss\" onClick={setNotOpen}>\n <span\n className={\"narmi-icon-x\"}\n style={{ fontSize: \"20px\", color: \"rgb(var(--nds-black))\" }}\n />\n </div>\n {header ? (\n <>\n <h4 className=\"nds-sans\">{header}</h4> <hr className=\"nds-hr\" />{\" \"}\n </>\n ) : (\n \"\"\n )}\n {children}\n {actions && <div className=\"nds-modal-action-row\">{actions}</div>}\n </div>\n </div>\n );\n};\n\nModal.propTypes = {\n /** JSX content to render within the Modal body */\n children: PropTypes.node.isRequired,\n /** JSX content to render as the Modal header */\n header: PropTypes.node,\n /** When true, the Modal will be open */\n open: PropTypes.bool,\n /**\n * Callback called when user takes and opening or dismissal action on the modal.\n * Function is invoked with a boolean representing the new `open` value to set.\n */\n setOpen: PropTypes.func,\n /**\n * ⚠️ DEPRECATED\n * This prop will be removed in a future release.\n * Callback invoked on user dismissal actions.\n */\n handleClose: PropTypes.func,\n /** JSX content to render within the actions area of the Modal */\n actions: PropTypes.node,\n /** Additional classes to pass to the root Modal element */\n classes: PropTypes.oneOf([\"center\", \"right\", \"details\", \"wide details\"]),\n /** Sets a max-width for the Modal container */\n maxWidth: PropTypes.oneOf([PropTypes.number, PropTypes.string]),\n};\n\nexport default Modal;\n","import React, { useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport cc from \"classcat\";\nimport Row from \"../Row\";\n\nconst noop = () => {};\nconst MAX_VISIBLE_PAGES = 5;\n\n/**\n * Business logic for pagination; given a total number of pages\n * and the selected page, returns attributes used to render pagination\n *\n * @param {Number} totalPages\n * @param {Number} selectedPage\n * @returns {Object} attributes used to render pagination\n */\nexport const _getAttributes = (\n totalPages,\n selectedPage = 1,\n segmentSize = MAX_VISIBLE_PAGES\n) => {\n // create a list of page segments\n // each segment is an array of page numbers.\n const pageSegments = [...new Array(totalPages)]\n .map((p, i) => i + 1) // [1,2,3,4,5,6,7, ...]\n .reduce((segments, page, i) => {\n const segmentIndex = Math.floor(i / segmentSize);\n if (!segments[segmentIndex]) {\n segments[segmentIndex] = [];\n }\n segments[segmentIndex].push(page);\n return segments;\n }, []); // [[1,2,3,4,5], [6,7,8,9,10], ...]\n\n // show the segment that has the selected page\n const visiblePages = pageSegments.filter((segment) =>\n segment.includes(selectedPage)\n )[0];\n const selectedIndex = visiblePages.indexOf(selectedPage);\n\n // show prev/next arrows unless we are in the first or last segment\n const showPrev = !visiblePages.includes(1);\n const showNext = !visiblePages.includes(totalPages);\n\n // only populate first/last pages when they are outside the visible segment\n const firstPage = !visiblePages.includes(1) && 1;\n const lastPage = !visiblePages.includes(totalPages) && totalPages;\n\n return {\n visiblePages,\n selectedIndex,\n firstPage,\n lastPage,\n showPrev,\n showNext,\n };\n};\n\n/**\n * Component that allows users to navigate between pages of information.\n * Your application is responsible for setting the total number of pages and\n * responding to the `onPageChange` callback.\n *\n * The component will handle which page numbers to render, next and previous arrows,\n * and conditionally rendering first and last pages.\n *\n * If your pagination setup expectes a fully controlled component, you may set `defaultSelectedPage` on every `onPageChange` call.\n */\nconst Pagination = ({\n onPageChange = noop,\n totalPages = 1,\n defaultSelectedPage = 1,\n}) => {\n // no jokers allowed 🤡\n // - default to first page if default selected page is out of bounds\n // - enforce minimum of 1 pages\n if (defaultSelectedPage > totalPages || defaultSelectedPage < 1) {\n defaultSelectedPage = 1;\n }\n if (totalPages < 1) {\n totalPages = 1;\n }\n\n const [selectedPage, setSelectedPage] = useState(defaultSelectedPage);\n const {\n visiblePages,\n selectedIndex,\n showPrev,\n showNext,\n firstPage,\n lastPage,\n } = _getAttributes(totalPages, selectedPage);\n\n const handlePageClick = ({ target }) => {\n const page = parseInt(target.dataset.page, 10);\n setSelectedPage(page);\n onPageChange(page);\n };\n\n const handlePrevClick = () => {\n const newSelectedPage = selectedPage - 1;\n setSelectedPage(newSelectedPage);\n onPageChange(newSelectedPage);\n };\n\n const handleNextClick = () => {\n const newSelectedPage = selectedPage + 1;\n setSelectedPage(newSelectedPage);\n onPageChange(newSelectedPage);\n };\n\n const pagination = (\n <div className=\"nds-typography nds-pagination\">\n <nav aria-label=\"pagination\">\n <Row gapSize=\"xxs\" alignItems=\"center\" as=\"ul\">\n <Row.Item as=\"li\" shrink>\n <span\n role=\"button\"\n tabIndex={0}\n aria-disabled={!showPrev}\n aria-label=\"Previous page\"\n onClick={handlePrevClick}\n onKeyUp={({ key }) => {\n if (key === \"Enter\") {\n handlePrevClick();\n }\n }}\n className={cc([\n \"nds-pagination-page\",\n \"padding--none\",\n {\n \"nds-pagination-page--disabled\": !showPrev,\n },\n ])}\n >\n <i role=\"img\" className=\"narmi-icon-chevron-left fontSize--l\"></i>\n </span>\n </Row.Item>\n\n {firstPage && (\n <Row.Item as=\"li\" shrink>\n <span\n role=\"button\"\n tabIndex={0}\n aria-label=\"First page\"\n onClick={handlePageClick}\n onKeyUp={(e) => {\n if (e.key === \"Enter\") {\n handlePageClick(e);\n }\n }}\n data-page={firstPage}\n className=\"nds-pagination-page\"\n >\n {firstPage.toString()}\n </span>\n </Row.Item>\n )}\n {firstPage && (\n <Row.Item as=\"li\" shrink>\n <div className=\"nds-pagination-ellipsis\">&hellip;</div>\n </Row.Item>\n )}\n\n {visiblePages.map((page, i) => (\n <Row.Item as=\"li\" key={page} shrink>\n <span\n role=\"button\"\n tabIndex={0}\n className={cc([\n \"nds-pagination-page\",\n {\n \"nds-pagination-page--selected\": i === selectedIndex,\n },\n ])}\n data-page={page}\n onClick={handlePageClick}\n onKeyUp={(e) => {\n if (e.key === \"Enter\") {\n handlePageClick(e);\n }\n }}\n aria-label={`Page ${page}`}\n aria-current={i === selectedIndex && \"page\"}\n >\n {page.toString()}\n </span>\n </Row.Item>\n ))}\n\n {lastPage && (\n <Row.Item as=\"li\" shrink>\n <div className=\"nds-pagination-ellipsis\">&hellip;</div>\n </Row.Item>\n )}\n {lastPage && (\n <Row.Item as=\"li\" shrink>\n <span\n role=\"button\"\n tabIndex={0}\n aria-label=\"Last page\"\n onClick={handlePageClick}\n onKeyUp={(e) => {\n if (e.key === \"Enter\") {\n handlePageClick(e);\n }\n }}\n data-page={lastPage}\n className=\"nds-pagination-page\"\n >\n {lastPage.toString()}\n </span>\n </Row.Item>\n )}\n\n <Row.Item as=\"li\" shrink>\n <span\n role=\"button\"\n tabIndex={0}\n aria-disabled={!showNext}\n aria-label=\"Next page\"\n onClick={handleNextClick}\n onKeyUp={({ key }) => {\n if (key === \"Enter\") {\n handleNextClick();\n }\n }}\n className={cc([\n \"nds-pagination-page\",\n \"padding--none\",\n {\n \"nds-pagination-page--disabled\": !showNext,\n },\n ])}\n >\n <i\n role=\"img\"\n className=\"narmi-icon-chevron-right fontSize--l\"\n ></i>\n </span>\n </Row.Item>\n </Row>\n </nav>\n </div>\n );\n\n return totalPages > 1 ? pagination : <></>;\n};\n\nPagination.propTypes = {\n /**\n * Total number of pages\n * If the number of pages is 1, pagination will not render\n */\n totalPages: PropTypes.number.isRequired,\n /**\n * Default selected page by page number.\n */\n defaultSelectedPage: PropTypes.number,\n /**\n * Callback invoked when user selects a new page via page numbers or\n * previous/next arrows.\n *\n * Invoked with selected page number as the argument.\n */\n onPageChange: PropTypes.func,\n};\n\nexport default Pagination;\n","/* eslint-disable */ // deprecated; will remove this file in a future release\nimport React from \"react\";\n\n/**\n * ⚠️ DEPRECATED ⚠️\n * This component will be removed in a future release.\n * Use `<Button type=\"plain\">` instead.\n */\nconst PlainButton = (props) => {\n return (\n <a {...props} className=\"nds-plain-button\">\n {props.children ? props.children : \"\"}\n </a>\n );\n};\n\nexport default PlainButton;\n","import { useRef, useState, useMemo, useLayoutEffect, useEffect, useCallback, createElement, useContext, createContext, forwardRef } from 'react';\nimport { createPortal } from 'react-dom';\nimport warning from 'tiny-warning';\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _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 _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\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/**\r\n * Utility hook to track the reference of a html-element.\r\n * It notifies the listener when a change occured, so it can act\r\n * on the change\r\n */\n\nfunction useTrackRef(onRefChange) {\n var storedReference = useRef(null); // this is de function that actually gets passed to the `ref` prop\n // on the html element. I.e.:\n // <div ref={setter} />\n\n function setter(element) {\n if (!element || element === storedReference.current) {\n return;\n }\n\n storedReference.current = element;\n onRefChange(element);\n }\n\n return setter;\n}\n/**\r\n * Utility hook that stores mutable state.\r\n * Since a getter function is used, it will always return the most\r\n * up-to-date state. This is useful when you want to get certain state within\r\n * an effect, without triggering the same effect when the same state changes.\r\n * Note: may be seen as an anti-pattern.\r\n */\n\nfunction useMutableStore(initialState) {\n var state = useRef(initialState);\n return useMemo(function () {\n function set(setter) {\n if (typeof setter === \"function\") {\n state.current = setter(state.current);\n } else {\n state.current = setter;\n }\n }\n\n function get() {\n return state.current;\n }\n\n return [get, set];\n }, []);\n}\n/**\r\n * Utility hook that keeps track of active event listeners and how\r\n * to remove these listeners\r\n */\n\nfunction useEventSubscriptions() {\n var subscriptions = useRef([]);\n return useMemo(function () {\n function hasEventSubscriptions() {\n return subscriptions.current.length > 0;\n }\n\n function removeAllEventSubscriptions() {\n for (var _iterator = _createForOfIteratorHelperLoose(subscriptions.current), _step; !(_step = _iterator()).done;) {\n var unsubscribe = _step.value;\n unsubscribe();\n }\n\n subscriptions.current = [];\n }\n\n function addEventSubscription(unsubscriber) {\n subscriptions.current.push(unsubscriber);\n }\n\n return {\n hasEventSubscriptions: hasEventSubscriptions,\n removeAllEventSubscriptions: removeAllEventSubscriptions,\n addEventSubscription: addEventSubscription\n };\n }, []);\n}\n/**\r\n * SSR-safe effect hook\r\n */\n\nvar useIsomorphicLayoutEffect = typeof window !== \"undefined\" ? useLayoutEffect : useEffect;\n/**\r\n * Utility hook that tracks an state object.\r\n * If `enabled=false` it will discard changes and reset the lastState to `null`\r\n */\n\nfunction useLastState(currentState, enabled) {\n var lastState = useRef(currentState);\n\n if (!enabled) {\n lastState.current = null;\n return lastState;\n }\n\n lastState.current = currentState;\n return lastState;\n}\nvar EMPTY_BOUNDS = {\n top: 0,\n left: 0,\n right: 1,\n bottom: 1,\n width: 1,\n height: 1\n};\n/**\r\n * @description Utility hook that lets you use the mouse-position as source of the trigger.\r\n * This is useful in scenario's like context-menu's.\r\n *\r\n * @example\r\n * ```tsx\r\n * const {\r\n * hasMousePosition,\r\n * resetMousePosition,\r\n * handleMouseEvent,\r\n * trigger\r\n * } = useMousePositionAsTrigger();\r\n *\r\n * const { renderLayer, layerProps } = useLayer({\r\n * isOpen: hasMousePosition,\r\n * trigger,\r\n * onOutsideClick: resetMousePosition\r\n * });\r\n *\r\n * return (\r\n * <>\r\n * {isOpen && renderLayer(<div {...layerProps} />)}\r\n * <div onContextMenu={handleMouseEvent} />\r\n * </>\r\n * );\r\n * ```\r\n */\n\nfunction useMousePositionAsTrigger(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$enabled = _ref.enabled,\n enabled = _ref$enabled === void 0 ? true : _ref$enabled,\n _ref$preventDefault = _ref.preventDefault,\n preventDefault = _ref$preventDefault === void 0 ? true : _ref$preventDefault;\n\n var parentRef = useRef(null);\n\n var _useState = useState(EMPTY_BOUNDS),\n mouseBounds = _useState[0],\n setMouseBounds = _useState[1];\n\n function resetMousePosition() {\n setMouseBounds(EMPTY_BOUNDS);\n }\n\n var hasMousePosition = mouseBounds !== EMPTY_BOUNDS;\n\n function handleMouseEvent(evt) {\n if (!enabled) {\n return;\n }\n\n if (preventDefault) {\n evt.preventDefault();\n }\n\n var left = evt.clientX,\n top = evt.clientY;\n setMouseBounds({\n top: top,\n left: left,\n width: 1,\n height: 1,\n right: left + 1,\n bottom: top + 1\n });\n }\n\n return {\n hasMousePosition: hasMousePosition,\n resetMousePosition: resetMousePosition,\n handleMouseEvent: handleMouseEvent,\n trigger: {\n getBounds: function getBounds() {\n return mouseBounds;\n },\n getParent: parentRef.current ? function () {\n return parentRef.current;\n } : undefined\n },\n parentRef: parentRef\n };\n}\n\n/**\r\n * Convert a pixel value into a numeric value\r\n * @param value string value (ie. '12px')\r\n */\nfunction getPixelValue(value) {\n return parseFloat(value.replace(\"px\", \"\"));\n}\n/**\r\n * Returns a numeric value that doesn't exceed min or max\r\n */\n\nfunction limit(value, min, max) {\n return value < min ? min : value > max ? max : value;\n}\n/**\r\n * Utility function which ensures whether a value is truthy\r\n */\n\nfunction isSet(value) {\n return value === null || value === undefined ? false : true;\n}\n/**\r\n * Utility function that let's you assign multiple references to a 'ref' prop\r\n * @param refs list of MutableRefObject's and / or callbacks\r\n */\n\nfunction mergeRefs() {\n for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n refs[_key] = arguments[_key];\n }\n\n return function (element) {\n for (var _iterator = _createForOfIteratorHelperLoose(refs), _step; !(_step = _iterator()).done;) {\n var ref = _step.value;\n\n if (!ref) {\n continue;\n }\n\n if (typeof ref === \"function\") {\n ref(element);\n } else {\n ref.current = element;\n }\n }\n };\n}\n\n/**\r\n * Utility to get the correct ResizeObserver class\r\n */\n\nfunction getResizeObserver(environment, polyfill) {\n if (typeof environment === \"undefined\") {\n return undefined;\n }\n\n return polyfill || environment.ResizeObserver;\n}\n/**\r\n * Utility function that given a element traverses up in the html-hierarchy\r\n * to find and return all ancestors that have scroll behavior\r\n */\n\nfunction findScrollContainers(element, environment) {\n var result = [];\n\n if (!element || !environment || element === document.body) {\n return result;\n }\n\n var _environment$getCompu = environment.getComputedStyle(element),\n overflow = _environment$getCompu.overflow,\n overflowX = _environment$getCompu.overflowX,\n overflowY = _environment$getCompu.overflowY;\n\n if ([overflow, overflowX, overflowY].some(function (prop) {\n return [\"auto\", \"scroll\"].includes(prop);\n })) {\n result.push(element);\n }\n\n return [].concat(result, findScrollContainers(element.parentElement, environment));\n}\n\nfunction createReferenceError(subject) {\n return \"react-laag: Could not find a valid reference for the \" + subject + \" element. There might be 2 causes:\\n - Make sure that the 'ref' is set correctly on the \" + subject + \" element when isOpen: true. Also make sure your component forwards the ref with \\\"forwardRef()\\\".\\n - Make sure that you are actually rendering the \" + subject + \" when the isOpen prop is set to true\";\n}\n/**\r\n * This hook has the responsibility to track the bounds of:\r\n * - the trigger element\r\n * - the layer element\r\n * - the arrow element\r\n * - the scroll-containers of which the trigger element is a descendant of\r\n *\r\n * It will call the `onChange` callback with a collection of these elements when any\r\n * of the tracked elements bounds have changed\r\n *\r\n * It will detect these changes by listening:\r\n * - when the reference of the trigger element changes\r\n * - when the reference of the layer element changes\r\n * - when the trigger, layer or document body changes in size\r\n * - when the user scrolls the page, or any of the scroll containers\r\n */\n\n\nfunction useTrackElements(_ref) {\n var enabled = _ref.enabled,\n onChange = _ref.onChange,\n environment = _ref.environment,\n ResizeObserverPolyfill = _ref.ResizeObserverPolyfill,\n overflowContainer = _ref.overflowContainer,\n triggerOption = _ref.triggerOption;\n // get the correct reference to the ResizeObserver class\n var ResizeObserver = getResizeObserver(environment, ResizeObserverPolyfill); // warn the user when no valid ResizeObserver class could be found\n\n useEffect(function () {\n process.env.NODE_ENV !== \"production\" ? warning(ResizeObserver, \"This browser does not support ResizeObserver out of the box. We recommend to add a polyfill in order to utilize the full capabilities of react-laag. See: https://github.com/everweij/react-laag#resize-observer\") : void 0;\n }, [ResizeObserver]); // keep reference of the optional arrow-component\n\n var arrowRef = useRef(null); // if user has provided the trigger-option we should ingore certain things elsewhere\n\n var hasTriggerOption = Boolean(triggerOption); // Keep track of mutable element related state\n // It is generally better to use React.useState, but unfortunately that causes to many re-renders\n\n var _useMutableStore = useMutableStore({\n scrollContainers: [],\n trigger: null,\n layer: null\n }),\n get = _useMutableStore[0],\n set = _useMutableStore[1]; // utility to keep track of the scroll and resize listeners and how to unsubscribe them\n\n\n var _useEventSubscription = useEventSubscriptions(),\n hasEventSubscriptions = _useEventSubscription.hasEventSubscriptions,\n addEventSubscription = _useEventSubscription.addEventSubscription,\n removeAllEventSubscriptions = _useEventSubscription.removeAllEventSubscriptions; // All scroll and resize changes eventually end up here, where the collection of bounds (subjectsBounds) is\n // constructed in order to notifiy the `onBoundsChange` callback\n\n\n var handleChange = useCallback(function handleChange() {\n var _get = get(),\n layer = _get.layer,\n trigger = _get.trigger,\n scrollContainers = _get.scrollContainers;\n\n var closestScrollContainer = scrollContainers[0];\n\n if (!layer) {\n throw new Error(createReferenceError(\"layer\"));\n } // ignore when user has provided the trigger-option\n\n\n if (!trigger && !hasTriggerOption) {\n throw new Error(createReferenceError(\"trigger\"));\n }\n\n var scrollOffsets = {\n top: 0,\n left: 0\n };\n\n if (closestScrollContainer) {\n var scrollLeft = closestScrollContainer.scrollLeft,\n scrollTop = closestScrollContainer.scrollTop;\n scrollOffsets = {\n top: scrollTop,\n left: scrollLeft\n };\n } else {\n var scrollX = environment.scrollX,\n scrollY = environment.scrollY;\n scrollOffsets = {\n top: scrollY,\n left: scrollX\n };\n }\n\n var borderOffsets = {\n left: 0,\n top: 0\n };\n\n if (closestScrollContainer) {\n var _environment$getCompu2 = environment.getComputedStyle(closestScrollContainer),\n borderLeftWidth = _environment$getCompu2.borderLeftWidth,\n borderTopWidth = _environment$getCompu2.borderTopWidth;\n\n borderOffsets = {\n left: getPixelValue(borderLeftWidth) || 0,\n top: getPixelValue(borderTopWidth) || 0\n };\n }\n\n onChange({\n layer: layer,\n trigger: trigger,\n scrollContainers: scrollContainers,\n arrow: arrowRef.current\n }, scrollOffsets, borderOffsets);\n }, [get, onChange, environment, arrowRef, hasTriggerOption]); // responsible for adding the scroll and resize listeners to the correct\n // html elements\n\n var addEventListeners = useCallback(function addEventListeners() {\n var _get2 = get(),\n trigger = _get2.trigger,\n layer = _get2.layer,\n scrollContainers = _get2.scrollContainers;\n\n if (!layer) {\n throw new Error(createReferenceError(\"layer\"));\n }\n\n if (!trigger && !hasTriggerOption) {\n // ignore when user has provided the trigger-option\n throw new Error(createReferenceError(\"trigger\"));\n }\n\n if (ResizeObserver) {\n var ignoredInitialCall = false;\n\n var observerCallback = function observerCallback() {\n if (!ignoredInitialCall) {\n ignoredInitialCall = true;\n return;\n }\n\n handleChange();\n };\n\n var observer = new ResizeObserver(observerCallback);\n\n for (var _i = 0, _arr = [trigger, layer, document.body]; _i < _arr.length; _i++) {\n var element = _arr[_i];\n if (element) observer.observe(element);\n }\n\n addEventSubscription(function () {\n for (var _i2 = 0, _arr2 = [trigger, layer, document.body]; _i2 < _arr2.length; _i2++) {\n var _element = _arr2[_i2];\n if (_element) observer.unobserve(_element);\n }\n\n observer.disconnect();\n });\n }\n\n var listenForScrollElements = [environment].concat(scrollContainers);\n\n var _loop = function _loop() {\n var element = _step.value;\n element.addEventListener(\"scroll\", handleChange);\n addEventSubscription(function () {\n return element.removeEventListener(\"scroll\", handleChange);\n });\n };\n\n for (var _iterator = _createForOfIteratorHelperLoose(listenForScrollElements), _step; !(_step = _iterator()).done;) {\n _loop();\n }\n }, [get, addEventSubscription, handleChange, environment, ResizeObserver, hasTriggerOption]); // when either the reference to the trigger or layer element changes\n // we should reset the event listeners and trigger a `onChange`\n\n var resetWhenReferenceChangedWhileTracking = useCallback(function (previous, next) {\n if (enabled && previous && previous !== next) {\n removeAllEventSubscriptions();\n addEventListeners();\n handleChange();\n }\n }, [removeAllEventSubscriptions, addEventListeners, handleChange, enabled]); // Logic when reference to layer changes\n\n var layerRef = useTrackRef(useCallback(function (layer) {\n var _get3 = get(),\n previousLayer = _get3.layer; // store new reference\n\n\n set(function (state) {\n return _extends({}, state, {\n layer: layer\n });\n }); // check if we should reset the event listeners\n\n resetWhenReferenceChangedWhileTracking(previousLayer, layer);\n }, [get, set, resetWhenReferenceChangedWhileTracking]));\n var getScrollContainers = useCallback(function handleScrollContainers(element) {\n var scrollContainers = findScrollContainers(element, environment);\n var closestScrollContainer = scrollContainers[0];\n\n if (closestScrollContainer) {\n // Check if we should warn the user about 'position: relative; stuff...'\n var position = environment.getComputedStyle(closestScrollContainer).position;\n var closestScrollContainerHasCorrectStyling = [\"relative\", \"absolute\", \"fixed\"].includes(position) || overflowContainer;\n\n if (!closestScrollContainerHasCorrectStyling) {\n closestScrollContainer.style.position = \"relative\";\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(closestScrollContainerHasCorrectStyling, \"react-laag: Set the 'position' style of the nearest scroll-container to 'relative', 'absolute' or 'fixed', or set the 'overflowContainer' prop to true. This is needed in order to position the layer properly. Currently the scroll-container is positioned: \\\"\" + position + \"\\\". For now, \\\"position: relative;\\\" is added for you, but this behavior might be removed in the future. Visit https://react-laag.com/docs/#position-relative for more info.\") : void 0;\n }\n\n return scrollContainers;\n }, [environment, overflowContainer]); // Logic when reference to trigger changes\n // Note: this will have no effect when user provided the trigger-option\n\n var triggerRef = useTrackRef(useCallback(function (trigger) {\n // collect list of scroll containers\n var scrollContainers = getScrollContainers(trigger);\n\n var _get4 = get(),\n previousTrigger = _get4.trigger; // store new references\n\n\n set(function (state) {\n return _extends({}, state, {\n trigger: trigger,\n scrollContainers: scrollContainers\n });\n }); // check if we should reset the event listeners\n\n resetWhenReferenceChangedWhileTracking(previousTrigger, trigger);\n }, [get, set, resetWhenReferenceChangedWhileTracking, getScrollContainers])); // when user has provided the trigger-option, it monitors the optional parent-element\n // in order to determine the scroll-containers\n\n var triggerOptionParent = triggerOption == null ? void 0 : triggerOption.getParent == null ? void 0 : triggerOption.getParent();\n useIsomorphicLayoutEffect(function () {\n if (!triggerOptionParent) {\n return;\n }\n\n set(function (state) {\n return _extends({}, state, {\n scrollContainers: getScrollContainers(triggerOptionParent)\n });\n });\n }, [triggerOptionParent, set, getScrollContainers]);\n useIsomorphicLayoutEffect(function () {\n if (enabled) {\n // add event listeners if necessary\n if (!hasEventSubscriptions()) {\n addEventListeners();\n }\n }\n\n return function () {\n if (hasEventSubscriptions()) {\n removeAllEventSubscriptions();\n }\n };\n }, [enabled, hasEventSubscriptions, addEventListeners, removeAllEventSubscriptions]); // run this effect after every render\n\n useIsomorphicLayoutEffect(function () {\n if (enabled) {\n // eventually call `handleChange` with latest elements-refs\n handleChange();\n }\n });\n return {\n triggerRef: triggerRef,\n layerRef: layerRef,\n arrowRef: arrowRef,\n closestScrollContainer: get().scrollContainers[0] || null\n };\n}\n\nvar GroupContext = /*#__PURE__*/createContext({}); // Provider that wraps arround the layer in order to provide other useLayers\n// down in the hiearchy (child layers) with means to communicate with the parent.\n// This provider receives a `registrations` Set which can be used to add and\n// delete registrations.\n\nfunction GroupProvider(_ref) {\n var children = _ref.children,\n registrations = _ref.registrations;\n // registration function that is used as 'context payload' for child layers\n // to call. It returns a function to unregister.\n var handleRegister = useCallback(function register(registration) {\n registrations.current.add(registration);\n return function () {\n return registrations.current.delete(registration);\n };\n }, [registrations]);\n return createElement(GroupContext.Provider, {\n value: handleRegister\n }, children);\n} // asks child layers if they would close given the documents click event\n// if there's one that signals not to close, return early (false)\n\nfunction getShouldCloseAccordingToChildren(registrations, event) {\n for (var _iterator = _createForOfIteratorHelperLoose(registrations), _step; !(_step = _iterator()).done;) {\n var shouldCloseWhenClickedOutside = _step.value.shouldCloseWhenClickedOutside;\n\n if (!shouldCloseWhenClickedOutside(event)) {\n return false;\n }\n }\n\n return true;\n}\n/**\r\n * Responsible for close behavior\r\n * When the `onOutsideClick` callback is provided by the user, it will listen for clicks\r\n * in the document, and tell whether the user clicked outside -> not on layer / trigger.\r\n * It keeps track of nested useLayers a.k.a child layers (`registrations` Set), through which\r\n * we can ask whether they `shouldCloseWhenClickedOutside`, or tell them to close.\r\n *\r\n * Behavior:\r\n * - `onOutsideClick` only works on the most outer parent, and not on children. The parent will ask\r\n * the child layers whether they would close, and will handle accordingly. The parent may\r\n * command the children to close indirectly with the help of `onParentClose`\r\n * - When the parent just was closed, it will make sure that any children will also close\r\n * with the help of `onParentClose`\r\n */\n\n\nfunction useGroup(_ref2) {\n var isOpen = _ref2.isOpen,\n onOutsideClick = _ref2.onOutsideClick,\n onParentClose = _ref2.onParentClose;\n // store references to the dom-elements\n // we need these to later determine wether the clicked outside or not\n var trigger = useRef(null);\n var layer = useRef(null); // a Set which keeps track of callbacks given by the child layers through context\n\n var registrations = useRef(new Set()); // if this instance is a child itself, we should use this function to register\n // some callbacks to the parent\n\n var possibleRegisterFn = useContext(GroupContext); // recursively checks whether to close or not. This mechanism has some similarities\n // with event bubbling.\n\n var shouldCloseWhenClickedOutside = useCallback(function shouldCloseWhenClickedOutside(event) {\n var target = event.target;\n var clickedOnTrigger = trigger.current && trigger.current.contains(target);\n var clickedOnLayer = layer.current && layer.current.contains(target);\n var shouldCloseAccordingToChildren = getShouldCloseAccordingToChildren(registrations.current, event); // when clicked on own layer, but the child would have closed ->\n // let child close\n\n if (clickedOnLayer && shouldCloseAccordingToChildren) {\n registrations.current.forEach(function (_ref3) {\n var closeChild = _ref3.closeChild;\n return closeChild();\n });\n }\n\n return !clickedOnTrigger && !clickedOnLayer && shouldCloseAccordingToChildren;\n }, [trigger, layer, registrations]); // registration stuff\n\n useEffect(function () {\n if (typeof possibleRegisterFn !== \"function\") {\n return;\n } // 'possibleRegisterFn' will return a function that will unregister\n // on cleanup\n\n\n return possibleRegisterFn({\n shouldCloseWhenClickedOutside: shouldCloseWhenClickedOutside,\n closeChild: function closeChild() {\n process.env.NODE_ENV !== \"production\" ? warning(onParentClose, \"react-laag: You are using useLayer() in a nested setting but forgot to set the 'onParentClose()' callback in the options. This could lead to unexpected behavior.\") : void 0;\n\n if (onParentClose) {\n onParentClose();\n }\n }\n });\n }, [possibleRegisterFn, shouldCloseWhenClickedOutside, onParentClose, registrations]); // document click handling\n\n useEffect(function () {\n var isChild = typeof possibleRegisterFn === \"function\";\n var shouldNotListen = !isOpen || !onOutsideClick || isChild;\n\n if (shouldNotListen) {\n return;\n }\n\n function handleClick(event) {\n if (shouldCloseWhenClickedOutside(event)) {\n onOutsideClick();\n }\n }\n\n document.addEventListener(\"click\", handleClick, true);\n return function () {\n return document.removeEventListener(\"click\", handleClick, true);\n };\n }, [isOpen, onOutsideClick, shouldCloseWhenClickedOutside, possibleRegisterFn]); // When this 'useLayer' gets closed -> tell child layers to close as well\n\n useEffect(function () {\n if (!isOpen) {\n registrations.current.forEach(function (_ref4) {\n var closeChild = _ref4.closeChild;\n return closeChild();\n });\n }\n }, [isOpen]);\n return {\n closeOnOutsideClickRefs: {\n trigger: trigger,\n layer: layer\n },\n registrations: registrations\n };\n}\n\nvar PLACEMENT_TYPES = [\"bottom-start\", \"bottom-end\", \"bottom-center\", \"top-start\", \"top-center\", \"top-end\", \"left-end\", \"left-center\", \"left-start\", \"right-end\", \"right-center\", \"right-start\", \"center\"];\n\nvar OPPOSITES = {\n top: \"bottom\",\n left: \"right\",\n bottom: \"top\",\n right: \"left\",\n center: \"center\"\n};\n\nvar SideBase = /*#__PURE__*/function () {\n function SideBase(prop, opposite, isHorizontal, sizeProp, oppositeSizeProp, cssProp, oppositeCssProp, isCenter, isPush // left | top\n ) {\n this.prop = void 0;\n this.opposite = void 0;\n this.isHorizontal = void 0;\n this.sizeProp = void 0;\n this.oppositeSizeProp = void 0;\n this.cssProp = void 0;\n this.oppositeCssProp = void 0;\n this.isCenter = void 0;\n this.isPush = void 0;\n this.prop = prop;\n this.opposite = opposite;\n this.isHorizontal = isHorizontal;\n this.sizeProp = sizeProp;\n this.oppositeSizeProp = oppositeSizeProp;\n this.cssProp = cssProp;\n this.oppositeCssProp = oppositeCssProp;\n this.isCenter = isCenter;\n this.isPush = isPush;\n }\n\n var _proto = SideBase.prototype;\n\n _proto.factor = function factor(value) {\n return value * (this.isPush ? 1 : -1);\n };\n\n _proto.isOppositeDirection = function isOppositeDirection(side) {\n return this.isHorizontal !== side.isHorizontal;\n };\n\n return SideBase;\n}();\n\nfunction createSide(prop, recursive) {\n if (recursive === void 0) {\n recursive = true;\n }\n\n var isHorizontal = [\"left\", \"right\"].includes(prop);\n return new SideBase(prop, recursive ? createSide(OPPOSITES[prop], false) : null, isHorizontal, isHorizontal ? \"width\" : \"height\", isHorizontal ? \"height\" : \"width\", isHorizontal ? \"left\" : \"top\", isHorizontal ? \"top\" : \"left\", prop === \"center\", ![\"right\", \"bottom\"].includes(prop));\n}\n\nvar BoundSide = {\n top: /*#__PURE__*/createSide(\"top\"),\n bottom: /*#__PURE__*/createSide(\"bottom\"),\n left: /*#__PURE__*/createSide(\"left\"),\n right: /*#__PURE__*/createSide(\"right\")\n};\nvar Side = /*#__PURE__*/_extends({}, BoundSide, {\n center: /*#__PURE__*/createSide(\"center\")\n});\n\nvar SIDES = [\"top\", \"left\", \"bottom\", \"right\"];\n/**\r\n * A class containing the positional properties which represent the distance\r\n * between two Bounds instances for each side\r\n */\n\nvar BoundsOffsets = /*#__PURE__*/function () {\n function BoundsOffsets(offsets) {\n this.top = void 0;\n this.left = void 0;\n this.right = void 0;\n this.bottom = void 0;\n return Object.assign(this, offsets);\n }\n /**\r\n * Takes multiple BoundsOffets instances and creates a new BoundsOffsets instance\r\n * by taking the smallest value for each side\r\n * @param boundsOffsets list of BoundsOffsets instances\r\n */\n\n\n BoundsOffsets.mergeSmallestSides = function mergeSmallestSides(boundsOffsets) {\n var first = boundsOffsets[0],\n rest = boundsOffsets.slice(1);\n\n if (!first) {\n throw new Error(\"Please provide at least 1 bounds objects in order to merge\");\n }\n\n var result = Object.fromEntries(SIDES.map(function (side) {\n return [side, first[side]];\n }));\n\n for (var _iterator = _createForOfIteratorHelperLoose(rest), _step; !(_step = _iterator()).done;) {\n var boundsOffset = _step.value;\n\n for (var _iterator2 = _createForOfIteratorHelperLoose(SIDES), _step2; !(_step2 = _iterator2()).done;) {\n var side = _step2.value;\n result[side] = Math.min(result[side], boundsOffset[side]);\n }\n }\n\n return new BoundsOffsets(result);\n }\n /**\r\n * Checks whether all sides sides are positive, meaning the corresponding Bounds instance\r\n * fits perfectly within a parent Bounds instance\r\n */\n ;\n\n _createClass(BoundsOffsets, [{\n key: \"allSidesArePositive\",\n get: function get() {\n var _this = this;\n\n return SIDES.every(function (side) {\n return _this[side] >= 0;\n });\n }\n /**\r\n * Returns a partial IBoundsOffsets with sides that are negative, meaning sides aren't entirely\r\n * visible in respect to a parent Bounds instance\r\n */\n\n }, {\n key: \"negativeSides\",\n get: function get() {\n var _this2 = this;\n\n return Object.fromEntries(SIDES.filter(function (side) {\n return _this2[side] < 0;\n }).map(function (side) {\n return [side, _this2[side]];\n }));\n }\n }]);\n\n return BoundsOffsets;\n}();\n\n/**\r\n * Utility function that returns sum of various computed styles\r\n * @param propertyValues list of computed styles (ie. '12px')\r\n */\n\nfunction sumOfPropertyValues() {\n for (var _len = arguments.length, propertyValues = new Array(_len), _key = 0; _key < _len; _key++) {\n propertyValues[_key] = arguments[_key];\n }\n\n return propertyValues.reduce(function (sum, propertyValue) {\n return sum + (propertyValue ? getPixelValue(propertyValue) : 0);\n }, 0);\n}\n\nfunction boundsToObject(_ref) {\n var top = _ref.top,\n left = _ref.left,\n right = _ref.right,\n bottom = _ref.bottom,\n width = _ref.width,\n height = _ref.height;\n return {\n top: top,\n left: left,\n right: right,\n bottom: bottom,\n width: width,\n height: height\n };\n}\nvar EMPTY = {\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n width: 0,\n height: 0\n};\n/**\r\n * A class containing the positional properties of the native DOM's ClientRect\r\n * (`element.getBoundingClientRect()`), together with some utility methods\r\n */\n\nvar Bounds = /*#__PURE__*/function () {\n /**\r\n * Creates a new Bounds class\r\n * @param bounds An object that adheres to the `IBounds` interface\r\n */\n Bounds.create = function create(bounds) {\n return new Bounds(bounds);\n }\n /**\r\n * Creates a new Bounds class from a DOM-element\r\n * @param element reference to the DOM-element\r\n * @param options optional options object\r\n */\n ;\n\n Bounds.fromElement = function fromElement(element, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$withTransfor = _options.withTransform,\n withTransform = _options$withTransfor === void 0 ? true : _options$withTransfor,\n _options$environment = _options.environment,\n environment = _options$environment === void 0 ? window : _options$environment,\n _options$withScrollba = _options.withScrollbars,\n withScrollbars = _options$withScrollba === void 0 ? true : _options$withScrollba;\n var plain = boundsToObject(element.getBoundingClientRect());\n var bounds = new Bounds(plain);\n\n if (!withTransform) {\n var _environment$getCompu = environment.getComputedStyle(element),\n width = _environment$getCompu.width,\n height = _environment$getCompu.height,\n boxSizing = _environment$getCompu.boxSizing,\n borderLeft = _environment$getCompu.borderLeft,\n borderRight = _environment$getCompu.borderRight,\n borderTop = _environment$getCompu.borderTop,\n borderBottom = _environment$getCompu.borderBottom,\n paddingLeft = _environment$getCompu.paddingLeft,\n paddingRight = _environment$getCompu.paddingRight,\n paddingTop = _environment$getCompu.paddingTop,\n paddingBottom = _environment$getCompu.paddingBottom;\n\n var boxWidth = boxSizing === \"border-box\" ? getPixelValue(width) : sumOfPropertyValues(width, borderLeft, borderRight, paddingLeft, paddingRight);\n var boxHeight = boxSizing === \"border-box\" ? getPixelValue(height) : sumOfPropertyValues(height, borderTop, borderBottom, paddingTop, paddingBottom);\n bounds = new Bounds(_extends({}, bounds, {\n width: boxWidth,\n height: boxHeight\n }));\n }\n\n if (!withScrollbars) {\n var scrollbarWidth = bounds.width - element.clientWidth;\n var scrollbarHeight = bounds.height - element.clientHeight;\n return bounds.substract({\n right: scrollbarWidth,\n bottom: scrollbarHeight\n });\n }\n\n return bounds;\n }\n /**\r\n * Creates an empty Bounds class\r\n */\n ;\n\n Bounds.empty = function empty() {\n return new Bounds();\n }\n /**\r\n * Creates a Bounds class from the window's dimensions\r\n * @param environment reference to the window-object (needed when working with iframes for instance). Defaults to `window`\r\n */\n ;\n\n Bounds.fromWindow = function fromWindow(environment) {\n var _ref2 = environment || {},\n _ref2$innerWidth = _ref2.innerWidth,\n width = _ref2$innerWidth === void 0 ? 0 : _ref2$innerWidth,\n _ref2$innerHeight = _ref2.innerHeight,\n height = _ref2$innerHeight === void 0 ? 0 : _ref2$innerHeight;\n\n return new Bounds({\n width: width,\n height: height,\n right: width,\n bottom: height\n });\n };\n\n function Bounds(bounds) {\n if (bounds === void 0) {\n bounds = {};\n }\n\n this.top = void 0;\n this.left = void 0;\n this.right = void 0;\n this.bottom = void 0;\n this.width = void 0;\n this.height = void 0;\n return Object.assign(this, EMPTY, bounds);\n }\n /**\r\n * Returns the square surface of the bounds in pixels\r\n */\n\n\n var _proto = Bounds.prototype;\n\n /**\r\n * Returns a plain object containing only positional properties\r\n */\n _proto.toObject = function toObject() {\n return boundsToObject(this);\n };\n\n _proto.merge = function merge(partialBoundsOrMergeFn) {\n var current = this.toObject();\n return new Bounds(_extends({}, current, typeof partialBoundsOrMergeFn === \"function\" ? partialBoundsOrMergeFn(current) : partialBoundsOrMergeFn));\n }\n /**\r\n * Return a new Bounds instance by subtracting each property of the provided IBounds object\r\n * @param bounds partial IBounds object to substract with\r\n */\n ;\n\n _proto.substract = function substract(bounds) {\n var result = this.toObject();\n var entries = Object.entries(bounds);\n\n for (var _i = 0, _entries = entries; _i < _entries.length; _i++) {\n var _entries$_i = _entries[_i],\n prop = _entries$_i[0],\n value = _entries$_i[1];\n\n if (prop in BoundSide) {\n // if `prop` is one of 'top', 'left', 'bottom' or 'right'...\n var boundSide = BoundSide[prop]; // decide if we should add or substract\n\n result[prop] += boundSide.factor(value); // make sure that the size-properties are also updated\n\n result[boundSide.isHorizontal ? \"width\" : \"height\"] -= value;\n } else {\n // prop is 'width' or 'height'\n result[prop] -= value || 0;\n }\n }\n\n return new Bounds(result);\n }\n /**\r\n * Returns a new BoundsOffsets instance by determining the distance for each bound-side:\r\n * (child -> parent)\r\n * @param child child bounds instance\r\n */\n ;\n\n _proto.offsetsTo = function offsetsTo(child) {\n return new BoundsOffsets({\n top: child.top - this.top,\n bottom: this.bottom - child.bottom,\n left: child.left - this.left,\n right: this.right - child.right\n });\n }\n /**\r\n * Return a new Bounds instance by mapping over each bound-side\r\n * @param mapper callback that takes a boundSide + value in pixels, returning a new value for that side\r\n */\n ;\n\n _proto.mapSides = function mapSides(mapper) {\n var result = this.toObject();\n var boundSides = Object.values(BoundSide);\n\n for (var _i2 = 0, _boundSides = boundSides; _i2 < _boundSides.length; _i2++) {\n var boundSide = _boundSides[_i2];\n result[boundSide.prop] = mapper(boundSide, result[boundSide.prop]);\n }\n\n return new Bounds(result);\n };\n\n _createClass(Bounds, [{\n key: \"surface\",\n get: function get() {\n return this.width * this.height;\n }\n }]);\n\n return Bounds;\n}();\n\n/**\r\n * Class for various calculations based on a placement-type. I.e 'top-left';\r\n */\n\nvar Placement = /*#__PURE__*/function () {\n function Placement(primary, secondary, subjectBounds, layerDimensions, offsets) {\n this.primary = void 0;\n this.secondary = void 0;\n this.offsets = void 0;\n this.subjectsBounds = void 0;\n this._cachedLayerBounds = null;\n this._cachedContainerOffsets = null;\n this.primary = primary;\n this.secondary = secondary;\n this.offsets = offsets;\n this.setSubjectsBounds(subjectBounds, layerDimensions);\n }\n /**\r\n * Set subjectsBounds that are specific for this placement\r\n * @param subjectBounds original SubjectBounds instance\r\n * @param layerDimensions possible config prodvided by the user\r\n */\n\n\n var _proto = Placement.prototype;\n\n _proto.setSubjectsBounds = function setSubjectsBounds(subjectBounds, layerDimensions) {\n // if user did not provide any layerDimensions config...\n if (!layerDimensions) {\n this.subjectsBounds = subjectBounds;\n return;\n } // get anticipated layer-dimensions provided by the user\n\n\n var dimensions = // if the user passed a callback, call it with the layerSide corresponding to\n // the placement\n typeof layerDimensions === \"function\" ? layerDimensions(this.primary.prop) : layerDimensions; // create new SubjectsBounds instance by merging our newly create layer-bounds\n\n this.subjectsBounds = subjectBounds.merge({\n layer: _extends({}, subjectBounds.layer, dimensions)\n });\n }\n /**\r\n * Returns the string respresentation of this placement (ie. 'top-start')\r\n */\n ;\n\n /**\r\n * Calculates the actual boundaries based on the placement\r\n * @param secondaryOffset optional offset on the secondary-side\r\n */\n _proto.getLayerBounds = function getLayerBounds(secondaryOffset) {\n if (secondaryOffset === void 0) {\n secondaryOffset = 0;\n }\n\n // return cached version if possible\n if (this._cachedLayerBounds && secondaryOffset === 0) {\n return this._cachedLayerBounds;\n }\n\n var primary = this.primary,\n secondary = this.secondary,\n subjectsBounds = this.subjectsBounds;\n var trigger = subjectsBounds.trigger,\n layer = subjectsBounds.layer,\n arrow = subjectsBounds.arrow;\n var isHorizontal = primary.isHorizontal,\n oppositeCssProp = primary.oppositeCssProp,\n oppositeSizeProp = primary.oppositeSizeProp,\n prop = primary.prop,\n opposite = primary.opposite;\n var result = Bounds.empty(); // let's take the placement 'top-start' as an example...\n // the offsets are the following:\n // trigger -> 8px\n // container -> 10px;\n // arrow -> 2px;\n // PRIMARY STUFF\n // bottom = trigger.top + 8;\n\n result[opposite.prop] = trigger[prop] - primary.factor(this.offsets.trigger); // top = bottom - layer.height\n\n result[prop] = result[opposite.prop] - primary.factor(layer[primary.sizeProp]); // SECONDARY STUFF\n // arrowOffsetBase = 4\n\n var arrowOffsetBase = this.offsets.arrow * 2; // limitMin = trigger.left - (layer.width - arrow.width) + 4\n\n var limitMin = trigger[oppositeCssProp] - (layer[oppositeSizeProp] - arrow[oppositeSizeProp]) + arrowOffsetBase; // limitMax = trigger.left + (trigger.width - arrow.width) - 4\n\n var limitMax = trigger[oppositeCssProp] + (trigger[oppositeSizeProp] - arrow[oppositeSizeProp]) - arrowOffsetBase;\n\n if (!secondary.isPush) {\n // if secondary is bottom or right -> add the width or height of the layer\n limitMin += layer[oppositeSizeProp];\n limitMax += layer[oppositeSizeProp];\n }\n\n if (secondary.isCenter) {\n var propertyA = (isHorizontal ? BoundSide.top : BoundSide.left).prop;\n var propertyB = (isHorizontal ? BoundSide.bottom : BoundSide.right).prop; // left = limit(\n // trigger.left + trigger.width / 2 - layer.width / 2 + secondaryOffset,\n // limitMin,\n // limitMax\n // )\n\n result[propertyA] = limit(trigger[propertyA] + trigger[oppositeSizeProp] / 2 - layer[oppositeSizeProp] / 2 + secondaryOffset, limitMin, limitMax); // right = left + layer.width\n\n result[propertyB] = result[propertyA] + layer[oppositeSizeProp];\n } else {\n var sec = secondary;\n var triggerValue = trigger[sec.prop]; // Under some conditions, when the layer is not able to align with the trigger\n // due to arrow-size and arrow-offsets, we need to compensate.\n // Otherwise, the secondary-offset will have no impact\n\n var arrowCompensation = triggerValue < limitMin ? limitMin - triggerValue : triggerValue > limitMax ? limitMax - triggerValue : 0; // left = limit(\n // trigger.left + secondaryOffset + arrowCompensation,\n // limitMin,\n // limitMax\n // )\n\n result[sec.prop] = limit(triggerValue + secondaryOffset + arrowCompensation, limitMin, limitMax); // right = left + layer.width\n\n result[sec.opposite.prop] = result[sec.prop] + secondary.factor(layer[oppositeSizeProp]);\n } // set the correct dimensions\n\n\n result.width = result.right - result.left;\n result.height = result.bottom - result.top; // create new bounds object\n\n var layerBounds = Bounds.create(result);\n\n if (secondaryOffset === 0) {\n this._cachedLayerBounds = layerBounds;\n }\n\n return layerBounds;\n }\n /**\r\n * Checks whether the trigger is bigger on the opposite side\r\n * ie. placement \"top-start\" -> has trigger a bigger width?\r\n */\n ;\n\n /**\r\n * returns getLayerBounds(), including container-offsets\r\n */\n _proto.getLayerCollisionBounds = function getLayerCollisionBounds() {\n var container = this.offsets.container;\n return this.getLayerBounds().mapSides(function (side, value) {\n return value -= side.factor(container);\n }).merge(function (_ref) {\n var width = _ref.width,\n height = _ref.height;\n return {\n width: width + container * 2,\n height: height + container * 2\n };\n });\n }\n /**\r\n * Returns a BoundsOffsets instance containing merged offsets to containers with the most\r\n * negative scenario\r\n */\n ;\n\n _proto.getContainerOffsets = function getContainerOffsets(layerBounds) {\n if (this._cachedContainerOffsets && !layerBounds) {\n return this._cachedContainerOffsets;\n }\n\n var subjectBounds = this.subjectsBounds.merge({\n layer: layerBounds || this.getLayerCollisionBounds()\n });\n var offsets = BoundsOffsets.mergeSmallestSides(subjectBounds.layerOffsetsToScrollContainers);\n\n if (!layerBounds) {\n this._cachedContainerOffsets = offsets;\n }\n\n return offsets;\n };\n\n _createClass(Placement, [{\n key: \"type\",\n get: function get() {\n return this.primary.prop + \"-\" + (this.secondary.prop === \"center\" ? \"center\" : [\"bottom\", \"right\"].includes(this.secondary.prop) ? \"end\" : \"start\");\n }\n }, {\n key: \"triggerIsBigger\",\n get: function get() {\n var isHorizontal = this.secondary.isHorizontal;\n var _this$subjectsBounds = this.subjectsBounds,\n triggerHasBiggerWidth = _this$subjectsBounds.triggerHasBiggerWidth,\n triggerHasBiggerHeight = _this$subjectsBounds.triggerHasBiggerHeight;\n return isHorizontal && triggerHasBiggerWidth || !isHorizontal && triggerHasBiggerHeight;\n }\n /**\r\n * Checks whether the placement fits within all it's container (including container-offset)\r\n */\n\n }, {\n key: \"fitsContainer\",\n get: function get() {\n return this.getContainerOffsets().allSidesArePositive;\n }\n /**\r\n * Returns the surface in square pixels of the visible part of the layer\r\n */\n\n }, {\n key: \"visibleSurface\",\n get: function get() {\n var layerBounds = this.getLayerBounds();\n var containerOffsets = this.getContainerOffsets(layerBounds);\n var substract = containerOffsets.negativeSides;\n\n for (var side in substract) {\n // @ts-ignore\n substract[side] = -substract[side]; // make positive for substraction;\n }\n\n return layerBounds.substract(substract).surface;\n }\n /**\r\n * Returns a BoundSide by looking at the most negative offset that is the opposite direction\r\n */\n\n }, {\n key: \"secondaryOffsetSide\",\n get: function get() {\n var _Object$entries$map$f,\n _Object$entries$map$f2,\n _this = this;\n\n // Given placement 'top-start' and containerOffsets { left: -20, top: -10, right: -10, bottom: 200 }...\n // the only negative offsets on the opposite side are { left: -20, right: -10 }\n // since we have to return only 1 side, we pick the most negative, which is 'left'\n var containerOffsets = this.getContainerOffsets();\n\n var _ref2 = (_Object$entries$map$f = (_Object$entries$map$f2 = Object.entries(containerOffsets.negativeSides).map(function (_ref3) {\n var side = _ref3[0],\n value = _ref3[1];\n return [BoundSide[side], value];\n }).filter(function (_ref4) {\n var side = _ref4[0];\n return _this.primary.isOppositeDirection(side);\n }).sort(function (_ref5, _ref6) {\n var a = _ref5[1];\n var b = _ref6[1];\n return b - a;\n })) == null ? void 0 : _Object$entries$map$f2[0]) != null ? _Object$entries$map$f : [],\n mostNegativeSide = _ref2[0];\n\n return mostNegativeSide || null;\n }\n }]);\n\n return Placement;\n}();\nvar PlacementCenter = /*#__PURE__*/function (_Placement) {\n _inheritsLoose(PlacementCenter, _Placement);\n\n function PlacementCenter() {\n return _Placement.apply(this, arguments) || this;\n }\n\n var _proto2 = PlacementCenter.prototype;\n\n _proto2.getLayerBounds = function getLayerBounds() {\n var _this$subjectsBounds2 = this.subjectsBounds,\n trigger = _this$subjectsBounds2.trigger,\n layer = _this$subjectsBounds2.layer;\n var result = Bounds.empty();\n result.top = trigger.top + trigger.height / 2 - layer.height / 2;\n result.bottom = result.top + layer.height;\n result.left = trigger.left + trigger.width / 2 - layer.width / 2;\n result.right = result.left + layer.width;\n result.width = result.right - result.left;\n result.height = result.bottom - result.top;\n return result;\n };\n\n return PlacementCenter;\n}(Placement);\n\nfunction getNegativeOffsetBetweenLayerCenterAndTrigger(subjectsBounds, placement, arrowOffset) {\n var layer = subjectsBounds.layer,\n trigger = subjectsBounds.trigger,\n arrow = subjectsBounds.arrow;\n var sizeProperty = placement.primary.oppositeSizeProp;\n\n var _ref = !placement.primary.isHorizontal ? [\"left\", \"right\"] : [\"top\", \"bottom\"],\n sideA = _ref[0],\n sideB = _ref[1];\n\n var offsetA = layer[sideA] + layer[sizeProperty] / 2 - trigger[sideA] - arrow[sizeProperty] / 2 - arrowOffset;\n var offsetB = layer[sideB] - layer[sizeProperty] / 2 - trigger[sideB] + arrow[sizeProperty] / 2 + arrowOffset;\n return (offsetA < 0 ? -offsetA : 0) + (offsetB > 0 ? -offsetB : 0);\n}\n\nvar STYLE_BASE = {\n position: \"absolute\",\n willChange: \"top, left\",\n left: null,\n right: null,\n top: null,\n bottom: null\n};\nfunction getArrowStyle(subjectsBounds, placement, arrowOffset) {\n var _extends2;\n\n if (placement.primary.isCenter) {\n return STYLE_BASE;\n }\n\n var layer = subjectsBounds.layer,\n trigger = subjectsBounds.trigger,\n arrow = subjectsBounds.arrow;\n var sizeProperty = placement.primary.oppositeSizeProp;\n var triggerIsBigger = trigger[sizeProperty] > layer[sizeProperty];\n var min = arrowOffset + arrow[sizeProperty] / 2;\n var max = layer[sizeProperty] - arrow[sizeProperty] / 2 - arrowOffset;\n var negativeOffset = getNegativeOffsetBetweenLayerCenterAndTrigger(subjectsBounds, placement, arrowOffset);\n var primarySide = placement.primary.prop;\n var secondarySide = placement.primary.oppositeCssProp;\n var secondaryValue = triggerIsBigger ? layer[sizeProperty] / 2 + negativeOffset : trigger[secondarySide] + trigger[sizeProperty] / 2 - layer[secondarySide];\n return _extends({}, STYLE_BASE, (_extends2 = {}, _extends2[primarySide] = \"100%\", _extends2[secondarySide] = limit(secondaryValue, min, max), _extends2));\n}\n\n/**\r\n * Class mostly concerned about calculating and finding the right placement\r\n */\n\nvar Placements = /*#__PURE__*/function () {\n function Placements(placements, config, subjectsBounds) {\n this.placements = void 0;\n this.config = void 0;\n this.subjectsBounds = void 0;\n this.placements = placements;\n this.config = config;\n this.subjectsBounds = subjectsBounds;\n }\n /**\r\n * Converts a placement-type into a primary-side and a secondary-side\r\n */\n\n\n Placements.getSidesFromPlacementType = function getSidesFromPlacementType(type) {\n var _type$split = type.split(\"-\"),\n a = _type$split[0],\n b = _type$split[1];\n\n var primary = BoundSide[a];\n var secondary;\n\n if (b === \"center\") {\n secondary = Side.center;\n } else if (primary.isHorizontal) {\n secondary = b === \"start\" ? Side.top : Side.bottom;\n } else {\n secondary = b === \"start\" ? Side.left : Side.right;\n }\n\n return [primary, secondary];\n }\n /**\r\n * Main static method to create a Placements instance\r\n * @param subjectsBounds instance of the SubjectsBounds class\r\n * @param config config provided by the user\r\n */\n ;\n\n Placements.create = function create(subjectsBounds, config) {\n // create offsets-object from user config\n var offsets = {\n arrow: config.arrowOffset,\n container: config.containerOffset,\n trigger: config.triggerOffset\n }; // function which creates a prioritized list of possible placments\n // by looking at user-config\n\n function getListOfPlacements(preferedPlacement) {\n if (preferedPlacement === void 0) {\n preferedPlacement = config.placement;\n }\n\n var _Placements$getSidesF = Placements.getSidesFromPlacementType(preferedPlacement),\n primary = _Placements$getSidesF[0],\n secondary = _Placements$getSidesF[1];\n\n var preferredSide = BoundSide[primary.isHorizontal ? config.preferY : config.preferX]; // some priorities may alter when the trigger is bigger\n\n var triggerIsBigger = !primary.isHorizontal && subjectsBounds.triggerHasBiggerWidth || primary.isHorizontal && subjectsBounds.triggerHasBiggerHeight; // utility function which constructs a placement by primary and secondary sides\n\n function placementFrom(primary, secondary) {\n return new Placement(primary, secondary, subjectsBounds, config.layerDimensions, offsets);\n } // creating the list\n\n\n var list = [];\n list[0] = placementFrom(primary, secondary);\n list[1] = placementFrom(primary, secondary.isCenter ? preferredSide : Side.center);\n list[2] = placementFrom(primary, Side[(secondary.opposite.isCenter ? preferredSide.opposite : secondary.opposite).prop]);\n list[3] = placementFrom(preferredSide, triggerIsBigger ? primary : Side[primary.opposite.prop]);\n list[4] = placementFrom(preferredSide, Side.center);\n list[5] = placementFrom(preferredSide, triggerIsBigger ? Side[primary.opposite.prop] : primary);\n list[6] = placementFrom(BoundSide[preferredSide.opposite.prop], triggerIsBigger ? primary : Side[primary.opposite.prop]);\n list[7] = placementFrom(BoundSide[preferredSide.opposite.prop], Side.center);\n list[8] = placementFrom(BoundSide[preferredSide.opposite.prop], triggerIsBigger ? Side[primary.opposite.prop] : primary);\n list[9] = placementFrom(BoundSide[primary.opposite.prop], secondary);\n list[10] = placementFrom(BoundSide[primary.opposite.prop], secondary.isCenter ? preferredSide : Side.center);\n list[11] = placementFrom(BoundSide[primary.opposite.prop], Side[(secondary.opposite.isCenter ? preferredSide.opposite : secondary.opposite).prop]); // only include placements that are part of 'possible-placements'\n\n list = list.filter(function (placement) {\n return placement.type === config.placement || config.possiblePlacements.includes(placement.type);\n });\n return list;\n } // treat placement 'center' a little bit different\n\n\n if (config.placement === \"center\") {\n return new Placements([new PlacementCenter(Side.center, Side.center, subjectsBounds, config.layerDimensions, offsets)].concat(getListOfPlacements(config.preferY + \"-\" + config.preferX)), config, subjectsBounds);\n }\n\n return new Placements(getListOfPlacements(), config, subjectsBounds);\n };\n\n var _proto = Placements.prototype;\n\n _proto.filterPlacementsBySide = function filterPlacementsBySide(side) {\n return this.placements.filter(function (placement) {\n return placement.primary === side;\n });\n };\n\n _proto.findFirstPlacementThatFits = function findFirstPlacementThatFits() {\n return this.placements.find(function (placement) {\n return placement.fitsContainer;\n });\n };\n\n _proto.placementWithBiggestVisibleSurface = function placementWithBiggestVisibleSurface() {\n var _this$placements$map$ = this.placements.map(function (placement) {\n return {\n placement: placement,\n surface: placement.visibleSurface\n };\n }) // sort -> biggest surface first\n . // sort -> biggest surface first\n sort(function (a, b) {\n return b.surface - a.surface;\n }),\n placementWithBiggestSurface = _this$placements$map$[0].placement;\n\n return placementWithBiggestSurface;\n };\n\n _proto.findSuitablePlacement = function findSuitablePlacement() {\n if (!this.config.auto) {\n return this.placements[0];\n }\n\n return this.findFirstPlacementThatFits() || this.placementWithBiggestVisibleSurface();\n }\n /**\r\n * secondary offset: the number of pixels between the edge of the\r\n * scroll-container and the current placement, on the side of the layer\r\n * that didn't fit.\r\n * Eventually this secondary offset gets added / subtracted from the\r\n * placement that does fit in order to move the layer closer to the\r\n * position of the placement that just would not fit.\r\n * This creates the effect that the layer is moving gradually from one\r\n * placement to the next as the users scrolls the page or scroll-container\r\n */\n ;\n\n _proto.getSecondaryOffset = function getSecondaryOffset(placement) {\n var _this$config = this.config,\n auto = _this$config.auto,\n snap = _this$config.snap; // return early when we're not interested...\n\n if (!auto || snap || placement instanceof PlacementCenter) {\n return 0;\n } // if current placement fits and is prefered placement...\n // return early\n\n\n var placementsOnSameSide = this.filterPlacementsBySide(placement.primary);\n var currentPlacementHasHighestPriority = placementsOnSameSide.indexOf(placement) === 0;\n\n if (currentPlacementHasHighestPriority && placement.fitsContainer) {\n return 0;\n }\n\n var firstPlacementThatDoesNotFit = placementsOnSameSide.find(function (placement) {\n return !placement.fitsContainer;\n });\n\n if (!firstPlacementThatDoesNotFit) {\n return 0;\n }\n\n var secondaryOffsetSide = firstPlacementThatDoesNotFit.secondaryOffsetSide;\n\n if (!secondaryOffsetSide) {\n return 0;\n }\n\n var containerOffsets = placement.getContainerOffsets(); // determine whether we should add or substract the secondary-offset\n\n var secondary = placement.secondary;\n var factor;\n\n if (placement.triggerIsBigger || firstPlacementThatDoesNotFit === placement) {\n factor = secondaryOffsetSide.isPush ? -1 : 1;\n } else {\n factor = secondary === Side.left || [Side.top, Side.center].includes(secondary) && secondaryOffsetSide.isPush ? -1 : 1;\n } // get number of pixels between placement that did not fit and current\n // placement\n\n\n var secondaryOffset = containerOffsets[secondaryOffsetSide.prop];\n return secondaryOffset * factor;\n };\n\n _proto.getStyles = function getStyles(layerBounds, placement, scrollOffsets, borderOffsets) {\n var layerStyleBase = {\n willChange: \"top, left, width, height\"\n };\n var arrow = getArrowStyle(this.subjectsBounds.merge({\n layer: layerBounds\n }), placement, this.config.arrowOffset);\n var layer = this.config.overflowContainer ? _extends({}, layerStyleBase, {\n position: \"fixed\",\n top: layerBounds.top,\n left: layerBounds.left\n }) : _extends({}, layerStyleBase, {\n position: \"absolute\",\n top: layerBounds.top - this.subjectsBounds.parent.top + scrollOffsets.top - borderOffsets.top,\n left: layerBounds.left - this.subjectsBounds.parent.left + scrollOffsets.left - borderOffsets.left\n });\n return {\n arrow: arrow,\n layer: layer\n };\n };\n\n _proto.getHasDisappeared = function getHasDisappeared(layerBounds) {\n var subject = this.config.overflowContainer ? this.subjectsBounds.trigger : layerBounds;\n var containerOffsets = BoundsOffsets.mergeSmallestSides(this.subjectsBounds.offsetsToScrollContainers(subject, true));\n var entries = Object.entries(containerOffsets.negativeSides);\n var hasFullyDisappeared = entries.some(function (_ref) {\n var prop = _ref[0],\n value = _ref[1];\n var side = BoundSide[prop];\n return value <= -subject[side.sizeProp];\n });\n\n if (hasFullyDisappeared) {\n return \"full\";\n }\n\n if (!containerOffsets.allSidesArePositive) {\n return \"partial\";\n }\n\n return null;\n };\n\n _proto.result = function result(scrollOffsets, borderOffsets) {\n var suitablePlacement = this.findSuitablePlacement();\n var secondaryOffset = this.getSecondaryOffset(suitablePlacement);\n var layerBounds = suitablePlacement.getLayerBounds(secondaryOffset);\n var styles = this.getStyles(layerBounds, suitablePlacement, scrollOffsets, borderOffsets);\n var layerSide = suitablePlacement.primary.prop;\n return {\n styles: styles,\n layerSide: layerSide,\n placement: suitablePlacement,\n layerBounds: layerBounds,\n hasDisappeared: this.getHasDisappeared(layerBounds)\n };\n };\n\n return Placements;\n}();\n\nvar SubjectsBounds = /*#__PURE__*/function () {\n function SubjectsBounds(subjectsBounds, overflowContainer) {\n this.overflowContainer = void 0;\n this.trigger = void 0;\n this.layer = void 0;\n this.arrow = void 0;\n this.parent = void 0;\n this.window = void 0;\n this.scrollContainers = void 0;\n this.overflowContainer = overflowContainer;\n Object.assign(this, subjectsBounds);\n }\n\n SubjectsBounds.create = function create(environment, layer, trigger, parent, arrow, scrollContainers, overflowContainer, getTriggerBounds) {\n var window = Bounds.fromWindow(environment);\n return new SubjectsBounds({\n layer: Bounds.fromElement(layer, {\n environment: environment,\n withTransform: false\n }),\n trigger: getTriggerBounds ? Bounds.create(boundsToObject(getTriggerBounds())) : Bounds.fromElement(trigger),\n arrow: arrow ? Bounds.fromElement(arrow) : Bounds.empty(),\n parent: parent ? Bounds.fromElement(parent) : window,\n window: window,\n scrollContainers: [window].concat(scrollContainers.map(function (container) {\n return Bounds.fromElement(container, {\n withScrollbars: false\n });\n }))\n }, overflowContainer);\n };\n\n var _proto = SubjectsBounds.prototype;\n\n _proto.merge = function merge(subjectsBounds) {\n return new SubjectsBounds(_extends({}, this, subjectsBounds), this.overflowContainer);\n };\n\n _proto.offsetsToScrollContainers = function offsetsToScrollContainers(subject, allContainers) {\n if (allContainers === void 0) {\n allContainers = false;\n }\n\n var scrollContainers = this.overflowContainer && !allContainers ? [this.window] : this.scrollContainers;\n return scrollContainers.map(function (scrollContainer) {\n return scrollContainer.offsetsTo(subject);\n });\n };\n\n _createClass(SubjectsBounds, [{\n key: \"layerOffsetsToScrollContainers\",\n get: function get() {\n return this.offsetsToScrollContainers(this.layer);\n }\n }, {\n key: \"triggerHasBiggerWidth\",\n get: function get() {\n return this.trigger.width > this.layer.width;\n }\n }, {\n key: \"triggerHasBiggerHeight\",\n get: function get() {\n return this.trigger.height > this.layer.height;\n }\n }]);\n\n return SubjectsBounds;\n}();\n\nvar GLOBAL_CONTAINER = null;\nfunction setGlobalContainer(container) {\n if (typeof document === \"undefined\") {\n return;\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(!(GLOBAL_CONTAINER instanceof HTMLElement), \"react-laag: You've called 'setGlobalContainer() previously'. It is recommended to only set the global container once, otherwise this may lead to unexpected behaviour.\") : void 0;\n\n if (typeof container === \"function\") {\n GLOBAL_CONTAINER = container();\n } else if (typeof container === \"string\") {\n GLOBAL_CONTAINER = document.getElementById(container);\n } else {\n GLOBAL_CONTAINER = container;\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(GLOBAL_CONTAINER instanceof HTMLElement, \"react-laag: You've called 'setGlobalContainer()', but it didn't result in a valid html-element\") : void 0;\n}\nvar DEFAULT_OPTIONS = {\n auto: false,\n arrowOffset: 0,\n containerOffset: 10,\n triggerOffset: 0,\n overflowContainer: true,\n placement: \"top-center\",\n possiblePlacements: PLACEMENT_TYPES,\n preferX: \"right\",\n preferY: \"bottom\",\n snap: false,\n container: undefined,\n trigger: undefined\n};\nfunction useLayer(_ref) {\n var _triggerBoundsRef$cur;\n\n var _ref$isOpen = _ref.isOpen,\n isOpen = _ref$isOpen === void 0 ? false : _ref$isOpen,\n _ref$overflowContaine = _ref.overflowContainer,\n overflowContainer = _ref$overflowContaine === void 0 ? DEFAULT_OPTIONS.overflowContainer : _ref$overflowContaine,\n _ref$environment = _ref.environment,\n environment = _ref$environment === void 0 ? typeof window !== \"undefined\" ? window : undefined : _ref$environment,\n ResizeObserverPolyfill = _ref.ResizeObserver,\n _ref$placement = _ref.placement,\n placement = _ref$placement === void 0 ? DEFAULT_OPTIONS.placement : _ref$placement,\n _ref$possiblePlacemen = _ref.possiblePlacements,\n possiblePlacements = _ref$possiblePlacemen === void 0 ? DEFAULT_OPTIONS.possiblePlacements : _ref$possiblePlacemen,\n _ref$preferX = _ref.preferX,\n preferX = _ref$preferX === void 0 ? DEFAULT_OPTIONS.preferX : _ref$preferX,\n _ref$preferY = _ref.preferY,\n preferY = _ref$preferY === void 0 ? DEFAULT_OPTIONS.preferY : _ref$preferY,\n _ref$auto = _ref.auto,\n auto = _ref$auto === void 0 ? DEFAULT_OPTIONS.auto : _ref$auto,\n _ref$snap = _ref.snap,\n snap = _ref$snap === void 0 ? DEFAULT_OPTIONS.snap : _ref$snap,\n _ref$triggerOffset = _ref.triggerOffset,\n triggerOffset = _ref$triggerOffset === void 0 ? DEFAULT_OPTIONS.triggerOffset : _ref$triggerOffset,\n _ref$containerOffset = _ref.containerOffset,\n containerOffset = _ref$containerOffset === void 0 ? DEFAULT_OPTIONS.containerOffset : _ref$containerOffset,\n _ref$arrowOffset = _ref.arrowOffset,\n arrowOffset = _ref$arrowOffset === void 0 ? DEFAULT_OPTIONS.arrowOffset : _ref$arrowOffset,\n _ref$container = _ref.container,\n container = _ref$container === void 0 ? DEFAULT_OPTIONS.container : _ref$container,\n _ref$layerDimensions = _ref.layerDimensions,\n layerDimensions = _ref$layerDimensions === void 0 ? null : _ref$layerDimensions,\n onDisappear = _ref.onDisappear,\n onOutsideClick = _ref.onOutsideClick,\n onParentClose = _ref.onParentClose,\n triggerOption = _ref.trigger;\n\n // initialize styles\n var _useState = useState(function () {\n return {\n layerSide: placement === \"center\" ? \"center\" : Placements.getSidesFromPlacementType(placement)[0].prop,\n styles: {\n layer: {\n position: overflowContainer ? \"fixed\" : \"absolute\",\n top: 0,\n left: 0\n },\n arrow: {\n position: \"absolute\",\n top: 0,\n left: 0\n }\n }\n };\n }),\n state = _useState[0],\n setState = _useState[1];\n\n var triggerBoundsRef = useRef(null); // tracks state in order for us to use read inside functions that require dependencies,\n // like `useCallback`, without triggering an update\n\n var lastState = useLastState(state, isOpen); // keeps track of scheduled animation-frames\n\n var raf = useRef(null);\n useEffect(function () {\n return function () {\n // when this hook unmounts, make sure to cancel any scheduled animation-frames\n if (raf.current) {\n cancelAnimationFrame(raf.current);\n raf.current = null;\n }\n };\n }, []); // Most important function regarding positioning\n // It receives boundaries collected by `useTrackElements`, does some calculations,\n // sets new styles, and handles when a layer has disappeared.\n\n var handlePositioning = useCallback(function handlePositioning(_ref2, scrollOffsets, borderOffsets) {\n var arrow = _ref2.arrow,\n layer = _ref2.layer,\n scrollContainers = _ref2.scrollContainers,\n trigger = _ref2.trigger;\n var parent = scrollContainers[0];\n var subjectsBounds = SubjectsBounds.create(environment, layer, trigger, parent, arrow, scrollContainers, overflowContainer, triggerOption == null ? void 0 : triggerOption.getBounds);\n var config = {\n placement: placement,\n possiblePlacements: possiblePlacements,\n auto: auto,\n layerDimensions: layerDimensions,\n arrowOffset: arrowOffset,\n containerOffset: containerOffset,\n triggerOffset: triggerOffset,\n preferX: preferX,\n preferY: preferY,\n snap: snap,\n overflowContainer: overflowContainer\n };\n\n var _Placements$create$re = Placements.create(subjectsBounds, config).result(scrollOffsets, borderOffsets),\n hasDisappeared = _Placements$create$re.hasDisappeared,\n layerSide = _Placements$create$re.layerSide,\n styles = _Placements$create$re.styles;\n\n var newState = {\n layerSide: layerSide,\n styles: styles\n };\n\n if (!lastState.current || didStateChange(lastState.current, newState)) {\n lastState.current = newState; // optimistically update lastState to prevent infinite loop\n\n /**\r\n * We're using requestAnimationFrame-features here to ensure that position updates will\r\n * happen max once per frame.\r\n * If during a frame there's already an update scheduled, the existing update will be cancelled\r\n * and the new update will take precedence.\r\n */\n\n if (raf.current) {\n cancelAnimationFrame(raf.current);\n }\n\n raf.current = requestAnimationFrame(function () {\n setState(newState);\n raf.current = null;\n });\n }\n\n if (isSet(hasDisappeared) && isSet(onDisappear)) {\n onDisappear(hasDisappeared);\n }\n }, [arrowOffset, auto, containerOffset, environment, layerDimensions, onDisappear, overflowContainer, placement, possiblePlacements, preferX, preferY, snap, triggerOffset, lastState, triggerOption]);\n\n var _useTrackElements = useTrackElements({\n ResizeObserverPolyfill: ResizeObserverPolyfill,\n environment: environment,\n enabled: isOpen,\n overflowContainer: overflowContainer,\n onChange: handlePositioning,\n triggerOption: triggerOption\n }),\n triggerRef = _useTrackElements.triggerRef,\n layerRef = _useTrackElements.layerRef,\n arrowRef = _useTrackElements.arrowRef,\n closestScrollContainer = _useTrackElements.closestScrollContainer;\n\n var _useGroup = useGroup({\n isOpen: isOpen,\n onOutsideClick: onOutsideClick,\n onParentClose: onParentClose\n }),\n closeOnOutsideClickRefs = _useGroup.closeOnOutsideClickRefs,\n registrations = _useGroup.registrations;\n\n var props = {\n triggerProps: Boolean(triggerOption) ? {} // when using the `trigger` option, make `triggerProps` useless\n : {\n ref: mergeRefs(triggerRef, closeOnOutsideClickRefs.trigger, triggerBoundsRef)\n },\n layerProps: {\n ref: mergeRefs(layerRef, closeOnOutsideClickRefs.layer),\n style: state.styles.layer\n },\n arrowProps: {\n ref: arrowRef,\n style: state.styles.arrow,\n layerSide: state.layerSide\n },\n layerSide: state.layerSide,\n triggerBounds: isOpen ? triggerOption ? triggerOption.getBounds() : (_triggerBoundsRef$cur = triggerBoundsRef.current) == null ? void 0 : _triggerBoundsRef$cur.getBoundingClientRect() : null,\n renderLayer: function renderLayer(children) {\n return typeof document !== \"undefined\" ? createPortal(createElement(GroupProvider, {\n registrations: registrations,\n children: children\n }), overflowContainer || !closestScrollContainer ? getContainerElement(container) : closestScrollContainer) : null;\n }\n };\n return props;\n}\n\nfunction didStateChange(previous, next) {\n if (previous.layerSide !== next.layerSide) {\n return true;\n }\n\n var styleProps = [\"position\", \"top\", \"left\", \"right\", \"bottom\"];\n\n for (var _i = 0, _styleProps = styleProps; _i < _styleProps.length; _i++) {\n var prop = _styleProps[_i];\n\n if (previous.styles.layer[prop] !== next.styles.layer[prop] || previous.styles.arrow[prop] !== next.styles.arrow[prop]) {\n return true;\n }\n }\n\n return false;\n}\n\nvar DEFAULT_CONTAINER_ID = \"layers\";\n\nfunction getContainerElement(container) {\n var element;\n\n if (typeof container === \"function\") {\n element = container();\n\n if (!element || !(element instanceof HTMLElement)) {\n throw new Error(\"react-laag: You've passed a function to the 'container' prop, but it returned no valid HTMLElement\");\n }\n } else if (container instanceof HTMLElement) {\n element = container;\n } else if (typeof container === \"string\") {\n element = document.getElementById(container);\n\n if (!element) {\n throw new Error(\"react-laag: You've passed element with id '\" + container + \"' to the 'container' prop, but it returned no valid HTMLElement\");\n }\n } else if (GLOBAL_CONTAINER instanceof HTMLElement) {\n return GLOBAL_CONTAINER;\n } else {\n element = document.getElementById(DEFAULT_CONTAINER_ID);\n\n if (!element) {\n element = document.createElement(\"div\");\n element.id = DEFAULT_CONTAINER_ID;\n element.style.cssText = \"\\n position: absolute;\\n top: 0px;\\n left: 0px;\\n right: 0px;\\n \";\n document.body.appendChild(element);\n }\n }\n\n return element;\n}\n\nvar _excluded = [\"size\", \"angle\", \"borderWidth\", \"borderColor\", \"roundness\", \"backgroundColor\", \"layerSide\", \"style\"];\nvar LEFT = \"left\";\nvar TOP = \"top\";\nvar BOTTOM = \"bottom\";\nvar RIGHT = \"right\";\n\nfunction getWidthBasedOnAngle(angle, size) {\n return Math.tan(angle * (Math.PI / 180)) * size;\n}\n\nfunction getViewBox(sizeA, sizeB, side, borderWidth) {\n var _map;\n\n var map = (_map = {}, _map[BOTTOM] = \"0 \" + -borderWidth + \" \" + sizeB + \" \" + sizeA, _map[TOP] = \"0 0 \" + sizeB + \" \" + (sizeA + borderWidth), _map[RIGHT] = -borderWidth + \" 0 \" + sizeA + \" \" + sizeB, _map[LEFT] = \"0 0 \" + (sizeA + borderWidth) + \" \" + sizeB, _map);\n return map[side.prop];\n}\n\nfunction getTrianglePath(sizeA, sizeB, side, roundness, angle) {\n var _BOTTOM$TOP$RIGHT$LEF, _BOTTOM$TOP$RIGHT$LEF2, _BOTTOM$TOP$RIGHT$LEF3;\n\n var relativeRoundness = roundness / 10 * sizeA * 2;\n var A = (_BOTTOM$TOP$RIGHT$LEF = {}, _BOTTOM$TOP$RIGHT$LEF[BOTTOM] = [0, sizeA], _BOTTOM$TOP$RIGHT$LEF[TOP] = [0, 0], _BOTTOM$TOP$RIGHT$LEF[RIGHT] = [sizeA, sizeB], _BOTTOM$TOP$RIGHT$LEF[LEFT] = [0, sizeB], _BOTTOM$TOP$RIGHT$LEF)[side.prop].join(\" \");\n var B = side.isHorizontal ? \"V 0\" : \"H \" + sizeB;\n var cPoint = sizeB / 2;\n var c1A = sizeB / 2 + getWidthBasedOnAngle(angle, sizeA / 8);\n var c1B = sizeA / 8;\n var C = (_BOTTOM$TOP$RIGHT$LEF2 = {}, _BOTTOM$TOP$RIGHT$LEF2[BOTTOM] = [\"C\", c1A, c1B, cPoint + relativeRoundness, 0, cPoint, 0], _BOTTOM$TOP$RIGHT$LEF2[TOP] = [\"C\", c1A, sizeA - c1B, cPoint + relativeRoundness, sizeA, cPoint, sizeA], _BOTTOM$TOP$RIGHT$LEF2[RIGHT] = [\"C\", c1B, sizeB - c1A, 0, cPoint - relativeRoundness, 0, cPoint], _BOTTOM$TOP$RIGHT$LEF2[LEFT] = [\"C\", sizeA - c1B, sizeB - c1A, sizeA, cPoint - relativeRoundness, sizeA, cPoint], _BOTTOM$TOP$RIGHT$LEF2)[side.prop].join(\" \");\n var d1A = sizeB / 2 - getWidthBasedOnAngle(angle, sizeA / 8);\n var d1B = sizeA / 8;\n var D = (_BOTTOM$TOP$RIGHT$LEF3 = {}, _BOTTOM$TOP$RIGHT$LEF3[BOTTOM] = [\"C\", cPoint - relativeRoundness, 0, d1A, d1B, A], _BOTTOM$TOP$RIGHT$LEF3[TOP] = [\"C\", cPoint - relativeRoundness, sizeA, d1A, sizeA - d1B, A], _BOTTOM$TOP$RIGHT$LEF3[RIGHT] = [\"C\", 0, cPoint + relativeRoundness, d1B, sizeB - d1A, A], _BOTTOM$TOP$RIGHT$LEF3[LEFT] = [\"C\", sizeA, cPoint + relativeRoundness, sizeA - d1B, sizeB - d1A, A], _BOTTOM$TOP$RIGHT$LEF3)[side.prop].join(\" \");\n return [\"M\", A, B, C, D].join(\" \");\n}\n\nfunction getBorderMaskPath(sizeA, sizeB, borderWidth, side, angle) {\n var borderOffset = getWidthBasedOnAngle(angle, borderWidth);\n\n var _ref = !side.isPush ? [sizeA, sizeA - borderWidth] : [0, borderWidth],\n A = _ref[0],\n B = _ref[1];\n\n if (side.isHorizontal) {\n return [\"M\", A, borderWidth, \"V\", sizeB - borderWidth, \"L\", B, sizeB - borderWidth - borderOffset, \"V\", borderOffset + borderWidth, \"Z\"].join(\" \");\n }\n\n return [\"M\", borderWidth, A, \"H\", sizeB - borderWidth, \"L\", sizeB - borderWidth - borderOffset, B, \"H\", borderOffset + borderWidth, \"Z\"].join(\" \");\n}\n\nvar Arrow = /*#__PURE__*/forwardRef(function Arrow(_ref2, ref) {\n var _ref2$size = _ref2.size,\n size = _ref2$size === void 0 ? 8 : _ref2$size,\n _ref2$angle = _ref2.angle,\n angle = _ref2$angle === void 0 ? 45 : _ref2$angle,\n _ref2$borderWidth = _ref2.borderWidth,\n borderWidth = _ref2$borderWidth === void 0 ? 0 : _ref2$borderWidth,\n _ref2$borderColor = _ref2.borderColor,\n borderColor = _ref2$borderColor === void 0 ? \"black\" : _ref2$borderColor,\n _ref2$roundness = _ref2.roundness,\n roundness = _ref2$roundness === void 0 ? 0 : _ref2$roundness,\n _ref2$backgroundColor = _ref2.backgroundColor,\n backgroundColor = _ref2$backgroundColor === void 0 ? \"white\" : _ref2$backgroundColor,\n _ref2$layerSide = _ref2.layerSide,\n layerSide = _ref2$layerSide === void 0 ? \"top\" : _ref2$layerSide,\n _ref2$style = _ref2.style,\n style = _ref2$style === void 0 ? {} : _ref2$style,\n rest = _objectWithoutPropertiesLoose(_ref2, _excluded);\n\n if (layerSide === \"center\") {\n return null;\n }\n\n var side = BoundSide[layerSide];\n var sizeA = size;\n var sizeB = getWidthBasedOnAngle(angle, size) * 2;\n var maxSize = Math.max(sizeA, sizeB);\n return createElement(\"svg\", _extends({\n ref: ref\n }, rest, {\n style: _extends({}, style, {\n transform: \"translate\" + (side.isHorizontal ? \"Y\" : \"X\") + \"(-50%)\"\n }),\n width: maxSize,\n height: maxSize,\n preserveAspectRatio: side.isPush ? \"xMinYMin\" : \"xMaxYMax\",\n viewBox: getViewBox(sizeA, sizeB, side, borderWidth)\n }), createElement(\"path\", {\n fill: backgroundColor,\n strokeWidth: borderWidth,\n stroke: borderColor,\n d: getTrianglePath(sizeA, sizeB, side, roundness, angle)\n }), createElement(\"path\", {\n fill: backgroundColor,\n d: getBorderMaskPath(sizeA, sizeB, borderWidth, side, angle)\n }));\n});\n\nvar Status;\n\n(function (Status) {\n Status[Status[\"ENTERING\"] = 0] = \"ENTERING\";\n Status[Status[\"LEAVING\"] = 1] = \"LEAVING\";\n Status[Status[\"IDLE\"] = 2] = \"IDLE\";\n})(Status || (Status = {}));\n\nfunction useHover(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$delayEnter = _ref.delayEnter,\n delayEnter = _ref$delayEnter === void 0 ? 0 : _ref$delayEnter,\n _ref$delayLeave = _ref.delayLeave,\n delayLeave = _ref$delayLeave === void 0 ? 0 : _ref$delayLeave,\n _ref$hideOnScroll = _ref.hideOnScroll,\n hideOnScroll = _ref$hideOnScroll === void 0 ? true : _ref$hideOnScroll;\n\n var _useState = useState(false),\n show = _useState[0],\n setShow = _useState[1];\n\n var timeout = useRef(null);\n var status = useRef(Status.IDLE);\n var hasTouchMoved = useRef(false);\n var removeTimeout = useCallback(function removeTimeout() {\n clearTimeout(timeout.current);\n timeout.current = null;\n status.current = Status.IDLE;\n }, []);\n\n function onMouseEnter() {\n // if was leaving, stop leaving\n if (status.current === Status.LEAVING && timeout.current) {\n removeTimeout();\n }\n\n if (show) {\n return;\n }\n\n status.current = Status.ENTERING;\n timeout.current = window.setTimeout(function () {\n setShow(true);\n timeout.current = null;\n status.current = Status.IDLE;\n }, delayEnter);\n }\n\n function onMouseLeave(_, immediate) {\n // if was waiting for entering,\n // clear timeout\n if (status.current === Status.ENTERING && timeout.current) {\n removeTimeout();\n }\n\n if (!show) {\n return;\n }\n\n if (immediate) {\n setShow(false);\n timeout.current = null;\n status.current = Status.IDLE;\n return;\n }\n\n status.current = Status.LEAVING;\n timeout.current = window.setTimeout(function () {\n setShow(false);\n timeout.current = null;\n status.current = Status.IDLE;\n }, delayLeave);\n } // make sure to clear timeout on unmount\n\n\n useEffect(function () {\n function onScroll() {\n if (show && hideOnScroll) {\n removeTimeout();\n setShow(false);\n }\n }\n\n function onTouchEnd() {\n if (show) {\n removeTimeout();\n setShow(false);\n }\n }\n\n window.addEventListener(\"scroll\", onScroll, true);\n window.addEventListener(\"touchend\", onTouchEnd, true);\n return function () {\n window.removeEventListener(\"scroll\", onScroll, true);\n window.removeEventListener(\"touchend\", onTouchEnd, true);\n\n if (timeout.current) {\n clearTimeout(timeout.current);\n }\n };\n }, [show, hideOnScroll, removeTimeout]);\n var hoverProps = {\n onMouseEnter: onMouseEnter,\n onMouseLeave: onMouseLeave,\n onTouchStart: function onTouchStart() {\n hasTouchMoved.current = false;\n },\n onTouchMove: function onTouchMove() {\n hasTouchMoved.current = true;\n },\n onTouchEnd: function onTouchEnd() {\n if (!hasTouchMoved.current && !show) {\n setShow(true);\n }\n\n hasTouchMoved.current = false;\n }\n };\n return [show, hoverProps, function () {\n return onMouseLeave(null, true);\n }];\n}\n\n/**\r\n * @deprecated\r\n * Note: this component is marked as deprecated and will be removed and a possible\r\n * future release\r\n */\n\nfunction Transition(_ref) {\n var isOpenExternal = _ref.isOpen,\n children = _ref.children;\n\n var _useState = useState({\n isOpenInternal: isOpenExternal,\n isLeaving: false\n }),\n state = _useState[0],\n setState = _useState[1];\n\n var didMount = useRef(false);\n useEffect(function () {\n if (isOpenExternal) {\n setState({\n isOpenInternal: true,\n isLeaving: false\n });\n } else if (didMount.current) {\n setState({\n isOpenInternal: false,\n isLeaving: true\n });\n }\n }, [isOpenExternal, setState]);\n useEffect(function () {\n process.env.NODE_ENV !== \"production\" ? warning(children, \"react-laag: You are using 'Transition'. Note that this component is marked as deprecated and will be removed at future releases\") : void 0;\n }, [children]);\n useEffect(function () {\n didMount.current = true;\n }, []);\n\n if (!isOpenExternal && !state.isOpenInternal && !state.isLeaving) {\n return null;\n }\n\n return children(state.isOpenInternal, function () {\n if (!state.isOpenInternal) {\n setState(function (s) {\n return _extends({}, s, {\n isLeaving: false\n });\n });\n }\n }, state.isLeaving);\n}\n\nexport { Arrow, DEFAULT_OPTIONS, PLACEMENT_TYPES, Transition, mergeRefs, setGlobalContainer, useHover, useLayer, useMousePositionAsTrigger };\n//# sourceMappingURL=react-laag.esm.js.map\n","import React, { useState, useEffect } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { useLayer } from \"react-laag\";\nimport useFocusTrap from \"@charlietango/use-focus-trap\";\n\n/**\n * Generic Popover component. Renders a floating element that can contain any content,\n * positioned relatively to its triggering element.\n *\n * This Popover only appears on \"click\" (focus + activate or mouse click) interactions.\n * The Escape key and clicking outside of the Popover will dismiss it.\n * For a hover-based informative popover, use `Tooltip`.\n *\n * The popover will position itself based on the `side` prop, but will\n * automatically reposition to avoid collisions with viewport edges.\n */\nconst Popover = ({\n side = \"bottom\",\n content,\n children,\n wrapperDisplay = \"inline-flex\",\n offset = 2,\n disableAutoPlacement = false,\n matchTriggerWidth = false,\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n const focusTrapRef = useFocusTrap(isOpen);\n\n const closePopover = () => {\n setIsOpen(false);\n };\n\n const togglePopover = () => {\n setIsOpen(!isOpen);\n };\n\n const handleKeyDown = ({ key }) => {\n switch (key) {\n case \"Escape\":\n setIsOpen(false);\n break;\n case \"Enter\":\n setIsOpen(true);\n break;\n }\n };\n\n const { renderLayer, triggerProps, triggerBounds, layerProps } = useLayer({\n isOpen,\n onOutsideClick: closePopover,\n onDisappear: closePopover,\n auto: !disableAutoPlacement,\n placement: `${side}-center`,\n preferX: \"left\",\n preferY: \"bottom\",\n container: document.body,\n triggerOffset: offset,\n });\n\n useEffect(() => {\n window.addEventListener(\"keydown\", handleKeyDown);\n return () => {\n window.removeEventListener(\"keydown\", handleKeyDown);\n };\n }, [handleKeyDown]);\n\n let layerStyle = layerProps.style;\n if (triggerBounds && matchTriggerWidth) {\n layerStyle = {\n width: triggerBounds.width,\n ...layerProps.style,\n };\n }\n\n return (\n <>\n <div\n {...triggerProps}\n style={{ display: wrapperDisplay }}\n onClick={togglePopover}\n onKeyDown={handleKeyDown}\n role=\"button\"\n tabIndex=\"0\"\n data-testid=\"nds-popover-trigger\"\n aria-haspopup=\"true\"\n aria-expanded={isOpen.toString()}\n >\n {children}\n </div>\n {renderLayer(\n <>\n {isOpen && (\n <div\n {...layerProps}\n className=\"nds-typography nds-popover rounded--all bgColor--white\"\n style={layerStyle}\n >\n <div ref={focusTrapRef} tabIndex={-1}>\n {content}\n </div>\n </div>\n )}\n </>\n )}\n </>\n );\n};\n\nPopover.propTypes = {\n /** The root node of JSX passed into Tooltip as children will act as the tooltip trigger */\n children: PropTypes.node.isRequired,\n /** Content of popover */\n content: PropTypes.node.isRequired,\n /** Sets prefferred side of the trigger the tooltip should appear */\n side: PropTypes.oneOf([\"top\", \"right\", \"bottom\", \"left\"]),\n /** CSS `display` value for the element that wraps the Tooltip children */\n wrapperDisplay: PropTypes.oneOf([\n \"inline-flex\",\n \"inline-block\",\n \"inline\",\n \"block\",\n \"flex\",\n ]),\n /** Distance of Popover from trigger element in number of pixels */\n offset: PropTypes.number,\n /** When `true`, the Popover container will match the width of its triggering element */\n matchTriggerWidth: PropTypes.bool,\n /**\n * By default, the Popover will automatically reposition itself to avoid viewport edges.\n * Setting this prop to `true` will disable this behavior so that the Popover will\n * always be placed on the given `side` prop.\n */\n disableAutoPlacement: PropTypes.bool,\n};\n\nexport default Popover;\n","import React, { useState, useEffect } from \"react\";\nimport PropTypes from \"prop-types\";\nimport cc from \"classcat\";\n\n/**\nThe Narmi RadioButtons component expects an \"options\" Prop, which is an object where the keys are the radiobutton\nlabels and the values are the radiobutton values. An \"initialvalue\" Prop can be passed to set a default checked\nradiobutton.\n\n```\n options={{ \"First Label\": \"firstValue\", \"Second Label\": \"secondValue\" }}\n```\n*/\nconst RadioButtons = ({\n options,\n name,\n initialValue,\n value,\n kind = \"normal\",\n onChange = () => {},\n ...containerProps\n}) => {\n const isControlled = value !== undefined;\n const [checkedValue, setCheckedValue] = useState(\n isControlled ? value : initialValue\n );\n const [focusedValue, setFocusedValue] = useState(null);\n\n useEffect(() => {\n if (isControlled) {\n setCheckedValue(value);\n }\n }, [value]);\n\n const handleChange = (e) => {\n if (!isControlled) {\n setCheckedValue(e.target.value);\n }\n onChange(e);\n };\n\n const handleFocus = ({ target }) => {\n setFocusedValue(target.value);\n };\n\n const handleBlur = () => {\n setFocusedValue(null);\n };\n\n return (\n <div\n className={`nds-radiobuttons nds-radiobuttons--${kind}`}\n onChange={handleChange}\n {...containerProps}\n >\n {Object.entries(options).map(([label, inputValue]) => (\n <label\n className={cc([\n \"nds-radiobuttons-option\",\n {\n \"nds-radiobuttons-option--checked\": checkedValue == inputValue,\n \"nds-radiobuttons-option--focused\": focusedValue == inputValue,\n \"padding--all rounded--all border--all\": kind === \"card\",\n },\n ])}\n key={inputValue}\n >\n {label}\n <input\n type=\"radio\"\n checked={checkedValue === inputValue}\n onChange={handleChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n value={inputValue}\n name={name}\n />\n <div\n role=\"img\"\n className={cc([\n \"nds-radio\",\n { \"narmi-icon-check\": kind === \"card\" },\n ])}\n />\n </label>\n ))}\n </div>\n );\n};\n\nRadioButtons.propTypes = {\n /** Map of label strings to input values */\n options: PropTypes.object,\n /** name of radiogroup */\n name: PropTypes.string,\n /** initially selected option by input value (uncontrolled) */\n initialValue: PropTypes.any,\n /**\n * selected option by input value (fully controlled)\n * When passing a `value` prop, you must use the `onChange`\n * hanlder to update the `value`\n */\n value: PropTypes.string,\n /** change callback invoked with input value */\n onChange: PropTypes.func,\n /**\n * `normal` - display input and label normally\n *\n * `card` - display input and label as a toggleable card\n */\n kind: PropTypes.oneOf([\"normal\", \"card\"]),\n};\n\nexport default RadioButtons;\n","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","function t(t){return\"object\"==typeof t&&null!=t&&1===t.nodeType}function e(t,e){return(!e||\"hidden\"!==t)&&\"visible\"!==t&&\"clip\"!==t}function n(t,n){if(t.clientHeight<t.scrollHeight||t.clientWidth<t.scrollWidth){var r=getComputedStyle(t,null);return e(r.overflowY,n)||e(r.overflowX,n)||function(t){var e=function(t){if(!t.ownerDocument||!t.ownerDocument.defaultView)return null;try{return t.ownerDocument.defaultView.frameElement}catch(t){return null}}(t);return!!e&&(e.clientHeight<t.scrollHeight||e.clientWidth<t.scrollWidth)}(t)}return!1}function r(t,e,n,r,i,o,l,d){return o<t&&l>e||o>t&&l<e?0:o<=t&&d<=n||l>=e&&d>=n?o-t-r:l>e&&d<n||o<t&&d>n?l-e+i:0}export default function(e,i){var o=window,l=i.scrollMode,d=i.block,u=i.inline,h=i.boundary,a=i.skipOverflowHiddenElements,c=\"function\"==typeof h?h:function(t){return t!==h};if(!t(e))throw new TypeError(\"Invalid target\");for(var f=document.scrollingElement||document.documentElement,s=[],p=e;t(p)&&c(p);){if((p=p.parentElement)===f){s.push(p);break}null!=p&&p===document.body&&n(p)&&!n(document.documentElement)||null!=p&&n(p,a)&&s.push(p)}for(var m=o.visualViewport?o.visualViewport.width:innerWidth,g=o.visualViewport?o.visualViewport.height:innerHeight,w=window.scrollX||pageXOffset,v=window.scrollY||pageYOffset,W=e.getBoundingClientRect(),b=W.height,H=W.width,y=W.top,E=W.right,M=W.bottom,V=W.left,x=\"start\"===d||\"nearest\"===d?y:\"end\"===d?M:y+b/2,I=\"center\"===u?V+H/2:\"end\"===u?E:V,C=[],T=0;T<s.length;T++){var k=s[T],B=k.getBoundingClientRect(),D=B.height,O=B.width,R=B.top,X=B.right,Y=B.bottom,L=B.left;if(\"if-needed\"===l&&y>=0&&V>=0&&M<=g&&E<=m&&y>=R&&M<=Y&&V>=L&&E<=X)return C;var S=getComputedStyle(k),j=parseInt(S.borderLeftWidth,10),q=parseInt(S.borderTopWidth,10),z=parseInt(S.borderRightWidth,10),A=parseInt(S.borderBottomWidth,10),F=0,G=0,J=\"offsetWidth\"in k?k.offsetWidth-k.clientWidth-j-z:0,K=\"offsetHeight\"in k?k.offsetHeight-k.clientHeight-q-A:0;if(f===k)F=\"start\"===d?x:\"end\"===d?x-g:\"nearest\"===d?r(v,v+g,g,q,A,v+x,v+x+b,b):x-g/2,G=\"start\"===u?I:\"center\"===u?I-m/2:\"end\"===u?I-m:r(w,w+m,m,j,z,w+I,w+I+H,H),F=Math.max(0,F+v),G=Math.max(0,G+w);else{F=\"start\"===d?x-R-q:\"end\"===d?x-Y+A+K:\"nearest\"===d?r(R,Y,D,q,A+K,x,x+b,b):x-(R+D/2)+K/2,G=\"start\"===u?I-L-j:\"center\"===u?I-(L+O/2)+J/2:\"end\"===u?I-X+z+J:r(L,X,O,j,z+J,I,I+H,H);var N=k.scrollLeft,P=k.scrollTop;x+=P-(F=Math.max(0,Math.min(P+F,k.scrollHeight-D+K))),I+=N-(G=Math.max(0,Math.min(N+G,k.scrollWidth-O+J)))}C.push({el:k,top:F,left:G})}return C}\n//# sourceMappingURL=index.module.js.map\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport PropTypes from 'prop-types';\nimport { cloneElement, Component, useRef, useEffect, useCallback, useLayoutEffect, useReducer, useMemo } from 'react';\nimport { isForwardRef } from 'react-is';\nimport computeScrollIntoView from 'compute-scroll-into-view';\nimport { __assign } from 'tslib';\n\nvar idCounter = 0;\n/**\n * Accepts a parameter and returns it if it's a function\n * or a noop function if it's not. This allows us to\n * accept a callback, but not worry about it if it's not\n * passed.\n * @param {Function} cb the callback\n * @return {Function} a function\n */\n\nfunction cbToCb(cb) {\n return typeof cb === 'function' ? cb : noop;\n}\n\nfunction noop() {}\n/**\n * Scroll node into view if necessary\n * @param {HTMLElement} node the element that should scroll into view\n * @param {HTMLElement} menuNode the menu element of the component\n */\n\n\nfunction scrollIntoView(node, menuNode) {\n if (!node) {\n return;\n }\n\n var actions = computeScrollIntoView(node, {\n boundary: menuNode,\n block: 'nearest',\n scrollMode: 'if-needed'\n });\n actions.forEach(function (_ref) {\n var el = _ref.el,\n top = _ref.top,\n left = _ref.left;\n el.scrollTop = top;\n el.scrollLeft = left;\n });\n}\n/**\n * @param {HTMLElement} parent the parent node\n * @param {HTMLElement} child the child node\n * @param {Window} environment The window context where downshift renders.\n * @return {Boolean} whether the parent is the child or the child is in the parent\n */\n\n\nfunction isOrContainsNode(parent, child, environment) {\n var result = parent === child || child instanceof environment.Node && parent.contains && parent.contains(child);\n return result;\n}\n/**\n * Simple debounce implementation. Will call the given\n * function once after the time given has passed since\n * it was last called.\n * @param {Function} fn the function to call after the time\n * @param {Number} time the time to wait\n * @return {Function} the debounced function\n */\n\n\nfunction debounce(fn, time) {\n var timeoutId;\n\n function cancel() {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n }\n\n function wrapper() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n cancel();\n timeoutId = setTimeout(function () {\n timeoutId = null;\n fn.apply(void 0, args);\n }, time);\n }\n\n wrapper.cancel = cancel;\n return wrapper;\n}\n/**\n * This is intended to be used to compose event handlers.\n * They are executed in order until one of them sets\n * `event.preventDownshiftDefault = true`.\n * @param {...Function} fns the event handler functions\n * @return {Function} the event handler to add to an element\n */\n\n\nfunction callAllEventHandlers() {\n for (var _len2 = arguments.length, fns = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n fns[_key2] = arguments[_key2];\n }\n\n return function (event) {\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n\n return fns.some(function (fn) {\n if (fn) {\n fn.apply(void 0, [event].concat(args));\n }\n\n return event.preventDownshiftDefault || event.hasOwnProperty('nativeEvent') && event.nativeEvent.preventDownshiftDefault;\n });\n };\n}\n\nfunction handleRefs() {\n for (var _len4 = arguments.length, refs = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n refs[_key4] = arguments[_key4];\n }\n\n return function (node) {\n refs.forEach(function (ref) {\n if (typeof ref === 'function') {\n ref(node);\n } else if (ref) {\n ref.current = node;\n }\n });\n };\n}\n/**\n * This generates a unique ID for an instance of Downshift\n * @return {String} the unique ID\n */\n\n\nfunction generateId() {\n return String(idCounter++);\n}\n/**\n * Resets idCounter to 0. Used for SSR.\n */\n\n\nfunction resetIdCounter() {\n idCounter = 0;\n}\n/**\n * Default implementation for status message. Only added when menu is open.\n * Will specify if there are results in the list, and if so, how many,\n * and what keys are relevant.\n *\n * @param {Object} param the downshift state and other relevant properties\n * @return {String} the a11y status message\n */\n\n\nfunction getA11yStatusMessage$1(_ref2) {\n var isOpen = _ref2.isOpen,\n resultCount = _ref2.resultCount,\n previousResultCount = _ref2.previousResultCount;\n\n if (!isOpen) {\n return '';\n }\n\n if (!resultCount) {\n return 'No results are available.';\n }\n\n if (resultCount !== previousResultCount) {\n return resultCount + \" result\" + (resultCount === 1 ? ' is' : 's are') + \" available, use up and down arrow keys to navigate. Press Enter key to select.\";\n }\n\n return '';\n}\n/**\n * Takes an argument and if it's an array, returns the first item in the array\n * otherwise returns the argument\n * @param {*} arg the maybe-array\n * @param {*} defaultValue the value if arg is falsey not defined\n * @return {*} the arg or it's first item\n */\n\n\nfunction unwrapArray(arg, defaultValue) {\n arg = Array.isArray(arg) ?\n /* istanbul ignore next (preact) */\n arg[0] : arg;\n\n if (!arg && defaultValue) {\n return defaultValue;\n } else {\n return arg;\n }\n}\n/**\n * @param {Object} element (P)react element\n * @return {Boolean} whether it's a DOM element\n */\n\n\nfunction isDOMElement(element) {\n\n\n return typeof element.type === 'string';\n}\n/**\n * @param {Object} element (P)react element\n * @return {Object} the props\n */\n\n\nfunction getElementProps(element) {\n\n return element.props;\n}\n/**\n * Throws a helpful error message for required properties. Useful\n * to be used as a default in destructuring or object params.\n * @param {String} fnName the function name\n * @param {String} propName the prop name\n */\n\n\nfunction requiredProp(fnName, propName) {\n // eslint-disable-next-line no-console\n console.error(\"The property \\\"\" + propName + \"\\\" is required in \\\"\" + fnName + \"\\\"\");\n}\n\nvar stateKeys = ['highlightedIndex', 'inputValue', 'isOpen', 'selectedItem', 'type'];\n/**\n * @param {Object} state the state object\n * @return {Object} state that is relevant to downshift\n */\n\nfunction pickState(state) {\n if (state === void 0) {\n state = {};\n }\n\n var result = {};\n stateKeys.forEach(function (k) {\n if (state.hasOwnProperty(k)) {\n result[k] = state[k];\n }\n });\n return result;\n}\n/**\n * This will perform a shallow merge of the given state object\n * with the state coming from props\n * (for the controlled component scenario)\n * This is used in state updater functions so they're referencing\n * the right state regardless of where it comes from.\n *\n * @param {Object} state The state of the component/hook.\n * @param {Object} props The props that may contain controlled values.\n * @returns {Object} The merged controlled state.\n */\n\n\nfunction getState(state, props) {\n return Object.keys(state).reduce(function (prevState, key) {\n prevState[key] = isControlledProp(props, key) ? props[key] : state[key];\n return prevState;\n }, {});\n}\n/**\n * This determines whether a prop is a \"controlled prop\" meaning it is\n * state which is controlled by the outside of this component rather\n * than within this component.\n *\n * @param {Object} props The props that may contain controlled values.\n * @param {String} key the key to check\n * @return {Boolean} whether it is a controlled controlled prop\n */\n\n\nfunction isControlledProp(props, key) {\n return props[key] !== undefined;\n}\n/**\n * Normalizes the 'key' property of a KeyboardEvent in IE/Edge\n * @param {Object} event a keyboardEvent object\n * @return {String} keyboard key\n */\n\n\nfunction normalizeArrowKey(event) {\n var key = event.key,\n keyCode = event.keyCode;\n /* istanbul ignore next (ie) */\n\n if (keyCode >= 37 && keyCode <= 40 && key.indexOf('Arrow') !== 0) {\n return \"Arrow\" + key;\n }\n\n return key;\n}\n/**\n * Simple check if the value passed is object literal\n * @param {*} obj any things\n * @return {Boolean} whether it's object literal\n */\n\n\nfunction isPlainObject(obj) {\n return Object.prototype.toString.call(obj) === '[object Object]';\n}\n/**\n * Returns the new index in the list, in a circular way. If next value is out of bonds from the total,\n * it will wrap to either 0 or itemCount - 1.\n *\n * @param {number} moveAmount Number of positions to move. Negative to move backwards, positive forwards.\n * @param {number} baseIndex The initial position to move from.\n * @param {number} itemCount The total number of items.\n * @param {Function} getItemNodeFromIndex Used to check if item is disabled.\n * @param {boolean} circular Specify if navigation is circular. Default is true.\n * @returns {number} The new index after the move.\n */\n\n\nfunction getNextWrappingIndex(moveAmount, baseIndex, itemCount, getItemNodeFromIndex, circular) {\n if (circular === void 0) {\n circular = true;\n }\n\n if (itemCount === 0) {\n return -1;\n }\n\n var itemsLastIndex = itemCount - 1;\n\n if (typeof baseIndex !== 'number' || baseIndex < 0 || baseIndex >= itemCount) {\n baseIndex = moveAmount > 0 ? -1 : itemsLastIndex + 1;\n }\n\n var newIndex = baseIndex + moveAmount;\n\n if (newIndex < 0) {\n newIndex = circular ? itemsLastIndex : 0;\n } else if (newIndex > itemsLastIndex) {\n newIndex = circular ? 0 : itemsLastIndex;\n }\n\n var nonDisabledNewIndex = getNextNonDisabledIndex(moveAmount, newIndex, itemCount, getItemNodeFromIndex, circular);\n\n if (nonDisabledNewIndex === -1) {\n return baseIndex >= itemCount ? -1 : baseIndex;\n }\n\n return nonDisabledNewIndex;\n}\n/**\n * Returns the next index in the list of an item that is not disabled.\n *\n * @param {number} moveAmount Number of positions to move. Negative to move backwards, positive forwards.\n * @param {number} baseIndex The initial position to move from.\n * @param {number} itemCount The total number of items.\n * @param {Function} getItemNodeFromIndex Used to check if item is disabled.\n * @param {boolean} circular Specify if navigation is circular. Default is true.\n * @returns {number} The new index. Returns baseIndex if item is not disabled. Returns next non-disabled item otherwise. If no non-disabled found it will return -1.\n */\n\n\nfunction getNextNonDisabledIndex(moveAmount, baseIndex, itemCount, getItemNodeFromIndex, circular) {\n var currentElementNode = getItemNodeFromIndex(baseIndex);\n\n if (!currentElementNode || !currentElementNode.hasAttribute('disabled')) {\n return baseIndex;\n }\n\n if (moveAmount > 0) {\n for (var index = baseIndex + 1; index < itemCount; index++) {\n if (!getItemNodeFromIndex(index).hasAttribute('disabled')) {\n return index;\n }\n }\n } else {\n for (var _index = baseIndex - 1; _index >= 0; _index--) {\n if (!getItemNodeFromIndex(_index).hasAttribute('disabled')) {\n return _index;\n }\n }\n }\n\n if (circular) {\n return moveAmount > 0 ? getNextNonDisabledIndex(1, 0, itemCount, getItemNodeFromIndex, false) : getNextNonDisabledIndex(-1, itemCount - 1, itemCount, getItemNodeFromIndex, false);\n }\n\n return -1;\n}\n/**\n * Checks if event target is within the downshift elements.\n *\n * @param {EventTarget} target Target to check.\n * @param {HTMLElement[]} downshiftElements The elements that form downshift (list, toggle button etc).\n * @param {Window} environment The window context where downshift renders.\n * @param {boolean} checkActiveElement Whether to also check activeElement.\n *\n * @returns {boolean} Whether or not the target is within downshift elements.\n */\n\n\nfunction targetWithinDownshift(target, downshiftElements, environment, checkActiveElement) {\n if (checkActiveElement === void 0) {\n checkActiveElement = true;\n }\n\n return downshiftElements.some(function (contextNode) {\n return contextNode && (isOrContainsNode(contextNode, target, environment) || checkActiveElement && isOrContainsNode(contextNode, environment.document.activeElement, environment));\n });\n} // eslint-disable-next-line import/no-mutable-exports\n\n\nvar validateControlledUnchanged = noop;\n/* istanbul ignore next */\n\nif (process.env.NODE_ENV !== 'production') {\n validateControlledUnchanged = function validateControlledUnchanged(state, prevProps, nextProps) {\n var warningDescription = \"This prop should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled Downshift element for the lifetime of the component. More info: https://github.com/downshift-js/downshift#control-props\";\n Object.keys(state).forEach(function (propKey) {\n if (prevProps[propKey] !== undefined && nextProps[propKey] === undefined) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: A component has changed the controlled prop \\\"\" + propKey + \"\\\" to be uncontrolled. \" + warningDescription);\n } else if (prevProps[propKey] === undefined && nextProps[propKey] !== undefined) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: A component has changed the uncontrolled prop \\\"\" + propKey + \"\\\" to be controlled. \" + warningDescription);\n }\n });\n };\n}\n\nvar cleanupStatus = debounce(function (documentProp) {\n getStatusDiv(documentProp).textContent = '';\n}, 500);\n/**\n * @param {String} status the status message\n * @param {Object} documentProp document passed by the user.\n */\n\nfunction setStatus(status, documentProp) {\n var div = getStatusDiv(documentProp);\n\n if (!status) {\n return;\n }\n\n div.textContent = status;\n cleanupStatus(documentProp);\n}\n/**\n * Get the status node or create it if it does not already exist.\n * @param {Object} documentProp document passed by the user.\n * @return {HTMLElement} the status node.\n */\n\n\nfunction getStatusDiv(documentProp) {\n if (documentProp === void 0) {\n documentProp = document;\n }\n\n var statusDiv = documentProp.getElementById('a11y-status-message');\n\n if (statusDiv) {\n return statusDiv;\n }\n\n statusDiv = documentProp.createElement('div');\n statusDiv.setAttribute('id', 'a11y-status-message');\n statusDiv.setAttribute('role', 'status');\n statusDiv.setAttribute('aria-live', 'polite');\n statusDiv.setAttribute('aria-relevant', 'additions text');\n Object.assign(statusDiv.style, {\n border: '0',\n clip: 'rect(0 0 0 0)',\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n padding: '0',\n position: 'absolute',\n width: '1px'\n });\n documentProp.body.appendChild(statusDiv);\n return statusDiv;\n}\n\nvar unknown = process.env.NODE_ENV !== \"production\" ? '__autocomplete_unknown__' : 0;\nvar mouseUp = process.env.NODE_ENV !== \"production\" ? '__autocomplete_mouseup__' : 1;\nvar itemMouseEnter = process.env.NODE_ENV !== \"production\" ? '__autocomplete_item_mouseenter__' : 2;\nvar keyDownArrowUp = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_arrow_up__' : 3;\nvar keyDownArrowDown = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_arrow_down__' : 4;\nvar keyDownEscape = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_escape__' : 5;\nvar keyDownEnter = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_enter__' : 6;\nvar keyDownHome = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_home__' : 7;\nvar keyDownEnd = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_end__' : 8;\nvar clickItem = process.env.NODE_ENV !== \"production\" ? '__autocomplete_click_item__' : 9;\nvar blurInput = process.env.NODE_ENV !== \"production\" ? '__autocomplete_blur_input__' : 10;\nvar changeInput = process.env.NODE_ENV !== \"production\" ? '__autocomplete_change_input__' : 11;\nvar keyDownSpaceButton = process.env.NODE_ENV !== \"production\" ? '__autocomplete_keydown_space_button__' : 12;\nvar clickButton = process.env.NODE_ENV !== \"production\" ? '__autocomplete_click_button__' : 13;\nvar blurButton = process.env.NODE_ENV !== \"production\" ? '__autocomplete_blur_button__' : 14;\nvar controlledPropUpdatedSelectedItem = process.env.NODE_ENV !== \"production\" ? '__autocomplete_controlled_prop_updated_selected_item__' : 15;\nvar touchEnd = process.env.NODE_ENV !== \"production\" ? '__autocomplete_touchend__' : 16;\n\nvar stateChangeTypes$3 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n unknown: unknown,\n mouseUp: mouseUp,\n itemMouseEnter: itemMouseEnter,\n keyDownArrowUp: keyDownArrowUp,\n keyDownArrowDown: keyDownArrowDown,\n keyDownEscape: keyDownEscape,\n keyDownEnter: keyDownEnter,\n keyDownHome: keyDownHome,\n keyDownEnd: keyDownEnd,\n clickItem: clickItem,\n blurInput: blurInput,\n changeInput: changeInput,\n keyDownSpaceButton: keyDownSpaceButton,\n clickButton: clickButton,\n blurButton: blurButton,\n controlledPropUpdatedSelectedItem: controlledPropUpdatedSelectedItem,\n touchEnd: touchEnd\n});\n\nvar _excluded$4 = [\"refKey\", \"ref\"],\n _excluded2$3 = [\"onClick\", \"onPress\", \"onKeyDown\", \"onKeyUp\", \"onBlur\"],\n _excluded3$2 = [\"onKeyDown\", \"onBlur\", \"onChange\", \"onInput\", \"onChangeText\"],\n _excluded4$1 = [\"refKey\", \"ref\"],\n _excluded5$1 = [\"onMouseMove\", \"onMouseDown\", \"onClick\", \"onPress\", \"index\", \"item\"];\n\nvar Downshift = /*#__PURE__*/function () {\n var Downshift = /*#__PURE__*/function (_Component) {\n _inheritsLoose(Downshift, _Component);\n\n function Downshift(_props) {\n var _this;\n\n _this = _Component.call(this, _props) || this; // fancy destructuring + defaults + aliases\n // this basically says each value of state should either be set to\n // the initial value or the default value if the initial value is not provided\n\n _this.id = _this.props.id || \"downshift-\" + generateId();\n _this.menuId = _this.props.menuId || _this.id + \"-menu\";\n _this.labelId = _this.props.labelId || _this.id + \"-label\";\n _this.inputId = _this.props.inputId || _this.id + \"-input\";\n\n _this.getItemId = _this.props.getItemId || function (index) {\n return _this.id + \"-item-\" + index;\n };\n\n _this.input = null;\n _this.items = [];\n _this.itemCount = null;\n _this.previousResultCount = 0;\n _this.timeoutIds = [];\n\n _this.internalSetTimeout = function (fn, time) {\n var id = setTimeout(function () {\n _this.timeoutIds = _this.timeoutIds.filter(function (i) {\n return i !== id;\n });\n fn();\n }, time);\n\n _this.timeoutIds.push(id);\n };\n\n _this.setItemCount = function (count) {\n _this.itemCount = count;\n };\n\n _this.unsetItemCount = function () {\n _this.itemCount = null;\n };\n\n _this.setHighlightedIndex = function (highlightedIndex, otherStateToSet) {\n if (highlightedIndex === void 0) {\n highlightedIndex = _this.props.defaultHighlightedIndex;\n }\n\n if (otherStateToSet === void 0) {\n otherStateToSet = {};\n }\n\n otherStateToSet = pickState(otherStateToSet);\n\n _this.internalSetState(_extends({\n highlightedIndex: highlightedIndex\n }, otherStateToSet));\n };\n\n _this.clearSelection = function (cb) {\n _this.internalSetState({\n selectedItem: null,\n inputValue: '',\n highlightedIndex: _this.props.defaultHighlightedIndex,\n isOpen: _this.props.defaultIsOpen\n }, cb);\n };\n\n _this.selectItem = function (item, otherStateToSet, cb) {\n otherStateToSet = pickState(otherStateToSet);\n\n _this.internalSetState(_extends({\n isOpen: _this.props.defaultIsOpen,\n highlightedIndex: _this.props.defaultHighlightedIndex,\n selectedItem: item,\n inputValue: _this.props.itemToString(item)\n }, otherStateToSet), cb);\n };\n\n _this.selectItemAtIndex = function (itemIndex, otherStateToSet, cb) {\n var item = _this.items[itemIndex];\n\n if (item == null) {\n return;\n }\n\n _this.selectItem(item, otherStateToSet, cb);\n };\n\n _this.selectHighlightedItem = function (otherStateToSet, cb) {\n return _this.selectItemAtIndex(_this.getState().highlightedIndex, otherStateToSet, cb);\n };\n\n _this.internalSetState = function (stateToSet, cb) {\n var isItemSelected, onChangeArg;\n var onStateChangeArg = {};\n var isStateToSetFunction = typeof stateToSet === 'function'; // we want to call `onInputValueChange` before the `setState` call\n // so someone controlling the `inputValue` state gets notified of\n // the input change as soon as possible. This avoids issues with\n // preserving the cursor position.\n // See https://github.com/downshift-js/downshift/issues/217 for more info.\n\n if (!isStateToSetFunction && stateToSet.hasOwnProperty('inputValue')) {\n _this.props.onInputValueChange(stateToSet.inputValue, _extends({}, _this.getStateAndHelpers(), stateToSet));\n }\n\n return _this.setState(function (state) {\n state = _this.getState(state);\n var newStateToSet = isStateToSetFunction ? stateToSet(state) : stateToSet; // Your own function that could modify the state that will be set.\n\n newStateToSet = _this.props.stateReducer(state, newStateToSet); // checks if an item is selected, regardless of if it's different from\n // what was selected before\n // used to determine if onSelect and onChange callbacks should be called\n\n isItemSelected = newStateToSet.hasOwnProperty('selectedItem'); // this keeps track of the object we want to call with setState\n\n var nextState = {}; // this is just used to tell whether the state changed\n\n var nextFullState = {}; // we need to call on change if the outside world is controlling any of our state\n // and we're trying to update that state. OR if the selection has changed and we're\n // trying to update the selection\n\n if (isItemSelected && newStateToSet.selectedItem !== state.selectedItem) {\n onChangeArg = newStateToSet.selectedItem;\n }\n\n newStateToSet.type = newStateToSet.type || unknown;\n Object.keys(newStateToSet).forEach(function (key) {\n // onStateChangeArg should only have the state that is\n // actually changing\n if (state[key] !== newStateToSet[key]) {\n onStateChangeArg[key] = newStateToSet[key];\n } // the type is useful for the onStateChangeArg\n // but we don't actually want to set it in internal state.\n // this is an undocumented feature for now... Not all internalSetState\n // calls support it and I'm not certain we want them to yet.\n // But it enables users controlling the isOpen state to know when\n // the isOpen state changes due to mouseup events which is quite handy.\n\n\n if (key === 'type') {\n return;\n }\n\n nextFullState[key] = newStateToSet[key]; // if it's coming from props, then we don't care to set it internally\n\n if (!isControlledProp(_this.props, key)) {\n nextState[key] = newStateToSet[key];\n }\n }); // if stateToSet is a function, then we weren't able to call onInputValueChange\n // earlier, so we'll call it now that we know what the inputValue state will be.\n\n if (isStateToSetFunction && newStateToSet.hasOwnProperty('inputValue')) {\n _this.props.onInputValueChange(newStateToSet.inputValue, _extends({}, _this.getStateAndHelpers(), newStateToSet));\n }\n\n return nextState;\n }, function () {\n // call the provided callback if it's a function\n cbToCb(cb)(); // only call the onStateChange and onChange callbacks if\n // we have relevant information to pass them.\n\n var hasMoreStateThanType = Object.keys(onStateChangeArg).length > 1;\n\n if (hasMoreStateThanType) {\n _this.props.onStateChange(onStateChangeArg, _this.getStateAndHelpers());\n }\n\n if (isItemSelected) {\n _this.props.onSelect(stateToSet.selectedItem, _this.getStateAndHelpers());\n }\n\n if (onChangeArg !== undefined) {\n _this.props.onChange(onChangeArg, _this.getStateAndHelpers());\n } // this is currently undocumented and therefore subject to change\n // We'll try to not break it, but just be warned.\n\n\n _this.props.onUserAction(onStateChangeArg, _this.getStateAndHelpers());\n });\n };\n\n _this.rootRef = function (node) {\n return _this._rootNode = node;\n };\n\n _this.getRootProps = function (_temp, _temp2) {\n var _extends2;\n\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$refKey = _ref.refKey,\n refKey = _ref$refKey === void 0 ? 'ref' : _ref$refKey,\n ref = _ref.ref,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$4);\n\n var _ref2 = _temp2 === void 0 ? {} : _temp2,\n _ref2$suppressRefErro = _ref2.suppressRefError,\n suppressRefError = _ref2$suppressRefErro === void 0 ? false : _ref2$suppressRefErro;\n\n // this is used in the render to know whether the user has called getRootProps.\n // It uses that to know whether to apply the props automatically\n _this.getRootProps.called = true;\n _this.getRootProps.refKey = refKey;\n _this.getRootProps.suppressRefError = suppressRefError;\n\n var _this$getState = _this.getState(),\n isOpen = _this$getState.isOpen;\n\n return _extends((_extends2 = {}, _extends2[refKey] = handleRefs(ref, _this.rootRef), _extends2.role = 'combobox', _extends2['aria-expanded'] = isOpen, _extends2['aria-haspopup'] = 'listbox', _extends2['aria-owns'] = isOpen ? _this.menuId : null, _extends2['aria-labelledby'] = _this.labelId, _extends2), rest);\n };\n\n _this.keyDownHandlers = {\n ArrowDown: function ArrowDown(event) {\n var _this2 = this;\n\n event.preventDefault();\n\n if (this.getState().isOpen) {\n var amount = event.shiftKey ? 5 : 1;\n this.moveHighlightedIndex(amount, {\n type: keyDownArrowDown\n });\n } else {\n this.internalSetState({\n isOpen: true,\n type: keyDownArrowDown\n }, function () {\n var itemCount = _this2.getItemCount();\n\n if (itemCount > 0) {\n var _this2$getState = _this2.getState(),\n highlightedIndex = _this2$getState.highlightedIndex;\n\n var nextHighlightedIndex = getNextWrappingIndex(1, highlightedIndex, itemCount, function (index) {\n return _this2.getItemNodeFromIndex(index);\n });\n\n _this2.setHighlightedIndex(nextHighlightedIndex, {\n type: keyDownArrowDown\n });\n }\n });\n }\n },\n ArrowUp: function ArrowUp(event) {\n var _this3 = this;\n\n event.preventDefault();\n\n if (this.getState().isOpen) {\n var amount = event.shiftKey ? -5 : -1;\n this.moveHighlightedIndex(amount, {\n type: keyDownArrowUp\n });\n } else {\n this.internalSetState({\n isOpen: true,\n type: keyDownArrowUp\n }, function () {\n var itemCount = _this3.getItemCount();\n\n if (itemCount > 0) {\n var _this3$getState = _this3.getState(),\n highlightedIndex = _this3$getState.highlightedIndex;\n\n var nextHighlightedIndex = getNextWrappingIndex(-1, highlightedIndex, itemCount, function (index) {\n return _this3.getItemNodeFromIndex(index);\n });\n\n _this3.setHighlightedIndex(nextHighlightedIndex, {\n type: keyDownArrowUp\n });\n }\n });\n }\n },\n Enter: function Enter(event) {\n if (event.which === 229) {\n return;\n }\n\n var _this$getState2 = this.getState(),\n isOpen = _this$getState2.isOpen,\n highlightedIndex = _this$getState2.highlightedIndex;\n\n if (isOpen && highlightedIndex != null) {\n event.preventDefault();\n var item = this.items[highlightedIndex];\n var itemNode = this.getItemNodeFromIndex(highlightedIndex);\n\n if (item == null || itemNode && itemNode.hasAttribute('disabled')) {\n return;\n }\n\n this.selectHighlightedItem({\n type: keyDownEnter\n });\n }\n },\n Escape: function Escape(event) {\n event.preventDefault();\n this.reset(_extends({\n type: keyDownEscape\n }, !this.state.isOpen && {\n selectedItem: null,\n inputValue: ''\n }));\n }\n };\n _this.buttonKeyDownHandlers = _extends({}, _this.keyDownHandlers, {\n ' ': function _(event) {\n event.preventDefault();\n this.toggleMenu({\n type: keyDownSpaceButton\n });\n }\n });\n _this.inputKeyDownHandlers = _extends({}, _this.keyDownHandlers, {\n Home: function Home(event) {\n var _this4 = this;\n\n var _this$getState3 = this.getState(),\n isOpen = _this$getState3.isOpen;\n\n if (!isOpen) {\n return;\n }\n\n event.preventDefault();\n var itemCount = this.getItemCount();\n\n if (itemCount <= 0 || !isOpen) {\n return;\n } // get next non-disabled starting downwards from 0 if that's disabled.\n\n\n var newHighlightedIndex = getNextNonDisabledIndex(1, 0, itemCount, function (index) {\n return _this4.getItemNodeFromIndex(index);\n }, false);\n this.setHighlightedIndex(newHighlightedIndex, {\n type: keyDownHome\n });\n },\n End: function End(event) {\n var _this5 = this;\n\n var _this$getState4 = this.getState(),\n isOpen = _this$getState4.isOpen;\n\n if (!isOpen) {\n return;\n }\n\n event.preventDefault();\n var itemCount = this.getItemCount();\n\n if (itemCount <= 0 || !isOpen) {\n return;\n } // get next non-disabled starting upwards from last index if that's disabled.\n\n\n var newHighlightedIndex = getNextNonDisabledIndex(-1, itemCount - 1, itemCount, function (index) {\n return _this5.getItemNodeFromIndex(index);\n }, false);\n this.setHighlightedIndex(newHighlightedIndex, {\n type: keyDownEnd\n });\n }\n });\n\n _this.getToggleButtonProps = function (_temp3) {\n var _ref3 = _temp3 === void 0 ? {} : _temp3,\n onClick = _ref3.onClick;\n _ref3.onPress;\n var onKeyDown = _ref3.onKeyDown,\n onKeyUp = _ref3.onKeyUp,\n onBlur = _ref3.onBlur,\n rest = _objectWithoutPropertiesLoose(_ref3, _excluded2$3);\n\n var _this$getState5 = _this.getState(),\n isOpen = _this$getState5.isOpen;\n\n var enabledEventHandlers = {\n onClick: callAllEventHandlers(onClick, _this.buttonHandleClick),\n onKeyDown: callAllEventHandlers(onKeyDown, _this.buttonHandleKeyDown),\n onKeyUp: callAllEventHandlers(onKeyUp, _this.buttonHandleKeyUp),\n onBlur: callAllEventHandlers(onBlur, _this.buttonHandleBlur)\n };\n var eventHandlers = rest.disabled ? {} : enabledEventHandlers;\n return _extends({\n type: 'button',\n role: 'button',\n 'aria-label': isOpen ? 'close menu' : 'open menu',\n 'aria-haspopup': true,\n 'data-toggle': true\n }, eventHandlers, rest);\n };\n\n _this.buttonHandleKeyUp = function (event) {\n // Prevent click event from emitting in Firefox\n event.preventDefault();\n };\n\n _this.buttonHandleKeyDown = function (event) {\n var key = normalizeArrowKey(event);\n\n if (_this.buttonKeyDownHandlers[key]) {\n _this.buttonKeyDownHandlers[key].call(_assertThisInitialized(_this), event);\n }\n };\n\n _this.buttonHandleClick = function (event) {\n event.preventDefault(); // handle odd case for Safari and Firefox which\n // don't give the button the focus properly.\n\n /* istanbul ignore if (can't reasonably test this) */\n\n if (_this.props.environment.document.activeElement === _this.props.environment.document.body) {\n event.target.focus();\n } // to simplify testing components that use downshift, we'll not wrap this in a setTimeout\n // if the NODE_ENV is test. With the proper build system, this should be dead code eliminated\n // when building for production and should therefore have no impact on production code.\n\n\n if (process.env.NODE_ENV === 'test') {\n _this.toggleMenu({\n type: clickButton\n });\n } else {\n // Ensure that toggle of menu occurs after the potential blur event in iOS\n _this.internalSetTimeout(function () {\n return _this.toggleMenu({\n type: clickButton\n });\n });\n }\n };\n\n _this.buttonHandleBlur = function (event) {\n var blurTarget = event.target; // Save blur target for comparison with activeElement later\n // Need setTimeout, so that when the user presses Tab, the activeElement is the next focused element, not body element\n\n _this.internalSetTimeout(function () {\n if (!_this.isMouseDown && (_this.props.environment.document.activeElement == null || _this.props.environment.document.activeElement.id !== _this.inputId) && _this.props.environment.document.activeElement !== blurTarget // Do nothing if we refocus the same element again (to solve issue in Safari on iOS)\n ) {\n _this.reset({\n type: blurButton\n });\n }\n });\n };\n\n _this.getLabelProps = function (props) {\n return _extends({\n htmlFor: _this.inputId,\n id: _this.labelId\n }, props);\n };\n\n _this.getInputProps = function (_temp4) {\n var _ref4 = _temp4 === void 0 ? {} : _temp4,\n onKeyDown = _ref4.onKeyDown,\n onBlur = _ref4.onBlur,\n onChange = _ref4.onChange,\n onInput = _ref4.onInput;\n _ref4.onChangeText;\n var rest = _objectWithoutPropertiesLoose(_ref4, _excluded3$2);\n\n var onChangeKey;\n var eventHandlers = {};\n /* istanbul ignore next (preact) */\n\n {\n onChangeKey = 'onChange';\n }\n\n var _this$getState6 = _this.getState(),\n inputValue = _this$getState6.inputValue,\n isOpen = _this$getState6.isOpen,\n highlightedIndex = _this$getState6.highlightedIndex;\n\n if (!rest.disabled) {\n var _eventHandlers;\n\n eventHandlers = (_eventHandlers = {}, _eventHandlers[onChangeKey] = callAllEventHandlers(onChange, onInput, _this.inputHandleChange), _eventHandlers.onKeyDown = callAllEventHandlers(onKeyDown, _this.inputHandleKeyDown), _eventHandlers.onBlur = callAllEventHandlers(onBlur, _this.inputHandleBlur), _eventHandlers);\n }\n\n return _extends({\n 'aria-autocomplete': 'list',\n 'aria-activedescendant': isOpen && typeof highlightedIndex === 'number' && highlightedIndex >= 0 ? _this.getItemId(highlightedIndex) : null,\n 'aria-controls': isOpen ? _this.menuId : null,\n 'aria-labelledby': _this.labelId,\n // https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion\n // revert back since autocomplete=\"nope\" is ignored on latest Chrome and Opera\n autoComplete: 'off',\n value: inputValue,\n id: _this.inputId\n }, eventHandlers, rest);\n };\n\n _this.inputHandleKeyDown = function (event) {\n var key = normalizeArrowKey(event);\n\n if (key && _this.inputKeyDownHandlers[key]) {\n _this.inputKeyDownHandlers[key].call(_assertThisInitialized(_this), event);\n }\n };\n\n _this.inputHandleChange = function (event) {\n _this.internalSetState({\n type: changeInput,\n isOpen: true,\n inputValue: event.target.value,\n highlightedIndex: _this.props.defaultHighlightedIndex\n });\n };\n\n _this.inputHandleBlur = function () {\n // Need setTimeout, so that when the user presses Tab, the activeElement is the next focused element, not the body element\n _this.internalSetTimeout(function () {\n var downshiftButtonIsActive = _this.props.environment.document && !!_this.props.environment.document.activeElement && !!_this.props.environment.document.activeElement.dataset && _this.props.environment.document.activeElement.dataset.toggle && _this._rootNode && _this._rootNode.contains(_this.props.environment.document.activeElement);\n\n if (!_this.isMouseDown && !downshiftButtonIsActive) {\n _this.reset({\n type: blurInput\n });\n }\n });\n };\n\n _this.menuRef = function (node) {\n _this._menuNode = node;\n };\n\n _this.getMenuProps = function (_temp5, _temp6) {\n var _extends3;\n\n var _ref5 = _temp5 === void 0 ? {} : _temp5,\n _ref5$refKey = _ref5.refKey,\n refKey = _ref5$refKey === void 0 ? 'ref' : _ref5$refKey,\n ref = _ref5.ref,\n props = _objectWithoutPropertiesLoose(_ref5, _excluded4$1);\n\n var _ref6 = _temp6 === void 0 ? {} : _temp6,\n _ref6$suppressRefErro = _ref6.suppressRefError,\n suppressRefError = _ref6$suppressRefErro === void 0 ? false : _ref6$suppressRefErro;\n\n _this.getMenuProps.called = true;\n _this.getMenuProps.refKey = refKey;\n _this.getMenuProps.suppressRefError = suppressRefError;\n return _extends((_extends3 = {}, _extends3[refKey] = handleRefs(ref, _this.menuRef), _extends3.role = 'listbox', _extends3['aria-labelledby'] = props && props['aria-label'] ? null : _this.labelId, _extends3.id = _this.menuId, _extends3), props);\n };\n\n _this.getItemProps = function (_temp7) {\n var _enabledEventHandlers;\n\n var _ref7 = _temp7 === void 0 ? {} : _temp7,\n onMouseMove = _ref7.onMouseMove,\n onMouseDown = _ref7.onMouseDown,\n onClick = _ref7.onClick;\n _ref7.onPress;\n var index = _ref7.index,\n _ref7$item = _ref7.item,\n item = _ref7$item === void 0 ? process.env.NODE_ENV === 'production' ?\n /* istanbul ignore next */\n undefined : requiredProp('getItemProps', 'item') : _ref7$item,\n rest = _objectWithoutPropertiesLoose(_ref7, _excluded5$1);\n\n if (index === undefined) {\n _this.items.push(item);\n\n index = _this.items.indexOf(item);\n } else {\n _this.items[index] = item;\n }\n\n var onSelectKey = 'onClick';\n var customClickHandler = onClick;\n var enabledEventHandlers = (_enabledEventHandlers = {\n // onMouseMove is used over onMouseEnter here. onMouseMove\n // is only triggered on actual mouse movement while onMouseEnter\n // can fire on DOM changes, interrupting keyboard navigation\n onMouseMove: callAllEventHandlers(onMouseMove, function () {\n if (index === _this.getState().highlightedIndex) {\n return;\n }\n\n _this.setHighlightedIndex(index, {\n type: itemMouseEnter\n }); // We never want to manually scroll when changing state based\n // on `onMouseMove` because we will be moving the element out\n // from under the user which is currently scrolling/moving the\n // cursor\n\n\n _this.avoidScrolling = true;\n\n _this.internalSetTimeout(function () {\n return _this.avoidScrolling = false;\n }, 250);\n }),\n onMouseDown: callAllEventHandlers(onMouseDown, function (event) {\n // This prevents the activeElement from being changed\n // to the item so it can remain with the current activeElement\n // which is a more common use case.\n event.preventDefault();\n })\n }, _enabledEventHandlers[onSelectKey] = callAllEventHandlers(customClickHandler, function () {\n _this.selectItemAtIndex(index, {\n type: clickItem\n });\n }), _enabledEventHandlers); // Passing down the onMouseDown handler to prevent redirect\n // of the activeElement if clicking on disabled items\n\n var eventHandlers = rest.disabled ? {\n onMouseDown: enabledEventHandlers.onMouseDown\n } : enabledEventHandlers;\n return _extends({\n id: _this.getItemId(index),\n role: 'option',\n 'aria-selected': _this.getState().highlightedIndex === index\n }, eventHandlers, rest);\n };\n\n _this.clearItems = function () {\n _this.items = [];\n };\n\n _this.reset = function (otherStateToSet, cb) {\n if (otherStateToSet === void 0) {\n otherStateToSet = {};\n }\n\n otherStateToSet = pickState(otherStateToSet);\n\n _this.internalSetState(function (_ref8) {\n var selectedItem = _ref8.selectedItem;\n return _extends({\n isOpen: _this.props.defaultIsOpen,\n highlightedIndex: _this.props.defaultHighlightedIndex,\n inputValue: _this.props.itemToString(selectedItem)\n }, otherStateToSet);\n }, cb);\n };\n\n _this.toggleMenu = function (otherStateToSet, cb) {\n if (otherStateToSet === void 0) {\n otherStateToSet = {};\n }\n\n otherStateToSet = pickState(otherStateToSet);\n\n _this.internalSetState(function (_ref9) {\n var isOpen = _ref9.isOpen;\n return _extends({\n isOpen: !isOpen\n }, isOpen && {\n highlightedIndex: _this.props.defaultHighlightedIndex\n }, otherStateToSet);\n }, function () {\n var _this$getState7 = _this.getState(),\n isOpen = _this$getState7.isOpen,\n highlightedIndex = _this$getState7.highlightedIndex;\n\n if (isOpen) {\n if (_this.getItemCount() > 0 && typeof highlightedIndex === 'number') {\n _this.setHighlightedIndex(highlightedIndex, otherStateToSet);\n }\n }\n\n cbToCb(cb)();\n });\n };\n\n _this.openMenu = function (cb) {\n _this.internalSetState({\n isOpen: true\n }, cb);\n };\n\n _this.closeMenu = function (cb) {\n _this.internalSetState({\n isOpen: false\n }, cb);\n };\n\n _this.updateStatus = debounce(function () {\n var state = _this.getState();\n\n var item = _this.items[state.highlightedIndex];\n\n var resultCount = _this.getItemCount();\n\n var status = _this.props.getA11yStatusMessage(_extends({\n itemToString: _this.props.itemToString,\n previousResultCount: _this.previousResultCount,\n resultCount: resultCount,\n highlightedItem: item\n }, state));\n\n _this.previousResultCount = resultCount;\n setStatus(status, _this.props.environment.document);\n }, 200);\n\n var _this$props = _this.props,\n defaultHighlightedIndex = _this$props.defaultHighlightedIndex,\n _this$props$initialHi = _this$props.initialHighlightedIndex,\n _highlightedIndex = _this$props$initialHi === void 0 ? defaultHighlightedIndex : _this$props$initialHi,\n defaultIsOpen = _this$props.defaultIsOpen,\n _this$props$initialIs = _this$props.initialIsOpen,\n _isOpen = _this$props$initialIs === void 0 ? defaultIsOpen : _this$props$initialIs,\n _this$props$initialIn = _this$props.initialInputValue,\n _inputValue = _this$props$initialIn === void 0 ? '' : _this$props$initialIn,\n _this$props$initialSe = _this$props.initialSelectedItem,\n _selectedItem = _this$props$initialSe === void 0 ? null : _this$props$initialSe;\n\n var _state = _this.getState({\n highlightedIndex: _highlightedIndex,\n isOpen: _isOpen,\n inputValue: _inputValue,\n selectedItem: _selectedItem\n });\n\n if (_state.selectedItem != null && _this.props.initialInputValue === undefined) {\n _state.inputValue = _this.props.itemToString(_state.selectedItem);\n }\n\n _this.state = _state;\n return _this;\n }\n\n var _proto = Downshift.prototype;\n\n /**\n * Clear all running timeouts\n */\n _proto.internalClearTimeouts = function internalClearTimeouts() {\n this.timeoutIds.forEach(function (id) {\n clearTimeout(id);\n });\n this.timeoutIds = [];\n }\n /**\n * Gets the state based on internal state or props\n * If a state value is passed via props, then that\n * is the value given, otherwise it's retrieved from\n * stateToMerge\n *\n * @param {Object} stateToMerge defaults to this.state\n * @return {Object} the state\n */\n ;\n\n _proto.getState = function getState$1(stateToMerge) {\n if (stateToMerge === void 0) {\n stateToMerge = this.state;\n }\n\n return getState(stateToMerge, this.props);\n };\n\n _proto.getItemCount = function getItemCount() {\n // things read better this way. They're in priority order:\n // 1. `this.itemCount`\n // 2. `this.props.itemCount`\n // 3. `this.items.length`\n var itemCount = this.items.length;\n\n if (this.itemCount != null) {\n itemCount = this.itemCount;\n } else if (this.props.itemCount !== undefined) {\n itemCount = this.props.itemCount;\n }\n\n return itemCount;\n };\n\n _proto.getItemNodeFromIndex = function getItemNodeFromIndex(index) {\n return this.props.environment.document.getElementById(this.getItemId(index));\n };\n\n _proto.scrollHighlightedItemIntoView = function scrollHighlightedItemIntoView() {\n /* istanbul ignore else (react-native) */\n {\n var node = this.getItemNodeFromIndex(this.getState().highlightedIndex);\n this.props.scrollIntoView(node, this._menuNode);\n }\n };\n\n _proto.moveHighlightedIndex = function moveHighlightedIndex(amount, otherStateToSet) {\n var _this6 = this;\n\n var itemCount = this.getItemCount();\n\n var _this$getState8 = this.getState(),\n highlightedIndex = _this$getState8.highlightedIndex;\n\n if (itemCount > 0) {\n var nextHighlightedIndex = getNextWrappingIndex(amount, highlightedIndex, itemCount, function (index) {\n return _this6.getItemNodeFromIndex(index);\n });\n this.setHighlightedIndex(nextHighlightedIndex, otherStateToSet);\n }\n };\n\n _proto.getStateAndHelpers = function getStateAndHelpers() {\n var _this$getState9 = this.getState(),\n highlightedIndex = _this$getState9.highlightedIndex,\n inputValue = _this$getState9.inputValue,\n selectedItem = _this$getState9.selectedItem,\n isOpen = _this$getState9.isOpen;\n\n var itemToString = this.props.itemToString;\n var id = this.id;\n var getRootProps = this.getRootProps,\n getToggleButtonProps = this.getToggleButtonProps,\n getLabelProps = this.getLabelProps,\n getMenuProps = this.getMenuProps,\n getInputProps = this.getInputProps,\n getItemProps = this.getItemProps,\n openMenu = this.openMenu,\n closeMenu = this.closeMenu,\n toggleMenu = this.toggleMenu,\n selectItem = this.selectItem,\n selectItemAtIndex = this.selectItemAtIndex,\n selectHighlightedItem = this.selectHighlightedItem,\n setHighlightedIndex = this.setHighlightedIndex,\n clearSelection = this.clearSelection,\n clearItems = this.clearItems,\n reset = this.reset,\n setItemCount = this.setItemCount,\n unsetItemCount = this.unsetItemCount,\n setState = this.internalSetState;\n return {\n // prop getters\n getRootProps: getRootProps,\n getToggleButtonProps: getToggleButtonProps,\n getLabelProps: getLabelProps,\n getMenuProps: getMenuProps,\n getInputProps: getInputProps,\n getItemProps: getItemProps,\n // actions\n reset: reset,\n openMenu: openMenu,\n closeMenu: closeMenu,\n toggleMenu: toggleMenu,\n selectItem: selectItem,\n selectItemAtIndex: selectItemAtIndex,\n selectHighlightedItem: selectHighlightedItem,\n setHighlightedIndex: setHighlightedIndex,\n clearSelection: clearSelection,\n clearItems: clearItems,\n setItemCount: setItemCount,\n unsetItemCount: unsetItemCount,\n setState: setState,\n // props\n itemToString: itemToString,\n // derived\n id: id,\n // state\n highlightedIndex: highlightedIndex,\n inputValue: inputValue,\n isOpen: isOpen,\n selectedItem: selectedItem\n };\n } //////////////////////////// ROOT\n ;\n\n _proto.componentDidMount = function componentDidMount() {\n var _this7 = this;\n\n /* istanbul ignore if (react-native) */\n if (process.env.NODE_ENV !== 'production' && !false && this.getMenuProps.called && !this.getMenuProps.suppressRefError) {\n validateGetMenuPropsCalledCorrectly(this._menuNode, this.getMenuProps);\n }\n /* istanbul ignore if (react-native) */\n\n\n {\n // this.isMouseDown helps us track whether the mouse is currently held down.\n // This is useful when the user clicks on an item in the list, but holds the mouse\n // down long enough for the list to disappear (because the blur event fires on the input)\n // this.isMouseDown is used in the blur handler on the input to determine whether the blur event should\n // trigger hiding the menu.\n var onMouseDown = function onMouseDown() {\n _this7.isMouseDown = true;\n };\n\n var onMouseUp = function onMouseUp(event) {\n _this7.isMouseDown = false; // if the target element or the activeElement is within a downshift node\n // then we don't want to reset downshift\n\n var contextWithinDownshift = targetWithinDownshift(event.target, [_this7._rootNode, _this7._menuNode], _this7.props.environment);\n\n if (!contextWithinDownshift && _this7.getState().isOpen) {\n _this7.reset({\n type: mouseUp\n }, function () {\n return _this7.props.onOuterClick(_this7.getStateAndHelpers());\n });\n }\n }; // Touching an element in iOS gives focus and hover states, but touching out of\n // the element will remove hover, and persist the focus state, resulting in the\n // blur event not being triggered.\n // this.isTouchMove helps us track whether the user is tapping or swiping on a touch screen.\n // If the user taps outside of Downshift, the component should be reset,\n // but not if the user is swiping\n\n\n var onTouchStart = function onTouchStart() {\n _this7.isTouchMove = false;\n };\n\n var onTouchMove = function onTouchMove() {\n _this7.isTouchMove = true;\n };\n\n var onTouchEnd = function onTouchEnd(event) {\n var contextWithinDownshift = targetWithinDownshift(event.target, [_this7._rootNode, _this7._menuNode], _this7.props.environment, false);\n\n if (!_this7.isTouchMove && !contextWithinDownshift && _this7.getState().isOpen) {\n _this7.reset({\n type: touchEnd\n }, function () {\n return _this7.props.onOuterClick(_this7.getStateAndHelpers());\n });\n }\n };\n\n var environment = this.props.environment;\n environment.addEventListener('mousedown', onMouseDown);\n environment.addEventListener('mouseup', onMouseUp);\n environment.addEventListener('touchstart', onTouchStart);\n environment.addEventListener('touchmove', onTouchMove);\n environment.addEventListener('touchend', onTouchEnd);\n\n this.cleanup = function () {\n _this7.internalClearTimeouts();\n\n _this7.updateStatus.cancel();\n\n environment.removeEventListener('mousedown', onMouseDown);\n environment.removeEventListener('mouseup', onMouseUp);\n environment.removeEventListener('touchstart', onTouchStart);\n environment.removeEventListener('touchmove', onTouchMove);\n environment.removeEventListener('touchend', onTouchEnd);\n };\n }\n };\n\n _proto.shouldScroll = function shouldScroll(prevState, prevProps) {\n var _ref10 = this.props.highlightedIndex === undefined ? this.getState() : this.props,\n currentHighlightedIndex = _ref10.highlightedIndex;\n\n var _ref11 = prevProps.highlightedIndex === undefined ? prevState : prevProps,\n prevHighlightedIndex = _ref11.highlightedIndex;\n\n var scrollWhenOpen = currentHighlightedIndex && this.getState().isOpen && !prevState.isOpen;\n var scrollWhenNavigating = currentHighlightedIndex !== prevHighlightedIndex;\n return scrollWhenOpen || scrollWhenNavigating;\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (process.env.NODE_ENV !== 'production') {\n validateControlledUnchanged(this.state, prevProps, this.props);\n /* istanbul ignore if (react-native) */\n\n if (this.getMenuProps.called && !this.getMenuProps.suppressRefError) {\n validateGetMenuPropsCalledCorrectly(this._menuNode, this.getMenuProps);\n }\n }\n\n if (isControlledProp(this.props, 'selectedItem') && this.props.selectedItemChanged(prevProps.selectedItem, this.props.selectedItem)) {\n this.internalSetState({\n type: controlledPropUpdatedSelectedItem,\n inputValue: this.props.itemToString(this.props.selectedItem)\n });\n }\n\n if (!this.avoidScrolling && this.shouldScroll(prevState, prevProps)) {\n this.scrollHighlightedItemIntoView();\n }\n /* istanbul ignore else (react-native) */\n\n\n {\n this.updateStatus();\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cleanup(); // avoids memory leak\n };\n\n _proto.render = function render() {\n var children = unwrapArray(this.props.children, noop); // because the items are rerendered every time we call the children\n // we clear this out each render and it will be populated again as\n // getItemProps is called.\n\n this.clearItems(); // we reset this so we know whether the user calls getRootProps during\n // this render. If they do then we don't need to do anything,\n // if they don't then we need to clone the element they return and\n // apply the props for them.\n\n this.getRootProps.called = false;\n this.getRootProps.refKey = undefined;\n this.getRootProps.suppressRefError = undefined; // we do something similar for getMenuProps\n\n this.getMenuProps.called = false;\n this.getMenuProps.refKey = undefined;\n this.getMenuProps.suppressRefError = undefined; // we do something similar for getLabelProps\n\n this.getLabelProps.called = false; // and something similar for getInputProps\n\n this.getInputProps.called = false;\n var element = unwrapArray(children(this.getStateAndHelpers()));\n\n if (!element) {\n return null;\n }\n\n if (this.getRootProps.called || this.props.suppressRefError) {\n if (process.env.NODE_ENV !== 'production' && !this.getRootProps.suppressRefError && !this.props.suppressRefError) {\n validateGetRootPropsCalledCorrectly(element, this.getRootProps);\n }\n\n return element;\n } else if (isDOMElement(element)) {\n // they didn't apply the root props, but we can clone\n // this and apply the props ourselves\n return /*#__PURE__*/cloneElement(element, this.getRootProps(getElementProps(element)));\n }\n /* istanbul ignore else */\n\n\n if (process.env.NODE_ENV !== 'production') {\n // they didn't apply the root props, but they need to\n // otherwise we can't query around the autocomplete\n throw new Error('downshift: If you return a non-DOM element, you must apply the getRootProps function');\n }\n /* istanbul ignore next */\n\n\n return undefined;\n };\n\n return Downshift;\n }(Component);\n\n Downshift.defaultProps = {\n defaultHighlightedIndex: null,\n defaultIsOpen: false,\n getA11yStatusMessage: getA11yStatusMessage$1,\n itemToString: function itemToString(i) {\n if (i == null) {\n return '';\n }\n\n if (process.env.NODE_ENV !== 'production' && isPlainObject(i) && !i.hasOwnProperty('toString')) {\n // eslint-disable-next-line no-console\n console.warn('downshift: An object was passed to the default implementation of `itemToString`. You should probably provide your own `itemToString` implementation. Please refer to the `itemToString` API documentation.', 'The object that was passed:', i);\n }\n\n return String(i);\n },\n onStateChange: noop,\n onInputValueChange: noop,\n onUserAction: noop,\n onChange: noop,\n onSelect: noop,\n onOuterClick: noop,\n selectedItemChanged: function selectedItemChanged(prevItem, item) {\n return prevItem !== item;\n },\n environment:\n /* istanbul ignore next (ssr) */\n typeof window === 'undefined' ? {} : window,\n stateReducer: function stateReducer(state, stateToSet) {\n return stateToSet;\n },\n suppressRefError: false,\n scrollIntoView: scrollIntoView\n };\n Downshift.stateChangeTypes = stateChangeTypes$3;\n return Downshift;\n}();\n\nprocess.env.NODE_ENV !== \"production\" ? Downshift.propTypes = {\n children: PropTypes.func,\n defaultHighlightedIndex: PropTypes.number,\n defaultIsOpen: PropTypes.bool,\n initialHighlightedIndex: PropTypes.number,\n initialSelectedItem: PropTypes.any,\n initialInputValue: PropTypes.string,\n initialIsOpen: PropTypes.bool,\n getA11yStatusMessage: PropTypes.func,\n itemToString: PropTypes.func,\n onChange: PropTypes.func,\n onSelect: PropTypes.func,\n onStateChange: PropTypes.func,\n onInputValueChange: PropTypes.func,\n onUserAction: PropTypes.func,\n onOuterClick: PropTypes.func,\n selectedItemChanged: PropTypes.func,\n stateReducer: PropTypes.func,\n itemCount: PropTypes.number,\n id: PropTypes.string,\n environment: PropTypes.shape({\n addEventListener: PropTypes.func,\n removeEventListener: PropTypes.func,\n document: PropTypes.shape({\n getElementById: PropTypes.func,\n activeElement: PropTypes.any,\n body: PropTypes.any\n })\n }),\n suppressRefError: PropTypes.bool,\n scrollIntoView: PropTypes.func,\n // things we keep in state for uncontrolled components\n // but can accept as props for controlled components\n\n /* eslint-disable react/no-unused-prop-types */\n selectedItem: PropTypes.any,\n isOpen: PropTypes.bool,\n inputValue: PropTypes.string,\n highlightedIndex: PropTypes.number,\n labelId: PropTypes.string,\n inputId: PropTypes.string,\n menuId: PropTypes.string,\n getItemId: PropTypes.func\n /* eslint-enable react/no-unused-prop-types */\n\n} : void 0;\nvar Downshift$1 = Downshift;\n\nfunction validateGetMenuPropsCalledCorrectly(node, _ref12) {\n var refKey = _ref12.refKey;\n\n if (!node) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: The ref prop \\\"\" + refKey + \"\\\" from getMenuProps was not applied correctly on your menu element.\");\n }\n}\n\nfunction validateGetRootPropsCalledCorrectly(element, _ref13) {\n var refKey = _ref13.refKey;\n var refKeySpecified = refKey !== 'ref';\n var isComposite = !isDOMElement(element);\n\n if (isComposite && !refKeySpecified && !isForwardRef(element)) {\n // eslint-disable-next-line no-console\n console.error('downshift: You returned a non-DOM element. You must specify a refKey in getRootProps');\n } else if (!isComposite && refKeySpecified) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: You returned a DOM element. You should not specify a refKey in getRootProps. You specified \\\"\" + refKey + \"\\\"\");\n }\n\n if (!isForwardRef(element) && !getElementProps(element)[refKey]) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: You must apply the ref prop \\\"\" + refKey + \"\\\" from getRootProps onto your root element.\");\n }\n}\n\nvar _excluded$3 = [\"isInitialMount\", \"highlightedIndex\", \"items\", \"environment\"];\nvar dropdownDefaultStateValues = {\n highlightedIndex: -1,\n isOpen: false,\n selectedItem: null,\n inputValue: ''\n};\n\nfunction callOnChangeProps(action, state, newState) {\n var props = action.props,\n type = action.type;\n var changes = {};\n Object.keys(state).forEach(function (key) {\n invokeOnChangeHandler(key, action, state, newState);\n\n if (newState[key] !== state[key]) {\n changes[key] = newState[key];\n }\n });\n\n if (props.onStateChange && Object.keys(changes).length) {\n props.onStateChange(_extends({\n type: type\n }, changes));\n }\n}\n\nfunction invokeOnChangeHandler(key, action, state, newState) {\n var props = action.props,\n type = action.type;\n var handler = \"on\" + capitalizeString(key) + \"Change\";\n\n if (props[handler] && newState[key] !== undefined && newState[key] !== state[key]) {\n props[handler](_extends({\n type: type\n }, newState));\n }\n}\n/**\n * Default state reducer that returns the changes.\n *\n * @param {Object} s state.\n * @param {Object} a action with changes.\n * @returns {Object} changes.\n */\n\n\nfunction stateReducer(s, a) {\n return a.changes;\n}\n/**\n * Returns a message to be added to aria-live region when item is selected.\n *\n * @param {Object} selectionParameters Parameters required to build the message.\n * @returns {string} The a11y message.\n */\n\n\nfunction getA11ySelectionMessage(selectionParameters) {\n var selectedItem = selectionParameters.selectedItem,\n itemToStringLocal = selectionParameters.itemToString;\n return selectedItem ? itemToStringLocal(selectedItem) + \" has been selected.\" : '';\n}\n/**\n * Debounced call for updating the a11y message.\n */\n\n\nvar updateA11yStatus = debounce(function (getA11yMessage, document) {\n setStatus(getA11yMessage(), document);\n}, 200); // istanbul ignore next\n\nvar useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? useLayoutEffect : useEffect;\n\nfunction useElementIds(_ref) {\n var _ref$id = _ref.id,\n id = _ref$id === void 0 ? \"downshift-\" + generateId() : _ref$id,\n labelId = _ref.labelId,\n menuId = _ref.menuId,\n getItemId = _ref.getItemId,\n toggleButtonId = _ref.toggleButtonId,\n inputId = _ref.inputId;\n var elementIdsRef = useRef({\n labelId: labelId || id + \"-label\",\n menuId: menuId || id + \"-menu\",\n getItemId: getItemId || function (index) {\n return id + \"-item-\" + index;\n },\n toggleButtonId: toggleButtonId || id + \"-toggle-button\",\n inputId: inputId || id + \"-input\"\n });\n return elementIdsRef.current;\n}\n\nfunction getItemIndex(index, item, items) {\n if (index !== undefined) {\n return index;\n }\n\n if (items.length === 0) {\n return -1;\n }\n\n return items.indexOf(item);\n}\n\nfunction itemToString(item) {\n return item ? String(item) : '';\n}\n\nfunction isAcceptedCharacterKey(key) {\n return /^\\S{1}$/.test(key);\n}\n\nfunction capitalizeString(string) {\n return \"\" + string.slice(0, 1).toUpperCase() + string.slice(1);\n}\n\nfunction useLatestRef(val) {\n var ref = useRef(val); // technically this is not \"concurrent mode safe\" because we're manipulating\n // the value during render (so it's not idempotent). However, the places this\n // hook is used is to support memoizing callbacks which will be called\n // *during* render, so we need the latest values *during* render.\n // If not for this, then we'd probably want to use useLayoutEffect instead.\n\n ref.current = val;\n return ref;\n}\n/**\n * Computes the controlled state using a the previous state, props,\n * two reducers, one from downshift and an optional one from the user.\n * Also calls the onChange handlers for state values that have changed.\n *\n * @param {Function} reducer Reducer function from downshift.\n * @param {Object} initialState Initial state of the hook.\n * @param {Object} props The hook props.\n * @returns {Array} An array with the state and an action dispatcher.\n */\n\n\nfunction useEnhancedReducer(reducer, initialState, props) {\n var prevStateRef = useRef();\n var actionRef = useRef();\n var enhancedReducer = useCallback(function (state, action) {\n actionRef.current = action;\n state = getState(state, action.props);\n var changes = reducer(state, action);\n var newState = action.props.stateReducer(state, _extends({}, action, {\n changes: changes\n }));\n return newState;\n }, [reducer]);\n\n var _useReducer = useReducer(enhancedReducer, initialState),\n state = _useReducer[0],\n dispatch = _useReducer[1];\n\n var propsRef = useLatestRef(props);\n var dispatchWithProps = useCallback(function (action) {\n return dispatch(_extends({\n props: propsRef.current\n }, action));\n }, [propsRef]);\n var action = actionRef.current;\n useEffect(function () {\n if (action && prevStateRef.current && prevStateRef.current !== state) {\n callOnChangeProps(action, getState(prevStateRef.current, action.props), state);\n }\n\n prevStateRef.current = state;\n }, [state, props, action]);\n return [state, dispatchWithProps];\n}\n/**\n * Wraps the useEnhancedReducer and applies the controlled prop values before\n * returning the new state.\n *\n * @param {Function} reducer Reducer function from downshift.\n * @param {Object} initialState Initial state of the hook.\n * @param {Object} props The hook props.\n * @returns {Array} An array with the state and an action dispatcher.\n */\n\n\nfunction useControlledReducer$1(reducer, initialState, props) {\n var _useEnhancedReducer = useEnhancedReducer(reducer, initialState, props),\n state = _useEnhancedReducer[0],\n dispatch = _useEnhancedReducer[1];\n\n return [getState(state, props), dispatch];\n}\n\nvar defaultProps$3 = {\n itemToString: itemToString,\n stateReducer: stateReducer,\n getA11ySelectionMessage: getA11ySelectionMessage,\n scrollIntoView: scrollIntoView,\n circularNavigation: false,\n environment:\n /* istanbul ignore next (ssr) */\n typeof window === 'undefined' ? {} : window\n};\n\nfunction getDefaultValue$1(props, propKey, defaultStateValues) {\n if (defaultStateValues === void 0) {\n defaultStateValues = dropdownDefaultStateValues;\n }\n\n var defaultPropKey = \"default\" + capitalizeString(propKey);\n\n if (defaultPropKey in props) {\n return props[defaultPropKey];\n }\n\n return defaultStateValues[propKey];\n}\n\nfunction getInitialValue$1(props, propKey, defaultStateValues) {\n if (defaultStateValues === void 0) {\n defaultStateValues = dropdownDefaultStateValues;\n }\n\n if (propKey in props) {\n return props[propKey];\n }\n\n var initialPropKey = \"initial\" + capitalizeString(propKey);\n\n if (initialPropKey in props) {\n return props[initialPropKey];\n }\n\n return getDefaultValue$1(props, propKey, defaultStateValues);\n}\n\nfunction getInitialState$2(props) {\n var selectedItem = getInitialValue$1(props, 'selectedItem');\n var isOpen = getInitialValue$1(props, 'isOpen');\n var highlightedIndex = getInitialValue$1(props, 'highlightedIndex');\n var inputValue = getInitialValue$1(props, 'inputValue');\n return {\n highlightedIndex: highlightedIndex < 0 && selectedItem && isOpen ? props.items.indexOf(selectedItem) : highlightedIndex,\n isOpen: isOpen,\n selectedItem: selectedItem,\n inputValue: inputValue\n };\n}\n\nfunction getHighlightedIndexOnOpen(props, state, offset, getItemNodeFromIndex) {\n var items = props.items,\n initialHighlightedIndex = props.initialHighlightedIndex,\n defaultHighlightedIndex = props.defaultHighlightedIndex;\n var selectedItem = state.selectedItem,\n highlightedIndex = state.highlightedIndex;\n\n if (items.length === 0) {\n return -1;\n } // initialHighlightedIndex will give value to highlightedIndex on initial state only.\n\n\n if (initialHighlightedIndex !== undefined && highlightedIndex === initialHighlightedIndex) {\n return initialHighlightedIndex;\n }\n\n if (defaultHighlightedIndex !== undefined) {\n return defaultHighlightedIndex;\n }\n\n if (selectedItem) {\n if (offset === 0) {\n return items.indexOf(selectedItem);\n }\n\n return getNextWrappingIndex(offset, items.indexOf(selectedItem), items.length, getItemNodeFromIndex, false);\n }\n\n if (offset === 0) {\n return -1;\n }\n\n return offset < 0 ? items.length - 1 : 0;\n}\n/**\n * Reuse the movement tracking of mouse and touch events.\n *\n * @param {boolean} isOpen Whether the dropdown is open or not.\n * @param {Array<Object>} downshiftElementRefs Downshift element refs to track movement (toggleButton, menu etc.)\n * @param {Object} environment Environment where component/hook exists.\n * @param {Function} handleBlur Handler on blur from mouse or touch.\n * @returns {Object} Ref containing whether mouseDown or touchMove event is happening\n */\n\n\nfunction useMouseAndTouchTracker(isOpen, downshiftElementRefs, environment, handleBlur) {\n var mouseAndTouchTrackersRef = useRef({\n isMouseDown: false,\n isTouchMove: false\n });\n useEffect(function () {\n // The same strategy for checking if a click occurred inside or outside downsift\n // as in downshift.js.\n var onMouseDown = function onMouseDown() {\n mouseAndTouchTrackersRef.current.isMouseDown = true;\n };\n\n var onMouseUp = function onMouseUp(event) {\n mouseAndTouchTrackersRef.current.isMouseDown = false;\n\n if (isOpen && !targetWithinDownshift(event.target, downshiftElementRefs.map(function (ref) {\n return ref.current;\n }), environment)) {\n handleBlur();\n }\n };\n\n var onTouchStart = function onTouchStart() {\n mouseAndTouchTrackersRef.current.isTouchMove = false;\n };\n\n var onTouchMove = function onTouchMove() {\n mouseAndTouchTrackersRef.current.isTouchMove = true;\n };\n\n var onTouchEnd = function onTouchEnd(event) {\n if (isOpen && !mouseAndTouchTrackersRef.current.isTouchMove && !targetWithinDownshift(event.target, downshiftElementRefs.map(function (ref) {\n return ref.current;\n }), environment, false)) {\n handleBlur();\n }\n };\n\n environment.addEventListener('mousedown', onMouseDown);\n environment.addEventListener('mouseup', onMouseUp);\n environment.addEventListener('touchstart', onTouchStart);\n environment.addEventListener('touchmove', onTouchMove);\n environment.addEventListener('touchend', onTouchEnd);\n return function cleanup() {\n environment.removeEventListener('mousedown', onMouseDown);\n environment.removeEventListener('mouseup', onMouseUp);\n environment.removeEventListener('touchstart', onTouchStart);\n environment.removeEventListener('touchmove', onTouchMove);\n environment.removeEventListener('touchend', onTouchEnd);\n }; // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isOpen, environment]);\n return mouseAndTouchTrackersRef;\n}\n/* istanbul ignore next */\n// eslint-disable-next-line import/no-mutable-exports\n\n\nvar useGetterPropsCalledChecker = function useGetterPropsCalledChecker() {\n return noop;\n};\n/**\n * Custom hook that checks if getter props are called correctly.\n *\n * @param {...any} propKeys Getter prop names to be handled.\n * @returns {Function} Setter function called inside getter props to set call information.\n */\n\n/* istanbul ignore next */\n\n\nif (process.env.NODE_ENV !== 'production') {\n useGetterPropsCalledChecker = function useGetterPropsCalledChecker() {\n var isInitialMountRef = useRef(true);\n\n for (var _len = arguments.length, propKeys = new Array(_len), _key = 0; _key < _len; _key++) {\n propKeys[_key] = arguments[_key];\n }\n\n var getterPropsCalledRef = useRef(propKeys.reduce(function (acc, propKey) {\n acc[propKey] = {};\n return acc;\n }, {}));\n useEffect(function () {\n Object.keys(getterPropsCalledRef.current).forEach(function (propKey) {\n var propCallInfo = getterPropsCalledRef.current[propKey];\n\n if (isInitialMountRef.current) {\n if (!Object.keys(propCallInfo).length) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: You forgot to call the \" + propKey + \" getter function on your component / element.\");\n return;\n }\n }\n\n var suppressRefError = propCallInfo.suppressRefError,\n refKey = propCallInfo.refKey,\n elementRef = propCallInfo.elementRef;\n\n if ((!elementRef || !elementRef.current) && !suppressRefError) {\n // eslint-disable-next-line no-console\n console.error(\"downshift: The ref prop \\\"\" + refKey + \"\\\" from \" + propKey + \" was not applied correctly on your element.\");\n }\n });\n isInitialMountRef.current = false;\n });\n var setGetterPropCallInfo = useCallback(function (propKey, suppressRefError, refKey, elementRef) {\n getterPropsCalledRef.current[propKey] = {\n suppressRefError: suppressRefError,\n refKey: refKey,\n elementRef: elementRef\n };\n }, []);\n return setGetterPropCallInfo;\n };\n}\n\nfunction useA11yMessageSetter(getA11yMessage, dependencyArray, _ref2) {\n var isInitialMount = _ref2.isInitialMount,\n highlightedIndex = _ref2.highlightedIndex,\n items = _ref2.items,\n environment = _ref2.environment,\n rest = _objectWithoutPropertiesLoose(_ref2, _excluded$3);\n\n // Sets a11y status message on changes in state.\n useEffect(function () {\n if (isInitialMount || false) {\n return;\n }\n\n updateA11yStatus(function () {\n return getA11yMessage(_extends({\n highlightedIndex: highlightedIndex,\n highlightedItem: items[highlightedIndex],\n resultCount: items.length\n }, rest));\n }, environment.document); // eslint-disable-next-line react-hooks/exhaustive-deps\n }, dependencyArray);\n}\n\nfunction useScrollIntoView(_ref3) {\n var highlightedIndex = _ref3.highlightedIndex,\n isOpen = _ref3.isOpen,\n itemRefs = _ref3.itemRefs,\n getItemNodeFromIndex = _ref3.getItemNodeFromIndex,\n menuElement = _ref3.menuElement,\n scrollIntoViewProp = _ref3.scrollIntoView;\n // used not to scroll on highlight by mouse.\n var shouldScrollRef = useRef(true); // Scroll on highlighted item if change comes from keyboard.\n\n useIsomorphicLayoutEffect(function () {\n if (highlightedIndex < 0 || !isOpen || !Object.keys(itemRefs.current).length) {\n return;\n }\n\n if (shouldScrollRef.current === false) {\n shouldScrollRef.current = true;\n } else {\n scrollIntoViewProp(getItemNodeFromIndex(highlightedIndex), menuElement);\n } // eslint-disable-next-line react-hooks/exhaustive-deps\n\n }, [highlightedIndex]);\n return shouldScrollRef;\n} // eslint-disable-next-line import/no-mutable-exports\n\n\nvar useControlPropsValidator = noop;\n/* istanbul ignore next */\n\nif (process.env.NODE_ENV !== 'production') {\n useControlPropsValidator = function useControlPropsValidator(_ref4) {\n var isInitialMount = _ref4.isInitialMount,\n props = _ref4.props,\n state = _ref4.state;\n // used for checking when props are moving from controlled to uncontrolled.\n var prevPropsRef = useRef(props);\n useEffect(function () {\n if (isInitialMount) {\n return;\n }\n\n validateControlledUnchanged(state, prevPropsRef.current, props);\n prevPropsRef.current = props;\n }, [state, props, isInitialMount]);\n };\n}\n\n/* eslint-disable complexity */\n\nfunction downshiftCommonReducer(state, action, stateChangeTypes) {\n var type = action.type,\n props = action.props;\n var changes;\n\n switch (type) {\n case stateChangeTypes.ItemMouseMove:\n changes = {\n highlightedIndex: action.index\n };\n break;\n\n case stateChangeTypes.MenuMouseLeave:\n changes = {\n highlightedIndex: -1\n };\n break;\n\n case stateChangeTypes.ToggleButtonClick:\n case stateChangeTypes.FunctionToggleMenu:\n changes = {\n isOpen: !state.isOpen,\n highlightedIndex: state.isOpen ? -1 : getHighlightedIndexOnOpen(props, state, 0)\n };\n break;\n\n case stateChangeTypes.FunctionOpenMenu:\n changes = {\n isOpen: true,\n highlightedIndex: getHighlightedIndexOnOpen(props, state, 0)\n };\n break;\n\n case stateChangeTypes.FunctionCloseMenu:\n changes = {\n isOpen: false\n };\n break;\n\n case stateChangeTypes.FunctionSetHighlightedIndex:\n changes = {\n highlightedIndex: action.highlightedIndex\n };\n break;\n\n case stateChangeTypes.FunctionSetInputValue:\n changes = {\n inputValue: action.inputValue\n };\n break;\n\n case stateChangeTypes.FunctionReset:\n changes = {\n highlightedIndex: getDefaultValue$1(props, 'highlightedIndex'),\n isOpen: getDefaultValue$1(props, 'isOpen'),\n selectedItem: getDefaultValue$1(props, 'selectedItem'),\n inputValue: getDefaultValue$1(props, 'inputValue')\n };\n break;\n\n default:\n throw new Error('Reducer called without proper action type.');\n }\n\n return _extends({}, state, changes);\n}\n/* eslint-enable complexity */\n\nfunction getItemIndexByCharacterKey(_a) {\n var keysSoFar = _a.keysSoFar, highlightedIndex = _a.highlightedIndex, items = _a.items, itemToString = _a.itemToString, getItemNodeFromIndex = _a.getItemNodeFromIndex;\n var lowerCasedKeysSoFar = keysSoFar.toLowerCase();\n for (var index = 0; index < items.length; index++) {\n var offsetIndex = (index + highlightedIndex + 1) % items.length;\n var item = items[offsetIndex];\n if (item !== undefined &&\n itemToString(item)\n .toLowerCase()\n .startsWith(lowerCasedKeysSoFar)) {\n var element = getItemNodeFromIndex(offsetIndex);\n if (!(element === null || element === void 0 ? void 0 : element.hasAttribute('disabled'))) {\n return offsetIndex;\n }\n }\n }\n return highlightedIndex;\n}\nvar propTypes$2 = {\n items: PropTypes.array.isRequired,\n itemToString: PropTypes.func,\n getA11yStatusMessage: PropTypes.func,\n getA11ySelectionMessage: PropTypes.func,\n circularNavigation: PropTypes.bool,\n highlightedIndex: PropTypes.number,\n defaultHighlightedIndex: PropTypes.number,\n initialHighlightedIndex: PropTypes.number,\n isOpen: PropTypes.bool,\n defaultIsOpen: PropTypes.bool,\n initialIsOpen: PropTypes.bool,\n selectedItem: PropTypes.any,\n initialSelectedItem: PropTypes.any,\n defaultSelectedItem: PropTypes.any,\n id: PropTypes.string,\n labelId: PropTypes.string,\n menuId: PropTypes.string,\n getItemId: PropTypes.func,\n toggleButtonId: PropTypes.string,\n stateReducer: PropTypes.func,\n onSelectedItemChange: PropTypes.func,\n onHighlightedIndexChange: PropTypes.func,\n onStateChange: PropTypes.func,\n onIsOpenChange: PropTypes.func,\n environment: PropTypes.shape({\n addEventListener: PropTypes.func,\n removeEventListener: PropTypes.func,\n document: PropTypes.shape({\n getElementById: PropTypes.func,\n activeElement: PropTypes.any,\n body: PropTypes.any\n })\n })\n};\n/**\n * Default implementation for status message. Only added when menu is open.\n * Will specift if there are results in the list, and if so, how many,\n * and what keys are relevant.\n *\n * @param {Object} param the downshift state and other relevant properties\n * @return {String} the a11y status message\n */\nfunction getA11yStatusMessage(_a) {\n var isOpen = _a.isOpen, resultCount = _a.resultCount, previousResultCount = _a.previousResultCount;\n if (!isOpen) {\n return '';\n }\n if (!resultCount) {\n return 'No results are available.';\n }\n if (resultCount !== previousResultCount) {\n return resultCount + \" result\" + (resultCount === 1 ? ' is' : 's are') + \" available, use up and down arrow keys to navigate. Press Enter or Space Bar keys to select.\";\n }\n return '';\n}\nvar defaultProps$2 = __assign(__assign({}, defaultProps$3), { getA11yStatusMessage: getA11yStatusMessage });\n// eslint-disable-next-line import/no-mutable-exports\nvar validatePropTypes$2 = noop;\n/* istanbul ignore next */\nif (process.env.NODE_ENV !== 'production') {\n validatePropTypes$2 = function (options, caller) {\n PropTypes.checkPropTypes(propTypes$2, options, 'prop', caller.name);\n };\n}\n\nvar MenuKeyDownArrowDown = process.env.NODE_ENV !== \"production\" ? '__menu_keydown_arrow_down__' : 0;\nvar MenuKeyDownArrowUp = process.env.NODE_ENV !== \"production\" ? '__menu_keydown_arrow_up__' : 1;\nvar MenuKeyDownEscape = process.env.NODE_ENV !== \"production\" ? '__menu_keydown_escape__' : 2;\nvar MenuKeyDownHome = process.env.NODE_ENV !== \"production\" ? '__menu_keydown_home__' : 3;\nvar MenuKeyDownEnd = process.env.NODE_ENV !== \"production\" ? '__menu_keydown_end__' : 4;\nvar MenuKeyDownEnter = process.env.NODE_ENV !== \"production\" ? '__menu_keydown_enter__' : 5;\nvar MenuKeyDownSpaceButton = process.env.NODE_ENV !== \"production\" ? '__menu_keydown_space_button__' : 6;\nvar MenuKeyDownCharacter = process.env.NODE_ENV !== \"production\" ? '__menu_keydown_character__' : 7;\nvar MenuBlur = process.env.NODE_ENV !== \"production\" ? '__menu_blur__' : 8;\nvar MenuMouseLeave$1 = process.env.NODE_ENV !== \"production\" ? '__menu_mouse_leave__' : 9;\nvar ItemMouseMove$1 = process.env.NODE_ENV !== \"production\" ? '__item_mouse_move__' : 10;\nvar ItemClick$1 = process.env.NODE_ENV !== \"production\" ? '__item_click__' : 11;\nvar ToggleButtonClick$1 = process.env.NODE_ENV !== \"production\" ? '__togglebutton_click__' : 12;\nvar ToggleButtonKeyDownArrowDown = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_arrow_down__' : 13;\nvar ToggleButtonKeyDownArrowUp = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_arrow_up__' : 14;\nvar ToggleButtonKeyDownCharacter = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_character__' : 15;\nvar FunctionToggleMenu$1 = process.env.NODE_ENV !== \"production\" ? '__function_toggle_menu__' : 16;\nvar FunctionOpenMenu$1 = process.env.NODE_ENV !== \"production\" ? '__function_open_menu__' : 17;\nvar FunctionCloseMenu$1 = process.env.NODE_ENV !== \"production\" ? '__function_close_menu__' : 18;\nvar FunctionSetHighlightedIndex$1 = process.env.NODE_ENV !== \"production\" ? '__function_set_highlighted_index__' : 19;\nvar FunctionSelectItem$1 = process.env.NODE_ENV !== \"production\" ? '__function_select_item__' : 20;\nvar FunctionSetInputValue$1 = process.env.NODE_ENV !== \"production\" ? '__function_set_input_value__' : 21;\nvar FunctionReset$2 = process.env.NODE_ENV !== \"production\" ? '__function_reset__' : 22;\n\nvar stateChangeTypes$2 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n MenuKeyDownArrowDown: MenuKeyDownArrowDown,\n MenuKeyDownArrowUp: MenuKeyDownArrowUp,\n MenuKeyDownEscape: MenuKeyDownEscape,\n MenuKeyDownHome: MenuKeyDownHome,\n MenuKeyDownEnd: MenuKeyDownEnd,\n MenuKeyDownEnter: MenuKeyDownEnter,\n MenuKeyDownSpaceButton: MenuKeyDownSpaceButton,\n MenuKeyDownCharacter: MenuKeyDownCharacter,\n MenuBlur: MenuBlur,\n MenuMouseLeave: MenuMouseLeave$1,\n ItemMouseMove: ItemMouseMove$1,\n ItemClick: ItemClick$1,\n ToggleButtonClick: ToggleButtonClick$1,\n ToggleButtonKeyDownArrowDown: ToggleButtonKeyDownArrowDown,\n ToggleButtonKeyDownArrowUp: ToggleButtonKeyDownArrowUp,\n ToggleButtonKeyDownCharacter: ToggleButtonKeyDownCharacter,\n FunctionToggleMenu: FunctionToggleMenu$1,\n FunctionOpenMenu: FunctionOpenMenu$1,\n FunctionCloseMenu: FunctionCloseMenu$1,\n FunctionSetHighlightedIndex: FunctionSetHighlightedIndex$1,\n FunctionSelectItem: FunctionSelectItem$1,\n FunctionSetInputValue: FunctionSetInputValue$1,\n FunctionReset: FunctionReset$2\n});\n\n/* eslint-disable complexity */\n\nfunction downshiftSelectReducer(state, action) {\n var type = action.type,\n props = action.props,\n shiftKey = action.shiftKey;\n var changes;\n\n switch (type) {\n case ItemClick$1:\n changes = {\n isOpen: getDefaultValue$1(props, 'isOpen'),\n highlightedIndex: getDefaultValue$1(props, 'highlightedIndex'),\n selectedItem: props.items[action.index]\n };\n break;\n\n case ToggleButtonKeyDownCharacter:\n {\n var lowercasedKey = action.key;\n var inputValue = \"\" + state.inputValue + lowercasedKey;\n var itemIndex = getItemIndexByCharacterKey({\n keysSoFar: inputValue,\n highlightedIndex: state.selectedItem ? props.items.indexOf(state.selectedItem) : -1,\n items: props.items,\n itemToString: props.itemToString,\n getItemNodeFromIndex: action.getItemNodeFromIndex\n });\n changes = _extends({\n inputValue: inputValue\n }, itemIndex >= 0 && {\n selectedItem: props.items[itemIndex]\n });\n }\n break;\n\n case ToggleButtonKeyDownArrowDown:\n changes = {\n highlightedIndex: getHighlightedIndexOnOpen(props, state, 1, action.getItemNodeFromIndex),\n isOpen: true\n };\n break;\n\n case ToggleButtonKeyDownArrowUp:\n changes = {\n highlightedIndex: getHighlightedIndexOnOpen(props, state, -1, action.getItemNodeFromIndex),\n isOpen: true\n };\n break;\n\n case MenuKeyDownEnter:\n case MenuKeyDownSpaceButton:\n changes = _extends({\n isOpen: getDefaultValue$1(props, 'isOpen'),\n highlightedIndex: getDefaultValue$1(props, 'highlightedIndex')\n }, state.highlightedIndex >= 0 && {\n selectedItem: props.items[state.highlightedIndex]\n });\n break;\n\n case MenuKeyDownHome:\n changes = {\n highlightedIndex: getNextNonDisabledIndex(1, 0, props.items.length, action.getItemNodeFromIndex, false)\n };\n break;\n\n case MenuKeyDownEnd:\n changes = {\n highlightedIndex: getNextNonDisabledIndex(-1, props.items.length - 1, props.items.length, action.getItemNodeFromIndex, false)\n };\n break;\n\n case MenuKeyDownEscape:\n changes = {\n isOpen: false,\n highlightedIndex: -1\n };\n break;\n\n case MenuBlur:\n changes = {\n isOpen: false,\n highlightedIndex: -1\n };\n break;\n\n case MenuKeyDownCharacter:\n {\n var _lowercasedKey = action.key;\n\n var _inputValue = \"\" + state.inputValue + _lowercasedKey;\n\n var highlightedIndex = getItemIndexByCharacterKey({\n keysSoFar: _inputValue,\n highlightedIndex: state.highlightedIndex,\n items: props.items,\n itemToString: props.itemToString,\n getItemNodeFromIndex: action.getItemNodeFromIndex\n });\n changes = _extends({\n inputValue: _inputValue\n }, highlightedIndex >= 0 && {\n highlightedIndex: highlightedIndex\n });\n }\n break;\n\n case MenuKeyDownArrowDown:\n changes = {\n highlightedIndex: getNextWrappingIndex(shiftKey ? 5 : 1, state.highlightedIndex, props.items.length, action.getItemNodeFromIndex, props.circularNavigation)\n };\n break;\n\n case MenuKeyDownArrowUp:\n changes = {\n highlightedIndex: getNextWrappingIndex(shiftKey ? -5 : -1, state.highlightedIndex, props.items.length, action.getItemNodeFromIndex, props.circularNavigation)\n };\n break;\n\n case FunctionSelectItem$1:\n changes = {\n selectedItem: action.selectedItem\n };\n break;\n\n default:\n return downshiftCommonReducer(state, action, stateChangeTypes$2);\n }\n\n return _extends({}, state, changes);\n}\n/* eslint-enable complexity */\n\nvar _excluded$2 = [\"onMouseLeave\", \"refKey\", \"onKeyDown\", \"onBlur\", \"ref\"],\n _excluded2$2 = [\"onClick\", \"onKeyDown\", \"refKey\", \"ref\"],\n _excluded3$1 = [\"item\", \"index\", \"onMouseMove\", \"onClick\", \"refKey\", \"ref\"];\nuseSelect.stateChangeTypes = stateChangeTypes$2;\n\nfunction useSelect(userProps) {\n if (userProps === void 0) {\n userProps = {};\n }\n\n validatePropTypes$2(userProps, useSelect); // Props defaults and destructuring.\n\n var props = _extends({}, defaultProps$2, userProps);\n\n var items = props.items,\n scrollIntoView = props.scrollIntoView,\n environment = props.environment,\n initialIsOpen = props.initialIsOpen,\n defaultIsOpen = props.defaultIsOpen,\n itemToString = props.itemToString,\n getA11ySelectionMessage = props.getA11ySelectionMessage,\n getA11yStatusMessage = props.getA11yStatusMessage; // Initial state depending on controlled props.\n\n var initialState = getInitialState$2(props);\n\n var _useControlledReducer = useControlledReducer$1(downshiftSelectReducer, initialState, props),\n state = _useControlledReducer[0],\n dispatch = _useControlledReducer[1];\n\n var isOpen = state.isOpen,\n highlightedIndex = state.highlightedIndex,\n selectedItem = state.selectedItem,\n inputValue = state.inputValue; // Element efs.\n\n var toggleButtonRef = useRef(null);\n var menuRef = useRef(null);\n var itemRefs = useRef({}); // used not to trigger menu blur action in some scenarios.\n\n var shouldBlurRef = useRef(true); // used to keep the inputValue clearTimeout object between renders.\n\n var clearTimeoutRef = useRef(null); // prevent id re-generation between renders.\n\n var elementIds = useElementIds(props); // used to keep track of how many items we had on previous cycle.\n\n var previousResultCountRef = useRef();\n var isInitialMountRef = useRef(true); // utility callback to get item element.\n\n var latest = useLatestRef({\n state: state,\n props: props\n }); // Some utils.\n\n var getItemNodeFromIndex = useCallback(function (index) {\n return itemRefs.current[elementIds.getItemId(index)];\n }, [elementIds]); // Effects.\n // Sets a11y status message on changes in state.\n\n useA11yMessageSetter(getA11yStatusMessage, [isOpen, highlightedIndex, inputValue, items], _extends({\n isInitialMount: isInitialMountRef.current,\n previousResultCount: previousResultCountRef.current,\n items: items,\n environment: environment,\n itemToString: itemToString\n }, state)); // Sets a11y status message on changes in selectedItem.\n\n useA11yMessageSetter(getA11ySelectionMessage, [selectedItem], _extends({\n isInitialMount: isInitialMountRef.current,\n previousResultCount: previousResultCountRef.current,\n items: items,\n environment: environment,\n itemToString: itemToString\n }, state)); // Scroll on highlighted item if change comes from keyboard.\n\n var shouldScrollRef = useScrollIntoView({\n menuElement: menuRef.current,\n highlightedIndex: highlightedIndex,\n isOpen: isOpen,\n itemRefs: itemRefs,\n scrollIntoView: scrollIntoView,\n getItemNodeFromIndex: getItemNodeFromIndex\n }); // Sets cleanup for the keysSoFar callback, debounded after 500ms.\n\n useEffect(function () {\n // init the clean function here as we need access to dispatch.\n clearTimeoutRef.current = debounce(function (outerDispatch) {\n outerDispatch({\n type: FunctionSetInputValue$1,\n inputValue: ''\n });\n }, 500); // Cancel any pending debounced calls on mount\n\n return function () {\n clearTimeoutRef.current.cancel();\n };\n }, []); // Invokes the keysSoFar callback set up above.\n\n useEffect(function () {\n if (!inputValue) {\n return;\n }\n\n clearTimeoutRef.current(dispatch);\n }, [dispatch, inputValue]);\n useControlPropsValidator({\n isInitialMount: isInitialMountRef.current,\n props: props,\n state: state\n });\n /* Controls the focus on the menu or the toggle button. */\n\n useEffect(function () {\n // Don't focus menu on first render.\n if (isInitialMountRef.current) {\n // Unless it was initialised as open.\n if ((initialIsOpen || defaultIsOpen || isOpen) && menuRef.current) {\n menuRef.current.focus();\n }\n\n return;\n } // Focus menu on open.\n\n\n if (isOpen) {\n // istanbul ignore else\n if (menuRef.current) {\n menuRef.current.focus();\n }\n\n return;\n } // Focus toggleButton on close, but not if it was closed with (Shift+)Tab.\n\n\n if (environment.document.activeElement === menuRef.current) {\n // istanbul ignore else\n if (toggleButtonRef.current) {\n shouldBlurRef.current = false;\n toggleButtonRef.current.focus();\n }\n } // eslint-disable-next-line react-hooks/exhaustive-deps\n\n }, [isOpen]);\n useEffect(function () {\n if (isInitialMountRef.current) {\n return;\n }\n\n previousResultCountRef.current = items.length;\n }); // Add mouse/touch events to document.\n\n var mouseAndTouchTrackersRef = useMouseAndTouchTracker(isOpen, [menuRef, toggleButtonRef], environment, function () {\n dispatch({\n type: MenuBlur\n });\n });\n var setGetterPropCallInfo = useGetterPropsCalledChecker('getMenuProps', 'getToggleButtonProps'); // Make initial ref false.\n\n useEffect(function () {\n isInitialMountRef.current = false;\n }, []); // Reset itemRefs on close.\n\n useEffect(function () {\n if (!isOpen) {\n itemRefs.current = {};\n }\n }, [isOpen]); // Event handler functions.\n\n var toggleButtonKeyDownHandlers = useMemo(function () {\n return {\n ArrowDown: function ArrowDown(event) {\n event.preventDefault();\n dispatch({\n type: ToggleButtonKeyDownArrowDown,\n getItemNodeFromIndex: getItemNodeFromIndex,\n shiftKey: event.shiftKey\n });\n },\n ArrowUp: function ArrowUp(event) {\n event.preventDefault();\n dispatch({\n type: ToggleButtonKeyDownArrowUp,\n getItemNodeFromIndex: getItemNodeFromIndex,\n shiftKey: event.shiftKey\n });\n }\n };\n }, [dispatch, getItemNodeFromIndex]);\n var menuKeyDownHandlers = useMemo(function () {\n return {\n ArrowDown: function ArrowDown(event) {\n event.preventDefault();\n dispatch({\n type: MenuKeyDownArrowDown,\n getItemNodeFromIndex: getItemNodeFromIndex,\n shiftKey: event.shiftKey\n });\n },\n ArrowUp: function ArrowUp(event) {\n event.preventDefault();\n dispatch({\n type: MenuKeyDownArrowUp,\n getItemNodeFromIndex: getItemNodeFromIndex,\n shiftKey: event.shiftKey\n });\n },\n Home: function Home(event) {\n event.preventDefault();\n dispatch({\n type: MenuKeyDownHome,\n getItemNodeFromIndex: getItemNodeFromIndex\n });\n },\n End: function End(event) {\n event.preventDefault();\n dispatch({\n type: MenuKeyDownEnd,\n getItemNodeFromIndex: getItemNodeFromIndex\n });\n },\n Escape: function Escape() {\n dispatch({\n type: MenuKeyDownEscape\n });\n },\n Enter: function Enter(event) {\n event.preventDefault();\n dispatch({\n type: MenuKeyDownEnter\n });\n },\n ' ': function _(event) {\n event.preventDefault();\n dispatch({\n type: MenuKeyDownSpaceButton\n });\n }\n };\n }, [dispatch, getItemNodeFromIndex]); // Action functions.\n\n var toggleMenu = useCallback(function () {\n dispatch({\n type: FunctionToggleMenu$1\n });\n }, [dispatch]);\n var closeMenu = useCallback(function () {\n dispatch({\n type: FunctionCloseMenu$1\n });\n }, [dispatch]);\n var openMenu = useCallback(function () {\n dispatch({\n type: FunctionOpenMenu$1\n });\n }, [dispatch]);\n var setHighlightedIndex = useCallback(function (newHighlightedIndex) {\n dispatch({\n type: FunctionSetHighlightedIndex$1,\n highlightedIndex: newHighlightedIndex\n });\n }, [dispatch]);\n var selectItem = useCallback(function (newSelectedItem) {\n dispatch({\n type: FunctionSelectItem$1,\n selectedItem: newSelectedItem\n });\n }, [dispatch]);\n var reset = useCallback(function () {\n dispatch({\n type: FunctionReset$2\n });\n }, [dispatch]);\n var setInputValue = useCallback(function (newInputValue) {\n dispatch({\n type: FunctionSetInputValue$1,\n inputValue: newInputValue\n });\n }, [dispatch]); // Getter functions.\n\n var getLabelProps = useCallback(function (labelProps) {\n return _extends({\n id: elementIds.labelId,\n htmlFor: elementIds.toggleButtonId\n }, labelProps);\n }, [elementIds]);\n var getMenuProps = useCallback(function (_temp, _temp2) {\n var _extends2;\n\n var _ref = _temp === void 0 ? {} : _temp,\n onMouseLeave = _ref.onMouseLeave,\n _ref$refKey = _ref.refKey,\n refKey = _ref$refKey === void 0 ? 'ref' : _ref$refKey,\n onKeyDown = _ref.onKeyDown,\n onBlur = _ref.onBlur,\n ref = _ref.ref,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$2);\n\n var _ref2 = _temp2 === void 0 ? {} : _temp2,\n _ref2$suppressRefErro = _ref2.suppressRefError,\n suppressRefError = _ref2$suppressRefErro === void 0 ? false : _ref2$suppressRefErro;\n\n var latestState = latest.current.state;\n\n var menuHandleKeyDown = function menuHandleKeyDown(event) {\n var key = normalizeArrowKey(event);\n\n if (key && menuKeyDownHandlers[key]) {\n menuKeyDownHandlers[key](event);\n } else if (isAcceptedCharacterKey(key)) {\n dispatch({\n type: MenuKeyDownCharacter,\n key: key,\n getItemNodeFromIndex: getItemNodeFromIndex\n });\n }\n };\n\n var menuHandleBlur = function menuHandleBlur() {\n // if the blur was a result of selection, we don't trigger this action.\n if (shouldBlurRef.current === false) {\n shouldBlurRef.current = true;\n return;\n }\n\n var shouldBlur = !mouseAndTouchTrackersRef.current.isMouseDown;\n /* istanbul ignore else */\n\n if (shouldBlur) {\n dispatch({\n type: MenuBlur\n });\n }\n };\n\n var menuHandleMouseLeave = function menuHandleMouseLeave() {\n dispatch({\n type: MenuMouseLeave$1\n });\n };\n\n setGetterPropCallInfo('getMenuProps', suppressRefError, refKey, menuRef);\n return _extends((_extends2 = {}, _extends2[refKey] = handleRefs(ref, function (menuNode) {\n menuRef.current = menuNode;\n }), _extends2.id = elementIds.menuId, _extends2.role = 'listbox', _extends2['aria-labelledby'] = elementIds.labelId, _extends2.tabIndex = -1, _extends2), latestState.isOpen && latestState.highlightedIndex > -1 && {\n 'aria-activedescendant': elementIds.getItemId(latestState.highlightedIndex)\n }, {\n onMouseLeave: callAllEventHandlers(onMouseLeave, menuHandleMouseLeave),\n onKeyDown: callAllEventHandlers(onKeyDown, menuHandleKeyDown),\n onBlur: callAllEventHandlers(onBlur, menuHandleBlur)\n }, rest);\n }, [dispatch, latest, menuKeyDownHandlers, mouseAndTouchTrackersRef, setGetterPropCallInfo, elementIds, getItemNodeFromIndex]);\n var getToggleButtonProps = useCallback(function (_temp3, _temp4) {\n var _extends3;\n\n var _ref3 = _temp3 === void 0 ? {} : _temp3,\n onClick = _ref3.onClick,\n onKeyDown = _ref3.onKeyDown,\n _ref3$refKey = _ref3.refKey,\n refKey = _ref3$refKey === void 0 ? 'ref' : _ref3$refKey,\n ref = _ref3.ref,\n rest = _objectWithoutPropertiesLoose(_ref3, _excluded2$2);\n\n var _ref4 = _temp4 === void 0 ? {} : _temp4,\n _ref4$suppressRefErro = _ref4.suppressRefError,\n suppressRefError = _ref4$suppressRefErro === void 0 ? false : _ref4$suppressRefErro;\n\n var toggleButtonHandleClick = function toggleButtonHandleClick() {\n dispatch({\n type: ToggleButtonClick$1\n });\n };\n\n var toggleButtonHandleKeyDown = function toggleButtonHandleKeyDown(event) {\n var key = normalizeArrowKey(event);\n\n if (key && toggleButtonKeyDownHandlers[key]) {\n toggleButtonKeyDownHandlers[key](event);\n } else if (isAcceptedCharacterKey(key)) {\n dispatch({\n type: ToggleButtonKeyDownCharacter,\n key: key,\n getItemNodeFromIndex: getItemNodeFromIndex\n });\n }\n };\n\n var toggleProps = _extends((_extends3 = {}, _extends3[refKey] = handleRefs(ref, function (toggleButtonNode) {\n toggleButtonRef.current = toggleButtonNode;\n }), _extends3.id = elementIds.toggleButtonId, _extends3['aria-haspopup'] = 'listbox', _extends3['aria-expanded'] = latest.current.state.isOpen, _extends3['aria-labelledby'] = elementIds.labelId + \" \" + elementIds.toggleButtonId, _extends3), rest);\n\n if (!rest.disabled) {\n toggleProps.onClick = callAllEventHandlers(onClick, toggleButtonHandleClick);\n toggleProps.onKeyDown = callAllEventHandlers(onKeyDown, toggleButtonHandleKeyDown);\n }\n\n setGetterPropCallInfo('getToggleButtonProps', suppressRefError, refKey, toggleButtonRef);\n return toggleProps;\n }, [dispatch, latest, toggleButtonKeyDownHandlers, setGetterPropCallInfo, elementIds, getItemNodeFromIndex]);\n var getItemProps = useCallback(function (_temp5) {\n var _extends4;\n\n var _ref5 = _temp5 === void 0 ? {} : _temp5,\n item = _ref5.item,\n index = _ref5.index,\n onMouseMove = _ref5.onMouseMove,\n onClick = _ref5.onClick,\n _ref5$refKey = _ref5.refKey,\n refKey = _ref5$refKey === void 0 ? 'ref' : _ref5$refKey,\n ref = _ref5.ref,\n rest = _objectWithoutPropertiesLoose(_ref5, _excluded3$1);\n\n var _latest$current = latest.current,\n latestState = _latest$current.state,\n latestProps = _latest$current.props;\n\n var itemHandleMouseMove = function itemHandleMouseMove() {\n if (index === latestState.highlightedIndex) {\n return;\n }\n\n shouldScrollRef.current = false;\n dispatch({\n type: ItemMouseMove$1,\n index: index\n });\n };\n\n var itemHandleClick = function itemHandleClick() {\n dispatch({\n type: ItemClick$1,\n index: index\n });\n };\n\n var itemIndex = getItemIndex(index, item, latestProps.items);\n\n if (itemIndex < 0) {\n throw new Error('Pass either item or item index in getItemProps!');\n }\n\n var itemProps = _extends((_extends4 = {\n role: 'option',\n 'aria-selected': \"\" + (itemIndex === latestState.highlightedIndex),\n id: elementIds.getItemId(itemIndex)\n }, _extends4[refKey] = handleRefs(ref, function (itemNode) {\n if (itemNode) {\n itemRefs.current[elementIds.getItemId(itemIndex)] = itemNode;\n }\n }), _extends4), rest);\n\n if (!rest.disabled) {\n itemProps.onMouseMove = callAllEventHandlers(onMouseMove, itemHandleMouseMove);\n itemProps.onClick = callAllEventHandlers(onClick, itemHandleClick);\n }\n\n return itemProps;\n }, [dispatch, latest, shouldScrollRef, elementIds]);\n return {\n // prop getters.\n getToggleButtonProps: getToggleButtonProps,\n getLabelProps: getLabelProps,\n getMenuProps: getMenuProps,\n getItemProps: getItemProps,\n // actions.\n toggleMenu: toggleMenu,\n openMenu: openMenu,\n closeMenu: closeMenu,\n setHighlightedIndex: setHighlightedIndex,\n selectItem: selectItem,\n reset: reset,\n setInputValue: setInputValue,\n // state.\n highlightedIndex: highlightedIndex,\n isOpen: isOpen,\n selectedItem: selectedItem,\n inputValue: inputValue\n };\n}\n\nvar InputKeyDownArrowDown = process.env.NODE_ENV !== \"production\" ? '__input_keydown_arrow_down__' : 0;\nvar InputKeyDownArrowUp = process.env.NODE_ENV !== \"production\" ? '__input_keydown_arrow_up__' : 1;\nvar InputKeyDownEscape = process.env.NODE_ENV !== \"production\" ? '__input_keydown_escape__' : 2;\nvar InputKeyDownHome = process.env.NODE_ENV !== \"production\" ? '__input_keydown_home__' : 3;\nvar InputKeyDownEnd = process.env.NODE_ENV !== \"production\" ? '__input_keydown_end__' : 4;\nvar InputKeyDownEnter = process.env.NODE_ENV !== \"production\" ? '__input_keydown_enter__' : 5;\nvar InputChange = process.env.NODE_ENV !== \"production\" ? '__input_change__' : 6;\nvar InputBlur = process.env.NODE_ENV !== \"production\" ? '__input_blur__' : 7;\nvar MenuMouseLeave = process.env.NODE_ENV !== \"production\" ? '__menu_mouse_leave__' : 8;\nvar ItemMouseMove = process.env.NODE_ENV !== \"production\" ? '__item_mouse_move__' : 9;\nvar ItemClick = process.env.NODE_ENV !== \"production\" ? '__item_click__' : 10;\nvar ToggleButtonClick = process.env.NODE_ENV !== \"production\" ? '__togglebutton_click__' : 11;\nvar FunctionToggleMenu = process.env.NODE_ENV !== \"production\" ? '__function_toggle_menu__' : 12;\nvar FunctionOpenMenu = process.env.NODE_ENV !== \"production\" ? '__function_open_menu__' : 13;\nvar FunctionCloseMenu = process.env.NODE_ENV !== \"production\" ? '__function_close_menu__' : 14;\nvar FunctionSetHighlightedIndex = process.env.NODE_ENV !== \"production\" ? '__function_set_highlighted_index__' : 15;\nvar FunctionSelectItem = process.env.NODE_ENV !== \"production\" ? '__function_select_item__' : 16;\nvar FunctionSetInputValue = process.env.NODE_ENV !== \"production\" ? '__function_set_input_value__' : 17;\nvar FunctionReset$1 = process.env.NODE_ENV !== \"production\" ? '__function_reset__' : 18;\nvar ControlledPropUpdatedSelectedItem = process.env.NODE_ENV !== \"production\" ? '__controlled_prop_updated_selected_item__' : 19;\n\nvar stateChangeTypes$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n InputKeyDownArrowDown: InputKeyDownArrowDown,\n InputKeyDownArrowUp: InputKeyDownArrowUp,\n InputKeyDownEscape: InputKeyDownEscape,\n InputKeyDownHome: InputKeyDownHome,\n InputKeyDownEnd: InputKeyDownEnd,\n InputKeyDownEnter: InputKeyDownEnter,\n InputChange: InputChange,\n InputBlur: InputBlur,\n MenuMouseLeave: MenuMouseLeave,\n ItemMouseMove: ItemMouseMove,\n ItemClick: ItemClick,\n ToggleButtonClick: ToggleButtonClick,\n FunctionToggleMenu: FunctionToggleMenu,\n FunctionOpenMenu: FunctionOpenMenu,\n FunctionCloseMenu: FunctionCloseMenu,\n FunctionSetHighlightedIndex: FunctionSetHighlightedIndex,\n FunctionSelectItem: FunctionSelectItem,\n FunctionSetInputValue: FunctionSetInputValue,\n FunctionReset: FunctionReset$1,\n ControlledPropUpdatedSelectedItem: ControlledPropUpdatedSelectedItem\n});\n\nfunction getInitialState$1(props) {\n var initialState = getInitialState$2(props);\n var selectedItem = initialState.selectedItem;\n var inputValue = initialState.inputValue;\n\n if (inputValue === '' && selectedItem && props.defaultInputValue === undefined && props.initialInputValue === undefined && props.inputValue === undefined) {\n inputValue = props.itemToString(selectedItem);\n }\n\n return _extends({}, initialState, {\n inputValue: inputValue\n });\n}\n\nvar propTypes$1 = {\n items: PropTypes.array.isRequired,\n itemToString: PropTypes.func,\n getA11yStatusMessage: PropTypes.func,\n getA11ySelectionMessage: PropTypes.func,\n circularNavigation: PropTypes.bool,\n highlightedIndex: PropTypes.number,\n defaultHighlightedIndex: PropTypes.number,\n initialHighlightedIndex: PropTypes.number,\n isOpen: PropTypes.bool,\n defaultIsOpen: PropTypes.bool,\n initialIsOpen: PropTypes.bool,\n selectedItem: PropTypes.any,\n initialSelectedItem: PropTypes.any,\n defaultSelectedItem: PropTypes.any,\n inputValue: PropTypes.string,\n defaultInputValue: PropTypes.string,\n initialInputValue: PropTypes.string,\n id: PropTypes.string,\n labelId: PropTypes.string,\n menuId: PropTypes.string,\n getItemId: PropTypes.func,\n inputId: PropTypes.string,\n toggleButtonId: PropTypes.string,\n stateReducer: PropTypes.func,\n onSelectedItemChange: PropTypes.func,\n onHighlightedIndexChange: PropTypes.func,\n onStateChange: PropTypes.func,\n onIsOpenChange: PropTypes.func,\n onInputValueChange: PropTypes.func,\n environment: PropTypes.shape({\n addEventListener: PropTypes.func,\n removeEventListener: PropTypes.func,\n document: PropTypes.shape({\n getElementById: PropTypes.func,\n activeElement: PropTypes.any,\n body: PropTypes.any\n })\n })\n};\n/**\n * The useCombobox version of useControlledReducer, which also\n * checks if the controlled prop selectedItem changed between\n * renders. If so, it will also update inputValue with its\n * string equivalent. It uses the common useEnhancedReducer to\n * compute the rest of the state.\n *\n * @param {Function} reducer Reducer function from downshift.\n * @param {Object} initialState Initial state of the hook.\n * @param {Object} props The hook props.\n * @returns {Array} An array with the state and an action dispatcher.\n */\n\nfunction useControlledReducer(reducer, initialState, props) {\n var previousSelectedItemRef = useRef();\n\n var _useEnhancedReducer = useEnhancedReducer(reducer, initialState, props),\n state = _useEnhancedReducer[0],\n dispatch = _useEnhancedReducer[1]; // ToDo: if needed, make same approach as selectedItemChanged from Downshift.\n\n\n useEffect(function () {\n if (isControlledProp(props, 'selectedItem')) {\n if (previousSelectedItemRef.current !== props.selectedItem) {\n dispatch({\n type: ControlledPropUpdatedSelectedItem,\n inputValue: props.itemToString(props.selectedItem)\n });\n }\n\n previousSelectedItemRef.current = state.selectedItem === previousSelectedItemRef.current ? props.selectedItem : state.selectedItem;\n }\n });\n return [getState(state, props), dispatch];\n} // eslint-disable-next-line import/no-mutable-exports\n\n\nvar validatePropTypes$1 = noop;\n/* istanbul ignore next */\n\nif (process.env.NODE_ENV !== 'production') {\n validatePropTypes$1 = function validatePropTypes(options, caller) {\n PropTypes.checkPropTypes(propTypes$1, options, 'prop', caller.name);\n };\n}\n\nvar defaultProps$1 = _extends({}, defaultProps$3, {\n getA11yStatusMessage: getA11yStatusMessage$1,\n circularNavigation: true\n});\n\n/* eslint-disable complexity */\n\nfunction downshiftUseComboboxReducer(state, action) {\n var type = action.type,\n props = action.props,\n shiftKey = action.shiftKey;\n var changes;\n\n switch (type) {\n case ItemClick:\n changes = {\n isOpen: getDefaultValue$1(props, 'isOpen'),\n highlightedIndex: getDefaultValue$1(props, 'highlightedIndex'),\n selectedItem: props.items[action.index],\n inputValue: props.itemToString(props.items[action.index])\n };\n break;\n\n case InputKeyDownArrowDown:\n if (state.isOpen) {\n changes = {\n highlightedIndex: getNextWrappingIndex(shiftKey ? 5 : 1, state.highlightedIndex, props.items.length, action.getItemNodeFromIndex, props.circularNavigation)\n };\n } else {\n changes = {\n highlightedIndex: getHighlightedIndexOnOpen(props, state, 1, action.getItemNodeFromIndex),\n isOpen: props.items.length >= 0\n };\n }\n\n break;\n\n case InputKeyDownArrowUp:\n if (state.isOpen) {\n changes = {\n highlightedIndex: getNextWrappingIndex(shiftKey ? -5 : -1, state.highlightedIndex, props.items.length, action.getItemNodeFromIndex, props.circularNavigation)\n };\n } else {\n changes = {\n highlightedIndex: getHighlightedIndexOnOpen(props, state, -1, action.getItemNodeFromIndex),\n isOpen: props.items.length >= 0\n };\n }\n\n break;\n\n case InputKeyDownEnter:\n changes = _extends({}, state.isOpen && state.highlightedIndex >= 0 && {\n selectedItem: props.items[state.highlightedIndex],\n isOpen: getDefaultValue$1(props, 'isOpen'),\n highlightedIndex: getDefaultValue$1(props, 'highlightedIndex'),\n inputValue: props.itemToString(props.items[state.highlightedIndex])\n });\n break;\n\n case InputKeyDownEscape:\n changes = _extends({\n isOpen: false,\n highlightedIndex: -1\n }, !state.isOpen && {\n selectedItem: null,\n inputValue: ''\n });\n break;\n\n case InputKeyDownHome:\n changes = {\n highlightedIndex: getNextNonDisabledIndex(1, 0, props.items.length, action.getItemNodeFromIndex, false)\n };\n break;\n\n case InputKeyDownEnd:\n changes = {\n highlightedIndex: getNextNonDisabledIndex(-1, props.items.length - 1, props.items.length, action.getItemNodeFromIndex, false)\n };\n break;\n\n case InputBlur:\n changes = _extends({\n isOpen: false,\n highlightedIndex: -1\n }, state.highlightedIndex >= 0 && action.selectItem && {\n selectedItem: props.items[state.highlightedIndex],\n inputValue: props.itemToString(props.items[state.highlightedIndex])\n });\n break;\n\n case InputChange:\n changes = {\n isOpen: true,\n highlightedIndex: getDefaultValue$1(props, 'highlightedIndex'),\n inputValue: action.inputValue\n };\n break;\n\n case FunctionSelectItem:\n changes = {\n selectedItem: action.selectedItem,\n inputValue: props.itemToString(action.selectedItem)\n };\n break;\n\n case ControlledPropUpdatedSelectedItem:\n changes = {\n inputValue: action.inputValue\n };\n break;\n\n default:\n return downshiftCommonReducer(state, action, stateChangeTypes$1);\n }\n\n return _extends({}, state, changes);\n}\n/* eslint-enable complexity */\n\nvar _excluded$1 = [\"onMouseLeave\", \"refKey\", \"ref\"],\n _excluded2$1 = [\"item\", \"index\", \"refKey\", \"ref\", \"onMouseMove\", \"onClick\", \"onPress\"],\n _excluded3 = [\"onClick\", \"onPress\", \"refKey\", \"ref\"],\n _excluded4 = [\"onKeyDown\", \"onChange\", \"onInput\", \"onBlur\", \"onChangeText\", \"refKey\", \"ref\"],\n _excluded5 = [\"refKey\", \"ref\"];\nuseCombobox.stateChangeTypes = stateChangeTypes$1;\n\nfunction useCombobox(userProps) {\n if (userProps === void 0) {\n userProps = {};\n }\n\n validatePropTypes$1(userProps, useCombobox); // Props defaults and destructuring.\n\n var props = _extends({}, defaultProps$1, userProps);\n\n var initialIsOpen = props.initialIsOpen,\n defaultIsOpen = props.defaultIsOpen,\n items = props.items,\n scrollIntoView = props.scrollIntoView,\n environment = props.environment,\n getA11yStatusMessage = props.getA11yStatusMessage,\n getA11ySelectionMessage = props.getA11ySelectionMessage,\n itemToString = props.itemToString; // Initial state depending on controlled props.\n\n var initialState = getInitialState$1(props);\n\n var _useControlledReducer = useControlledReducer(downshiftUseComboboxReducer, initialState, props),\n state = _useControlledReducer[0],\n dispatch = _useControlledReducer[1];\n\n var isOpen = state.isOpen,\n highlightedIndex = state.highlightedIndex,\n selectedItem = state.selectedItem,\n inputValue = state.inputValue; // Element refs.\n\n var menuRef = useRef(null);\n var itemRefs = useRef({});\n var inputRef = useRef(null);\n var toggleButtonRef = useRef(null);\n var comboboxRef = useRef(null);\n var isInitialMountRef = useRef(true); // prevent id re-generation between renders.\n\n var elementIds = useElementIds(props); // used to keep track of how many items we had on previous cycle.\n\n var previousResultCountRef = useRef(); // utility callback to get item element.\n\n var latest = useLatestRef({\n state: state,\n props: props\n });\n var getItemNodeFromIndex = useCallback(function (index) {\n return itemRefs.current[elementIds.getItemId(index)];\n }, [elementIds]); // Effects.\n // Sets a11y status message on changes in state.\n\n useA11yMessageSetter(getA11yStatusMessage, [isOpen, highlightedIndex, inputValue, items], _extends({\n isInitialMount: isInitialMountRef.current,\n previousResultCount: previousResultCountRef.current,\n items: items,\n environment: environment,\n itemToString: itemToString\n }, state)); // Sets a11y status message on changes in selectedItem.\n\n useA11yMessageSetter(getA11ySelectionMessage, [selectedItem], _extends({\n isInitialMount: isInitialMountRef.current,\n previousResultCount: previousResultCountRef.current,\n items: items,\n environment: environment,\n itemToString: itemToString\n }, state)); // Scroll on highlighted item if change comes from keyboard.\n\n var shouldScrollRef = useScrollIntoView({\n menuElement: menuRef.current,\n highlightedIndex: highlightedIndex,\n isOpen: isOpen,\n itemRefs: itemRefs,\n scrollIntoView: scrollIntoView,\n getItemNodeFromIndex: getItemNodeFromIndex\n });\n useControlPropsValidator({\n isInitialMount: isInitialMountRef.current,\n props: props,\n state: state\n }); // Focus the input on first render if required.\n\n useEffect(function () {\n var focusOnOpen = initialIsOpen || defaultIsOpen || isOpen;\n\n if (focusOnOpen && inputRef.current) {\n inputRef.current.focus();\n } // eslint-disable-next-line react-hooks/exhaustive-deps\n\n }, []);\n useEffect(function () {\n if (isInitialMountRef.current) {\n return;\n }\n\n previousResultCountRef.current = items.length;\n }); // Add mouse/touch events to document.\n\n var mouseAndTouchTrackersRef = useMouseAndTouchTracker(isOpen, [comboboxRef, menuRef, toggleButtonRef], environment, function () {\n dispatch({\n type: InputBlur,\n selectItem: false\n });\n });\n var setGetterPropCallInfo = useGetterPropsCalledChecker('getInputProps', 'getComboboxProps', 'getMenuProps'); // Make initial ref false.\n\n useEffect(function () {\n isInitialMountRef.current = false;\n }, []); // Reset itemRefs on close.\n\n useEffect(function () {\n if (!isOpen) {\n itemRefs.current = {};\n }\n }, [isOpen]);\n /* Event handler functions */\n\n var inputKeyDownHandlers = useMemo(function () {\n return {\n ArrowDown: function ArrowDown(event) {\n event.preventDefault();\n dispatch({\n type: InputKeyDownArrowDown,\n shiftKey: event.shiftKey,\n getItemNodeFromIndex: getItemNodeFromIndex\n });\n },\n ArrowUp: function ArrowUp(event) {\n event.preventDefault();\n dispatch({\n type: InputKeyDownArrowUp,\n shiftKey: event.shiftKey,\n getItemNodeFromIndex: getItemNodeFromIndex\n });\n },\n Home: function Home(event) {\n if (!latest.current.state.isOpen) {\n return;\n }\n\n event.preventDefault();\n dispatch({\n type: InputKeyDownHome,\n getItemNodeFromIndex: getItemNodeFromIndex\n });\n },\n End: function End(event) {\n if (!latest.current.state.isOpen) {\n return;\n }\n\n event.preventDefault();\n dispatch({\n type: InputKeyDownEnd,\n getItemNodeFromIndex: getItemNodeFromIndex\n });\n },\n Escape: function Escape() {\n var latestState = latest.current.state;\n\n if (latestState.isOpen || latestState.inputValue || latestState.selectedItem || latestState.highlightedIndex > -1) {\n dispatch({\n type: InputKeyDownEscape\n });\n }\n },\n Enter: function Enter(event) {\n var latestState = latest.current.state; // if closed or no highlighted index, do nothing.\n\n if (!latestState.isOpen || latestState.highlightedIndex < 0 || event.which === 229 // if IME composing, wait for next Enter keydown event.\n ) {\n return;\n }\n\n event.preventDefault();\n dispatch({\n type: InputKeyDownEnter,\n getItemNodeFromIndex: getItemNodeFromIndex\n });\n }\n };\n }, [dispatch, latest, getItemNodeFromIndex]); // Getter props.\n\n var getLabelProps = useCallback(function (labelProps) {\n return _extends({\n id: elementIds.labelId,\n htmlFor: elementIds.inputId\n }, labelProps);\n }, [elementIds]);\n var getMenuProps = useCallback(function (_temp, _temp2) {\n var _extends2;\n\n var _ref = _temp === void 0 ? {} : _temp,\n onMouseLeave = _ref.onMouseLeave,\n _ref$refKey = _ref.refKey,\n refKey = _ref$refKey === void 0 ? 'ref' : _ref$refKey,\n ref = _ref.ref,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$1);\n\n var _ref2 = _temp2 === void 0 ? {} : _temp2,\n _ref2$suppressRefErro = _ref2.suppressRefError,\n suppressRefError = _ref2$suppressRefErro === void 0 ? false : _ref2$suppressRefErro;\n\n setGetterPropCallInfo('getMenuProps', suppressRefError, refKey, menuRef);\n return _extends((_extends2 = {}, _extends2[refKey] = handleRefs(ref, function (menuNode) {\n menuRef.current = menuNode;\n }), _extends2.id = elementIds.menuId, _extends2.role = 'listbox', _extends2['aria-labelledby'] = elementIds.labelId, _extends2.onMouseLeave = callAllEventHandlers(onMouseLeave, function () {\n dispatch({\n type: MenuMouseLeave\n });\n }), _extends2), rest);\n }, [dispatch, setGetterPropCallInfo, elementIds]);\n var getItemProps = useCallback(function (_temp3) {\n var _extends3, _ref4;\n\n var _ref3 = _temp3 === void 0 ? {} : _temp3,\n item = _ref3.item,\n index = _ref3.index,\n _ref3$refKey = _ref3.refKey,\n refKey = _ref3$refKey === void 0 ? 'ref' : _ref3$refKey,\n ref = _ref3.ref,\n onMouseMove = _ref3.onMouseMove,\n onClick = _ref3.onClick;\n _ref3.onPress;\n var rest = _objectWithoutPropertiesLoose(_ref3, _excluded2$1);\n\n var _latest$current = latest.current,\n latestProps = _latest$current.props,\n latestState = _latest$current.state;\n var itemIndex = getItemIndex(index, item, latestProps.items);\n\n if (itemIndex < 0) {\n throw new Error('Pass either item or item index in getItemProps!');\n }\n\n var onSelectKey = 'onClick';\n var customClickHandler = onClick;\n\n var itemHandleMouseMove = function itemHandleMouseMove() {\n if (index === latestState.highlightedIndex) {\n return;\n }\n\n shouldScrollRef.current = false;\n dispatch({\n type: ItemMouseMove,\n index: index\n });\n };\n\n var itemHandleClick = function itemHandleClick() {\n dispatch({\n type: ItemClick,\n index: index\n });\n\n if (inputRef.current) {\n inputRef.current.focus();\n }\n };\n\n return _extends((_extends3 = {}, _extends3[refKey] = handleRefs(ref, function (itemNode) {\n if (itemNode) {\n itemRefs.current[elementIds.getItemId(itemIndex)] = itemNode;\n }\n }), _extends3.role = 'option', _extends3['aria-selected'] = \"\" + (itemIndex === latestState.highlightedIndex), _extends3.id = elementIds.getItemId(itemIndex), _extends3), !rest.disabled && (_ref4 = {\n onMouseMove: callAllEventHandlers(onMouseMove, itemHandleMouseMove)\n }, _ref4[onSelectKey] = callAllEventHandlers(customClickHandler, itemHandleClick), _ref4), rest);\n }, [dispatch, latest, shouldScrollRef, elementIds]);\n var getToggleButtonProps = useCallback(function (_temp4) {\n var _extends4;\n\n var _ref5 = _temp4 === void 0 ? {} : _temp4,\n onClick = _ref5.onClick;\n _ref5.onPress;\n var _ref5$refKey = _ref5.refKey,\n refKey = _ref5$refKey === void 0 ? 'ref' : _ref5$refKey,\n ref = _ref5.ref,\n rest = _objectWithoutPropertiesLoose(_ref5, _excluded3);\n\n var toggleButtonHandleClick = function toggleButtonHandleClick() {\n dispatch({\n type: ToggleButtonClick\n });\n\n if (!latest.current.state.isOpen && inputRef.current) {\n inputRef.current.focus();\n }\n };\n\n return _extends((_extends4 = {}, _extends4[refKey] = handleRefs(ref, function (toggleButtonNode) {\n toggleButtonRef.current = toggleButtonNode;\n }), _extends4.id = elementIds.toggleButtonId, _extends4.tabIndex = -1, _extends4), !rest.disabled && _extends({}, {\n onClick: callAllEventHandlers(onClick, toggleButtonHandleClick)\n }), rest);\n }, [dispatch, latest, elementIds]);\n var getInputProps = useCallback(function (_temp5, _temp6) {\n var _extends5;\n\n var _ref6 = _temp5 === void 0 ? {} : _temp5,\n onKeyDown = _ref6.onKeyDown,\n onChange = _ref6.onChange,\n onInput = _ref6.onInput,\n onBlur = _ref6.onBlur;\n _ref6.onChangeText;\n var _ref6$refKey = _ref6.refKey,\n refKey = _ref6$refKey === void 0 ? 'ref' : _ref6$refKey,\n ref = _ref6.ref,\n rest = _objectWithoutPropertiesLoose(_ref6, _excluded4);\n\n var _ref7 = _temp6 === void 0 ? {} : _temp6,\n _ref7$suppressRefErro = _ref7.suppressRefError,\n suppressRefError = _ref7$suppressRefErro === void 0 ? false : _ref7$suppressRefErro;\n\n setGetterPropCallInfo('getInputProps', suppressRefError, refKey, inputRef);\n var latestState = latest.current.state;\n\n var inputHandleKeyDown = function inputHandleKeyDown(event) {\n var key = normalizeArrowKey(event);\n\n if (key && inputKeyDownHandlers[key]) {\n inputKeyDownHandlers[key](event);\n }\n };\n\n var inputHandleChange = function inputHandleChange(event) {\n dispatch({\n type: InputChange,\n inputValue: event.target.value\n });\n };\n\n var inputHandleBlur = function inputHandleBlur() {\n /* istanbul ignore else */\n if (latestState.isOpen && !mouseAndTouchTrackersRef.current.isMouseDown) {\n dispatch({\n type: InputBlur,\n selectItem: true\n });\n }\n };\n /* istanbul ignore next (preact) */\n\n\n var onChangeKey = 'onChange';\n var eventHandlers = {};\n\n if (!rest.disabled) {\n var _eventHandlers;\n\n eventHandlers = (_eventHandlers = {}, _eventHandlers[onChangeKey] = callAllEventHandlers(onChange, onInput, inputHandleChange), _eventHandlers.onKeyDown = callAllEventHandlers(onKeyDown, inputHandleKeyDown), _eventHandlers.onBlur = callAllEventHandlers(onBlur, inputHandleBlur), _eventHandlers);\n }\n\n return _extends((_extends5 = {}, _extends5[refKey] = handleRefs(ref, function (inputNode) {\n inputRef.current = inputNode;\n }), _extends5.id = elementIds.inputId, _extends5['aria-autocomplete'] = 'list', _extends5['aria-controls'] = elementIds.menuId, _extends5), latestState.isOpen && latestState.highlightedIndex > -1 && {\n 'aria-activedescendant': elementIds.getItemId(latestState.highlightedIndex)\n }, {\n 'aria-labelledby': elementIds.labelId,\n // https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion\n // revert back since autocomplete=\"nope\" is ignored on latest Chrome and Opera\n autoComplete: 'off',\n value: latestState.inputValue\n }, eventHandlers, rest);\n }, [dispatch, inputKeyDownHandlers, latest, mouseAndTouchTrackersRef, setGetterPropCallInfo, elementIds]);\n var getComboboxProps = useCallback(function (_temp7, _temp8) {\n var _extends6;\n\n var _ref8 = _temp7 === void 0 ? {} : _temp7,\n _ref8$refKey = _ref8.refKey,\n refKey = _ref8$refKey === void 0 ? 'ref' : _ref8$refKey,\n ref = _ref8.ref,\n rest = _objectWithoutPropertiesLoose(_ref8, _excluded5);\n\n var _ref9 = _temp8 === void 0 ? {} : _temp8,\n _ref9$suppressRefErro = _ref9.suppressRefError,\n suppressRefError = _ref9$suppressRefErro === void 0 ? false : _ref9$suppressRefErro;\n\n setGetterPropCallInfo('getComboboxProps', suppressRefError, refKey, comboboxRef);\n return _extends((_extends6 = {}, _extends6[refKey] = handleRefs(ref, function (comboboxNode) {\n comboboxRef.current = comboboxNode;\n }), _extends6.role = 'combobox', _extends6['aria-haspopup'] = 'listbox', _extends6['aria-owns'] = elementIds.menuId, _extends6['aria-expanded'] = latest.current.state.isOpen, _extends6), rest);\n }, [latest, setGetterPropCallInfo, elementIds]); // returns\n\n var toggleMenu = useCallback(function () {\n dispatch({\n type: FunctionToggleMenu\n });\n }, [dispatch]);\n var closeMenu = useCallback(function () {\n dispatch({\n type: FunctionCloseMenu\n });\n }, [dispatch]);\n var openMenu = useCallback(function () {\n dispatch({\n type: FunctionOpenMenu\n });\n }, [dispatch]);\n var setHighlightedIndex = useCallback(function (newHighlightedIndex) {\n dispatch({\n type: FunctionSetHighlightedIndex,\n highlightedIndex: newHighlightedIndex\n });\n }, [dispatch]);\n var selectItem = useCallback(function (newSelectedItem) {\n dispatch({\n type: FunctionSelectItem,\n selectedItem: newSelectedItem\n });\n }, [dispatch]);\n var setInputValue = useCallback(function (newInputValue) {\n dispatch({\n type: FunctionSetInputValue,\n inputValue: newInputValue\n });\n }, [dispatch]);\n var reset = useCallback(function () {\n dispatch({\n type: FunctionReset$1\n });\n }, [dispatch]);\n return {\n // prop getters.\n getItemProps: getItemProps,\n getLabelProps: getLabelProps,\n getMenuProps: getMenuProps,\n getInputProps: getInputProps,\n getComboboxProps: getComboboxProps,\n getToggleButtonProps: getToggleButtonProps,\n // actions.\n toggleMenu: toggleMenu,\n openMenu: openMenu,\n closeMenu: closeMenu,\n setHighlightedIndex: setHighlightedIndex,\n setInputValue: setInputValue,\n selectItem: selectItem,\n reset: reset,\n // state.\n highlightedIndex: highlightedIndex,\n isOpen: isOpen,\n selectedItem: selectedItem,\n inputValue: inputValue\n };\n}\n\nvar defaultStateValues = {\n activeIndex: -1,\n selectedItems: []\n};\n/**\n * Returns the initial value for a state key in the following order:\n * 1. controlled prop, 2. initial prop, 3. default prop, 4. default\n * value from Downshift.\n *\n * @param {Object} props Props passed to the hook.\n * @param {string} propKey Props key to generate the value for.\n * @returns {any} The initial value for that prop.\n */\n\nfunction getInitialValue(props, propKey) {\n return getInitialValue$1(props, propKey, defaultStateValues);\n}\n/**\n * Returns the default value for a state key in the following order:\n * 1. controlled prop, 2. default prop, 3. default value from Downshift.\n *\n * @param {Object} props Props passed to the hook.\n * @param {string} propKey Props key to generate the value for.\n * @returns {any} The initial value for that prop.\n */\n\n\nfunction getDefaultValue(props, propKey) {\n return getDefaultValue$1(props, propKey, defaultStateValues);\n}\n/**\n * Gets the initial state based on the provided props. It uses initial, default\n * and controlled props related to state in order to compute the initial value.\n *\n * @param {Object} props Props passed to the hook.\n * @returns {Object} The initial state.\n */\n\n\nfunction getInitialState(props) {\n var activeIndex = getInitialValue(props, 'activeIndex');\n var selectedItems = getInitialValue(props, 'selectedItems');\n return {\n activeIndex: activeIndex,\n selectedItems: selectedItems\n };\n}\n/**\n * Returns true if dropdown keydown operation is permitted. Should not be\n * allowed on keydown with modifier keys (ctrl, alt, shift, meta), on\n * input element with text content that is either highlighted or selection\n * cursor is not at the starting position.\n *\n * @param {KeyboardEvent} event The event from keydown.\n * @returns {boolean} Whether the operation is allowed.\n */\n\n\nfunction isKeyDownOperationPermitted(event) {\n if (event.shiftKey || event.metaKey || event.ctrlKey || event.altKey) {\n return false;\n }\n\n var element = event.target;\n\n if (element instanceof HTMLInputElement && // if element is a text input\n element.value !== '' && (element.selectionStart !== 0 || element.selectionEnd !== 0)) {\n return false;\n }\n\n return true;\n}\n/**\n * Returns a message to be added to aria-live region when item is removed.\n *\n * @param {Object} selectionParameters Parameters required to build the message.\n * @returns {string} The a11y message.\n */\n\n\nfunction getA11yRemovalMessage(selectionParameters) {\n var removedSelectedItem = selectionParameters.removedSelectedItem,\n itemToStringLocal = selectionParameters.itemToString;\n return itemToStringLocal(removedSelectedItem) + \" has been removed.\";\n}\n\nvar propTypes = {\n selectedItems: PropTypes.array,\n initialSelectedItems: PropTypes.array,\n defaultSelectedItems: PropTypes.array,\n itemToString: PropTypes.func,\n getA11yRemovalMessage: PropTypes.func,\n stateReducer: PropTypes.func,\n activeIndex: PropTypes.number,\n initialActiveIndex: PropTypes.number,\n defaultActiveIndex: PropTypes.number,\n onActiveIndexChange: PropTypes.func,\n onSelectedItemsChange: PropTypes.func,\n keyNavigationNext: PropTypes.string,\n keyNavigationPrevious: PropTypes.string,\n environment: PropTypes.shape({\n addEventListener: PropTypes.func,\n removeEventListener: PropTypes.func,\n document: PropTypes.shape({\n getElementById: PropTypes.func,\n activeElement: PropTypes.any,\n body: PropTypes.any\n })\n })\n};\nvar defaultProps = {\n itemToString: defaultProps$3.itemToString,\n stateReducer: defaultProps$3.stateReducer,\n environment: defaultProps$3.environment,\n getA11yRemovalMessage: getA11yRemovalMessage,\n keyNavigationNext: 'ArrowRight',\n keyNavigationPrevious: 'ArrowLeft'\n}; // eslint-disable-next-line import/no-mutable-exports\n\nvar validatePropTypes = noop;\n/* istanbul ignore next */\n\nif (process.env.NODE_ENV !== 'production') {\n validatePropTypes = function validatePropTypes(options, caller) {\n PropTypes.checkPropTypes(propTypes, options, 'prop', caller.name);\n };\n}\n\nvar SelectedItemClick = process.env.NODE_ENV !== \"production\" ? '__selected_item_click__' : 0;\nvar SelectedItemKeyDownDelete = process.env.NODE_ENV !== \"production\" ? '__selected_item_keydown_delete__' : 1;\nvar SelectedItemKeyDownBackspace = process.env.NODE_ENV !== \"production\" ? '__selected_item_keydown_backspace__' : 2;\nvar SelectedItemKeyDownNavigationNext = process.env.NODE_ENV !== \"production\" ? '__selected_item_keydown_navigation_next__' : 3;\nvar SelectedItemKeyDownNavigationPrevious = process.env.NODE_ENV !== \"production\" ? '__selected_item_keydown_navigation_previous__' : 4;\nvar DropdownKeyDownNavigationPrevious = process.env.NODE_ENV !== \"production\" ? '__dropdown_keydown_navigation_previous__' : 5;\nvar DropdownKeyDownBackspace = process.env.NODE_ENV !== \"production\" ? '__dropdown_keydown_backspace__' : 6;\nvar DropdownClick = process.env.NODE_ENV !== \"production\" ? '__dropdown_click__' : 7;\nvar FunctionAddSelectedItem = process.env.NODE_ENV !== \"production\" ? '__function_add_selected_item__' : 8;\nvar FunctionRemoveSelectedItem = process.env.NODE_ENV !== \"production\" ? '__function_remove_selected_item__' : 9;\nvar FunctionSetSelectedItems = process.env.NODE_ENV !== \"production\" ? '__function_set_selected_items__' : 10;\nvar FunctionSetActiveIndex = process.env.NODE_ENV !== \"production\" ? '__function_set_active_index__' : 11;\nvar FunctionReset = process.env.NODE_ENV !== \"production\" ? '__function_reset__' : 12;\n\nvar stateChangeTypes = /*#__PURE__*/Object.freeze({\n __proto__: null,\n SelectedItemClick: SelectedItemClick,\n SelectedItemKeyDownDelete: SelectedItemKeyDownDelete,\n SelectedItemKeyDownBackspace: SelectedItemKeyDownBackspace,\n SelectedItemKeyDownNavigationNext: SelectedItemKeyDownNavigationNext,\n SelectedItemKeyDownNavigationPrevious: SelectedItemKeyDownNavigationPrevious,\n DropdownKeyDownNavigationPrevious: DropdownKeyDownNavigationPrevious,\n DropdownKeyDownBackspace: DropdownKeyDownBackspace,\n DropdownClick: DropdownClick,\n FunctionAddSelectedItem: FunctionAddSelectedItem,\n FunctionRemoveSelectedItem: FunctionRemoveSelectedItem,\n FunctionSetSelectedItems: FunctionSetSelectedItems,\n FunctionSetActiveIndex: FunctionSetActiveIndex,\n FunctionReset: FunctionReset\n});\n\n/* eslint-disable complexity */\n\nfunction downshiftMultipleSelectionReducer(state, action) {\n var type = action.type,\n index = action.index,\n props = action.props,\n selectedItem = action.selectedItem;\n var activeIndex = state.activeIndex,\n selectedItems = state.selectedItems;\n var changes;\n\n switch (type) {\n case SelectedItemClick:\n changes = {\n activeIndex: index\n };\n break;\n\n case SelectedItemKeyDownNavigationPrevious:\n changes = {\n activeIndex: activeIndex - 1 < 0 ? 0 : activeIndex - 1\n };\n break;\n\n case SelectedItemKeyDownNavigationNext:\n changes = {\n activeIndex: activeIndex + 1 >= selectedItems.length ? -1 : activeIndex + 1\n };\n break;\n\n case SelectedItemKeyDownBackspace:\n case SelectedItemKeyDownDelete:\n {\n var newActiveIndex = activeIndex;\n\n if (selectedItems.length === 1) {\n newActiveIndex = -1;\n } else if (activeIndex === selectedItems.length - 1) {\n newActiveIndex = selectedItems.length - 2;\n }\n\n changes = _extends({\n selectedItems: [].concat(selectedItems.slice(0, activeIndex), selectedItems.slice(activeIndex + 1))\n }, {\n activeIndex: newActiveIndex\n });\n break;\n }\n\n case DropdownKeyDownNavigationPrevious:\n changes = {\n activeIndex: selectedItems.length - 1\n };\n break;\n\n case DropdownKeyDownBackspace:\n changes = {\n selectedItems: selectedItems.slice(0, selectedItems.length - 1)\n };\n break;\n\n case FunctionAddSelectedItem:\n changes = {\n selectedItems: [].concat(selectedItems, [selectedItem])\n };\n break;\n\n case DropdownClick:\n changes = {\n activeIndex: -1\n };\n break;\n\n case FunctionRemoveSelectedItem:\n {\n var _newActiveIndex = activeIndex;\n var selectedItemIndex = selectedItems.indexOf(selectedItem);\n\n if (selectedItems.length === 1) {\n _newActiveIndex = -1;\n } else if (selectedItemIndex === selectedItems.length - 1) {\n _newActiveIndex = selectedItems.length - 2;\n }\n\n changes = _extends({\n selectedItems: [].concat(selectedItems.slice(0, selectedItemIndex), selectedItems.slice(selectedItemIndex + 1))\n }, {\n activeIndex: _newActiveIndex\n });\n break;\n }\n\n case FunctionSetSelectedItems:\n {\n var newSelectedItems = action.selectedItems;\n changes = {\n selectedItems: newSelectedItems\n };\n break;\n }\n\n case FunctionSetActiveIndex:\n {\n var _newActiveIndex2 = action.activeIndex;\n changes = {\n activeIndex: _newActiveIndex2\n };\n break;\n }\n\n case FunctionReset:\n changes = {\n activeIndex: getDefaultValue(props, 'activeIndex'),\n selectedItems: getDefaultValue(props, 'selectedItems')\n };\n break;\n\n default:\n throw new Error('Reducer called without proper action type.');\n }\n\n return _extends({}, state, changes);\n}\n\nvar _excluded = [\"refKey\", \"ref\", \"onClick\", \"onKeyDown\", \"selectedItem\", \"index\"],\n _excluded2 = [\"refKey\", \"ref\", \"onKeyDown\", \"onClick\", \"preventKeyAction\"];\nuseMultipleSelection.stateChangeTypes = stateChangeTypes;\n\nfunction useMultipleSelection(userProps) {\n if (userProps === void 0) {\n userProps = {};\n }\n\n validatePropTypes(userProps, useMultipleSelection); // Props defaults and destructuring.\n\n var props = _extends({}, defaultProps, userProps);\n\n var getA11yRemovalMessage = props.getA11yRemovalMessage,\n itemToString = props.itemToString,\n environment = props.environment,\n keyNavigationNext = props.keyNavigationNext,\n keyNavigationPrevious = props.keyNavigationPrevious; // Reducer init.\n\n var _useControlledReducer = useControlledReducer$1(downshiftMultipleSelectionReducer, getInitialState(props), props),\n state = _useControlledReducer[0],\n dispatch = _useControlledReducer[1];\n\n var activeIndex = state.activeIndex,\n selectedItems = state.selectedItems; // Refs.\n\n var isInitialMountRef = useRef(true);\n var dropdownRef = useRef(null);\n var previousSelectedItemsRef = useRef(selectedItems);\n var selectedItemRefs = useRef();\n selectedItemRefs.current = [];\n var latest = useLatestRef({\n state: state,\n props: props\n }); // Effects.\n\n /* Sets a11y status message on changes in selectedItem. */\n\n useEffect(function () {\n if (isInitialMountRef.current) {\n return;\n }\n\n if (selectedItems.length < previousSelectedItemsRef.current.length) {\n var removedSelectedItem = previousSelectedItemsRef.current.find(function (item) {\n return selectedItems.indexOf(item) < 0;\n });\n setStatus(getA11yRemovalMessage({\n itemToString: itemToString,\n resultCount: selectedItems.length,\n removedSelectedItem: removedSelectedItem,\n activeIndex: activeIndex,\n activeSelectedItem: selectedItems[activeIndex]\n }), environment.document);\n }\n\n previousSelectedItemsRef.current = selectedItems; // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedItems.length]); // Sets focus on active item.\n\n useEffect(function () {\n if (isInitialMountRef.current) {\n return;\n }\n\n if (activeIndex === -1 && dropdownRef.current) {\n dropdownRef.current.focus();\n } else if (selectedItemRefs.current[activeIndex]) {\n selectedItemRefs.current[activeIndex].focus();\n }\n }, [activeIndex]);\n useControlPropsValidator({\n isInitialMount: isInitialMountRef.current,\n props: props,\n state: state\n });\n var setGetterPropCallInfo = useGetterPropsCalledChecker('getDropdownProps'); // Make initial ref false.\n\n useEffect(function () {\n isInitialMountRef.current = false;\n }, []); // Event handler functions.\n\n var selectedItemKeyDownHandlers = useMemo(function () {\n var _ref;\n\n return _ref = {}, _ref[keyNavigationPrevious] = function () {\n dispatch({\n type: SelectedItemKeyDownNavigationPrevious\n });\n }, _ref[keyNavigationNext] = function () {\n dispatch({\n type: SelectedItemKeyDownNavigationNext\n });\n }, _ref.Delete = function Delete() {\n dispatch({\n type: SelectedItemKeyDownDelete\n });\n }, _ref.Backspace = function Backspace() {\n dispatch({\n type: SelectedItemKeyDownBackspace\n });\n }, _ref;\n }, [dispatch, keyNavigationNext, keyNavigationPrevious]);\n var dropdownKeyDownHandlers = useMemo(function () {\n var _ref2;\n\n return _ref2 = {}, _ref2[keyNavigationPrevious] = function (event) {\n if (isKeyDownOperationPermitted(event)) {\n dispatch({\n type: DropdownKeyDownNavigationPrevious\n });\n }\n }, _ref2.Backspace = function Backspace(event) {\n if (isKeyDownOperationPermitted(event)) {\n dispatch({\n type: DropdownKeyDownBackspace\n });\n }\n }, _ref2;\n }, [dispatch, keyNavigationPrevious]); // Getter props.\n\n var getSelectedItemProps = useCallback(function (_temp) {\n var _extends2;\n\n var _ref3 = _temp === void 0 ? {} : _temp,\n _ref3$refKey = _ref3.refKey,\n refKey = _ref3$refKey === void 0 ? 'ref' : _ref3$refKey,\n ref = _ref3.ref,\n onClick = _ref3.onClick,\n onKeyDown = _ref3.onKeyDown,\n selectedItem = _ref3.selectedItem,\n index = _ref3.index,\n rest = _objectWithoutPropertiesLoose(_ref3, _excluded);\n\n var latestState = latest.current.state;\n var itemIndex = getItemIndex(index, selectedItem, latestState.selectedItems);\n\n if (itemIndex < 0) {\n throw new Error('Pass either selectedItem or index in getSelectedItemProps!');\n }\n\n var selectedItemHandleClick = function selectedItemHandleClick() {\n dispatch({\n type: SelectedItemClick,\n index: index\n });\n };\n\n var selectedItemHandleKeyDown = function selectedItemHandleKeyDown(event) {\n var key = normalizeArrowKey(event);\n\n if (key && selectedItemKeyDownHandlers[key]) {\n selectedItemKeyDownHandlers[key](event);\n }\n };\n\n return _extends((_extends2 = {}, _extends2[refKey] = handleRefs(ref, function (selectedItemNode) {\n if (selectedItemNode) {\n selectedItemRefs.current.push(selectedItemNode);\n }\n }), _extends2.tabIndex = index === latestState.activeIndex ? 0 : -1, _extends2.onClick = callAllEventHandlers(onClick, selectedItemHandleClick), _extends2.onKeyDown = callAllEventHandlers(onKeyDown, selectedItemHandleKeyDown), _extends2), rest);\n }, [dispatch, latest, selectedItemKeyDownHandlers]);\n var getDropdownProps = useCallback(function (_temp2, _temp3) {\n var _extends3;\n\n var _ref4 = _temp2 === void 0 ? {} : _temp2,\n _ref4$refKey = _ref4.refKey,\n refKey = _ref4$refKey === void 0 ? 'ref' : _ref4$refKey,\n ref = _ref4.ref,\n onKeyDown = _ref4.onKeyDown,\n onClick = _ref4.onClick,\n _ref4$preventKeyActio = _ref4.preventKeyAction,\n preventKeyAction = _ref4$preventKeyActio === void 0 ? false : _ref4$preventKeyActio,\n rest = _objectWithoutPropertiesLoose(_ref4, _excluded2);\n\n var _ref5 = _temp3 === void 0 ? {} : _temp3,\n _ref5$suppressRefErro = _ref5.suppressRefError,\n suppressRefError = _ref5$suppressRefErro === void 0 ? false : _ref5$suppressRefErro;\n\n setGetterPropCallInfo('getDropdownProps', suppressRefError, refKey, dropdownRef);\n\n var dropdownHandleKeyDown = function dropdownHandleKeyDown(event) {\n var key = normalizeArrowKey(event);\n\n if (key && dropdownKeyDownHandlers[key]) {\n dropdownKeyDownHandlers[key](event);\n }\n };\n\n var dropdownHandleClick = function dropdownHandleClick() {\n dispatch({\n type: DropdownClick\n });\n };\n\n return _extends((_extends3 = {}, _extends3[refKey] = handleRefs(ref, function (dropdownNode) {\n if (dropdownNode) {\n dropdownRef.current = dropdownNode;\n }\n }), _extends3), !preventKeyAction && {\n onKeyDown: callAllEventHandlers(onKeyDown, dropdownHandleKeyDown),\n onClick: callAllEventHandlers(onClick, dropdownHandleClick)\n }, rest);\n }, [dispatch, dropdownKeyDownHandlers, setGetterPropCallInfo]); // returns\n\n var addSelectedItem = useCallback(function (selectedItem) {\n dispatch({\n type: FunctionAddSelectedItem,\n selectedItem: selectedItem\n });\n }, [dispatch]);\n var removeSelectedItem = useCallback(function (selectedItem) {\n dispatch({\n type: FunctionRemoveSelectedItem,\n selectedItem: selectedItem\n });\n }, [dispatch]);\n var setSelectedItems = useCallback(function (newSelectedItems) {\n dispatch({\n type: FunctionSetSelectedItems,\n selectedItems: newSelectedItems\n });\n }, [dispatch]);\n var setActiveIndex = useCallback(function (newActiveIndex) {\n dispatch({\n type: FunctionSetActiveIndex,\n activeIndex: newActiveIndex\n });\n }, [dispatch]);\n var reset = useCallback(function () {\n dispatch({\n type: FunctionReset\n });\n }, [dispatch]);\n return {\n getSelectedItemProps: getSelectedItemProps,\n getDropdownProps: getDropdownProps,\n addSelectedItem: addSelectedItem,\n removeSelectedItem: removeSelectedItem,\n setSelectedItems: setSelectedItems,\n setActiveIndex: setActiveIndex,\n reset: reset,\n selectedItems: selectedItems,\n activeIndex: activeIndex\n };\n}\n\nexport { Downshift$1 as default, resetIdCounter, useCombobox, useMultipleSelection, useSelect };\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\nconst SelectItem = ({ children }) => <>{children}</>;\n\nSelectItem.propTypes = {\n /**\n * String representation of the option.\n *\n * This value is also used as a typeahead; if a user types \"n\" while\n * the Select is open, highlight will move to the first item with a\n * value starting with `n`.\n */\n value: PropTypes.string.isRequired,\n children: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.arrayOf(PropTypes.node),\n ]),\n};\n\nexport default SelectItem;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\nconst SelectAction = ({ children }) => <>{children}</>;\n\nSelectAction.propTypes = {\n /** Side effect to run on selection */\n onSelect: PropTypes.func.isRequired,\n children: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.arrayOf(PropTypes.node),\n ]),\n};\n\nexport default SelectAction;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { useSelect } from \"downshift\";\nimport cc from \"classcat\";\nimport DropdownTrigger from \"../DropdownTrigger\";\nimport SelectItem from \"./SelectItem\";\nimport SelectAction from \"./SelectAction\";\n\nconst noop = () => {};\n\n/**\n * @param {Object} item a Select.Item or Select.Action component\n * @returns {Boolean} true if the item is a Select.Action\n */\nexport const isAction = (item) => {\n let result = false;\n if (item) {\n result = \"onSelect\" in item.props;\n }\n return result;\n};\n\n/**\n * Sets the selected value in the DropdownTrigger.\n * A Select.Action should _not_ display as selected in the button.\n *\n * @param {Object} item the currently selected Select.Item or Select.Action\n * @returns {String|Node} The value to display in the trigger button\n */\nexport const getSelectedItemDisplay = (item) => {\n let result = \"\";\n if (item && !isAction(item)) {\n result = item.props.children;\n }\n return result;\n};\n\n/**\n * @param {String} value `value` of the Select.Item to get\n * @param {Array} items Select.Item nodes\n * @returns {ReactElement|String} the Select.Item elemenet found or an empty string\n */\nexport const getItemByValue = (value, items) => {\n const founditem = items\n .filter((item) => !isAction(item)) // action items are not selectable\n .filter(({ props }) => props.value === value)\n .pop();\n\n return founditem || \"\";\n};\n\n/**\n * Accessible custom select control for giving users the ability to select one option from a list of options.\n * `Select` also supports the ability to pass in a `<Select.Action>` that acts as an option that only triggers a side effect.\n * Typeahead is enabled based on the `value` prop of `<Select.Item>` elements passed in.\n */\nconst Select = ({\n label,\n children,\n onChange = noop,\n value,\n defaultValue,\n defaultOpen = false,\n errorText,\n}) => {\n // The menu should only render children that have `value` or `onSelect` prop\n const items = React.Children.toArray(\n children.filter(({ props }) => \"value\" in props || \"onSelect\" in props)\n );\n\n const downshiftOpts = {\n id: \"nds-select\",\n items,\n initialSelectedItem: defaultValue && getItemByValue(defaultValue, items),\n initialIsOpen: defaultOpen,\n itemToString: (item) => item.props.value || item.props.children, // typeahead string\n onSelectedItemChange: ({ selectedItem }) => {\n // for Select.Action items, we only fire the side effect\n if (isAction(selectedItem)) {\n selectedItem.props.onSelect();\n } else {\n onChange(selectedItem.props.value);\n }\n },\n };\n\n // When `value` prop is passed, the Select becomes fully controlled and the\n // selected item is set programmitically by the consumer only\n if (value !== undefined) {\n downshiftOpts.selectedItem = getItemByValue(value, items);\n }\n\n /** @see https://www.downshift-js.com/use-select */\n const {\n isOpen,\n selectedItem,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n highlightedIndex,\n getItemProps,\n } = useSelect(downshiftOpts);\n\n const hasSelectedItem = selectedItem !== undefined;\n\n return (\n <div className=\"nds-select\">\n <DropdownTrigger\n isOpen={isOpen}\n labelText={label}\n displayValue={getSelectedItemDisplay(selectedItem)}\n labelProps={{ ...getLabelProps() }}\n errorText={errorText}\n {...getToggleButtonProps()}\n />\n <ul\n className={cc([\n \"nds-select-list\",\n \"list--reset bgColor--white rounded--all border--all\",\n { \"nds-select-list--active\": isOpen },\n ])}\n {...getMenuProps()}\n >\n {isOpen &&\n items.map((item, index) => (\n <li\n key={`${item}${index}`}\n className={cc([\n \"nds-select-item\",\n \"alignChild--left--center padding--x--s padding--y--xs\",\n {\n \"nds-select-item--highlighted\": highlightedIndex === index,\n \"rounded--top\": index === 0,\n \"rounded--bottom\": index === items.length - 1,\n // make a left gutter for the checkmark if any item selected\n \"nds-select-item--hasGutter\": hasSelectedItem,\n },\n ])}\n {...getItemProps({ item, index })}\n >\n {hasSelectedItem &&\n selectedItem.props.value === item.props.value && (\n <span className=\"narmi-icon-check fontSize--l fontWeight--bold\" />\n )}\n {item}\n </li>\n ))}\n </ul>\n </div>\n );\n};\n\nSelect.propTypes = {\n /** Label for the select control */\n label: PropTypes.string.isRequired,\n /** Change callback. Called with value string from the selected item */\n onChange: PropTypes.func,\n /**\n * Sets selected item by value and makes the Select **fully controlled**.\n *\n * When passing a `value`, you must provide an `onChange` handler to update it\n */\n value: PropTypes.string,\n /**\n * Use to set a default selection by passing the `value` prop\n * of one of the `<Select.Item>` children.\n * The Select will remain uncontrolled.\n */\n defaultValue: PropTypes.string,\n /** Open the dropdown on render if `true` */\n defaultOpen: PropTypes.bool,\n /**\n * Error message.\n * When passed, this will cause the trigger to render in error state.\n */\n errorText: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.node,\n PropTypes.arrayOf(PropTypes.node),\n ]),\n};\n\nSelect.Item = SelectItem;\nSelect.Action = SelectAction;\nexport default Select;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\n/**\n * Takes a list of elements and places a visual separator between items.\n */\nconst SeparatorList = ({ separator = \"|\", items = [] }) => (\n <ul className=\"list--reset nds-typography nds-separatorList\">\n {items.map((item, i) => {\n const itemProps = {};\n if (i !== items.length - 1) {\n itemProps[\"data-separator\"] = separator;\n }\n return (\n <li key={`${i}-${separator}`} {...itemProps}>\n {item}\n </li>\n );\n })}\n </ul>\n);\n\nSeparatorList.propTypes = {\n /**\n * Items to render in the list\n */\n items: PropTypes.arrayOf(PropTypes.node),\n /**\n * Character to use as separator between items\n */\n separator: PropTypes.string,\n};\n\nexport default SeparatorList;\n","import { createContext } from \"react\";\n\nconst TabsContext = createContext({\n // list of tabIds set by TabsList\n tabIds: [],\n setTabIds: () => {},\n\n // index of tab in source order that is currently selected\n currentIndex: 0,\n\n // only set if there is a TabsPanel present inside Tabs.\n // used to determine when to add aria labelling attributes\n hasPanels: false,\n setHasPanels: () => {},\n\n // allows any consumer of this context to change tabs by id\n changeTabs: () => {},\n});\n\nexport default TabsContext;\n","/* eslint-disable jsx-a11y/no-noninteractive-element-interactions */\nimport React, { useEffect, useContext } from \"react\";\nimport PropTypes from \"prop-types\";\nimport TabsContext from \"./context\";\n\nconst noop = () => {};\n\nconst TabsList = ({ children, xPadding = \"none\" }) => {\n const { tabIds, setTabIds, changeTabs, currentIndex, hasPanels } =\n useContext(TabsContext);\n const childArray = React.Children.toArray(children);\n\n // populate tabIds state variable in root component\n // with tabId props from `Tabs.Tab` children passed into `Tabs.List`\n useEffect(() => {\n if (tabIds.length !== childArray.length) {\n setTabIds(childArray.map((t) => t.props.tabId));\n }\n }, [tabIds, setTabIds, childArray]);\n\n const handleKeyDown = ({ key }) => {\n let newIndex;\n switch (key) {\n case \"ArrowLeft\":\n newIndex = currentIndex - 1;\n if (newIndex >= 0) {\n changeTabs(tabIds[newIndex]);\n }\n break;\n case \"ArrowRight\":\n newIndex = currentIndex + 1;\n if (newIndex <= tabIds.length - 1) {\n changeTabs(tabIds[newIndex]);\n }\n break;\n }\n };\n\n return (\n <ul\n role={hasPanels ? \"tablist\" : undefined}\n className={`nds-tabs-tabsList list--reset padding--x--${xPadding}`}\n onKeyDown={hasPanels ? handleKeyDown : noop}\n tabIndex={hasPanels ? \"0\" : undefined}\n data-testid=\"nds-tablist\"\n >\n {children}\n </ul>\n );\n};\n\nTabsList.propTypes = {\n /** Children must be of type `Tabs.Tab` */\n children: PropTypes.node.isRequired,\n /**\n * Amount of padding to apply on the x axis to indent tabs\n * from edges of the `Tabs.Panel`\n * */\n xPadding: PropTypes.oneOf([\"xxs\", \"xs\", \"s\", \"m\", \"l\", \"xl\", \"none\"]),\n};\n\nTabsList.displayName = \"Tabs.List\";\n\nexport default TabsList;\n","import React, { useContext } from \"react\";\nimport PropTypes from \"prop-types\";\nimport TabsContext from \"./context\";\nimport cc from \"classcat\";\n\nconst TabsTab = ({ label, tabId }) => {\n const { currentIndex, tabIds, hasPanels, changeTabs } =\n useContext(TabsContext);\n const isSelected = tabId === tabIds[currentIndex];\n\n return (\n <li\n className={cc([\n \"nds-tabs-tabItem\",\n {\n \"nds-tabs-tabItem--selected\": isSelected,\n },\n ])}\n >\n <button\n className={cc([\n \"resetButton\",\n \"nds-tabs-button\",\n {\n \"nds-tabs-button--selected\": isSelected,\n },\n ])}\n role={hasPanels ? \"tab\" : undefined}\n aria-selected={isSelected.toString()}\n aria-controls={hasPanels ? `${tabId}-tabpanel` : undefined}\n id={`${tabId}-tab`}\n tabIndex={hasPanels ? \"-1\" : \"0\"}\n onClick={() => changeTabs(tabId)}\n >\n {label}\n </button>\n </li>\n );\n};\n\nTabsTab.propTypes = {\n /** Label of the tab button */\n label: PropTypes.string.isRequired,\n /** String ID used to link the `Tabs.Tab` to a `Tabs.Panel` */\n tabId: PropTypes.string.isRequired,\n};\n\nTabsTab.displayName = \"Tabs.Tab\";\n\nexport default TabsTab;\n","import React, { useEffect, useContext } from \"react\";\nimport PropTypes from \"prop-types\";\nimport TabsContext from \"./context\";\n\nconst TabsPanel = ({ children, tabId }) => {\n const { currentIndex, tabIds, hasPanels, setHasPanels } =\n useContext(TabsContext);\n const selectedId = tabIds[currentIndex];\n\n useEffect(() => {\n if (!hasPanels) {\n setHasPanels(true);\n }\n }, [hasPanels, setHasPanels]);\n\n return (\n <div\n className=\"nds-tabs-panel\"\n tabIndex=\"0\"\n role=\"tabpanel\"\n id={`${tabId}-tabpanel`}\n aria-labelledby={`${tabId}-tab`}\n hidden={tabId !== selectedId ? true : undefined}\n >\n {children}\n </div>\n );\n};\n\nTabsPanel.propTypes = {\n /** The content of the tab panel (any node type) */\n children: PropTypes.node.isRequired,\n /** String ID used to link the `Tabs.Panel` to a `Tabs.Tab` */\n tabId: PropTypes.string.isRequired,\n};\n\nTabsPanel.displayName = \"Tabs.Panel\";\n\nexport default TabsPanel;\n","import React, { useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport cc from \"classcat\";\nimport TabsContext from \"./context\";\nimport TabsList from \"./TabsList\";\nimport TabsTab from \"./TabsTab\";\nimport TabsPanel from \"./TabsPanel\";\n\nconst noop = () => {};\n\n/**\n * Component that handles tabs and tab panels based on WAI-ARIA [best practices](https://www.w3.org/TR/wai-aria-practices/#tabpanel)\n * for the \"tabs\" design pattern.\n *\n * The `Tabs` component mananges its own state, changing the visible tab panel based\n * on user events. Use the `onTabChange` callback to add any custom behaviors.\n */\nconst Tabs = ({\n children,\n defaultSelectedIndex = 0,\n selectedIndex = null,\n onTabChange = noop,\n hasBorder = true,\n}) => {\n const [tabIds, setTabIds] = useState([]);\n const [hasPanels, setHasPanels] = useState(false);\n const [currentIndex, setCurrentIndex] = useState(defaultSelectedIndex);\n const isControlledComponent = selectedIndex !== null;\n\n const changeTabs = (tabId) => {\n const tabIndex = tabIds.indexOf(tabId);\n\n onTabChange(tabIndex);\n\n if (!isControlledComponent) {\n setCurrentIndex(tabIndex);\n }\n };\n\n return (\n <TabsContext.Provider\n value={{\n tabIds,\n setTabIds,\n currentIndex: isControlledComponent ? selectedIndex : currentIndex,\n hasPanels,\n setHasPanels,\n changeTabs,\n }}\n >\n <div className={cc([\"nds-tabs\", { \"nds-tabs--bordered\": hasBorder }])}>\n {children}\n </div>\n </TabsContext.Provider>\n );\n};\n\nTabs.propTypes = {\n /**\n * Direct children of `Tabs` should be one of:\n * `Tabs.List` or `Tabs.Panel`\n */\n children: PropTypes.node.isRequired,\n /**\n * Sets _default_ tab selection by index in source order\n */\n defaultSelectedIndex: PropTypes.number,\n /**\n * Sets selected tab by index, making Tabs **fully controlled**.\n * When using this prop, you must use the `onTabChange` callback\n * to update the value of this prop to update the selected tab.\n */\n selectedIndex: PropTypes.number,\n /** Callback invoked with the index of the tab the user is moving selection to */\n onTabChange: PropTypes.func,\n /** Shows bottom border when `true` */\n hasBorder: PropTypes.bool,\n};\n\nTabs.List = TabsList;\nTabs.Tab = TabsTab;\nTabs.Panel = TabsPanel;\n\nexport default Tabs;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport cc from \"classcat\";\nimport Row from \"../Row\";\n\nconst noop = () => {};\n\n/**\n * A rounded rectangle inline label.\n * The user has the option of firing a callback for 'dismissible' Tags.\n */\nconst Tag = ({\n kind = \"subdued\", // outline, subdued, x-tag (cactus400) #7fbc5b; #7FBC5B oneof\n onDismiss = noop,\n label,\n}) => {\n return (\n <div className={cc([\"nds-typography\", \"nds-tag\", `nds-tag--${kind}`])}>\n <Row alignItems=\"center\" gapSize=\"xxs\">\n <Row.Item shrink>{label}</Row.Item>\n {kind === \"dismissible\" && (\n <Row.Item shrink>\n <span\n className=\"narmi-icon-x\"\n role=\"button\"\n tabIndex={0}\n onClick={onDismiss}\n onKeyUp={({ key }) => {\n if (key === \"Enter\" || key == \" \") {\n onDismiss();\n }\n }}\n />\n </Row.Item>\n )}\n </Row>\n </div>\n );\n};\n\nTag.propTypes = {\n disableAutoPlacement: PropTypes.bool,\n kind: PropTypes.oneOf([\"subdued\", \"dismissible\", \"outline\"]),\n onDismiss: PropTypes.func,\n label: PropTypes.string,\n};\n\nexport default Tag;\n","import React, { useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport cc from \"classcat\";\n\n/**\n * Checkbox behavior with the visual treatment of a physical toggle switch.\n */\nconst Toggle = ({\n defaultActive = false,\n onChange = () => {},\n labelledBy,\n label,\n}) => {\n const [isActive, setIsActive] = useState(defaultActive);\n\n const toggleActive = () => {\n onChange(!isActive);\n setIsActive(!isActive);\n };\n\n const buttonJsx = (\n <button\n className={cc([\n \"resetButton\",\n \"nds-toggle\",\n {\n \"nds-toggle--active\": isActive,\n },\n ])}\n type=\"button\"\n role=\"switch\"\n aria-checked={isActive.toString()}\n onClick={toggleActive}\n aria-labelledby={labelledBy}\n >\n <span className=\"nds-toggle-indicator elevation--low\" />\n <span className=\"nds-toggle-buttonText\">{isActive ? \"on\" : \"off\"}</span>\n </button>\n );\n\n return label ? (\n <label className=\"alignChild--center--center\">\n {buttonJsx}\n <span className=\"padding--left--xs\">{label}</span>\n </label>\n ) : (\n buttonJsx\n );\n};\n\nToggle.propTypes = {\n /**\n * Callback invoked with current active state (bool) as the function argument\n * when user changes the active state of the Toggle\n */\n onChange: PropTypes.func,\n /** When set to `true`, the toggle will initially render as active */\n defaultActive: PropTypes.bool,\n /** Label element to render to the right of the toggle */\n label: PropTypes.string,\n /** ID of element that labels the toggle control (e.g. `my-label-element`)*/\n labelledBy: PropTypes.string,\n};\n\nexport default Toggle;\n","import React, { useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { useLayer, Arrow } from \"react-laag\";\n\n/**\n * Renders a text-only tooltip on hover or focus of a trigger.\n *\n * The tooltip will position itself based on the `side` prop, but will\n * automatically reposition to avoid collisions with viewport edges.\n */\nconst Tooltip = ({\n side = \"top\",\n text,\n children,\n wrapperDisplay = \"inline-flex\",\n maxWidth = \"400px\",\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n const delays = {\n open: 500,\n close: 100,\n };\n let activeTimer;\n\n const openPopover = () => {\n clearTimeout(activeTimer);\n activeTimer = setTimeout(setIsOpen, delays.open, true);\n };\n\n const closePopover = () => {\n clearTimeout(activeTimer);\n activeTimer = setTimeout(setIsOpen, delays.close, false);\n };\n\n const { renderLayer, triggerProps, layerProps, arrowProps } = useLayer({\n isOpen,\n onOutsideClick: closePopover,\n onDisappear: closePopover,\n auto: true,\n placement: `${side}-center`,\n preferX: \"left\",\n preferY: \"top\",\n triggerOffset: 12,\n arrowOffset: 12,\n container: document.body,\n });\n\n return (\n <>\n <div\n {...triggerProps}\n aria-describedby=\"nds-tooltip\"\n style={{ display: wrapperDisplay }}\n onFocus={openPopover}\n onBlur={closePopover}\n onMouseEnter={openPopover}\n onMouseLeave={closePopover}\n role=\"button\"\n tabIndex=\"0\"\n data-testid=\"nds-tooltip-trigger\"\n >\n {children}\n </div>\n {renderLayer(\n <>\n {isOpen && (\n <div\n id=\"nds-tooltip\"\n role=\"tooltip\"\n className=\"nds-typography nds-tooltip elevation--middle\"\n {...layerProps}\n style={{ maxWidth: maxWidth, ...layerProps.style }}\n >\n {text}\n <Arrow {...arrowProps} />\n </div>\n )}\n </>\n )}\n </>\n );\n};\n\nTooltip.propTypes = {\n /** The root node of JSX passed into Tooltip as children will act as the tooltip trigger */\n children: PropTypes.node.isRequired,\n /** Message shown inside the tooltip */\n text: PropTypes.string.isRequired,\n /** Sets prefferred side of the trigger the tooltip should appear */\n side: PropTypes.oneOf([\"top\", \"right\", \"bottom\", \"left\"]),\n /** CSS `display` value for the element that wraps the Tooltip children */\n wrapperDisplay: PropTypes.oneOf([\n \"inline-flex\",\n \"inline-block\",\n \"inline\",\n \"block\",\n \"flex\",\n ]),\n /** Sets maximum width of tooltip */\n maxWidth: PropTypes.number,\n};\n\nexport default Tooltip;\n","/**\n * Wrapper for `Intl.NumberFormat` with options configured for Narmi applications.\n *\n * @example\n * import { formatNumber } from '@narmi/design_system';\n *\n * formatNumber(1234.56, 'currency'); // '$1,234.56'\n * formatNumber(34.4, 'currency'); // '$34.40'\n * formatNumber(-12, 'currency'); // '-$12'\n * formatNumber('0.0342', 'percent'); // '3.42%'\n * formatNumber(0.0023, 'percent'); // '0.23%'\n * formatNumber(0.215555, 'percent'); // '21.56%'\n *\n * @param {String|Number} input string or number to format into a number string\n * @param {String} style format style (`currency` or `percent`)\n * @returns {String} number string formatted for display\n */\nconst formatNumber = (input, style = \"currency\") => {\n let number = parseFloat(input, 10);\n let formatterOpts = {\n style,\n currencyDisplay: \"narrowSymbol\",\n maximumFractionDigits: Number.isInteger(number) ? 0 : 2,\n };\n\n // only allow currency and percentage types for now\n const validStyles = [\"currency\", \"percent\"];\n if (!validStyles.includes(style)) {\n throw new Error(\n `formatNumber: invalid style argument. Must be one of: ${JSON.stringify(\n validStyles\n )}`\n );\n }\n\n if (style === \"currency\") {\n formatterOpts.currency = \"USD\";\n }\n\n try {\n return new Intl.NumberFormat(\"en-US\", formatterOpts).format(number);\n }\n catch {\n // Failover for browsers that do not support Intl.NumberFormat\n return style === \"currency\" ? '$' + number.toFixed(2).replace(/\\d(?=(\\d{3})+\\.)/g, '$&,') : number.toFixed(2) + '%';\n }\n};\n\nexport default formatNumber;\n","/**\n * Wrapper for `Intl.DateTimeFormat` with options configured for Narmi applications.\n *\n * @example\n * import { formatDate } from '@narmi/design_system';\n *\n * formatDate(new Date('July 4, 2022'), 'short'); // '7/4/22'\n * formatDate(new Date('7/4/2022'), 'long'); // 'July 4, 2022'\n *\n * @param {Date} date native date object\n * @param {String} style formatting style (`short` or `long`)\n * @returns {String} date string formatted for display\n */\nconst formatDate = (date, style = \"short\") => {\n let formatterOpts = {\n dateStyle: style,\n };\n\n const validStyles = [\"short\", \"long\"];\n if (!validStyles.includes(style)) {\n throw new Error(\n `formatDate: invalid style argument. Must be one of: ${JSON.stringify(\n validStyles\n )}`\n );\n }\n\n return new Intl.DateTimeFormat(\"en-US\", formatterOpts).format(date);\n};\n\nexport default formatDate;\n","require(\"./index.scss\");\n\nimport Button from \"./Button\";\nimport Card from \"./Card\";\nimport Checkbox from \"./Checkbox\";\nimport ContentCard from \"./ContentCard\";\nimport DateInput from \"./DateInput\";\nimport Dialog from \"./Dialog\";\nimport Dropdown from \"./Dropdown\";\nimport DropdownTrigger from \"./DropdownTrigger\";\nimport Input from \"./Input\";\nimport LoadingShim from \"./LoadingShim\";\nimport LoadingSkeleton from \"./LoadingSkeleton\";\nimport Modal from \"./Modal\";\nimport Pagination from \"./Pagination\";\nimport PlainButton from \"./PlainButton\";\nimport Popover from \"./Popover\";\nimport RadioButtons from \"./RadioButtons\";\nimport Row from \"./Row\";\nimport Select from \"./Select\";\nimport SeparatorList from \"./SeparatorList\";\nimport Tabs from \"./Tabs\";\nimport Tag from \"./Tag\";\nimport TextInput from \"./TextInput\";\nimport Toggle from \"./Toggle\";\nimport Tooltip from \"./Tooltip\";\nimport formatNumber from \"./formatters/formatNumber\";\nimport formatDate from \"./formatters/formatDate\";\n\nexport {\n Button,\n Card,\n Checkbox,\n ContentCard,\n DateInput,\n Dialog,\n Dropdown,\n DropdownTrigger,\n Input,\n LoadingShim,\n LoadingSkeleton,\n Modal,\n Pagination,\n PlainButton,\n Popover,\n RadioButtons,\n Row,\n Select,\n SeparatorList,\n Tabs,\n Tag,\n TextInput,\n Toggle,\n Tooltip,\n formatNumber,\n formatDate,\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar TypeError = global.TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw TypeError(tryToString(argument) + ' is not a function');\n};\n","var global = require('../internals/global');\nvar isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar TypeError = global.TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw TypeError(tryToString(argument) + ' is not a constructor');\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar String = global.String;\nvar TypeError = global.TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw TypeError(\"Can't set \" + String(argument) + ' as a prototype');\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'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","var global = require('../internals/global');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw TypeError('Incorrect invocation');\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar String = global.String;\nvar TypeError = global.TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw TypeError(String(argument) + ' is not an object');\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 global = require('../internals/global');\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 = global.Array;\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var IS_CONSTRUCTOR = isConstructor(this);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined);\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod && !(this == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n result = IS_CONSTRUCTOR ? new this() : [];\n for (;!(step = call(next, iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = lengthOfArrayLike(O);\n result = IS_CONSTRUCTOR ? new this(length) : Array(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var 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 boundFunction = bind(callbackfn, that);\n var length = lengthOfArrayLike(self);\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","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call,no-throw-literal -- required for testing\n method.call(null, argument || function () { throw 1; }, 1);\n });\n};\n","var global = require('../internals/global');\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 = global.TypeError;\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n aCallable(callbackfn);\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = lengthOfArrayLike(O);\n var index = IS_RIGHT ? length - 1 : 0;\n var i = IS_RIGHT ? -1 : 1;\n if (argumentsLength < 2) while (true) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (IS_RIGHT ? index < 0 : length <= index) {\n throw TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.reduce` method\n // https://tc39.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","var global = require('../internals/global');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\n\nvar Array = global.Array;\nvar max = Math.max;\n\nmodule.exports = function (O, start, end) {\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = Array(max(fin - k, 0));\n for (var n = 0; k < fin; k++, n++) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","var global = require('../internals/global');\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 = global.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","var 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","var 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","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line 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 if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var 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","var global = require('../internals/global');\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 = global.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","var 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","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) { /* empty */ }\n } return false;\n};\n","var 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 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","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","'use strict';\nvar $ = 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/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar 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 in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (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 redefine(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 redefine(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 redefine(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","var 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","var 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","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","// 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","// 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","module.exports = typeof window == 'object';\n","var userAgent = require('../internals/engine-user-agent');\nvar global = require('../internals/global');\n\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && global.Pebble !== undefined;\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","var classof = require('../internals/classof-raw');\nvar global = require('../internals/global');\n\nmodule.exports = classof(global.process) == 'process';\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","module.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 uncurryThis = require('../internals/function-uncurry-this');\nvar redefine = require('../internals/redefine');\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 RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {};\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () { execCalled = true; return null; };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n FORCED\n ) {\n var uncurriedNativeRegExpMethod = uncurryThis(/./[SYMBOL]);\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n var uncurriedNativeMethod = uncurryThis(nativeMethod);\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: uncurriedNativeRegExpMethod(regexp, str, arg2) };\n }\n return { done: true, value: uncurriedNativeMethod(str, regexp, arg2) };\n }\n return { done: false };\n });\n\n redefine(String.prototype, KEY, methods[0]);\n redefine(RegExpPrototype, SYMBOL, methods[1]);\n }\n\n if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true);\n};\n","'use strict';\nvar global = require('../internals/global');\nvar isArray = require('../internals/is-array');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar bind = require('../internals/function-bind-context');\n\nvar TypeError = global.TypeError;\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 if (targetIndex >= 0x1FFFFFFFFFFFFF) throw TypeError('Exceed the acceptable array length');\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n};\n\nmodule.exports = flattenIntoArray;\n","var FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar bind = FunctionPrototype.bind;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (bind ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\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 : bind ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var call = Function.prototype.call;\n\nmodule.exports = call.bind ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","var 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","var FunctionPrototype = Function.prototype;\nvar bind = FunctionPrototype.bind;\nvar call = FunctionPrototype.call;\nvar callBind = bind && bind.bind(call);\n\nmodule.exports = bind ? function (fn) {\n return fn && callBind(call, fn);\n} : function (fn) {\n return fn && function () {\n return call.apply(fn, arguments);\n };\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","var global = require('../internals/global');\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 = global.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 TypeError(tryToString(argument) + ' is not iterable');\n};\n","var aCallable = require('../internals/a-callable');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return func == null ? undefined : aCallable(func);\n};\n","var 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);\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","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line 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 // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","var 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\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","module.exports = {};\n","var global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n var console = global.console;\n if (console && console.error) {\n arguments.length == 1 ? console.error(a) : console.error(a, b);\n }\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- requied for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar Object = global.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","var 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","var 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","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-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 = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw 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 var wmget = uncurryThis(store.get);\n var wmhas = uncurryThis(store.has);\n var wmset = uncurryThis(store.set);\n set = function (it, metadata) {\n if (wmhas(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget(store, it) || {};\n };\n has = function (it) {\n return wmhas(store, 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","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var 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","// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = function (argument) {\n return typeof argument == 'function';\n};\n","var 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 empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, 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","var 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","var 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","var isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","module.exports = false;\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.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","var global = require('../internals/global');\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 = global.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","var global = require('../internals/global');\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 = global.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_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_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw 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 = 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","var 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 fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar redefine = require('../internals/redefine');\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 = IteratorPrototype == undefined || 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 redefine(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","module.exports = {};\n","var 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","var global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar macrotask = require('../internals/task').set;\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_IOS_PEBBLE = require('../internals/engine-is-ios-pebble');\nvar IS_WEBOS_WEBKIT = require('../internals/engine-is-webos-webkit');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar document = global.document;\nvar process = global.process;\nvar Promise = global.Promise;\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\n\nvar flush, head, last, notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!queueMicrotask) {\n flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (error) {\n if (head) notify();\n else last = undefined;\n throw error;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // 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.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n // strange IE + webpack dev server bug - use .bind(global)\n macrotask = bind(macrotask, global);\n notify = function () {\n macrotask(flush);\n };\n }\n}\n\nmodule.exports = queueMicrotask || function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n};\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\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","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(inspectSource(WeakMap));\n","'use strict';\nvar aCallable = require('../internals/a-callable');\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = 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","var global = require('../internals/global');\nvar isRegExp = require('../internals/is-regexp');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar charAt = uncurryThis(''.charAt);\nvar n$ParseFloat = global.parseFloat;\nvar Symbol = global.Symbol;\nvar ITERATOR = Symbol && Symbol.iterator;\nvar FORCED = 1 / n$ParseFloat(whitespaces + '-0') !== -Infinity\n // MS Edge 18- broken with boxed symbols\n || (ITERATOR && !fails(function () { n$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 = n$ParseFloat(trimmedString);\n return result === 0 && charAt(trimmedString, 0) == '-' ? -0 : result;\n} : n$ParseFloat;\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar $parseInt = global.parseInt;\nvar Symbol = global.Symbol;\nvar ITERATOR = Symbol && Symbol.iterator;\nvar hex = /^[+-]?0x/i;\nvar exec = uncurryThis(hex.exec);\nvar FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22\n // MS Edge 18- broken with boxed symbols\n || (ITERATOR && !fails(function () { $parseInt(Object(ITERATOR)); }));\n\n// `parseInt` method\n// https://tc39.es/ecma262/#sec-parseint-string-radix\nmodule.exports = FORCED ? function parseInt(string, radix) {\n var S = trim(toString(string));\n return $parseInt(S, (radix >>> 0) || (exec(hex, S) ? 16 : 10));\n} : $parseInt;\n","'use strict';\nvar 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();\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","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar defineProperties = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n 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\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\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\nmodule.exports = DESCRIPTORS ? 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","var global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar TypeError = global.TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? $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 TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var 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","/* 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-simple');\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","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.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","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var global = require('../internals/global');\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 = global.Object;\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\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","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","var 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","var 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","/* eslint-disable no-proto -- safe */\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n setter = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set);\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","var DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\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// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n return function (it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || propertyIsEnumerable(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","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar TypeError = global.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 TypeError(\"Can't convert object to primitive value\");\n};\n","var 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","var global = require('../internals/global');\n\nmodule.exports = global;\n","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","var redefine = require('../internals/redefine');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) redefine(target, key, src[key], options);\n return target;\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n var name = options && options.name !== undefined ? options.name : key;\n var state;\n if (isCallable(value)) {\n if (String(name).slice(0, 7) === 'Symbol(') {\n name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n createNonEnumerableProperty(value, 'name', name);\n }\n state = enforceInternalState(value);\n if (!state.source) {\n state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\n }\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n});\n","var global = require('../internals/global');\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 = global.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 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' 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.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nvar UNSUPPORTED_Y = fails(function () {\n var re = $RegExp('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') != null;\n});\n\n// UC Browser bug\n// https://github.com/zloirock/core-js/issues/1008\nvar MISSED_STICKY = UNSUPPORTED_Y || fails(function () {\n return !$RegExp('a', 'y').sticky;\n});\n\nvar BROKEN_CARET = UNSUPPORTED_Y || fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = $RegExp('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') != null;\n});\n\nmodule.exports = {\n BROKEN_CARET: BROKEN_CARET,\n MISSED_STICKY: MISSED_STICKY,\n UNSUPPORTED_Y: UNSUPPORTED_Y\n};\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('.', 's');\n return !(re.dotAll && re.exec('\\n') && re.flags === 's');\n});\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('(?<a>b)', 'g') -> /(?<a>b)/g and it causes SyntaxError\nvar $RegExp = global.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","var global = require('../internals/global');\n\nvar TypeError = global.TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\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","var global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","var 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","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.20.0',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2021 Denis Pushkarev (zloirock.ru)'\n});\n","var anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\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 || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aConstructor(S);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","'use strict';\nvar global = require('../internals/global');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar RangeError = global.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 RangeError('Wrong number of repetitions');\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;\n return result;\n};\n","var 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 whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = toString(requireObjectCoercible($this));\n if (TYPE & 1) string = replace(string, ltrim, '');\n if (TYPE & 2) string = replace(string, rtrim, '');\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","var global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind-context');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar fails = require('../internals/fails');\nvar html = require('../internals/html');\nvar arraySlice = require('../internals/array-slice');\nvar createElement = require('../internals/document-create-element');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar Dispatch = global.Dispatch;\nvar Function = global.Function;\nvar MessageChannel = global.MessageChannel;\nvar String = global.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar location, defer, channel, port;\n\ntry {\n // Deno throws a ReferenceError on `location` access without `--location` flag\n location = global.location;\n} catch (error) { /* empty */ }\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 listener = function (event) {\n run(event.data);\n};\n\nvar post = function (id) {\n // old engines have not location.origin\n global.postMessage(String(id), location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(fn) {\n var args = arraySlice(arguments, 1);\n queue[++counter] = function () {\n apply(isCallable(fn) ? fn : Function(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 = listener;\n defer = bind(port.postMessage, port);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n isCallable(global.postMessage) &&\n !global.importScripts &&\n location && location.protocol !== 'file:' &&\n !fails(post)\n ) {\n defer = post;\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var 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","var 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","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\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 -- safe\n return number !== number || number === 0 ? 0 : (number > 0 ? floor : ceil)(number);\n};\n","var 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 return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var global = require('../internals/global');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar Object = global.Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var global = require('../internals/global');\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 = global.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 TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var 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","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var global = require('../internals/global');\nvar classof = require('../internals/classof');\n\nvar String = global.String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return String(argument);\n};\n","var global = require('../internals/global');\n\nvar String = global.String;\n\nmodule.exports = function (argument) {\n try {\n return String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var 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","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n var description = 'Symbol.' + name;\n if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else if (USE_SYMBOL_AS_UID && symbolFor) {\n WellKnownSymbolsStore[name] = symbolFor(description);\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n }\n } return WellKnownSymbolsStore[name];\n};\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 $ = require('../internals/export');\nvar global = require('../internals/global');\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 createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';\nvar TypeError = global.TypeError;\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, 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 if (n + len > MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n if (n >= MAX_SAFE_INTEGER) throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","'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 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","var $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n // 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 addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.includes` method\n// https://tc39.es/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true }, {\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');\nvar $IndexOf = require('../internals/array-includes').indexOf;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar un$IndexOf = uncurryThis([].indexOf);\n\nvar NEGATIVE_ZERO = !!un$IndexOf && 1 / un$IndexOf([1], 1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('indexOf');\n\n// `Array.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-array.prototype.indexof\n$({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || !STRICT_METHOD }, {\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 ? un$IndexOf(this, searchElement, fromIndex) || 0\n : $IndexOf(this, searchElement, fromIndex);\n }\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/define-iterator');\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 kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.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 un$Join = uncurryThis([].join);\n\nvar ES3_STRINGS = IndexedObject != Object;\nvar STRICT_METHOD = arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.es/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, {\n join: function join(separator) {\n return un$Join(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\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 $reduce = require('../internals/array-reduce').left;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar CHROME_VERSION = require('../internals/engine-v8-version');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar STRICT_METHOD = arrayMethodIsStrict('reduce');\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;\n\n// `Array.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || CHROME_BUG }, {\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 global = require('../internals/global');\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 un$Slice = require('../internals/array-slice');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar Array = global.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 un$Slice(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","// 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","var DESCRIPTORS = require('../internals/descriptors');\nvar FUNCTION_NAME_EXISTS = require('../internals/function-name').EXISTS;\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineProperty = require('../internals/object-define-property').f;\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 defineProperty(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 DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar hasOwn = require('../internals/has-own-property');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isSymbol = require('../internals/is-symbol');\nvar toPrimitive = require('../internals/to-primitive');\nvar fails = require('../internals/fails');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar thisNumberValue = require('../internals/this-number-value');\nvar trim = require('../internals/string-trim').trim;\n\nvar NUMBER = 'Number';\nvar NativeNumber = global[NUMBER];\nvar NumberPrototype = NativeNumber.prototype;\nvar TypeError = global.TypeError;\nvar arraySlice = 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 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 case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i\n default: return +it;\n }\n digits = arraySlice(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\n// `Number` constructor\n// https://tc39.es/ecma262/#sec-number-constructor\nif (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) {\n var NumberWrapper = function Number(value) {\n var n = arguments.length < 1 ? 0 : NativeNumber(toNumeric(value));\n var dummy = this;\n // check on 1..constructor(foo) case\n return isPrototypeOf(NumberPrototype, dummy) && fails(function () { thisNumberValue(dummy); })\n ? inheritIfRequired(Object(n), dummy, NumberWrapper) : n;\n };\n for (var keys = DESCRIPTORS ? getOwnPropertyNames(NativeNumber) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES2015 (in case, if modules with ES2015 Number statics required before):\n 'EPSILON,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(NativeNumber, key = keys[j]) && !hasOwn(NumberWrapper, key)) {\n defineProperty(NumberWrapper, key, getOwnPropertyDescriptor(NativeNumber, key));\n }\n }\n NumberWrapper.prototype = NumberPrototype;\n NumberPrototype.constructor = NumberWrapper;\n redefine(global, NUMBER, NumberWrapper);\n}\n","var $ = require('../internals/export');\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 global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar thisNumberValue = require('../internals/this-number-value');\nvar $repeat = require('../internals/string-repeat');\nvar fails = require('../internals/fails');\n\nvar RangeError = global.RangeError;\nvar String = global.String;\nvar floor = Math.floor;\nvar repeat = uncurryThis($repeat);\nvar stringSlice = uncurryThis(''.slice);\nvar un$ToFixed = uncurryThis(1.0.toFixed);\n\nvar pow = function (x, n, acc) {\n return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\n\nvar log = function (x) {\n var n = 0;\n var x2 = x;\n while (x2 >= 4096) {\n n += 12;\n x2 /= 4096;\n }\n while (x2 >= 2) {\n n += 1;\n x2 /= 2;\n } return n;\n};\n\nvar multiply = function (data, n, c) {\n var index = -1;\n var c2 = c;\n while (++index < 6) {\n c2 += n * data[index];\n data[index] = c2 % 1e7;\n c2 = floor(c2 / 1e7);\n }\n};\n\nvar divide = function (data, n) {\n var index = 6;\n var c = 0;\n while (--index >= 0) {\n c += data[index];\n data[index] = floor(c / n);\n c = (c % n) * 1e7;\n }\n};\n\nvar dataToString = function (data) {\n var index = 6;\n var s = '';\n while (--index >= 0) {\n if (s !== '' || index === 0 || data[index] !== 0) {\n var t = String(data[index]);\n s = s === '' ? t : s + repeat('0', 7 - t.length) + t;\n }\n } return s;\n};\n\nvar FORCED = fails(function () {\n return un$ToFixed(0.00008, 3) !== '0.000' ||\n un$ToFixed(0.9, 0) !== '1' ||\n un$ToFixed(1.255, 2) !== '1.25' ||\n un$ToFixed(1000000000000000128.0, 0) !== '1000000000000000128';\n}) || !fails(function () {\n // V8 ~ Android 4.3-\n un$ToFixed({});\n});\n\n// `Number.prototype.toFixed` method\n// https://tc39.es/ecma262/#sec-number.prototype.tofixed\n$({ target: 'Number', proto: true, forced: FORCED }, {\n toFixed: function toFixed(fractionDigits) {\n var number = thisNumberValue(this);\n var fractDigits = toIntegerOrInfinity(fractionDigits);\n var data = [0, 0, 0, 0, 0, 0];\n var sign = '';\n var result = '0';\n var e, z, j, k;\n\n // TODO: ES2018 increased the maximum number of fraction digits to 100, need to improve the implementation\n if (fractDigits < 0 || fractDigits > 20) throw RangeError('Incorrect fraction digits');\n // eslint-disable-next-line no-self-compare -- NaN check\n if (number != number) return 'NaN';\n if (number <= -1e21 || number >= 1e21) return String(number);\n if (number < 0) {\n sign = '-';\n number = -number;\n }\n if (number > 1e-21) {\n e = log(number * pow(2, 69, 1)) - 69;\n z = e < 0 ? number * pow(2, -e, 1) : number / pow(2, e, 1);\n z *= 0x10000000000000;\n e = 52 - e;\n if (e > 0) {\n multiply(data, 0, z);\n j = fractDigits;\n while (j >= 7) {\n multiply(data, 1e7, 0);\n j -= 7;\n }\n multiply(data, pow(10, j, 1), 0);\n j = e - 1;\n while (j >= 23) {\n divide(data, 1 << 23);\n j -= 23;\n }\n divide(data, 1 << j);\n multiply(data, 1, 1);\n divide(data, 2);\n result = dataToString(data);\n } else {\n multiply(data, 0, z);\n multiply(data, 1 << -e, 0);\n result = dataToString(data) + repeat('0', fractDigits);\n }\n }\n if (fractDigits > 0) {\n k = result.length;\n result = sign + (k <= fractDigits\n ? '0.' + repeat('0', fractDigits - k) + result\n : stringSlice(result, 0, k - fractDigits) + '.' + stringSlice(result, k - fractDigits));\n } else {\n result = sign + result;\n } return result;\n }\n});\n","var $ = 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, forced: Object.assign !== assign }, {\n assign: assign\n});\n","var $ = 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","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetOwnPropertyDescriptor(1); });\nvar FORCED = !DESCRIPTORS || FAILS_ON_PRIMITIVES;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.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","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar ownKeys = require('../internals/own-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar createProperty = require('../internals/create-property');\n\n// `Object.getOwnPropertyDescriptors` method\n// https://tc39.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","var $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar nativeKeys = require('../internals/object-keys');\nvar fails = require('../internals/fails');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.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","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar redefine = require('../internals/redefine');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","var $ = 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","var $ = 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 IS_PURE = require('../internals/is-pure');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar call = require('../internals/function-call');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\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 inspectSource = require('../internals/inspect-source');\nvar iterate = require('../internals/iterate');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar promiseResolve = require('../internals/promise-resolve');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar InternalStateModule = require('../internals/internal-state');\nvar isForced = require('../internals/is-forced');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_BROWSER = require('../internals/engine-is-browser');\nvar IS_NODE = require('../internals/engine-is-node');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\nvar PROMISE = 'Promise';\n\nvar getInternalState = InternalStateModule.getterFor(PROMISE);\nvar setInternalState = InternalStateModule.set;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar NativePromisePrototype = NativePromise && NativePromise.prototype;\nvar PromiseConstructor = NativePromise;\nvar PromisePrototype = NativePromisePrototype;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\n\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar NATIVE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\nvar SUBCLASSING = false;\n\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\nvar FORCED = isForced(PROMISE, function () {\n var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(PromiseConstructor);\n var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(PromiseConstructor);\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#finally in the pure version for preventing prototype pollution\n if (IS_PURE && !PromisePrototype['finally']) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (V8_VERSION >= 51 && /native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) return false;\n // Detect correctness of subclassing with @@species support\n var promise = new PromiseConstructor(function (resolve) { resolve(1); });\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n if (!SUBCLASSING) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n return !GLOBAL_CORE_JS_PROMISE && IS_BROWSER && !NATIVE_REJECTION_EVENT;\n});\n\nvar INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {\n PromiseConstructor.all(iterable)['catch'](function () { /* empty */ });\n});\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && isCallable(then = it.then) ? then : false;\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n var chain = state.reactions;\n microtask(function () {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var index = 0;\n // variable length - can't use forEach\n while (chain.length > index) {\n var reaction = chain[index++];\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n 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 state.reactions = [];\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (!NATIVE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (state.facade === value) throw 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) {\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 = getInternalState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n PromisePrototype = PromiseConstructor.prototype;\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: [],\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n Internal.prototype = redefineAll(PromisePrototype, {\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n then: function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reactions = state.reactions;\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;\n reaction.fail = isCallable(onRejected) && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n state.parent = true;\n reactions[reactions.length] = reaction;\n if (state.state != PENDING) notify(state, false);\n return reaction.promise;\n },\n // `Promise.prototype.catch` method\n // https://tc39.es/ecma262/#sec-promise.prototype.catch\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && isCallable(NativePromise) && NativePromisePrototype !== Object.prototype) {\n nativeThen = NativePromisePrototype.then;\n\n if (!SUBCLASSING) {\n // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n redefine(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 // makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\n redefine(NativePromisePrototype, 'catch', PromisePrototype['catch'], { 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, wrap: true, forced: FORCED }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n\nPromiseWrapper = getBuiltIn(PROMISE);\n\n// statics\n$({ target: PROMISE, stat: true, forced: FORCED }, {\n // `Promise.reject` method\n // https://tc39.es/ecma262/#sec-promise.reject\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n call(capability.reject, undefined, r);\n return capability.promise;\n }\n});\n\n$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, {\n // `Promise.resolve` method\n // https://tc39.es/ecma262/#sec-promise.resolve\n resolve: function resolve(x) {\n return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);\n }\n});\n\n$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {\n // `Promise.all` method\n // https://tc39.es/ecma262/#sec-promise.all\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = 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 // `Promise.race` method\n // https://tc39.es/ecma262/#sec-promise.race\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = 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 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 uncurryThis = require('../internals/function-uncurry-this');\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar redefine = require('../internals/redefine');\nvar anObject = require('../internals/an-object');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar $toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar regExpFlags = require('../internals/regexp-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar n$ToString = RegExpPrototype[TO_STRING];\nvar getFlags = uncurryThis(regExpFlags);\n\nvar NOT_GENERIC = fails(function () { return n$ToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = PROPER_FUNCTION_NAME && n$ToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = $toString(R.source);\n var rf = R.flags;\n var f = $toString(rf === undefined && isPrototypeOf(RegExpPrototype, R) && !('flags' in RegExpPrototype) ? getFlags(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\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/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.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 { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\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 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 = searchValue == undefined ? 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 if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n 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 // 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 var 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 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 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 = regexp == undefined ? 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","// `Symbol.prototype.description` getter\n// https://tc39.es/ecma262/#sec-symbol.prototype.description\n'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar toString = require('../internals/to-string');\nvar defineProperty = require('../internals/object-define-property').f;\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar NativeSymbol = global.Symbol;\nvar SymbolPrototype = NativeSymbol && NativeSymbol.prototype;\n\nif (DESCRIPTORS && isCallable(NativeSymbol) && (!('description' in SymbolPrototype) ||\n // Safari 12 bug\n NativeSymbol().description !== undefined\n)) {\n var EmptyStringDescriptionStore = {};\n // wrap Symbol constructor for correct work with undefined description\n var SymbolWrapper = function Symbol() {\n var description = arguments.length < 1 || arguments[0] === undefined ? undefined : toString(arguments[0]);\n var result = isPrototypeOf(SymbolPrototype, this)\n ? new NativeSymbol(description)\n // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n : description === undefined ? NativeSymbol() : NativeSymbol(description);\n if (description === '') EmptyStringDescriptionStore[result] = true;\n return result;\n };\n\n copyConstructorProperties(SymbolWrapper, NativeSymbol);\n SymbolWrapper.prototype = SymbolPrototype;\n SymbolPrototype.constructor = SymbolWrapper;\n\n var NATIVE_SYMBOL = String(NativeSymbol('test')) == 'Symbol(test)';\n var symbolToString = uncurryThis(SymbolPrototype.toString);\n var symbolValueOf = uncurryThis(SymbolPrototype.valueOf);\n var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n var replace = uncurryThis(''.replace);\n var stringSlice = uncurryThis(''.slice);\n\n defineProperty(SymbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n var symbol = symbolValueOf(this);\n var string = symbolToString(symbol);\n if (hasOwn(EmptyStringDescriptionStore, symbol)) return '';\n var desc = NATIVE_SYMBOL ? stringSlice(string, 7, -1) : replace(string, regexp, '$1');\n return desc === '' ? undefined : desc;\n }\n });\n\n $({ global: true, forced: true }, {\n Symbol: SymbolWrapper\n });\n}\n","var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\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 IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar isArray = require('../internals/is-array');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isSymbol = require('../internals/is-symbol');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-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 propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar arraySlice = require('../internals/array-slice');\nvar redefine = require('../internals/redefine');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineWellKnownSymbol = require('../internals/define-well-known-symbol');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\n\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar SymbolPrototype = $Symbol && $Symbol[PROTOTYPE];\nvar TypeError = global.TypeError;\nvar QObject = global.QObject;\nvar $stringify = getBuiltIn('JSON', 'stringify');\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 StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\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 setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (O, P, Attributes) {\n var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n nativeDefineProperty(O, P, Attributes);\n if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n }\n} : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n var symbol = AllSymbols[tag] = nativeObjectCreate(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, {}));\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 getOwnPropertySymbols(O) {\n var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (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 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 if (this === ObjectPrototype) call(setter, ObjectPrototypeSymbols, value);\n if (hasOwn(this, HIDDEN) && hasOwn(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));\n };\n if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n return wrap(tag, description);\n };\n\n SymbolPrototype = $Symbol[PROTOTYPE];\n\n redefine(SymbolPrototype, 'toString', function toString() {\n return getInternalState(this).tag;\n });\n\n redefine($Symbol, 'withoutSetter', function (description) {\n return wrap(uid(description), description);\n });\n\n propertyIsEnumerableModule.f = $propertyIsEnumerable;\n definePropertyModule.f = $defineProperty;\n getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n wrappedWellKnownSymbolModule.f = function (name) {\n return wrap(wellKnownSymbol(name), name);\n };\n\n if (DESCRIPTORS) {\n // https://github.com/tc39/proposal-Symbol-description\n nativeDefineProperty(SymbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n if (!IS_PURE) {\n redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n }\n }\n}\n\n$({ global: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n // `Symbol.for` method\n // https://tc39.es/ecma262/#sec-symbol.for\n 'for': function (key) {\n var string = $toString(key);\n if (hasOwn(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n var symbol = $Symbol(string);\n StringToSymbolRegistry[string] = symbol;\n SymbolToStringRegistry[symbol] = string;\n return symbol;\n },\n // `Symbol.keyFor` method\n // https://tc39.es/ecma262/#sec-symbol.keyfor\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol');\n if (hasOwn(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n },\n useSetter: function () { USE_SETTER = true; },\n useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n // `Object.create` method\n // https://tc39.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 // `Object.getOwnPropertySymbols` method\n // https://tc39.es/ecma262/#sec-object.getownpropertysymbols\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\n$({ target: 'Object', stat: true, forced: fails(function () { getOwnPropertySymbolsModule.f(1); }) }, {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return getOwnPropertySymbolsModule.f(toObject(it));\n }\n});\n\n// `JSON.stringify` method behavior with symbols\n// https://tc39.es/ecma262/#sec-json.stringify\nif ($stringify) {\n var FORCED_JSON_STRINGIFY = !NATIVE_SYMBOL || fails(function () {\n var symbol = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n return $stringify([symbol]) != '[null]'\n // WebKit converts symbol values to JSON as null\n || $stringify({ a: symbol }) != '{}'\n // V8 throws on boxed symbols\n || $stringify(Object(symbol)) != '{}';\n });\n\n $({ target: 'JSON', stat: true, forced: FORCED_JSON_STRINGIFY }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n stringify: function stringify(it, replacer, space) {\n var args = arraySlice(arguments);\n var $replacer = replacer;\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (isCallable($replacer)) value = call($replacer, this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return apply($stringify, null, args);\n }\n });\n}\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\nif (!SymbolPrototype[TO_PRIMITIVE]) {\n var valueOf = SymbolPrototype.valueOf;\n // eslint-disable-next-line no-unused-vars -- required for .length\n redefine(SymbolPrototype, TO_PRIMITIVE, function (hint) {\n // TODO: improve hint logic\n return call(valueOf, this);\n });\n}\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar handlePrototype = function (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n if (DOMIterables[COLLECTION_NAME]) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype);\n }\n}\n\nhandlePrototype(DOMTokenListPrototype);\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\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 if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype, COLLECTION_NAME);\n}\n\nhandlePrototype(DOMTokenListPrototype, 'DOMTokenList');\n","\"use strict\";\nif (typeof Object.assign !== \"function\") {\n Object.assign = function (target, ...args) {\n if (!target) {\n throw TypeError(\"Cannot convert undefined or null to object\");\n }\n for (const source of args) {\n if (source) {\n Object.keys(source).forEach((key) => (target[key] = source[key]));\n }\n }\n return target;\n };\n}\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.default = {}));\n}(this, (function (exports) { 'use strict';\n\n var english = {\n weekdays: {\n shorthand: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n longhand: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ],\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n longhand: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n },\n daysInMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],\n firstDayOfWeek: 0,\n ordinal: function (nth) {\n var s = nth % 100;\n if (s > 3 && s < 21)\n return \"th\";\n switch (s % 10) {\n case 1:\n return \"st\";\n case 2:\n return \"nd\";\n case 3:\n return \"rd\";\n default:\n return \"th\";\n }\n },\n rangeSeparator: \" to \",\n weekAbbreviation: \"Wk\",\n scrollTitle: \"Scroll to increment\",\n toggleTitle: \"Click to toggle\",\n amPM: [\"AM\", \"PM\"],\n yearAriaLabel: \"Year\",\n monthAriaLabel: \"Month\",\n hourAriaLabel: \"Hour\",\n minuteAriaLabel: \"Minute\",\n time_24hr: false,\n };\n\n exports.default = english;\n exports.english = english;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/** @license React v17.0.2\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=60103,c=60106,d=60107,e=60108,f=60114,g=60109,h=60110,k=60112,l=60113,m=60120,n=60115,p=60116,q=60121,r=60122,u=60117,v=60129,w=60131;\nif(\"function\"===typeof Symbol&&Symbol.for){var x=Symbol.for;b=x(\"react.element\");c=x(\"react.portal\");d=x(\"react.fragment\");e=x(\"react.strict_mode\");f=x(\"react.profiler\");g=x(\"react.provider\");h=x(\"react.context\");k=x(\"react.forward_ref\");l=x(\"react.suspense\");m=x(\"react.suspense_list\");n=x(\"react.memo\");p=x(\"react.lazy\");q=x(\"react.block\");r=x(\"react.server.block\");u=x(\"react.fundamental\");v=x(\"react.debug_trace_mode\");w=x(\"react.legacy_hidden\")}\nfunction y(a){if(\"object\"===typeof a&&null!==a){var t=a.$$typeof;switch(t){case b:switch(a=a.type,a){case d:case f:case e:case l:case m:return a;default:switch(a=a&&a.$$typeof,a){case h:case k:case p:case n:case g:return a;default:return t}}case c:return t}}}var z=g,A=b,B=k,C=d,D=p,E=n,F=c,G=f,H=e,I=l;exports.ContextConsumer=h;exports.ContextProvider=z;exports.Element=A;exports.ForwardRef=B;exports.Fragment=C;exports.Lazy=D;exports.Memo=E;exports.Portal=F;exports.Profiler=G;exports.StrictMode=H;\nexports.Suspense=I;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return y(a)===h};exports.isContextProvider=function(a){return y(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return y(a)===k};exports.isFragment=function(a){return y(a)===d};exports.isLazy=function(a){return y(a)===p};exports.isMemo=function(a){return y(a)===n};\nexports.isPortal=function(a){return y(a)===c};exports.isProfiler=function(a){return y(a)===f};exports.isStrictMode=function(a){return y(a)===e};exports.isSuspense=function(a){return y(a)===l};exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===v||a===e||a===l||a===m||a===w||\"object\"===typeof a&&null!==a&&(a.$$typeof===p||a.$$typeof===n||a.$$typeof===g||a.$$typeof===h||a.$$typeof===k||a.$$typeof===u||a.$$typeof===q||a[0]===r)?!0:!1};\nexports.typeOf=y;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","module.exports = __WEBPACK_EXTERNAL_MODULE__9787__;","module.exports = __WEBPACK_EXTERNAL_MODULE__5156__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// startup\n// Load entry module and return exports\n// This entry module doesn't tell about it's top-level declarations so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(7248);\n"],"names":["root","factory","exports","module","require","define","amd","a","i","self","this","__WEBPACK_EXTERNAL_MODULE__9787__","__WEBPACK_EXTERNAL_MODULE__5156__","cc","names","out","Array","isArray","tmp","length","k","VALID_ELEMENTS","AsElement","elementType","children","rest","Element","includes","propTypes","PropTypes","isRequired","RowItem","shrink","as","className","_getRowStyle","alignItems","justifyContent","gapSize","result","gap","Row","style","Item","VALID_ICON_NAMES","iconSelection","icon","properties","name","Button","disabled","kind","startIcon","endIcon","label","onClick","otherProps","isButtonElement","buttonLabel","Icon","role","tabIndex","resetButton","undefined","Card","props","iconSize","classes","hoverable","toString","selected","display","title","fontSize","button","defaultProps","Checkbox","onChange","id","defaultChecked","checked","value","isControlled","useState","isChecked","setIsChecked","isFocused","setIsFocused","isCard","useEffect","onFocus","onBlur","e","type","ContentCard","paddingSize","isSelected","variant","isInteractive","onKeyUp","key","propName","Error","error","Input","startIconClass","multiline","decoration","search","join","htmlFor","HOOKS","defaults","_disable","allowInput","allowInvalidPreload","altFormat","altInput","altInputClass","animate","window","navigator","userAgent","indexOf","ariaDateFormat","autoFillDefaultTime","clickOpens","closeOnSelect","conjunction","dateFormat","defaultHour","defaultMinute","defaultSeconds","disable","disableMobile","enableSeconds","enableTime","errorHandler","err","console","warn","getWeek","givenDate","date","Date","getTime","setHours","setDate","getDate","getDay","week1","getFullYear","Math","round","hourIncrement","ignoredFocusElements","inline","locale","minuteIncrement","mode","monthSelectorType","nextArrow","noCalendar","now","onClose","onDayCreate","onDestroy","onKeyDown","onMonthChange","onOpen","onParseConfig","onReady","onValueUpdate","onYearChange","onPreCalendarPosition","plugins","position","positionElement","prevArrow","shorthandCurrentMonth","showMonths","static","time_24hr","weekNumbers","wrap","english","weekdays","shorthand","longhand","months","daysInMonth","firstDayOfWeek","ordinal","nth","s","rangeSeparator","weekAbbreviation","scrollTitle","toggleTitle","amPM","yearAriaLabel","monthAriaLabel","hourAriaLabel","minuteAriaLabel","pad","number","slice","bool","debounce","fn","wait","t","clearTimeout","setTimeout","apply","arguments","arrayify","obj","toggleClass","elem","classList","add","remove","createElement","tag","content","document","textContent","clearNode","node","firstChild","removeChild","findParent","condition","parentNode","createNumberInput","inputClassName","opts","wrapper","numInput","arrowUp","arrowDown","pattern","setAttribute","appendChild","getEventTarget","event","composedPath","target","doNothing","monthToStr","monthNumber","revFormat","D","F","dateObj","monthName","setMonth","G","hour","parseFloat","H","J","day","K","getHours","RegExp","test","M","shortMonth","S","seconds","setSeconds","U","_","unixSeconds","W","weekNum","weekNumber","parseInt","Y","year","setFullYear","Z","ISODate","d","h","minutes","setMinutes","j","l","m","month","n","u","unixMillSeconds","w","y","tokenRegex","formats","toISOString","options","getMonth","getSeconds","getMinutes","String","substring","createDateFormatter","config","l10n","isMobile","frmt","overrideLocale","formatDate","split","map","c","arr","createDateParser","givenFormat","timeless","customLocale","parsedDate","dateOrig","toFixed","format","datestr","trim","parseDate","matched","ops","matchIndex","regexStr","token","isBackSlash","escaped","match","exec","val","forEach","isNaN","compareDates","date1","date2","getDefaultHours","hours","minDate","minHour","minMinutes","minSeconds","maxDate","maxHr","maxMinutes","min","FlatpickrInstance","element","instanceConfig","Object","assign","flatpickr","defaultConfig","bindToInstance","bind","setCalendarWidth","requestAnimationFrame","calendarContainer","visibility","daysContainer","daysWidth","days","offsetWidth","width","weekWrapper","removeProperty","updateTime","selectedDates","defaultDate","getMilliseconds","latestSelectedDateObj","preventDefault","isKeyDown","eventTarget","input","getAttribute","max","step","curValue","newValue","delta","which","isHourElem","hourElement","isMinuteElem","minuteElement","incrementNumInput","abs","timeWrapper","prevValue","_input","setHoursFromInputs","updateValue","_debouncedChange","secondElement","limitMinHours","minTime","minDateHasTime","maxTime","maxDateHasTime","setHoursFromDate","onYearInput","changeYear","handler","ev","el","addEventListener","_handlers","push","removeEventListener","triggerChange","triggerEvent","jumpToDate","jumpDate","jumpTo","oldYear","currentYear","oldMonth","currentMonth","message","buildMonthSwitch","redraw","timeIncrement","contains","inputElem","createEvent","dispatchEvent","createDay","dayNumber","dateIsEnabled","isEnabled","dayElement","$i","todayDateElem","isDateSelected","selectedDateElem","isDateInRange","insertAdjacentHTML","focusOnDayElem","targetNode","focus","onMouseOver","getFirstAvailableDay","startMonth","endMonth","startIndex","endIndex","focusOnDay","current","offset","dayFocused","isInView","activeElement","body","startElem","givenMonth","loopDelta","numMonthDays","changeMonth","getNextAvailableDay","buildMonthDays","firstOfMonth","prevMonthDays","utils","getDaysInMonth","createDocumentFragment","isMultiMonth","prevMonthDayClass","nextMonthDayClass","dayIndex","dayNum","dayContainer","buildDays","frag","shouldBuildMonth","monthsDropdownContainer","innerHTML","buildMonth","container","monthNavFragment","monthElement","selectedMonth","yearInput","tabindex","yearElement","getElementsByTagName","buildMonths","monthNav","prevMonthNav","yearElements","monthElements","nextMonthNav","buildWeekdays","weekdayContainer","updateWeekdays","splice","isOffset","_hidePrevMonthArrow","_hideNextMonthArrow","updateNavigationCurrentMonth","isCalendarElem","appendTo","documentClick","isOpen","isCalendarElement","isInput","path","lostFocus","relatedTarget","isIgnored","some","timeContainer","close","clear","newYear","newYearNum","isNewYear","_a","dateToCheck","enable","array","parsed","from","to","allowKeydown","allowInlineKeydown","keyCode","blur","open","isTimeObj","focusAndClose","selectDate","ctrlKey","stopPropagation","currentYearElement","elems","concat","pluginElements","filter","x","shiftKey","charAt","toLowerCase","hoverDate","firstElementChild","initialDate","rangeStartDate","rangeEndDate","containsDisabled","minRange","maxRange","dayElem","timestamp","outOfRange","ts1","ts2","ts","onResize","positionCalendar","minMaxDateSetter","inverseDateObj","removeAttribute","getInputElem","querySelector","setupLocale","l10ns","default","JSON","parse","stringify","dataset","customPositionElement","_positionElement","calendarHeight","prototype","reduce","call","acc","child","offsetHeight","calendarWidth","configPos","configPosVertical","configPosHorizontal","inputBounds","getBoundingClientRect","distanceFromBottom","innerHeight","bottom","showOnTop","top","pageYOffset","left","pageXOffset","isCenter","isRight","right","rightMost","centerMost","doc","editableSheet","styleSheets","sheet","cssRules","head","createStyleSheet","getDocumentStyleSheet","bodyWidth","centerLeft","centerBefore","centerAfter","centerIndex","centerStyle","insertRule","msMaxTouchPoints","selectedDate","shouldChangeMonth","selectedIndex","sort","b","single","range","loadedPlugins","_bind","_setHoursFromDate","_positionCalendar","triggerChangeEvent","toInitial","mobileInput","_initialDate","_createElement","destroy","lastChild","insertBefore","_type","click","wasOpen","select","set","option","CALLBACKS","setSelectedDate","toggle","inputDate","dates","parseDateRules","rule","data","hooks","initEvent","getDateStr","dObj","mobileFormatStr","onMonthNavClick","isPrevMonth","isNextMonth","boolOpts","userConfig","defineProperty","get","_enable","timeMode","defaultDateFormat","defaultAltFormat","_minDate","_maxDate","minMaxTimeSetter","_minTime","_maxTime","hook","pluginConf","parseConfig","nodeName","placeholder","required","nextSibling","preloadedDate","setupDates","yr","fragment","__hidePrevMonthArrow","__hideNextMonthArrow","innerContainer","buildWeeks","rContainer","separator","hourInput","minuteInput","military2ampm","secondInput","buildTime","customAppend","nodeType","build","evt","querySelectorAll","inputType","defaultValue","setupMobile","debouncedResize","ontouchstart","capture","selText","bindEvents","isSafari","init","_flatpickr","nodeList","nodes","HTMLElement","instances","HTMLCollection","NodeList","selector","Node","en","localize","setDefaults","jQuery","fp_incr","noop","DateInput","disableDates","onChangeProp","useRef","abbrev","substr","flatpickrOptions","flatpickrVal","formattedDate","Intl","DateTimeFormat","ref","tabbableNode","focusSelector","getElementTabIndex","focusable","isTabIndexNotNaN","HTMLAnchorElement","href","parentElement","visible","tabbable","findTabbableDescendants","focusLaterElements","focusElement","needToFocus","handleBlur","handleFocus","active","restoreAria","setRef","useCallback","toFocus","pop","returnFocus","ownerDocument","disableAriaHider","containerNode","rootNodes","ariaHidden","item","createAriaHider","find","processNode","handleKeyDown","scopeTab","Dialog","isActive","onUserDismiss","headerStyle","footer","isContentOverflowing","setIsContentOverflowing","contentRef","shimRef","focusTrapRef","useFocusTrap","useLayoutEffect","checkContentOverflow","lastArgs","frameId","wrapperFn","scrollHeight","clientHeight","getIsContentTooLong","_len","args","_key","cancel","cancelAnimationFrame","dialogJSX","ReactDOM","TextInput","formatter","nativeElementProps","leftIcon","inputValue","setInputValue","_onBlur","_onChange","Chevron","setOpen","DropdownMenu","Dropdown","defaultOpen","setValue","closeDropDown","closeDropdown","childrenList","flat","field","triggerLabel","readOnly","React","DropdownTrigger","showOpenIndicator","labelText","labelProps","displayValue","errorText","minWidth","Boolean","displayName","LoadingShim","isLoading","LoadingSkeleton","lines","showTitle","size","Modal","handleClose","maxWidth","header","actions","setNotOpen","overflow","borderRadius","color","Pagination","onPageChange","totalPages","defaultSelectedPage","selectedPage","setSelectedPage","segmentSize","visiblePages","p","segments","page","segmentIndex","floor","segment","showPrev","showNext","firstPage","lastPage","_getAttributes","handlePageClick","handlePrevClick","newSelectedPage","handleNextClick","pagination","_defineProperties","descriptor","enumerable","configurable","writable","_createClass","Constructor","protoProps","staticProps","source","hasOwnProperty","_setPrototypeOf","o","setPrototypeOf","__proto__","len","arr2","_createForOfIteratorHelperLoose","allowArrayLike","it","Symbol","iterator","next","minLen","constructor","done","TypeError","useTrackRef","onRefChange","storedReference","useIsomorphicLayoutEffect","getPixelValue","replace","limit","isSet","mergeRefs","refs","_step","_iterator","findScrollContainers","environment","_environment$getCompu","getComputedStyle","overflowX","overflowY","prop","createReferenceError","subject","useTrackElements","_ref","enabled","ResizeObserverPolyfill","overflowContainer","triggerOption","ResizeObserver","polyfill","getResizeObserver","initialState","state","subscriptions","arrowRef","hasTriggerOption","_useMutableStore","scrollContainers","trigger","layer","useMemo","setter","_useEventSubscription","hasEventSubscriptions","removeAllEventSubscriptions","unsubscribe","addEventSubscription","unsubscriber","handleChange","_get","closestScrollContainer","scrollOffsets","scrollLeft","scrollTop","scrollX","scrollY","borderOffsets","_environment$getCompu2","borderLeftWidth","borderTopWidth","arrow","addEventListeners","_get2","ignoredInitialCall","observer","_i","_arr","observe","_i2","_arr2","_element","unobserve","disconnect","_loop","resetWhenReferenceChangedWhileTracking","previous","layerRef","previousLayer","getScrollContainers","triggerRef","previousTrigger","triggerOptionParent","getParent","GroupContext","createContext","GroupProvider","registrations","handleRegister","registration","delete","Provider","OPPOSITES","center","SideBase","opposite","isHorizontal","sizeProp","oppositeSizeProp","cssProp","oppositeCssProp","isPush","_proto","factor","isOppositeDirection","side","createSide","recursive","BoundSide","Side","SIDES","BoundsOffsets","offsets","mergeSmallestSides","boundsOffsets","first","fromEntries","_step2","boundsOffset","_iterator2","_this","every","_this2","sumOfPropertyValues","propertyValues","sum","propertyValue","boundsToObject","height","EMPTY","Bounds","bounds","create","fromElement","_options","_options$withTransfor","withTransform","_options$environment","_options$withScrollba","withScrollbars","boxSizing","borderLeft","borderRight","borderTop","borderBottom","paddingLeft","paddingRight","paddingTop","paddingBottom","scrollbarWidth","clientWidth","scrollbarHeight","substract","empty","fromWindow","_ref2","_ref2$innerWidth","innerWidth","_ref2$innerHeight","toObject","merge","partialBoundsOrMergeFn","_entries","entries","_entries$_i","boundSide","offsetsTo","mapSides","mapper","_boundSides","values","Placement","primary","secondary","subjectBounds","layerDimensions","subjectsBounds","_cachedLayerBounds","_cachedContainerOffsets","setSubjectsBounds","dimensions","getLayerBounds","secondaryOffset","arrowOffsetBase","limitMin","limitMax","propertyA","propertyB","sec","triggerValue","arrowCompensation","layerBounds","getLayerCollisionBounds","getContainerOffsets","layerOffsetsToScrollContainers","_this$subjectsBounds","triggerHasBiggerWidth","triggerHasBiggerHeight","allSidesArePositive","negativeSides","surface","_Object$entries$map$f","_Object$entries$map$f2","containerOffsets","_ref3","_ref4","_ref5","_ref6","PlacementCenter","_Placement","subClass","superClass","_this$subjectsBounds2","STYLE_BASE","willChange","Placements","placements","getSidesFromPlacementType","_type$split","arrowOffset","containerOffset","triggerOffset","getListOfPlacements","preferedPlacement","placement","_Placements$getSidesF","preferredSide","preferY","preferX","triggerIsBigger","placementFrom","list","possiblePlacements","filterPlacementsBySide","findFirstPlacementThatFits","fitsContainer","placementWithBiggestVisibleSurface","visibleSurface","findSuitablePlacement","auto","getSecondaryOffset","_this$config","snap","placementsOnSameSide","firstPlacementThatDoesNotFit","secondaryOffsetSide","getStyles","layerStyleBase","_extends2","sizeProperty","negativeOffset","sideA","sideB","offsetA","offsetB","getNegativeOffsetBetweenLayerCenterAndTrigger","primarySide","secondarySide","secondaryValue","getArrowStyle","parent","getHasDisappeared","offsetsToScrollContainers","suitablePlacement","styles","layerSide","hasDisappeared","SubjectsBounds","getTriggerBounds","allContainers","scrollContainer","DEFAULT_OPTIONS","useLayer","_triggerBoundsRef$cur","_ref$isOpen","_ref$overflowContaine","_ref$environment","_ref$placement","_ref$possiblePlacemen","_ref$preferX","_ref$preferY","_ref$auto","_ref$snap","_ref$triggerOffset","_ref$containerOffset","_ref$arrowOffset","_ref$container","_ref$layerDimensions","onDisappear","onOutsideClick","onParentClose","_useState","setState","triggerBoundsRef","lastState","currentState","useLastState","raf","handlePositioning","getBounds","_Placements$create$re","newState","_styleProps","didStateChange","_useTrackElements","_useGroup","Set","possibleRegisterFn","useContext","shouldCloseWhenClickedOutside","clickedOnTrigger","clickedOnLayer","shouldCloseAccordingToChildren","getShouldCloseAccordingToChildren","closeChild","handleClick","closeOnOutsideClickRefs","useGroup","triggerProps","layerProps","arrowProps","triggerBounds","renderLayer","createPortal","getElementById","DEFAULT_CONTAINER_ID","cssText","getContainerElement","getWidthBasedOnAngle","angle","tan","PI","getViewBox","sizeA","sizeB","borderWidth","_map","getTrianglePath","roundness","_BOTTOM$TOP$RIGHT$LEF","_BOTTOM$TOP$RIGHT$LEF2","_BOTTOM$TOP$RIGHT$LEF3","relativeRoundness","A","B","cPoint","c1A","c1B","C","d1A","d1B","getBorderMaskPath","borderOffset","Status","Arrow","forwardRef","_ref2$size","_ref2$angle","_ref2$borderWidth","_ref2$borderColor","borderColor","_ref2$roundness","_ref2$backgroundColor","backgroundColor","_ref2$layerSide","_ref2$style","excluded","sourceKeys","keys","maxSize","transform","preserveAspectRatio","viewBox","fill","strokeWidth","stroke","Popover","wrapperDisplay","disableAutoPlacement","matchTriggerWidth","setIsOpen","closePopover","layerStyle","RadioButtons","initialValue","containerProps","checkedValue","setCheckedValue","focusedValue","setFocusedValue","scrollWidth","r","defaultView","frameElement","__assign","idCounter","isOrContainsNode","time","timeoutId","callAllEventHandlers","_len2","fns","_key2","_len3","_key3","preventDownshiftDefault","nativeEvent","handleRefs","_len4","_key4","getState","prevState","isControlledProp","normalizeArrowKey","getNextWrappingIndex","moveAmount","baseIndex","itemCount","getItemNodeFromIndex","circular","itemsLastIndex","newIndex","nonDisabledNewIndex","getNextNonDisabledIndex","currentElementNode","hasAttribute","index","_index","targetWithinDownshift","downshiftElements","checkActiveElement","contextNode","cleanupStatus","documentProp","getStatusDiv","statusDiv","border","clip","margin","padding","_excluded$3","dropdownDefaultStateValues","highlightedIndex","selectedItem","updateA11yStatus","getA11yMessage","status","div","useElementIds","_ref$id","labelId","menuId","getItemId","toggleButtonId","inputId","isAcceptedCharacterKey","capitalizeString","string","toUpperCase","useLatestRef","useEnhancedReducer","reducer","prevStateRef","actionRef","enhancedReducer","action","changes","stateReducer","_useReducer","useReducer","dispatch","propsRef","dispatchWithProps","invokeOnChangeHandler","onStateChange","callOnChangeProps","defaultProps$3","itemToString","getA11ySelectionMessage","selectionParameters","itemToStringLocal","scrollIntoView","menuNode","scrollMode","block","boundary","skipOverflowHiddenElements","f","scrollingElement","documentElement","visualViewport","g","v","E","V","I","T","O","R","X","L","q","z","borderRightWidth","borderBottomWidth","N","P","circularNavigation","getDefaultValue$1","propKey","defaultStateValues","defaultPropKey","getInitialValue$1","initialPropKey","getHighlightedIndexOnOpen","items","initialHighlightedIndex","defaultHighlightedIndex","useA11yMessageSetter","dependencyArray","isInitialMount","highlightedItem","resultCount","useControlPropsValidator","getItemIndexByCharacterKey","keysSoFar","lowerCasedKeysSoFar","offsetIndex","startsWith","defaultProps$2","getA11yStatusMessage","previousResultCount","validatePropTypes$2","stateChangeTypes$2","freeze","MenuKeyDownArrowDown","MenuKeyDownArrowUp","MenuKeyDownEscape","MenuKeyDownHome","MenuKeyDownEnd","MenuKeyDownEnter","MenuKeyDownSpaceButton","MenuKeyDownCharacter","MenuBlur","MenuMouseLeave","ItemMouseMove","ItemClick","ToggleButtonClick","ToggleButtonKeyDownArrowDown","ToggleButtonKeyDownArrowUp","ToggleButtonKeyDownCharacter","FunctionToggleMenu","FunctionOpenMenu","FunctionCloseMenu","FunctionSetHighlightedIndex","FunctionSelectItem","FunctionSetInputValue","FunctionReset","downshiftSelectReducer","lowercasedKey","itemIndex","_lowercasedKey","_inputValue","stateChangeTypes","downshiftCommonReducer","_excluded$2","_excluded2$2","_excluded3$1","useSelect","userProps","initialIsOpen","defaultIsOpen","_useControlledReducer","_useEnhancedReducer","useControlledReducer$1","getInitialState$2","toggleButtonRef","menuRef","itemRefs","shouldBlurRef","clearTimeoutRef","elementIds","previousResultCountRef","isInitialMountRef","latest","shouldScrollRef","menuElement","scrollIntoViewProp","useScrollIntoView","outerDispatch","mouseAndTouchTrackersRef","downshiftElementRefs","isMouseDown","isTouchMove","onMouseDown","onMouseUp","onTouchStart","onTouchMove","onTouchEnd","useMouseAndTouchTracker","setGetterPropCallInfo","toggleButtonKeyDownHandlers","ArrowDown","ArrowUp","menuKeyDownHandlers","Home","End","Escape","Enter","toggleMenu","closeMenu","openMenu","setHighlightedIndex","newHighlightedIndex","selectItem","newSelectedItem","reset","newInputValue","getLabelProps","getMenuProps","_temp","_temp2","onMouseLeave","_ref$refKey","refKey","_ref2$suppressRefErro","suppressRefError","latestState","getToggleButtonProps","_temp3","_temp4","_extends3","_ref3$refKey","_ref4$suppressRefErro","toggleProps","toggleButtonNode","getItemProps","_temp5","_extends4","onMouseMove","_ref5$refKey","_latest$current","latestProps","getItemIndex","itemProps","itemNode","SelectItem","SelectAction","onSelect","isAction","getItemByValue","Select","downshiftOpts","initialSelectedItem","onSelectedItemChange","hasSelectedItem","Action","SeparatorList","tabIds","setTabIds","currentIndex","hasPanels","setHasPanels","changeTabs","TabsList","xPadding","TabsContext","childArray","tabId","TabsTab","TabsPanel","selectedId","hidden","Tabs","defaultSelectedIndex","onTabChange","hasBorder","setCurrentIndex","isControlledComponent","List","Tab","Panel","Tag","onDismiss","Toggle","defaultActive","labelledBy","setIsActive","buttonJsx","Tooltip","activeTimer","text","openPopover","onMouseEnter","formatterOpts","currencyDisplay","maximumFractionDigits","Number","isInteger","validStyles","currency","NumberFormat","dateStyle","global","isCallable","tryToString","argument","isConstructor","wellKnownSymbol","definePropertyModule","UNSCOPABLES","ArrayPrototype","unicode","isPrototypeOf","Prototype","isObject","$forEach","STRICT_METHOD","arrayMethodIsStrict","callbackfn","callWithSafeIterationClosing","isArrayIteratorMethod","lengthOfArrayLike","createProperty","getIterator","getIteratorMethod","arrayLike","IS_CONSTRUCTOR","argumentsLength","mapfn","mapping","iteratorMethod","toIndexedObject","toAbsoluteIndex","createMethod","IS_INCLUDES","$this","fromIndex","uncurryThis","IndexedObject","arraySpeciesCreate","TYPE","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_REJECT","NO_HOLES","that","specificCreate","boundFunction","findIndex","filterReject","fails","V8_VERSION","SPECIES","METHOD_NAME","foo","method","aCallable","IS_RIGHT","memo","start","end","fin","originalArray","arraySpeciesConstructor","anObject","iteratorClose","ENTRIES","ITERATOR","SAFE_CLOSING","called","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","object","stringSlice","TO_STRING_TAG_SUPPORT","classofRaw","TO_STRING_TAG","CORRECT_ARGUMENTS","tryGet","callee","hasOwn","ownKeys","getOwnPropertyDescriptorModule","exceptions","getOwnPropertyDescriptor","MATCH","regexp","error1","error2","getPrototypeOf","IteratorPrototype","createPropertyDescriptor","setToStringTag","Iterators","returnThis","IteratorConstructor","NAME","ENUMERABLE_NEXT","DESCRIPTORS","bitmap","toPropertyKey","propertyKey","$","IS_PURE","FunctionName","createIteratorConstructor","createNonEnumerableProperty","redefine","IteratorsCore","PROPER_FUNCTION_NAME","PROPER","CONFIGURABLE_FUNCTION_NAME","CONFIGURABLE","BUGGY_SAFARI_ITERATORS","KEYS","VALUES","Iterable","DEFAULT","IS_SET","FORCED","CurrentIteratorPrototype","methods","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","proto","forced","wrappedWellKnownSymbolModule","EXISTS","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","documentCreateElement","DOMTokenListPrototype","Pebble","classof","process","getBuiltIn","version","Deno","versions","v8","setGlobal","copyConstructorProperties","isForced","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","noTargetGet","sham","regexpExec","RegExpPrototype","SHAM","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","re","flags","uncurriedNativeRegExpMethod","nativeMethod","str","arg2","forceStringMethod","uncurriedNativeMethod","$exec","flattenIntoArray","original","sourceLen","depth","thisArg","elementLen","targetIndex","sourceIndex","mapFn","FunctionPrototype","Function","Reflect","getDescriptor","callBind","aFunction","namespace","getMethod","usingIterator","func","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","captures","namedCaptures","replacement","tailPos","symbols","ch","check","globalThis","propertyIsEnumerable","dummy","Wrapper","NewTarget","NewTargetPrototype","store","functionToString","inspectSource","has","NATIVE_WEAK_MAP","shared","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","WeakMap","wmget","wmhas","wmset","metadata","facade","STATE","enforce","getterFor","construct","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","feature","detection","normalize","POLYFILL","NATIVE","isFinite","isRegExp","USE_SYMBOL_AS_UID","$Symbol","Result","stopped","ResultPrototype","iterable","unboundFunction","iterFn","AS_ENTRIES","IS_ITERATOR","INTERRUPTED","stop","callFn","innerResult","innerError","PrototypeOfArrayIteratorPrototype","arrayIterator","toLength","flush","last","notify","promise","then","macrotask","IS_IOS","IS_IOS_PEBBLE","IS_WEBOS_WEBKIT","IS_NODE","MutationObserver","WebKitMutationObserver","Promise","queueMicrotaskDescriptor","queueMicrotask","domain","exit","enter","resolve","nextTick","createTextNode","characterData","task","getOwnPropertySymbols","symbol","PromiseCapability","reject","$$resolve","$$reject","whitespaces","n$ParseFloat","trimmedString","$parseInt","hex","radix","objectKeys","getOwnPropertySymbolsModule","propertyIsEnumerableModule","$assign","alphabet","chr","activeXDocument","defineProperties","enumBugKeys","html","IE_PROTO","EmptyConstructor","scriptTag","LT","NullProtoObjectViaActiveX","write","temp","parentWindow","NullProtoObject","ActiveXObject","iframeDocument","iframe","src","contentWindow","Properties","IE8_DOM_DEFINE","$defineProperty","Attributes","$getOwnPropertyDescriptor","$getOwnPropertyNames","arraySlice","windowNames","getOwnPropertyNames","getWindowNames","internalObjectKeys","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","$propertyIsEnumerable","NASHORN_BUG","aPossiblePrototype","CORRECT_SETTER","TO_ENTRIES","pref","valueOf","getOwnPropertyNamesModule","newPromiseCapability","promiseCapability","InternalStateModule","getInternalState","enforceInternalState","TEMPLATE","unsafe","simple","re1","re2","regexpFlags","stickyHelpers","UNSUPPORTED_DOT_ALL","UNSUPPORTED_NCG","nativeReplace","nativeExec","patchedExec","UPDATES_LAST_INDEX_WRONG","lastIndex","UNSUPPORTED_Y","BROKEN_CARET","NPCG_INCLUDED","reCopy","group","raw","groups","sticky","charsAdded","strCopy","ignoreCase","dotAll","$RegExp","MISSED_STICKY","is","CONSTRUCTOR_NAME","TAG","uid","SHARED","copyright","aConstructor","defaultConstructor","toIntegerOrInfinity","requireObjectCoercible","charCodeAt","CONVERT_TO_STRING","pos","second","codeAt","RangeError","count","Infinity","whitespace","ltrim","rtrim","location","defer","channel","port","setImmediate","clearImmediate","Dispatch","MessageChannel","counter","queue","run","runner","listener","post","postMessage","protocol","host","port2","port1","onmessage","importScripts","integer","ceil","isSymbol","ordinaryToPrimitive","TO_PRIMITIVE","exoticToPrim","toPrimitive","postfix","random","NATIVE_SYMBOL","WellKnownSymbolsStore","symbolFor","createWellKnownSymbol","withoutSetter","description","arrayMethodHasSpeciesSupport","IS_CONCAT_SPREADABLE","MAX_SAFE_INTEGER","MAXIMUM_ALLOWED_INDEX_EXCEEDED","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","isConcatSpreadable","spreadable","arg","$filter","depthArg","checkCorrectnessOfIteration","$includes","addToUnscopables","$IndexOf","un$IndexOf","NEGATIVE_ZERO","searchElement","defineIterator","ARRAY_ITERATOR","setInternalState","iterated","Arguments","un$Join","ES3_STRINGS","$map","$reduce","CHROME_VERSION","un$Slice","HAS_SPECIES_SUPPORT","FUNCTION_NAME_EXISTS","nameRE","regExpExec","inheritIfRequired","thisNumberValue","NUMBER","NativeNumber","NumberPrototype","toNumeric","primValue","toNumber","third","maxCode","digits","code","NaN","NumberWrapper","$repeat","repeat","un$ToFixed","pow","multiply","c2","divide","dataToString","fractionDigits","fractDigits","sign","x2","log","$entries","nativeGetOwnPropertyDescriptor","FAILS_ON_PRIMITIVES","getOwnPropertyDescriptors","nativeKeys","$parseFloat","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","NativePromise","redefineAll","setSpecies","anInstance","iterate","speciesConstructor","microtask","promiseResolve","hostReportErrors","newPromiseCapabilityModule","perform","IS_BROWSER","PROMISE","getInternalPromiseState","NativePromisePrototype","PromiseConstructor","PromisePrototype","newGenericPromiseCapability","DISPATCH_EVENT","NATIVE_REJECTION_EVENT","PromiseRejectionEvent","UNHANDLED_REJECTION","SUBCLASSING","PROMISE_CONSTRUCTOR_SOURCE","GLOBAL_CORE_JS_PROMISE","FakePromise","INCORRECT_ITERATION","all","isThenable","isReject","notified","chain","reactions","ok","exited","reaction","fail","rejection","onHandleUnhandled","onUnhandled","reason","isUnhandled","emit","unwrap","internalReject","internalResolve","executor","onFulfilled","onRejected","capability","$promiseResolve","remaining","alreadyCalled","race","$toString","regExpFlags","TO_STRING","n$ToString","getFlags","NOT_GENERIC","INCORRECT_NAME","rf","notARegExp","correctIsRegExpLogic","stringIndexOf","searchString","STRING_ITERATOR","point","fixRegExpWellKnownSymbolLogic","advanceStringIndex","getSubstitution","REPLACE","REPLACE_KEEPS_$0","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","maybeCallNative","UNSAFE_SUBSTITUTE","searchValue","replaceValue","replacer","rx","res","functionalReplace","fullUnicode","results","accumulatedResult","nextSourcePosition","replacerArgs","sameValue","SEARCH","nativeSearch","searcher","previousLastIndex","NativeSymbol","SymbolPrototype","EmptyStringDescriptionStore","SymbolWrapper","symbolToString","symbolValueOf","desc","defineWellKnownSymbol","nativeObjectCreate","getOwnPropertyNamesExternal","HIDDEN","QObject","$stringify","nativeDefineProperty","nativeGetOwnPropertyNames","nativePropertyIsEnumerable","AllSymbols","ObjectPrototypeSymbols","StringToSymbolRegistry","SymbolToStringRegistry","USE_SETTER","findChild","setSymbolDescriptor","ObjectPrototypeDescriptor","$defineProperties","$getOwnPropertySymbols","IS_OBJECT_PROTOTYPE","keyFor","sym","useSetter","useSimple","space","$replacer","hint","DOMIterables","handlePrototype","CollectionPrototype","COLLECTION_NAME","ArrayIteratorMethods","ArrayValues","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","componentName","propFullName","secret","getShim","ReactPropTypes","bigint","any","arrayOf","instanceOf","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","for","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","__esModule","definition","toStringTag"],"sourceRoot":""}