@entur/dropdown 7.3.2-beta.0 → 7.3.2-beta.10

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.
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown.esm.js","sources":["../../../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../../../node_modules/@babel/runtime/helpers/esm/extends.js","../../../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../../../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../../../node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js","../../../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js","../../../node_modules/prop-types/node_modules/react-is/index.js","../../../node_modules/object-assign/index.js","../../../node_modules/prop-types/lib/ReactPropTypesSecret.js","../../../node_modules/prop-types/lib/has.js","../../../node_modules/prop-types/checkPropTypes.js","../../../node_modules/prop-types/factoryWithTypeCheckers.js","../../../node_modules/prop-types/factoryWithThrowingShims.js","../../../node_modules/prop-types/index.js","../../../node_modules/downshift/node_modules/react-is/cjs/react-is.production.min.js","../../../node_modules/downshift/node_modules/react-is/cjs/react-is.development.js","../../../node_modules/downshift/node_modules/react-is/index.js","../../../node_modules/downshift/node_modules/compute-scroll-into-view/dist/index.js","../../../node_modules/tslib/tslib.es6.mjs","../../../node_modules/downshift/dist/downshift.esm.js","../../../node_modules/classnames/index.js","../../../node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","../../../node_modules/@floating-ui/core/dist/floating-ui.core.mjs","../../../node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs","../../../node_modules/@floating-ui/react-dom/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","../../../node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs","../src/components/DropdownList.tsx","../src/components/FieldComponents.tsx","../src/useNormalizedItems.ts","../src/useResolvedItems.ts","../src/utils.ts","../src/SearchableDropdown.tsx","../src/MultiSelect.tsx","../src/Dropdown.tsx","../src/NativeDropdown.tsx","../src/index.tsx"],"sourcesContent":["function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (e.includes(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inheritsLoose(t, o) {\n t.prototype = Object.create(o.prototype), t.prototype.constructor = t, setPrototypeOf(t, o);\n}\nexport { _inheritsLoose as default };","/** @license React v16.13.1\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\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","/** @license React v16.13.1\n * react-is.development.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\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\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","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\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","module.exports = Function.call.bind(Object.prototype.hasOwnProperty);\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 printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = require('./lib/has');\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) { /**/ }\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +\n 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\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 ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar has = require('./lib/has');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<<anonymous>>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bigint: createPrimitiveTypeChecker('bigint'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message, data) {\n this.message = message;\n this.data = data && typeof data === 'object' ? data: {};\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\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 } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),\n {expectedType: expectedType}\n );\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var expectedTypes = [];\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);\n if (checkerResult == null) {\n return null;\n }\n if (checkerResult.data && has(checkerResult.data, 'expectedType')) {\n expectedTypes.push(checkerResult.data.expectedType);\n }\n }\n var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function invalidValidatorError(componentName, location, propFullName, key, type) {\n return new PropTypeError(\n (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'\n );\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (has(shapeTypes, key) && typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\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\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 * @license React\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=Symbol.for(\"react.element\"),c=Symbol.for(\"react.portal\"),d=Symbol.for(\"react.fragment\"),e=Symbol.for(\"react.strict_mode\"),f=Symbol.for(\"react.profiler\"),g=Symbol.for(\"react.provider\"),h=Symbol.for(\"react.context\"),k=Symbol.for(\"react.server_context\"),l=Symbol.for(\"react.forward_ref\"),m=Symbol.for(\"react.suspense\"),n=Symbol.for(\"react.suspense_list\"),p=Symbol.for(\"react.memo\"),q=Symbol.for(\"react.lazy\"),t=Symbol.for(\"react.offscreen\"),u;u=Symbol.for(\"react.module.reference\");\nfunction v(a){if(\"object\"===typeof a&&null!==a){var r=a.$$typeof;switch(r){case b:switch(a=a.type,a){case d:case f:case e:case m:case n:return a;default:switch(a=a&&a.$$typeof,a){case k:case h:case l:case q:case p:case g:return a;default:return r}}case c:return r}}}exports.ContextConsumer=h;exports.ContextProvider=g;exports.Element=b;exports.ForwardRef=l;exports.Fragment=d;exports.Lazy=q;exports.Memo=p;exports.Portal=c;exports.Profiler=f;exports.StrictMode=e;exports.Suspense=m;\nexports.SuspenseList=n;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return v(a)===h};exports.isContextProvider=function(a){return v(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return v(a)===l};exports.isFragment=function(a){return v(a)===d};exports.isLazy=function(a){return v(a)===q};exports.isMemo=function(a){return v(a)===p};\nexports.isPortal=function(a){return v(a)===c};exports.isProfiler=function(a){return v(a)===f};exports.isStrictMode=function(a){return v(a)===e};exports.isSuspense=function(a){return v(a)===m};exports.isSuspenseList=function(a){return v(a)===n};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===e||a===m||a===n||a===t||\"object\"===typeof a&&null!==a&&(a.$$typeof===q||a.$$typeof===p||a.$$typeof===g||a.$$typeof===h||a.$$typeof===l||a.$$typeof===u||void 0!==a.getModuleId)?!0:!1};exports.typeOf=v;\n","/**\n * @license React\n * react-is.development.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\n'use strict';\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types.\nvar REACT_ELEMENT_TYPE = Symbol.for('react.element');\nvar REACT_PORTAL_TYPE = Symbol.for('react.portal');\nvar REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');\nvar REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');\nvar REACT_PROFILER_TYPE = Symbol.for('react.profiler');\nvar REACT_PROVIDER_TYPE = Symbol.for('react.provider');\nvar REACT_CONTEXT_TYPE = Symbol.for('react.context');\nvar REACT_SERVER_CONTEXT_TYPE = Symbol.for('react.server_context');\nvar REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');\nvar REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');\nvar REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');\nvar REACT_MEMO_TYPE = Symbol.for('react.memo');\nvar REACT_LAZY_TYPE = Symbol.for('react.lazy');\nvar REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');\n\n// -----------------------------------------------------------------------------\n\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\nvar enableCacheElement = false;\nvar enableTransitionTracing = false; // No known bugs, but needs performance testing\n\nvar enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber\n// stuff. Intended to enable React core members to more easily debug scheduling\n// issues in DEV builds.\n\nvar enableDebugTracing = false; // Track which Fiber(s) schedule render work.\n\nvar REACT_MODULE_REFERENCE;\n\n{\n REACT_MODULE_REFERENCE = Symbol.for('react.module.reference');\n}\n\nfunction isValidElementType(type) {\n if (typeof type === 'string' || typeof type === 'function') {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n\n if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden || type === REACT_OFFSCREEN_TYPE || enableScopeAPI || enableCacheElement || enableTransitionTracing ) {\n return true;\n }\n\n if (typeof type === 'object' && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object\n // types supported by any Flight configuration anywhere since\n // we don't know which Flight build this will end up being used\n // with.\n type.$$typeof === REACT_MODULE_REFERENCE || type.getModuleId !== undefined) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n case REACT_SUSPENSE_LIST_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_SERVER_CONTEXT_TYPE:\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n}\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar SuspenseList = REACT_SUSPENSE_LIST_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false;\nvar hasWarnedAboutDeprecatedIsConcurrentMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 18+.');\n }\n }\n\n return false;\n}\nfunction isConcurrentMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsConcurrentMode) {\n hasWarnedAboutDeprecatedIsConcurrentMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isConcurrentMode() alias has been deprecated, ' + 'and will be removed in React 18+.');\n }\n }\n\n return false;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\nfunction isSuspenseList(object) {\n return typeOf(object) === REACT_SUSPENSE_LIST_TYPE;\n}\n\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.SuspenseList = SuspenseList;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isSuspenseList = isSuspenseList;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\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","const t=t=>\"object\"==typeof t&&null!=t&&1===t.nodeType,e=(t,e)=>(!e||\"hidden\"!==t)&&(\"visible\"!==t&&\"clip\"!==t),n=(t,n)=>{if(t.clientHeight<t.scrollHeight||t.clientWidth<t.scrollWidth){const o=getComputedStyle(t,null);return e(o.overflowY,n)||e(o.overflowX,n)||(t=>{const e=(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},o=(t,e,n,o,l,r,i,s)=>r<t&&i>e||r>t&&i<e?0:r<=t&&s<=n||i>=e&&s>=n?r-t-o:i>e&&s<n||r<t&&s>n?i-e+l:0,l=t=>{const e=t.parentElement;return null==e?t.getRootNode().host||null:e},r=(e,r)=>{var i,s,d,h;if(\"undefined\"==typeof document)return[];const{scrollMode:c,block:f,inline:u,boundary:a,skipOverflowHiddenElements:g}=r,p=\"function\"==typeof a?a:t=>t!==a;if(!t(e))throw new TypeError(\"Invalid target\");const m=document.scrollingElement||document.documentElement,w=[];let W=e;for(;t(W)&&p(W);){if(W=l(W),W===m){w.push(W);break}null!=W&&W===document.body&&n(W)&&!n(document.documentElement)||null!=W&&n(W,g)&&w.push(W)}const b=null!=(s=null==(i=window.visualViewport)?void 0:i.width)?s:innerWidth,H=null!=(h=null==(d=window.visualViewport)?void 0:d.height)?h:innerHeight,{scrollX:y,scrollY:M}=window,{height:v,width:E,top:x,right:C,bottom:I,left:R}=e.getBoundingClientRect(),{top:T,right:B,bottom:F,left:V}=(t=>{const e=window.getComputedStyle(t);return{top:parseFloat(e.scrollMarginTop)||0,right:parseFloat(e.scrollMarginRight)||0,bottom:parseFloat(e.scrollMarginBottom)||0,left:parseFloat(e.scrollMarginLeft)||0}})(e);let k=\"start\"===f||\"nearest\"===f?x-T:\"end\"===f?I+F:x+v/2-T+F,D=\"center\"===u?R+E/2-V+B:\"end\"===u?C+B:R-V;const L=[];for(let t=0;t<w.length;t++){const e=w[t],{height:n,width:l,top:r,right:i,bottom:s,left:d}=e.getBoundingClientRect();if(\"if-needed\"===c&&x>=0&&R>=0&&I<=H&&C<=b&&x>=r&&I<=s&&R>=d&&C<=i)return L;const h=getComputedStyle(e),a=parseInt(h.borderLeftWidth,10),g=parseInt(h.borderTopWidth,10),p=parseInt(h.borderRightWidth,10),W=parseInt(h.borderBottomWidth,10);let T=0,B=0;const F=\"offsetWidth\"in e?e.offsetWidth-e.clientWidth-a-p:0,V=\"offsetHeight\"in e?e.offsetHeight-e.clientHeight-g-W:0,S=\"offsetWidth\"in e?0===e.offsetWidth?0:l/e.offsetWidth:0,X=\"offsetHeight\"in e?0===e.offsetHeight?0:n/e.offsetHeight:0;if(m===e)T=\"start\"===f?k:\"end\"===f?k-H:\"nearest\"===f?o(M,M+H,H,g,W,M+k,M+k+v,v):k-H/2,B=\"start\"===u?D:\"center\"===u?D-b/2:\"end\"===u?D-b:o(y,y+b,b,a,p,y+D,y+D+E,E),T=Math.max(0,T+M),B=Math.max(0,B+y);else{T=\"start\"===f?k-r-g:\"end\"===f?k-s+W+V:\"nearest\"===f?o(r,s,n,g,W+V,k,k+v,v):k-(r+n/2)+V/2,B=\"start\"===u?D-d-a:\"center\"===u?D-(d+l/2)+F/2:\"end\"===u?D-i+p+F:o(d,i,l,a,p+F,D,D+E,E);const{scrollLeft:t,scrollTop:h}=e;T=0===X?0:Math.max(0,Math.min(h+T/X,e.scrollHeight-n/X+V)),B=0===S?0:Math.max(0,Math.min(t+B/S,e.scrollWidth-l/S+F)),k+=h-T,D+=t-B}L.push({el:e,top:T,left:B})}return L};export{r as compute};//# sourceMappingURL=index.js.map\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\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); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","import _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport PropTypes from 'prop-types';\nimport React, { cloneElement, Component, useRef, useEffect, useLayoutEffect, useCallback, useReducer, useMemo } from 'react';\nimport { isForwardRef } from 'react-is';\nimport { compute } from 'compute-scroll-into-view';\nimport { __assign } from 'tslib';\n\nvar idCounter = 0;\n\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 */\nfunction cbToCb(cb) {\n return typeof cb === 'function' ? cb : noop;\n}\nfunction noop() {}\n\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 */\nfunction scrollIntoView(node, menuNode) {\n if (!node) {\n return;\n }\n var actions = compute(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/**\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 */\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/**\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 */\nfunction debounce(fn, time) {\n var timeoutId;\n function cancel() {\n if (timeoutId) {\n clearTimeout(timeoutId);\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 cancel();\n timeoutId = setTimeout(function () {\n timeoutId = null;\n fn.apply(void 0, args);\n }, time);\n }\n wrapper.cancel = cancel;\n return wrapper;\n}\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 */\nfunction callAllEventHandlers() {\n for (var _len2 = arguments.length, fns = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n fns[_key2] = arguments[_key2];\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 return fns.some(function (fn) {\n if (fn) {\n fn.apply(void 0, [event].concat(args));\n }\n return event.preventDownshiftDefault || event.hasOwnProperty('nativeEvent') && event.nativeEvent.preventDownshiftDefault;\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 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/**\n * This generates a unique ID for an instance of Downshift\n * @return {String} the unique ID\n */\nfunction generateId() {\n return String(idCounter++);\n}\n\n/**\n * Resets idCounter to 0. Used for SSR.\n */\nfunction resetIdCounter() {\n // istanbul ignore next\n if ('useId' in React) {\n console.warn(\"It is not necessary to call resetIdCounter when using React 18+\");\n return;\n }\n idCounter = 0;\n}\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 */\nfunction getA11yStatusMessage(_ref2) {\n var isOpen = _ref2.isOpen,\n resultCount = _ref2.resultCount,\n previousResultCount = _ref2.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 key to select.\";\n }\n return '';\n}\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 */\nfunction unwrapArray(arg, defaultValue) {\n arg = Array.isArray(arg) ? /* istanbul ignore next (preact) */arg[0] : arg;\n if (!arg && defaultValue) {\n return defaultValue;\n } else {\n return arg;\n }\n}\n\n/**\n * @param {Object} element (P)react element\n * @return {Boolean} whether it's a DOM element\n */\nfunction isDOMElement(element) {\n\n // then we assume this is react\n return typeof element.type === 'string';\n}\n\n/**\n * @param {Object} element (P)react element\n * @return {Object} the props\n */\nfunction getElementProps(element) {\n return element.props;\n}\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 */\nfunction requiredProp(fnName, propName) {\n // eslint-disable-next-line no-console\n console.error(\"The property \\\"\" + propName + \"\\\" is required in \\\"\" + fnName + \"\\\"\");\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 */\nfunction pickState(state) {\n if (state === void 0) {\n state = {};\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/**\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 */\nfunction getState(state, props) {\n if (!state || !props) {\n return state;\n }\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/**\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 */\nfunction isControlledProp(props, key) {\n return props[key] !== undefined;\n}\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 */\nfunction normalizeArrowKey(event) {\n var key = event.key,\n keyCode = event.keyCode;\n /* istanbul ignore next (ie) */\n if (keyCode >= 37 && keyCode <= 40 && key.indexOf('Arrow') !== 0) {\n return \"Arrow\" + key;\n }\n return key;\n}\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 */\nfunction isPlainObject(obj) {\n return Object.prototype.toString.call(obj) === '[object Object]';\n}\n\n/**\n * Returns the next non-disabled highlightedIndex value.\n *\n * @param {number} start The current highlightedIndex.\n * @param {number} offset The offset from the current highlightedIndex to start searching.\n * @param {unknown[]} items The items array.\n * @param {(item: unknown, index: number) => boolean} isItemDisabled Function that tells if an item is disabled or not.\n * @param {boolean?} circular If the search reaches the end, if it can search again starting from the other end.\n * @returns {number} The next highlightedIndex.\n */\nfunction getHighlightedIndex(start, offset, items, isItemDisabled, circular) {\n if (circular === void 0) {\n circular = false;\n }\n var count = items.length;\n if (count === 0) {\n return -1;\n }\n var itemsLastIndex = count - 1;\n if (typeof start !== 'number' || start < 0 || start > itemsLastIndex) {\n start = offset > 0 ? -1 : itemsLastIndex + 1;\n }\n var current = start + offset;\n if (current < 0) {\n current = circular ? itemsLastIndex : 0;\n } else if (current > itemsLastIndex) {\n current = circular ? 0 : itemsLastIndex;\n }\n var highlightedIndex = getNonDisabledIndex(current, offset < 0, items, isItemDisabled, circular);\n if (highlightedIndex === -1) {\n return start >= count ? -1 : start;\n }\n return highlightedIndex;\n}\n\n/**\n * Returns the next non-disabled highlightedIndex value.\n *\n * @param {number} start The current highlightedIndex.\n * @param {boolean} backwards If true, it will search backwards from the start.\n * @param {unknown[]} items The items array.\n * @param {(item: unknown, index: number) => boolean} isItemDisabled Function that tells if an item is disabled or not.\n * @param {boolean} circular If the search reaches the end, if it can search again starting from the other end.\n * @returns {number} The next non-disabled index.\n */\nfunction getNonDisabledIndex(start, backwards, items, isItemDisabled, circular) {\n if (circular === void 0) {\n circular = false;\n }\n var count = items.length;\n if (backwards) {\n for (var index = start; index >= 0; index--) {\n if (!isItemDisabled(items[index], index)) {\n return index;\n }\n }\n } else {\n for (var _index = start; _index < count; _index++) {\n if (!isItemDisabled(items[_index], _index)) {\n return _index;\n }\n }\n }\n if (circular) {\n return getNonDisabledIndex(backwards ? count - 1 : 0, backwards, items, isItemDisabled);\n }\n return -1;\n}\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 */\nfunction targetWithinDownshift(target, downshiftElements, environment, checkActiveElement) {\n if (checkActiveElement === void 0) {\n checkActiveElement = true;\n }\n return environment && downshiftElements.some(function (contextNode) {\n return contextNode && (isOrContainsNode(contextNode, target, environment) || checkActiveElement && isOrContainsNode(contextNode, environment.document.activeElement, environment));\n });\n}\n\n// eslint-disable-next-line import/no-mutable-exports\nvar validateControlledUnchanged = noop;\n/* istanbul ignore next */\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/**\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 */\nfunction getStatusDiv(documentProp) {\n var statusDiv = documentProp.getElementById('a11y-status-message');\n if (statusDiv) {\n return statusDiv;\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\n/**\n * @param {String} status the status message\n * @param {Object} documentProp document passed by the user.\n */\nfunction setStatus(status, documentProp) {\n if (!status || !documentProp) {\n return;\n }\n var div = getStatusDiv(documentProp);\n div.textContent = status;\n cleanupStatus(documentProp);\n}\n\n/**\n * Removes the status element from the DOM\n * @param {Document} documentProp \n */\nfunction cleanupStatusDiv(documentProp) {\n var statusDiv = documentProp == null ? void 0 : documentProp.getElementById('a11y-status-message');\n if (statusDiv) {\n statusDiv.remove();\n }\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 blurButton: blurButton,\n blurInput: blurInput,\n changeInput: changeInput,\n clickButton: clickButton,\n clickItem: clickItem,\n controlledPropUpdatedSelectedItem: controlledPropUpdatedSelectedItem,\n itemMouseEnter: itemMouseEnter,\n keyDownArrowDown: keyDownArrowDown,\n keyDownArrowUp: keyDownArrowUp,\n keyDownEnd: keyDownEnd,\n keyDownEnter: keyDownEnter,\n keyDownEscape: keyDownEscape,\n keyDownHome: keyDownHome,\n keyDownSpaceButton: keyDownSpaceButton,\n mouseUp: mouseUp,\n touchEnd: touchEnd,\n unknown: unknown\n});\n\nvar _excluded$3 = [\"refKey\", \"ref\"],\n _excluded2$3 = [\"onClick\", \"onPress\", \"onKeyDown\", \"onKeyUp\", \"onBlur\"],\n _excluded3$2 = [\"onKeyDown\", \"onBlur\", \"onChange\", \"onInput\", \"onChangeText\"],\n _excluded4$2 = [\"refKey\", \"ref\"],\n _excluded5 = [\"onMouseMove\", \"onMouseDown\", \"onClick\", \"onPress\", \"index\", \"item\"];\nvar Downshift = /*#__PURE__*/function () {\n var Downshift = /*#__PURE__*/function (_Component) {\n function Downshift(_props) {\n var _this;\n _this = _Component.call(this, _props) || this;\n // 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 _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 _this.getItemId = _this.props.getItemId || function (index) {\n return _this.id + \"-item-\" + index;\n };\n _this.items = [];\n // itemCount can be changed asynchronously\n // from within downshift (so it can't come from a prop)\n // this is why we store it as an instance and use\n // getItemCount rather than just use items.length\n // (to support windowing + async)\n _this.itemCount = null;\n _this.previousResultCount = 0;\n _this.timeoutIds = [];\n /**\n * @param {Function} fn the function to call after the time\n * @param {Number} time the time to wait\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 _this.timeoutIds.push(id);\n };\n _this.setItemCount = function (count) {\n _this.itemCount = count;\n };\n _this.unsetItemCount = function () {\n _this.itemCount = null;\n };\n _this.isItemDisabled = function (_item, index) {\n var currentElementNode = _this.getItemNodeFromIndex(index);\n return currentElementNode && currentElementNode.hasAttribute('disabled');\n };\n _this.setHighlightedIndex = function (highlightedIndex, otherStateToSet) {\n if (highlightedIndex === void 0) {\n highlightedIndex = _this.props.defaultHighlightedIndex;\n }\n if (otherStateToSet === void 0) {\n otherStateToSet = {};\n }\n otherStateToSet = pickState(otherStateToSet);\n _this.internalSetState(_extends({\n highlightedIndex: highlightedIndex\n }, otherStateToSet));\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 _this.selectItem = function (item, otherStateToSet, cb) {\n otherStateToSet = pickState(otherStateToSet);\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 _this.selectItemAtIndex = function (itemIndex, otherStateToSet, cb) {\n var item = _this.items[itemIndex];\n if (item == null) {\n return;\n }\n _this.selectItem(item, otherStateToSet, cb);\n };\n _this.selectHighlightedItem = function (otherStateToSet, cb) {\n return _this.selectItemAtIndex(_this.getState().highlightedIndex, otherStateToSet, cb);\n };\n // any piece of our state can live in two places:\n // 1. Uncontrolled: it's internal (this.state)\n // We will call this.setState to update that state\n // 2. Controlled: it's external (this.props)\n // We will call this.props.onStateChange to update that state\n //\n // In addition, we'll call this.props.onChange if the\n // selectedItem is changed.\n _this.internalSetState = function (stateToSet, cb) {\n var isItemSelected, onChangeArg;\n var onStateChangeArg = {};\n var isStateToSetFunction = typeof stateToSet === 'function';\n\n // 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 if (!isStateToSetFunction && stateToSet.hasOwnProperty('inputValue')) {\n _this.props.onInputValueChange(stateToSet.inputValue, _extends({}, _this.getStateAndHelpers(), stateToSet));\n }\n return _this.setState(function (state) {\n var _newStateToSet;\n state = _this.getState(state);\n var newStateToSet = isStateToSetFunction ? stateToSet(state) : stateToSet;\n\n // Your own function that could modify the state that will be set.\n newStateToSet = _this.props.stateReducer(state, newStateToSet);\n\n // 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 isItemSelected = newStateToSet.hasOwnProperty('selectedItem');\n // this keeps track of the object we want to call with setState\n var nextState = {};\n // 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 if (isItemSelected && newStateToSet.selectedItem !== state.selectedItem) {\n onChangeArg = newStateToSet.selectedItem;\n }\n (_newStateToSet = 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 }\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 if (key === 'type') {\n return;\n }\n newStateToSet[key];\n // if it's coming from props, then we don't care to set it internally\n if (!isControlledProp(_this.props, key)) {\n nextState[key] = newStateToSet[key];\n }\n });\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 if (isStateToSetFunction && newStateToSet.hasOwnProperty('inputValue')) {\n _this.props.onInputValueChange(newStateToSet.inputValue, _extends({}, _this.getStateAndHelpers(), newStateToSet));\n }\n return nextState;\n }, function () {\n // call the provided callback if it's a function\n cbToCb(cb)();\n\n // only call the onStateChange and onChange callbacks if\n // we have relevant information to pass them.\n var hasMoreStateThanType = Object.keys(onStateChangeArg).length > 1;\n if (hasMoreStateThanType) {\n _this.props.onStateChange(onStateChangeArg, _this.getStateAndHelpers());\n }\n if (isItemSelected) {\n _this.props.onSelect(stateToSet.selectedItem, _this.getStateAndHelpers());\n }\n if (onChangeArg !== undefined) {\n _this.props.onChange(onChangeArg, _this.getStateAndHelpers());\n }\n // this is currently undocumented and therefore subject to change\n // We'll try to not break it, but just be warned.\n _this.props.onUserAction(onStateChangeArg, _this.getStateAndHelpers());\n });\n };\n //////////////////////////// ROOT\n _this.rootRef = function (node) {\n return _this._rootNode = node;\n };\n _this.getRootProps = function (_temp, _temp2) {\n var _extends2;\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$3);\n var _ref2 = _temp2 === void 0 ? {} : _temp2,\n _ref2$suppressRefErro = _ref2.suppressRefError,\n suppressRefError = _ref2$suppressRefErro === void 0 ? false : _ref2$suppressRefErro;\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 var _this$getState = _this.getState(),\n isOpen = _this$getState.isOpen;\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 : undefined, _extends2['aria-labelledby'] = _this.labelId, _extends2), rest);\n };\n //\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ROOT\n _this.keyDownHandlers = {\n ArrowDown: function ArrowDown(event) {\n var _this2 = this;\n event.preventDefault();\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 if (itemCount > 0) {\n var _this2$getState = _this2.getState(),\n highlightedIndex = _this2$getState.highlightedIndex;\n var nextHighlightedIndex = getHighlightedIndex(highlightedIndex, 1, {\n length: itemCount\n }, _this2.isItemDisabled, true);\n _this2.setHighlightedIndex(nextHighlightedIndex, {\n type: keyDownArrowDown\n });\n }\n });\n }\n },\n ArrowUp: function ArrowUp(event) {\n var _this3 = this;\n event.preventDefault();\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 if (itemCount > 0) {\n var _this3$getState = _this3.getState(),\n highlightedIndex = _this3$getState.highlightedIndex;\n var nextHighlightedIndex = getHighlightedIndex(highlightedIndex, -1, {\n length: itemCount\n }, _this3.isItemDisabled, true);\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 var _this$getState2 = this.getState(),\n isOpen = _this$getState2.isOpen,\n highlightedIndex = _this$getState2.highlightedIndex;\n if (isOpen && highlightedIndex != null) {\n event.preventDefault();\n var item = this.items[highlightedIndex];\n var itemNode = this.getItemNodeFromIndex(highlightedIndex);\n if (item == null || itemNode && itemNode.hasAttribute('disabled')) {\n return;\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 //////////////////////////// BUTTON\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 _this$getState3 = this.getState(),\n isOpen = _this$getState3.isOpen;\n if (!isOpen) {\n return;\n }\n event.preventDefault();\n var itemCount = this.getItemCount();\n if (itemCount <= 0 || !isOpen) {\n return;\n }\n\n // get next non-disabled starting downwards from 0 if that's disabled.\n var newHighlightedIndex = getNonDisabledIndex(0, false, {\n length: itemCount\n }, this.isItemDisabled);\n this.setHighlightedIndex(newHighlightedIndex, {\n type: keyDownHome\n });\n },\n End: function End(event) {\n var _this$getState4 = this.getState(),\n isOpen = _this$getState4.isOpen;\n if (!isOpen) {\n return;\n }\n event.preventDefault();\n var itemCount = this.getItemCount();\n if (itemCount <= 0 || !isOpen) {\n return;\n }\n\n // get next non-disabled starting upwards from last index if that's disabled.\n var newHighlightedIndex = getNonDisabledIndex(itemCount - 1, true, {\n length: itemCount\n }, this.isItemDisabled);\n this.setHighlightedIndex(newHighlightedIndex, {\n type: keyDownEnd\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 var _this$getState5 = _this.getState(),\n isOpen = _this$getState5.isOpen;\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 _this.buttonHandleKeyUp = function (event) {\n // Prevent click event from emitting in Firefox\n event.preventDefault();\n };\n _this.buttonHandleKeyDown = function (event) {\n var key = normalizeArrowKey(event);\n if (_this.buttonKeyDownHandlers[key]) {\n _this.buttonKeyDownHandlers[key].call(_this, event);\n }\n };\n _this.buttonHandleClick = function (event) {\n event.preventDefault();\n // handle odd case for Safari and Firefox which\n // don't give the button the focus properly.\n /* istanbul ignore if (can't reasonably test this) */\n if (_this.props.environment) {\n var _this$props$environme = _this.props.environment.document,\n body = _this$props$environme.body,\n activeElement = _this$props$environme.activeElement;\n if (body && body === activeElement) {\n event.target.focus();\n }\n }\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 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 _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 _this.internalSetTimeout(function () {\n if (_this.isMouseDown || !_this.props.environment) {\n return;\n }\n var activeElement = _this.props.environment.document.activeElement;\n if ((activeElement == null || activeElement.id !== _this.inputId) && 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 //\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ BUTTON\n /////////////////////////////// LABEL\n _this.getLabelProps = function (props) {\n return _extends({\n htmlFor: _this.inputId,\n id: _this.labelId\n }, props);\n };\n //\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ LABEL\n /////////////////////////////// INPUT\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 var onChangeKey;\n var eventHandlers = {};\n\n /* istanbul ignore next (preact) */\n {\n onChangeKey = 'onChange';\n }\n var _this$getState6 = _this.getState(),\n inputValue = _this$getState6.inputValue,\n isOpen = _this$getState6.isOpen,\n highlightedIndex = _this$getState6.highlightedIndex;\n if (!rest.disabled) {\n var _eventHandlers;\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 return _extends({\n 'aria-autocomplete': 'list',\n 'aria-activedescendant': isOpen && typeof highlightedIndex === 'number' && highlightedIndex >= 0 ? _this.getItemId(highlightedIndex) : undefined,\n 'aria-controls': isOpen ? _this.menuId : undefined,\n 'aria-labelledby': rest && rest['aria-label'] ? undefined : _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 _this.inputHandleKeyDown = function (event) {\n var key = normalizeArrowKey(event);\n if (key && _this.inputKeyDownHandlers[key]) {\n _this.inputKeyDownHandlers[key].call(_this, event);\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 _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 _activeElement$datase;\n if (_this.isMouseDown || !_this.props.environment) {\n return;\n }\n var activeElement = _this.props.environment.document.activeElement;\n var downshiftButtonIsActive = (activeElement == null || (_activeElement$datase = activeElement.dataset) == null ? void 0 : _activeElement$datase.toggle) && _this._rootNode && _this._rootNode.contains(activeElement);\n if (!downshiftButtonIsActive) {\n _this.reset({\n type: blurInput\n });\n }\n });\n };\n //\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ INPUT\n /////////////////////////////// MENU\n _this.menuRef = function (node) {\n _this._menuNode = node;\n };\n _this.getMenuProps = function (_temp5, _temp6) {\n var _extends3;\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$2);\n var _ref6 = _temp6 === void 0 ? {} : _temp6,\n _ref6$suppressRefErro = _ref6.suppressRefError,\n suppressRefError = _ref6$suppressRefErro === void 0 ? false : _ref6$suppressRefErro;\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'] ? undefined : _this.labelId, _extends3.id = _this.menuId, _extends3), props);\n };\n //\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ MENU\n /////////////////////////////// ITEM\n _this.getItemProps = function (_temp7) {\n var _enabledEventHandlers;\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' ? /* istanbul ignore next */undefined : requiredProp('getItemProps', 'item') : _ref7$item,\n rest = _objectWithoutPropertiesLoose(_ref7, _excluded5);\n if (index === undefined) {\n _this.items.push(item);\n index = _this.items.indexOf(item);\n } else {\n _this.items[index] = item;\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 _this.setHighlightedIndex(index, {\n type: itemMouseEnter\n });\n\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 _this.avoidScrolling = true;\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);\n\n // Passing down the onMouseDown handler to prevent redirect\n // of the activeElement if clicking on disabled items\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 //\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ITEM\n _this.clearItems = function () {\n _this.items = [];\n };\n _this.reset = function (otherStateToSet, cb) {\n if (otherStateToSet === void 0) {\n otherStateToSet = {};\n }\n otherStateToSet = pickState(otherStateToSet);\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 _this.toggleMenu = function (otherStateToSet, cb) {\n if (otherStateToSet === void 0) {\n otherStateToSet = {};\n }\n otherStateToSet = pickState(otherStateToSet);\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 if (isOpen) {\n if (_this.getItemCount() > 0 && typeof highlightedIndex === 'number') {\n _this.setHighlightedIndex(highlightedIndex, otherStateToSet);\n }\n }\n cbToCb(cb)();\n });\n };\n _this.openMenu = function (cb) {\n _this.internalSetState({\n isOpen: true\n }, cb);\n };\n _this.closeMenu = function (cb) {\n _this.internalSetState({\n isOpen: false\n }, cb);\n };\n _this.updateStatus = debounce(function () {\n var _this$props;\n if (!((_this$props = _this.props) != null && (_this$props = _this$props.environment) != null && _this$props.document)) {\n return;\n }\n var state = _this.getState();\n var item = _this.items[state.highlightedIndex];\n var resultCount = _this.getItemCount();\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 _this.previousResultCount = resultCount;\n setStatus(status, _this.props.environment.document);\n }, 200);\n var _this$props2 = _this.props,\n defaultHighlightedIndex = _this$props2.defaultHighlightedIndex,\n _this$props2$initialH = _this$props2.initialHighlightedIndex,\n _highlightedIndex = _this$props2$initialH === void 0 ? defaultHighlightedIndex : _this$props2$initialH,\n defaultIsOpen = _this$props2.defaultIsOpen,\n _this$props2$initialI = _this$props2.initialIsOpen,\n _isOpen = _this$props2$initialI === void 0 ? defaultIsOpen : _this$props2$initialI,\n _this$props2$initialI2 = _this$props2.initialInputValue,\n _inputValue = _this$props2$initialI2 === void 0 ? '' : _this$props2$initialI2,\n _this$props2$initialS = _this$props2.initialSelectedItem,\n _selectedItem = _this$props2$initialS === void 0 ? null : _this$props2$initialS;\n var _state = _this.getState({\n highlightedIndex: _highlightedIndex,\n isOpen: _isOpen,\n inputValue: _inputValue,\n selectedItem: _selectedItem\n });\n if (_state.selectedItem != null && _this.props.initialInputValue === undefined) {\n _state.inputValue = _this.props.itemToString(_state.selectedItem);\n }\n _this.state = _state;\n return _this;\n }\n _inheritsLoose(Downshift, _Component);\n var _proto = Downshift.prototype;\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 /**\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 _proto.getState = function getState$1(stateToMerge) {\n if (stateToMerge === void 0) {\n stateToMerge = this.state;\n }\n return getState(stateToMerge, this.props);\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 if (this.itemCount != null) {\n itemCount = this.itemCount;\n } else if (this.props.itemCount !== undefined) {\n itemCount = this.props.itemCount;\n }\n return itemCount;\n };\n _proto.getItemNodeFromIndex = function getItemNodeFromIndex(index) {\n return this.props.environment ? this.props.environment.document.getElementById(this.getItemId(index)) : null;\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 _proto.moveHighlightedIndex = function moveHighlightedIndex(amount, otherStateToSet) {\n var itemCount = this.getItemCount();\n var _this$getState8 = this.getState(),\n highlightedIndex = _this$getState8.highlightedIndex;\n if (itemCount > 0) {\n var nextHighlightedIndex = getHighlightedIndex(highlightedIndex, amount, {\n length: itemCount\n }, this.isItemDisabled, true);\n this.setHighlightedIndex(nextHighlightedIndex, otherStateToSet);\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 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 };\n _proto.componentDidMount = function componentDidMount() {\n var _this4 = this;\n /* istanbul ignore if (react-native) */\n if (process.env.NODE_ENV !== 'production' && true && this.getMenuProps.called && !this.getMenuProps.suppressRefError) {\n validateGetMenuPropsCalledCorrectly(this._menuNode, this.getMenuProps);\n }\n\n /* istanbul ignore if (react-native or SSR) */\n if (!this.props.environment) {\n this.cleanup = function () {\n _this4.internalClearTimeouts();\n };\n } else {\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 _this4.isMouseDown = true;\n };\n var onMouseUp = function onMouseUp(event) {\n _this4.isMouseDown = false;\n // if the target element or the activeElement is within a downshift node\n // then we don't want to reset downshift\n var contextWithinDownshift = targetWithinDownshift(event.target, [_this4._rootNode, _this4._menuNode], _this4.props.environment);\n if (!contextWithinDownshift && _this4.getState().isOpen) {\n _this4.reset({\n type: mouseUp\n }, function () {\n return _this4.props.onOuterClick(_this4.getStateAndHelpers());\n });\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 var onTouchStart = function onTouchStart() {\n _this4.isTouchMove = false;\n };\n var onTouchMove = function onTouchMove() {\n _this4.isTouchMove = true;\n };\n var onTouchEnd = function onTouchEnd(event) {\n var contextWithinDownshift = targetWithinDownshift(event.target, [_this4._rootNode, _this4._menuNode], _this4.props.environment, false);\n if (!_this4.isTouchMove && !contextWithinDownshift && _this4.getState().isOpen) {\n _this4.reset({\n type: touchEnd\n }, function () {\n return _this4.props.onOuterClick(_this4.getStateAndHelpers());\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 this.cleanup = function () {\n _this4.internalClearTimeouts();\n _this4.updateStatus.cancel();\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 _proto.shouldScroll = function shouldScroll(prevState, prevProps) {\n var _ref0 = this.props.highlightedIndex === undefined ? this.getState() : this.props,\n currentHighlightedIndex = _ref0.highlightedIndex;\n var _ref1 = prevProps.highlightedIndex === undefined ? prevState : prevProps,\n prevHighlightedIndex = _ref1.highlightedIndex;\n var scrollWhenOpen = currentHighlightedIndex && this.getState().isOpen && !prevState.isOpen;\n var scrollWhenNavigating = currentHighlightedIndex !== prevHighlightedIndex;\n return scrollWhenOpen || scrollWhenNavigating;\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 if (this.getMenuProps.called && !this.getMenuProps.suppressRefError) {\n validateGetMenuPropsCalledCorrectly(this._menuNode, this.getMenuProps);\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 if (!this.avoidScrolling && this.shouldScroll(prevState, prevProps)) {\n this.scrollHighlightedItemIntoView();\n }\n\n /* istanbul ignore else (react-native) */\n {\n this.updateStatus();\n }\n };\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cleanup(); // avoids memory leak\n };\n _proto.render = function render() {\n var children = unwrapArray(this.props.children, noop);\n // 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 this.clearItems();\n // 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 this.getRootProps.called = false;\n this.getRootProps.refKey = undefined;\n this.getRootProps.suppressRefError = undefined;\n // we do something similar for getMenuProps\n this.getMenuProps.called = false;\n this.getMenuProps.refKey = undefined;\n this.getMenuProps.suppressRefError = undefined;\n // we do something similar for getLabelProps\n this.getLabelProps.called = false;\n // and something similar for getInputProps\n this.getInputProps.called = false;\n var element = unwrapArray(children(this.getStateAndHelpers()));\n if (!element) {\n return null;\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 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\n /* istanbul ignore else */\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\n throw new Error('downshift: If you return a non-DOM element, you must apply the getRootProps function');\n }\n\n /* istanbul ignore next */\n return undefined;\n };\n return Downshift;\n }(Component);\n Downshift.defaultProps = {\n defaultHighlightedIndex: null,\n defaultIsOpen: false,\n getA11yStatusMessage: getA11yStatusMessage,\n itemToString: function itemToString(i) {\n if (i == null) {\n return '';\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 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: /* istanbul ignore next (ssr) */\n typeof window === 'undefined' || false ? 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}();\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.isRequired,\n removeEventListener: PropTypes.func.isRequired,\n document: PropTypes.shape({\n createElement: PropTypes.func.isRequired,\n getElementById: PropTypes.func.isRequired,\n activeElement: PropTypes.any.isRequired,\n body: PropTypes.any.isRequired\n }).isRequired,\n Node: PropTypes.func.isRequired\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 /* 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} : void 0;\nfunction validateGetMenuPropsCalledCorrectly(node, _ref10) {\n var refKey = _ref10.refKey;\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}\nfunction validateGetRootPropsCalledCorrectly(element, _ref11) {\n var refKey = _ref11.refKey;\n var refKeySpecified = refKey !== 'ref';\n var isComposite = !isDOMElement(element);\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 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 dropdownDefaultStateValues = {\n highlightedIndex: -1,\n isOpen: false,\n selectedItem: null,\n inputValue: ''\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 if (newState[key] !== state[key]) {\n changes[key] = newState[key];\n }\n });\n if (props.onStateChange && Object.keys(changes).length) {\n props.onStateChange(_extends({\n type: type\n }, changes));\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 if (props[handler] && newState[key] !== undefined && newState[key] !== state[key]) {\n props[handler](_extends({\n type: type\n }, newState));\n }\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 */\nfunction stateReducer(s, a) {\n return a.changes;\n}\n\n/**\n * Debounced call for updating the a11y message.\n */\nvar updateA11yStatus = debounce(function (status, document) {\n setStatus(status, document);\n}, 200);\n\n// istanbul ignore next\nvar useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? useLayoutEffect : useEffect;\n\n// istanbul ignore next\nvar useElementIds = 'useId' in React // Avoid conditional useId call\n? function useElementIds(_ref) {\n var id = _ref.id,\n labelId = _ref.labelId,\n menuId = _ref.menuId,\n getItemId = _ref.getItemId,\n toggleButtonId = _ref.toggleButtonId,\n inputId = _ref.inputId;\n // Avoid conditional useId call\n var reactId = \"downshift-\" + React.useId();\n if (!id) {\n id = reactId;\n }\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} : function useElementIds(_ref2) {\n var _ref2$id = _ref2.id,\n id = _ref2$id === void 0 ? \"downshift-\" + generateId() : _ref2$id,\n labelId = _ref2.labelId,\n menuId = _ref2.menuId,\n getItemId = _ref2.getItemId,\n toggleButtonId = _ref2.toggleButtonId,\n inputId = _ref2.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};\nfunction getItemAndIndex(itemProp, indexProp, items, errorMessage) {\n var item, index;\n if (itemProp === undefined) {\n if (indexProp === undefined) {\n throw new Error(errorMessage);\n }\n item = items[indexProp];\n index = indexProp;\n } else {\n index = indexProp === undefined ? items.indexOf(itemProp) : indexProp;\n item = itemProp;\n }\n return [item, index];\n}\nfunction isAcceptedCharacterKey(key) {\n return /^\\S{1}$/.test(key);\n}\nfunction capitalizeString(string) {\n return \"\" + string.slice(0, 1).toUpperCase() + string.slice(1);\n}\nfunction useLatestRef(val) {\n var ref = useRef(val);\n // 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 ref.current = val;\n return ref;\n}\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} props The hook props, also passed to createInitialState.\n * @param {Function} createInitialState Function that returns the initial state.\n * @param {Function} isStateEqual Function that checks if a previous state is equal to the next.\n * @returns {Array} An array with the state and an action dispatcher.\n */\nfunction useEnhancedReducer(reducer, props, createInitialState, isStateEqual) {\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 var _useReducer = useReducer(enhancedReducer, props, createInitialState),\n state = _useReducer[0],\n dispatch = _useReducer[1];\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 var prevState = getState(prevStateRef.current, action == null ? void 0 : action.props);\n var shouldCallOnChangeProps = action && prevStateRef.current && !isStateEqual(prevState, state);\n if (shouldCallOnChangeProps) {\n callOnChangeProps(action, prevState, state);\n }\n prevStateRef.current = state;\n }, [state, action, isStateEqual]);\n return [state, dispatchWithProps];\n}\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} props The hook props, also passed to createInitialState.\n * @param {Function} createInitialState Function that returns the initial state.\n * @param {Function} isStateEqual Function that checks if a previous state is equal to the next.\n * @returns {Array} An array with the state and an action dispatcher.\n */\nfunction useControlledReducer$1(reducer, props, createInitialState, isStateEqual) {\n var _useEnhancedReducer = useEnhancedReducer(reducer, props, createInitialState, isStateEqual),\n state = _useEnhancedReducer[0],\n dispatch = _useEnhancedReducer[1];\n return [getState(state, props), dispatch];\n}\nvar defaultProps$3 = {\n itemToString: function itemToString(item) {\n return item ? String(item) : '';\n },\n itemToKey: function itemToKey(item) {\n return item;\n },\n stateReducer: stateReducer,\n scrollIntoView: scrollIntoView,\n environment: /* istanbul ignore next (ssr) */\n typeof window === 'undefined' || false ? undefined : window\n};\nfunction getDefaultValue$1(props, propKey, defaultStateValues) {\n if (defaultStateValues === void 0) {\n defaultStateValues = dropdownDefaultStateValues;\n }\n var defaultValue = props[\"default\" + capitalizeString(propKey)];\n if (defaultValue !== undefined) {\n return defaultValue;\n }\n return defaultStateValues[propKey];\n}\nfunction getInitialValue$1(props, propKey, defaultStateValues) {\n if (defaultStateValues === void 0) {\n defaultStateValues = dropdownDefaultStateValues;\n }\n var value = props[propKey];\n if (value !== undefined) {\n return value;\n }\n var initialValue = props[\"initial\" + capitalizeString(propKey)];\n if (initialValue !== undefined) {\n return initialValue;\n }\n return getDefaultValue$1(props, propKey, defaultStateValues);\n}\nfunction getInitialState$2(props) {\n var selectedItem = getInitialValue$1(props, 'selectedItem');\n var isOpen = getInitialValue$1(props, 'isOpen');\n var highlightedIndex = getInitialHighlightedIndex(props);\n var inputValue = getInitialValue$1(props, 'inputValue');\n return {\n highlightedIndex: highlightedIndex < 0 && selectedItem && isOpen ? props.items.findIndex(function (item) {\n return props.itemToKey(item) === props.itemToKey(selectedItem);\n }) : highlightedIndex,\n isOpen: isOpen,\n selectedItem: selectedItem,\n inputValue: inputValue\n };\n}\nfunction getHighlightedIndexOnOpen(props, state, offset) {\n var items = props.items,\n initialHighlightedIndex = props.initialHighlightedIndex,\n defaultHighlightedIndex = props.defaultHighlightedIndex,\n isItemDisabled = props.isItemDisabled,\n itemToKey = props.itemToKey;\n var selectedItem = state.selectedItem,\n highlightedIndex = state.highlightedIndex;\n if (items.length === 0) {\n return -1;\n }\n\n // initialHighlightedIndex will give value to highlightedIndex on initial state only.\n if (initialHighlightedIndex !== undefined && highlightedIndex === initialHighlightedIndex && !isItemDisabled(items[initialHighlightedIndex], initialHighlightedIndex)) {\n return initialHighlightedIndex;\n }\n if (defaultHighlightedIndex !== undefined && !isItemDisabled(items[defaultHighlightedIndex], defaultHighlightedIndex)) {\n return defaultHighlightedIndex;\n }\n if (selectedItem) {\n return items.findIndex(function (item) {\n return itemToKey(selectedItem) === itemToKey(item);\n });\n }\n if (offset < 0 && !isItemDisabled(items[items.length - 1], items.length - 1)) {\n return items.length - 1;\n }\n if (offset > 0 && !isItemDisabled(items[0], 0)) {\n return 0;\n }\n return -1;\n}\n/**\n * Tracks mouse and touch events, such as mouseDown, touchMove and touchEnd.\n *\n * @param {Window} environment The environment to add the event listeners to, for instance window.\n * @param {() => void} handleBlur The function that is called if mouseDown or touchEnd occured outside the downshiftElements.\n * @param {Array<{current: HTMLElement}>} downshiftElementsRefs The refs for the elements that should not trigger a blur action from mouseDown or touchEnd.\n * @returns {{isMouseDown: boolean, isTouchMove: boolean, isTouchEnd: boolean}} The mouse and touch events information, if any of are happening.\n */\nfunction useMouseAndTouchTracker(environment, handleBlur, downshiftElementsRefs) {\n var mouseAndTouchTrackersRef = useRef({\n isMouseDown: false,\n isTouchMove: false,\n isTouchEnd: false\n });\n useEffect(function () {\n if (!environment) {\n return noop;\n }\n var downshiftElements = downshiftElementsRefs.map(function (ref) {\n return ref.current;\n });\n function onMouseDown() {\n mouseAndTouchTrackersRef.current.isTouchEnd = false; // reset this one.\n mouseAndTouchTrackersRef.current.isMouseDown = true;\n }\n function onMouseUp(event) {\n mouseAndTouchTrackersRef.current.isMouseDown = false;\n if (!targetWithinDownshift(event.target, downshiftElements, environment)) {\n handleBlur();\n }\n }\n function onTouchStart() {\n mouseAndTouchTrackersRef.current.isTouchEnd = false;\n mouseAndTouchTrackersRef.current.isTouchMove = false;\n }\n function onTouchMove() {\n mouseAndTouchTrackersRef.current.isTouchMove = true;\n }\n function onTouchEnd(event) {\n mouseAndTouchTrackersRef.current.isTouchEnd = true;\n if (!mouseAndTouchTrackersRef.current.isTouchMove && !targetWithinDownshift(event.target, downshiftElements, environment, false)) {\n handleBlur();\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 };\n }, [downshiftElementsRefs, environment, handleBlur]);\n return mouseAndTouchTrackersRef.current;\n}\n\n/* istanbul ignore next */\n// eslint-disable-next-line import/no-mutable-exports\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/* istanbul ignore next */\nif (process.env.NODE_ENV !== 'production') {\n useGetterPropsCalledChecker = function useGetterPropsCalledChecker() {\n for (var _len = arguments.length, propKeys = new Array(_len), _key = 0; _key < _len; _key++) {\n propKeys[_key] = arguments[_key];\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 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 var suppressRefError = propCallInfo.suppressRefError,\n refKey = propCallInfo.refKey,\n elementRef = propCallInfo.elementRef;\n if (suppressRefError) {\n return;\n }\n if (!(elementRef != null && elementRef.current)) {\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 }, []);\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\n/**\n * Adds an a11y aria live status message if getA11yStatusMessage is passed.\n * @param {(options: Object) => string} getA11yStatusMessage The function that builds the status message.\n * @param {Object} options The options to be passed to getA11yStatusMessage if called.\n * @param {Array<unknown>} dependencyArray The dependency array that triggers the status message setter via useEffect.\n * @param {{document: Document}} environment The environment object containing the document.\n */\nfunction useA11yMessageStatus(getA11yStatusMessage, options, dependencyArray, environment) {\n if (environment === void 0) {\n environment = {};\n }\n var document = environment.document;\n var isInitialMount = useIsInitialMount();\n\n // Adds an a11y aria live status message if getA11yStatusMessage is passed.\n useEffect(function () {\n if (!getA11yStatusMessage || isInitialMount || false || !document) {\n return;\n }\n var status = getA11yStatusMessage(options);\n updateA11yStatus(status, document);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, dependencyArray);\n\n // Cleanup the status message container.\n useEffect(function () {\n return function () {\n updateA11yStatus.cancel();\n cleanupStatusDiv(document);\n };\n }, [document]);\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);\n // Scroll on highlighted item if change comes from keyboard.\n useIsomorphicLayoutEffect(function () {\n if (highlightedIndex < 0 || !isOpen || !Object.keys(itemRefs.current).length) {\n return;\n }\n if (shouldScrollRef.current === false) {\n shouldScrollRef.current = true;\n } else {\n scrollIntoViewProp(getItemNodeFromIndex(highlightedIndex), menuElement);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [highlightedIndex]);\n return shouldScrollRef;\n}\n\n// eslint-disable-next-line import/no-mutable-exports\nvar useControlPropsValidator = noop;\n/* istanbul ignore next */\nif (process.env.NODE_ENV !== 'production') {\n useControlPropsValidator = function useControlPropsValidator(_ref4) {\n var 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 var isInitialMount = useIsInitialMount();\n useEffect(function () {\n if (isInitialMount) {\n return;\n }\n validateControlledUnchanged(state, prevPropsRef.current, props);\n prevPropsRef.current = props;\n }, [state, props, isInitialMount]);\n };\n}\n\n/**\n * Handles selection on Enter / Alt + ArrowUp. Closes the menu and resets the highlighted index, unless there is a highlighted.\n * In that case, selects the item and resets to defaults for open state and highlighted idex.\n * @param {Object} props The useCombobox props.\n * @param {number} highlightedIndex The index from the state.\n * @param {boolean} inputValue Also return the input value for state.\n * @returns The changes for the state.\n */\nfunction getChangesOnSelection(props, highlightedIndex, inputValue) {\n var _props$items;\n if (inputValue === void 0) {\n inputValue = true;\n }\n var shouldSelect = ((_props$items = props.items) == null ? void 0 : _props$items.length) && highlightedIndex >= 0;\n return _extends({\n isOpen: false,\n highlightedIndex: -1\n }, shouldSelect && _extends({\n selectedItem: props.items[highlightedIndex],\n isOpen: getDefaultValue$1(props, 'isOpen'),\n highlightedIndex: getDefaultValue$1(props, 'highlightedIndex')\n }, inputValue && {\n inputValue: props.itemToString(props.items[highlightedIndex])\n }));\n}\n\n/**\n * Check if a state is equal for dropdowns, by comparing isOpen, inputValue, highlightedIndex and selected item.\n * Used by useSelect and useCombobox.\n *\n * @param {Object} prevState\n * @param {Object} newState\n * @returns {boolean} Wheather the states are deeply equal.\n */\nfunction isDropdownsStateEqual(prevState, newState) {\n return prevState.isOpen === newState.isOpen && prevState.inputValue === newState.inputValue && prevState.highlightedIndex === newState.highlightedIndex && prevState.selectedItem === newState.selectedItem;\n}\n\n/**\n * Tracks if it's the first render.\n */\nfunction useIsInitialMount() {\n var isInitialMountRef = React.useRef(true);\n React.useEffect(function () {\n isInitialMountRef.current = false;\n return function () {\n isInitialMountRef.current = true;\n };\n }, []);\n return isInitialMountRef.current;\n}\n\n/**\n * Returns the new highlightedIndex based on the defaultHighlightedIndex prop, if it's not disabled.\n *\n * @param {Object} props Props from useCombobox or useSelect.\n * @returns {number} The highlighted index.\n */\nfunction getDefaultHighlightedIndex(props) {\n var highlightedIndex = getDefaultValue$1(props, 'highlightedIndex');\n if (highlightedIndex > -1 && props.isItemDisabled(props.items[highlightedIndex], highlightedIndex)) {\n return -1;\n }\n return highlightedIndex;\n}\n\n/**\n * Returns the new highlightedIndex based on the initialHighlightedIndex prop, if not disabled.\n *\n * @param {Object} props Props from useCombobox or useSelect.\n * @returns {number} The highlighted index.\n */\nfunction getInitialHighlightedIndex(props) {\n var highlightedIndex = getInitialValue$1(props, 'highlightedIndex');\n if (highlightedIndex > -1 && props.isItemDisabled(props.items[highlightedIndex], highlightedIndex)) {\n return -1;\n }\n return highlightedIndex;\n}\n\n// Shared between all exports.\nvar commonPropTypes = {\n environment: PropTypes.shape({\n addEventListener: PropTypes.func.isRequired,\n removeEventListener: PropTypes.func.isRequired,\n document: PropTypes.shape({\n createElement: PropTypes.func.isRequired,\n getElementById: PropTypes.func.isRequired,\n activeElement: PropTypes.any.isRequired,\n body: PropTypes.any.isRequired\n }).isRequired,\n Node: PropTypes.func.isRequired\n }),\n itemToString: PropTypes.func,\n itemToKey: PropTypes.func,\n stateReducer: PropTypes.func\n};\n\n// Shared between useSelect, useCombobox, Downshift.\nvar commonDropdownPropTypes = _extends({}, commonPropTypes, {\n getA11yStatusMessage: PropTypes.func,\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 onSelectedItemChange: PropTypes.func,\n onHighlightedIndexChange: PropTypes.func,\n onStateChange: PropTypes.func,\n onIsOpenChange: PropTypes.func,\n scrollIntoView: PropTypes.func\n});\n\nfunction downshiftCommonReducer(state, action, stateChangeTypes) {\n var type = action.type,\n props = action.props;\n var changes;\n switch (type) {\n case stateChangeTypes.ItemMouseMove:\n changes = {\n highlightedIndex: action.disabled ? -1 : action.index\n };\n break;\n case stateChangeTypes.MenuMouseLeave:\n changes = {\n highlightedIndex: -1\n };\n break;\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 case stateChangeTypes.FunctionOpenMenu:\n changes = {\n isOpen: true,\n highlightedIndex: getHighlightedIndexOnOpen(props, state, 0)\n };\n break;\n case stateChangeTypes.FunctionCloseMenu:\n changes = {\n isOpen: false\n };\n break;\n case stateChangeTypes.FunctionSetHighlightedIndex:\n changes = {\n highlightedIndex: props.isItemDisabled(props.items[action.highlightedIndex], action.highlightedIndex) ? -1 : action.highlightedIndex\n };\n break;\n case stateChangeTypes.FunctionSetInputValue:\n changes = {\n inputValue: action.inputValue\n };\n break;\n case stateChangeTypes.FunctionReset:\n changes = {\n highlightedIndex: getDefaultHighlightedIndex(props),\n isOpen: getDefaultValue$1(props, 'isOpen'),\n selectedItem: getDefaultValue$1(props, 'selectedItem'),\n inputValue: getDefaultValue$1(props, 'inputValue')\n };\n break;\n default:\n throw new Error('Reducer called without proper action type.');\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, isItemDisabled = _a.isItemDisabled;\n var lowerCasedKeysSoFar = keysSoFar.toLowerCase();\n for (var index = 0; index < items.length; index++) {\n // if we already have a search query in progress, we also consider the current highlighted item.\n var offsetIndex = (index + highlightedIndex + (keysSoFar.length < 2 ? 1 : 0)) % items.length;\n var item = items[offsetIndex];\n if (item !== undefined &&\n itemToString(item).toLowerCase().startsWith(lowerCasedKeysSoFar) &&\n !isItemDisabled(item, offsetIndex)) {\n return offsetIndex;\n }\n }\n return highlightedIndex;\n}\nvar propTypes$2 = __assign(__assign({}, commonDropdownPropTypes), { items: PropTypes.array.isRequired, isItemDisabled: PropTypes.func });\nvar defaultProps$2 = __assign(__assign({}, defaultProps$3), { isItemDisabled: function () {\n return false;\n } });\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 ToggleButtonClick$1 = process.env.NODE_ENV !== \"production\" ? '__togglebutton_click__' : 0;\nvar ToggleButtonKeyDownArrowDown = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_arrow_down__' : 1;\nvar ToggleButtonKeyDownArrowUp = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_arrow_up__' : 2;\nvar ToggleButtonKeyDownCharacter = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_character__' : 3;\nvar ToggleButtonKeyDownEscape = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_escape__' : 4;\nvar ToggleButtonKeyDownHome = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_home__' : 5;\nvar ToggleButtonKeyDownEnd = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_end__' : 6;\nvar ToggleButtonKeyDownEnter = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_enter__' : 7;\nvar ToggleButtonKeyDownSpaceButton = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_space_button__' : 8;\nvar ToggleButtonKeyDownPageUp = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_page_up__' : 9;\nvar ToggleButtonKeyDownPageDown = process.env.NODE_ENV !== \"production\" ? '__togglebutton_keydown_page_down__' : 10;\nvar ToggleButtonBlur = process.env.NODE_ENV !== \"production\" ? '__togglebutton_blur__' : 11;\nvar MenuMouseLeave$1 = process.env.NODE_ENV !== \"production\" ? '__menu_mouse_leave__' : 12;\nvar ItemMouseMove$1 = process.env.NODE_ENV !== \"production\" ? '__item_mouse_move__' : 13;\nvar ItemClick$1 = process.env.NODE_ENV !== \"production\" ? '__item_click__' : 14;\nvar FunctionToggleMenu$1 = process.env.NODE_ENV !== \"production\" ? '__function_toggle_menu__' : 15;\nvar FunctionOpenMenu$1 = process.env.NODE_ENV !== \"production\" ? '__function_open_menu__' : 16;\nvar FunctionCloseMenu$1 = process.env.NODE_ENV !== \"production\" ? '__function_close_menu__' : 17;\nvar FunctionSetHighlightedIndex$1 = process.env.NODE_ENV !== \"production\" ? '__function_set_highlighted_index__' : 18;\nvar FunctionSelectItem$1 = process.env.NODE_ENV !== \"production\" ? '__function_select_item__' : 19;\nvar FunctionSetInputValue$1 = process.env.NODE_ENV !== \"production\" ? '__function_set_input_value__' : 20;\nvar FunctionReset$2 = process.env.NODE_ENV !== \"production\" ? '__function_reset__' : 21;\n\nvar stateChangeTypes$2 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n FunctionCloseMenu: FunctionCloseMenu$1,\n FunctionOpenMenu: FunctionOpenMenu$1,\n FunctionReset: FunctionReset$2,\n FunctionSelectItem: FunctionSelectItem$1,\n FunctionSetHighlightedIndex: FunctionSetHighlightedIndex$1,\n FunctionSetInputValue: FunctionSetInputValue$1,\n FunctionToggleMenu: FunctionToggleMenu$1,\n ItemClick: ItemClick$1,\n ItemMouseMove: ItemMouseMove$1,\n MenuMouseLeave: MenuMouseLeave$1,\n ToggleButtonBlur: ToggleButtonBlur,\n ToggleButtonClick: ToggleButtonClick$1,\n ToggleButtonKeyDownArrowDown: ToggleButtonKeyDownArrowDown,\n ToggleButtonKeyDownArrowUp: ToggleButtonKeyDownArrowUp,\n ToggleButtonKeyDownCharacter: ToggleButtonKeyDownCharacter,\n ToggleButtonKeyDownEnd: ToggleButtonKeyDownEnd,\n ToggleButtonKeyDownEnter: ToggleButtonKeyDownEnter,\n ToggleButtonKeyDownEscape: ToggleButtonKeyDownEscape,\n ToggleButtonKeyDownHome: ToggleButtonKeyDownHome,\n ToggleButtonKeyDownPageDown: ToggleButtonKeyDownPageDown,\n ToggleButtonKeyDownPageUp: ToggleButtonKeyDownPageUp,\n ToggleButtonKeyDownSpaceButton: ToggleButtonKeyDownSpaceButton\n});\n\n/* eslint-disable complexity */\nfunction downshiftSelectReducer(state, action) {\n var _props$items;\n var type = action.type,\n props = action.props,\n altKey = action.altKey;\n var changes;\n switch (type) {\n case ItemClick$1:\n changes = {\n isOpen: getDefaultValue$1(props, 'isOpen'),\n highlightedIndex: getDefaultHighlightedIndex(props),\n selectedItem: props.items[action.index]\n };\n break;\n case ToggleButtonKeyDownCharacter:\n {\n var lowercasedKey = action.key;\n var inputValue = \"\" + state.inputValue + lowercasedKey;\n var prevHighlightedIndex = !state.isOpen && state.selectedItem ? props.items.findIndex(function (item) {\n return props.itemToKey(item) === props.itemToKey(state.selectedItem);\n }) : state.highlightedIndex;\n var highlightedIndex = getItemIndexByCharacterKey({\n keysSoFar: inputValue,\n highlightedIndex: prevHighlightedIndex,\n items: props.items,\n itemToString: props.itemToString,\n isItemDisabled: props.isItemDisabled\n });\n changes = {\n inputValue: inputValue,\n highlightedIndex: highlightedIndex,\n isOpen: true\n };\n }\n break;\n case ToggleButtonKeyDownArrowDown:\n {\n var _highlightedIndex = state.isOpen ? getHighlightedIndex(state.highlightedIndex, 1, props.items, props.isItemDisabled) : altKey && state.selectedItem == null ? -1 : getHighlightedIndexOnOpen(props, state, 1);\n changes = {\n highlightedIndex: _highlightedIndex,\n isOpen: true\n };\n }\n break;\n case ToggleButtonKeyDownArrowUp:\n if (state.isOpen && altKey) {\n changes = getChangesOnSelection(props, state.highlightedIndex, false);\n } else {\n var _highlightedIndex2 = state.isOpen ? getHighlightedIndex(state.highlightedIndex, -1, props.items, props.isItemDisabled) : getHighlightedIndexOnOpen(props, state, -1);\n changes = {\n highlightedIndex: _highlightedIndex2,\n isOpen: true\n };\n }\n break;\n // only triggered when menu is open.\n case ToggleButtonKeyDownEnter:\n case ToggleButtonKeyDownSpaceButton:\n changes = getChangesOnSelection(props, state.highlightedIndex, false);\n break;\n case ToggleButtonKeyDownHome:\n changes = {\n highlightedIndex: getNonDisabledIndex(0, false, props.items, props.isItemDisabled),\n isOpen: true\n };\n break;\n case ToggleButtonKeyDownEnd:\n changes = {\n highlightedIndex: getNonDisabledIndex(props.items.length - 1, true, props.items, props.isItemDisabled),\n isOpen: true\n };\n break;\n case ToggleButtonKeyDownPageUp:\n changes = {\n highlightedIndex: getHighlightedIndex(state.highlightedIndex, -10, props.items, props.isItemDisabled)\n };\n break;\n case ToggleButtonKeyDownPageDown:\n changes = {\n highlightedIndex: getHighlightedIndex(state.highlightedIndex, 10, props.items, props.isItemDisabled)\n };\n break;\n case ToggleButtonKeyDownEscape:\n changes = {\n isOpen: false,\n highlightedIndex: -1\n };\n break;\n case ToggleButtonBlur:\n changes = _extends({\n isOpen: false,\n highlightedIndex: -1\n }, state.highlightedIndex >= 0 && ((_props$items = props.items) == null ? void 0 : _props$items.length) && {\n selectedItem: props.items[state.highlightedIndex]\n });\n break;\n case FunctionSelectItem$1:\n changes = {\n selectedItem: action.selectedItem\n };\n break;\n default:\n return downshiftCommonReducer(state, action, stateChangeTypes$2);\n }\n return _extends({}, state, changes);\n}\n/* eslint-enable complexity */\n\nvar _excluded$2 = [\"onClick\"],\n _excluded2$2 = [\"onMouseLeave\", \"refKey\", \"ref\"],\n _excluded3$1 = [\"onBlur\", \"onClick\", \"onPress\", \"onKeyDown\", \"refKey\", \"ref\"],\n _excluded4$1 = [\"item\", \"index\", \"onMouseMove\", \"onClick\", \"onMouseDown\", \"onPress\", \"refKey\", \"disabled\", \"ref\"];\nuseSelect.stateChangeTypes = stateChangeTypes$2;\nfunction useSelect(userProps) {\n if (userProps === void 0) {\n userProps = {};\n }\n validatePropTypes$2(userProps, useSelect);\n // Props defaults and destructuring.\n var props = _extends({}, defaultProps$2, userProps);\n var scrollIntoView = props.scrollIntoView,\n environment = props.environment,\n getA11yStatusMessage = props.getA11yStatusMessage;\n // Initial state depending on controlled props.\n var _useControlledReducer = useControlledReducer$1(downshiftSelectReducer, props, getInitialState$2, isDropdownsStateEqual),\n state = _useControlledReducer[0],\n dispatch = _useControlledReducer[1];\n var isOpen = state.isOpen,\n highlightedIndex = state.highlightedIndex,\n selectedItem = state.selectedItem,\n inputValue = state.inputValue;\n // Element efs.\n var toggleButtonRef = useRef(null);\n var menuRef = useRef(null);\n var itemRefs = useRef({});\n\n // used to keep the inputValue clearTimeout object between renders.\n var clearTimeoutRef = useRef(null);\n // prevent id re-generation between renders.\n var elementIds = useElementIds(props);\n // utility callback to get item element.\n var latest = useLatestRef({\n state: state,\n props: props\n });\n\n // Some utils.\n var getItemNodeFromIndex = useCallback(function (index) {\n return itemRefs.current[elementIds.getItemId(index)];\n }, [elementIds]);\n\n // Effects.\n // Adds an a11y aria live status message if getA11yStatusMessage is passed.\n useA11yMessageStatus(getA11yStatusMessage, state, [isOpen, highlightedIndex, selectedItem, inputValue], environment);\n // Scroll on highlighted item if change comes from keyboard.\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 // Sets cleanup for the keysSoFar callback, debounded after 500ms.\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);\n\n // Cancel any pending debounced calls on mount\n return function () {\n clearTimeoutRef.current.cancel();\n };\n }, []);\n // Invokes the keysSoFar callback set up above.\n useEffect(function () {\n if (!inputValue) {\n return;\n }\n clearTimeoutRef.current(dispatch);\n }, [dispatch, inputValue]);\n useControlPropsValidator({\n props: props,\n state: state\n });\n // Focus the toggle button on first render if required.\n useEffect(function () {\n var focusOnOpen = getInitialValue$1(props, 'isOpen');\n if (focusOnOpen && toggleButtonRef.current) {\n toggleButtonRef.current.focus();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n var mouseAndTouchTrackers = useMouseAndTouchTracker(environment, useCallback(function handleBlur() {\n if (latest.current.state.isOpen) {\n dispatch({\n type: ToggleButtonBlur\n });\n }\n }, [dispatch, latest]), useMemo(function () {\n return [menuRef, toggleButtonRef];\n }, [menuRef.current, toggleButtonRef.current]));\n var setGetterPropCallInfo = useGetterPropsCalledChecker('getMenuProps', 'getToggleButtonProps');\n // Reset itemRefs on close.\n useEffect(function () {\n if (!isOpen) {\n itemRefs.current = {};\n }\n }, [isOpen]);\n\n // Event handler functions.\n var toggleButtonKeyDownHandlers = useMemo(function () {\n return {\n ArrowDown: function ArrowDown(event) {\n event.preventDefault();\n dispatch({\n type: ToggleButtonKeyDownArrowDown,\n altKey: event.altKey\n });\n },\n ArrowUp: function ArrowUp(event) {\n event.preventDefault();\n dispatch({\n type: ToggleButtonKeyDownArrowUp,\n altKey: event.altKey\n });\n },\n Home: function Home(event) {\n event.preventDefault();\n dispatch({\n type: ToggleButtonKeyDownHome\n });\n },\n End: function End(event) {\n event.preventDefault();\n dispatch({\n type: ToggleButtonKeyDownEnd\n });\n },\n Escape: function Escape() {\n if (latest.current.state.isOpen) {\n dispatch({\n type: ToggleButtonKeyDownEscape\n });\n }\n },\n Enter: function Enter(event) {\n event.preventDefault();\n dispatch({\n type: latest.current.state.isOpen ? ToggleButtonKeyDownEnter : ToggleButtonClick$1\n });\n },\n PageUp: function PageUp(event) {\n if (latest.current.state.isOpen) {\n event.preventDefault();\n dispatch({\n type: ToggleButtonKeyDownPageUp\n });\n }\n },\n PageDown: function PageDown(event) {\n if (latest.current.state.isOpen) {\n event.preventDefault();\n dispatch({\n type: ToggleButtonKeyDownPageDown\n });\n }\n },\n ' ': function _(event) {\n event.preventDefault();\n var currentState = latest.current.state;\n if (!currentState.isOpen) {\n dispatch({\n type: ToggleButtonClick$1\n });\n return;\n }\n if (currentState.inputValue) {\n dispatch({\n type: ToggleButtonKeyDownCharacter,\n key: ' '\n });\n } else {\n dispatch({\n type: ToggleButtonKeyDownSpaceButton\n });\n }\n }\n };\n }, [dispatch, latest]);\n\n // Action functions.\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]);\n // Getter functions.\n var getLabelProps = useCallback(function (_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n onClick = _ref.onClick,\n labelProps = _objectWithoutPropertiesLoose(_ref, _excluded$2);\n var labelHandleClick = function labelHandleClick() {\n var _toggleButtonRef$curr;\n (_toggleButtonRef$curr = toggleButtonRef.current) == null || _toggleButtonRef$curr.focus();\n };\n return _extends({\n id: elementIds.labelId,\n htmlFor: elementIds.toggleButtonId,\n onClick: callAllEventHandlers(onClick, labelHandleClick)\n }, labelProps);\n }, [elementIds]);\n var getMenuProps = useCallback(function (_temp2, _temp3) {\n var _extends2;\n var _ref2 = _temp2 === void 0 ? {} : _temp2,\n onMouseLeave = _ref2.onMouseLeave,\n _ref2$refKey = _ref2.refKey,\n refKey = _ref2$refKey === void 0 ? 'ref' : _ref2$refKey,\n ref = _ref2.ref,\n rest = _objectWithoutPropertiesLoose(_ref2, _excluded2$2);\n var _ref3 = _temp3 === void 0 ? {} : _temp3,\n _ref3$suppressRefErro = _ref3.suppressRefError,\n suppressRefError = _ref3$suppressRefErro === void 0 ? false : _ref3$suppressRefErro;\n var menuHandleMouseLeave = function menuHandleMouseLeave() {\n dispatch({\n type: MenuMouseLeave$1\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'] = rest && rest['aria-label'] ? undefined : \"\" + elementIds.labelId, _extends2.onMouseLeave = callAllEventHandlers(onMouseLeave, menuHandleMouseLeave), _extends2), rest);\n }, [dispatch, setGetterPropCallInfo, elementIds]);\n var getToggleButtonProps = useCallback(function (_temp4, _temp5) {\n var _extends3;\n var _ref4 = _temp4 === void 0 ? {} : _temp4,\n onBlur = _ref4.onBlur,\n onClick = _ref4.onClick;\n _ref4.onPress;\n var onKeyDown = _ref4.onKeyDown,\n _ref4$refKey = _ref4.refKey,\n refKey = _ref4$refKey === void 0 ? 'ref' : _ref4$refKey,\n ref = _ref4.ref,\n rest = _objectWithoutPropertiesLoose(_ref4, _excluded3$1);\n var _ref5 = _temp5 === void 0 ? {} : _temp5,\n _ref5$suppressRefErro = _ref5.suppressRefError,\n suppressRefError = _ref5$suppressRefErro === void 0 ? false : _ref5$suppressRefErro;\n var latestState = latest.current.state;\n var toggleButtonHandleClick = function toggleButtonHandleClick() {\n dispatch({\n type: ToggleButtonClick$1\n });\n };\n var toggleButtonHandleBlur = function toggleButtonHandleBlur() {\n if (latestState.isOpen && !mouseAndTouchTrackers.isMouseDown) {\n dispatch({\n type: ToggleButtonBlur\n });\n }\n };\n var toggleButtonHandleKeyDown = function toggleButtonHandleKeyDown(event) {\n var key = normalizeArrowKey(event);\n if (key && toggleButtonKeyDownHandlers[key]) {\n toggleButtonKeyDownHandlers[key](event);\n } else if (isAcceptedCharacterKey(key)) {\n dispatch({\n type: ToggleButtonKeyDownCharacter,\n key: key\n });\n }\n };\n var toggleProps = _extends((_extends3 = {}, _extends3[refKey] = handleRefs(ref, function (toggleButtonNode) {\n toggleButtonRef.current = toggleButtonNode;\n }), _extends3['aria-activedescendant'] = latestState.isOpen && latestState.highlightedIndex > -1 ? elementIds.getItemId(latestState.highlightedIndex) : '', _extends3['aria-controls'] = elementIds.menuId, _extends3['aria-expanded'] = latest.current.state.isOpen, _extends3['aria-haspopup'] = 'listbox', _extends3['aria-labelledby'] = rest && rest['aria-label'] ? undefined : \"\" + elementIds.labelId, _extends3.id = elementIds.toggleButtonId, _extends3.role = 'combobox', _extends3.tabIndex = 0, _extends3.onBlur = callAllEventHandlers(onBlur, toggleButtonHandleBlur), _extends3), rest);\n if (!rest.disabled) {\n /* istanbul ignore if (react-native) */\n {\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, elementIds, latest, mouseAndTouchTrackers, setGetterPropCallInfo, toggleButtonKeyDownHandlers]);\n var getItemProps = useCallback(function (_temp6) {\n var _extends4;\n var _ref6 = _temp6 === void 0 ? {} : _temp6,\n itemProp = _ref6.item,\n indexProp = _ref6.index,\n onMouseMove = _ref6.onMouseMove,\n onClick = _ref6.onClick,\n onMouseDown = _ref6.onMouseDown;\n _ref6.onPress;\n var _ref6$refKey = _ref6.refKey,\n refKey = _ref6$refKey === void 0 ? 'ref' : _ref6$refKey,\n disabledProp = _ref6.disabled,\n ref = _ref6.ref,\n rest = _objectWithoutPropertiesLoose(_ref6, _excluded4$1);\n if (disabledProp !== undefined) {\n console.warn('Passing \"disabled\" as an argument to getItemProps is not supported anymore. Please use the isItemDisabled prop from useSelect.');\n }\n var _latest$current = latest.current,\n latestState = _latest$current.state,\n latestProps = _latest$current.props;\n var _getItemAndIndex = getItemAndIndex(itemProp, indexProp, latestProps.items, 'Pass either item or index to getItemProps!'),\n item = _getItemAndIndex[0],\n index = _getItemAndIndex[1];\n var disabled = latestProps.isItemDisabled(item, index);\n var itemHandleMouseMove = function itemHandleMouseMove() {\n if (mouseAndTouchTrackers.isTouchEnd || index === latestState.highlightedIndex) {\n return;\n }\n shouldScrollRef.current = false;\n dispatch({\n type: ItemMouseMove$1,\n index: index,\n disabled: disabled\n });\n };\n var itemHandleClick = function itemHandleClick() {\n dispatch({\n type: ItemClick$1,\n index: index\n });\n };\n var itemHandleMouseDown = function itemHandleMouseDown(e) {\n return e.preventDefault();\n }; // keep focus on the toggle after item click select.\n\n var itemProps = _extends((_extends4 = {}, _extends4[refKey] = handleRefs(ref, function (itemNode) {\n if (itemNode) {\n itemRefs.current[elementIds.getItemId(index)] = itemNode;\n }\n }), _extends4['aria-disabled'] = disabled, _extends4['aria-selected'] = item === latestState.selectedItem, _extends4.id = elementIds.getItemId(index), _extends4.role = 'option', _extends4), rest);\n if (!disabled) {\n /* istanbul ignore next (react-native) */\n {\n itemProps.onClick = callAllEventHandlers(onClick, itemHandleClick);\n }\n }\n itemProps.onMouseMove = callAllEventHandlers(onMouseMove, itemHandleMouseMove);\n itemProps.onMouseDown = callAllEventHandlers(onMouseDown, itemHandleMouseDown);\n return itemProps;\n }, [latest, elementIds, mouseAndTouchTrackers, shouldScrollRef, dispatch]);\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 InputKeyDownPageUp = process.env.NODE_ENV !== \"production\" ? '__input_keydown_page_up__' : 5;\nvar InputKeyDownPageDown = process.env.NODE_ENV !== \"production\" ? '__input_keydown_page_down__' : 6;\nvar InputKeyDownEnter = process.env.NODE_ENV !== \"production\" ? '__input_keydown_enter__' : 7;\nvar InputChange = process.env.NODE_ENV !== \"production\" ? '__input_change__' : 8;\nvar InputBlur = process.env.NODE_ENV !== \"production\" ? '__input_blur__' : 9;\nvar InputClick = process.env.NODE_ENV !== \"production\" ? '__input_click__' : 10;\nvar MenuMouseLeave = process.env.NODE_ENV !== \"production\" ? '__menu_mouse_leave__' : 11;\nvar ItemMouseMove = process.env.NODE_ENV !== \"production\" ? '__item_mouse_move__' : 12;\nvar ItemClick = process.env.NODE_ENV !== \"production\" ? '__item_click__' : 13;\nvar ToggleButtonClick = process.env.NODE_ENV !== \"production\" ? '__togglebutton_click__' : 14;\nvar FunctionToggleMenu = process.env.NODE_ENV !== \"production\" ? '__function_toggle_menu__' : 15;\nvar FunctionOpenMenu = process.env.NODE_ENV !== \"production\" ? '__function_open_menu__' : 16;\nvar FunctionCloseMenu = process.env.NODE_ENV !== \"production\" ? '__function_close_menu__' : 17;\nvar FunctionSetHighlightedIndex = process.env.NODE_ENV !== \"production\" ? '__function_set_highlighted_index__' : 18;\nvar FunctionSelectItem = process.env.NODE_ENV !== \"production\" ? '__function_select_item__' : 19;\nvar FunctionSetInputValue = process.env.NODE_ENV !== \"production\" ? '__function_set_input_value__' : 20;\nvar FunctionReset$1 = process.env.NODE_ENV !== \"production\" ? '__function_reset__' : 21;\nvar ControlledPropUpdatedSelectedItem = process.env.NODE_ENV !== \"production\" ? '__controlled_prop_updated_selected_item__' : 22;\n\nvar stateChangeTypes$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n ControlledPropUpdatedSelectedItem: ControlledPropUpdatedSelectedItem,\n FunctionCloseMenu: FunctionCloseMenu,\n FunctionOpenMenu: FunctionOpenMenu,\n FunctionReset: FunctionReset$1,\n FunctionSelectItem: FunctionSelectItem,\n FunctionSetHighlightedIndex: FunctionSetHighlightedIndex,\n FunctionSetInputValue: FunctionSetInputValue,\n FunctionToggleMenu: FunctionToggleMenu,\n InputBlur: InputBlur,\n InputChange: InputChange,\n InputClick: InputClick,\n InputKeyDownArrowDown: InputKeyDownArrowDown,\n InputKeyDownArrowUp: InputKeyDownArrowUp,\n InputKeyDownEnd: InputKeyDownEnd,\n InputKeyDownEnter: InputKeyDownEnter,\n InputKeyDownEscape: InputKeyDownEscape,\n InputKeyDownHome: InputKeyDownHome,\n InputKeyDownPageDown: InputKeyDownPageDown,\n InputKeyDownPageUp: InputKeyDownPageUp,\n ItemClick: ItemClick,\n ItemMouseMove: ItemMouseMove,\n MenuMouseLeave: MenuMouseLeave,\n ToggleButtonClick: ToggleButtonClick\n});\n\nfunction getInitialState$1(props) {\n var initialState = getInitialState$2(props);\n var selectedItem = initialState.selectedItem;\n var inputValue = initialState.inputValue;\n if (inputValue === '' && selectedItem && props.defaultInputValue === undefined && props.initialInputValue === undefined && props.inputValue === undefined) {\n inputValue = props.itemToString(selectedItem);\n }\n return _extends({}, initialState, {\n inputValue: inputValue\n });\n}\nvar propTypes$1 = _extends({}, commonDropdownPropTypes, {\n items: PropTypes.array.isRequired,\n isItemDisabled: PropTypes.func,\n inputValue: PropTypes.string,\n defaultInputValue: PropTypes.string,\n initialInputValue: PropTypes.string,\n inputId: PropTypes.string,\n onInputValueChange: PropTypes.func\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} props The hook props, also passed to createInitialState.\n * @param {Function} createInitialState Function that returns the initial state.\n * @param {Function} isStateEqual Function that checks if a previous state is equal to the next.\n * @returns {Array} An array with the state and an action dispatcher.\n */\nfunction useControlledReducer(reducer, props, createInitialState, isStateEqual) {\n var previousSelectedItemRef = useRef();\n var _useEnhancedReducer = useEnhancedReducer(reducer, props, createInitialState, isStateEqual),\n state = _useEnhancedReducer[0],\n dispatch = _useEnhancedReducer[1];\n var isInitialMount = useIsInitialMount();\n useEffect(function () {\n if (!isControlledProp(props, 'selectedItem')) {\n return;\n }\n if (!isInitialMount // on first mount we already have the proper inputValue for a initial selected item.\n ) {\n var shouldCallDispatch = props.itemToKey(props.selectedItem) !== props.itemToKey(previousSelectedItemRef.current);\n if (shouldCallDispatch) {\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 // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [state.selectedItem, props.selectedItem]);\n return [getState(state, props), dispatch];\n}\n\n// eslint-disable-next-line import/no-mutable-exports\nvar validatePropTypes$1 = noop;\n/* istanbul ignore next */\nif (process.env.NODE_ENV !== 'production') {\n validatePropTypes$1 = function validatePropTypes(options, caller) {\n PropTypes.checkPropTypes(propTypes$1, options, 'prop', caller.name);\n };\n}\nvar defaultProps$1 = _extends({}, defaultProps$3, {\n isItemDisabled: function isItemDisabled() {\n return false;\n }\n});\n\n/* eslint-disable complexity */\nfunction downshiftUseComboboxReducer(state, action) {\n var _props$items;\n var type = action.type,\n props = action.props,\n altKey = action.altKey;\n var changes;\n switch (type) {\n case ItemClick:\n changes = {\n isOpen: getDefaultValue$1(props, 'isOpen'),\n highlightedIndex: getDefaultHighlightedIndex(props),\n selectedItem: props.items[action.index],\n inputValue: props.itemToString(props.items[action.index])\n };\n break;\n case InputKeyDownArrowDown:\n if (state.isOpen) {\n changes = {\n highlightedIndex: getHighlightedIndex(state.highlightedIndex, 1, props.items, props.isItemDisabled, true)\n };\n } else {\n changes = {\n highlightedIndex: altKey && state.selectedItem == null ? -1 : getHighlightedIndexOnOpen(props, state, 1),\n isOpen: props.items.length >= 0\n };\n }\n break;\n case InputKeyDownArrowUp:\n if (state.isOpen) {\n if (altKey) {\n changes = getChangesOnSelection(props, state.highlightedIndex);\n } else {\n changes = {\n highlightedIndex: getHighlightedIndex(state.highlightedIndex, -1, props.items, props.isItemDisabled, true)\n };\n }\n } else {\n changes = {\n highlightedIndex: getHighlightedIndexOnOpen(props, state, -1),\n isOpen: props.items.length >= 0\n };\n }\n break;\n case InputKeyDownEnter:\n changes = getChangesOnSelection(props, state.highlightedIndex);\n break;\n case InputKeyDownEscape:\n changes = _extends({\n isOpen: false,\n highlightedIndex: -1\n }, !state.isOpen && {\n selectedItem: null,\n inputValue: ''\n });\n break;\n case InputKeyDownPageUp:\n changes = {\n highlightedIndex: getHighlightedIndex(state.highlightedIndex, -10, props.items, props.isItemDisabled, true)\n };\n break;\n case InputKeyDownPageDown:\n changes = {\n highlightedIndex: getHighlightedIndex(state.highlightedIndex, 10, props.items, props.isItemDisabled, true)\n };\n break;\n case InputKeyDownHome:\n changes = {\n highlightedIndex: getNonDisabledIndex(0, false, props.items, props.isItemDisabled)\n };\n break;\n case InputKeyDownEnd:\n changes = {\n highlightedIndex: getNonDisabledIndex(props.items.length - 1, true, props.items, props.isItemDisabled)\n };\n break;\n case InputBlur:\n changes = _extends({\n isOpen: false,\n highlightedIndex: -1\n }, state.highlightedIndex >= 0 && ((_props$items = props.items) == null ? void 0 : _props$items.length) && action.selectItem && {\n selectedItem: props.items[state.highlightedIndex],\n inputValue: props.itemToString(props.items[state.highlightedIndex])\n });\n break;\n case InputChange:\n changes = {\n isOpen: true,\n highlightedIndex: getDefaultHighlightedIndex(props),\n inputValue: action.inputValue\n };\n break;\n case InputClick:\n changes = {\n isOpen: !state.isOpen,\n highlightedIndex: state.isOpen ? -1 : getHighlightedIndexOnOpen(props, state, 0)\n };\n break;\n case FunctionSelectItem:\n changes = {\n selectedItem: action.selectedItem,\n inputValue: props.itemToString(action.selectedItem)\n };\n break;\n case ControlledPropUpdatedSelectedItem:\n changes = {\n inputValue: action.inputValue\n };\n break;\n default:\n return downshiftCommonReducer(state, action, stateChangeTypes$1);\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\", \"onMouseDown\", \"onClick\", \"onPress\", \"disabled\"],\n _excluded3 = [\"onClick\", \"onPress\", \"refKey\", \"ref\"],\n _excluded4 = [\"onKeyDown\", \"onChange\", \"onInput\", \"onBlur\", \"onChangeText\", \"onClick\", \"refKey\", \"ref\"];\nuseCombobox.stateChangeTypes = stateChangeTypes$1;\nfunction useCombobox(userProps) {\n if (userProps === void 0) {\n userProps = {};\n }\n validatePropTypes$1(userProps, useCombobox);\n // Props defaults and destructuring.\n var props = _extends({}, defaultProps$1, userProps);\n var items = props.items,\n scrollIntoView = props.scrollIntoView,\n environment = props.environment,\n getA11yStatusMessage = props.getA11yStatusMessage;\n // Initial state depending on controlled props.\n var _useControlledReducer = useControlledReducer(downshiftUseComboboxReducer, props, getInitialState$1, isDropdownsStateEqual),\n state = _useControlledReducer[0],\n dispatch = _useControlledReducer[1];\n var isOpen = state.isOpen,\n highlightedIndex = state.highlightedIndex,\n selectedItem = state.selectedItem,\n inputValue = state.inputValue;\n\n // Element refs.\n var menuRef = useRef(null);\n var itemRefs = useRef({});\n var inputRef = useRef(null);\n var toggleButtonRef = useRef(null);\n var isInitialMount = useIsInitialMount();\n\n // prevent id re-generation between renders.\n var elementIds = useElementIds(props);\n // used to keep track of how many items we had on previous cycle.\n var previousResultCountRef = useRef();\n // utility callback to get item element.\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]);\n\n // Effects.\n // Adds an a11y aria live status message if getA11yStatusMessage is passed.\n useA11yMessageStatus(getA11yStatusMessage, state, [isOpen, highlightedIndex, selectedItem, inputValue], environment);\n // Scroll on highlighted item if change comes from keyboard.\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 props: props,\n state: state\n });\n // Focus the input on first render if required.\n useEffect(function () {\n var focusOnOpen = getInitialValue$1(props, 'isOpen');\n if (focusOnOpen && inputRef.current) {\n inputRef.current.focus();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n useEffect(function () {\n if (!isInitialMount) {\n previousResultCountRef.current = items.length;\n }\n });\n var mouseAndTouchTrackers = useMouseAndTouchTracker(environment, useCallback(function handleBlur() {\n if (latest.current.state.isOpen) {\n dispatch({\n type: InputBlur,\n selectItem: false\n });\n }\n }, [dispatch, latest]), useMemo(function () {\n return [menuRef, toggleButtonRef, inputRef];\n }, [menuRef.current, toggleButtonRef.current, inputRef.current]));\n var setGetterPropCallInfo = useGetterPropsCalledChecker('getInputProps', 'getMenuProps');\n // Reset itemRefs on close.\n useEffect(function () {\n if (!isOpen) {\n itemRefs.current = {};\n }\n }, [isOpen]);\n // Reset itemRefs on close.\n useEffect(function () {\n var _inputRef$current;\n if (!isOpen || !(environment != null && environment.document) || !(inputRef != null && (_inputRef$current = inputRef.current) != null && _inputRef$current.focus)) {\n return;\n }\n if (environment.document.activeElement !== inputRef.current) {\n inputRef.current.focus();\n }\n }, [isOpen, environment]);\n\n /* Event handler functions */\n var inputKeyDownHandlers = useMemo(function () {\n return {\n ArrowDown: function ArrowDown(event) {\n event.preventDefault();\n dispatch({\n type: InputKeyDownArrowDown,\n altKey: event.altKey\n });\n },\n ArrowUp: function ArrowUp(event) {\n event.preventDefault();\n dispatch({\n type: InputKeyDownArrowUp,\n altKey: event.altKey\n });\n },\n Home: function Home(event) {\n if (!latest.current.state.isOpen) {\n return;\n }\n event.preventDefault();\n dispatch({\n type: InputKeyDownHome\n });\n },\n End: function End(event) {\n if (!latest.current.state.isOpen) {\n return;\n }\n event.preventDefault();\n dispatch({\n type: InputKeyDownEnd\n });\n },\n Escape: function Escape(event) {\n var latestState = latest.current.state;\n if (latestState.isOpen || latestState.inputValue || latestState.selectedItem || latestState.highlightedIndex > -1) {\n event.preventDefault();\n dispatch({\n type: InputKeyDownEscape\n });\n }\n },\n Enter: function Enter(event) {\n var latestState = latest.current.state;\n // if closed or no highlighted index, do nothing.\n if (!latestState.isOpen || event.which === 229 // if IME composing, wait for next Enter keydown event.\n ) {\n return;\n }\n event.preventDefault();\n dispatch({\n type: InputKeyDownEnter\n });\n },\n PageUp: function PageUp(event) {\n if (latest.current.state.isOpen) {\n event.preventDefault();\n dispatch({\n type: InputKeyDownPageUp\n });\n }\n },\n PageDown: function PageDown(event) {\n if (latest.current.state.isOpen) {\n event.preventDefault();\n dispatch({\n type: InputKeyDownPageDown\n });\n }\n }\n };\n }, [dispatch, latest]);\n\n // Getter props.\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 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 var _ref2 = _temp2 === void 0 ? {} : _temp2,\n _ref2$suppressRefErro = _ref2.suppressRefError,\n suppressRefError = _ref2$suppressRefErro === void 0 ? false : _ref2$suppressRefErro;\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'] = rest && rest['aria-label'] ? undefined : \"\" + 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 var _ref3 = _temp3 === void 0 ? {} : _temp3,\n itemProp = _ref3.item,\n indexProp = _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 onMouseDown = _ref3.onMouseDown,\n onClick = _ref3.onClick;\n _ref3.onPress;\n var disabledProp = _ref3.disabled,\n rest = _objectWithoutPropertiesLoose(_ref3, _excluded2$1);\n if (disabledProp !== undefined) {\n console.warn('Passing \"disabled\" as an argument to getItemProps is not supported anymore. Please use the isItemDisabled prop from useCombobox.');\n }\n var _latest$current = latest.current,\n latestProps = _latest$current.props,\n latestState = _latest$current.state;\n var _getItemAndIndex = getItemAndIndex(itemProp, indexProp, latestProps.items, 'Pass either item or index to getItemProps!'),\n item = _getItemAndIndex[0],\n index = _getItemAndIndex[1];\n var disabled = latestProps.isItemDisabled(item, index);\n var onSelectKey = 'onClick';\n var customClickHandler = onClick;\n var itemHandleMouseMove = function itemHandleMouseMove() {\n if (mouseAndTouchTrackers.isTouchEnd || index === latestState.highlightedIndex) {\n return;\n }\n shouldScrollRef.current = false;\n dispatch({\n type: ItemMouseMove,\n index: index,\n disabled: disabled\n });\n };\n var itemHandleClick = function itemHandleClick() {\n dispatch({\n type: ItemClick,\n index: index\n });\n };\n var itemHandleMouseDown = function itemHandleMouseDown(e) {\n return e.preventDefault();\n }; // keep focus on the input after item click select.\n\n return _extends((_extends3 = {}, _extends3[refKey] = handleRefs(ref, function (itemNode) {\n if (itemNode) {\n itemRefs.current[elementIds.getItemId(index)] = itemNode;\n }\n }), _extends3['aria-disabled'] = disabled, _extends3['aria-selected'] = index === latestState.highlightedIndex, _extends3.id = elementIds.getItemId(index), _extends3.role = 'option', _extends3), !disabled && (_ref4 = {}, _ref4[onSelectKey] = callAllEventHandlers(customClickHandler, itemHandleClick), _ref4), {\n onMouseMove: callAllEventHandlers(onMouseMove, itemHandleMouseMove),\n onMouseDown: callAllEventHandlers(onMouseDown, itemHandleMouseDown)\n }, rest);\n }, [dispatch, elementIds, latest, mouseAndTouchTrackers, shouldScrollRef]);\n var getToggleButtonProps = useCallback(function (_temp4) {\n var _extends4;\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 var latestState = latest.current.state;\n var toggleButtonHandleClick = function toggleButtonHandleClick() {\n dispatch({\n type: ToggleButtonClick\n });\n };\n return _extends((_extends4 = {}, _extends4[refKey] = handleRefs(ref, function (toggleButtonNode) {\n toggleButtonRef.current = toggleButtonNode;\n }), _extends4['aria-controls'] = elementIds.menuId, _extends4['aria-expanded'] = latestState.isOpen, _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 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 onClick = _ref6.onClick,\n _ref6$refKey = _ref6.refKey,\n refKey = _ref6$refKey === void 0 ? 'ref' : _ref6$refKey,\n ref = _ref6.ref,\n rest = _objectWithoutPropertiesLoose(_ref6, _excluded4);\n var _ref7 = _temp6 === void 0 ? {} : _temp6,\n _ref7$suppressRefErro = _ref7.suppressRefError,\n suppressRefError = _ref7$suppressRefErro === void 0 ? false : _ref7$suppressRefErro;\n setGetterPropCallInfo('getInputProps', suppressRefError, refKey, inputRef);\n var latestState = latest.current.state;\n var inputHandleKeyDown = function inputHandleKeyDown(event) {\n var key = normalizeArrowKey(event);\n if (key && inputKeyDownHandlers[key]) {\n inputKeyDownHandlers[key](event);\n }\n };\n var inputHandleChange = function inputHandleChange(event) {\n dispatch({\n type: InputChange,\n inputValue: event.target.value\n });\n };\n var inputHandleBlur = function inputHandleBlur(event) {\n /* istanbul ignore else */\n if (environment != null && environment.document && latestState.isOpen && !mouseAndTouchTrackers.isMouseDown) {\n var isBlurByTabChange = event.relatedTarget === null && environment.document.activeElement !== environment.document.body;\n dispatch({\n type: InputBlur,\n selectItem: !isBlurByTabChange\n });\n }\n };\n var inputHandleClick = function inputHandleClick() {\n dispatch({\n type: InputClick\n });\n };\n\n /* istanbul ignore next (preact) */\n var onChangeKey = 'onChange';\n var eventHandlers = {};\n if (!rest.disabled) {\n var _eventHandlers;\n eventHandlers = (_eventHandlers = {}, _eventHandlers[onChangeKey] = callAllEventHandlers(onChange, onInput, inputHandleChange), _eventHandlers.onKeyDown = callAllEventHandlers(onKeyDown, inputHandleKeyDown), _eventHandlers.onBlur = callAllEventHandlers(onBlur, inputHandleBlur), _eventHandlers.onClick = callAllEventHandlers(onClick, inputHandleClick), _eventHandlers);\n }\n return _extends((_extends5 = {}, _extends5[refKey] = handleRefs(ref, function (inputNode) {\n inputRef.current = inputNode;\n }), _extends5['aria-activedescendant'] = latestState.isOpen && latestState.highlightedIndex > -1 ? elementIds.getItemId(latestState.highlightedIndex) : '', _extends5['aria-autocomplete'] = 'list', _extends5['aria-controls'] = elementIds.menuId, _extends5['aria-expanded'] = latestState.isOpen, _extends5['aria-labelledby'] = rest && rest['aria-label'] ? undefined : elementIds.labelId, _extends5.autoComplete = 'off', _extends5.id = elementIds.inputId, _extends5.role = 'combobox', _extends5.value = latestState.inputValue, _extends5), eventHandlers, rest);\n }, [dispatch, elementIds, environment, inputKeyDownHandlers, latest, mouseAndTouchTrackers, setGetterPropCallInfo]);\n\n // returns\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 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/**\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 */\nfunction getInitialValue(props, propKey) {\n return getInitialValue$1(props, propKey, defaultStateValues);\n}\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 */\nfunction getDefaultValue(props, propKey) {\n return getDefaultValue$1(props, propKey, defaultStateValues);\n}\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 */\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/**\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 */\nfunction isKeyDownOperationPermitted(event) {\n if (event.shiftKey || event.metaKey || event.ctrlKey || event.altKey) {\n return false;\n }\n var element = event.target;\n if (element instanceof HTMLInputElement &&\n // if element is a text input\n element.value !== '' && (\n // and we have text in it\n // and cursor is either not at the start or is currently highlighting text.\n element.selectionStart !== 0 || element.selectionEnd !== 0)) {\n return false;\n }\n return true;\n}\n\n/**\n * Check if a state is equal for taglist, by comparing active index and selected items.\n * Used by useSelect and useCombobox.\n *\n * @param {Object} prevState\n * @param {Object} newState\n * @returns {boolean} Wheather the states are deeply equal.\n */\nfunction isStateEqual(prevState, newState) {\n return prevState.selectedItems === newState.selectedItems && prevState.activeIndex === newState.activeIndex;\n}\nvar propTypes = {\n stateReducer: commonPropTypes.stateReducer,\n itemToKey: commonPropTypes.itemToKey,\n environment: commonPropTypes.environment,\n selectedItems: PropTypes.array,\n initialSelectedItems: PropTypes.array,\n defaultSelectedItems: PropTypes.array,\n getA11yStatusMessage: 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};\nvar defaultProps = {\n itemToKey: defaultProps$3.itemToKey,\n stateReducer: defaultProps$3.stateReducer,\n environment: defaultProps$3.environment,\n keyNavigationNext: 'ArrowRight',\n keyNavigationPrevious: 'ArrowLeft'\n};\n\n// eslint-disable-next-line import/no-mutable-exports\nvar validatePropTypes = noop;\n/* istanbul ignore next */\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 DropdownClick: DropdownClick,\n DropdownKeyDownBackspace: DropdownKeyDownBackspace,\n DropdownKeyDownNavigationPrevious: DropdownKeyDownNavigationPrevious,\n FunctionAddSelectedItem: FunctionAddSelectedItem,\n FunctionRemoveSelectedItem: FunctionRemoveSelectedItem,\n FunctionReset: FunctionReset,\n FunctionSetActiveIndex: FunctionSetActiveIndex,\n FunctionSetSelectedItems: FunctionSetSelectedItems,\n SelectedItemClick: SelectedItemClick,\n SelectedItemKeyDownBackspace: SelectedItemKeyDownBackspace,\n SelectedItemKeyDownDelete: SelectedItemKeyDownDelete,\n SelectedItemKeyDownNavigationNext: SelectedItemKeyDownNavigationNext,\n SelectedItemKeyDownNavigationPrevious: SelectedItemKeyDownNavigationPrevious\n});\n\n/* eslint-disable complexity */\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 switch (type) {\n case SelectedItemClick:\n changes = {\n activeIndex: index\n };\n break;\n case SelectedItemKeyDownNavigationPrevious:\n changes = {\n activeIndex: activeIndex - 1 < 0 ? 0 : activeIndex - 1\n };\n break;\n case SelectedItemKeyDownNavigationNext:\n changes = {\n activeIndex: activeIndex + 1 >= selectedItems.length ? -1 : activeIndex + 1\n };\n break;\n case SelectedItemKeyDownBackspace:\n case SelectedItemKeyDownDelete:\n {\n if (activeIndex < 0) {\n break;\n }\n var newActiveIndex = activeIndex;\n if (selectedItems.length === 1) {\n newActiveIndex = -1;\n } else if (activeIndex === selectedItems.length - 1) {\n newActiveIndex = selectedItems.length - 2;\n }\n changes = _extends({\n selectedItems: [].concat(selectedItems.slice(0, activeIndex), selectedItems.slice(activeIndex + 1))\n }, {\n activeIndex: newActiveIndex\n });\n break;\n }\n case DropdownKeyDownNavigationPrevious:\n changes = {\n activeIndex: selectedItems.length - 1\n };\n break;\n case DropdownKeyDownBackspace:\n changes = {\n selectedItems: selectedItems.slice(0, selectedItems.length - 1)\n };\n break;\n case FunctionAddSelectedItem:\n changes = {\n selectedItems: [].concat(selectedItems, [selectedItem])\n };\n break;\n case DropdownClick:\n changes = {\n activeIndex: -1\n };\n break;\n case FunctionRemoveSelectedItem:\n {\n var _newActiveIndex = activeIndex;\n var selectedItemIndex = selectedItems.findIndex(function (item) {\n return props.itemToKey(item) === props.itemToKey(selectedItem);\n });\n if (selectedItemIndex < 0) {\n break;\n }\n if (selectedItems.length === 1) {\n _newActiveIndex = -1;\n } else if (selectedItemIndex === selectedItems.length - 1) {\n _newActiveIndex = selectedItems.length - 2;\n }\n changes = {\n selectedItems: [].concat(selectedItems.slice(0, selectedItemIndex), selectedItems.slice(selectedItemIndex + 1)),\n activeIndex: _newActiveIndex\n };\n break;\n }\n case FunctionSetSelectedItems:\n {\n var newSelectedItems = action.selectedItems;\n changes = {\n selectedItems: newSelectedItems\n };\n break;\n }\n case FunctionSetActiveIndex:\n {\n var _newActiveIndex2 = action.activeIndex;\n changes = {\n activeIndex: _newActiveIndex2\n };\n break;\n }\n case FunctionReset:\n changes = {\n activeIndex: getDefaultValue(props, 'activeIndex'),\n selectedItems: getDefaultValue(props, 'selectedItems')\n };\n break;\n default:\n throw new Error('Reducer called without proper action type.');\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;\nfunction useMultipleSelection(userProps) {\n if (userProps === void 0) {\n userProps = {};\n }\n validatePropTypes(userProps, useMultipleSelection);\n // Props defaults and destructuring.\n var props = _extends({}, defaultProps, userProps);\n var getA11yStatusMessage = props.getA11yStatusMessage,\n environment = props.environment,\n keyNavigationNext = props.keyNavigationNext,\n keyNavigationPrevious = props.keyNavigationPrevious;\n\n // Reducer init.\n var _useControlledReducer = useControlledReducer$1(downshiftMultipleSelectionReducer, props, getInitialState, isStateEqual),\n state = _useControlledReducer[0],\n dispatch = _useControlledReducer[1];\n var activeIndex = state.activeIndex,\n selectedItems = state.selectedItems;\n\n // Refs.\n var isInitialMount = useIsInitialMount();\n var dropdownRef = useRef(null);\n var selectedItemRefs = useRef();\n selectedItemRefs.current = [];\n var latest = useLatestRef({\n state: state,\n props: props\n });\n\n // Effects.\n // Adds an a11y aria live status message if getA11yStatusMessage is passed.\n useA11yMessageStatus(getA11yStatusMessage, state, [activeIndex, selectedItems], environment);\n // Sets focus on active item.\n useEffect(function () {\n if (isInitialMount) {\n return;\n }\n if (activeIndex === -1 && dropdownRef.current) {\n dropdownRef.current.focus();\n } else if (selectedItemRefs.current[activeIndex]) {\n selectedItemRefs.current[activeIndex].focus();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [activeIndex]);\n useControlPropsValidator({\n props: props,\n state: state\n });\n var setGetterPropCallInfo = useGetterPropsCalledChecker('getDropdownProps');\n\n // Event handler functions.\n var selectedItemKeyDownHandlers = useMemo(function () {\n var _ref;\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 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]);\n\n // Getter props.\n var getSelectedItemProps = useCallback(function (_temp) {\n var _extends2;\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 selectedItemProp = _ref3.selectedItem,\n indexProp = _ref3.index,\n rest = _objectWithoutPropertiesLoose(_ref3, _excluded);\n var latestState = latest.current.state;\n var _getItemAndIndex = getItemAndIndex(selectedItemProp, indexProp, latestState.selectedItems, 'Pass either item or index to getSelectedItemProps!'),\n index = _getItemAndIndex[1];\n var isFocusable = index > -1 && index === latestState.activeIndex;\n var selectedItemHandleClick = function selectedItemHandleClick() {\n dispatch({\n type: SelectedItemClick,\n index: index\n });\n };\n var selectedItemHandleKeyDown = function selectedItemHandleKeyDown(event) {\n var key = normalizeArrowKey(event);\n if (key && selectedItemKeyDownHandlers[key]) {\n selectedItemKeyDownHandlers[key](event);\n }\n };\n return _extends((_extends2 = {}, _extends2[refKey] = handleRefs(ref, function (selectedItemNode) {\n if (selectedItemNode) {\n selectedItemRefs.current.push(selectedItemNode);\n }\n }), _extends2.tabIndex = isFocusable ? 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 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 var _ref5 = _temp3 === void 0 ? {} : _temp3,\n _ref5$suppressRefErro = _ref5.suppressRefError,\n suppressRefError = _ref5$suppressRefErro === void 0 ? false : _ref5$suppressRefErro;\n setGetterPropCallInfo('getDropdownProps', suppressRefError, refKey, dropdownRef);\n var dropdownHandleKeyDown = function dropdownHandleKeyDown(event) {\n var key = normalizeArrowKey(event);\n if (key && dropdownKeyDownHandlers[key]) {\n dropdownKeyDownHandlers[key](event);\n }\n };\n var dropdownHandleClick = function dropdownHandleClick() {\n dispatch({\n type: DropdownClick\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]);\n\n // returns\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 as default, resetIdCounter, useCombobox, useMultipleSelection, useSelect };\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n x: v,\n y: v\n});\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nconst oppositeAlignmentMap = {\n start: 'end',\n end: 'start'\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\nconst yAxisSides = /*#__PURE__*/new Set(['top', 'bottom']);\nfunction getSideAxis(placement) {\n return yAxisSides.has(getSide(placement)) ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\nconst lrPlacement = ['left', 'right'];\nconst rlPlacement = ['right', 'left'];\nconst tbPlacement = ['top', 'bottom'];\nconst btPlacement = ['bottom', 'top'];\nfunction getSideList(side, isStart, rtl) {\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rlPlacement : lrPlacement;\n return isStart ? lrPlacement : rlPlacement;\n case 'left':\n case 'right':\n return isStart ? tbPlacement : btPlacement;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n const {\n x,\n y,\n width,\n height\n } = rect;\n return {\n width,\n height,\n top: y,\n left: x,\n right: x + width,\n bottom: y + height,\n x,\n y\n };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n","import { getSideAxis, getAlignmentAxis, getAxisLength, getSide, getAlignment, evaluate, getPaddingObject, rectToClientRect, min, clamp, placements, getAlignmentSides, getOppositeAlignmentPlacement, getOppositePlacement, getExpandedPlacements, getOppositeAxisPlacements, sides, max, getOppositeAxis } from '@floating-ui/utils';\nexport { rectToClientRect } from '@floating-ui/utils';\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const sideAxis = getSideAxis(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const alignLength = getAxisLength(alignmentAxis);\n const side = getSide(placement);\n const isVertical = sideAxis === 'y';\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n let coords;\n switch (side) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n switch (getAlignment(placement)) {\n case 'start':\n coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n case 'end':\n coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n return coords;\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n const validMiddleware = middleware.filter(Boolean);\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let middlewareData = {};\n let resetCount = 0;\n for (let i = 0; i < validMiddleware.length; i++) {\n const {\n name,\n fn\n } = validMiddleware[i];\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = {\n ...middlewareData,\n [name]: {\n ...middlewareData[name],\n ...data\n }\n };\n if (reset && resetCount <= 50) {\n resetCount++;\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = state;\n const {\n boundary = 'clippingAncestors',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = evaluate(options, state);\n const paddingObject = getPaddingObject(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n boundary,\n rootBoundary,\n strategy\n }));\n const rect = elementContext === 'floating' ? {\n x,\n y,\n width: rects.floating.width,\n height: rects.floating.height\n } : rects.reference;\n const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n x: 1,\n y: 1\n } : {\n x: 1,\n y: 1\n };\n const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n elements,\n rect,\n offsetParent,\n strategy\n }) : rect);\n return {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n };\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n name: 'arrow',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n platform,\n elements,\n middlewareData\n } = state;\n // Since `element` is required, we don't Partial<> the type.\n const {\n element,\n padding = 0\n } = evaluate(options, state) || {};\n if (element == null) {\n return {};\n }\n const paddingObject = getPaddingObject(padding);\n const coords = {\n x,\n y\n };\n const axis = getAlignmentAxis(placement);\n const length = getAxisLength(axis);\n const arrowDimensions = await platform.getDimensions(element);\n const isYAxis = axis === 'y';\n const minProp = isYAxis ? 'top' : 'left';\n const maxProp = isYAxis ? 'bottom' : 'right';\n const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n // DOM platform can return `window` as the `offsetParent`.\n if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n clientSize = elements.floating[clientProp] || rects.floating[length];\n }\n const centerToReference = endDiff / 2 - startDiff / 2;\n\n // If the padding is large enough that it causes the arrow to no longer be\n // centered, modify the padding so that it is centered.\n const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n const minPadding = min(paddingObject[minProp], largestPossiblePadding);\n const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);\n\n // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside the floating element's bounds.\n const min$1 = minPadding;\n const max = clientSize - arrowDimensions[length] - maxPadding;\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = clamp(min$1, center, max);\n\n // If the reference is small enough that the arrow's padding causes it to\n // to point to nothing for an aligned placement, adjust the offset of the\n // floating element itself. To ensure `shift()` continues to take action,\n // a single reset is performed when this is true.\n const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max : 0;\n return {\n [axis]: coords[axis] + alignmentOffset,\n data: {\n [axis]: offset,\n centerOffset: center - offset - alignmentOffset,\n ...(shouldAddOffset && {\n alignmentOffset\n })\n },\n reset: shouldAddOffset\n };\n }\n});\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n return true;\n });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'autoPlacement',\n options,\n async fn(state) {\n var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n const {\n rects,\n middlewareData,\n placement,\n platform,\n elements\n } = state;\n const {\n crossAxis = false,\n alignment,\n allowedPlacements = placements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n const placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n const currentPlacement = placements$1[currentIndex];\n if (currentPlacement == null) {\n return {};\n }\n const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n\n // Make `computeCoords` start from the right place.\n if (placement !== currentPlacement) {\n return {\n reset: {\n placement: placements$1[0]\n }\n };\n }\n const currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements$1[currentIndex + 1];\n\n // There are more placements to check.\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n const placementsSortedByMostSpace = allOverflows.map(d => {\n const alignment = getAlignment(d.placement);\n return [d.placement, alignment && crossAxis ?\n // Check along the mainAxis and main crossAxis side.\n d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n // Check only the mainAxis.\n d.overflows[0], d.overflows];\n }).sort((a, b) => a[1] - b[1]);\n const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n // Aligned placements should not check their opposite crossAxis\n // side.\n getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));\n const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n if (resetPlacement !== placement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n return {};\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'flip',\n options,\n async fn(state) {\n var _middlewareData$arrow, _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform,\n elements\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n fallbackAxisSideDirection = 'none',\n flipAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n\n // If a reset by the arrow was caused due to an alignment offset being\n // added, we should skip any logic now since `flip()` has already done its\n // work.\n // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643\n if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n const side = getSide(placement);\n const initialSideAxis = getSideAxis(initialPlacement);\n const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== 'none';\n if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {\n fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n }\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const sides = getAlignmentSides(placement, rects, rtl);\n overflows.push(overflow[sides[0]], overflow[sides[1]]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }];\n\n // One or more sides is overflowing.\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip2, _overflowsData$filter;\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n const nextPlacement = placements[nextIndex];\n if (nextPlacement) {\n const ignoreCrossAxisOverflow = checkCrossAxis === 'alignment' ? initialSideAxis !== getSideAxis(nextPlacement) : false;\n if (!ignoreCrossAxisOverflow ||\n // We leave the current main axis only if every placement on that axis\n // overflows the main axis.\n overflowsData.every(d => getSideAxis(d.placement) === initialSideAxis ? d.overflows[0] > 0 : true)) {\n // Try next placement and re-run the lifecycle.\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n }\n\n // First, find the candidates that fit on the mainAxis side of overflow,\n // then find the placement that fits the best on the main crossAxis side.\n let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n // Otherwise fallback.\n if (!resetPlacement) {\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$filter2;\n const placement = (_overflowsData$filter2 = overflowsData.filter(d => {\n if (hasFallbackAxisSideDirection) {\n const currentSideAxis = getSideAxis(d.placement);\n return currentSideAxis === initialSideAxis ||\n // Create a bias to the `y` side axis due to horizontal\n // reading directions favoring greater width.\n currentSideAxis === 'y';\n }\n return true;\n }).map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0];\n if (placement) {\n resetPlacement = placement;\n }\n break;\n }\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\n }\n };\n};\n\nfunction getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n}\nfunction isAnySideFullyClipped(overflow) {\n return sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'hide',\n options,\n async fn(state) {\n const {\n rects\n } = state;\n const {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = evaluate(options, state);\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const offsets = getSideOffsets(overflow, rects.reference);\n return {\n data: {\n referenceHiddenOffsets: offsets,\n referenceHidden: isAnySideFullyClipped(offsets)\n }\n };\n }\n case 'escaped':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n altBoundary: true\n });\n const offsets = getSideOffsets(overflow, rects.floating);\n return {\n data: {\n escapedOffsets: offsets,\n escaped: isAnySideFullyClipped(offsets)\n }\n };\n }\n default:\n {\n return {};\n }\n }\n }\n };\n};\n\nfunction getBoundingRect(rects) {\n const minX = min(...rects.map(rect => rect.left));\n const minY = min(...rects.map(rect => rect.top));\n const maxX = max(...rects.map(rect => rect.right));\n const maxY = max(...rects.map(rect => rect.bottom));\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n}\nfunction getRectsByLine(rects) {\n const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n const groups = [];\n let prevRect = null;\n for (let i = 0; i < sortedRects.length; i++) {\n const rect = sortedRects[i];\n if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n groups.push([rect]);\n } else {\n groups[groups.length - 1].push(rect);\n }\n prevRect = rect;\n }\n return groups.map(rect => rectToClientRect(getBoundingRect(rect)));\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'inline',\n options,\n async fn(state) {\n const {\n placement,\n elements,\n rects,\n platform,\n strategy\n } = state;\n // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n const {\n padding = 2,\n x,\n y\n } = evaluate(options, state);\n const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n const clientRects = getRectsByLine(nativeClientRects);\n const fallback = rectToClientRect(getBoundingRect(nativeClientRects));\n const paddingObject = getPaddingObject(padding);\n function getBoundingClientRect() {\n // There are two rects and they are disjoined.\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n // Find the first rect in which the point is fully inside.\n return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n }\n\n // There are 2 or more connected rects.\n if (clientRects.length >= 2) {\n if (getSideAxis(placement) === 'y') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = getSide(placement) === 'top';\n const top = firstRect.top;\n const bottom = lastRect.bottom;\n const left = isTop ? firstRect.left : lastRect.left;\n const right = isTop ? firstRect.right : lastRect.right;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n const isLeftSide = getSide(placement) === 'left';\n const maxRight = max(...clientRects.map(rect => rect.right));\n const minLeft = min(...clientRects.map(rect => rect.left));\n const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n const top = measureRects[0].top;\n const bottom = measureRects[measureRects.length - 1].bottom;\n const left = minLeft;\n const right = maxRight;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n return fallback;\n }\n const resetRects = await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n });\n if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n return {\n reset: {\n rects: resetRects\n }\n };\n }\n return {};\n }\n };\n};\n\nconst originSides = /*#__PURE__*/new Set(['left', 'top']);\n\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\n\nasync function convertValueToCoords(state, options) {\n const {\n placement,\n platform,\n elements\n } = state;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getSideAxis(placement) === 'y';\n const mainAxisMulti = originSides.has(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = evaluate(options, state);\n\n // eslint-disable-next-line prefer-const\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: rawValue.mainAxis || 0,\n crossAxis: rawValue.crossAxis || 0,\n alignmentAxis: rawValue.alignmentAxis\n };\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n if (options === void 0) {\n options = 0;\n }\n return {\n name: 'offset',\n options,\n async fn(state) {\n var _middlewareData$offse, _middlewareData$arrow;\n const {\n x,\n y,\n placement,\n middlewareData\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n\n // If the placement is the same and the arrow caused an alignment offset\n // then we don't need to change the positioning coordinates.\n if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: {\n ...diffCoords,\n placement\n }\n };\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'shift',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const crossAxis = getSideAxis(getSide(placement));\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = clamp(min, mainAxisCoord, max);\n }\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = clamp(min, crossAxisCoord, max);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y,\n enabled: {\n [mainAxis]: checkMainAxis,\n [crossAxis]: checkCrossAxis\n }\n }\n };\n }\n };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n options,\n fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = state;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const crossAxis = getSideAxis(placement);\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = evaluate(offset, state);\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\n };\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2;\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = originSides.has(getSide(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'size',\n options,\n async fn(state) {\n var _state$middlewareData, _state$middlewareData2;\n const {\n placement,\n rects,\n platform,\n elements\n } = state;\n const {\n apply = () => {},\n ...detectOverflowOptions\n } = evaluate(options, state);\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isYAxis = getSideAxis(placement) === 'y';\n const {\n width,\n height\n } = rects.floating;\n let heightSide;\n let widthSide;\n if (side === 'top' || side === 'bottom') {\n heightSide = side;\n widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n } else {\n widthSide = side;\n heightSide = alignment === 'end' ? 'top' : 'bottom';\n }\n const maximumClippingHeight = height - overflow.top - overflow.bottom;\n const maximumClippingWidth = width - overflow.left - overflow.right;\n const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);\n const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);\n const noShift = !state.middlewareData.shift;\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if ((_state$middlewareData = state.middlewareData.shift) != null && _state$middlewareData.enabled.x) {\n availableWidth = maximumClippingWidth;\n }\n if ((_state$middlewareData2 = state.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {\n availableHeight = maximumClippingHeight;\n }\n if (noShift && !alignment) {\n const xMin = max(overflow.left, 0);\n const xMax = max(overflow.right, 0);\n const yMin = max(overflow.top, 0);\n const yMax = max(overflow.bottom, 0);\n if (isYAxis) {\n availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));\n } else {\n availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));\n }\n }\n await apply({\n ...state,\n availableWidth,\n availableHeight\n });\n const nextDimensions = await platform.getDimensions(elements.floating);\n if (width !== nextDimensions.width || height !== nextDimensions.height) {\n return {\n reset: {\n rects: true\n }\n };\n }\n return {};\n }\n };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, shift, size };\n","function hasWindow() {\n return typeof window !== 'undefined';\n}\nfunction getNodeName(node) {\n if (isNode(node)) {\n return (node.nodeName || '').toLowerCase();\n }\n // Mocked nodes in testing environments may not be instances of Node. By\n // returning `#document` an infinite loop won't occur.\n // https://github.com/floating-ui/floating-ui/issues/2317\n return '#document';\n}\nfunction getWindow(node) {\n var _node$ownerDocument;\n return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n var _ref;\n return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n if (!hasWindow() || typeof ShadowRoot === 'undefined') {\n return false;\n }\n return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nconst invalidOverflowDisplayValues = /*#__PURE__*/new Set(['inline', 'contents']);\nfunction isOverflowElement(element) {\n const {\n overflow,\n overflowX,\n overflowY,\n display\n } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !invalidOverflowDisplayValues.has(display);\n}\nconst tableElements = /*#__PURE__*/new Set(['table', 'td', 'th']);\nfunction isTableElement(element) {\n return tableElements.has(getNodeName(element));\n}\nconst topLayerSelectors = [':popover-open', ':modal'];\nfunction isTopLayer(element) {\n return topLayerSelectors.some(selector => {\n try {\n return element.matches(selector);\n } catch (_e) {\n return false;\n }\n });\n}\nconst transformProperties = ['transform', 'translate', 'scale', 'rotate', 'perspective'];\nconst willChangeValues = ['transform', 'translate', 'scale', 'rotate', 'perspective', 'filter'];\nconst containValues = ['paint', 'layout', 'strict', 'content'];\nfunction isContainingBlock(elementOrCss) {\n const webkit = isWebKit();\n const css = isElement(elementOrCss) ? getComputedStyle(elementOrCss) : elementOrCss;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n // https://drafts.csswg.org/css-transforms-2/#individual-transforms\n return transformProperties.some(value => css[value] ? css[value] !== 'none' : false) || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || willChangeValues.some(value => (css.willChange || '').includes(value)) || containValues.some(value => (css.contain || '').includes(value));\n}\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else if (isTopLayer(currentNode)) {\n return null;\n }\n currentNode = getParentNode(currentNode);\n }\n return null;\n}\nfunction isWebKit() {\n if (typeof CSS === 'undefined' || !CSS.supports) return false;\n return CSS.supports('-webkit-backdrop-filter', 'none');\n}\nconst lastTraversableNodeNames = /*#__PURE__*/new Set(['html', 'body', '#document']);\nfunction isLastTraversableNode(node) {\n return lastTraversableNodeNames.has(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.scrollX,\n scrollTop: element.scrollY\n };\n}\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n const result =\n // Step into the shadow DOM of the parent of a slotted node.\n node.assignedSlot ||\n // DOM Element detected.\n node.parentNode ||\n // ShadowRoot detected.\n isShadowRoot(node) && node.host ||\n // Fallback.\n getDocumentElement(node);\n return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (isLastTraversableNode(parentNode)) {\n return node.ownerDocument ? node.ownerDocument.body : node.body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list, traverseIframes) {\n var _node$ownerDocument2;\n if (list === void 0) {\n list = [];\n }\n if (traverseIframes === void 0) {\n traverseIframes = true;\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n const frameElement = getFrameElement(win);\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []);\n }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n}\nfunction getFrameElement(win) {\n return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;\n}\n\nexport { getComputedStyle, getContainingBlock, getDocumentElement, getFrameElement, getNearestOverflowAncestor, getNodeName, getNodeScroll, getOverflowAncestors, getParentNode, getWindow, isContainingBlock, isElement, isHTMLElement, isLastTraversableNode, isNode, isOverflowElement, isShadowRoot, isTableElement, isTopLayer, isWebKit };\n","import { rectToClientRect, arrow as arrow$1, autoPlacement as autoPlacement$1, detectOverflow as detectOverflow$1, flip as flip$1, hide as hide$1, inline as inline$1, limitShift as limitShift$1, offset as offset$1, shift as shift$1, size as size$1, computePosition as computePosition$1 } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle as getComputedStyle$1, isHTMLElement, isElement, getWindow, isWebKit, getFrameElement, getNodeScroll, getDocumentElement, isTopLayer, getNodeName, isOverflowElement, getOverflowAncestors, getParentNode, isLastTraversableNode, isContainingBlock, isTableElement, getContainingBlock } from '@floating-ui/utils/dom';\nexport { getOverflowAncestors } from '@floating-ui/utils/dom';\n\nfunction getCssDimensions(element) {\n const css = getComputedStyle$1(element);\n // In testing environments, the `width` and `height` properties are empty\n // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = isHTMLElement(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n}\n\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return createCoords(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? round(rect.width) : rect.width) / width;\n let y = ($ ? round(rect.height) : rect.height) / height;\n\n // 0, NaN, or Infinity should always fallback to 1.\n\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\n\nconst noOffsets = /*#__PURE__*/createCoords(0);\nfunction getVisualOffsets(element) {\n const win = getWindow(element);\n if (!isWebKit() || !win.visualViewport) {\n return noOffsets;\n }\n return {\n x: win.visualViewport.offsetLeft,\n y: win.visualViewport.offsetTop\n };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {\n return false;\n }\n return isFixed;\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = createCoords(1);\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement) {\n const win = getWindow(domElement);\n const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentWin = win;\n let currentIFrame = getFrameElement(currentWin);\n while (currentIFrame && offsetParent && offsetWin !== currentWin) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle$1(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentWin = getWindow(currentIFrame);\n currentIFrame = getFrameElement(currentWin);\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\n\n// If <html> has a CSS width greater than the viewport, then this will be\n// incorrect for RTL.\nfunction getWindowScrollBarX(element, rect) {\n const leftScroll = getNodeScroll(element).scrollLeft;\n if (!rect) {\n return getBoundingClientRect(getDocumentElement(element)).left + leftScroll;\n }\n return rect.left + leftScroll;\n}\n\nfunction getHTMLOffset(documentElement, scroll) {\n const htmlRect = documentElement.getBoundingClientRect();\n const x = htmlRect.left + scroll.scrollLeft - getWindowScrollBarX(documentElement, htmlRect);\n const y = htmlRect.top + scroll.scrollTop;\n return {\n x,\n y\n };\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n elements,\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isFixed = strategy === 'fixed';\n const documentElement = getDocumentElement(offsetParent);\n const topLayer = elements ? isTopLayer(elements.floating) : false;\n if (offsetParent === documentElement || topLayer && isFixed) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = createCoords(1);\n const offsets = createCoords(0);\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x + htmlOffset.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y + htmlOffset.y\n };\n}\n\nfunction getClientRects(element) {\n return Array.from(element.getClientRects());\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = element.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle$1(body).direction === 'rtl') {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Safety check: ensure the scrollbar space is reasonable in case this\n// calculation is affected by unusual styles.\n// Most scrollbars leave 15-18px of space.\nconst SCROLLBAR_MAX = 25;\nfunction getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = isWebKit();\n if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n const windowScrollbarX = getWindowScrollBarX(html);\n // <html> `overflow: hidden` + `scrollbar-gutter: stable` reduces the\n // visual width of the <html> but this is not considered in the size\n // of `html.clientWidth`.\n if (windowScrollbarX <= 0) {\n const doc = html.ownerDocument;\n const body = doc.body;\n const bodyStyles = getComputedStyle(body);\n const bodyMarginInline = doc.compatMode === 'CSS1Compat' ? parseFloat(bodyStyles.marginLeft) + parseFloat(bodyStyles.marginRight) || 0 : 0;\n const clippingStableScrollbarWidth = Math.abs(html.clientWidth - body.clientWidth - bodyMarginInline);\n if (clippingStableScrollbarWidth <= SCROLLBAR_MAX) {\n width -= clippingStableScrollbarWidth;\n }\n } else if (windowScrollbarX <= SCROLLBAR_MAX) {\n // If the <body> scrollbar is on the left, the width needs to be extended\n // by the scrollbar amount so there isn't extra space on the right.\n width += windowScrollbarX;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\nconst absoluteOrFixed = /*#__PURE__*/new Set(['absolute', 'fixed']);\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === 'viewport') {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === 'document') {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y,\n width: clippingAncestor.width,\n height: clippingAncestor.height\n };\n }\n return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n const parentNode = getParentNode(element);\n if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n return false;\n }\n return getComputedStyle$1(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle$1(element).position === 'fixed';\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle$1(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n currentContainingBlockComputedStyle = null;\n }\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && absoluteOrFixed.has(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // Record last containing block for next iteration.\n currentContainingBlockComputedStyle = computedStyle;\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === 'clippingAncestors' ? isTopLayer(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstClippingAncestor = clippingAncestors[0];\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.top\n };\n}\n\nfunction getDimensions(element) {\n const {\n width,\n height\n } = getCssDimensions(element);\n return {\n width,\n height\n };\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const isFixed = strategy === 'fixed';\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = createCoords(0);\n\n // If the <body> scrollbar appears on the left (e.g. RTL systems). Use\n // Firefox with layout.scrollbar.side = 3 in about:config to test this.\n function setLeftRTLScrollbarOffset() {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n setLeftRTLScrollbarOffset();\n }\n }\n if (isFixed && !isOffsetParentAnElement && documentElement) {\n setLeftRTLScrollbarOffset();\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;\n const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y;\n return {\n x,\n y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction isStaticPositioned(element) {\n return getComputedStyle$1(element).position === 'static';\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle$1(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n let rawOffsetParent = element.offsetParent;\n\n // Firefox returns the <html> element as the offsetParent if it's non-static,\n // while Chrome and Safari return the <body> element. The <body> element must\n // be used to perform the correct calculations even if the <html> element is\n // non-static.\n if (getDocumentElement(element) === rawOffsetParent) {\n rawOffsetParent = rawOffsetParent.ownerDocument.body;\n }\n return rawOffsetParent;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n const win = getWindow(element);\n if (isTopLayer(element)) {\n return win;\n }\n if (!isHTMLElement(element)) {\n let svgOffsetParent = getParentNode(element);\n while (svgOffsetParent && !isLastTraversableNode(svgOffsetParent)) {\n if (isElement(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {\n return svgOffsetParent;\n }\n svgOffsetParent = getParentNode(svgOffsetParent);\n }\n return win;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && isStaticPositioned(offsetParent)) {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned(offsetParent) && !isContainingBlock(offsetParent)) {\n return win;\n }\n return offsetParent || getContainingBlock(element) || win;\n}\n\nconst getElementRects = async function (data) {\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n const floatingDimensions = await getDimensionsFn(data.floating);\n return {\n reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),\n floating: {\n x: 0,\n y: 0,\n width: floatingDimensions.width,\n height: floatingDimensions.height\n }\n };\n};\n\nfunction isRTL(element) {\n return getComputedStyle$1(element).direction === 'rtl';\n}\n\nconst platform = {\n convertOffsetParentRelativeRectToViewportRelativeRect,\n getDocumentElement,\n getClippingRect,\n getOffsetParent,\n getElementRects,\n getClientRects,\n getDimensions,\n getScale,\n isElement,\n isRTL\n};\n\nfunction rectsAreEqual(a, b) {\n return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;\n}\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove) {\n let io = null;\n let timeoutId;\n const root = getDocumentElement(element);\n function cleanup() {\n var _io;\n clearTimeout(timeoutId);\n (_io = io) == null || _io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const elementRectForRootMargin = element.getBoundingClientRect();\n const {\n left,\n top,\n width,\n height\n } = elementRectForRootMargin;\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = floor(top);\n const insetRight = floor(root.clientWidth - (left + width));\n const insetBottom = floor(root.clientHeight - (top + height));\n const insetLeft = floor(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n const options = {\n rootMargin,\n threshold: max(0, min(1, threshold)) || 1\n };\n let isFirstUpdate = true;\n function handleObserve(entries) {\n const ratio = entries[0].intersectionRatio;\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n // If the reference is clipped, the ratio is 0. Throttle the refresh\n // to prevent an infinite loop of updates.\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 1000);\n } else {\n refresh(false, ratio);\n }\n }\n if (ratio === 1 && !rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) {\n // It's possible that even though the ratio is reported as 1, the\n // element is not actually fully within the IntersectionObserver's root\n // area anymore. This can happen under performance constraints. This may\n // be a bug in the browser's IntersectionObserver implementation. To\n // work around this, we compare the element's bounding rect now with\n // what it was at the time we created the IntersectionObserver. If they\n // are not equal then the element moved, so we refresh.\n refresh();\n }\n isFirstUpdate = false;\n }\n\n // Older browsers don't support a `document` as the root and will throw an\n // error.\n try {\n io = new IntersectionObserver(handleObserve, {\n ...options,\n // Handle <iframe>s\n root: root.ownerDocument\n });\n } catch (_e) {\n io = new IntersectionObserver(handleObserve, options);\n }\n io.observe(element);\n }\n refresh(true);\n return cleanup;\n}\n\n/**\n * Automatically updates the position of the floating element when necessary.\n * Should only be called when the floating element is mounted on the DOM or\n * visible on the screen.\n * @returns cleanup function that should be invoked when the floating element is\n * removed from the DOM or hidden from the screen.\n * @see https://floating-ui.com/docs/autoUpdate\n */\nfunction autoUpdate(reference, floating, update, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n ancestorScroll = true,\n ancestorResize = true,\n elementResize = typeof ResizeObserver === 'function',\n layoutShift = typeof IntersectionObserver === 'function',\n animationFrame = false\n } = options;\n const referenceEl = unwrapElement(reference);\n const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? getOverflowAncestors(referenceEl) : []), ...getOverflowAncestors(floating)] : [];\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.addEventListener('scroll', update, {\n passive: true\n });\n ancestorResize && ancestor.addEventListener('resize', update);\n });\n const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;\n let reobserveFrame = -1;\n let resizeObserver = null;\n if (elementResize) {\n resizeObserver = new ResizeObserver(_ref => {\n let [firstEntry] = _ref;\n if (firstEntry && firstEntry.target === referenceEl && resizeObserver) {\n // Prevent update loops when using the `size` middleware.\n // https://github.com/floating-ui/floating-ui/issues/1740\n resizeObserver.unobserve(floating);\n cancelAnimationFrame(reobserveFrame);\n reobserveFrame = requestAnimationFrame(() => {\n var _resizeObserver;\n (_resizeObserver = resizeObserver) == null || _resizeObserver.observe(floating);\n });\n }\n update();\n });\n if (referenceEl && !animationFrame) {\n resizeObserver.observe(referenceEl);\n }\n resizeObserver.observe(floating);\n }\n let frameId;\n let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n if (animationFrame) {\n frameLoop();\n }\n function frameLoop() {\n const nextRefRect = getBoundingClientRect(reference);\n if (prevRefRect && !rectsAreEqual(prevRefRect, nextRefRect)) {\n update();\n }\n prevRefRect = nextRefRect;\n frameId = requestAnimationFrame(frameLoop);\n }\n update();\n return () => {\n var _resizeObserver2;\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.removeEventListener('scroll', update);\n ancestorResize && ancestor.removeEventListener('resize', update);\n });\n cleanupIo == null || cleanupIo();\n (_resizeObserver2 = resizeObserver) == null || _resizeObserver2.disconnect();\n resizeObserver = null;\n if (animationFrame) {\n cancelAnimationFrame(frameId);\n }\n };\n}\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nconst detectOverflow = detectOverflow$1;\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = offset$1;\n\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = autoPlacement$1;\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = shift$1;\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = flip$1;\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = size$1;\n\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = hide$1;\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = arrow$1;\n\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = inline$1;\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = limitShift$1;\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n */\nconst computePosition = (reference, floating, options) => {\n // This caches the expensive `getClippingElementAncestors` function so that\n // multiple lifecycle resets re-use the same result. It only lives for a\n // single call. If other functions become expensive, we can add them as well.\n const cache = new Map();\n const mergedOptions = {\n platform,\n ...options\n };\n const platformWithCache = {\n ...mergedOptions.platform,\n _c: cache\n };\n return computePosition$1(reference, floating, {\n ...mergedOptions,\n platform: platformWithCache\n });\n};\n\nexport { arrow, autoPlacement, autoUpdate, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, platform, shift, size };\n","import { computePosition, arrow as arrow$2, autoPlacement as autoPlacement$1, flip as flip$1, hide as hide$1, inline as inline$1, limitShift as limitShift$1, offset as offset$1, shift as shift$1, size as size$1 } from '@floating-ui/dom';\nexport { autoUpdate, computePosition, detectOverflow, getOverflowAncestors, platform } from '@floating-ui/dom';\nimport * as React from 'react';\nimport { useLayoutEffect } from 'react';\nimport * as ReactDOM from 'react-dom';\n\nvar isClient = typeof document !== 'undefined';\n\nvar noop = function noop() {};\nvar index = isClient ? useLayoutEffect : noop;\n\n// Fork of `fast-deep-equal` that only does the comparisons we need and compares\n// functions\nfunction deepEqual(a, b) {\n if (a === b) {\n return true;\n }\n if (typeof a !== typeof b) {\n return false;\n }\n if (typeof a === 'function' && a.toString() === b.toString()) {\n return true;\n }\n let length;\n let i;\n let keys;\n if (a && b && typeof a === 'object') {\n if (Array.isArray(a)) {\n length = a.length;\n if (length !== b.length) return false;\n for (i = length; i-- !== 0;) {\n if (!deepEqual(a[i], b[i])) {\n return false;\n }\n }\n return true;\n }\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) {\n return false;\n }\n for (i = length; i-- !== 0;) {\n if (!{}.hasOwnProperty.call(b, keys[i])) {\n return false;\n }\n }\n for (i = length; i-- !== 0;) {\n const key = keys[i];\n if (key === '_owner' && a.$$typeof) {\n continue;\n }\n if (!deepEqual(a[key], b[key])) {\n return false;\n }\n }\n return true;\n }\n return a !== a && b !== b;\n}\n\nfunction getDPR(element) {\n if (typeof window === 'undefined') {\n return 1;\n }\n const win = element.ownerDocument.defaultView || window;\n return win.devicePixelRatio || 1;\n}\n\nfunction roundByDPR(element, value) {\n const dpr = getDPR(element);\n return Math.round(value * dpr) / dpr;\n}\n\nfunction useLatestRef(value) {\n const ref = React.useRef(value);\n index(() => {\n ref.current = value;\n });\n return ref;\n}\n\n/**\n * Provides data to position a floating element.\n * @see https://floating-ui.com/docs/useFloating\n */\nfunction useFloating(options) {\n if (options === void 0) {\n options = {};\n }\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform,\n elements: {\n reference: externalReference,\n floating: externalFloating\n } = {},\n transform = true,\n whileElementsMounted,\n open\n } = options;\n const [data, setData] = React.useState({\n x: 0,\n y: 0,\n strategy,\n placement,\n middlewareData: {},\n isPositioned: false\n });\n const [latestMiddleware, setLatestMiddleware] = React.useState(middleware);\n if (!deepEqual(latestMiddleware, middleware)) {\n setLatestMiddleware(middleware);\n }\n const [_reference, _setReference] = React.useState(null);\n const [_floating, _setFloating] = React.useState(null);\n const setReference = React.useCallback(node => {\n if (node !== referenceRef.current) {\n referenceRef.current = node;\n _setReference(node);\n }\n }, []);\n const setFloating = React.useCallback(node => {\n if (node !== floatingRef.current) {\n floatingRef.current = node;\n _setFloating(node);\n }\n }, []);\n const referenceEl = externalReference || _reference;\n const floatingEl = externalFloating || _floating;\n const referenceRef = React.useRef(null);\n const floatingRef = React.useRef(null);\n const dataRef = React.useRef(data);\n const hasWhileElementsMounted = whileElementsMounted != null;\n const whileElementsMountedRef = useLatestRef(whileElementsMounted);\n const platformRef = useLatestRef(platform);\n const openRef = useLatestRef(open);\n const update = React.useCallback(() => {\n if (!referenceRef.current || !floatingRef.current) {\n return;\n }\n const config = {\n placement,\n strategy,\n middleware: latestMiddleware\n };\n if (platformRef.current) {\n config.platform = platformRef.current;\n }\n computePosition(referenceRef.current, floatingRef.current, config).then(data => {\n const fullData = {\n ...data,\n // The floating element's position may be recomputed while it's closed\n // but still mounted (such as when transitioning out). To ensure\n // `isPositioned` will be `false` initially on the next open, avoid\n // setting it to `true` when `open === false` (must be specified).\n isPositioned: openRef.current !== false\n };\n if (isMountedRef.current && !deepEqual(dataRef.current, fullData)) {\n dataRef.current = fullData;\n ReactDOM.flushSync(() => {\n setData(fullData);\n });\n }\n });\n }, [latestMiddleware, placement, strategy, platformRef, openRef]);\n index(() => {\n if (open === false && dataRef.current.isPositioned) {\n dataRef.current.isPositioned = false;\n setData(data => ({\n ...data,\n isPositioned: false\n }));\n }\n }, [open]);\n const isMountedRef = React.useRef(false);\n index(() => {\n isMountedRef.current = true;\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n index(() => {\n if (referenceEl) referenceRef.current = referenceEl;\n if (floatingEl) floatingRef.current = floatingEl;\n if (referenceEl && floatingEl) {\n if (whileElementsMountedRef.current) {\n return whileElementsMountedRef.current(referenceEl, floatingEl, update);\n }\n update();\n }\n }, [referenceEl, floatingEl, update, whileElementsMountedRef, hasWhileElementsMounted]);\n const refs = React.useMemo(() => ({\n reference: referenceRef,\n floating: floatingRef,\n setReference,\n setFloating\n }), [setReference, setFloating]);\n const elements = React.useMemo(() => ({\n reference: referenceEl,\n floating: floatingEl\n }), [referenceEl, floatingEl]);\n const floatingStyles = React.useMemo(() => {\n const initialStyles = {\n position: strategy,\n left: 0,\n top: 0\n };\n if (!elements.floating) {\n return initialStyles;\n }\n const x = roundByDPR(elements.floating, data.x);\n const y = roundByDPR(elements.floating, data.y);\n if (transform) {\n return {\n ...initialStyles,\n transform: \"translate(\" + x + \"px, \" + y + \"px)\",\n ...(getDPR(elements.floating) >= 1.5 && {\n willChange: 'transform'\n })\n };\n }\n return {\n position: strategy,\n left: x,\n top: y\n };\n }, [strategy, transform, elements.floating, data.x, data.y]);\n return React.useMemo(() => ({\n ...data,\n update,\n refs,\n elements,\n floatingStyles\n }), [data, update, refs, elements, floatingStyles]);\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * This wraps the core `arrow` middleware to allow React refs as the element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow$1 = options => {\n function isRef(value) {\n return {}.hasOwnProperty.call(value, 'current');\n }\n return {\n name: 'arrow',\n options,\n fn(state) {\n const {\n element,\n padding\n } = typeof options === 'function' ? options(state) : options;\n if (element && isRef(element)) {\n if (element.current != null) {\n return arrow$2({\n element: element.current,\n padding\n }).fn(state);\n }\n return {};\n }\n if (element) {\n return arrow$2({\n element,\n padding\n }).fn(state);\n }\n return {};\n }\n };\n};\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = (options, deps) => ({\n ...offset$1(options),\n options: [options, deps]\n});\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = (options, deps) => ({\n ...shift$1(options),\n options: [options, deps]\n});\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = (options, deps) => ({\n ...limitShift$1(options),\n options: [options, deps]\n});\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = (options, deps) => ({\n ...flip$1(options),\n options: [options, deps]\n});\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = (options, deps) => ({\n ...size$1(options),\n options: [options, deps]\n});\n\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = (options, deps) => ({\n ...autoPlacement$1(options),\n options: [options, deps]\n});\n\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = (options, deps) => ({\n ...hide$1(options),\n options: [options, deps]\n});\n\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = (options, deps) => ({\n ...inline$1(options),\n options: [options, deps]\n});\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * This wraps the core `arrow` middleware to allow React refs as the element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = (options, deps) => ({\n ...arrow$1(options),\n options: [options, deps]\n});\n\nexport { arrow, autoPlacement, flip, hide, inline, limitShift, offset, shift, size, useFloating };\n","import React from 'react';\nimport classNames from 'classnames';\nimport { UseComboboxPropGetters, UseSelectPropGetters } from 'downshift';\n\nimport { VisuallyHidden } from '@entur/a11y';\nimport { Checkbox } from '@entur/form';\n\nimport { NormalizedDropdownItemType } from '../types';\n\nimport './DropdownList.scss';\n\ntype DropdownListProps<ValueType> = {\n ariaLabelChosenSingular?: string;\n ariaLabelSelectedItem?: string;\n getMenuProps:\n | UseComboboxPropGetters<ValueType>['getMenuProps']\n | UseSelectPropGetters<ValueType>['getMenuProps'];\n getItemProps:\n | UseComboboxPropGetters<ValueType>['getItemProps']\n | UseSelectPropGetters<ValueType>['getItemProps'];\n highlightedIndex: number;\n isOpen: boolean;\n listItems: NormalizedDropdownItemType<ValueType | string>[];\n floatingStyles: { [key: string]: any } | undefined;\n setListRef: (node: HTMLElement | null) => void;\n loading?: boolean;\n loadingText?: string;\n noMatchesText?: string;\n selectAllCheckboxState?: () => boolean | 'indeterminate';\n selectAllItem?: NormalizedDropdownItemType<string>;\n selectedItems: NormalizedDropdownItemType<ValueType>[];\n style?: React.CSSProperties;\n readOnly?: boolean;\n};\n\nexport const DropdownList = <ValueType extends NonNullable<any>>({\n ariaLabelChosenSingular = 'valgt',\n ariaLabelSelectedItem = ', valgt element, trykk for å fjerne',\n getItemProps,\n getMenuProps,\n isOpen,\n highlightedIndex,\n listItems,\n floatingStyles,\n setListRef,\n loading = false,\n loadingText = 'Laster inn …',\n noMatchesText = 'Ingen treff for søket',\n selectAllCheckboxState,\n selectAllItem,\n selectedItems,\n readOnly = false,\n ...rest\n}: DropdownListProps<ValueType>) => {\n const isMultiselect = selectAllItem !== undefined;\n const isNoMatches =\n !loading &&\n (listItems.length === 0 ||\n (listItems?.length === 1 &&\n listItems?.[0]?.value === selectAllItem?.value));\n const isItemSelected = (\n item: NormalizedDropdownItemType<ValueType | string>,\n ) =>\n selectedItems.some(\n selectedItem =>\n selectedItem?.value === item?.value &&\n selectedItem?.label === item?.label,\n );\n\n const ariaValuesSelectAll = () => {\n switch (selectAllCheckboxState?.()) {\n case 'indeterminate': {\n return {\n label: `${selectAllItem?.label}, delvis valgt`,\n selected: false,\n };\n }\n case true: {\n return {\n label: `${selectAllItem?.label}, ${ariaLabelChosenSingular}`,\n selected: true,\n };\n }\n default: {\n return { label: `${selectAllItem?.label}`, selected: false };\n }\n }\n };\n\n const selectAllListItemContent = () => (\n <>\n <Checkbox\n aria-hidden=\"true\"\n checked={selectAllCheckboxState?.()}\n className=\"eds-dropdown__list__item__checkbox\"\n tabIndex={-1}\n onChange={() => undefined}\n />\n <span\n className=\"eds-dropdown__list__item__text\"\n aria-label={ariaValuesSelectAll().label}\n >\n {selectAllItem?.label}\n </span>\n </>\n );\n\n const isReactComponent = (icon: any): icon is React.ComponentType<any> => {\n return (\n typeof icon === 'function' ||\n (typeof icon === 'object' &&\n icon !== null &&\n '$$typeof' in icon &&\n typeof icon.$$typeof === 'symbol')\n );\n };\n\n const listItemContent = (item: NormalizedDropdownItemType<ValueType>) => {\n return (\n <>\n {isMultiselect && (\n <Checkbox\n aria-hidden=\"true\"\n checked={isItemSelected(item)}\n className=\"eds-dropdown__list__item__checkbox\"\n tabIndex={-1}\n onChange={() => undefined}\n />\n )}\n <span className=\"eds-dropdown__list__item__text\">\n {item.label}\n <VisuallyHidden>\n {isItemSelected(item) ? ariaLabelSelectedItem : ''}\n </VisuallyHidden>\n </span>\n {Array.isArray(item.icons)\n ? item.icons.filter(isReactComponent).map((Icon, index) => {\n const key = `${\n Icon.displayName ?? Icon.name ?? Icon.name\n }-${index}`;\n return (\n <Icon\n key={key}\n inline\n className=\"eds-dropdown__list__item__icon\"\n />\n );\n })\n : null}\n </>\n );\n };\n\n return (\n // use popover from @entur/tooltip when that package upgrades to floating-ui\n <ul\n {...getMenuProps({\n 'aria-multiselectable': isMultiselect,\n ref: setListRef,\n className: 'eds-dropdown__list',\n style: {\n ...floatingStyles,\n display: isOpen && !readOnly ? undefined : 'none',\n ...rest.style,\n },\n })}\n >\n {(() => {\n if (!isOpen || readOnly) {\n return null;\n }\n\n if (loading) {\n return (\n <li\n key=\"dropdown-list-loading\"\n className=\"eds-dropdown__list__item\"\n >\n {loadingText}\n </li>\n );\n }\n\n if (isNoMatches) {\n return (\n <li\n key=\"dropdown-list-no-match\"\n className=\"eds-dropdown__list__item\"\n >\n {noMatchesText}\n </li>\n );\n }\n\n return listItems.map((item, index) => {\n const key =\n item.itemKey ??\n `${item.label ?? ''}-${item.value ?? ''}-${(item.icons ?? [])\n .map(icon => icon?.displayName ?? icon?.name ?? 'unknown')\n .join('-')}`;\n const itemIsSelectAll = item.value === selectAllItem?.value;\n if (itemIsSelectAll && listItems.length <= 2) return null;\n return (\n <li\n className={classNames('eds-dropdown__list__item', {\n 'eds-dropdown__list__item--select-all': itemIsSelectAll,\n 'eds-dropdown__list__item--highlighted':\n highlightedIndex === index,\n 'eds-dropdown__list__item--selected':\n !isMultiselect && isItemSelected(item),\n })}\n key={key}\n {...getItemProps({\n // @ts-expect-error Since getItemProps expects the same item type\n // here as items, it throws error when selectAllItem is a string.\n // This does, however, not cause any functional issues.\n item,\n index,\n 'aria-selected': itemIsSelectAll\n ? ariaValuesSelectAll().selected\n : isItemSelected(item),\n })}\n >\n {itemIsSelectAll\n ? selectAllListItemContent()\n : listItemContent(\n item as NormalizedDropdownItemType<ValueType>,\n )}\n </li>\n );\n });\n })()}\n </ul>\n );\n};\n","import React, { forwardRef } from 'react';\nimport classNames from 'classnames';\nimport {\n UseComboboxGetToggleButtonPropsReturnValue,\n UseMultipleSelectionGetSelectedItemPropsOptions,\n} from 'downshift';\n\nimport { IconButton } from '@entur/button';\nimport { TagChip } from '@entur/chip';\nimport { CloseSmallIcon, DownArrowIcon } from '@entur/icons';\nimport { LoadingDots } from '@entur/loader';\nimport { Tooltip } from '@entur/tooltip';\n\nimport { NormalizedDropdownItemType } from '../types';\n\nimport './FieldComponents.scss';\n\nexport const SelectedItemTag = <ValueType extends NonNullable<any>>({\n ariaLabelRemoveSelected,\n ariaLabelChosen = 'valgt',\n disabled,\n getSelectedItemProps,\n index,\n readOnly,\n removeSelectedItem,\n selectedItem,\n}: {\n ariaLabelRemoveSelected: string;\n ariaLabelChosen?: string;\n disabled?: boolean;\n getSelectedItemProps?: (\n options: UseMultipleSelectionGetSelectedItemPropsOptions<\n NormalizedDropdownItemType<ValueType>\n >,\n ) => any;\n index?: number;\n readOnly?: boolean;\n removeSelectedItem: (item: NormalizedDropdownItemType<ValueType>) => void;\n selectedItem: NormalizedDropdownItemType<ValueType>;\n}) => {\n const { tabIndex: _, ...selectedItemProps } =\n getSelectedItemProps?.({\n selectedItem,\n index,\n }) ?? {};\n return (\n <TagChip\n size=\"small\"\n className={classNames('eds-dropdown__selected-item-tag', {\n 'eds-dropdown__selected-item-tag--readonly': readOnly,\n 'eds-dropdown__selected-item-tag--disabled': disabled,\n })}\n {...selectedItemProps}\n onClose={(e: React.MouseEvent<HTMLButtonElement>) => {\n e.stopPropagation();\n removeSelectedItem(selectedItem);\n }}\n onClick={(e: React.MouseEvent) => e.stopPropagation()}\n closeButtonAriaLabel={`${selectedItem.label} ${ariaLabelChosen}, ${ariaLabelRemoveSelected} `}\n key={selectedItem.value}\n aria-live=\"polite\"\n >\n <span\n aria-hidden=\"true\"\n className=\"eds-dropdown__selected-item-tag__text\"\n >\n {selectedItem.label}\n </span>\n </TagChip>\n );\n};\n\ntype FieldAppendProps = Partial<UseComboboxGetToggleButtonPropsReturnValue> & {\n ariaLabelCloseList: string;\n ariaLabelOpenList: string;\n clearable?: boolean;\n labelClearSelected: string;\n disabled?: boolean;\n focusable?: boolean;\n isOpen: boolean;\n loading: boolean;\n loadingText: string | undefined;\n onClear: () => void;\n itemIsSelected: boolean;\n};\n\nexport const DropdownFieldAppendix = forwardRef(\n (\n {\n ariaLabelCloseList,\n ariaLabelOpenList,\n clearable = false,\n labelClearSelected,\n focusable = false,\n disabled,\n isOpen,\n loading = false,\n loadingText,\n onClear,\n itemIsSelected,\n ...rest\n }: FieldAppendProps,\n ref: React.ForwardedRef<HTMLButtonElement>,\n ) => {\n function getToggleAriaLabel() {\n if (loading) return loadingText;\n if (isOpen) return ariaLabelCloseList;\n return ariaLabelOpenList;\n }\n\n return (\n <>\n {!disabled && (\n <div className=\"eds-dropdown__appendix\">\n {clearable && itemIsSelected && (\n <ClearableButton\n onClear={onClear}\n focusable={true}\n labelClearSelectedItems={labelClearSelected}\n />\n )}\n\n <IconButton\n className={classNames('eds-dropdown__appendix__toggle-button', {\n 'eds-dropdown__appendix__toggle-button--open': isOpen,\n })}\n ref={ref}\n aria-label={getToggleAriaLabel()}\n {...rest}\n type=\"button\"\n tabIndex={focusable ? 0 : -1}\n >\n {!loading ? (\n <DownArrowIcon aria-hidden=\"true\" />\n ) : (\n <LoadingDots aria-hidden=\"true\" />\n )}\n </IconButton>\n </div>\n )}\n </>\n );\n },\n);\n\nexport const ClearableButton = ({\n onClear,\n labelClearSelectedItems = 'Fjern valgte',\n focusable = false,\n}: {\n onClear: () => void;\n labelClearSelectedItems?: string;\n focusable?: boolean;\n ariaLabelClearItems?: string;\n}) => {\n return (\n <>\n <Tooltip\n aria-hidden=\"true\"\n placement=\"top\"\n content={labelClearSelectedItems}\n className=\"eds-dropdown__appendix__clear-button__tooltip\"\n >\n <IconButton\n className=\"eds-dropdown__appendix__clear-button\"\n type=\"button\"\n tabIndex={focusable ? 0 : -1}\n // These events bubble up to the Dropdown container and trigger openMenu.\n // To avoid this, stopPropagation and preventDefault are added.\n onClick={e => {\n e.stopPropagation();\n onClear();\n }}\n onKeyDown={e => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n e.stopPropagation();\n onClear();\n }\n }}\n aria-label={labelClearSelectedItems}\n >\n <CloseSmallIcon aria-hidden=\"true\" />\n </IconButton>\n </Tooltip>\n <div className=\"eds-dropdown__appendix__divider\" />\n </>\n );\n};\n","import React from 'react';\n\nimport { DropdownItemType, NormalizedDropdownItemType } from './types';\n\nexport const useNormalizedItems = <ValueType = string>(\n items: DropdownItemType<ValueType>[],\n): NormalizedDropdownItemType<ValueType>[] =>\n React.useMemo(\n () =>\n items.map(item => {\n if (typeof item == 'string') {\n return {\n value: item as ValueType,\n label: item,\n };\n }\n\n if (item?.value === undefined) {\n return {\n ...item,\n value: item.label as ValueType,\n };\n }\n return { ...item, value: item.value };\n }),\n [items],\n );\n","import React from 'react';\n\nimport { useDebounce } from '@entur/utils';\n\nimport { useNormalizedItems } from './useNormalizedItems';\n\nimport {\n PotentiallyAsyncDropdownItemType,\n DropdownItemType,\n NormalizedDropdownItemType,\n AsyncDropdownItemType,\n} from './types';\n\nexport const useResolvedItems = <ValueType extends NonNullable<any>>(\n /** The list of items, or an async function that resolves the list of items */\n itemsOrItemsResolver: PotentiallyAsyncDropdownItemType<ValueType>,\n /** The time to wait after the input changes to the fetchItems method is called */\n debounceTimeout = 250,\n): {\n fetchItems: (query?: string) => void;\n loading: boolean;\n items: NormalizedDropdownItemType<ValueType>[];\n} => {\n const itemsIsAFunction = typeof itemsOrItemsResolver === 'function';\n\n const [items, setItems] = React.useState<DropdownItemType<ValueType>[]>(\n itemsIsAFunction ? [] : itemsOrItemsResolver,\n );\n const [loading, setLoading] = React.useState(false);\n\n const abortControllerRef = React.useRef<AbortController>(\n new AbortController(),\n );\n\n // We normalize the itemsResolver argument to an async function, so we\n // can use it without thinking about the differences later\n const itemsResolver = React.useMemo(() => {\n if (itemsIsAFunction)\n return itemsOrItemsResolver as AsyncDropdownItemType<ValueType>;\n return () =>\n Promise.resolve(itemsOrItemsResolver as DropdownItemType<ValueType>[]);\n }, [itemsOrItemsResolver, itemsIsAFunction]);\n\n // This should be called whenever the input value changes\n const updateItems = async (inputValue?: string) => {\n // The abortController handles cleanup of the previous request and unmounting\n if (abortControllerRef?.current) abortControllerRef?.current?.abort();\n const abortController = new AbortController();\n abortControllerRef.current = abortController;\n\n setLoading(true);\n\n try {\n const resolvedItems = await itemsResolver(\n inputValue ?? '',\n abortControllerRef,\n );\n\n if (abortControllerRef?.current?.signal?.aborted) {\n console.warn(\n 'Avbryt den asynkrone funksjonen din med signalet fra AbortController-en for å for å unngå minnelekkasje.',\n 'Funksjonen bør kaste en DOMException med navnet \"AbortError\" når den avbrytes.',\n '',\n '\\n\\nSe eksempel her: https://linje.entur.no/komponenter/skjemaelementer/dropdown#s%C3%B8kbar-dropdown-med-valg-fra-nettverkskall-bassert-p%C3%A5-tekstinput',\n '\\nLes mer om AbortController her: https://developer.mozilla.org/en-US/docs/Web/API/AbortController',\n );\n return;\n }\n\n setLoading(false);\n setItems(resolvedItems);\n } catch (error) {\n if (\n error &&\n typeof error === 'object' &&\n 'name' in error &&\n error.name === 'AbortError'\n ) {\n // Stop execution if the request was aborted\n return;\n }\n console.warn(\n 'The following error was received but not handled inside Entur Designsystems useResolvedItems hook:',\n );\n throw error;\n }\n };\n\n const debouncedFetchItems = useDebounce(updateItems, debounceTimeout);\n const normalizedItems = useNormalizedItems(items);\n\n React.useEffect(() => {\n // send abort signal to previous request on unmount for cleanup\n return () => abortControllerRef?.current?.abort('Component unmounted');\n }, []);\n\n React.useEffect(() => {\n // Let's fetch the list initially if it's specified\n if (itemsIsAFunction) {\n debouncedFetchItems('');\n }\n }, [itemsIsAFunction, itemsResolver]);\n\n return {\n items: normalizedItems,\n loading: itemsIsAFunction ? loading : false,\n fetchItems: debouncedFetchItems,\n };\n};\n","import { UseComboboxState } from 'downshift';\nimport { NormalizedDropdownItemType } from './types';\n\n// Redeclare forwardRef\ndeclare module 'react' {\n function forwardRef<T, P = object>(\n render: (props: P, ref: React.Ref<T>) => React.ReactElement | null,\n ): (props: P & React.RefAttributes<T>) => React.ReactElement | null;\n}\n\n/* start general utils */\nexport const EMPTY_INPUT = '';\n\nexport function lowerCaseFilterTest(\n item: NormalizedDropdownItemType<any>,\n input: string | undefined,\n) {\n if (!input) {\n return true;\n }\n const sanitizeEscapeCharacters = input.replace(\n /[-/\\\\^$*+?.()|[\\]{}]/g,\n '\\\\$&',\n );\n const inputRegex = new RegExp(sanitizeEscapeCharacters, 'i');\n return inputRegex.test(item.label);\n}\n\nexport function noFilter<ValueType>(\n //@ts-expect-error only here to comply with dropdown filter API\n item: NormalizedDropdownItemType<ValueType>,\n //@ts-expect-error only here to comply with dropdown filter API\n input: string | undefined,\n) {\n return true;\n}\n\nexport const itemToString = (item: NormalizedDropdownItemType<any> | null) =>\n item ? item.label : '';\n\nexport const itemToKey = (item: NormalizedDropdownItemType<any> | null) =>\n item?.label + item?.value;\n\nexport const isFunctionWithQueryArgument = (object: any) =>\n typeof object === 'function' && object.length > 0;\n\nexport const clamp = (val: number, min = 1, max = 10) =>\n Math.min(Math.max(val, min), max);\n\n/* end general utils */\n/* start multiselect utils */\n\ntype useMultiselectUtilsType<ValueType> = {\n selectedItems: NormalizedDropdownItemType<ValueType>[];\n listItems: NormalizedDropdownItemType<ValueType | string>[];\n selectAll: NormalizedDropdownItemType<string>;\n};\n\nexport const useMultiselectUtils = <ValueType>({\n listItems,\n selectedItems,\n selectAll,\n}: useMultiselectUtilsType<ValueType>) => {\n const hasSelectedItems = selectedItems.length > 0;\n\n const listItemsWithoutSelectAll = listItems.filter(\n item => item.value !== selectAll.value,\n ) as NormalizedDropdownItemType<ValueType>[];\n\n const unselectedItemsInListItems = listItemsWithoutSelectAll.filter(\n listItem =>\n !selectedItems.some(\n selectedItem => selectedItem.value === listItem.value,\n ),\n );\n\n const allListItemsAreSelected = !listItemsWithoutSelectAll.some(\n listItem =>\n !selectedItems.some(\n selectedItem => selectedItem.value === listItem.value,\n ),\n );\n\n const someListItemsAreSelected = listItemsWithoutSelectAll.some(listItem =>\n selectedItems.some(selectedItem => selectedItem.value === listItem.value),\n );\n\n const addClickedItemToSelectedItems = (\n clickedItem: NormalizedDropdownItemType<ValueType>,\n onChange: (value: NormalizedDropdownItemType<ValueType>[]) => void,\n ) => onChange([...selectedItems, clickedItem]);\n\n const clickedItemIsInSelectedItems = (\n clickedItem: NormalizedDropdownItemType<ValueType>,\n ) =>\n selectedItems.some(\n selectedItem => selectedItem.value === clickedItem.value,\n );\n\n const clickedItemIsSelectAll = (\n clickedItem: NormalizedDropdownItemType<string | ValueType>,\n ): clickedItem is NormalizedDropdownItemType<string> =>\n clickedItem.value === selectAll.value;\n\n const handleListItemClicked = ({\n clickedItem,\n onChange,\n }: {\n clickedItem: NormalizedDropdownItemType<any>;\n onChange: (value: NormalizedDropdownItemType<ValueType>[]) => void;\n }) => {\n if (clickedItemIsSelectAll(clickedItem)) {\n if (allListItemsAreSelected) {\n return unselectAllListItems(onChange);\n }\n return selectAllUnselectedItemsInListItems(onChange);\n }\n\n if (clickedItemIsInSelectedItems(clickedItem)) {\n return removeClickedItemFromSelectedItems(clickedItem, onChange);\n }\n addClickedItemToSelectedItems(clickedItem, onChange);\n };\n\n const removeClickedItemFromSelectedItems = (\n clickedItem: NormalizedDropdownItemType<ValueType>,\n onChange: (value: NormalizedDropdownItemType<ValueType>[]) => void,\n ) =>\n onChange(\n selectedItems.filter(\n selectedItem => selectedItem.value !== clickedItem.value,\n ),\n );\n\n const selectAllCheckboxState = () => {\n if (allListItemsAreSelected) return true;\n if (someListItemsAreSelected) return 'indeterminate';\n return false;\n };\n\n const selectAllUnselectedItemsInListItems = (\n onChange: (value: NormalizedDropdownItemType<ValueType>[]) => void,\n ) => {\n onChange([...selectedItems, ...unselectedItemsInListItems]);\n };\n\n const unselectAllListItems = (\n onChange: (value: NormalizedDropdownItemType<ValueType>[]) => void,\n ) => {\n const selectedItemsWithoutItemsInListItems = selectedItems.filter(\n selectedItem =>\n !listItemsWithoutSelectAll.some(\n listItem => listItem.value === selectedItem.value,\n ),\n );\n onChange(selectedItemsWithoutItemsInListItems);\n };\n\n return {\n addClickedItemToSelectedItems,\n allListItemsAreSelected,\n clickedItemIsInSelectedItems,\n clickedItemIsSelectAll,\n handleListItemClicked,\n hasSelectedItems,\n listItemsWithoutSelectAll,\n removeClickedItemFromSelectedItems,\n selectAllCheckboxState,\n selectAllUnselectedItemsInListItems,\n someListItemsAreSelected,\n unselectAllListItems,\n };\n};\n\n/* end multiselect utils */\n/* start a11y utils */\n\n// called when the state changes:\n// selectedItem, highlightedIndex, inputValue or isOpen.\nexport function getA11yStatusMessage<ValueType>(\n options: UseComboboxState<NormalizedDropdownItemType<ValueType>> & {\n selectAllItemIncluded?: boolean;\n resultCount: number;\n },\n): string {\n const { isOpen, selectAllItemIncluded = false, resultCount } = options;\n\n if (!isOpen) {\n return '';\n }\n\n const resultCountWithoutSelectAll = selectAllItemIncluded\n ? resultCount - 1\n : resultCount;\n\n if (resultCountWithoutSelectAll === 0) {\n return 'Ingen resultater';\n }\n\n return `${resultCountWithoutSelectAll} resultat${\n resultCountWithoutSelectAll === 1 ? '' : 'er'\n } tilgjengelig, naviger med pil opp eller ned, velg elementer med Enter.`;\n}\n/* end a11y utils */\n","/* eslint-disable no-warning-comments */\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\nimport {\n UseComboboxState,\n UseComboboxStateChangeOptions,\n useCombobox,\n} from 'downshift';\nimport classNames from 'classnames';\nimport {\n useFloating,\n autoUpdate,\n offset,\n flip,\n shift,\n size,\n} from '@floating-ui/react-dom';\n\nimport { BaseFormControl } from '@entur/form';\nimport { space } from '@entur/tokens';\nimport { mergeRefs } from '@entur/utils';\n\nimport { DropdownList } from './components/DropdownList';\nimport { DropdownFieldAppendix } from './components/FieldComponents';\n\nimport { DropdownProps } from './Dropdown';\nimport { useResolvedItems } from './useResolvedItems';\nimport {\n clamp,\n EMPTY_INPUT,\n getA11yStatusMessage,\n isFunctionWithQueryArgument,\n itemToString,\n lowerCaseFilterTest,\n noFilter,\n} from './utils';\n\nimport { NormalizedDropdownItemType } from './types';\n\nimport './Dropdown.scss';\n\nexport type SearchableDropdownProps<ValueType> = DropdownProps<ValueType> & {\n /** Filtreringen som brukes når man skriver inn tekst i inputfeltet\n * @default Regex-test som sjekker om item.label inneholder input-teksten\n */\n itemFilter?: (\n item: NormalizedDropdownItemType<ValueType>,\n inputValue: string | undefined,\n ) => boolean;\n /** Antall millisekunder man venter etter tekstinput før det gjøres kall for å oppdatere items\n * Denne er kun relevant hvis du sender inn en funksjon som items.\n */\n debounceTimeout?: number;\n /** Tekst som kommer opp når det ikke er noe treff på filtreringsøket\n * @default \"Ingen treff for søket\"\n */\n noMatchesText?: string;\n /** Tekst for skjermleser som beskriver statusen til et element som valgt\n * @default \", valgt element, trykk for å fjerne\"\n */\n};\n\nexport const SearchableDropdown = React.forwardRef(\n <ValueType extends NonNullable<any>>(\n {\n ariaLabelChosenSingular,\n ariaLabelCloseList = 'Lukk liste med valg',\n ariaLabelOpenList = 'Åpne liste med valg',\n ariaLabelSelectedItem,\n className,\n clearable = true,\n debounceTimeout,\n disabled = false,\n disableLabelAnimation = false,\n feedback,\n items: initialItems,\n itemFilter = isFunctionWithQueryArgument(initialItems)\n ? noFilter\n : lowerCaseFilterTest,\n label,\n labelClearSelectedItem = 'fjern valgt',\n labelTooltip,\n listStyle,\n loading,\n loadingText = 'Laster resultater …',\n noMatchesText = 'Ingen tilgjengelige valg …',\n onChange = () => undefined,\n placeholder,\n prepend,\n readOnly = false,\n selectedItem: value,\n selectOnBlur = false,\n selectOnTab = false,\n style,\n variant = 'info',\n ...rest\n }: SearchableDropdownProps<ValueType>,\n ref: React.ForwardedRef<HTMLInputElement>,\n ) => {\n const [showSelectedItem, setShowSelectedItem] = useState(value !== null);\n const [lastHighlightedIndex, setLastHighlightedIndex] = useState(0);\n const inputRef = useRef<HTMLInputElement>(null);\n\n const {\n items: normalizedItems,\n loading: resolvedItemsLoading,\n fetchItems,\n } = useResolvedItems(initialItems, debounceTimeout);\n\n const [listItems, setListItems] = useState(normalizedItems);\n\n const filterListItems = ({ inputValue }: { inputValue: string }) =>\n setListItems(\n normalizedItems.filter(item => itemFilter(item, inputValue)),\n );\n\n const updateListItems = ({ inputValue }: { inputValue?: string }) => {\n const shouldRefetchItems = isFunctionWithQueryArgument(initialItems);\n if (shouldRefetchItems) fetchItems(inputValue ?? EMPTY_INPUT);\n\n filterListItems({ inputValue: inputValue ?? EMPTY_INPUT });\n };\n\n const resetInputState = ({\n changes,\n }: {\n changes: Partial<UseComboboxState<NormalizedDropdownItemType<ValueType>>>;\n }) => {\n updateListItems({ inputValue: EMPTY_INPUT });\n return {\n ...changes,\n inputValue: EMPTY_INPUT,\n };\n };\n\n const inputHasFocus =\n typeof document !== 'undefined'\n ? inputRef?.current === document?.activeElement\n : false;\n\n useEffect(() => {\n filterListItems({ inputValue });\n }, [normalizedItems]); // eslint-disable-line react-hooks/exhaustive-deps\n\n useEffect(() => {\n // sync internal state on initial render\n if (selectedItem !== null && !inputHasFocus) {\n setShowSelectedItem(true);\n updateListItems({ inputValue: EMPTY_INPUT });\n setInputValue(EMPTY_INPUT);\n }\n }, []);\n\n const stateReducer = useCallback(\n (\n state: UseComboboxState<NormalizedDropdownItemType<ValueType>>,\n {\n type,\n changes,\n }: UseComboboxStateChangeOptions<NormalizedDropdownItemType<ValueType>>,\n ) => {\n if (\n changes.highlightedIndex !== undefined &&\n changes?.highlightedIndex >= 0\n ) {\n setLastHighlightedIndex(changes?.highlightedIndex);\n }\n\n switch (type) {\n // empty input to show selected item and reset dropdown list on item selection\n case useCombobox.stateChangeTypes.ItemClick:\n case useCombobox.stateChangeTypes.InputKeyDownEnter:\n case useCombobox.stateChangeTypes.InputBlur:\n return resetInputState({ changes });\n case useCombobox.stateChangeTypes.ControlledPropUpdatedSelectedItem:\n if (changes.selectedItem !== null && !inputHasFocus)\n setShowSelectedItem(true);\n return resetInputState({ changes });\n // remove leading whitespace, select element with spacebar on empty input\n case useCombobox.stateChangeTypes.InputChange: {\n const leadingWhitespaceTest = /^\\s+/g;\n const isSpacePressedOnEmptyInput = changes.inputValue === ' ';\n if (!isSpacePressedOnEmptyInput) setLastHighlightedIndex(0);\n\n if (changes.inputValue?.match(leadingWhitespaceTest)) {\n const sanitizedInputValue = changes.inputValue.replace(\n leadingWhitespaceTest,\n EMPTY_INPUT,\n );\n if (isSpacePressedOnEmptyInput) {\n if (!state.isOpen)\n return {\n ...changes,\n inputValue: sanitizedInputValue,\n isOpen: true,\n };\n\n if (changes.highlightedIndex !== undefined) {\n return {\n ...changes,\n inputValue: sanitizedInputValue,\n selectedItem: listItems[changes.highlightedIndex],\n };\n }\n }\n }\n\n return { ...changes, highlightedIndex: 0 };\n }\n default:\n return changes;\n }\n },\n [fetchItems, filterListItems, inputHasFocus, resetInputState],\n );\n\n const {\n isOpen,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getInputProps,\n highlightedIndex,\n getItemProps,\n selectedItem,\n inputValue,\n setInputValue,\n selectItem,\n reset,\n } = useCombobox({\n defaultHighlightedIndex: lastHighlightedIndex,\n items: listItems,\n itemToString,\n selectedItem: value,\n stateReducer,\n onInputValueChange(changes) {\n updateListItems({ inputValue: changes.inputValue });\n },\n onSelectedItemChange({ selectedItem: newSelectedItem }) {\n onChange(newSelectedItem);\n },\n // Accessibility\n getA11yStatusMessage: options =>\n getA11yStatusMessage({ ...options, resultCount: listItems.length }),\n });\n\n // calculations for floating-UI popover position\n const { refs, floatingStyles, update } = useFloating({\n open: isOpen,\n placement: 'bottom-start',\n middleware: [\n offset(space.extraSmall2),\n shift({ padding: space.extraSmall }),\n size({\n apply({ rects, elements, availableHeight }) {\n Object.assign(elements.floating.style, {\n width: `${rects.reference.width}px`,\n // Floating will flip when smaller than 10*16 px\n // and never exceed 20*16 px.\n maxHeight: `${clamp(10 * 16, availableHeight, 20 * 16)}px`,\n });\n },\n }),\n flip({ fallbackStrategy: 'initialPlacement' }),\n ],\n });\n\n // Update floating-ui position on scroll etc. Floating-ui's autoupdate is usually used inside\n // the useFloating hook but this requires the floating element to be conditionally rendered.\n // Downshift doesn't work correctly when conditionally rendered since props and refs aren't correctly\n // spread to the component. We therefor use this useEffect to update position. See https://floating-ui.com/docs/autoupdate#usage\n useEffect(() => {\n if (isOpen && refs.reference.current && refs.floating.current) {\n return autoUpdate(\n refs.reference.current,\n refs.floating.current,\n update,\n );\n }\n }, [isOpen, refs.reference, refs.floating, update]);\n\n const handleOnClear = () => {\n inputRef.current?.focus();\n reset();\n };\n\n return (\n <BaseFormControl\n className={classNames(\n 'eds-dropdown',\n 'eds-dropdown--searchable',\n className,\n { 'eds-dropdown--has-tooltip': labelTooltip !== undefined },\n )}\n disabled={disabled}\n disableLabelAnimation={disableLabelAnimation}\n feedback={feedback}\n isFilled={selectedItem !== null || inputValue !== EMPTY_INPUT}\n label={label}\n labelId={getLabelProps().id}\n labelProps={getLabelProps()}\n labelTooltip={labelTooltip}\n onClick={(e: React.MouseEvent) => {\n if (e.target === e.currentTarget) {\n getInputProps()?.onClick?.(e);\n }\n }}\n prepend={prepend}\n readOnly={readOnly}\n ref={refs.setReference}\n style={style}\n tabIndex={disabled || readOnly ? -1 : undefined}\n variant={variant}\n after={\n <DropdownList\n ariaLabelChosenSingular={ariaLabelChosenSingular}\n ariaLabelSelectedItem={ariaLabelSelectedItem}\n floatingStyles={floatingStyles}\n getItemProps={getItemProps}\n getMenuProps={getMenuProps}\n highlightedIndex={highlightedIndex}\n isOpen={isOpen}\n listItems={listItems}\n style={listStyle}\n setListRef={refs.setFloating}\n loading={loading ?? resolvedItemsLoading}\n loadingText={loadingText}\n noMatchesText={noMatchesText}\n selectedItems={selectedItem !== null ? [selectedItem] : []}\n readOnly={readOnly}\n />\n }\n {...rest}\n // Append is not supported as of now\n append={undefined}\n >\n <span\n className={classNames('eds-dropdown--searchable__selected-item', {\n 'eds-dropdown--searchable__selected-item--hidden':\n !showSelectedItem,\n })}\n onClick={event => {\n if (!disabled && !readOnly) {\n inputRef.current?.focus();\n getInputProps()?.onClick?.(event);\n }\n }}\n tabIndex={readOnly ? 0 : -1}\n >\n {showSelectedItem ? selectedItem?.label : ''}\n </span>\n <input\n className={classNames('eds-dropdown__input eds-form-control', {\n 'eds-dropdown__input--hidden': showSelectedItem,\n })}\n {...getInputProps({\n onKeyDown(e: React.KeyboardEvent) {\n if (isOpen && e.key === 'Tab') {\n const highlitedItem = listItems[highlightedIndex];\n // we don't want to clear selection with tab\n if (\n (selectOnTab || selectOnBlur) &&\n highlitedItem &&\n highlitedItem !== selectedItem\n ) {\n selectItem(highlitedItem);\n }\n }\n },\n onBlur() {\n if (selectedItem !== null) setShowSelectedItem(true);\n },\n onFocus() {\n if (!readOnly) {\n setShowSelectedItem(false);\n }\n },\n disabled: disabled,\n readOnly: readOnly,\n placeholder: selectedItem?.label ?? placeholder,\n tabIndex: disabled || readOnly ? -1 : undefined,\n ref: mergeRefs(inputRef, ref),\n })}\n />\n <DropdownFieldAppendix\n {...getToggleButtonProps({\n 'aria-busy': !(loading ?? resolvedItemsLoading)\n ? undefined\n : 'true',\n })}\n ariaLabelCloseList={ariaLabelCloseList}\n ariaLabelOpenList={ariaLabelOpenList}\n clearable={clearable}\n disabled={disabled || readOnly}\n onClear={handleOnClear}\n focusable={false}\n labelClearSelected={labelClearSelectedItem}\n isOpen={isOpen}\n itemIsSelected={selectedItem !== null}\n loadingText={loadingText}\n loading={loading ?? resolvedItemsLoading}\n />\n </BaseFormControl>\n );\n },\n);\n","import React, {\n Dispatch,\n SetStateAction,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport classNames from 'classnames';\nimport {\n useMultipleSelection,\n useCombobox,\n UseComboboxStateChangeOptions,\n UseComboboxState,\n} from 'downshift';\nimport {\n useFloating,\n autoUpdate,\n offset,\n flip,\n shift,\n size,\n} from '@floating-ui/react-dom';\n\nimport { VisuallyHidden } from '@entur/a11y';\nimport { BaseFormControl } from '@entur/form';\nimport { space } from '@entur/tokens';\nimport { mergeRefs, useRandomId } from '@entur/utils';\n\nimport {\n DropdownFieldAppendix,\n SelectedItemTag,\n} from './components/FieldComponents';\nimport { DropdownList } from './components/DropdownList';\n\nimport { useResolvedItems } from './useResolvedItems';\nimport { DropdownProps } from './Dropdown';\nimport {\n clamp,\n EMPTY_INPUT,\n getA11yStatusMessage,\n isFunctionWithQueryArgument,\n itemToKey,\n itemToString,\n lowerCaseFilterTest,\n noFilter,\n useMultiselectUtils,\n} from './utils';\n\nimport { NormalizedDropdownItemType } from './types';\n\nimport './Dropdown.scss';\n\nexport type MultiSelectProps<ValueType> = Omit<\n DropdownProps<ValueType>,\n 'selectedItem' | 'onChange'\n> & {\n /** Elementer som er valgt blant 'items'. Bruk tom liste for ingen valgte\n */\n selectedItems: NormalizedDropdownItemType<ValueType>[];\n /** Callback med alle valgte verdier.\n * Bruk denne til å oppdatere selectedItems-listen */\n onChange?: (\n selectedItems: NormalizedDropdownItemType<ValueType>[],\n ) => void | Dispatch<SetStateAction<NormalizedDropdownItemType<ValueType>[]>>;\n /** Filtreringen som brukes når man skriver inn tekst i inputfeltet\n * @default Regex-test som sjekker om item.label inneholder input-teksten\n */\n itemFilter?: (\n item: NormalizedDropdownItemType<ValueType>,\n inputValue: string | undefined,\n ) => boolean;\n /** Skjuler «Velg alle» fra listen med valg\n * @default false\n */\n hideSelectAll?: boolean;\n /** Antall millisekunder man venter før man kaller en potensiell items-funksjon\n * @default 250\n */\n debounceTimeout?: number;\n /** Maks antall individuelle valgt-element-tags i MultiSelect-en før de blir til en samle-tag\n * @default 10\n */\n maxChips?: number;\n /** Resetter input etter at et element er valgt i listen\n * @default false\n */\n clearInputOnSelect?: boolean;\n /** Teksten som vises for «Velg alle»-elementet i listen\n * @default \"Velg alle\"\n */\n labelSelectAll?: string;\n /** Teksten som vises for «Velg alle»-elementet i listen\n * @default \"Alle valgt\"\n */\n labelAllItemsSelected?: string;\n /** Skjermleser-tekst som for å fjerne alle valg\n * @default \"Fjern valgte\"\n */\n labelClearAllItems?: string;\n /** Tekst for skjemleser på knapper for å fjerne valgt element\n * @default \"trykk for å fjerne valg\"\n */\n ariaLabelRemoveSelected?: string;\n /** Tekst for skjemleser for å indikere at et element er valgt\n * @default \"valgte\"\n */\n ariaLabelChosenPlural?: string;\n /** Tekst for skjemleser for å hoppe til input-feltet\n * @default `${selectedItems.length} valgte elementer, trykk for å hoppe til tekstfeltet`\n */\n ariaLabelJumpToInput?: string;\n};\n\nexport const MultiSelect = React.forwardRef(\n <ValueType extends NonNullable<any>>(\n {\n className,\n clearable = true,\n clearInputOnSelect = false,\n debounceTimeout,\n disabled = false,\n disableLabelAnimation,\n feedback,\n hideSelectAll = false,\n items: initialItems,\n itemFilter = isFunctionWithQueryArgument(initialItems)\n ? noFilter\n : lowerCaseFilterTest,\n label,\n labelAllItemsSelected = 'Alle valgt',\n labelClearAllItems = 'Fjern valgte',\n labelSelectAll = 'Velg alle',\n labelTooltip,\n listStyle,\n loading,\n loadingText = 'Laster resultater …',\n maxChips = 10,\n noMatchesText,\n onChange = () => undefined,\n placeholder,\n readOnly = false,\n selectedItems = [],\n selectOnBlur = false,\n selectOnTab = false,\n style,\n variant = 'information',\n ariaLabelChosenSingular,\n ariaLabelChosenPlural = 'valgte',\n ariaLabelCloseList = 'Lukk liste med valg',\n ariaLabelJumpToInput = `${selectedItems.length} valgte elementer, trykk for å hoppe til tekstfeltet`,\n ariaLabelOpenList = 'Åpne liste med valg',\n ariaLabelRemoveSelected = 'trykk for å fjerne valg',\n ariaLabelSelectedItem,\n ...rest\n }: MultiSelectProps<ValueType>,\n ref: React.ForwardedRef<HTMLInputElement>,\n ) => {\n const [lastHighlightedIndex, setLastHighlightedIndex] = React.useState(0);\n const inputRef = useRef<HTMLInputElement>(null);\n\n useEffect(() => {\n //@ts-expect-error this is done to aid developers debug wrong prop usage\n if (rest.selectedItem !== undefined)\n console.warn(\n \"Incorrect 'selectedItem' prop found, did you mean to use 'selectedItems?\",\n );\n //@ts-expect-error selectedItem should not actually exist in rest\n }, [rest.selectedItem]);\n\n const {\n items: normalizedItems,\n loading: resolvedItemsLoading,\n fetchItems,\n } = useResolvedItems(initialItems, debounceTimeout);\n\n const isAllNonAsyncItemsSelected =\n typeof initialItems !== 'function' &&\n selectedItems.length === normalizedItems.length;\n\n // special 'item' used as Select All entry in the dropdown list\n const selectAll: NormalizedDropdownItemType<string> = {\n value: useRandomId('select-all'),\n label: labelSelectAll,\n };\n // special 'item' used as a replacement selected item tag for when\n // there are more selected element than maxChips\n const summarySelectedItems: NormalizedDropdownItemType<string> =\n React.useMemo(\n () => ({\n value: EMPTY_INPUT,\n label: isAllNonAsyncItemsSelected\n ? labelAllItemsSelected\n : selectedItems.length + ' ' + ariaLabelChosenPlural,\n }),\n [\n isAllNonAsyncItemsSelected,\n selectedItems,\n labelAllItemsSelected,\n ariaLabelChosenPlural,\n ],\n );\n\n const [listItems, setListItems] = useState([\n ...(!hideSelectAll ? [selectAll] : []),\n ...normalizedItems,\n ]);\n\n const filterListItems = ({ inputValue }: { inputValue: string }) =>\n setListItems([\n ...(!hideSelectAll ? [selectAll] : []),\n ...normalizedItems.filter(item => itemFilter(item, inputValue)),\n ]);\n\n const updateListItems = ({ inputValue }: { inputValue?: string }) => {\n const shouldRefetchItems = isFunctionWithQueryArgument(initialItems);\n if (shouldRefetchItems) fetchItems(inputValue ?? EMPTY_INPUT);\n\n filterListItems({ inputValue: inputValue ?? EMPTY_INPUT });\n };\n\n React.useEffect(() => {\n filterListItems({ inputValue });\n }, [normalizedItems]); // eslint-disable-line react-hooks/exhaustive-deps\n\n const {\n hasSelectedItems,\n handleListItemClicked,\n selectAllCheckboxState,\n clickedItemIsInSelectedItems,\n clickedItemIsSelectAll,\n } = useMultiselectUtils<ValueType>({\n listItems,\n selectAll,\n selectedItems,\n });\n\n const {\n getSelectedItemProps,\n getDropdownProps,\n reset,\n removeSelectedItem,\n setSelectedItems,\n } = useMultipleSelection({\n selectedItems,\n // @ts-expect-error prop missing from library types\n itemToString,\n itemToKey,\n onSelectedItemsChange({ selectedItems: newSelectedItems }) {\n onChange(newSelectedItems);\n },\n });\n\n const stateReducer = React.useCallback(\n (\n state: UseComboboxState<NormalizedDropdownItemType<ValueType | string>>,\n {\n changes,\n type,\n }: UseComboboxStateChangeOptions<\n NormalizedDropdownItemType<ValueType | string>\n >,\n ) => {\n if (\n changes.highlightedIndex !== undefined &&\n changes?.highlightedIndex >= 0\n ) {\n setLastHighlightedIndex(changes?.highlightedIndex);\n }\n\n switch (type) {\n // reset input value when leaving input field\n case useCombobox.stateChangeTypes.InputBlur:\n return {\n ...changes,\n inputValue: EMPTY_INPUT,\n };\n // keep menu open and edit input value on item selection\n case useCombobox.stateChangeTypes.InputKeyDownEnter:\n case useCombobox.stateChangeTypes.ItemClick: {\n return {\n ...changes,\n isOpen: true,\n inputValue: clearInputOnSelect\n ? EMPTY_INPUT\n : inputRef?.current?.value ?? EMPTY_INPUT,\n };\n }\n // edit input value when selected items is updated outside component\n case useCombobox.stateChangeTypes.ControlledPropUpdatedSelectedItem: {\n return {\n ...changes,\n inputValue: inputRef?.current?.value ?? EMPTY_INPUT,\n };\n }\n // remove leading whitespace, select item with spacebar if input is empty and filter list items\n case useCombobox.stateChangeTypes.InputChange: {\n const leadingWhitespaceTest = /^\\s+/g;\n const isSpacePressedOnEmptyInput = changes.inputValue === ' ';\n if (changes.inputValue?.match(leadingWhitespaceTest)) {\n const sanitizedInputValue = changes.inputValue.replace(\n leadingWhitespaceTest,\n EMPTY_INPUT,\n );\n if (isSpacePressedOnEmptyInput) {\n if (!state.isOpen)\n return {\n ...changes,\n inputValue: sanitizedInputValue,\n isOpen: true,\n };\n\n if (changes.highlightedIndex !== undefined) {\n return {\n ...changes,\n inputValue: sanitizedInputValue,\n selectedItem: listItems[changes.highlightedIndex],\n };\n }\n }\n }\n\n return changes;\n }\n default:\n return changes;\n }\n },\n [hideSelectAll, normalizedItems, filterListItems, initialItems],\n );\n\n const {\n getInputProps,\n getItemProps,\n getLabelProps,\n getMenuProps,\n getToggleButtonProps,\n highlightedIndex,\n setHighlightedIndex,\n inputValue,\n isOpen,\n setInputValue,\n } = useCombobox({\n defaultHighlightedIndex: lastHighlightedIndex, // after selection, highlight previously selected item.\n items: listItems,\n itemToString,\n selectedItem: null,\n stateReducer,\n onInputValueChange(changes) {\n updateListItems({ inputValue: changes.inputValue });\n // set highlighted item to first item after search\n setHighlightedIndex(hideSelectAll ? 0 : 1);\n setLastHighlightedIndex(hideSelectAll ? 0 : 1);\n },\n onSelectedItemChange({ selectedItem: clickedItem }) {\n // clickedItem means item chosen either via mouse or keyboard\n if (!clickedItem) return;\n\n handleListItemClicked({\n clickedItem,\n onChange: setSelectedItems,\n });\n },\n // Accessibility\n getA11yStatusMessage: options =>\n getA11yStatusMessage({\n ...options,\n selectAllItemIncluded: !hideSelectAll,\n resultCount: listItems.length,\n }),\n ...rest,\n });\n\n // calculations for floating-UI popover position\n const { refs, floatingStyles, update } = useFloating({\n open: isOpen,\n placement: 'bottom-start',\n middleware: [\n offset(space.extraSmall2),\n shift({ padding: space.extraSmall }),\n size({\n apply({ rects, elements, availableHeight }) {\n Object.assign(elements.floating.style, {\n width: `${rects.reference.width}px`,\n // Floating will flip when smaller than 10*16 px\n // and never exceed 20*16 px.\n maxHeight: `${clamp(10 * 16, availableHeight, 20 * 16)}px`,\n });\n },\n }),\n flip({ fallbackStrategy: 'initialPlacement' }),\n ],\n });\n\n // Update floating-ui position on scroll etc. Floating-ui's autoupdate is usually used inside\n // the useFloating hook but this requires the floating element to be conditionally rendered.\n // Downshift doesn't work correctly when conditionally rendered since props and refs aren't correctly\n // spread to the component. We therefor use this useEffect to update position. See https://floating-ui.com/docs/autoupdate#usage\n useEffect(() => {\n if (isOpen && refs.reference.current && refs.floating.current) {\n return autoUpdate(\n refs.reference.current,\n refs.floating.current,\n update,\n );\n }\n }, [isOpen, refs.reference, refs.floating, update]);\n\n const handleOnClear = () => {\n inputRef.current?.focus();\n reset();\n };\n\n return (\n <BaseFormControl\n className={classNames(\n 'eds-dropdown',\n 'eds-dropdown--multiselect',\n className,\n { 'eds-dropdown--has-tooltip': labelTooltip !== undefined },\n )}\n disabled={disabled}\n disableLabelAnimation={disableLabelAnimation}\n feedback={feedback}\n isFilled={hasSelectedItems || inputValue !== EMPTY_INPUT}\n label={label}\n labelId={getLabelProps().id}\n labelProps={getLabelProps()}\n labelTooltip={labelTooltip}\n onBlur={() => setInputValue('')}\n onClick={(e: React.MouseEvent) => {\n if (e.target === e.currentTarget) {\n getInputProps()?.onClick?.(e);\n }\n }}\n readOnly={readOnly}\n ref={refs.setReference}\n style={style}\n variant={variant}\n after={\n <DropdownList\n ariaLabelChosenSingular={ariaLabelChosenSingular}\n ariaLabelSelectedItem={ariaLabelSelectedItem}\n floatingStyles={floatingStyles}\n getItemProps={getItemProps}\n getMenuProps={getMenuProps}\n highlightedIndex={highlightedIndex}\n isOpen={isOpen}\n listItems={listItems}\n style={listStyle}\n setListRef={refs.setFloating}\n loading={loading ?? resolvedItemsLoading}\n loadingText={loadingText}\n noMatchesText={noMatchesText}\n selectAllCheckboxState={selectAllCheckboxState}\n selectAllItem={selectAll}\n selectedItems={selectedItems}\n readOnly={readOnly}\n />\n }\n {...rest}\n >\n <div\n className={classNames(\n 'eds-dropdown--multiselect__selected-items-and-input',\n {\n 'eds-dropdown--multiselect__selected-items-and-input--filled':\n hasSelectedItems,\n },\n )}\n >\n {selectedItems.length > 1 ? (\n <VisuallyHidden onClick={inputRef.current?.focus}>\n {ariaLabelJumpToInput}\n </VisuallyHidden>\n ) : null}\n {selectedItems.length <= maxChips ? (\n selectedItems.map((selectedItem, index) => (\n <SelectedItemTag\n ariaLabelChosen={ariaLabelChosenSingular}\n ariaLabelRemoveSelected={ariaLabelRemoveSelected}\n disabled={disabled}\n getSelectedItemProps={getSelectedItemProps}\n index={index}\n key={\n selectedItem?.label +\n (typeof selectedItem?.value === 'string'\n ? selectedItem.value\n : '')\n }\n readOnly={readOnly}\n removeSelectedItem={() => {\n removeSelectedItem(selectedItem);\n inputRef?.current?.focus();\n }}\n selectedItem={selectedItem}\n />\n ))\n ) : (\n <SelectedItemTag\n ariaLabelRemoveSelected={labelClearAllItems}\n ariaLabelChosen=\"\"\n disabled={disabled}\n readOnly={readOnly}\n removeSelectedItem={handleOnClear}\n selectedItem={summarySelectedItems}\n />\n )}\n <input\n {...getInputProps({\n onKeyDown: (e: React.KeyboardEvent) => {\n if (selectOnTab && isOpen && e.key === 'Tab') {\n const highlitedItem = listItems[highlightedIndex];\n if (!highlitedItem) return;\n\n // Skip tab selection for select all or if item already is selected\n const shouldSkipTabSelection =\n clickedItemIsSelectAll(highlitedItem) ||\n (!clickedItemIsSelectAll(highlitedItem) &&\n clickedItemIsInSelectedItems(highlitedItem));\n\n if (shouldSkipTabSelection) return;\n\n handleListItemClicked({\n clickedItem: highlitedItem,\n onChange: setSelectedItems,\n });\n }\n },\n ...getDropdownProps({\n preventKeyAction: isOpen,\n value: inputValue ?? EMPTY_INPUT,\n ref: mergeRefs(inputRef, ref),\n }),\n className: 'eds-dropdown__input eds-form-control',\n disabled: readOnly || disabled,\n placeholder: placeholder,\n tabIndex: disabled || readOnly ? -1 : undefined,\n })}\n />\n </div>\n <DropdownFieldAppendix\n {...getToggleButtonProps({\n 'aria-busy': !(loading ?? resolvedItemsLoading)\n ? undefined\n : 'true',\n })}\n ariaLabelCloseList={ariaLabelCloseList}\n ariaLabelOpenList={ariaLabelOpenList}\n clearable={clearable}\n disabled={disabled || readOnly}\n onClear={handleOnClear}\n focusable={false}\n labelClearSelected={labelClearAllItems}\n isOpen={isOpen}\n itemIsSelected={selectedItems.length > 0}\n loadingText={loadingText}\n loading={loading ?? resolvedItemsLoading}\n />\n </BaseFormControl>\n );\n },\n);\n","import React, { Dispatch, SetStateAction, useEffect } from 'react';\nimport classNames from 'classnames';\nimport { useSelect } from 'downshift';\nimport {\n autoUpdate,\n flip,\n offset,\n shift,\n size,\n useFloating,\n} from '@floating-ui/react-dom';\n\nimport { BaseFormControl } from '@entur/form';\nimport { space } from '@entur/tokens';\nimport { mergeRefs, VariantType } from '@entur/utils';\n\nimport { DropdownList } from './components/DropdownList';\nimport { DropdownFieldAppendix } from './components/FieldComponents';\nimport { useResolvedItems } from './useResolvedItems';\nimport { clamp, itemToString } from './utils';\n\nimport {\n NormalizedDropdownItemType,\n PotentiallyAsyncDropdownItemType,\n} from './types';\n\nimport './Dropdown.scss';\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n/** @deprecated use variant=\"negative\" instead */\nconst error = 'error';\n\nexport type DropdownProps<ValueType> = {\n /** Tilgjengelige valg i dropdown-en */\n items: PotentiallyAsyncDropdownItemType<ValueType>;\n /** Valgt verdi. Bruk null for ingen verdi. */\n selectedItem: NormalizedDropdownItemType<ValueType> | null;\n /** Callback ved valg som skal oppdatere selectedItem */\n onChange?: (\n selectedItem: NormalizedDropdownItemType<ValueType> | null,\n ) => void | Dispatch<\n SetStateAction<NormalizedDropdownItemType<ValueType> | null>\n >;\n /** Beskrivende tekst som forklarer feltet */\n label: string;\n /** Placeholder-tekst når ingenting er satt */\n placeholder?: string;\n /** Om man skal ha mulighet for å nullstille Dropdown-en\n * @default false\n */\n clearable?: boolean;\n /** Lar brukeren velge ved å \"tab-e\" seg ut av komponenten */\n selectOnTab?: boolean;\n /**\n * @deprecated\n * Bruk selectOnTab i stedet\n *\n * Lar brukeren velge ved å \"tab-e\" seg ut av komponenten */\n selectOnBlur?: boolean;\n /** Deaktiver dropdown-en */\n disabled?: boolean;\n /** Setter dropdown-en i read-only modus */\n readOnly?: boolean;\n /** Hvilken valideringsvariant som gjelder */\n variant?: VariantType | typeof error | typeof info;\n /** Valideringsmelding, brukes sammen med `variant` */\n feedback?: string;\n /** Tekst eller ikon som kommer først i dropdown-feltet */\n prepend?: React.ReactNode;\n /** */\n loading?: boolean;\n /** En tekst som beskriver hva som skjer når man venter på items\n * @default 'Laster inn …'\n */\n loadingText?: string;\n /** Tekst som kommer opp når det ikke er noe elementer å vise\n * @default \"Ingen tilgjengelige valg …\"\n */\n noMatchesText?: string;\n /** Om man skal ha mulighet for å nullstille Dropdown-en\n * @default \"fjern valgt\"\n */\n labelClearSelectedItem?: string;\n /** En tooltip som gir ekstra info om inputfeltet */\n labelTooltip?: React.ReactNode;\n /** Plasserer labelen statisk på toppen av inputfeltet\n * @default false\n */\n disableLabelAnimation?: boolean;\n /** Ekstra klassenavn */\n className?: string;\n /** Styling som sendes ned til Dropdown-lista */\n listStyle?: { [key: string]: any };\n /** Styling for Dropdown-en */\n style?: { [key: string]: any };\n /** Tekst for skjemleser for knapp som lukker listen med valg\n * @default \"Lukk liste med valg\"\n */\n ariaLabelCloseList?: string;\n /** Tekst for skjemleser for knapp som åpner listen med valg\n * @default \"Åpne liste med valg\"\n */\n ariaLabelOpenList?: string;\n /** Ord for at et element er valgt i entall\n * eks. 'Element 1, _valgt_'\n * @default 'valgt'\n */\n ariaLabelChosenSingular?: string;\n /** Tekst for skjermleser som beskriver statusen til et element som valgt\n * @default ', valgt element, trykk for å fjerne'\n */\n ariaLabelSelectedItem?: string;\n};\n\nexport const Dropdown = React.forwardRef(\n <ValueType extends NonNullable<any>>(\n {\n ariaLabelChosenSingular,\n ariaLabelCloseList = 'Lukk liste med valg',\n ariaLabelOpenList = 'Åpne liste med valg',\n ariaLabelSelectedItem,\n className,\n clearable = false,\n disabled = false,\n disableLabelAnimation,\n feedback,\n items: initialItems,\n label,\n labelClearSelectedItem = 'fjern valgt',\n labelTooltip,\n listStyle,\n loading,\n loadingText = 'Laster resultater …',\n noMatchesText = 'Ingen tilgjengelige valg …',\n onChange,\n placeholder,\n prepend,\n readOnly = false,\n selectedItem,\n selectOnBlur = false,\n selectOnTab = false,\n style,\n variant = 'information',\n ...rest\n }: DropdownProps<ValueType>,\n ref: React.ForwardedRef<HTMLDivElement>,\n ) => {\n const { items: normalizedItems, loading: resolvedItemsLoading } =\n useResolvedItems(initialItems);\n const isFilled = selectedItem !== null || placeholder !== undefined;\n const {\n isOpen,\n getItemProps,\n getLabelProps,\n getMenuProps,\n getToggleButtonProps,\n highlightedIndex,\n selectItem,\n reset,\n } = useSelect({\n items: normalizedItems,\n defaultHighlightedIndex: selectedItem ? undefined : 0,\n selectedItem,\n stateReducer(_, { changes, type }) {\n const toggleButtonIsFocused =\n typeof document !== 'undefined' &&\n document.activeElement === refs.reference.current;\n\n switch (type) {\n case useSelect.stateChangeTypes.ToggleButtonKeyDownArrowDown:\n case useSelect.stateChangeTypes.ToggleButtonKeyDownArrowUp:\n if (!toggleButtonIsFocused) return { ...changes, isOpen: false };\n }\n return changes;\n },\n onStateChange({ type, selectedItem: newSelectedItem }) {\n switch (type) {\n case useSelect.stateChangeTypes.ToggleButtonBlur:\n if (!selectOnBlur) return;\n }\n if (newSelectedItem === undefined) return;\n onChange?.(newSelectedItem ?? null);\n },\n itemToString,\n });\n\n // calculations for floating-UI popover position\n const { refs, floatingStyles, update } = useFloating<HTMLDivElement>({\n open: isOpen,\n placement: 'bottom-start',\n middleware: [\n offset(space.extraSmall2),\n shift({ padding: space.extraSmall }),\n size({\n apply({ rects, elements, availableHeight }) {\n Object.assign(elements.floating.style, {\n width: `${rects.reference.width}px`,\n // Floating will flip when smaller than 10*16 px\n // and never exceed 20*16 px.\n maxHeight: `${clamp(10 * 16, availableHeight, 20 * 16)}px`,\n });\n },\n }),\n flip({ fallbackStrategy: 'initialPlacement' }),\n ],\n });\n\n // Update floating-ui position on scroll etc. Floating-ui's autoupdate is usually used inside\n // the useFloating hook but this requires the floating element to be conditionally rendered.\n // Downshift doesn't work correctly when conditionally rendered since props and refs aren't correctly\n // spread to the component. We therefor use this useEffect to update position. See https://floating-ui.com/docs/autoupdate#usage\n useEffect(() => {\n if (isOpen && refs.reference.current && refs.floating.current) {\n return autoUpdate(\n refs.reference.current,\n refs.floating.current,\n update,\n );\n }\n }, [isOpen, refs.reference, refs.floating, update]);\n\n const handleOnClear = () => {\n reset();\n refs.reference.current?.focus();\n };\n\n return (\n <BaseFormControl\n className={classNames('eds-dropdown', className, {\n 'eds-dropdown--has-tooltip': labelTooltip !== undefined,\n })}\n disableLabelAnimation={disableLabelAnimation}\n feedback={feedback}\n isFilled={isFilled}\n labelProps={getLabelProps()}\n labelTooltip={labelTooltip}\n prepend={prepend}\n style={style}\n variant={variant}\n {...getToggleButtonProps({\n ref: mergeRefs(ref, refs.setReference),\n 'aria-disabled': disabled,\n 'aria-label': disabled ? 'Disabled dropdown' : '',\n disabled: disabled,\n readOnly: readOnly,\n label: label,\n labelId: getLabelProps()?.id,\n children: undefined,\n tabIndex: disabled || readOnly ? -1 : 0,\n onKeyDown(e) {\n if (isOpen && e.key === 'Tab') {\n const highlitedItem = normalizedItems[highlightedIndex];\n // we don't want to clear selection with tab\n if (\n (selectOnTab || selectOnBlur) &&\n highlitedItem &&\n highlitedItem !== selectedItem\n ) {\n selectItem(highlitedItem);\n }\n }\n },\n })}\n after={\n <DropdownList\n ariaLabelChosenSingular={ariaLabelChosenSingular}\n ariaLabelSelectedItem={ariaLabelSelectedItem}\n floatingStyles={floatingStyles}\n getItemProps={getItemProps}\n getMenuProps={getMenuProps}\n highlightedIndex={highlightedIndex}\n isOpen={isOpen}\n listItems={normalizedItems}\n noMatchesText={noMatchesText}\n style={listStyle}\n setListRef={refs.setFloating}\n loading={loading ?? resolvedItemsLoading}\n loadingText={loadingText}\n selectedItems={selectedItem !== null ? [selectedItem] : []}\n readOnly={readOnly}\n />\n }\n {...rest}\n // Append is not supported as of now\n append={undefined}\n >\n <div className=\"eds-dropdown__selected-item\">\n {selectedItem?.label ?? (\n <div\n className={classNames(\n 'eds-dropdown__selected-item__placeholder',\n {\n 'eds-dropdown__selected-item__placeholder--readonly':\n readOnly,\n },\n )}\n >\n {placeholder}\n </div>\n )}\n </div>\n <DropdownFieldAppendix\n aria-busy={!(loading ?? resolvedItemsLoading) ? undefined : 'true'}\n aria-expanded={isOpen}\n clearable={clearable}\n onClear={handleOnClear}\n disabled={disabled || readOnly}\n focusable={false}\n labelClearSelected={labelClearSelectedItem}\n isOpen={isOpen}\n itemIsSelected={selectedItem !== null}\n ariaLabelCloseList={ariaLabelCloseList}\n ariaLabelOpenList={ariaLabelOpenList}\n loading={false}\n loadingText={undefined}\n />\n </BaseFormControl>\n );\n },\n);\n","import React, { forwardRef } from 'react';\nimport { BaseFormControl } from '@entur/form';\nimport { DownArrowIcon } from '@entur/icons';\nimport { LoadingDots } from '@entur/loader';\nimport { useRandomId, VariantType } from '@entur/utils';\n\nimport { useResolvedItems } from './useResolvedItems';\nimport {\n NormalizedDropdownItemType,\n PotentiallyAsyncDropdownItemType,\n} from './types';\n\nimport './Dropdown.scss';\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n/** @deprecated use variant=\"negative\" instead */\nconst error = 'error';\n\nexport type NativeDropdownProps<ValueType> = {\n /** Ekstra klassenavn */\n className?: string;\n /**\n * For å deaktivere dropdow-nen\n * @default false\n **/\n disabled?: boolean;\n /** Valideringsmelding, brukes sammen med `variant` */\n feedback?: string;\n /** Alle valg for dropdown-en å ha */\n items: PotentiallyAsyncDropdownItemType<ValueType>;\n /** Beskrivende tekst som forklarer feltet */\n label: string;\n /** En callback for endringer av value\n * Obs: merk at parameter her denne ikke er samme som i en HTML select.\n * Bruk { target } hvis du trenger info om select-elementet som ble trykket på\n */\n onChange?: ({\n value,\n selectedItem,\n target,\n }: {\n value: string;\n selectedItem: NormalizedDropdownItemType<ValueType> | null;\n target: EventTarget & HTMLSelectElement;\n }) => void;\n /** Tekst eller ikon som kommer før dropdown-en */\n prepend?: React.ReactNode;\n /**\n * Setter dropdown-en i read-only modus\n * @default false\n **/\n readOnly?: boolean;\n /** Den valgte verdien som NormalizedDropdownItemType\n * (Brukes når komponenten er 'controlled')\n */\n selectedItem?: NormalizedDropdownItemType<ValueType> | null;\n /** Den valgte verdien som sting\n * (Brukes når komponenten er 'controlled)\n */\n value?: string;\n /** Hvilken valideringsvariant som gjelder*/\n variant?: VariantType | typeof error | typeof info;\n /** Plasserer labelen statisk på toppen av inputfeltet\n * @default false\n */\n disableLabelAnimation?: boolean;\n [key: string]: any;\n};\n\nexport const NativeDropdown = forwardRef(\n <ValueType extends string | number>(\n {\n className,\n disabled = false,\n disableLabelAnimation,\n feedback,\n items,\n label,\n loadingText,\n onChange,\n prepend,\n readOnly = false,\n selectedItem,\n style,\n value,\n variant,\n ...rest\n }: NativeDropdownProps<ValueType>,\n ref: React.ForwardedRef<HTMLSelectElement>,\n ) => {\n const { items: normalizedItems, loading } =\n useResolvedItems<ValueType>(items);\n const nativeDropdownId = useRandomId('eds-dropdown-native');\n\n return (\n <BaseFormControl\n disabled={disabled}\n readOnly={readOnly}\n prepend={prepend}\n append={\n <FieldAppend\n hidden={disabled || readOnly}\n loading={loading}\n loadingText={loadingText}\n />\n }\n className={className}\n style={style}\n label={label}\n labelId={nativeDropdownId}\n variant={variant}\n feedback={feedback}\n disableLabelAnimation={disableLabelAnimation}\n isFilled={true}\n >\n <select\n aria-invalid={variant === 'negative' || variant === error}\n aria-labelledby={nativeDropdownId}\n aria-busy={loading}\n className=\"eds-form-control eds-dropdown--native\"\n disabled={disabled || readOnly}\n onChange={event => {\n onChange?.({\n value: event.target.value,\n selectedItem:\n normalizedItems.find(\n item => item.value === event.target.value,\n ) ?? null,\n target: event.target,\n });\n }}\n value={value ?? selectedItem?.value ?? undefined}\n ref={ref}\n {...rest}\n >\n {normalizedItems.map(item => (\n <option key={item.value} value={item.value}>\n {item.label}\n </option>\n ))}\n </select>\n </BaseFormControl>\n );\n },\n);\n\nconst FieldAppend = ({\n loading,\n loadingText,\n hidden,\n}: {\n loading: boolean;\n loadingText?: string;\n hidden: boolean;\n}) => {\n if (loading) {\n return (\n <div className=\"eds-dropdown-native__loading-dots\">\n <LoadingDots aria-label={loadingText} />\n </div>\n );\n }\n if (hidden) {\n return <></>;\n }\n return <DownArrowIcon inline />;\n};\n","import { warnAboutMissingStyles } from '@entur/utils';\nimport './index.scss';\n\nwarnAboutMissingStyles('dropdown', 'form', 'a11y', 'chip');\n\nexport type { NormalizedDropdownItemType, DropdownItemType } from './types';\n\nexport * from './SearchableDropdown';\nexport * from './MultiSelect';\nexport * from './Dropdown';\nexport * from './NativeDropdown';\nexport * from './types';\n"],"names":["r","e","t","n","o","setPrototypeOf","l","reactIs_production_min","Element","Fragment","isElement","reactIs_development","reactIsModule","require$$0","require$$1","has","error","require$$2","require$$3","require$$4","i","checker","isNode","propTypesModule","s","d","h","a","g","p","W","T","B","V","__assign","noop","compute","getA11yStatusMessage","offset","isItemDisabled","index","validateControlledUnchanged","Downshift","itemToString","onMouseDown","onMouseUp","onTouchStart","onTouchMove","onTouchEnd","stateReducer","isForwardRef","document","React","useElementIds","useLatestRef","isStateEqual","state","action","defaultStateValues","itemToKey","useGetterPropsCalledChecker","useControlPropsValidator","stateChangeTypes","scrollIntoView","labelHandleClick","menuHandleMouseLeave","toggleButtonHandleClick","toggleButtonHandleBlur","toggleButtonHandleKeyDown","itemHandleMouseMove","itemHandleClick","itemHandleMouseDown","validatePropTypes","inputHandleKeyDown","inputHandleChange","inputHandleBlur","inputHandleClick","selectedItemHandleClick","selectedItemHandleKeyDown","dropdownHandleKeyDown","dropdownHandleClick","classNames","clamp","computePosition","platform","flip","side","placement","overflow","shift","x","y","min","max","size","getComputedStyle","offset$1","shift$1","flip$1","size$1","data","inputValue"],"mappings":";;;;;;;;;;;;;AAAA,SAAS,8BAA8BA,IAAGC,IAAG;AAC3C,MAAI,QAAQD,GAAG,QAAO,CAAA;AACtB,MAAIE,KAAI,CAAA;AACR,WAASC,MAAKH,GAAG,KAAI,CAAA,EAAG,eAAe,KAAKA,IAAGG,EAAC,GAAG;AACjD,QAAIF,GAAE,SAASE,EAAC,EAAG;AACnB,IAAAD,GAAEC,EAAC,IAAIH,GAAEG,EAAC;AAAA,EACZ;AACA,SAAOD;AACT;ACRA,SAAS,WAAW;AAClB,SAAO,WAAW,OAAO,SAAS,OAAO,OAAO,KAAI,IAAK,SAAUC,IAAG;AACpE,aAASF,KAAI,GAAGA,KAAI,UAAU,QAAQA,MAAK;AACzC,UAAIC,KAAI,UAAUD,EAAC;AACnB,eAASD,MAAKE,GAAG,EAAC,CAAA,GAAI,eAAe,KAAKA,IAAGF,EAAC,MAAMG,GAAEH,EAAC,IAAIE,GAAEF,EAAC;AAAA,IAChE;AACA,WAAOG;AAAA,EACT,GAAG,SAAS,MAAM,MAAM,SAAS;AACnC;ACRA,SAAS,gBAAgBD,IAAGD,IAAG;AAC7B,SAAO,kBAAkB,OAAO,iBAAiB,OAAO,eAAe,KAAI,IAAK,SAAUC,IAAGD,IAAG;AAC9F,WAAOC,GAAE,YAAYD,IAAGC;AAAA,EAC1B,GAAG,gBAAgBA,IAAGD,EAAC;AACzB;ACHA,SAAS,eAAeC,IAAGE,IAAG;AAC5B,EAAAF,GAAE,YAAY,OAAO,OAAOE,GAAE,SAAS,GAAGF,GAAE,UAAU,cAAcA,IAAGG,gBAAeH,IAAGE,EAAC;AAC5F;;;;;;;;;;;;;;;;;;;ACMa,MAAI,IAAE,eAAa,OAAO,UAAQ,OAAO,KAAI,IAAE,IAAE,OAAO,IAAI,eAAe,IAAE,OAAM,IAAE,IAAE,OAAO,IAAI,cAAc,IAAE,OAAMH,KAAE,IAAE,OAAO,IAAI,gBAAgB,IAAE,OAAM,IAAE,IAAE,OAAO,IAAI,mBAAmB,IAAE,OAAM,IAAE,IAAE,OAAO,IAAI,gBAAgB,IAAE,OAAM,IAAE,IAAE,OAAO,IAAI,gBAAgB,IAAE,OAAM,IAAE,IAAE,OAAO,IAAI,eAAe,IAAE,OAAMK,KAAE,IAAE,OAAO,IAAI,kBAAkB,IAAE,OAAM,IAAE,IAAE,OAAO,IAAI,uBAAuB,IAAE,OAAMH,KAAE,IAAE,OAAO,IAAI,mBAAmB,IAAE,OAAM,IAAE,IAAE,OAAO,IAAI,gBAAgB,IAAE,OAAM,IAAE,IACpf,OAAO,IAAI,qBAAqB,IAAE,OAAMH,KAAE,IAAE,OAAO,IAAI,YAAY,IAAE,OAAME,KAAE,IAAE,OAAO,IAAI,YAAY,IAAE,OAAM,IAAE,IAAE,OAAO,IAAI,aAAa,IAAE,OAAM,IAAE,IAAE,OAAO,IAAI,mBAAmB,IAAE,OAAM,IAAE,IAAE,OAAO,IAAI,iBAAiB,IAAE,OAAM,IAAE,IAAE,OAAO,IAAI,aAAa,IAAE;AAClQ,WAAS,EAAE,GAAE;AAAC,QAAG,aAAW,OAAO,KAAG,SAAO,GAAE;AAAC,UAAI,IAAE,EAAE;AAAS,cAAO,GAAC;AAAA,QAAE,KAAK;AAAE,kBAAO,IAAE,EAAE,MAAK,GAAC;AAAA,YAAE,KAAKI;AAAA,YAAE,KAAK;AAAA,YAAE,KAAKL;AAAA,YAAE,KAAK;AAAA,YAAE,KAAK;AAAA,YAAE,KAAK;AAAE,qBAAO;AAAA,YAAE;AAAQ,sBAAO,IAAE,KAAG,EAAE,UAAS,GAAC;AAAA,gBAAE,KAAK;AAAA,gBAAE,KAAKE;AAAA,gBAAE,KAAKD;AAAA,gBAAE,KAAKF;AAAA,gBAAE,KAAK;AAAE,yBAAO;AAAA,gBAAE;AAAQ,yBAAO;AAAA,cAAC;AAAA,UAAC;AAAA,QAAC,KAAK;AAAE,iBAAO;AAAA,MAAC;AAAA,IAAC;AAAA,EAAC;AAAC,WAAS,EAAE,GAAE;AAAC,WAAO,EAAE,CAAC,MAAI;AAAA,EAAC;AAACO,2BAAA,YAAkBD;AAAEC,2BAAA,iBAAuB;AAAEA,2BAAA,kBAAwB;AAAEA,6CAAwB;AAAEA,2BAAA,UAAgB;AAAEA,2BAAA,aAAmBJ;AAAEI,2BAAA,WAAiBN;AAAEM,2BAAA,OAAaL;AAAEK,kCAAaP;AAAEO,2BAAA,SAAe;AAChfA,2BAAA,WAAiB;AAAEA,2BAAA,aAAmB;AAAEA,2BAAA,WAAiB;AAAEA,2BAAA,cAAoB,SAAS,GAAE;AAAC,WAAO,EAAE,CAAC,KAAG,EAAE,CAAC,MAAID;AAAA,EAAC;AAAEC,2BAAA,mBAAyB;AAAEA,2BAAA,oBAA0B,SAAS,GAAE;AAAC,WAAO,EAAE,CAAC,MAAI;AAAA,EAAC;AAAEA,2BAAA,oBAA0B,SAAS,GAAE;AAAC,WAAO,EAAE,CAAC,MAAI;AAAA,EAAC;AAAEA,2BAAA,YAAkB,SAAS,GAAE;AAAC,WAAM,aAAW,OAAO,KAAG,SAAO,KAAG,EAAE,aAAW;AAAA,EAAC;AAAEA,2BAAA,eAAqB,SAAS,GAAE;AAAC,WAAO,EAAE,CAAC,MAAIJ;AAAA,EAAC;AAAEI,2BAAA,aAAmB,SAAS,GAAE;AAAC,WAAO,EAAE,CAAC,MAAIN;AAAA,EAAC;AAAEM,2BAAA,SAAe,SAAS,GAAE;AAAC,WAAO,EAAE,CAAC,MAAIL;AAAA,EAAC;AAC1dK,2BAAA,SAAe,SAAS,GAAE;AAAC,WAAO,EAAE,CAAC,MAAIP;AAAA,EAAC;AAAEO,sCAAiB,SAAS,GAAE;AAAC,WAAO,EAAE,CAAC,MAAI;AAAA,EAAC;AAAEA,2BAAA,aAAmB,SAAS,GAAE;AAAC,WAAO,EAAE,CAAC,MAAI;AAAA,EAAC;AAAEA,2BAAA,eAAqB,SAAS,GAAE;AAAC,WAAO,EAAE,CAAC,MAAI;AAAA,EAAC;AAAEA,2BAAA,aAAmB,SAAS,GAAE;AAAC,WAAO,EAAE,CAAC,MAAI;AAAA,EAAC;AAC1OA,2BAAA,qBAA2B,SAAS,GAAE;AAAC,WAAM,aAAW,OAAO,KAAG,eAAa,OAAO,KAAG,MAAIN,MAAG,MAAI,KAAG,MAAI,KAAG,MAAI,KAAG,MAAI,KAAG,MAAI,KAAG,aAAW,OAAO,KAAG,SAAO,MAAI,EAAE,aAAWC,MAAG,EAAE,aAAWF,MAAG,EAAE,aAAW,KAAG,EAAE,aAAW,KAAG,EAAE,aAAWG,MAAG,EAAE,aAAW,KAAG,EAAE,aAAW,KAAG,EAAE,aAAW,KAAG,EAAE,aAAW;AAAA,EAAE;AAAEI,2BAAA,SAAe;;;;;;;;;;;;;;;;ACDnU,MAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,KAAC,WAAW;AAKd,UAAI,YAAY,OAAO,WAAW,cAAc,OAAO;AACvD,UAAI,qBAAqB,YAAY,OAAO,IAAI,eAAe,IAAI;AACnE,UAAI,oBAAoB,YAAY,OAAO,IAAI,cAAc,IAAI;AACjE,UAAI,sBAAsB,YAAY,OAAO,IAAI,gBAAgB,IAAI;AACrE,UAAI,yBAAyB,YAAY,OAAO,IAAI,mBAAmB,IAAI;AAC3E,UAAI,sBAAsB,YAAY,OAAO,IAAI,gBAAgB,IAAI;AACrE,UAAI,sBAAsB,YAAY,OAAO,IAAI,gBAAgB,IAAI;AACrE,UAAI,qBAAqB,YAAY,OAAO,IAAI,eAAe,IAAI;AAGnE,UAAI,wBAAwB,YAAY,OAAO,IAAI,kBAAkB,IAAI;AACzE,UAAI,6BAA6B,YAAY,OAAO,IAAI,uBAAuB,IAAI;AACnF,UAAI,yBAAyB,YAAY,OAAO,IAAI,mBAAmB,IAAI;AAC3E,UAAI,sBAAsB,YAAY,OAAO,IAAI,gBAAgB,IAAI;AACrE,UAAI,2BAA2B,YAAY,OAAO,IAAI,qBAAqB,IAAI;AAC/E,UAAI,kBAAkB,YAAY,OAAO,IAAI,YAAY,IAAI;AAC7D,UAAI,kBAAkB,YAAY,OAAO,IAAI,YAAY,IAAI;AAC7D,UAAI,mBAAmB,YAAY,OAAO,IAAI,aAAa,IAAI;AAC/D,UAAI,yBAAyB,YAAY,OAAO,IAAI,mBAAmB,IAAI;AAC3E,UAAI,uBAAuB,YAAY,OAAO,IAAI,iBAAiB,IAAI;AACvE,UAAI,mBAAmB,YAAY,OAAO,IAAI,aAAa,IAAI;AAE/D,eAAS,mBAAmB,MAAM;AAChC,eAAO,OAAO,SAAS,YAAY,OAAO,SAAS;AAAA,QACnD,SAAS,uBAAuB,SAAS,8BAA8B,SAAS,uBAAuB,SAAS,0BAA0B,SAAS,uBAAuB,SAAS,4BAA4B,OAAO,SAAS,YAAY,SAAS,SAAS,KAAK,aAAa,mBAAmB,KAAK,aAAa,mBAAmB,KAAK,aAAa,uBAAuB,KAAK,aAAa,sBAAsB,KAAK,aAAa,0BAA0B,KAAK,aAAa,0BAA0B,KAAK,aAAa,wBAAwB,KAAK,aAAa,oBAAoB,KAAK,aAAa;AAAA,MACplB;AAEA,eAAS,OAAO,QAAQ;AACtB,YAAI,OAAO,WAAW,YAAY,WAAW,MAAM;AACjD,cAAI,WAAW,OAAO;AAEtB,kBAAQ,UAAQ;AAAA,YACd,KAAK;AACH,kBAAI,OAAO,OAAO;AAElB,sBAAQ,MAAI;AAAA,gBACV,KAAK;AAAA,gBACL,KAAK;AAAA,gBACL,KAAK;AAAA,gBACL,KAAK;AAAA,gBACL,KAAK;AAAA,gBACL,KAAK;AACH,yBAAO;AAAA,gBAET;AACE,sBAAI,eAAe,QAAQ,KAAK;AAEhC,0BAAQ,cAAY;AAAA,oBAClB,KAAK;AAAA,oBACL,KAAK;AAAA,oBACL,KAAK;AAAA,oBACL,KAAK;AAAA,oBACL,KAAK;AACH,6BAAO;AAAA,oBAET;AACE,6BAAO;AAAA,kBACvB;AAAA,cAEA;AAAA,YAEM,KAAK;AACH,qBAAO;AAAA,UACf;AAAA,QACA;AAEE,eAAO;AAAA,MACT;AAEA,UAAI,YAAY;AAChB,UAAI,iBAAiB;AACrB,UAAI,kBAAkB;AACtB,UAAI,kBAAkB;AACtB,UAAIC,WAAU;AACd,UAAI,aAAa;AACjB,UAAIC,YAAW;AACf,UAAI,OAAO;AACX,UAAI,OAAO;AACX,UAAI,SAAS;AACb,UAAI,WAAW;AACf,UAAI,aAAa;AACjB,UAAI,WAAW;AACf,UAAI,sCAAsC;AAE1C,eAAS,YAAY,QAAQ;AAC3B;AACE,cAAI,CAAC,qCAAqC;AACxC,kDAAsC;AAEtC,oBAAQ,MAAM,EAAE,+KAAyL;AAAA,UAC/M;AAAA,QACA;AAEE,eAAO,iBAAiB,MAAM,KAAK,OAAO,MAAM,MAAM;AAAA,MACxD;AACA,eAAS,iBAAiB,QAAQ;AAChC,eAAO,OAAO,MAAM,MAAM;AAAA,MAC5B;AACA,eAAS,kBAAkB,QAAQ;AACjC,eAAO,OAAO,MAAM,MAAM;AAAA,MAC5B;AACA,eAAS,kBAAkB,QAAQ;AACjC,eAAO,OAAO,MAAM,MAAM;AAAA,MAC5B;AACA,eAASC,WAAU,QAAQ;AACzB,eAAO,OAAO,WAAW,YAAY,WAAW,QAAQ,OAAO,aAAa;AAAA,MAC9E;AACA,eAAS,aAAa,QAAQ;AAC5B,eAAO,OAAO,MAAM,MAAM;AAAA,MAC5B;AACA,eAAS,WAAW,QAAQ;AAC1B,eAAO,OAAO,MAAM,MAAM;AAAA,MAC5B;AACA,eAAS,OAAO,QAAQ;AACtB,eAAO,OAAO,MAAM,MAAM;AAAA,MAC5B;AACA,eAAS,OAAO,QAAQ;AACtB,eAAO,OAAO,MAAM,MAAM;AAAA,MAC5B;AACA,eAAS,SAAS,QAAQ;AACxB,eAAO,OAAO,MAAM,MAAM;AAAA,MAC5B;AACA,eAAS,WAAW,QAAQ;AAC1B,eAAO,OAAO,MAAM,MAAM;AAAA,MAC5B;AACA,eAAS,aAAa,QAAQ;AAC5B,eAAO,OAAO,MAAM,MAAM;AAAA,MAC5B;AACA,eAAS,WAAW,QAAQ;AAC1B,eAAO,OAAO,MAAM,MAAM;AAAA,MAC5B;AAEAC,4BAAA,YAAoB;AACpBA,4BAAA,iBAAyB;AACzBA,4BAAA,kBAA0B;AAC1BA,4BAAA,kBAA0B;AAC1BA,4BAAA,UAAkBH;AAClBG,4BAAA,aAAqB;AACrBA,4BAAA,WAAmBF;AACnBE,4BAAA,OAAe;AACfA,4BAAA,OAAe;AACfA,4BAAA,SAAiB;AACjBA,4BAAA,WAAmB;AACnBA,4BAAA,aAAqB;AACrBA,4BAAA,WAAmB;AACnBA,4BAAA,cAAsB;AACtBA,4BAAA,mBAA2B;AAC3BA,4BAAA,oBAA4B;AAC5BA,4BAAA,oBAA4B;AAC5BA,4BAAA,YAAoBD;AACpBC,4BAAA,eAAuB;AACvBA,4BAAA,aAAqB;AACrBA,4BAAA,SAAiB;AACjBA,4BAAA,SAAiB;AACjBA,4BAAA,WAAmB;AACnBA,4BAAA,aAAqB;AACrBA,4BAAA,eAAuB;AACvBA,4BAAA,aAAqB;AACrBA,4BAAA,qBAA6B;AAC7BA,4BAAA,SAAiB;AAAA,IACjB,GAAG;AAAA,EACH;;;;;;;AClLA,MAAI,QAAQ,IAAI,aAAa,cAAc;AACzCC,cAAA,UAAiBC,gCAAA;AAAA,EACnB,OAAO;AACLD,cAAA,UAAiBE,6BAAA;AAAA,EACnB;;;;;;;;;;;;;ACEA,MAAI,wBAAwB,OAAO;AACnC,MAAI,iBAAiB,OAAO,UAAU;AACtC,MAAI,mBAAmB,OAAO,UAAU;AAExC,WAAS,SAAS,KAAK;AACtB,QAAI,QAAQ,QAAQ,QAAQ,QAAW;AACtC,YAAM,IAAI,UAAU,uDAAuD;AAAA,IAC7E;AAEC,WAAO,OAAO,GAAG;AAAA,EAClB;AAEA,WAAS,kBAAkB;AAC1B,QAAI;AACH,UAAI,CAAC,OAAO,QAAQ;AACnB,eAAO;AAAA,MACV;AAKE,UAAI,QAAQ,IAAI,OAAO,KAAK;AAC5B,YAAM,CAAC,IAAI;AACX,UAAI,OAAO,oBAAoB,KAAK,EAAE,CAAC,MAAM,KAAK;AACjD,eAAO;AAAA,MACV;AAGE,UAAI,QAAQ,CAAA;AACZ,eAAS,IAAI,GAAG,IAAI,IAAI,KAAK;AAC5B,cAAM,MAAM,OAAO,aAAa,CAAC,CAAC,IAAI;AAAA,MACzC;AACE,UAAI,SAAS,OAAO,oBAAoB,KAAK,EAAE,IAAI,SAAUX,IAAG;AAC/D,eAAO,MAAMA,EAAC;AAAA,MACjB,CAAG;AACD,UAAI,OAAO,KAAK,EAAE,MAAM,cAAc;AACrC,eAAO;AAAA,MACV;AAGE,UAAI,QAAQ,CAAA;AACZ,6BAAuB,MAAM,EAAE,EAAE,QAAQ,SAAU,QAAQ;AAC1D,cAAM,MAAM,IAAI;AAAA,MACnB,CAAG;AACD,UAAI,OAAO,KAAK,OAAO,OAAO,CAAA,GAAI,KAAK,CAAC,EAAE,KAAK,EAAE,MAC/C,wBAAwB;AACzB,eAAO;AAAA,MACV;AAEE,aAAO;AAAA,IACT,SAAU,KAAK;AAEb,aAAO;AAAA,IACT;AAAA,EACA;AAEA,iBAAiB,gBAAe,IAAK,OAAO,SAAS,SAAU,QAAQ,QAAQ;AAC9E,QAAI;AACJ,QAAI,KAAK,SAAS,MAAM;AACxB,QAAI;AAEJ,aAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AAC1C,aAAO,OAAO,UAAU,CAAC,CAAC;AAE1B,eAAS,OAAO,MAAM;AACrB,YAAI,eAAe,KAAK,MAAM,GAAG,GAAG;AACnC,aAAG,GAAG,IAAI,KAAK,GAAG;AAAA,QACtB;AAAA,MACA;AAEE,UAAI,uBAAuB;AAC1B,kBAAU,sBAAsB,IAAI;AACpC,iBAAS,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK;AACxC,cAAI,iBAAiB,KAAK,MAAM,QAAQ,CAAC,CAAC,GAAG;AAC5C,eAAG,QAAQ,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;AAAA,UACrC;AAAA,QACA;AAAA,MACA;AAAA,IACA;AAEC,WAAO;AAAA,EACR;;;;;;;;AChFA,MAAI,uBAAuB;AAE3B,2BAAiB;;;;;;;;ACXjB,QAAiB,SAAS,KAAK,KAAK,OAAO,UAAU,cAAc;;;;;;;;ACSnE,MAAI,eAAe,WAAW;AAAA,EAAA;AAE9B,MAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,QAAI,uBAAuBU,4CAAA;AAC3B,QAAI,qBAAqB,CAAA;AACzB,QAAIE,OAAMD,2BAAA;AAEV,mBAAe,SAAS,MAAM;AAC5B,UAAI,UAAU,cAAc;AAC5B,UAAI,OAAO,YAAY,aAAa;AAClC,gBAAQ,MAAM,OAAO;AAAA,MAC3B;AACI,UAAI;AAIF,cAAM,IAAI,MAAM,OAAO;AAAA,MAC7B,SAAa,GAAG;AAAA,MAAA;AAAA,IAChB;AAAA,EACA;AAaA,WAAS,eAAe,WAAW,QAAQ,UAAU,eAAe,UAAU;AAC5E,QAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,eAAS,gBAAgB,WAAW;AAClC,YAAIC,KAAI,WAAW,YAAY,GAAG;AAChC,cAAIC;AAIJ,cAAI;AAGF,gBAAI,OAAO,UAAU,YAAY,MAAM,YAAY;AACjD,kBAAI,MAAM;AAAA,iBACP,iBAAiB,iBAAiB,OAAO,WAAW,YAAY,eAAe,+FACC,OAAO,UAAU,YAAY,IAAI;AAAA;AAGpH,kBAAI,OAAO;AACX,oBAAM;AAAA,YAClB;AACU,YAAAA,SAAQ,UAAU,YAAY,EAAE,QAAQ,cAAc,eAAe,UAAU,MAAM,oBAAoB;AAAA,UACnH,SAAiB,IAAI;AACX,YAAAA,SAAQ;AAAA,UAClB;AACQ,cAAIA,UAAS,EAAEA,kBAAiB,QAAQ;AACtC;AAAA,eACG,iBAAiB,iBAAiB,6BACnC,WAAW,OAAO,eAAe,6FAC6B,OAAOA,SAAQ;AAAA;UAKzF;AACQ,cAAIA,kBAAiB,SAAS,EAAEA,OAAM,WAAW,qBAAqB;AAGpE,+BAAmBA,OAAM,OAAO,IAAI;AAEpC,gBAAI,QAAQ,WAAW,SAAQ,IAAK;AAEpC;AAAA,cACE,YAAY,WAAW,YAAYA,OAAM,WAAW,SAAS,OAAO,QAAQ;AAAA;UAExF;AAAA,QACA;AAAA,MACA;AAAA,IACA;AAAA,EACA;AAOA,iBAAe,oBAAoB,WAAW;AAC5C,QAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,2BAAqB,CAAA;AAAA,IACzB;AAAA,EACA;AAEA,qBAAiB;;;;;;;;AC7FjB,MAAI,UAAUH,iBAAA;AACd,MAAI,SAASC,oBAAA;AAEb,MAAI,uBAAuBG,4CAAA;AAC3B,MAAIF,OAAMG,2BAAA;AACV,MAAI,iBAAiBC,sCAAA;AAErB,MAAI,eAAe,WAAW;AAAA,EAAA;AAE9B,MAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,mBAAe,SAAS,MAAM;AAC5B,UAAI,UAAU,cAAc;AAC5B,UAAI,OAAO,YAAY,aAAa;AAClC,gBAAQ,MAAM,OAAO;AAAA,MAC3B;AACI,UAAI;AAIF,cAAM,IAAI,MAAM,OAAO;AAAA,MAC7B,SAAa,GAAG;AAAA,MAAA;AAAA,IAChB;AAAA,EACA;AAEA,WAAS,+BAA+B;AACtC,WAAO;AAAA,EACT;AAEA,4BAAiB,SAAS,gBAAgB,qBAAqB;AAE7D,QAAI,kBAAkB,OAAO,WAAW,cAAc,OAAO;AAC7D,QAAI,uBAAuB;AAgB3B,aAAS,cAAc,eAAe;AACpC,UAAI,aAAa,kBAAkB,mBAAmB,cAAc,eAAe,KAAK,cAAc,oBAAoB;AAC1H,UAAI,OAAO,eAAe,YAAY;AACpC,eAAO;AAAA,MACb;AAAA,IACA;AAiDE,QAAI,YAAY;AAIhB,QAAI,iBAAiB;AAAA,MACnB,OAAO,2BAA2B,OAAO;AAAA,MACzC,QAAQ,2BAA2B,QAAQ;AAAA,MAC3C,MAAM,2BAA2B,SAAS;AAAA,MAC1C,MAAM,2BAA2B,UAAU;AAAA,MAC3C,QAAQ,2BAA2B,QAAQ;AAAA,MAC3C,QAAQ,2BAA2B,QAAQ;AAAA,MAC3C,QAAQ,2BAA2B,QAAQ;AAAA,MAC3C,QAAQ,2BAA2B,QAAQ;AAAA,MAE3C,KAAK,qBAAoB;AAAA,MACzB,SAAS;AAAA,MACT,SAAS,yBAAwB;AAAA,MACjC,aAAa,6BAA4B;AAAA,MACzC,YAAY;AAAA,MACZ,MAAM,kBAAiB;AAAA,MACvB,UAAU;AAAA,MACV,OAAO;AAAA,MACP,WAAW;AAAA,MACX,OAAO;AAAA,MACP,OAAO;AAAA;AAQT,aAAS,GAAG,GAAG,GAAG;AAEhB,UAAI,MAAM,GAAG;AAGX,eAAO,MAAM,KAAK,IAAI,MAAM,IAAI;AAAA,MACtC,OAAW;AAEL,eAAO,MAAM,KAAK,MAAM;AAAA,MAC9B;AAAA,IACA;AAUE,aAAS,cAAc,SAAS,MAAM;AACpC,WAAK,UAAU;AACf,WAAK,OAAO,QAAQ,OAAO,SAAS,WAAW,OAAM,CAAA;AACrD,WAAK,QAAQ;AAAA,IACjB;AAEE,kBAAc,YAAY,MAAM;AAEhC,aAAS,2BAA2B,UAAU;AAC5C,UAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,YAAI,0BAA0B,CAAA;AAC9B,YAAI,6BAA6B;AAAA,MACvC;AACI,eAAS,UAAU,YAAY,OAAO,UAAU,eAAe,UAAU,cAAc,QAAQ;AAC7F,wBAAgB,iBAAiB;AACjC,uBAAe,gBAAgB;AAE/B,YAAI,WAAW,sBAAsB;AACnC,cAAI,qBAAqB;AAEvB,gBAAI,MAAM,IAAI;AAAA,cACZ;AAAA;AAIF,gBAAI,OAAO;AACX,kBAAM;AAAA,UAChB,WAAmB,QAAQ,IAAI,aAAa,gBAAgB,OAAO,YAAY,aAAa;AAElF,gBAAI,WAAW,gBAAgB,MAAM;AACrC,gBACE,CAAC,wBAAwB,QAAQ;AAAA,YAEjC,6BAA6B,GAC7B;AACA;AAAA,gBACE,6EACuB,eAAe,gBAAgB,gBAAgB;AAAA;AAKxE,sCAAwB,QAAQ,IAAI;AACpC;AAAA,YACZ;AAAA,UACA;AAAA,QACA;AACM,YAAI,MAAM,QAAQ,KAAK,MAAM;AAC3B,cAAI,YAAY;AACd,gBAAI,MAAM,QAAQ,MAAM,MAAM;AAC5B,qBAAO,IAAI,cAAc,SAAS,WAAW,OAAO,eAAe,8BAA8B,SAAS,gBAAgB,8BAA8B;AAAA,YACpK;AACU,mBAAO,IAAI,cAAc,SAAS,WAAW,OAAO,eAAe,iCAAiC,MAAM,gBAAgB,mCAAmC;AAAA,UACvK;AACQ,iBAAO;AAAA,QACf,OAAa;AACL,iBAAO,SAAS,OAAO,UAAU,eAAe,UAAU,YAAY;AAAA,QAC9E;AAAA,MACA;AAEI,UAAI,mBAAmB,UAAU,KAAK,MAAM,KAAK;AACjD,uBAAiB,aAAa,UAAU,KAAK,MAAM,IAAI;AAEvD,aAAO;AAAA,IACX;AAEE,aAAS,2BAA2B,cAAc;AAChD,eAAS,SAAS,OAAO,UAAU,eAAe,UAAU,cAAc,QAAQ;AAChF,YAAI,YAAY,MAAM,QAAQ;AAC9B,YAAI,WAAW,YAAY,SAAS;AACpC,YAAI,aAAa,cAAc;AAI7B,cAAI,cAAc,eAAe,SAAS;AAE1C,iBAAO,IAAI;AAAA,YACT,aAAa,WAAW,OAAO,eAAe,gBAAgB,MAAM,cAAc,oBAAoB,gBAAgB,mBAAmB,MAAM,eAAe;AAAA,YAC9J,EAAC,aAA0B;AAAA;QAErC;AACM,eAAO;AAAA,MACb;AACI,aAAO,2BAA2B,QAAQ;AAAA,IAC9C;AAEE,aAAS,uBAAuB;AAC9B,aAAO,2BAA2B,4BAA4B;AAAA,IAClE;AAEE,aAAS,yBAAyB,aAAa;AAC7C,eAAS,SAAS,OAAO,UAAU,eAAe,UAAU,cAAc;AACxE,YAAI,OAAO,gBAAgB,YAAY;AACrC,iBAAO,IAAI,cAAc,eAAe,eAAe,qBAAqB,gBAAgB,iDAAiD;AAAA,QACrJ;AACM,YAAI,YAAY,MAAM,QAAQ;AAC9B,YAAI,CAAC,MAAM,QAAQ,SAAS,GAAG;AAC7B,cAAI,WAAW,YAAY,SAAS;AACpC,iBAAO,IAAI,cAAc,aAAa,WAAW,OAAO,eAAe,gBAAgB,MAAM,WAAW,oBAAoB,gBAAgB,wBAAwB;AAAA,QAC5K;AACM,iBAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AACzC,cAAIH,SAAQ,YAAY,WAAW,GAAG,eAAe,UAAU,eAAe,MAAM,IAAI,KAAK,oBAAoB;AACjH,cAAIA,kBAAiB,OAAO;AAC1B,mBAAOA;AAAA,UACjB;AAAA,QACA;AACM,eAAO;AAAA,MACb;AACI,aAAO,2BAA2B,QAAQ;AAAA,IAC9C;AAEE,aAAS,2BAA2B;AAClC,eAAS,SAAS,OAAO,UAAU,eAAe,UAAU,cAAc;AACxE,YAAI,YAAY,MAAM,QAAQ;AAC9B,YAAI,CAAC,eAAe,SAAS,GAAG;AAC9B,cAAI,WAAW,YAAY,SAAS;AACpC,iBAAO,IAAI,cAAc,aAAa,WAAW,OAAO,eAAe,gBAAgB,MAAM,WAAW,oBAAoB,gBAAgB,qCAAqC;AAAA,QACzL;AACM,eAAO;AAAA,MACb;AACI,aAAO,2BAA2B,QAAQ;AAAA,IAC9C;AAEE,aAAS,+BAA+B;AACtC,eAAS,SAAS,OAAO,UAAU,eAAe,UAAU,cAAc;AACxE,YAAI,YAAY,MAAM,QAAQ;AAC9B,YAAI,CAAC,QAAQ,mBAAmB,SAAS,GAAG;AAC1C,cAAI,WAAW,YAAY,SAAS;AACpC,iBAAO,IAAI,cAAc,aAAa,WAAW,OAAO,eAAe,gBAAgB,MAAM,WAAW,oBAAoB,gBAAgB,0CAA0C;AAAA,QAC9L;AACM,eAAO;AAAA,MACb;AACI,aAAO,2BAA2B,QAAQ;AAAA,IAC9C;AAEE,aAAS,0BAA0B,eAAe;AAChD,eAAS,SAAS,OAAO,UAAU,eAAe,UAAU,cAAc;AACxE,YAAI,EAAE,MAAM,QAAQ,aAAa,gBAAgB;AAC/C,cAAI,oBAAoB,cAAc,QAAQ;AAC9C,cAAI,kBAAkB,aAAa,MAAM,QAAQ,CAAC;AAClD,iBAAO,IAAI,cAAc,aAAa,WAAW,OAAO,eAAe,gBAAgB,MAAM,kBAAkB,oBAAoB,gBAAgB,mBAAmB,kBAAkB,oBAAoB,KAAK;AAAA,QACzN;AACM,eAAO;AAAA,MACb;AACI,aAAO,2BAA2B,QAAQ;AAAA,IAC9C;AAEE,aAAS,sBAAsB,gBAAgB;AAC7C,UAAI,CAAC,MAAM,QAAQ,cAAc,GAAG;AAClC,YAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,cAAI,UAAU,SAAS,GAAG;AACxB;AAAA,cACE,iEAAiE,UAAU,SAAS;AAAA;UAGhG,OAAe;AACL,yBAAa,wDAAwD;AAAA,UAC/E;AAAA,QACA;AACM,eAAO;AAAA,MACb;AAEI,eAAS,SAAS,OAAO,UAAU,eAAe,UAAU,cAAc;AACxE,YAAI,YAAY,MAAM,QAAQ;AAC9B,iBAAS,IAAI,GAAG,IAAI,eAAe,QAAQ,KAAK;AAC9C,cAAI,GAAG,WAAW,eAAe,CAAC,CAAC,GAAG;AACpC,mBAAO;AAAA,UACjB;AAAA,QACA;AAEM,YAAI,eAAe,KAAK,UAAU,gBAAgB,SAAS,SAAS,KAAK,OAAO;AAC9E,cAAI,OAAO,eAAe,KAAK;AAC/B,cAAI,SAAS,UAAU;AACrB,mBAAO,OAAO,KAAK;AAAA,UAC7B;AACQ,iBAAO;AAAA,QACf,CAAO;AACD,eAAO,IAAI,cAAc,aAAa,WAAW,OAAO,eAAe,iBAAiB,OAAO,SAAS,IAAI,QAAQ,kBAAkB,gBAAgB,wBAAwB,eAAe,IAAI;AAAA,MACvM;AACI,aAAO,2BAA2B,QAAQ;AAAA,IAC9C;AAEE,aAAS,0BAA0B,aAAa;AAC9C,eAAS,SAAS,OAAO,UAAU,eAAe,UAAU,cAAc;AACxE,YAAI,OAAO,gBAAgB,YAAY;AACrC,iBAAO,IAAI,cAAc,eAAe,eAAe,qBAAqB,gBAAgB,kDAAkD;AAAA,QACtJ;AACM,YAAI,YAAY,MAAM,QAAQ;AAC9B,YAAI,WAAW,YAAY,SAAS;AACpC,YAAI,aAAa,UAAU;AACzB,iBAAO,IAAI,cAAc,aAAa,WAAW,OAAO,eAAe,gBAAgB,MAAM,WAAW,oBAAoB,gBAAgB,yBAAyB;AAAA,QAC7K;AACM,iBAAS,OAAO,WAAW;AACzB,cAAID,KAAI,WAAW,GAAG,GAAG;AACvB,gBAAIC,SAAQ,YAAY,WAAW,KAAK,eAAe,UAAU,eAAe,MAAM,KAAK,oBAAoB;AAC/G,gBAAIA,kBAAiB,OAAO;AAC1B,qBAAOA;AAAA,YACnB;AAAA,UACA;AAAA,QACA;AACM,eAAO;AAAA,MACb;AACI,aAAO,2BAA2B,QAAQ;AAAA,IAC9C;AAEE,aAAS,uBAAuB,qBAAqB;AACnD,UAAI,CAAC,MAAM,QAAQ,mBAAmB,GAAG;AACvC,gBAAQ,IAAI,aAAa,eAAe,aAAa,wEAAwE,IAAI;AACjI,eAAO;AAAA,MACb;AAEI,eAAS,IAAI,GAAG,IAAI,oBAAoB,QAAQ,KAAK;AACnD,YAAI,UAAU,oBAAoB,CAAC;AACnC,YAAI,OAAO,YAAY,YAAY;AACjC;AAAA,YACE,gGACc,yBAAyB,OAAO,IAAI,eAAe,IAAI;AAAA;AAEvE,iBAAO;AAAA,QACf;AAAA,MACA;AAEI,eAAS,SAAS,OAAO,UAAU,eAAe,UAAU,cAAc;AACxE,YAAI,gBAAgB,CAAA;AACpB,iBAASI,KAAI,GAAGA,KAAI,oBAAoB,QAAQA,MAAK;AACnD,cAAIC,WAAU,oBAAoBD,EAAC;AACnC,cAAI,gBAAgBC,SAAQ,OAAO,UAAU,eAAe,UAAU,cAAc,oBAAoB;AACxG,cAAI,iBAAiB,MAAM;AACzB,mBAAO;AAAA,UACjB;AACQ,cAAI,cAAc,QAAQN,KAAI,cAAc,MAAM,cAAc,GAAG;AACjE,0BAAc,KAAK,cAAc,KAAK,YAAY;AAAA,UAC5D;AAAA,QACA;AACM,YAAI,uBAAwB,cAAc,SAAS,IAAK,6BAA6B,cAAc,KAAK,IAAI,IAAI,MAAK;AACrH,eAAO,IAAI,cAAc,aAAa,WAAW,OAAO,eAAe,oBAAoB,MAAM,gBAAgB,MAAM,uBAAuB,IAAI;AAAA,MACxJ;AACI,aAAO,2BAA2B,QAAQ;AAAA,IAC9C;AAEE,aAAS,oBAAoB;AAC3B,eAAS,SAAS,OAAO,UAAU,eAAe,UAAU,cAAc;AACxE,YAAI,CAACO,QAAO,MAAM,QAAQ,CAAC,GAAG;AAC5B,iBAAO,IAAI,cAAc,aAAa,WAAW,OAAO,eAAe,oBAAoB,MAAM,gBAAgB,2BAA2B;AAAA,QACpJ;AACM,eAAO;AAAA,MACb;AACI,aAAO,2BAA2B,QAAQ;AAAA,IAC9C;AAEE,aAAS,sBAAsB,eAAe,UAAU,cAAc,KAAK,MAAM;AAC/E,aAAO,IAAI;AAAA,SACR,iBAAiB,iBAAiB,OAAO,WAAW,YAAY,eAAe,MAAM,MAAM,+FACX,OAAO;AAAA;IAE9F;AAEE,aAAS,uBAAuB,YAAY;AAC1C,eAAS,SAAS,OAAO,UAAU,eAAe,UAAU,cAAc;AACxE,YAAI,YAAY,MAAM,QAAQ;AAC9B,YAAI,WAAW,YAAY,SAAS;AACpC,YAAI,aAAa,UAAU;AACzB,iBAAO,IAAI,cAAc,aAAa,WAAW,OAAO,eAAe,gBAAgB,WAAW,QAAQ,kBAAkB,gBAAgB,wBAAwB;AAAA,QAC5K;AACM,iBAAS,OAAO,YAAY;AAC1B,cAAI,UAAU,WAAW,GAAG;AAC5B,cAAI,OAAO,YAAY,YAAY;AACjC,mBAAO,sBAAsB,eAAe,UAAU,cAAc,KAAK,eAAe,OAAO,CAAC;AAAA,UAC1G;AACQ,cAAIN,SAAQ,QAAQ,WAAW,KAAK,eAAe,UAAU,eAAe,MAAM,KAAK,oBAAoB;AAC3G,cAAIA,QAAO;AACT,mBAAOA;AAAA,UACjB;AAAA,QACA;AACM,eAAO;AAAA,MACb;AACI,aAAO,2BAA2B,QAAQ;AAAA,IAC9C;AAEE,aAAS,6BAA6B,YAAY;AAChD,eAAS,SAAS,OAAO,UAAU,eAAe,UAAU,cAAc;AACxE,YAAI,YAAY,MAAM,QAAQ;AAC9B,YAAI,WAAW,YAAY,SAAS;AACpC,YAAI,aAAa,UAAU;AACzB,iBAAO,IAAI,cAAc,aAAa,WAAW,OAAO,eAAe,gBAAgB,WAAW,QAAQ,kBAAkB,gBAAgB,wBAAwB;AAAA,QAC5K;AAEM,YAAI,UAAU,OAAO,CAAA,GAAI,MAAM,QAAQ,GAAG,UAAU;AACpD,iBAAS,OAAO,SAAS;AACvB,cAAI,UAAU,WAAW,GAAG;AAC5B,cAAID,KAAI,YAAY,GAAG,KAAK,OAAO,YAAY,YAAY;AACzD,mBAAO,sBAAsB,eAAe,UAAU,cAAc,KAAK,eAAe,OAAO,CAAC;AAAA,UAC1G;AACQ,cAAI,CAAC,SAAS;AACZ,mBAAO,IAAI;AAAA,cACT,aAAa,WAAW,OAAO,eAAe,YAAY,MAAM,oBAAoB,gBAAgB,qBACjF,KAAK,UAAU,MAAM,QAAQ,GAAG,MAAM,IAAI,IAC7D,mBAAmB,KAAK,UAAU,OAAO,KAAK,UAAU,GAAG,MAAM,IAAI;AAAA;UAEjF;AACQ,cAAIC,SAAQ,QAAQ,WAAW,KAAK,eAAe,UAAU,eAAe,MAAM,KAAK,oBAAoB;AAC3G,cAAIA,QAAO;AACT,mBAAOA;AAAA,UACjB;AAAA,QACA;AACM,eAAO;AAAA,MACb;AAEI,aAAO,2BAA2B,QAAQ;AAAA,IAC9C;AAEE,aAASM,QAAO,WAAW;AACzB,cAAQ,OAAO,WAAS;AAAA,QACtB,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AACH,iBAAO,CAAC;AAAA,QACV,KAAK;AACH,cAAI,MAAM,QAAQ,SAAS,GAAG;AAC5B,mBAAO,UAAU,MAAMA,OAAM;AAAA,UACvC;AACQ,cAAI,cAAc,QAAQ,eAAe,SAAS,GAAG;AACnD,mBAAO;AAAA,UACjB;AAEQ,cAAI,aAAa,cAAc,SAAS;AACxC,cAAI,YAAY;AACd,gBAAI,WAAW,WAAW,KAAK,SAAS;AACxC,gBAAI;AACJ,gBAAI,eAAe,UAAU,SAAS;AACpC,qBAAO,EAAE,OAAO,SAAS,KAAI,GAAI,MAAM;AACrC,oBAAI,CAACA,QAAO,KAAK,KAAK,GAAG;AACvB,yBAAO;AAAA,gBACvB;AAAA,cACA;AAAA,YACA,OAAiB;AAEL,qBAAO,EAAE,OAAO,SAAS,KAAI,GAAI,MAAM;AACrC,oBAAI,QAAQ,KAAK;AACjB,oBAAI,OAAO;AACT,sBAAI,CAACA,QAAO,MAAM,CAAC,CAAC,GAAG;AACrB,2BAAO;AAAA,kBACzB;AAAA,gBACA;AAAA,cACA;AAAA,YACA;AAAA,UACA,OAAe;AACL,mBAAO;AAAA,UACjB;AAEQ,iBAAO;AAAA,QACT;AACE,iBAAO;AAAA,MACf;AAAA,IACA;AAEE,aAAS,SAAS,UAAU,WAAW;AAErC,UAAI,aAAa,UAAU;AACzB,eAAO;AAAA,MACb;AAGI,UAAI,CAAC,WAAW;AACd,eAAO;AAAA,MACb;AAGI,UAAI,UAAU,eAAe,MAAM,UAAU;AAC3C,eAAO;AAAA,MACb;AAGI,UAAI,OAAO,WAAW,cAAc,qBAAqB,QAAQ;AAC/D,eAAO;AAAA,MACb;AAEI,aAAO;AAAA,IACX;AAGE,aAAS,YAAY,WAAW;AAC9B,UAAI,WAAW,OAAO;AACtB,UAAI,MAAM,QAAQ,SAAS,GAAG;AAC5B,eAAO;AAAA,MACb;AACI,UAAI,qBAAqB,QAAQ;AAI/B,eAAO;AAAA,MACb;AACI,UAAI,SAAS,UAAU,SAAS,GAAG;AACjC,eAAO;AAAA,MACb;AACI,aAAO;AAAA,IACX;AAIE,aAAS,eAAe,WAAW;AACjC,UAAI,OAAO,cAAc,eAAe,cAAc,MAAM;AAC1D,eAAO,KAAK;AAAA,MAClB;AACI,UAAI,WAAW,YAAY,SAAS;AACpC,UAAI,aAAa,UAAU;AACzB,YAAI,qBAAqB,MAAM;AAC7B,iBAAO;AAAA,QACf,WAAiB,qBAAqB,QAAQ;AACtC,iBAAO;AAAA,QACf;AAAA,MACA;AACI,aAAO;AAAA,IACX;AAIE,aAAS,yBAAyB,OAAO;AACvC,UAAI,OAAO,eAAe,KAAK;AAC/B,cAAQ,MAAI;AAAA,QACV,KAAK;AAAA,QACL,KAAK;AACH,iBAAO,QAAQ;AAAA,QACjB,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACH,iBAAO,OAAO;AAAA,QAChB;AACE,iBAAO;AAAA,MACf;AAAA,IACA;AAGE,aAAS,aAAa,WAAW;AAC/B,UAAI,CAAC,UAAU,eAAe,CAAC,UAAU,YAAY,MAAM;AACzD,eAAO;AAAA,MACb;AACI,aAAO,UAAU,YAAY;AAAA,IACjC;AAEE,mBAAe,iBAAiB;AAChC,mBAAe,oBAAoB,eAAe;AAClD,mBAAe,YAAY;AAE3B,WAAO;AAAA,EACT;;;;;;;;ACxlBA,MAAI,uBAAuBT,4CAAA;AAE3B,WAAS,gBAAgB;AAAA,EAAA;AACzB,WAAS,yBAAyB;AAAA,EAAA;AAClC,yBAAuB,oBAAoB;AAE3C,6BAAiB,WAAW;AAC1B,aAAS,KAAK,OAAO,UAAU,eAAe,UAAU,cAAc,QAAQ;AAC5E,UAAI,WAAW,sBAAsB;AAEnC;AAAA,MACN;AACI,UAAI,MAAM,IAAI;AAAA,QACZ;AAAA;AAIF,UAAI,OAAO;AACX,YAAM;AAAA,IACV;AACE,SAAK,aAAa;AAClB,aAAS,UAAU;AACjB,aAAO;AAAA,IACX;AAGE,QAAI,iBAAiB;AAAA,MACnB,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,QAAQ;AAAA,MAER,KAAK;AAAA,MACL,SAAS;AAAA,MACT,SAAS;AAAA,MACT,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,MAAM;AAAA,MACN,UAAU;AAAA,MACV,OAAO;AAAA,MACP,WAAW;AAAA,MACX,OAAO;AAAA,MACP,OAAO;AAAA,MAEP,gBAAgB;AAAA,MAChB,mBAAmB;AAAA;AAGrB,mBAAe,YAAY;AAE3B,WAAO;AAAA,EACT;;;;;;;ACzDA,MAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,QAAI,UAAUA,iBAAA;AAId,QAAI,sBAAsB;AAC1BU,gBAAA,UAAiBT,+CAAA,EAAqC,QAAQ,WAAW,mBAAmB;AAAA,EAC9F,OAAO;AAGLS,gBAAA,UAAiBN,kDAAqC;AAAA,EACxD;;;;;;;;;;;;;;;;;;;;ACTa,MAAI,IAAE,OAAO,IAAI,eAAe,GAAE,IAAE,OAAO,IAAI,cAAc,GAAE,IAAE,OAAO,IAAI,gBAAgB,GAAEhB,KAAE,OAAO,IAAI,mBAAmB,GAAE,IAAE,OAAO,IAAI,gBAAgB,GAAE,IAAE,OAAO,IAAI,gBAAgB,GAAE,IAAE,OAAO,IAAI,eAAe,GAAE,IAAE,OAAO,IAAI,sBAAsB,GAAEK,KAAE,OAAO,IAAI,mBAAmB,GAAE,IAAE,OAAO,IAAI,gBAAgB,GAAEH,KAAE,OAAO,IAAI,qBAAqB,GAAE,IAAE,OAAO,IAAI,YAAY,GAAE,IAAE,OAAO,IAAI,YAAY,GAAED,KAAE,OAAO,IAAI,iBAAiB,GAAE;AAAE,MAAE,OAAO,IAAI,wBAAwB;AAChf,WAAS,EAAE,GAAE;AAAC,QAAG,aAAW,OAAO,KAAG,SAAO,GAAE;AAAC,UAAIF,KAAE,EAAE;AAAS,cAAOA;QAAG,KAAK;AAAE,kBAAO,IAAE,EAAE,MAAK,GAAC;AAAA,YAAE,KAAK;AAAA,YAAE,KAAK;AAAA,YAAE,KAAKC;AAAA,YAAE,KAAK;AAAA,YAAE,KAAKE;AAAE,qBAAO;AAAA,YAAE;AAAQ,sBAAO,IAAE,KAAG,EAAE,UAAS,GAAC;AAAA,gBAAE,KAAK;AAAA,gBAAE,KAAK;AAAA,gBAAE,KAAKG;AAAA,gBAAE,KAAK;AAAA,gBAAE,KAAK;AAAA,gBAAE,KAAK;AAAE,yBAAO;AAAA,gBAAE;AAAQ,yBAAON;AAAA,cAAC;AAAA,UAAC;AAAA,QAAC,KAAK;AAAE,iBAAOA;AAAA,MAAC;AAAA,IAAC;AAAA,EAAC;AAAC,yBAAA,kBAAwB;AAAE,2CAAwB;AAAE,yBAAA,UAAgB;AAAE,yBAAA,aAAmBM;AAAE,yBAAA,WAAiB;AAAE,yBAAA,OAAa;AAAE,yBAAA,OAAa;AAAE,yBAAA,SAAe;AAAE,yBAAA,WAAiB;AAAE,sCAAmBL;AAAE,yBAAA,WAAiB;AAChe,yBAAA,eAAqBE;AAAE,yBAAA,cAAoB,WAAU;AAAC,WAAM;AAAA,EAAE;AAAE,4CAAyB,WAAU;AAAC;EAAQ;AAAE,yBAAA,oBAA0B,SAAS,GAAE;AAAC,WAAO,EAAE,CAAC,MAAI;AAAA,EAAC;AAAE,yBAAA,oBAA0B,SAAS,GAAE;AAAC,WAAO,EAAE,CAAC,MAAI;AAAA,EAAC;AAAE,yBAAA,YAAkB,SAAS,GAAE;AAAC,WAAM,aAAW,OAAO,KAAG,SAAO,KAAG,EAAE,aAAW;AAAA,EAAC;AAAE,yBAAA,eAAqB,SAAS,GAAE;AAAC,WAAO,EAAE,CAAC,MAAIG;AAAA,EAAC;AAAE,yBAAA,aAAmB,SAAS,GAAE;AAAC,WAAO,EAAE,CAAC,MAAI;AAAA,EAAC;AAAE,yBAAA,SAAe,SAAS,GAAE;AAAC,WAAO,EAAE,CAAC,MAAI;AAAA,EAAC;AAAE,yBAAA,SAAe,SAAS,GAAE;AAAC,WAAO,EAAE,CAAC,MAAI;AAAA,EAAC;AACve,yBAAA,WAAiB,SAAS,GAAE;AAAC,WAAO,EAAE,CAAC,MAAI;AAAA,EAAC;AAAE,sCAAmB,SAAS,GAAE;AAAC,WAAO,EAAE,CAAC,MAAI;AAAA,EAAC;AAAE,yBAAA,eAAqB,SAAS,GAAE;AAAC,WAAO,EAAE,CAAC,MAAIL;AAAA,EAAC;AAAE,yBAAA,aAAmB,SAAS,GAAE;AAAC,WAAO,EAAE,CAAC,MAAI;AAAA,EAAC;AAAE,yBAAA,iBAAuB,SAAS,GAAE;AAAC,WAAO,EAAE,CAAC,MAAIE;AAAA,EAAC;AAClP,yBAAA,qBAA2B,SAAS,GAAE;AAAC,WAAM,aAAW,OAAO,KAAG,eAAa,OAAO,KAAG,MAAI,KAAG,MAAI,KAAG,MAAIF,MAAG,MAAI,KAAG,MAAIE,MAAG,MAAID,MAAG,aAAW,OAAO,KAAG,SAAO,MAAI,EAAE,aAAW,KAAG,EAAE,aAAW,KAAG,EAAE,aAAW,KAAG,EAAE,aAAW,KAAG,EAAE,aAAWI,MAAG,EAAE,aAAW,KAAG,WAAS,EAAE,eAAa,OAAG;AAAA,EAAE;AAAE,yBAAA,SAAe;;;;;;;;;;;;;;;;;ACDjT,MAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,KAAC,WAAW;AAOd,UAAI,qBAAqB,OAAO,IAAI,eAAe;AACnD,UAAI,oBAAoB,OAAO,IAAI,cAAc;AACjD,UAAI,sBAAsB,OAAO,IAAI,gBAAgB;AACrD,UAAI,yBAAyB,OAAO,IAAI,mBAAmB;AAC3D,UAAI,sBAAsB,OAAO,IAAI,gBAAgB;AACrD,UAAI,sBAAsB,OAAO,IAAI,gBAAgB;AACrD,UAAI,qBAAqB,OAAO,IAAI,eAAe;AACnD,UAAI,4BAA4B,OAAO,IAAI,sBAAsB;AACjE,UAAI,yBAAyB,OAAO,IAAI,mBAAmB;AAC3D,UAAI,sBAAsB,OAAO,IAAI,gBAAgB;AACrD,UAAI,2BAA2B,OAAO,IAAI,qBAAqB;AAC/D,UAAI,kBAAkB,OAAO,IAAI,YAAY;AAC7C,UAAI,kBAAkB,OAAO,IAAI,YAAY;AAC7C,UAAI,uBAAuB,OAAO,IAAI,iBAAiB;AAIvD,UAAI,iBAAiB;AACrB,UAAI,qBAAqB;AACzB,UAAI,0BAA0B;AAE9B,UAAI,qBAAqB;AAIzB,UAAI,qBAAqB;AAEzB,UAAI;AAEJ;AACE,iCAAyB,OAAO,IAAI,wBAAwB;AAAA,MAC9D;AAEA,eAAS,mBAAmB,MAAM;AAChC,YAAI,OAAO,SAAS,YAAY,OAAO,SAAS,YAAY;AAC1D,iBAAO;AAAA,QACX;AAGE,YAAI,SAAS,uBAAuB,SAAS,uBAAuB,sBAAuB,SAAS,0BAA0B,SAAS,uBAAuB,SAAS,4BAA4B,sBAAuB,SAAS,wBAAwB,kBAAmB,sBAAuB,yBAA0B;AAC7T,iBAAO;AAAA,QACX;AAEE,YAAI,OAAO,SAAS,YAAY,SAAS,MAAM;AAC7C,cAAI,KAAK,aAAa,mBAAmB,KAAK,aAAa,mBAAmB,KAAK,aAAa,uBAAuB,KAAK,aAAa,sBAAsB,KAAK,aAAa;AAAA;AAAA;AAAA;AAAA,UAIjL,KAAK,aAAa,0BAA0B,KAAK,gBAAgB,QAAW;AAC1E,mBAAO;AAAA,UACb;AAAA,QACA;AAEE,eAAO;AAAA,MACT;AAEA,eAAS,OAAO,QAAQ;AACtB,YAAI,OAAO,WAAW,YAAY,WAAW,MAAM;AACjD,cAAI,WAAW,OAAO;AAEtB,kBAAQ,UAAQ;AAAA,YACd,KAAK;AACH,kBAAI,OAAO,OAAO;AAElB,sBAAQ,MAAI;AAAA,gBACV,KAAK;AAAA,gBACL,KAAK;AAAA,gBACL,KAAK;AAAA,gBACL,KAAK;AAAA,gBACL,KAAK;AACH,yBAAO;AAAA,gBAET;AACE,sBAAI,eAAe,QAAQ,KAAK;AAEhC,0BAAQ,cAAY;AAAA,oBAClB,KAAK;AAAA,oBACL,KAAK;AAAA,oBACL,KAAK;AAAA,oBACL,KAAK;AAAA,oBACL,KAAK;AAAA,oBACL,KAAK;AACH,6BAAO;AAAA,oBAET;AACE,6BAAO;AAAA,kBACvB;AAAA,cAEA;AAAA,YAEM,KAAK;AACH,qBAAO;AAAA,UACf;AAAA,QACA;AAEE,eAAO;AAAA,MACT;AACA,UAAI,kBAAkB;AACtB,UAAI,kBAAkB;AACtB,UAAIE,WAAU;AACd,UAAI,aAAa;AACjB,UAAIC,YAAW;AACf,UAAI,OAAO;AACX,UAAI,OAAO;AACX,UAAI,SAAS;AACb,UAAI,WAAW;AACf,UAAI,aAAa;AACjB,UAAI,WAAW;AACf,UAAI,eAAe;AACnB,UAAI,sCAAsC;AAC1C,UAAI,2CAA2C;AAE/C,eAAS,YAAY,QAAQ;AAC3B;AACE,cAAI,CAAC,qCAAqC;AACxC,kDAAsC;AAEtC,oBAAQ,MAAM,EAAE,wFAA6F;AAAA,UACnH;AAAA,QACA;AAEE,eAAO;AAAA,MACT;AACA,eAAS,iBAAiB,QAAQ;AAChC;AACE,cAAI,CAAC,0CAA0C;AAC7C,uDAA2C;AAE3C,oBAAQ,MAAM,EAAE,6FAAkG;AAAA,UACxH;AAAA,QACA;AAEE,eAAO;AAAA,MACT;AACA,eAAS,kBAAkB,QAAQ;AACjC,eAAO,OAAO,MAAM,MAAM;AAAA,MAC5B;AACA,eAAS,kBAAkB,QAAQ;AACjC,eAAO,OAAO,MAAM,MAAM;AAAA,MAC5B;AACA,eAASC,WAAU,QAAQ;AACzB,eAAO,OAAO,WAAW,YAAY,WAAW,QAAQ,OAAO,aAAa;AAAA,MAC9E;AACA,eAAS,aAAa,QAAQ;AAC5B,eAAO,OAAO,MAAM,MAAM;AAAA,MAC5B;AACA,eAAS,WAAW,QAAQ;AAC1B,eAAO,OAAO,MAAM,MAAM;AAAA,MAC5B;AACA,eAAS,OAAO,QAAQ;AACtB,eAAO,OAAO,MAAM,MAAM;AAAA,MAC5B;AACA,eAAS,OAAO,QAAQ;AACtB,eAAO,OAAO,MAAM,MAAM;AAAA,MAC5B;AACA,eAAS,SAAS,QAAQ;AACxB,eAAO,OAAO,MAAM,MAAM;AAAA,MAC5B;AACA,eAAS,WAAW,QAAQ;AAC1B,eAAO,OAAO,MAAM,MAAM;AAAA,MAC5B;AACA,eAAS,aAAa,QAAQ;AAC5B,eAAO,OAAO,MAAM,MAAM;AAAA,MAC5B;AACA,eAAS,WAAW,QAAQ;AAC1B,eAAO,OAAO,MAAM,MAAM;AAAA,MAC5B;AACA,eAAS,eAAe,QAAQ;AAC9B,eAAO,OAAO,MAAM,MAAM;AAAA,MAC5B;AAEA,0BAAA,kBAA0B;AAC1B,0BAAA,kBAA0B;AAC1B,0BAAA,UAAkBF;AAClB,0BAAA,aAAqB;AACrB,0BAAA,WAAmBC;AACnB,0BAAA,OAAe;AACf,0BAAA,OAAe;AACf,0BAAA,SAAiB;AACjB,0BAAA,WAAmB;AACnB,0BAAA,aAAqB;AACrB,0BAAA,WAAmB;AACnB,0BAAA,eAAuB;AACvB,0BAAA,cAAsB;AACtB,0BAAA,mBAA2B;AAC3B,0BAAA,oBAA4B;AAC5B,0BAAA,oBAA4B;AAC5B,0BAAA,YAAoBC;AACpB,0BAAA,eAAuB;AACvB,0BAAA,aAAqB;AACrB,0BAAA,SAAiB;AACjB,0BAAA,SAAiB;AACjB,0BAAA,WAAmB;AACnB,0BAAA,aAAqB;AACrB,0BAAA,eAAuB;AACvB,0BAAA,aAAqB;AACrB,0BAAA,iBAAyB;AACzB,0BAAA,qBAA6B;AAC7B,0BAAA,SAAiB;AAAA,IACjB,GAAG;AAAA,EACH;;;;;;;AC1NA,MAAI,QAAQ,IAAI,aAAa,cAAc;AACzCE,YAAA,UAAiBC,8BAAA;AAAA,EACnB,OAAO;AACLD,YAAA,UAAiBE,2BAAA;AAAA,EACnB;;;;ACNA,MAAM,IAAE,CAAAZ,OAAG,YAAU,OAAOA,MAAG,QAAMA,MAAG,MAAIA,GAAE,UAAS,IAAE,CAACA,IAAED,QAAK,CAACA,MAAG,aAAWC,QAAK,cAAYA,MAAG,WAASA,KAAG,IAAE,CAACA,IAAEC,OAAI;AAAC,MAAGD,GAAE,eAAaA,GAAE,gBAAcA,GAAE,cAAYA,GAAE,aAAY;AAAC,UAAME,KAAE,iBAAiBF,IAAE,IAAI;AAAE,WAAO,EAAEE,GAAE,WAAUD,EAAC,KAAG,EAAEC,GAAE,WAAUD,EAAC,MAAI,CAAAD,OAAG;AAAC,YAAMD,MAAG,CAAAC,OAAG;AAAC,YAAG,CAACA,GAAE,iBAAe,CAACA,GAAE,cAAc,YAAY,QAAO;AAAK,YAAG;AAAC,iBAAOA,GAAE,cAAc,YAAY;AAAA,QAAY,SAAOA,IAAE;AAAC,iBAAO;AAAA,QAAI;AAAA,MAAC,GAAGA,EAAC;AAAE,aAAM,CAAC,CAACD,OAAIA,GAAE,eAAaC,GAAE,gBAAcD,GAAE,cAAYC,GAAE;AAAA,IAAY,GAAGA,EAAC;AAAA,EAAC;AAAC,SAAM;AAAE,GAAE,IAAE,CAACA,IAAED,IAAEE,IAAEC,IAAEE,IAAEN,IAAE,GAAE,MAAIA,KAAEE,MAAG,IAAED,MAAGD,KAAEE,MAAG,IAAED,KAAE,IAAED,MAAGE,MAAG,KAAGC,MAAG,KAAGF,MAAG,KAAGE,KAAEH,KAAEE,KAAEE,KAAE,IAAEH,MAAG,IAAEE,MAAGH,KAAEE,MAAG,IAAEC,KAAE,IAAEF,KAAEK,KAAE,GAAE,IAAE,CAAAJ,OAAG;AAAC,QAAMD,KAAEC,GAAE;AAAc,SAAO,QAAMD,KAAEC,GAAE,YAAW,EAAG,QAAM,OAAKD;AAAC,GAAE,IAAE,CAACA,IAAED,OAAI;AAAC,MAAI,GAAE,GAAE,GAAE;AAAE,MAAG,eAAa,OAAO,SAAS,QAAM,CAAA;AAAG,QAAK,EAAsB,QAAO,GAAE,UAAS,GAAE,4BAA2B,EAAC,IAAEA,IAAE,IAAE,cAAY,OAAO,IAAE,IAAE,CAAAE,OAAGA,OAAI;AAAE,MAAG,CAAC,EAAED,EAAC,EAAE,OAAM,IAAI,UAAU,gBAAgB;AAAE,QAAM,IAAE,SAAS,oBAAkB,SAAS,iBAAgB,IAAE;AAAG,MAAI,IAAEA;AAAE,SAAK,EAAE,CAAC,KAAG,EAAE,CAAC,KAAG;AAAC,QAAG,IAAE,EAAE,CAAC,GAAE,MAAI,GAAE;AAAC,QAAE,KAAK,CAAC;AAAE;AAAA,IAAK;AAAC,YAAM,KAAG,MAAI,SAAS,QAAM,EAAE,CAAC,KAAG,CAAC,EAAE,SAAS,eAAe,KAAG,QAAM,KAAG,EAAE,GAAE,CAAC,KAAG,EAAE,KAAK,CAAC;AAAA,EAAC;AAAC,QAAM,IAAE,SAAO,IAAE,SAAO,IAAE,OAAO,kBAAgB,SAAO,EAAE,SAAO,IAAE,YAAW,IAAE,SAAO,IAAE,SAAO,IAAE,OAAO,kBAAgB,SAAO,EAAE,UAAQ,IAAE,aAAY,EAAC,SAAQ,GAAE,SAAQ,EAAC,IAAE,QAAO,EAAC,QAAO,GAAE,OAAM,GAAE,KAAI,GAAE,OAAM,GAAE,QAAO,GAAE,MAAK,EAAC,IAAEA,GAAE,sBAAqB,GAAG,EAAC,KAAI,GAAE,OAAM,GAAW,MAAK,EAAC,KAAG,CAAAC,OAAG;AAAC,UAAMD,KAAE,OAAO,iBAAiBC,EAAC;AAAE,WAAM,EAAC,KAAI,WAAWD,GAAE,eAAe,KAAG,GAAE,OAAM,WAAWA,GAAE,iBAAiB,KAAG,GAAE,QAAO,WAAWA,GAAE,kBAAkB,KAAG,GAAE,MAAK,WAAWA,GAAE,gBAAgB,KAAG,EAAC;AAAA,EAAC,GAAGA,EAAC;AAAE,MAAI,IAA6B,IAAE,GAA0B,IAAE,aAAW,IAAE,IAAE,IAAE,IAAE,IAAE,IAAE,UAAQ,IAAE,IAAE,IAAE,IAAE;AAAE,QAAM,IAAE,CAAA;AAAG,WAAQC,KAAE,GAAEA,KAAE,EAAE,QAAOA,MAAI;AAAC,UAAMD,KAAE,EAAEC,EAAC,GAAE,EAAC,QAAOC,IAAE,OAAMG,IAAE,KAAIN,IAAE,OAAMoB,IAAE,QAAOI,IAAE,MAAKC,GAAC,IAAExB,GAAE,sBAAqB;AAAG,QAAoB,KAAG,KAAG,KAAG,KAAG,KAAG,KAAG,KAAG,KAAG,KAAGD,MAAG,KAAGwB,MAAG,KAAGC,MAAG,KAAGL,GAAE,QAAO;AAAE,UAAMM,KAAE,iBAAiBzB,EAAC,GAAE0B,KAAE,SAASD,GAAE,iBAAgB,EAAE,GAAEE,KAAE,SAASF,GAAE,gBAAe,EAAE,GAAEG,KAAE,SAASH,GAAE,kBAAiB,EAAE,GAAEI,KAAE,SAASJ,GAAE,mBAAkB,EAAE;AAAE,QAAIK,KAAE,GAAEC,KAAE;AAAE,UAAM,IAAE,iBAAgB/B,KAAEA,GAAE,cAAYA,GAAE,cAAY0B,KAAEE,KAAE,GAAEI,KAAE,kBAAiBhC,KAAEA,GAAE,eAAaA,GAAE,eAAa2B,KAAEE,KAAE,GAAE,IAAE,iBAAgB7B,KAAE,MAAIA,GAAE,cAAY,IAAEK,KAAEL,GAAE,cAAY,GAAE,IAAE,kBAAiBA,KAAE,MAAIA,GAAE,eAAa,IAAEE,KAAEF,GAAE,eAAa;AAAE,QAAG,MAAIA,GAAE,CAAA8B,KAA4C,EAAE,GAAE,IAAE,GAAE,GAAEH,IAAEE,IAAE,IAAE,GAAE,IAAE,IAAE,GAAE,CAAC,GAAQE,KAAE,YAAU,IAAE,IAAE,aAAW,IAAE,IAAE,IAAE,IAAE,UAAQ,IAAE,IAAE,IAAE,EAAE,GAAE,IAAE,GAAE,GAAEL,IAAEE,IAAE,IAAE,GAAE,IAAE,IAAE,GAAE,CAAC,GAAEE,KAAE,KAAK,IAAI,GAAEA,KAAE,CAAC,GAAEC,KAAE,KAAK,IAAI,GAAEA,KAAE,CAAC;AAAA,SAAM;AAAC,MAAAD,KAAoD,EAAE/B,IAAEwB,IAAErB,IAAEyB,IAAEE,KAAEG,IAAE,GAAE,IAAE,GAAE,CAAC,GAAgBD,KAAE,YAAU,IAAE,IAAEP,KAAEE,KAAE,aAAW,IAAE,KAAGF,KAAEnB,KAAE,KAAG,IAAE,IAAE,UAAQ,IAAE,IAAEc,KAAES,KAAE,IAAE,EAAEJ,IAAEL,IAAEd,IAAEqB,IAAEE,KAAE,GAAE,GAAE,IAAE,GAAE,CAAC;AAAE,YAAK,EAAC,YAAW3B,IAAE,WAAUwB,GAAC,IAAEzB;AAAE,MAAA8B,KAAE,MAAI,IAAE,IAAE,KAAK,IAAI,GAAE,KAAK,IAAIL,KAAEK,KAAE,GAAE9B,GAAE,eAAaE,KAAE,IAAE8B,EAAC,CAAC,GAAED,KAAE,MAAI,IAAE,IAAE,KAAK,IAAI,GAAE,KAAK,IAAI9B,KAAE8B,KAAE,GAAE/B,GAAE,cAAYK,KAAE,IAAE,CAAC,CAAC,GAAE,KAAGoB,KAAEK,IAAE,KAAG7B,KAAE8B;AAAA,IAAC;AAAC,MAAE,KAAK,EAAC,IAAG/B,IAAE,KAAI8B,IAAE,MAAKC,GAAC,CAAC;AAAA,EAAC;AAAC,SAAO;AAAC;AC+B91F,IAAI,WAAW,WAAW;AAC/B,aAAW,OAAO,UAAU,SAASE,UAAShC,IAAG;AAC7C,aAAS,GAAG,IAAI,GAAGC,KAAI,UAAU,QAAQ,IAAIA,IAAG,KAAK;AACjD,UAAI,UAAU,CAAC;AACf,eAAS,KAAK,EAAG,KAAI,OAAO,UAAU,eAAe,KAAK,GAAG,CAAC,EAAG,CAAAD,GAAE,CAAC,IAAI,EAAE,CAAC;AAAA,IAC/E;AACA,WAAOA;AAAA,EACX;AACA,SAAO,SAAS,MAAM,MAAM,SAAS;AACvC;AA+RuB,OAAO,oBAAoB,aAAa,kBAAkB,SAAUc,QAAO,YAAY,SAAS;AACrH,MAAIf,KAAI,IAAI,MAAM,OAAO;AACzB,SAAOA,GAAE,OAAO,mBAAmBA,GAAE,QAAQe,QAAOf,GAAE,aAAa,YAAYA;AACjF;ACjUA,IAAI,YAAY;AAUhB,SAAS,OAAO,IAAI;AAClB,SAAO,OAAO,OAAO,aAAa,KAAKkC;AACzC;AACA,SAASA,SAAO;AAAC;AAOjB,SAAS,eAAe,MAAM,UAAU;AACtC,MAAI,CAAC,MAAM;AACT;AAAA,EACF;AACA,MAAI,UAAUC,EAAQ,MAAM;AAAA,IAC1B,UAAU;AAAA,EAGZ,CAAC;AACD,UAAQ,QAAQ,SAAU,MAAM;AAC9B,QAAI,KAAK,KAAK,IACZ,MAAM,KAAK,KACX,OAAO,KAAK;AACd,OAAG,YAAY;AACf,OAAG,aAAa;AAAA,EAClB,CAAC;AACH;AAQA,SAAS,iBAAiB,QAAQ,OAAO,aAAa;AACpD,MAAI,SAAS,WAAW,SAAS,iBAAiB,YAAY,QAAQ,OAAO,YAAY,OAAO,SAAS,KAAK;AAC9G,SAAO;AACT;AAUA,SAAS,SAAS,IAAI,MAAM;AAC1B,MAAI;AACJ,WAAS,SAAS;AAChB,QAAI,WAAW;AACb,mBAAa,SAAS;AAAA,IACxB;AAAA,EACF;AACA,WAAS,UAAU;AACjB,aAAS,OAAO,UAAU,QAAQ,OAAO,IAAI,MAAM,IAAI,GAAG,OAAO,GAAG,OAAO,MAAM,QAAQ;AACvF,WAAK,IAAI,IAAI,UAAU,IAAI;AAAA,IAC7B;AACA,WAAM;AACN,gBAAY,WAAW,WAAY;AACjC,kBAAY;AACZ,SAAG,MAAM,QAAQ,IAAI;AAAA,IACvB,GAAG,IAAI;AAAA,EACT;AACA,UAAQ,SAAS;AACjB,SAAO;AACT;AASA,SAAS,uBAAuB;AAC9B,WAAS,QAAQ,UAAU,QAAQ,MAAM,IAAI,MAAM,KAAK,GAAG,QAAQ,GAAG,QAAQ,OAAO,SAAS;AAC5F,QAAI,KAAK,IAAI,UAAU,KAAK;AAAA,EAC9B;AACA,SAAO,SAAU,OAAO;AACtB,aAAS,QAAQ,UAAU,QAAQ,OAAO,IAAI,MAAM,QAAQ,IAAI,QAAQ,IAAI,CAAC,GAAG,QAAQ,GAAG,QAAQ,OAAO,SAAS;AACjH,WAAK,QAAQ,CAAC,IAAI,UAAU,KAAK;AAAA,IACnC;AACA,WAAO,IAAI,KAAK,SAAU,IAAI;AAC5B,UAAI,IAAI;AACN,WAAG,MAAM,QAAQ,CAAC,KAAK,EAAE,OAAO,IAAI,CAAC;AAAA,MACvC;AACA,aAAO,MAAM,2BAA2B,MAAM,eAAe,aAAa,KAAK,MAAM,YAAY;AAAA,IACnG,CAAC;AAAA,EACH;AACF;AACA,SAAS,aAAa;AACpB,WAAS,QAAQ,UAAU,QAAQ,OAAO,IAAI,MAAM,KAAK,GAAG,QAAQ,GAAG,QAAQ,OAAO,SAAS;AAC7F,SAAK,KAAK,IAAI,UAAU,KAAK;AAAA,EAC/B;AACA,SAAO,SAAU,MAAM;AACrB,SAAK,QAAQ,SAAU,KAAK;AAC1B,UAAI,OAAO,QAAQ,YAAY;AAC7B,YAAI,IAAI;AAAA,MACV,WAAW,KAAK;AACd,YAAI,UAAU;AAAA,MAChB;AAAA,IACF,CAAC;AAAA,EACH;AACF;AAMA,SAAS,aAAa;AACpB,SAAO,OAAO,WAAW;AAC3B;AAsBA,SAASC,uBAAqB,OAAO;AACnC,MAAI,SAAS,MAAM,QACjB,cAAc,MAAM,aACpB,sBAAsB,MAAM;AAC9B,MAAI,CAAC,QAAQ;AACX,WAAO;AAAA,EACT;AACA,MAAI,CAAC,aAAa;AAChB,WAAO;AAAA,EACT;AACA,MAAI,gBAAgB,qBAAqB;AACvC,WAAO,cAAc,aAAa,gBAAgB,IAAI,QAAQ,WAAW;AAAA,EAC3E;AACA,SAAO;AACT;AASA,SAAS,YAAY,KAAK,cAAc;AACtC,QAAM,MAAM,QAAQ,GAAG;AAAA;AAAA,IAAuC,IAAI,CAAC;AAAA,MAAI;AACvE,MAAI,CAAC,OAAO,cAAc;AACxB,WAAO;AAAA,EACT,OAAO;AACL,WAAO;AAAA,EACT;AACF;AAMA,SAAS,aAAa,SAAS;AAG7B,SAAO,OAAO,QAAQ,SAAS;AACjC;AAMA,SAAS,gBAAgB,SAAS;AAChC,SAAO,QAAQ;AACjB;AAQA,SAAS,aAAa,QAAQ,UAAU;AAEtC,UAAQ,MAAM,mBAAoB,WAAW,uBAAyB,SAAS,GAAI;AACrF;AACA,IAAI,YAAY,CAAC,oBAAoB,cAAc,UAAU,gBAAgB,MAAM;AAKnF,SAAS,UAAU,OAAO;AACxB,MAAI,UAAU,QAAQ;AACpB,YAAQ,CAAA;AAAA,EACV;AACA,MAAI,SAAS,CAAA;AACb,YAAU,QAAQ,SAAU,GAAG;AAC7B,QAAI,MAAM,eAAe,CAAC,GAAG;AAC3B,aAAO,CAAC,IAAI,MAAM,CAAC;AAAA,IACrB;AAAA,EACF,CAAC;AACD,SAAO;AACT;AAaA,SAAS,SAAS,OAAO,OAAO;AAC9B,MAAI,CAAC,SAAS,CAAC,OAAO;AACpB,WAAO;AAAA,EACT;AACA,SAAO,OAAO,KAAK,KAAK,EAAE,OAAO,SAAU,WAAW,KAAK;AACzD,cAAU,GAAG,IAAI,iBAAiB,OAAO,GAAG,IAAI,MAAM,GAAG,IAAI,MAAM,GAAG;AACtE,WAAO;AAAA,EACT,GAAG,CAAA,CAAE;AACP;AAWA,SAAS,iBAAiB,OAAO,KAAK;AACpC,SAAO,MAAM,GAAG,MAAM;AACxB;AAOA,SAAS,kBAAkB,OAAO;AAChC,MAAI,MAAM,MAAM,KACd,UAAU,MAAM;AAElB,MAAI,WAAW,MAAM,WAAW,MAAM,IAAI,QAAQ,OAAO,MAAM,GAAG;AAChE,WAAO,UAAU;AAAA,EACnB;AACA,SAAO;AACT;AAOA,SAAS,cAAc,KAAK;AAC1B,SAAO,OAAO,UAAU,SAAS,KAAK,GAAG,MAAM;AACjD;AAYA,SAAS,oBAAoB,OAAOC,SAAQ,OAAOC,iBAAgB,UAAU;AAC3E,MAAI,aAAa,QAAQ;AACvB,eAAW;AAAA,EACb;AACA,MAAI,QAAQ,MAAM;AAClB,MAAI,UAAU,GAAG;AACf,WAAO;AAAA,EACT;AACA,MAAI,iBAAiB,QAAQ;AAC7B,MAAI,OAAO,UAAU,YAAY,QAAQ,KAAK,QAAQ,gBAAgB;AACpE,YAAQD,UAAS,IAAI,KAAK,iBAAiB;AAAA,EAC7C;AACA,MAAI,UAAU,QAAQA;AACtB,MAAI,UAAU,GAAG;AACf,cAAU,WAAW,iBAAiB;AAAA,EACxC,WAAW,UAAU,gBAAgB;AACnC,cAAU,WAAW,IAAI;AAAA,EAC3B;AACA,MAAI,mBAAmB,oBAAoB,SAASA,UAAS,GAAG,OAAOC,iBAAgB,QAAQ;AAC/F,MAAI,qBAAqB,IAAI;AAC3B,WAAO,SAAS,QAAQ,KAAK;AAAA,EAC/B;AACA,SAAO;AACT;AAYA,SAAS,oBAAoB,OAAO,WAAW,OAAOA,iBAAgB,UAAU;AAC9E,MAAI,aAAa,QAAQ;AACvB,eAAW;AAAA,EACb;AACA,MAAI,QAAQ,MAAM;AAClB,MAAI,WAAW;AACb,aAASC,SAAQ,OAAOA,UAAS,GAAGA,UAAS;AAC3C,UAAI,CAACD,gBAAe,MAAMC,MAAK,GAAGA,MAAK,GAAG;AACxC,eAAOA;AAAA,MACT;AAAA,IACF;AAAA,EACF,OAAO;AACL,aAAS,SAAS,OAAO,SAAS,OAAO,UAAU;AACjD,UAAI,CAACD,gBAAe,MAAM,MAAM,GAAG,MAAM,GAAG;AAC1C,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AACA,MAAI,UAAU;AACZ,WAAO,oBAAoB,YAAY,QAAQ,IAAI,GAAG,WAAW,OAAOA,eAAc;AAAA,EACxF;AACA,SAAO;AACT;AAYA,SAAS,sBAAsB,QAAQ,mBAAmB,aAAa,oBAAoB;AACzF,MAAI,uBAAuB,QAAQ;AACjC,yBAAqB;AAAA,EACvB;AACA,SAAO,eAAe,kBAAkB,KAAK,SAAU,aAAa;AAClE,WAAO,gBAAgB,iBAAiB,aAAa,QAAQ,WAAW,KAAK,sBAAsB,iBAAiB,aAAa,YAAY,SAAS,eAAe,WAAW;AAAA,EAClL,CAAC;AACH;AAGA,IAAI,8BAA8BJ;AAElC,IAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,gCAA8B,SAASM,6BAA4B,OAAO,WAAW,WAAW;AAC9F,QAAI,qBAAqB;AACzB,WAAO,KAAK,KAAK,EAAE,QAAQ,SAAU,SAAS;AAC5C,UAAI,UAAU,OAAO,MAAM,UAAa,UAAU,OAAO,MAAM,QAAW;AAExE,gBAAQ,MAAM,6DAA8D,UAAU,2BAA4B,kBAAkB;AAAA,MACtI,WAAW,UAAU,OAAO,MAAM,UAAa,UAAU,OAAO,MAAM,QAAW;AAE/E,gBAAQ,MAAM,+DAAgE,UAAU,yBAA0B,kBAAkB;AAAA,MACtI;AAAA,IACF,CAAC;AAAA,EACH;AACF;AAEA,IAAI,gBAAgB,SAAS,SAAU,cAAc;AACnD,eAAa,YAAY,EAAE,cAAc;AAC3C,GAAG,GAAG;AAON,SAAS,aAAa,cAAc;AAClC,MAAI,YAAY,aAAa,eAAe,qBAAqB;AACjE,MAAI,WAAW;AACb,WAAO;AAAA,EACT;AACA,cAAY,aAAa,cAAc,KAAK;AAC5C,YAAU,aAAa,MAAM,qBAAqB;AAClD,YAAU,aAAa,QAAQ,QAAQ;AACvC,YAAU,aAAa,aAAa,QAAQ;AAC5C,YAAU,aAAa,iBAAiB,gBAAgB;AACxD,SAAO,OAAO,UAAU,OAAO;AAAA,IAC7B,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,SAAS;AAAA,IACT,UAAU;AAAA,IACV,OAAO;AAAA,EACX,CAAG;AACD,eAAa,KAAK,YAAY,SAAS;AACvC,SAAO;AACT;AAMA,SAAS,UAAU,QAAQ,cAAc;AACvC,MAAI,CAAC,UAAU,CAAC,cAAc;AAC5B;AAAA,EACF;AACA,MAAI,MAAM,aAAa,YAAY;AACnC,MAAI,cAAc;AAClB,gBAAc,YAAY;AAC5B;AAMA,SAAS,iBAAiB,cAAc;AACtC,MAAI,YAAY,gBAAgB,OAAO,SAAS,aAAa,eAAe,qBAAqB;AACjG,MAAI,WAAW;AACb,cAAU,OAAM;AAAA,EAClB;AACF;AAEA,IAAI,UAAU,QAAQ,IAAI,aAAa,eAAe,6BAA6B;AACnF,IAAI,UAAU,QAAQ,IAAI,aAAa,eAAe,6BAA6B;AACnF,IAAI,iBAAiB,QAAQ,IAAI,aAAa,eAAe,qCAAqC;AAClG,IAAI,iBAAiB,QAAQ,IAAI,aAAa,eAAe,sCAAsC;AACnG,IAAI,mBAAmB,QAAQ,IAAI,aAAa,eAAe,wCAAwC;AACvG,IAAI,gBAAgB,QAAQ,IAAI,aAAa,eAAe,oCAAoC;AAChG,IAAI,eAAe,QAAQ,IAAI,aAAa,eAAe,mCAAmC;AAC9F,IAAI,cAAc,QAAQ,IAAI,aAAa,eAAe,kCAAkC;AAC5F,IAAI,aAAa,QAAQ,IAAI,aAAa,eAAe,iCAAiC;AAC1F,IAAI,YAAY,QAAQ,IAAI,aAAa,eAAe,gCAAgC;AACxF,IAAI,YAAY,QAAQ,IAAI,aAAa,eAAe,gCAAgC;AACxF,IAAI,cAAc,QAAQ,IAAI,aAAa,eAAe,kCAAkC;AAC5F,IAAI,qBAAqB,QAAQ,IAAI,aAAa,eAAe,0CAA0C;AAC3G,IAAI,cAAc,QAAQ,IAAI,aAAa,eAAe,kCAAkC;AAC5F,IAAI,aAAa,QAAQ,IAAI,aAAa,eAAe,iCAAiC;AAC1F,IAAI,oCAAoC,QAAQ,IAAI,aAAa,eAAe,2DAA2D;AAC3I,IAAI,WAAW,QAAQ,IAAI,aAAa,eAAe,8BAA8B;AAErF,IAAI,qBAAkC,uBAAO,OAAO;AAAA,EAClD,WAAW;AAAA,EACX;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAED,IAAI,cAAc,CAAC,UAAU,KAAK,GAChC,eAAe,CAAC,WAAW,WAAW,aAAa,WAAW,QAAQ,GACtE,eAAe,CAAC,aAAa,UAAU,YAAY,WAAW,cAAc,GAC5E,eAAe,CAAC,UAAU,KAAK,GAC/B,aAAa,CAAC,eAAe,eAAe,WAAW,WAAW,SAAS,MAAM;AACnF,IAAI,YAAyB,2BAAY;AACvC,MAAIC,aAAyB,yBAAU,YAAY;AACjD,aAASA,WAAU,QAAQ;AACzB,UAAI;AACJ,cAAQ,WAAW,KAAK,MAAM,MAAM,KAAK;AAIzC,YAAM,KAAK,MAAM,MAAM,MAAM,eAAe,WAAU;AACtD,YAAM,SAAS,MAAM,MAAM,UAAU,MAAM,KAAK;AAChD,YAAM,UAAU,MAAM,MAAM,WAAW,MAAM,KAAK;AAClD,YAAM,UAAU,MAAM,MAAM,WAAW,MAAM,KAAK;AAClD,YAAM,YAAY,MAAM,MAAM,aAAa,SAAUF,QAAO;AAC1D,eAAO,MAAM,KAAK,WAAWA;AAAA,MAC/B;AACA,YAAM,QAAQ,CAAA;AAMd,YAAM,YAAY;AAClB,YAAM,sBAAsB;AAC5B,YAAM,aAAa,CAAA;AAKnB,YAAM,qBAAqB,SAAU,IAAI,MAAM;AAC7C,YAAI,KAAK,WAAW,WAAY;AAC9B,gBAAM,aAAa,MAAM,WAAW,OAAO,SAAU,GAAG;AACtD,mBAAO,MAAM;AAAA,UACf,CAAC;AACD,aAAE;AAAA,QACJ,GAAG,IAAI;AACP,cAAM,WAAW,KAAK,EAAE;AAAA,MAC1B;AACA,YAAM,eAAe,SAAU,OAAO;AACpC,cAAM,YAAY;AAAA,MACpB;AACA,YAAM,iBAAiB,WAAY;AACjC,cAAM,YAAY;AAAA,MACpB;AACA,YAAM,iBAAiB,SAAU,OAAOA,QAAO;AAC7C,YAAI,qBAAqB,MAAM,qBAAqBA,MAAK;AACzD,eAAO,sBAAsB,mBAAmB,aAAa,UAAU;AAAA,MACzE;AACA,YAAM,sBAAsB,SAAU,kBAAkB,iBAAiB;AACvE,YAAI,qBAAqB,QAAQ;AAC/B,6BAAmB,MAAM,MAAM;AAAA,QACjC;AACA,YAAI,oBAAoB,QAAQ;AAC9B,4BAAkB,CAAA;AAAA,QACpB;AACA,0BAAkB,UAAU,eAAe;AAC3C,cAAM,iBAAiB,SAAS;AAAA,UAC9B;AAAA,QACV,GAAW,eAAe,CAAC;AAAA,MACrB;AACA,YAAM,iBAAiB,SAAU,IAAI;AACnC,cAAM,iBAAiB;AAAA,UACrB,cAAc;AAAA,UACd,YAAY;AAAA,UACZ,kBAAkB,MAAM,MAAM;AAAA,UAC9B,QAAQ,MAAM,MAAM;AAAA,QAC9B,GAAW,EAAE;AAAA,MACP;AACA,YAAM,aAAa,SAAU,MAAM,iBAAiB,IAAI;AACtD,0BAAkB,UAAU,eAAe;AAC3C,cAAM,iBAAiB,SAAS;AAAA,UAC9B,QAAQ,MAAM,MAAM;AAAA,UACpB,kBAAkB,MAAM,MAAM;AAAA,UAC9B,cAAc;AAAA,UACd,YAAY,MAAM,MAAM,aAAa,IAAI;AAAA,QACnD,GAAW,eAAe,GAAG,EAAE;AAAA,MACzB;AACA,YAAM,oBAAoB,SAAU,WAAW,iBAAiB,IAAI;AAClE,YAAI,OAAO,MAAM,MAAM,SAAS;AAChC,YAAI,QAAQ,MAAM;AAChB;AAAA,QACF;AACA,cAAM,WAAW,MAAM,iBAAiB,EAAE;AAAA,MAC5C;AACA,YAAM,wBAAwB,SAAU,iBAAiB,IAAI;AAC3D,eAAO,MAAM,kBAAkB,MAAM,SAAQ,EAAG,kBAAkB,iBAAiB,EAAE;AAAA,MACvF;AASA,YAAM,mBAAmB,SAAU,YAAY,IAAI;AACjD,YAAI,gBAAgB;AACpB,YAAI,mBAAmB,CAAA;AACvB,YAAI,uBAAuB,OAAO,eAAe;AAOjD,YAAI,CAAC,wBAAwB,WAAW,eAAe,YAAY,GAAG;AACpE,gBAAM,MAAM,mBAAmB,WAAW,YAAY,SAAS,CAAA,GAAI,MAAM,mBAAkB,GAAI,UAAU,CAAC;AAAA,QAC5G;AACA,eAAO,MAAM,SAAS,SAAU,OAAO;AACrC,cAAI;AACJ,kBAAQ,MAAM,SAAS,KAAK;AAC5B,cAAI,gBAAgB,uBAAuB,WAAW,KAAK,IAAI;AAG/D,0BAAgB,MAAM,MAAM,aAAa,OAAO,aAAa;AAK7D,2BAAiB,cAAc,eAAe,cAAc;AAE5D,cAAI,YAAY,CAAA;AAIhB,cAAI,kBAAkB,cAAc,iBAAiB,MAAM,cAAc;AACvE,0BAAc,cAAc;AAAA,UAC9B;AACA,WAAC,iBAAiB,eAAe,SAAS,eAAe,OAAO;AAChE,iBAAO,KAAK,aAAa,EAAE,QAAQ,SAAU,KAAK;AAGhD,gBAAI,MAAM,GAAG,MAAM,cAAc,GAAG,GAAG;AACrC,+BAAiB,GAAG,IAAI,cAAc,GAAG;AAAA,YAC3C;AAOA,gBAAI,QAAQ,QAAQ;AAClB;AAAA,YACF;AACA,0BAAc,GAAG;AAEjB,gBAAI,CAAC,iBAAiB,MAAM,OAAO,GAAG,GAAG;AACvC,wBAAU,GAAG,IAAI,cAAc,GAAG;AAAA,YACpC;AAAA,UACF,CAAC;AAID,cAAI,wBAAwB,cAAc,eAAe,YAAY,GAAG;AACtE,kBAAM,MAAM,mBAAmB,cAAc,YAAY,SAAS,CAAA,GAAI,MAAM,mBAAkB,GAAI,aAAa,CAAC;AAAA,UAClH;AACA,iBAAO;AAAA,QACT,GAAG,WAAY;AAEb,iBAAO,EAAE,EAAC;AAIV,cAAI,uBAAuB,OAAO,KAAK,gBAAgB,EAAE,SAAS;AAClE,cAAI,sBAAsB;AACxB,kBAAM,MAAM,cAAc,kBAAkB,MAAM,mBAAkB,CAAE;AAAA,UACxE;AACA,cAAI,gBAAgB;AAClB,kBAAM,MAAM,SAAS,WAAW,cAAc,MAAM,oBAAoB;AAAA,UAC1E;AACA,cAAI,gBAAgB,QAAW;AAC7B,kBAAM,MAAM,SAAS,aAAa,MAAM,mBAAkB,CAAE;AAAA,UAC9D;AAGA,gBAAM,MAAM,aAAa,kBAAkB,MAAM,mBAAkB,CAAE;AAAA,QACvE,CAAC;AAAA,MACH;AAEA,YAAM,UAAU,SAAU,MAAM;AAC9B,eAAO,MAAM,YAAY;AAAA,MAC3B;AACA,YAAM,eAAe,SAAU,OAAO,QAAQ;AAC5C,YAAI;AACJ,YAAI,OAAO,UAAU,SAAS,CAAA,IAAK,OACjC,cAAc,KAAK,QACnB,SAAS,gBAAgB,SAAS,QAAQ,aAC1C,MAAM,KAAK,KACX,OAAO,8BAA8B,MAAM,WAAW;AACxD,YAAI,QAAQ,WAAW,SAAS,CAAA,IAAK,QACnC,wBAAwB,MAAM,kBAC9B,mBAAmB,0BAA0B,SAAS,QAAQ;AAGhE,cAAM,aAAa,SAAS;AAC5B,cAAM,aAAa,SAAS;AAC5B,cAAM,aAAa,mBAAmB;AACtC,YAAI,iBAAiB,MAAM,SAAQ,GACjC,SAAS,eAAe;AAC1B,eAAO,UAAU,YAAY,CAAA,GAAI,UAAU,MAAM,IAAI,WAAW,KAAK,MAAM,OAAO,GAAG,UAAU,OAAO,YAAY,UAAU,eAAe,IAAI,QAAQ,UAAU,eAAe,IAAI,WAAW,UAAU,WAAW,IAAI,SAAS,MAAM,SAAS,QAAW,UAAU,iBAAiB,IAAI,MAAM,SAAS,YAAY,IAAI;AAAA,MAC3T;AAEA,YAAM,kBAAkB;AAAA,QACtB,WAAW,SAAS,UAAU,OAAO;AACnC,cAAI,SAAS;AACb,gBAAM,eAAc;AACpB,cAAI,KAAK,SAAQ,EAAG,QAAQ;AAC1B,gBAAI,SAAS,MAAM,WAAW,IAAI;AAClC,iBAAK,qBAAqB,QAAQ;AAAA,cAChC,MAAM;AAAA,YACpB,CAAa;AAAA,UACH,OAAO;AACL,iBAAK,iBAAiB;AAAA,cACpB,QAAQ;AAAA,cACR,MAAM;AAAA,YACpB,GAAe,WAAY;AACb,kBAAI,YAAY,OAAO,aAAY;AACnC,kBAAI,YAAY,GAAG;AACjB,oBAAI,kBAAkB,OAAO,SAAQ,GACnC,mBAAmB,gBAAgB;AACrC,oBAAI,uBAAuB,oBAAoB,kBAAkB,GAAG;AAAA,kBAClE,QAAQ;AAAA,gBAC1B,GAAmB,OAAO,gBAAgB,IAAI;AAC9B,uBAAO,oBAAoB,sBAAsB;AAAA,kBAC/C,MAAM;AAAA,gBACxB,CAAiB;AAAA,cACH;AAAA,YACF,CAAC;AAAA,UACH;AAAA,QACF;AAAA,QACA,SAAS,SAAS,QAAQ,OAAO;AAC/B,cAAI,SAAS;AACb,gBAAM,eAAc;AACpB,cAAI,KAAK,SAAQ,EAAG,QAAQ;AAC1B,gBAAI,SAAS,MAAM,WAAW,KAAK;AACnC,iBAAK,qBAAqB,QAAQ;AAAA,cAChC,MAAM;AAAA,YACpB,CAAa;AAAA,UACH,OAAO;AACL,iBAAK,iBAAiB;AAAA,cACpB,QAAQ;AAAA,cACR,MAAM;AAAA,YACpB,GAAe,WAAY;AACb,kBAAI,YAAY,OAAO,aAAY;AACnC,kBAAI,YAAY,GAAG;AACjB,oBAAI,kBAAkB,OAAO,SAAQ,GACnC,mBAAmB,gBAAgB;AACrC,oBAAI,uBAAuB,oBAAoB,kBAAkB,IAAI;AAAA,kBACnE,QAAQ;AAAA,gBAC1B,GAAmB,OAAO,gBAAgB,IAAI;AAC9B,uBAAO,oBAAoB,sBAAsB;AAAA,kBAC/C,MAAM;AAAA,gBACxB,CAAiB;AAAA,cACH;AAAA,YACF,CAAC;AAAA,UACH;AAAA,QACF;AAAA,QACA,OAAO,SAAS,MAAM,OAAO;AAC3B,cAAI,MAAM,UAAU,KAAK;AACvB;AAAA,UACF;AACA,cAAI,kBAAkB,KAAK,SAAQ,GACjC,SAAS,gBAAgB,QACzB,mBAAmB,gBAAgB;AACrC,cAAI,UAAU,oBAAoB,MAAM;AACtC,kBAAM,eAAc;AACpB,gBAAI,OAAO,KAAK,MAAM,gBAAgB;AACtC,gBAAI,WAAW,KAAK,qBAAqB,gBAAgB;AACzD,gBAAI,QAAQ,QAAQ,YAAY,SAAS,aAAa,UAAU,GAAG;AACjE;AAAA,YACF;AACA,iBAAK,sBAAsB;AAAA,cACzB,MAAM;AAAA,YACpB,CAAa;AAAA,UACH;AAAA,QACF;AAAA,QACA,QAAQ,SAAS,OAAO,OAAO;AAC7B,gBAAM,eAAc;AACpB,eAAK,MAAM,SAAS;AAAA,YAClB,MAAM;AAAA,UAClB,GAAa,CAAC,KAAK,MAAM,UAAU;AAAA,YACvB,cAAc;AAAA,YACd,YAAY;AAAA,UACxB,CAAW,CAAC;AAAA,QACJ;AAAA,MACR;AAEM,YAAM,wBAAwB,SAAS,CAAA,GAAI,MAAM,iBAAiB;AAAA,QAChE,KAAK,SAAS,EAAE,OAAO;AACrB,gBAAM,eAAc;AACpB,eAAK,WAAW;AAAA,YACd,MAAM;AAAA,UAClB,CAAW;AAAA,QACH;AAAA,MACR,CAAO;AACD,YAAM,uBAAuB,SAAS,CAAA,GAAI,MAAM,iBAAiB;AAAA,QAC/D,MAAM,SAAS,KAAK,OAAO;AACzB,cAAI,kBAAkB,KAAK,SAAQ,GACjC,SAAS,gBAAgB;AAC3B,cAAI,CAAC,QAAQ;AACX;AAAA,UACF;AACA,gBAAM,eAAc;AACpB,cAAI,YAAY,KAAK,aAAY;AACjC,cAAI,aAAa,KAAK,CAAC,QAAQ;AAC7B;AAAA,UACF;AAGA,cAAI,sBAAsB,oBAAoB,GAAG,OAAO;AAAA,YACtD,QAAQ;AAAA,UACpB,GAAa,KAAK,cAAc;AACtB,eAAK,oBAAoB,qBAAqB;AAAA,YAC5C,MAAM;AAAA,UAClB,CAAW;AAAA,QACH;AAAA,QACA,KAAK,SAAS,IAAI,OAAO;AACvB,cAAI,kBAAkB,KAAK,SAAQ,GACjC,SAAS,gBAAgB;AAC3B,cAAI,CAAC,QAAQ;AACX;AAAA,UACF;AACA,gBAAM,eAAc;AACpB,cAAI,YAAY,KAAK,aAAY;AACjC,cAAI,aAAa,KAAK,CAAC,QAAQ;AAC7B;AAAA,UACF;AAGA,cAAI,sBAAsB,oBAAoB,YAAY,GAAG,MAAM;AAAA,YACjE,QAAQ;AAAA,UACpB,GAAa,KAAK,cAAc;AACtB,eAAK,oBAAoB,qBAAqB;AAAA,YAC5C,MAAM;AAAA,UAClB,CAAW;AAAA,QACH;AAAA,MACR,CAAO;AACD,YAAM,uBAAuB,SAAU,QAAQ;AAC7C,YAAI,QAAQ,WAAW,SAAS,CAAA,IAAK,QACnC,UAAU,MAAM;AAChB,cAAM;AACN,YAAI,YAAY,MAAM,WACtB,UAAU,MAAM,SAChB,SAAS,MAAM,QACf,OAAO,8BAA8B,OAAO,YAAY;AAC1D,YAAI,kBAAkB,MAAM,SAAQ,GAClC,SAAS,gBAAgB;AAC3B,YAAI,uBAAuB;AAAA,UACzB,SAAS,qBAAqB,SAAS,MAAM,iBAAiB;AAAA,UAC9D,WAAW,qBAAqB,WAAW,MAAM,mBAAmB;AAAA,UACpE,SAAS,qBAAqB,SAAS,MAAM,iBAAiB;AAAA,UAC9D,QAAQ,qBAAqB,QAAQ,MAAM,gBAAgB;AAAA,QACrE;AACQ,YAAI,gBAAgB,KAAK,WAAW,CAAA,IAAK;AACzC,eAAO,SAAS;AAAA,UACd,MAAM;AAAA,UACN,MAAM;AAAA,UACN,cAAc,SAAS,eAAe;AAAA,UACtC,iBAAiB;AAAA,UACjB,eAAe;AAAA,QACzB,GAAW,eAAe,IAAI;AAAA,MACxB;AACA,YAAM,oBAAoB,SAAU,OAAO;AAEzC,cAAM,eAAc;AAAA,MACtB;AACA,YAAM,sBAAsB,SAAU,OAAO;AAC3C,YAAI,MAAM,kBAAkB,KAAK;AACjC,YAAI,MAAM,sBAAsB,GAAG,GAAG;AACpC,gBAAM,sBAAsB,GAAG,EAAE,KAAK,OAAO,KAAK;AAAA,QACpD;AAAA,MACF;AACA,YAAM,oBAAoB,SAAU,OAAO;AACzC,cAAM,eAAc;AAIpB,YAAI,MAAM,MAAM,aAAa;AAC3B,cAAI,wBAAwB,MAAM,MAAM,YAAY,UAClD,OAAO,sBAAsB,MAC7B,gBAAgB,sBAAsB;AACxC,cAAI,QAAQ,SAAS,eAAe;AAClC,kBAAM,OAAO,MAAK;AAAA,UACpB;AAAA,QACF;AAIA,YAAI,QAAQ,IAAI,aAAa,QAAQ;AACnC,gBAAM,WAAW;AAAA,YACf,MAAM;AAAA,UAClB,CAAW;AAAA,QACH,OAAO;AAEL,gBAAM,mBAAmB,WAAY;AACnC,mBAAO,MAAM,WAAW;AAAA,cACtB,MAAM;AAAA,YACpB,CAAa;AAAA,UACH,CAAC;AAAA,QACH;AAAA,MACF;AACA,YAAM,mBAAmB,SAAU,OAAO;AACxC,YAAI,aAAa,MAAM;AAEvB,cAAM,mBAAmB,WAAY;AACnC,cAAI,MAAM,eAAe,CAAC,MAAM,MAAM,aAAa;AACjD;AAAA,UACF;AACA,cAAI,gBAAgB,MAAM,MAAM,YAAY,SAAS;AACrD,eAAK,iBAAiB,QAAQ,cAAc,OAAO,MAAM,YAAY,kBAAkB,YACrF;AACA,kBAAM,MAAM;AAAA,cACV,MAAM;AAAA,YACpB,CAAa;AAAA,UACH;AAAA,QACF,CAAC;AAAA,MACH;AAGA,YAAM,gBAAgB,SAAU,OAAO;AACrC,eAAO,SAAS;AAAA,UACd,SAAS,MAAM;AAAA,UACf,IAAI,MAAM;AAAA,QACpB,GAAW,KAAK;AAAA,MACV;AAGA,YAAM,gBAAgB,SAAU,QAAQ;AACtC,YAAI,QAAQ,WAAW,SAAS,CAAA,IAAK,QACnC,YAAY,MAAM,WAClB,SAAS,MAAM,QACf,WAAW,MAAM,UACjB,UAAU,MAAM;AAChB,cAAM;AACN,YAAI,OAAO,8BAA8B,OAAO,YAAY;AAC9D,YAAI;AACJ,YAAI,gBAAgB,CAAA;AAGpB;AACE,wBAAc;AAAA,QAChB;AACA,YAAI,kBAAkB,MAAM,SAAQ,GAClC,aAAa,gBAAgB,YAC7B,SAAS,gBAAgB,QACzB,mBAAmB,gBAAgB;AACrC,YAAI,CAAC,KAAK,UAAU;AAClB,cAAI;AACJ,2BAAiB,iBAAiB,IAAI,eAAe,WAAW,IAAI,qBAAqB,UAAU,SAAS,MAAM,iBAAiB,GAAG,eAAe,YAAY,qBAAqB,WAAW,MAAM,kBAAkB,GAAG,eAAe,SAAS,qBAAqB,QAAQ,MAAM,eAAe,GAAG;AAAA,QAC3S;AACA,eAAO,SAAS;AAAA,UACd,qBAAqB;AAAA,UACrB,yBAAyB,UAAU,OAAO,qBAAqB,YAAY,oBAAoB,IAAI,MAAM,UAAU,gBAAgB,IAAI;AAAA,UACvI,iBAAiB,SAAS,MAAM,SAAS;AAAA,UACzC,mBAAmB,QAAQ,KAAK,YAAY,IAAI,SAAY,MAAM;AAAA;AAAA;AAAA,UAGlE,cAAc;AAAA,UACd,OAAO;AAAA,UACP,IAAI,MAAM;AAAA,QACpB,GAAW,eAAe,IAAI;AAAA,MACxB;AACA,YAAM,qBAAqB,SAAU,OAAO;AAC1C,YAAI,MAAM,kBAAkB,KAAK;AACjC,YAAI,OAAO,MAAM,qBAAqB,GAAG,GAAG;AAC1C,gBAAM,qBAAqB,GAAG,EAAE,KAAK,OAAO,KAAK;AAAA,QACnD;AAAA,MACF;AACA,YAAM,oBAAoB,SAAU,OAAO;AACzC,cAAM,iBAAiB;AAAA,UACrB,MAAM;AAAA,UACN,QAAQ;AAAA,UACR,YAAY,MAAM,OAAO;AAAA,UACzB,kBAAkB,MAAM,MAAM;AAAA,QACxC,CAAS;AAAA,MACH;AACA,YAAM,kBAAkB,WAAY;AAElC,cAAM,mBAAmB,WAAY;AACnC,cAAI;AACJ,cAAI,MAAM,eAAe,CAAC,MAAM,MAAM,aAAa;AACjD;AAAA,UACF;AACA,cAAI,gBAAgB,MAAM,MAAM,YAAY,SAAS;AACrD,cAAI,2BAA2B,iBAAiB,SAAS,wBAAwB,cAAc,YAAY,OAAO,SAAS,sBAAsB,WAAW,MAAM,aAAa,MAAM,UAAU,SAAS,aAAa;AACrN,cAAI,CAAC,yBAAyB;AAC5B,kBAAM,MAAM;AAAA,cACV,MAAM;AAAA,YACpB,CAAa;AAAA,UACH;AAAA,QACF,CAAC;AAAA,MACH;AAGA,YAAM,UAAU,SAAU,MAAM;AAC9B,cAAM,YAAY;AAAA,MACpB;AACA,YAAM,eAAe,SAAU,QAAQ,QAAQ;AAC7C,YAAI;AACJ,YAAI,QAAQ,WAAW,SAAS,CAAA,IAAK,QACnC,eAAe,MAAM,QACrB,SAAS,iBAAiB,SAAS,QAAQ,cAC3C,MAAM,MAAM,KACZ,QAAQ,8BAA8B,OAAO,YAAY;AAC3D,YAAI,QAAQ,WAAW,SAAS,CAAA,IAAK,QACnC,wBAAwB,MAAM,kBAC9B,mBAAmB,0BAA0B,SAAS,QAAQ;AAChE,cAAM,aAAa,SAAS;AAC5B,cAAM,aAAa,SAAS;AAC5B,cAAM,aAAa,mBAAmB;AACtC,eAAO,UAAU,YAAY,CAAA,GAAI,UAAU,MAAM,IAAI,WAAW,KAAK,MAAM,OAAO,GAAG,UAAU,OAAO,WAAW,UAAU,iBAAiB,IAAI,SAAS,MAAM,YAAY,IAAI,SAAY,MAAM,SAAS,UAAU,KAAK,MAAM,QAAQ,YAAY,KAAK;AAAA,MAC1P;AAGA,YAAM,eAAe,SAAU,QAAQ;AACrC,YAAI;AACJ,YAAI,QAAQ,WAAW,SAAS,CAAA,IAAK,QACnC,cAAc,MAAM,aACpB,cAAc,MAAM,aACpB,UAAU,MAAM;AAChB,cAAM;AACN,YAAIA,SAAQ,MAAM,OAClB,aAAa,MAAM,MACnB,OAAO,eAAe,SAAS,QAAQ,IAAI,aAAa;AAAA;AAAA,UAAyC;AAAA,YAAY,aAAa,gBAAgB,MAAM,IAAI,YACpJ,OAAO,8BAA8B,OAAO,UAAU;AACxD,YAAIA,WAAU,QAAW;AACvB,gBAAM,MAAM,KAAK,IAAI;AACrB,UAAAA,SAAQ,MAAM,MAAM,QAAQ,IAAI;AAAA,QAClC,OAAO;AACL,gBAAM,MAAMA,MAAK,IAAI;AAAA,QACvB;AACA,YAAI,cAAc;AAClB,YAAI,qBAAqB;AACzB,YAAI,wBAAwB,wBAAwB;AAAA;AAAA;AAAA;AAAA,UAIlD,aAAa,qBAAqB,aAAa,WAAY;AACzD,gBAAIA,WAAU,MAAM,SAAQ,EAAG,kBAAkB;AAC/C;AAAA,YACF;AACA,kBAAM,oBAAoBA,QAAO;AAAA,cAC/B,MAAM;AAAA,YACpB,CAAa;AAMD,kBAAM,iBAAiB;AACvB,kBAAM,mBAAmB,WAAY;AACnC,qBAAO,MAAM,iBAAiB;AAAA,YAChC,GAAG,GAAG;AAAA,UACR,CAAC;AAAA,UACD,aAAa,qBAAqB,aAAa,SAAU,OAAO;AAI9D,kBAAM,eAAc;AAAA,UACtB,CAAC;AAAA,QACX,GAAW,sBAAsB,WAAW,IAAI,qBAAqB,oBAAoB,WAAY;AAC3F,gBAAM,kBAAkBA,QAAO;AAAA,YAC7B,MAAM;AAAA,UAClB,CAAW;AAAA,QACH,CAAC,GAAG;AAIJ,YAAI,gBAAgB,KAAK,WAAW;AAAA,UAClC,aAAa,qBAAqB;AAAA,QAC5C,IAAY;AACJ,eAAO,SAAS;AAAA,UACd,IAAI,MAAM,UAAUA,MAAK;AAAA,UACzB,MAAM;AAAA,UACN,iBAAiB,MAAM,SAAQ,EAAG,qBAAqBA;AAAA,QACjE,GAAW,eAAe,IAAI;AAAA,MACxB;AAEA,YAAM,aAAa,WAAY;AAC7B,cAAM,QAAQ,CAAA;AAAA,MAChB;AACA,YAAM,QAAQ,SAAU,iBAAiB,IAAI;AAC3C,YAAI,oBAAoB,QAAQ;AAC9B,4BAAkB,CAAA;AAAA,QACpB;AACA,0BAAkB,UAAU,eAAe;AAC3C,cAAM,iBAAiB,SAAU,OAAO;AACtC,cAAI,eAAe,MAAM;AACzB,iBAAO,SAAS;AAAA,YACd,QAAQ,MAAM,MAAM;AAAA,YACpB,kBAAkB,MAAM,MAAM;AAAA,YAC9B,YAAY,MAAM,MAAM,aAAa,YAAY;AAAA,UAC7D,GAAa,eAAe;AAAA,QACpB,GAAG,EAAE;AAAA,MACP;AACA,YAAM,aAAa,SAAU,iBAAiB,IAAI;AAChD,YAAI,oBAAoB,QAAQ;AAC9B,4BAAkB,CAAA;AAAA,QACpB;AACA,0BAAkB,UAAU,eAAe;AAC3C,cAAM,iBAAiB,SAAU,OAAO;AACtC,cAAI,SAAS,MAAM;AACnB,iBAAO,SAAS;AAAA,YACd,QAAQ,CAAC;AAAA,UACrB,GAAa,UAAU;AAAA,YACX,kBAAkB,MAAM,MAAM;AAAA,UAC1C,GAAa,eAAe;AAAA,QACpB,GAAG,WAAY;AACb,cAAI,kBAAkB,MAAM,SAAQ,GAClC,SAAS,gBAAgB,QACzB,mBAAmB,gBAAgB;AACrC,cAAI,QAAQ;AACV,gBAAI,MAAM,aAAY,IAAK,KAAK,OAAO,qBAAqB,UAAU;AACpE,oBAAM,oBAAoB,kBAAkB,eAAe;AAAA,YAC7D;AAAA,UACF;AACA,iBAAO,EAAE,EAAC;AAAA,QACZ,CAAC;AAAA,MACH;AACA,YAAM,WAAW,SAAU,IAAI;AAC7B,cAAM,iBAAiB;AAAA,UACrB,QAAQ;AAAA,QAClB,GAAW,EAAE;AAAA,MACP;AACA,YAAM,YAAY,SAAU,IAAI;AAC9B,cAAM,iBAAiB;AAAA,UACrB,QAAQ;AAAA,QAClB,GAAW,EAAE;AAAA,MACP;AACA,YAAM,eAAe,SAAS,WAAY;AACxC,YAAI;AACJ,YAAI,GAAG,cAAc,MAAM,UAAU,SAAS,cAAc,YAAY,gBAAgB,QAAQ,YAAY,WAAW;AACrH;AAAA,QACF;AACA,YAAI,QAAQ,MAAM,SAAQ;AAC1B,YAAI,OAAO,MAAM,MAAM,MAAM,gBAAgB;AAC7C,YAAI,cAAc,MAAM,aAAY;AACpC,YAAI,SAAS,MAAM,MAAM,qBAAqB,SAAS;AAAA,UACrD,cAAc,MAAM,MAAM;AAAA,UAC1B,qBAAqB,MAAM;AAAA,UAC3B;AAAA,UACA,iBAAiB;AAAA,QAC3B,GAAW,KAAK,CAAC;AACT,cAAM,sBAAsB;AAC5B,kBAAU,QAAQ,MAAM,MAAM,YAAY,QAAQ;AAAA,MACpD,GAAG,GAAG;AACN,UAAI,eAAe,MAAM,OACvB,0BAA0B,aAAa,yBACvC,wBAAwB,aAAa,yBACrC,oBAAoB,0BAA0B,SAAS,0BAA0B,uBACjF,gBAAgB,aAAa,eAC7B,wBAAwB,aAAa,eACrC,UAAU,0BAA0B,SAAS,gBAAgB,uBAC7D,yBAAyB,aAAa,mBACtC,cAAc,2BAA2B,SAAS,KAAK,wBACvD,wBAAwB,aAAa,qBACrC,gBAAgB,0BAA0B,SAAS,OAAO;AAC5D,UAAI,SAAS,MAAM,SAAS;AAAA,QAC1B,kBAAkB;AAAA,QAClB,QAAQ;AAAA,QACR,YAAY;AAAA,QACZ,cAAc;AAAA,MACtB,CAAO;AACD,UAAI,OAAO,gBAAgB,QAAQ,MAAM,MAAM,sBAAsB,QAAW;AAC9E,eAAO,aAAa,MAAM,MAAM,aAAa,OAAO,YAAY;AAAA,MAClE;AACA,YAAM,QAAQ;AACd,aAAO;AAAA,IACT;AACA,mBAAeE,YAAW,UAAU;AACpC,QAAI,SAASA,WAAU;AAIvB,WAAO,wBAAwB,SAAS,wBAAwB;AAC9D,WAAK,WAAW,QAAQ,SAAU,IAAI;AACpC,qBAAa,EAAE;AAAA,MACjB,CAAC;AACD,WAAK,aAAa,CAAA;AAAA,IACpB;AAWA,WAAO,WAAW,SAAS,WAAW,cAAc;AAClD,UAAI,iBAAiB,QAAQ;AAC3B,uBAAe,KAAK;AAAA,MACtB;AACA,aAAO,SAAS,cAAc,KAAK,KAAK;AAAA,IAC1C;AACA,WAAO,eAAe,SAAS,eAAe;AAK5C,UAAI,YAAY,KAAK,MAAM;AAC3B,UAAI,KAAK,aAAa,MAAM;AAC1B,oBAAY,KAAK;AAAA,MACnB,WAAW,KAAK,MAAM,cAAc,QAAW;AAC7C,oBAAY,KAAK,MAAM;AAAA,MACzB;AACA,aAAO;AAAA,IACT;AACA,WAAO,uBAAuB,SAAS,qBAAqBF,QAAO;AACjE,aAAO,KAAK,MAAM,cAAc,KAAK,MAAM,YAAY,SAAS,eAAe,KAAK,UAAUA,MAAK,CAAC,IAAI;AAAA,IAC1G;AACA,WAAO,gCAAgC,SAAS,gCAAgC;AAE9E;AACE,YAAI,OAAO,KAAK,qBAAqB,KAAK,SAAQ,EAAG,gBAAgB;AACrE,aAAK,MAAM,eAAe,MAAM,KAAK,SAAS;AAAA,MAChD;AAAA,IACF;AACA,WAAO,uBAAuB,SAAS,qBAAqB,QAAQ,iBAAiB;AACnF,UAAI,YAAY,KAAK,aAAY;AACjC,UAAI,kBAAkB,KAAK,SAAQ,GACjC,mBAAmB,gBAAgB;AACrC,UAAI,YAAY,GAAG;AACjB,YAAI,uBAAuB,oBAAoB,kBAAkB,QAAQ;AAAA,UACvE,QAAQ;AAAA,QAClB,GAAW,KAAK,gBAAgB,IAAI;AAC5B,aAAK,oBAAoB,sBAAsB,eAAe;AAAA,MAChE;AAAA,IACF;AACA,WAAO,qBAAqB,SAAS,qBAAqB;AACxD,UAAI,kBAAkB,KAAK,SAAQ,GACjC,mBAAmB,gBAAgB,kBACnC,aAAa,gBAAgB,YAC7B,eAAe,gBAAgB,cAC/B,SAAS,gBAAgB;AAC3B,UAAIG,gBAAe,KAAK,MAAM;AAC9B,UAAI,KAAK,KAAK;AACd,UAAI,eAAe,KAAK,cACtB,uBAAuB,KAAK,sBAC5B,gBAAgB,KAAK,eACrB,eAAe,KAAK,cACpB,gBAAgB,KAAK,eACrB,eAAe,KAAK,cACpB,WAAW,KAAK,UAChB,YAAY,KAAK,WACjB,aAAa,KAAK,YAClB,aAAa,KAAK,YAClB,oBAAoB,KAAK,mBACzB,wBAAwB,KAAK,uBAC7B,sBAAsB,KAAK,qBAC3B,iBAAiB,KAAK,gBACtB,aAAa,KAAK,YAClB,QAAQ,KAAK,OACb,eAAe,KAAK,cACpB,iBAAiB,KAAK,gBACtB,WAAW,KAAK;AAClB,aAAO;AAAA;AAAA,QAEL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,QAEA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,QAEA,cAAcA;AAAA;AAAA,QAEd;AAAA;AAAA,QAEA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACR;AAAA,IACI;AACA,WAAO,oBAAoB,SAAS,oBAAoB;AACtD,UAAI,SAAS;AAEb,UAAI,QAAQ,IAAI,aAAa,gBAAgB,QAAQ,KAAK,aAAa,UAAU,CAAC,KAAK,aAAa,kBAAkB;AACpH,4CAAoC,KAAK,WAAW,KAAK,YAAY;AAAA,MACvE;AAGA,UAAI,CAAC,KAAK,MAAM,aAAa;AAC3B,aAAK,UAAU,WAAY;AACzB,iBAAO,sBAAqB;AAAA,QAC9B;AAAA,MACF,OAAO;AAML,YAAI,cAAc,SAASC,eAAc;AACvC,iBAAO,cAAc;AAAA,QACvB;AACA,YAAI,YAAY,SAASC,WAAU,OAAO;AACxC,iBAAO,cAAc;AAGrB,cAAI,yBAAyB,sBAAsB,MAAM,QAAQ,CAAC,OAAO,WAAW,OAAO,SAAS,GAAG,OAAO,MAAM,WAAW;AAC/H,cAAI,CAAC,0BAA0B,OAAO,SAAQ,EAAG,QAAQ;AACvD,mBAAO,MAAM;AAAA,cACX,MAAM;AAAA,YACpB,GAAe,WAAY;AACb,qBAAO,OAAO,MAAM,aAAa,OAAO,mBAAkB,CAAE;AAAA,YAC9D,CAAC;AAAA,UACH;AAAA,QACF;AAOA,YAAI,eAAe,SAASC,gBAAe;AACzC,iBAAO,cAAc;AAAA,QACvB;AACA,YAAI,cAAc,SAASC,eAAc;AACvC,iBAAO,cAAc;AAAA,QACvB;AACA,YAAI,aAAa,SAASC,YAAW,OAAO;AAC1C,cAAI,yBAAyB,sBAAsB,MAAM,QAAQ,CAAC,OAAO,WAAW,OAAO,SAAS,GAAG,OAAO,MAAM,aAAa,KAAK;AACtI,cAAI,CAAC,OAAO,eAAe,CAAC,0BAA0B,OAAO,SAAQ,EAAG,QAAQ;AAC9E,mBAAO,MAAM;AAAA,cACX,MAAM;AAAA,YACpB,GAAe,WAAY;AACb,qBAAO,OAAO,MAAM,aAAa,OAAO,mBAAkB,CAAE;AAAA,YAC9D,CAAC;AAAA,UACH;AAAA,QACF;AACA,YAAI,cAAc,KAAK,MAAM;AAC7B,oBAAY,iBAAiB,aAAa,WAAW;AACrD,oBAAY,iBAAiB,WAAW,SAAS;AACjD,oBAAY,iBAAiB,cAAc,YAAY;AACvD,oBAAY,iBAAiB,aAAa,WAAW;AACrD,oBAAY,iBAAiB,YAAY,UAAU;AACnD,aAAK,UAAU,WAAY;AACzB,iBAAO,sBAAqB;AAC5B,iBAAO,aAAa,OAAM;AAC1B,sBAAY,oBAAoB,aAAa,WAAW;AACxD,sBAAY,oBAAoB,WAAW,SAAS;AACpD,sBAAY,oBAAoB,cAAc,YAAY;AAC1D,sBAAY,oBAAoB,aAAa,WAAW;AACxD,sBAAY,oBAAoB,YAAY,UAAU;AAAA,QACxD;AAAA,MACF;AAAA,IACF;AACA,WAAO,eAAe,SAAS,aAAa,WAAW,WAAW;AAChE,UAAI,QAAQ,KAAK,MAAM,qBAAqB,SAAY,KAAK,aAAa,KAAK,OAC7E,0BAA0B,MAAM;AAClC,UAAI,QAAQ,UAAU,qBAAqB,SAAY,YAAY,WACjE,uBAAuB,MAAM;AAC/B,UAAI,iBAAiB,2BAA2B,KAAK,SAAQ,EAAG,UAAU,CAAC,UAAU;AACrF,UAAI,uBAAuB,4BAA4B;AACvD,aAAO,kBAAkB;AAAA,IAC3B;AACA,WAAO,qBAAqB,SAAS,mBAAmB,WAAW,WAAW;AAC5E,UAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,oCAA4B,KAAK,OAAO,WAAW,KAAK,KAAK;AAE7D,YAAI,KAAK,aAAa,UAAU,CAAC,KAAK,aAAa,kBAAkB;AACnE,8CAAoC,KAAK,WAAW,KAAK,YAAY;AAAA,QACvE;AAAA,MACF;AACA,UAAI,iBAAiB,KAAK,OAAO,cAAc,KAAK,KAAK,MAAM,oBAAoB,UAAU,cAAc,KAAK,MAAM,YAAY,GAAG;AACnI,aAAK,iBAAiB;AAAA,UACpB,MAAM;AAAA,UACN,YAAY,KAAK,MAAM,aAAa,KAAK,MAAM,YAAY;AAAA,QACrE,CAAS;AAAA,MACH;AACA,UAAI,CAAC,KAAK,kBAAkB,KAAK,aAAa,WAAW,SAAS,GAAG;AACnE,aAAK,8BAA6B;AAAA,MACpC;AAGA;AACE,aAAK,aAAY;AAAA,MACnB;AAAA,IACF;AACA,WAAO,uBAAuB,SAAS,uBAAuB;AAC5D,WAAK,QAAO;AAAA,IACd;AACA,WAAO,SAAS,SAAS,SAAS;AAChC,UAAI,WAAW,YAAY,KAAK,MAAM,UAAUb,MAAI;AAIpD,WAAK,WAAU;AAKf,WAAK,aAAa,SAAS;AAC3B,WAAK,aAAa,SAAS;AAC3B,WAAK,aAAa,mBAAmB;AAErC,WAAK,aAAa,SAAS;AAC3B,WAAK,aAAa,SAAS;AAC3B,WAAK,aAAa,mBAAmB;AAErC,WAAK,cAAc,SAAS;AAE5B,WAAK,cAAc,SAAS;AAC5B,UAAI,UAAU,YAAY,SAAS,KAAK,mBAAkB,CAAE,CAAC;AAC7D,UAAI,CAAC,SAAS;AACZ,eAAO;AAAA,MACT;AACA,UAAI,KAAK,aAAa,UAAU,KAAK,MAAM,kBAAkB;AAC3D,YAAI,QAAQ,IAAI,aAAa,gBAAgB,CAAC,KAAK,aAAa,oBAAoB,CAAC,KAAK,MAAM,kBAAkB;AAChH,8CAAoC,SAAS,KAAK,YAAY;AAAA,QAChE;AACA,eAAO;AAAA,MACT,WAAW,aAAa,OAAO,GAAG;AAGhC,eAAoB,6BAAa,SAAS,KAAK,aAAa,gBAAgB,OAAO,CAAC,CAAC;AAAA,MACvF;AAGA,UAAI,QAAQ,IAAI,aAAa,cAAc;AAIzC,cAAM,IAAI,MAAM,sFAAsF;AAAA,MACxG;AAGA,aAAO;AAAA,IACT;AACA,WAAOO;AAAA,EACT,EAAE,SAAS;AACX,EAAAA,WAAU,eAAe;AAAA,IACvB,yBAAyB;AAAA,IACzB,eAAe;AAAA,IACf,sBAAsBL;AAAAA,IACtB,cAAc,SAASM,cAAa,GAAG;AACrC,UAAI,KAAK,MAAM;AACb,eAAO;AAAA,MACT;AACA,UAAI,QAAQ,IAAI,aAAa,gBAAgB,cAAc,CAAC,KAAK,CAAC,EAAE,eAAe,UAAU,GAAG;AAE9F,gBAAQ,KAAK,8MAA8M,+BAA+B,CAAC;AAAA,MAC7P;AACA,aAAO,OAAO,CAAC;AAAA,IACjB;AAAA,IACA,eAAeR;AAAAA,IACf,oBAAoBA;AAAAA,IACpB,cAAcA;AAAAA,IACd,UAAUA;AAAAA,IACV,UAAUA;AAAAA,IACV,cAAcA;AAAAA,IACd,qBAAqB,SAAS,oBAAoB,UAAU,MAAM;AAChE,aAAO,aAAa;AAAA,IACtB;AAAA,IACA;AAAA;AAAA,MACA,OAAO,WAAW,eAAe,QAAQ,SAAY;AAAA;AAAA,IACrD,cAAc,SAASc,cAAa,OAAO,YAAY;AACrD,aAAO;AAAA,IACT;AAAA,IACA,kBAAkB;AAAA,IAClB;AAAA,EACJ;AACE,EAAAP,WAAU,mBAAmB;AAC7B,SAAOA;AACT,EAAC;AACD,QAAQ,IAAI,aAAa,eAAe,UAAU,YAAY;AAAA,EAC5D,UAAU,UAAU;AAAA,EACpB,yBAAyB,UAAU;AAAA,EACnC,eAAe,UAAU;AAAA,EACzB,yBAAyB,UAAU;AAAA,EACnC,qBAAqB,UAAU;AAAA,EAC/B,mBAAmB,UAAU;AAAA,EAC7B,eAAe,UAAU;AAAA,EACzB,sBAAsB,UAAU;AAAA,EAChC,cAAc,UAAU;AAAA,EACxB,UAAU,UAAU;AAAA,EACpB,UAAU,UAAU;AAAA,EACpB,eAAe,UAAU;AAAA,EACzB,oBAAoB,UAAU;AAAA,EAC9B,cAAc,UAAU;AAAA,EACxB,cAAc,UAAU;AAAA,EACxB,qBAAqB,UAAU;AAAA,EAC/B,cAAc,UAAU;AAAA,EACxB,WAAW,UAAU;AAAA,EACrB,IAAI,UAAU;AAAA,EACd,aAAa,UAAU,MAAM;AAAA,IAC3B,kBAAkB,UAAU,KAAK;AAAA,IACjC,qBAAqB,UAAU,KAAK;AAAA,IACpC,UAAU,UAAU,MAAM;AAAA,MACxB,eAAe,UAAU,KAAK;AAAA,MAC9B,gBAAgB,UAAU,KAAK;AAAA,MAC/B,eAAe,UAAU,IAAI;AAAA,MAC7B,MAAM,UAAU,IAAI;AAAA,IAC1B,CAAK,EAAE;AAAA,IACH,MAAM,UAAU,KAAK;AAAA,EACzB,CAAG;AAAA,EACD,kBAAkB,UAAU;AAAA,EAC5B,gBAAgB,UAAU;AAAA;AAAA;AAAA;AAAA,EAI1B,cAAc,UAAU;AAAA,EACxB,QAAQ,UAAU;AAAA,EAClB,YAAY,UAAU;AAAA,EACtB,kBAAkB,UAAU;AAAA,EAC5B,SAAS,UAAU;AAAA,EACnB,SAAS,UAAU;AAAA,EACnB,QAAQ,UAAU;AAAA,EAClB,WAAW,UAAU;AAAA;AAEvB,IAAI;AACJ,SAAS,oCAAoC,MAAM,QAAQ;AACzD,MAAI,SAAS,OAAO;AACpB,MAAI,CAAC,MAAM;AAET,YAAQ,MAAM,8BAA+B,SAAS,qEAAsE;AAAA,EAC9H;AACF;AACA,SAAS,oCAAoC,SAAS,QAAQ;AAC5D,MAAI,SAAS,OAAO;AACpB,MAAI,kBAAkB,WAAW;AACjC,MAAI,cAAc,CAAC,aAAa,OAAO;AACvC,MAAI,eAAe,CAAC,mBAAmB,CAACQ,eAAAA,aAAa,OAAO,GAAG;AAE7D,YAAQ,MAAM,sFAAsF;AAAA,EACtG,WAAW,CAAC,eAAe,iBAAiB;AAE1C,YAAQ,MAAM,4GAA6G,SAAS,GAAI;AAAA,EAC1I;AACA,MAAI,CAACA,eAAAA,aAAa,OAAO,KAAK,CAAC,gBAAgB,OAAO,EAAE,MAAM,GAAG;AAE/D,YAAQ,MAAM,6CAA8C,SAAS,6CAA8C;AAAA,EACrH;AACF;AAEA,IAAI,6BAA6B;AAAA,EAC/B,kBAAkB;AAAA,EAClB,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,YAAY;AACd;AACA,SAAS,kBAAkB,QAAQ,OAAO,UAAU;AAClD,MAAI,QAAQ,OAAO,OACjB,OAAO,OAAO;AAChB,MAAI,UAAU,CAAA;AACd,SAAO,KAAK,KAAK,EAAE,QAAQ,SAAU,KAAK;AACxC,0BAAsB,KAAK,QAAQ,OAAO,QAAQ;AAClD,QAAI,SAAS,GAAG,MAAM,MAAM,GAAG,GAAG;AAChC,cAAQ,GAAG,IAAI,SAAS,GAAG;AAAA,IAC7B;AAAA,EACF,CAAC;AACD,MAAI,MAAM,iBAAiB,OAAO,KAAK,OAAO,EAAE,QAAQ;AACtD,UAAM,cAAc,SAAS;AAAA,MAC3B;AAAA,IACN,GAAO,OAAO,CAAC;AAAA,EACb;AACF;AACA,SAAS,sBAAsB,KAAK,QAAQ,OAAO,UAAU;AAC3D,MAAI,QAAQ,OAAO,OACjB,OAAO,OAAO;AAChB,MAAI,UAAU,OAAO,iBAAiB,GAAG,IAAI;AAC7C,MAAI,MAAM,OAAO,KAAK,SAAS,GAAG,MAAM,UAAa,SAAS,GAAG,MAAM,MAAM,GAAG,GAAG;AACjF,UAAM,OAAO,EAAE,SAAS;AAAA,MACtB;AAAA,IACN,GAAO,QAAQ,CAAC;AAAA,EACd;AACF;AASA,SAAS,aAAa,GAAG,GAAG;AAC1B,SAAO,EAAE;AACX;AAKA,IAAI,mBAAmB,SAAS,SAAU,QAAQC,WAAU;AAC1D,YAAU,QAAQA,SAAQ;AAC5B,GAAG,GAAG;AAGN,IAAI,4BAA4B,OAAO,WAAW,eAAe,OAAO,OAAO,aAAa,eAAe,OAAO,OAAO,SAAS,kBAAkB,cAAc,kBAAkB;AAGpL,IAAI,gBAAgB,WAAWC,iBAC7B,SAASC,eAAc,MAAM;AAC7B,MAAI,KAAK,KAAK,IACZ,UAAU,KAAK,SACf,SAAS,KAAK,QACd,YAAY,KAAK,WACjB,iBAAiB,KAAK,gBACtB,UAAU,KAAK;AAEjB,MAAI,UAAU,eAAeD,eAAM,MAAK;AACxC,MAAI,CAAC,IAAI;AACP,SAAK;AAAA,EACP;AACA,MAAI,gBAAgB,OAAO;AAAA,IACzB,SAAS,WAAW,KAAK;AAAA,IACzB,QAAQ,UAAU,KAAK;AAAA,IACvB,WAAW,aAAa,SAAUZ,QAAO;AACvC,aAAO,KAAK,WAAWA;AAAA,IACzB;AAAA,IACA,gBAAgB,kBAAkB,KAAK;AAAA,IACvC,SAAS,WAAW,KAAK;AAAA,EAC7B,CAAG;AACD,SAAO,cAAc;AACvB,IAAI,SAASa,eAAc,OAAO;AAChC,MAAI,WAAW,MAAM,IACnB,KAAK,aAAa,SAAS,eAAe,WAAU,IAAK,UACzD,UAAU,MAAM,SAChB,SAAS,MAAM,QACf,YAAY,MAAM,WAClB,iBAAiB,MAAM,gBACvB,UAAU,MAAM;AAClB,MAAI,gBAAgB,OAAO;AAAA,IACzB,SAAS,WAAW,KAAK;AAAA,IACzB,QAAQ,UAAU,KAAK;AAAA,IACvB,WAAW,aAAa,SAAUb,QAAO;AACvC,aAAO,KAAK,WAAWA;AAAA,IACzB;AAAA,IACA,gBAAgB,kBAAkB,KAAK;AAAA,IACvC,SAAS,WAAW,KAAK;AAAA,EAC7B,CAAG;AACD,SAAO,cAAc;AACvB;AACA,SAAS,gBAAgB,UAAU,WAAW,OAAO,cAAc;AACjE,MAAI,MAAMA;AACV,MAAI,aAAa,QAAW;AAC1B,QAAI,cAAc,QAAW;AAC3B,YAAM,IAAI,MAAM,YAAY;AAAA,IAC9B;AACA,WAAO,MAAM,SAAS;AACtB,IAAAA,SAAQ;AAAA,EACV,OAAO;AACL,IAAAA,SAAQ,cAAc,SAAY,MAAM,QAAQ,QAAQ,IAAI;AAC5D,WAAO;AAAA,EACT;AACA,SAAO,CAAC,MAAMA,MAAK;AACrB;AACA,SAAS,uBAAuB,KAAK;AACnC,SAAO,UAAU,KAAK,GAAG;AAC3B;AACA,SAAS,iBAAiB,QAAQ;AAChC,SAAO,KAAK,OAAO,MAAM,GAAG,CAAC,EAAE,gBAAgB,OAAO,MAAM,CAAC;AAC/D;AACA,SAASc,eAAa,KAAK;AACzB,MAAI,MAAM,OAAO,GAAG;AAMpB,MAAI,UAAU;AACd,SAAO;AACT;AAaA,SAAS,mBAAmB,SAAS,OAAO,oBAAoBC,eAAc;AAC5E,MAAI,eAAe,OAAM;AACzB,MAAI,YAAY,OAAM;AACtB,MAAI,kBAAkB,YAAY,SAAUC,QAAOC,SAAQ;AACzD,cAAU,UAAUA;AACpB,IAAAD,SAAQ,SAASA,QAAOC,QAAO,KAAK;AACpC,QAAI,UAAU,QAAQD,QAAOC,OAAM;AACnC,QAAI,WAAWA,QAAO,MAAM,aAAaD,QAAO,SAAS,CAAA,GAAIC,SAAQ;AAAA,MACnE;AAAA,IACN,CAAK,CAAC;AACF,WAAO;AAAA,EACT,GAAG,CAAC,OAAO,CAAC;AACZ,MAAI,cAAc,WAAW,iBAAiB,OAAO,kBAAkB,GACrE,QAAQ,YAAY,CAAC,GACrB,WAAW,YAAY,CAAC;AAC1B,MAAI,WAAWH,eAAa,KAAK;AACjC,MAAI,oBAAoB,YAAY,SAAUG,SAAQ;AACpD,WAAO,SAAS,SAAS;AAAA,MACvB,OAAO,SAAS;AAAA,IACtB,GAAOA,OAAM,CAAC;AAAA,EACZ,GAAG,CAAC,QAAQ,CAAC;AACb,MAAI,SAAS,UAAU;AACvB,YAAU,WAAY;AACpB,QAAI,YAAY,SAAS,aAAa,SAAS,UAAU,OAAO,SAAS,OAAO,KAAK;AACrF,QAAI,0BAA0B,UAAU,aAAa,WAAW,CAACF,cAAa,WAAW,KAAK;AAC9F,QAAI,yBAAyB;AAC3B,wBAAkB,QAAQ,WAAW,KAAK;AAAA,IAC5C;AACA,iBAAa,UAAU;AAAA,EACzB,GAAG,CAAC,OAAO,QAAQA,aAAY,CAAC;AAChC,SAAO,CAAC,OAAO,iBAAiB;AAClC;AAYA,SAAS,uBAAuB,SAAS,OAAO,oBAAoBA,eAAc;AAChF,MAAI,sBAAsB,mBAAmB,SAAS,OAAO,oBAAoBA,aAAY,GAC3F,QAAQ,oBAAoB,CAAC,GAC7B,WAAW,oBAAoB,CAAC;AAClC,SAAO,CAAC,SAAS,OAAO,KAAK,GAAG,QAAQ;AAC1C;AACA,IAAI,iBAAiB;AAAA,EACnB,cAAc,SAAS,aAAa,MAAM;AACxC,WAAO,OAAO,OAAO,IAAI,IAAI;AAAA,EAC/B;AAAA,EACA,WAAW,SAAS,UAAU,MAAM;AAClC,WAAO;AAAA,EACT;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,IACA,OAAO,WAAW,eAAe,QAAQ,SAAY;AAAA;AACvD;AACA,SAAS,kBAAkB,OAAO,SAASG,qBAAoB;AAC7D,MAAIA,wBAAuB,QAAQ;AACjC,IAAAA,sBAAqB;AAAA,EACvB;AACA,MAAI,eAAe,MAAM,YAAY,iBAAiB,OAAO,CAAC;AAC9D,MAAI,iBAAiB,QAAW;AAC9B,WAAO;AAAA,EACT;AACA,SAAOA,oBAAmB,OAAO;AACnC;AACA,SAAS,kBAAkB,OAAO,SAASA,qBAAoB;AAC7D,MAAIA,wBAAuB,QAAQ;AACjC,IAAAA,sBAAqB;AAAA,EACvB;AACA,MAAI,QAAQ,MAAM,OAAO;AACzB,MAAI,UAAU,QAAW;AACvB,WAAO;AAAA,EACT;AACA,MAAI,eAAe,MAAM,YAAY,iBAAiB,OAAO,CAAC;AAC9D,MAAI,iBAAiB,QAAW;AAC9B,WAAO;AAAA,EACT;AACA,SAAO,kBAAkB,OAAO,SAASA,mBAAkB;AAC7D;AACA,SAAS,kBAAkB,OAAO;AAChC,MAAI,eAAe,kBAAkB,OAAO,cAAc;AAC1D,MAAI,SAAS,kBAAkB,OAAO,QAAQ;AAC9C,MAAI,mBAAmB,2BAA2B,KAAK;AACvD,MAAI,aAAa,kBAAkB,OAAO,YAAY;AACtD,SAAO;AAAA,IACL,kBAAkB,mBAAmB,KAAK,gBAAgB,SAAS,MAAM,MAAM,UAAU,SAAU,MAAM;AACvG,aAAO,MAAM,UAAU,IAAI,MAAM,MAAM,UAAU,YAAY;AAAA,IAC/D,CAAC,IAAI;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AACA;AACA,SAAS,0BAA0B,OAAO,OAAOpB,SAAQ;AACvD,MAAI,QAAQ,MAAM,OAChB,0BAA0B,MAAM,yBAChC,0BAA0B,MAAM,yBAChCC,kBAAiB,MAAM,gBACvBoB,aAAY,MAAM;AACpB,MAAI,eAAe,MAAM,cACvB,mBAAmB,MAAM;AAC3B,MAAI,MAAM,WAAW,GAAG;AACtB,WAAO;AAAA,EACT;AAGA,MAAI,4BAA4B,UAAa,qBAAqB,2BAA2B,CAACpB,gBAAe,MAAM,uBAAuB,GAAG,uBAAuB,GAAG;AACrK,WAAO;AAAA,EACT;AACA,MAAI,4BAA4B,UAAa,CAACA,gBAAe,MAAM,uBAAuB,GAAG,uBAAuB,GAAG;AACrH,WAAO;AAAA,EACT;AACA,MAAI,cAAc;AAChB,WAAO,MAAM,UAAU,SAAU,MAAM;AACrC,aAAOoB,WAAU,YAAY,MAAMA,WAAU,IAAI;AAAA,IACnD,CAAC;AAAA,EACH;AACA,MAAIrB,UAAS,KAAK,CAACC,gBAAe,MAAM,MAAM,SAAS,CAAC,GAAG,MAAM,SAAS,CAAC,GAAG;AAC5E,WAAO,MAAM,SAAS;AAAA,EACxB;AACA,MAAID,UAAS,KAAK,CAACC,gBAAe,MAAM,CAAC,GAAG,CAAC,GAAG;AAC9C,WAAO;AAAA,EACT;AACA,SAAO;AACT;AASA,SAAS,wBAAwB,aAAa,YAAY,uBAAuB;AAC/E,MAAI,2BAA2B,OAAO;AAAA,IACpC,aAAa;AAAA,IACb,aAAa;AAAA,IACb,YAAY;AAAA,EAChB,CAAG;AACD,YAAU,WAAY;AACpB,QAAI,CAAC,aAAa;AAChB,aAAOJ;AAAAA,IACT;AACA,QAAI,oBAAoB,sBAAsB,IAAI,SAAU,KAAK;AAC/D,aAAO,IAAI;AAAA,IACb,CAAC;AACD,aAAS,cAAc;AACrB,+BAAyB,QAAQ,aAAa;AAC9C,+BAAyB,QAAQ,cAAc;AAAA,IACjD;AACA,aAAS,UAAU,OAAO;AACxB,+BAAyB,QAAQ,cAAc;AAC/C,UAAI,CAAC,sBAAsB,MAAM,QAAQ,mBAAmB,WAAW,GAAG;AACxE,mBAAU;AAAA,MACZ;AAAA,IACF;AACA,aAAS,eAAe;AACtB,+BAAyB,QAAQ,aAAa;AAC9C,+BAAyB,QAAQ,cAAc;AAAA,IACjD;AACA,aAAS,cAAc;AACrB,+BAAyB,QAAQ,cAAc;AAAA,IACjD;AACA,aAAS,WAAW,OAAO;AACzB,+BAAyB,QAAQ,aAAa;AAC9C,UAAI,CAAC,yBAAyB,QAAQ,eAAe,CAAC,sBAAsB,MAAM,QAAQ,mBAAmB,aAAa,KAAK,GAAG;AAChI,mBAAU;AAAA,MACZ;AAAA,IACF;AACA,gBAAY,iBAAiB,aAAa,WAAW;AACrD,gBAAY,iBAAiB,WAAW,SAAS;AACjD,gBAAY,iBAAiB,cAAc,YAAY;AACvD,gBAAY,iBAAiB,aAAa,WAAW;AACrD,gBAAY,iBAAiB,YAAY,UAAU;AACnD,WAAO,SAAS,UAAU;AACxB,kBAAY,oBAAoB,aAAa,WAAW;AACxD,kBAAY,oBAAoB,WAAW,SAAS;AACpD,kBAAY,oBAAoB,cAAc,YAAY;AAC1D,kBAAY,oBAAoB,aAAa,WAAW;AACxD,kBAAY,oBAAoB,YAAY,UAAU;AAAA,IACxD;AAAA,EACF,GAAG,CAAC,uBAAuB,aAAa,UAAU,CAAC;AACnD,SAAO,yBAAyB;AAClC;AAIA,IAAI,8BAA8B,SAASyB,+BAA8B;AACvE,SAAOzB;AACT;AAQA,IAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,gCAA8B,SAASyB,+BAA8B;AACnE,aAAS,OAAO,UAAU,QAAQ,WAAW,IAAI,MAAM,IAAI,GAAG,OAAO,GAAG,OAAO,MAAM,QAAQ;AAC3F,eAAS,IAAI,IAAI,UAAU,IAAI;AAAA,IACjC;AACA,QAAI,uBAAuB,OAAO,SAAS,OAAO,SAAU,KAAK,SAAS;AACxE,UAAI,OAAO,IAAI,CAAA;AACf,aAAO;AAAA,IACT,GAAG,CAAA,CAAE,CAAC;AACN,cAAU,WAAY;AACpB,aAAO,KAAK,qBAAqB,OAAO,EAAE,QAAQ,SAAU,SAAS;AACnE,YAAI,eAAe,qBAAqB,QAAQ,OAAO;AACvD,YAAI,CAAC,OAAO,KAAK,YAAY,EAAE,QAAQ;AAErC,kBAAQ,MAAM,uCAAuC,UAAU,+CAA+C;AAC9G;AAAA,QACF;AACA,YAAI,mBAAmB,aAAa,kBAClC,SAAS,aAAa,QACtB,aAAa,aAAa;AAC5B,YAAI,kBAAkB;AACpB;AAAA,QACF;AACA,YAAI,EAAE,cAAc,QAAQ,WAAW,UAAU;AAE/C,kBAAQ,MAAM,8BAA+B,SAAS,YAAa,UAAU,6CAA6C;AAAA,QAC5H;AAAA,MACF,CAAC;AAAA,IACH,GAAG,CAAA,CAAE;AACL,QAAI,wBAAwB,YAAY,SAAU,SAAS,kBAAkB,QAAQ,YAAY;AAC/F,2BAAqB,QAAQ,OAAO,IAAI;AAAA,QACtC;AAAA,QACA;AAAA,QACA;AAAA,MACR;AAAA,IACI,GAAG,CAAA,CAAE;AACL,WAAO;AAAA,EACT;AACF;AASA,SAAS,qBAAqBvB,uBAAsB,SAAS,iBAAiB,aAAa;AACzF,MAAI,gBAAgB,QAAQ;AAC1B,kBAAc,CAAA;AAAA,EAChB;AACA,MAAIc,YAAW,YAAY;AAC3B,MAAI,iBAAiB,kBAAiB;AAGtC,YAAU,WAAY;AACpB,QAAI,CAACd,yBAAwB,kBAAkB,SAAS,CAACc,WAAU;AACjE;AAAA,IACF;AACA,QAAI,SAASd,sBAAqB,OAAO;AACzC,qBAAiB,QAAQc,SAAQ;AAAA,EAGnC,GAAG,eAAe;AAGlB,YAAU,WAAY;AACpB,WAAO,WAAY;AACjB,uBAAiB,OAAM;AACvB,uBAAiBA,SAAQ;AAAA,IAC3B;AAAA,EACF,GAAG,CAACA,SAAQ,CAAC;AACf;AACA,SAAS,kBAAkB,OAAO;AAChC,MAAI,mBAAmB,MAAM,kBAC3B,SAAS,MAAM,QACf,WAAW,MAAM,UACjB,uBAAuB,MAAM,sBAC7B,cAAc,MAAM,aACpB,qBAAqB,MAAM;AAE7B,MAAI,kBAAkB,OAAO,IAAI;AAEjC,4BAA0B,WAAY;AACpC,QAAI,mBAAmB,KAAK,CAAC,UAAU,CAAC,OAAO,KAAK,SAAS,OAAO,EAAE,QAAQ;AAC5E;AAAA,IACF;AACA,QAAI,gBAAgB,YAAY,OAAO;AACrC,sBAAgB,UAAU;AAAA,IAC5B,OAAO;AACL,yBAAmB,qBAAqB,gBAAgB,GAAG,WAAW;AAAA,IACxE;AAAA,EAEF,GAAG,CAAC,gBAAgB,CAAC;AACrB,SAAO;AACT;AAGA,IAAI,2BAA2BhB;AAE/B,IAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,6BAA2B,SAAS0B,0BAAyB,OAAO;AAClE,QAAI,QAAQ,MAAM,OAChB,QAAQ,MAAM;AAEhB,QAAI,eAAe,OAAO,KAAK;AAC/B,QAAI,iBAAiB,kBAAiB;AACtC,cAAU,WAAY;AACpB,UAAI,gBAAgB;AAClB;AAAA,MACF;AACA,kCAA4B,OAAO,aAAa,SAAS,KAAK;AAC9D,mBAAa,UAAU;AAAA,IACzB,GAAG,CAAC,OAAO,OAAO,cAAc,CAAC;AAAA,EACnC;AACF;AAUA,SAAS,sBAAsB,OAAO,kBAAkB,YAAY;AAClE,MAAI;AACJ,MAAI,eAAe,QAAQ;AACzB,iBAAa;AAAA,EACf;AACA,MAAI,iBAAiB,eAAe,MAAM,UAAU,OAAO,SAAS,aAAa,WAAW,oBAAoB;AAChH,SAAO,SAAS;AAAA,IACd,QAAQ;AAAA,IACR,kBAAkB;AAAA,EACtB,GAAK,gBAAgB,SAAS;AAAA,IAC1B,cAAc,MAAM,MAAM,gBAAgB;AAAA,IAC1C,QAAQ,kBAAkB,OAAO,QAAQ;AAAA,IACzC,kBAAkB,kBAAkB,OAAO,kBAAkB;AAAA,EACjE,GAAK,cAAc;AAAA,IACf,YAAY,MAAM,aAAa,MAAM,MAAM,gBAAgB,CAAC;AAAA,EAChE,CAAG,CAAC;AACJ;AAUA,SAAS,sBAAsB,WAAW,UAAU;AAClD,SAAO,UAAU,WAAW,SAAS,UAAU,UAAU,eAAe,SAAS,cAAc,UAAU,qBAAqB,SAAS,oBAAoB,UAAU,iBAAiB,SAAS;AACjM;AAKA,SAAS,oBAAoB;AAC3B,MAAI,oBAAoBT,eAAM,OAAO,IAAI;AACzCA,iBAAM,UAAU,WAAY;AAC1B,sBAAkB,UAAU;AAC5B,WAAO,WAAY;AACjB,wBAAkB,UAAU;AAAA,IAC9B;AAAA,EACF,GAAG,CAAA,CAAE;AACL,SAAO,kBAAkB;AAC3B;AAQA,SAAS,2BAA2B,OAAO;AACzC,MAAI,mBAAmB,kBAAkB,OAAO,kBAAkB;AAClE,MAAI,mBAAmB,MAAM,MAAM,eAAe,MAAM,MAAM,gBAAgB,GAAG,gBAAgB,GAAG;AAClG,WAAO;AAAA,EACT;AACA,SAAO;AACT;AAQA,SAAS,2BAA2B,OAAO;AACzC,MAAI,mBAAmB,kBAAkB,OAAO,kBAAkB;AAClE,MAAI,mBAAmB,MAAM,MAAM,eAAe,MAAM,MAAM,gBAAgB,GAAG,gBAAgB,GAAG;AAClG,WAAO;AAAA,EACT;AACA,SAAO;AACT;AAGA,IAAI,kBAAkB;AAAA,EACpB,aAAa,UAAU,MAAM;AAAA,IAC3B,kBAAkB,UAAU,KAAK;AAAA,IACjC,qBAAqB,UAAU,KAAK;AAAA,IACpC,UAAU,UAAU,MAAM;AAAA,MACxB,eAAe,UAAU,KAAK;AAAA,MAC9B,gBAAgB,UAAU,KAAK;AAAA,MAC/B,eAAe,UAAU,IAAI;AAAA,MAC7B,MAAM,UAAU,IAAI;AAAA,IAC1B,CAAK,EAAE;AAAA,IACH,MAAM,UAAU,KAAK;AAAA,EACzB,CAAG;AAAA,EACD,cAAc,UAAU;AAAA,EACxB,WAAW,UAAU;AAAA,EACrB,cAAc,UAAU;AAC1B;AAGA,IAAI,0BAA0B,SAAS,CAAA,GAAI,iBAAiB;AAAA,EAC1D,sBAAsB,UAAU;AAAA,EAChC,kBAAkB,UAAU;AAAA,EAC5B,yBAAyB,UAAU;AAAA,EACnC,yBAAyB,UAAU;AAAA,EACnC,QAAQ,UAAU;AAAA,EAClB,eAAe,UAAU;AAAA,EACzB,eAAe,UAAU;AAAA,EACzB,cAAc,UAAU;AAAA,EACxB,qBAAqB,UAAU;AAAA,EAC/B,qBAAqB,UAAU;AAAA,EAC/B,IAAI,UAAU;AAAA,EACd,SAAS,UAAU;AAAA,EACnB,QAAQ,UAAU;AAAA,EAClB,WAAW,UAAU;AAAA,EACrB,gBAAgB,UAAU;AAAA,EAC1B,sBAAsB,UAAU;AAAA,EAChC,0BAA0B,UAAU;AAAA,EACpC,eAAe,UAAU;AAAA,EACzB,gBAAgB,UAAU;AAAA,EAC1B,gBAAgB,UAAU;AAC5B,CAAC;AAED,SAAS,uBAAuB,OAAO,QAAQU,mBAAkB;AAC/D,MAAI,OAAO,OAAO,MAChB,QAAQ,OAAO;AACjB,MAAI;AACJ,UAAQ,MAAI;AAAA,IACV,KAAKA,kBAAiB;AACpB,gBAAU;AAAA,QACR,kBAAkB,OAAO,WAAW,KAAK,OAAO;AAAA,MACxD;AACM;AAAA,IACF,KAAKA,kBAAiB;AACpB,gBAAU;AAAA,QACR,kBAAkB;AAAA,MAC1B;AACM;AAAA,IACF,KAAKA,kBAAiB;AAAA,IACtB,KAAKA,kBAAiB;AACpB,gBAAU;AAAA,QACR,QAAQ,CAAC,MAAM;AAAA,QACf,kBAAkB,MAAM,SAAS,KAAK,0BAA0B,OAAO,OAAO,CAAC;AAAA,MACvF;AACM;AAAA,IACF,KAAKA,kBAAiB;AACpB,gBAAU;AAAA,QACR,QAAQ;AAAA,QACR,kBAAkB,0BAA0B,OAAO,OAAO,CAAC;AAAA,MACnE;AACM;AAAA,IACF,KAAKA,kBAAiB;AACpB,gBAAU;AAAA,QACR,QAAQ;AAAA,MAChB;AACM;AAAA,IACF,KAAKA,kBAAiB;AACpB,gBAAU;AAAA,QACR,kBAAkB,MAAM,eAAe,MAAM,MAAM,OAAO,gBAAgB,GAAG,OAAO,gBAAgB,IAAI,KAAK,OAAO;AAAA,MAC5H;AACM;AAAA,IACF,KAAKA,kBAAiB;AACpB,gBAAU;AAAA,QACR,YAAY,OAAO;AAAA,MAC3B;AACM;AAAA,IACF,KAAKA,kBAAiB;AACpB,gBAAU;AAAA,QACR,kBAAkB,2BAA2B,KAAK;AAAA,QAClD,QAAQ,kBAAkB,OAAO,QAAQ;AAAA,QACzC,cAAc,kBAAkB,OAAO,cAAc;AAAA,QACrD,YAAY,kBAAkB,OAAO,YAAY;AAAA,MACzD;AACM;AAAA,IACF;AACE,YAAM,IAAI,MAAM,4CAA4C;AAAA,EAClE;AACE,SAAO,SAAS,CAAA,GAAI,OAAO,OAAO;AACpC;AAGA,SAAS,2BAA2B,IAAI;AACpC,MAAI,YAAY,GAAG,WAAW,mBAAmB,GAAG,kBAAkB,QAAQ,GAAG,OAAOnB,gBAAe,GAAG,cAAcJ,kBAAiB,GAAG;AAC5I,MAAI,sBAAsB,UAAU,YAAW;AAC/C,WAASC,SAAQ,GAAGA,SAAQ,MAAM,QAAQA,UAAS;AAE/C,QAAI,eAAeA,SAAQ,oBAAoB,UAAU,SAAS,IAAI,IAAI,MAAM,MAAM;AACtF,QAAI,OAAO,MAAM,WAAW;AAC5B,QAAI,SAAS,UACTG,cAAa,IAAI,EAAE,YAAW,EAAG,WAAW,mBAAmB,KAC/D,CAACJ,gBAAe,MAAM,WAAW,GAAG;AACpC,aAAO;AAAA,IACX;AAAA,EACJ;AACA,SAAO;AACX;AACA,IAAI,cAAc,SAAS,SAAS,CAAA,GAAI,uBAAuB,GAAG,EAAE,OAAO,UAAU,MAAM,YAAY,gBAAgB,UAAU,KAAI,CAAE;AACvI,IAAI,iBAAiB,SAAS,SAAS,CAAA,GAAI,cAAc,GAAG,EAAE,gBAAgB,WAAY;AAClF,SAAO;AACX,GAAG;AAEP,IAAI,sBAAsBJ;AAE1B,IAAI,QAAQ,IAAI,aAAa,cAAc;AACvC,wBAAsB,SAAU,SAAS,QAAQ;AAC7C,cAAU,eAAe,aAAa,SAAS,QAAQ,OAAO,IAAI;AAAA,EACtE;AACJ;AAEA,IAAI,sBAAsB,QAAQ,IAAI,aAAa,eAAe,2BAA2B;AAC7F,IAAI,+BAA+B,QAAQ,IAAI,aAAa,eAAe,wCAAwC;AACnH,IAAI,6BAA6B,QAAQ,IAAI,aAAa,eAAe,sCAAsC;AAC/G,IAAI,+BAA+B,QAAQ,IAAI,aAAa,eAAe,uCAAuC;AAClH,IAAI,4BAA4B,QAAQ,IAAI,aAAa,eAAe,oCAAoC;AAC5G,IAAI,0BAA0B,QAAQ,IAAI,aAAa,eAAe,kCAAkC;AACxG,IAAI,yBAAyB,QAAQ,IAAI,aAAa,eAAe,iCAAiC;AACtG,IAAI,2BAA2B,QAAQ,IAAI,aAAa,eAAe,mCAAmC;AAC1G,IAAI,iCAAiC,QAAQ,IAAI,aAAa,eAAe,0CAA0C;AACvH,IAAI,4BAA4B,QAAQ,IAAI,aAAa,eAAe,qCAAqC;AAC7G,IAAI,8BAA8B,QAAQ,IAAI,aAAa,eAAe,uCAAuC;AACjH,IAAI,mBAAmB,QAAQ,IAAI,aAAa,eAAe,0BAA0B;AACzF,IAAI,mBAAmB,QAAQ,IAAI,aAAa,eAAe,yBAAyB;AACxF,IAAI,kBAAkB,QAAQ,IAAI,aAAa,eAAe,wBAAwB;AACtF,IAAI,cAAc,QAAQ,IAAI,aAAa,eAAe,mBAAmB;AAC7E,IAAI,uBAAuB,QAAQ,IAAI,aAAa,eAAe,6BAA6B;AAChG,IAAI,qBAAqB,QAAQ,IAAI,aAAa,eAAe,2BAA2B;AAC5F,IAAI,sBAAsB,QAAQ,IAAI,aAAa,eAAe,4BAA4B;AAC9F,IAAI,gCAAgC,QAAQ,IAAI,aAAa,eAAe,uCAAuC;AACnH,IAAI,uBAAuB,QAAQ,IAAI,aAAa,eAAe,6BAA6B;AAChG,IAAI,0BAA0B,QAAQ,IAAI,aAAa,eAAe,iCAAiC;AACvG,IAAI,kBAAkB,QAAQ,IAAI,aAAa,eAAe,uBAAuB;AAErF,IAAI,qBAAkC,uBAAO,OAAO;AAAA,EAClD,WAAW;AAAA,EACX,mBAAmB;AAAA,EACnB,kBAAkB;AAAA,EAClB,eAAe;AAAA,EACf,oBAAoB;AAAA,EACpB,6BAA6B;AAAA,EAC7B,uBAAuB;AAAA,EACvB,oBAAoB;AAAA,EACpB,WAAW;AAAA,EACX,eAAe;AAAA,EACf,gBAAgB;AAAA,EAChB;AAAA,EACA,mBAAmB;AAAA,EACnB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAGD,SAAS,uBAAuB,OAAO,QAAQ;AAC7C,MAAI;AACJ,MAAI,OAAO,OAAO,MAChB,QAAQ,OAAO,OACf,SAAS,OAAO;AAClB,MAAI;AACJ,UAAQ,MAAI;AAAA,IACV,KAAK;AACH,gBAAU;AAAA,QACR,QAAQ,kBAAkB,OAAO,QAAQ;AAAA,QACzC,kBAAkB,2BAA2B,KAAK;AAAA,QAClD,cAAc,MAAM,MAAM,OAAO,KAAK;AAAA,MAC9C;AACM;AAAA,IACF,KAAK;AACH;AACE,YAAI,gBAAgB,OAAO;AAC3B,YAAI,aAAa,KAAK,MAAM,aAAa;AACzC,YAAI,uBAAuB,CAAC,MAAM,UAAU,MAAM,eAAe,MAAM,MAAM,UAAU,SAAU,MAAM;AACrG,iBAAO,MAAM,UAAU,IAAI,MAAM,MAAM,UAAU,MAAM,YAAY;AAAA,QACrE,CAAC,IAAI,MAAM;AACX,YAAI,mBAAmB,2BAA2B;AAAA,UAChD,WAAW;AAAA,UACX,kBAAkB;AAAA,UAClB,OAAO,MAAM;AAAA,UACb,cAAc,MAAM;AAAA,UACpB,gBAAgB,MAAM;AAAA,QAChC,CAAS;AACD,kBAAU;AAAA,UACR;AAAA,UACA;AAAA,UACA,QAAQ;AAAA,QAClB;AAAA,MACM;AACA;AAAA,IACF,KAAK;AACH;AACE,YAAI,oBAAoB,MAAM,SAAS,oBAAoB,MAAM,kBAAkB,GAAG,MAAM,OAAO,MAAM,cAAc,IAAI,UAAU,MAAM,gBAAgB,OAAO,KAAK,0BAA0B,OAAO,OAAO,CAAC;AAChN,kBAAU;AAAA,UACR,kBAAkB;AAAA,UAClB,QAAQ;AAAA,QAClB;AAAA,MACM;AACA;AAAA,IACF,KAAK;AACH,UAAI,MAAM,UAAU,QAAQ;AAC1B,kBAAU,sBAAsB,OAAO,MAAM,kBAAkB,KAAK;AAAA,MACtE,OAAO;AACL,YAAI,qBAAqB,MAAM,SAAS,oBAAoB,MAAM,kBAAkB,IAAI,MAAM,OAAO,MAAM,cAAc,IAAI,0BAA0B,OAAO,OAAO,EAAE;AACvK,kBAAU;AAAA,UACR,kBAAkB;AAAA,UAClB,QAAQ;AAAA,QAClB;AAAA,MACM;AACA;AAAA;AAAA,IAEF,KAAK;AAAA,IACL,KAAK;AACH,gBAAU,sBAAsB,OAAO,MAAM,kBAAkB,KAAK;AACpE;AAAA,IACF,KAAK;AACH,gBAAU;AAAA,QACR,kBAAkB,oBAAoB,GAAG,OAAO,MAAM,OAAO,MAAM,cAAc;AAAA,QACjF,QAAQ;AAAA,MAChB;AACM;AAAA,IACF,KAAK;AACH,gBAAU;AAAA,QACR,kBAAkB,oBAAoB,MAAM,MAAM,SAAS,GAAG,MAAM,MAAM,OAAO,MAAM,cAAc;AAAA,QACrG,QAAQ;AAAA,MAChB;AACM;AAAA,IACF,KAAK;AACH,gBAAU;AAAA,QACR,kBAAkB,oBAAoB,MAAM,kBAAkB,KAAK,MAAM,OAAO,MAAM,cAAc;AAAA,MAC5G;AACM;AAAA,IACF,KAAK;AACH,gBAAU;AAAA,QACR,kBAAkB,oBAAoB,MAAM,kBAAkB,IAAI,MAAM,OAAO,MAAM,cAAc;AAAA,MAC3G;AACM;AAAA,IACF,KAAK;AACH,gBAAU;AAAA,QACR,QAAQ;AAAA,QACR,kBAAkB;AAAA,MAC1B;AACM;AAAA,IACF,KAAK;AACH,gBAAU,SAAS;AAAA,QACjB,QAAQ;AAAA,QACR,kBAAkB;AAAA,MAC1B,GAAS,MAAM,oBAAoB,OAAO,eAAe,MAAM,UAAU,OAAO,SAAS,aAAa,WAAW;AAAA,QACzG,cAAc,MAAM,MAAM,MAAM,gBAAgB;AAAA,MACxD,CAAO;AACD;AAAA,IACF,KAAK;AACH,gBAAU;AAAA,QACR,cAAc,OAAO;AAAA,MAC7B;AACM;AAAA,IACF;AACE,aAAO,uBAAuB,OAAO,QAAQ,kBAAkB;AAAA,EACrE;AACE,SAAO,SAAS,CAAA,GAAI,OAAO,OAAO;AACpC;AAGA,IAAI,cAAc,CAAC,SAAS,GAC1B,eAAe,CAAC,gBAAgB,UAAU,KAAK,GAC/C,eAAe,CAAC,UAAU,WAAW,WAAW,aAAa,UAAU,KAAK,GAC5E,eAAe,CAAC,QAAQ,SAAS,eAAe,WAAW,eAAe,WAAW,UAAU,YAAY,KAAK;AAClH,UAAU,mBAAmB;AAC7B,SAAS,UAAU,WAAW;AAC5B,MAAI,cAAc,QAAQ;AACxB,gBAAY,CAAA;AAAA,EACd;AACA,sBAAoB,WAAW,SAAS;AAExC,MAAI,QAAQ,SAAS,IAAI,gBAAgB,SAAS;AAClD,MAAI4B,kBAAiB,MAAM,gBACzB,cAAc,MAAM,aACpB1B,wBAAuB,MAAM;AAE/B,MAAI,wBAAwB,uBAAuB,wBAAwB,OAAO,mBAAmB,qBAAqB,GACxH,QAAQ,sBAAsB,CAAC,GAC/B,WAAW,sBAAsB,CAAC;AACpC,MAAI,SAAS,MAAM,QACjB,mBAAmB,MAAM,kBACzB,eAAe,MAAM,cACrB,aAAa,MAAM;AAErB,MAAI,kBAAkB,OAAO,IAAI;AACjC,MAAI,UAAU,OAAO,IAAI;AACzB,MAAI,WAAW,OAAO,EAAE;AAGxB,MAAI,kBAAkB,OAAO,IAAI;AAEjC,MAAI,aAAa,cAAc,KAAK;AAEpC,MAAI,SAASiB,eAAa;AAAA,IACxB;AAAA,IACA;AAAA,EACJ,CAAG;AAGD,MAAI,uBAAuB,YAAY,SAAUd,QAAO;AACtD,WAAO,SAAS,QAAQ,WAAW,UAAUA,MAAK,CAAC;AAAA,EACrD,GAAG,CAAC,UAAU,CAAC;AAIf,uBAAqBH,uBAAsB,OAAO,CAAC,QAAQ,kBAAkB,cAAc,UAAU,GAAG,WAAW;AAEnH,MAAI,kBAAkB,kBAAkB;AAAA,IACtC,aAAa,QAAQ;AAAA,IACrB;AAAA,IACA;AAAA,IACA;AAAA,IACA,gBAAgB0B;AAAA,IAChB;AAAA,EACJ,CAAG;AAED,YAAU,WAAY;AAEpB,oBAAgB,UAAU,SAAS,SAAU,eAAe;AAC1D,oBAAc;AAAA,QACZ,MAAM;AAAA,QACN,YAAY;AAAA,MACpB,CAAO;AAAA,IACH,GAAG,GAAG;AAGN,WAAO,WAAY;AACjB,sBAAgB,QAAQ,OAAM;AAAA,IAChC;AAAA,EACF,GAAG,CAAA,CAAE;AAEL,YAAU,WAAY;AACpB,QAAI,CAAC,YAAY;AACf;AAAA,IACF;AACA,oBAAgB,QAAQ,QAAQ;AAAA,EAClC,GAAG,CAAC,UAAU,UAAU,CAAC;AACzB,2BAAyB;AAAA,IACvB;AAAA,IACA;AAAA,EACJ,CAAG;AAED,YAAU,WAAY;AACpB,QAAI,cAAc,kBAAkB,OAAO,QAAQ;AACnD,QAAI,eAAe,gBAAgB,SAAS;AAC1C,sBAAgB,QAAQ,MAAK;AAAA,IAC/B;AAAA,EAEF,GAAG,CAAA,CAAE;AACL,MAAI,wBAAwB,wBAAwB,aAAa,YAAY,SAAS,aAAa;AACjG,QAAI,OAAO,QAAQ,MAAM,QAAQ;AAC/B,eAAS;AAAA,QACP,MAAM;AAAA,MACd,CAAO;AAAA,IACH;AAAA,EACF,GAAG,CAAC,UAAU,MAAM,CAAC,GAAG,QAAQ,WAAY;AAC1C,WAAO,CAAC,SAAS,eAAe;AAAA,EAClC,GAAG,CAAC,QAAQ,SAAS,gBAAgB,OAAO,CAAC,CAAC;AAC9C,MAAI,wBAAwB,4BAA4B,gBAAgB,sBAAsB;AAE9F,YAAU,WAAY;AACpB,QAAI,CAAC,QAAQ;AACX,eAAS,UAAU,CAAA;AAAA,IACrB;AAAA,EACF,GAAG,CAAC,MAAM,CAAC;AAGX,MAAI,8BAA8B,QAAQ,WAAY;AACpD,WAAO;AAAA,MACL,WAAW,SAAS,UAAU,OAAO;AACnC,cAAM,eAAc;AACpB,iBAAS;AAAA,UACP,MAAM;AAAA,UACN,QAAQ,MAAM;AAAA,QACxB,CAAS;AAAA,MACH;AAAA,MACA,SAAS,SAAS,QAAQ,OAAO;AAC/B,cAAM,eAAc;AACpB,iBAAS;AAAA,UACP,MAAM;AAAA,UACN,QAAQ,MAAM;AAAA,QACxB,CAAS;AAAA,MACH;AAAA,MACA,MAAM,SAAS,KAAK,OAAO;AACzB,cAAM,eAAc;AACpB,iBAAS;AAAA,UACP,MAAM;AAAA,QAChB,CAAS;AAAA,MACH;AAAA,MACA,KAAK,SAAS,IAAI,OAAO;AACvB,cAAM,eAAc;AACpB,iBAAS;AAAA,UACP,MAAM;AAAA,QAChB,CAAS;AAAA,MACH;AAAA,MACA,QAAQ,SAAS,SAAS;AACxB,YAAI,OAAO,QAAQ,MAAM,QAAQ;AAC/B,mBAAS;AAAA,YACP,MAAM;AAAA,UAClB,CAAW;AAAA,QACH;AAAA,MACF;AAAA,MACA,OAAO,SAAS,MAAM,OAAO;AAC3B,cAAM,eAAc;AACpB,iBAAS;AAAA,UACP,MAAM,OAAO,QAAQ,MAAM,SAAS,2BAA2B;AAAA,QACzE,CAAS;AAAA,MACH;AAAA,MACA,QAAQ,SAAS,OAAO,OAAO;AAC7B,YAAI,OAAO,QAAQ,MAAM,QAAQ;AAC/B,gBAAM,eAAc;AACpB,mBAAS;AAAA,YACP,MAAM;AAAA,UAClB,CAAW;AAAA,QACH;AAAA,MACF;AAAA,MACA,UAAU,SAAS,SAAS,OAAO;AACjC,YAAI,OAAO,QAAQ,MAAM,QAAQ;AAC/B,gBAAM,eAAc;AACpB,mBAAS;AAAA,YACP,MAAM;AAAA,UAClB,CAAW;AAAA,QACH;AAAA,MACF;AAAA,MACA,KAAK,SAAS,EAAE,OAAO;AACrB,cAAM,eAAc;AACpB,YAAI,eAAe,OAAO,QAAQ;AAClC,YAAI,CAAC,aAAa,QAAQ;AACxB,mBAAS;AAAA,YACP,MAAM;AAAA,UAClB,CAAW;AACD;AAAA,QACF;AACA,YAAI,aAAa,YAAY;AAC3B,mBAAS;AAAA,YACP,MAAM;AAAA,YACN,KAAK;AAAA,UACjB,CAAW;AAAA,QACH,OAAO;AACL,mBAAS;AAAA,YACP,MAAM;AAAA,UAClB,CAAW;AAAA,QACH;AAAA,MACF;AAAA,IACN;AAAA,EACE,GAAG,CAAC,UAAU,MAAM,CAAC;AAGrB,MAAI,aAAa,YAAY,WAAY;AACvC,aAAS;AAAA,MACP,MAAM;AAAA,IACZ,CAAK;AAAA,EACH,GAAG,CAAC,QAAQ,CAAC;AACb,MAAI,YAAY,YAAY,WAAY;AACtC,aAAS;AAAA,MACP,MAAM;AAAA,IACZ,CAAK;AAAA,EACH,GAAG,CAAC,QAAQ,CAAC;AACb,MAAI,WAAW,YAAY,WAAY;AACrC,aAAS;AAAA,MACP,MAAM;AAAA,IACZ,CAAK;AAAA,EACH,GAAG,CAAC,QAAQ,CAAC;AACb,MAAI,sBAAsB,YAAY,SAAU,qBAAqB;AACnE,aAAS;AAAA,MACP,MAAM;AAAA,MACN,kBAAkB;AAAA,IACxB,CAAK;AAAA,EACH,GAAG,CAAC,QAAQ,CAAC;AACb,MAAI,aAAa,YAAY,SAAU,iBAAiB;AACtD,aAAS;AAAA,MACP,MAAM;AAAA,MACN,cAAc;AAAA,IACpB,CAAK;AAAA,EACH,GAAG,CAAC,QAAQ,CAAC;AACb,MAAI,QAAQ,YAAY,WAAY;AAClC,aAAS;AAAA,MACP,MAAM;AAAA,IACZ,CAAK;AAAA,EACH,GAAG,CAAC,QAAQ,CAAC;AACb,MAAI,gBAAgB,YAAY,SAAU,eAAe;AACvD,aAAS;AAAA,MACP,MAAM;AAAA,MACN,YAAY;AAAA,IAClB,CAAK;AAAA,EACH,GAAG,CAAC,QAAQ,CAAC;AAEb,MAAI,gBAAgB,YAAY,SAAU,OAAO;AAC/C,QAAI,OAAO,UAAU,SAAS,CAAA,IAAK,OACjC,UAAU,KAAK,SACf,aAAa,8BAA8B,MAAM,WAAW;AAC9D,QAAI,mBAAmB,SAASC,oBAAmB;AACjD,UAAI;AACJ,OAAC,wBAAwB,gBAAgB,YAAY,QAAQ,sBAAsB,MAAK;AAAA,IAC1F;AACA,WAAO,SAAS;AAAA,MACd,IAAI,WAAW;AAAA,MACf,SAAS,WAAW;AAAA,MACpB,SAAS,qBAAqB,SAAS,gBAAgB;AAAA,IAC7D,GAAO,UAAU;AAAA,EACf,GAAG,CAAC,UAAU,CAAC;AACf,MAAI,eAAe,YAAY,SAAU,QAAQ,QAAQ;AACvD,QAAI;AACJ,QAAI,QAAQ,WAAW,SAAS,CAAA,IAAK,QACnC,eAAe,MAAM,cACrB,eAAe,MAAM,QACrB,SAAS,iBAAiB,SAAS,QAAQ,cAC3C,MAAM,MAAM,KACZ,OAAO,8BAA8B,OAAO,YAAY;AAC1D,QAAI,QAAQ,WAAW,SAAS,CAAA,IAAK,QACnC,wBAAwB,MAAM,kBAC9B,mBAAmB,0BAA0B,SAAS,QAAQ;AAChE,QAAI,uBAAuB,SAASC,wBAAuB;AACzD,eAAS;AAAA,QACP,MAAM;AAAA,MACd,CAAO;AAAA,IACH;AACA,0BAAsB,gBAAgB,kBAAkB,QAAQ,OAAO;AACvE,WAAO,UAAU,YAAY,CAAA,GAAI,UAAU,MAAM,IAAI,WAAW,KAAK,SAAU,UAAU;AACvF,cAAQ,UAAU;AAAA,IACpB,CAAC,GAAG,UAAU,KAAK,WAAW,QAAQ,UAAU,OAAO,WAAW,UAAU,iBAAiB,IAAI,QAAQ,KAAK,YAAY,IAAI,SAAY,KAAK,WAAW,SAAS,UAAU,eAAe,qBAAqB,cAAc,oBAAoB,GAAG,YAAY,IAAI;AAAA,EACxQ,GAAG,CAAC,UAAU,uBAAuB,UAAU,CAAC;AAChD,MAAI,uBAAuB,YAAY,SAAU,QAAQ,QAAQ;AAC/D,QAAI;AACJ,QAAI,QAAQ,WAAW,SAAS,CAAA,IAAK,QACnC,SAAS,MAAM,QACf,UAAU,MAAM;AAChB,UAAM;AACN,QAAI,YAAY,MAAM,WACtB,eAAe,MAAM,QACrB,SAAS,iBAAiB,SAAS,QAAQ,cAC3C,MAAM,MAAM,KACZ,OAAO,8BAA8B,OAAO,YAAY;AAC1D,QAAI,QAAQ,WAAW,SAAS,CAAA,IAAK,QACnC,wBAAwB,MAAM,kBAC9B,mBAAmB,0BAA0B,SAAS,QAAQ;AAChE,QAAI,cAAc,OAAO,QAAQ;AACjC,QAAI,0BAA0B,SAASC,2BAA0B;AAC/D,eAAS;AAAA,QACP,MAAM;AAAA,MACd,CAAO;AAAA,IACH;AACA,QAAI,yBAAyB,SAASC,0BAAyB;AAC7D,UAAI,YAAY,UAAU,CAAC,sBAAsB,aAAa;AAC5D,iBAAS;AAAA,UACP,MAAM;AAAA,QAChB,CAAS;AAAA,MACH;AAAA,IACF;AACA,QAAI,4BAA4B,SAASC,2BAA0B,OAAO;AACxE,UAAI,MAAM,kBAAkB,KAAK;AACjC,UAAI,OAAO,4BAA4B,GAAG,GAAG;AAC3C,oCAA4B,GAAG,EAAE,KAAK;AAAA,MACxC,WAAW,uBAAuB,GAAG,GAAG;AACtC,iBAAS;AAAA,UACP,MAAM;AAAA,UACN;AAAA,QACV,CAAS;AAAA,MACH;AAAA,IACF;AACA,QAAI,cAAc,UAAU,YAAY,IAAI,UAAU,MAAM,IAAI,WAAW,KAAK,SAAU,kBAAkB;AAC1G,sBAAgB,UAAU;AAAA,IAC5B,CAAC,GAAG,UAAU,uBAAuB,IAAI,YAAY,UAAU,YAAY,mBAAmB,KAAK,WAAW,UAAU,YAAY,gBAAgB,IAAI,IAAI,UAAU,eAAe,IAAI,WAAW,QAAQ,UAAU,eAAe,IAAI,OAAO,QAAQ,MAAM,QAAQ,UAAU,eAAe,IAAI,WAAW,UAAU,iBAAiB,IAAI,QAAQ,KAAK,YAAY,IAAI,SAAY,KAAK,WAAW,SAAS,UAAU,KAAK,WAAW,gBAAgB,UAAU,OAAO,YAAY,UAAU,WAAW,GAAG,UAAU,SAAS,qBAAqB,QAAQ,sBAAsB,GAAG,YAAY,IAAI;AACvkB,QAAI,CAAC,KAAK,UAAU;AAElB;AACE,oBAAY,UAAU,qBAAqB,SAAS,uBAAuB;AAC3E,oBAAY,YAAY,qBAAqB,WAAW,yBAAyB;AAAA,MACnF;AAAA,IACF;AACA,0BAAsB,wBAAwB,kBAAkB,QAAQ,eAAe;AACvF,WAAO;AAAA,EACT,GAAG,CAAC,UAAU,YAAY,QAAQ,uBAAuB,uBAAuB,2BAA2B,CAAC;AAC5G,MAAI,eAAe,YAAY,SAAU,QAAQ;AAC/C,QAAI;AACJ,QAAI,QAAQ,WAAW,SAAS,CAAA,IAAK,QACnC,WAAW,MAAM,MACjB,YAAY,MAAM,OAClB,cAAc,MAAM,aACpB,UAAU,MAAM,SAChB,cAAc,MAAM;AACpB,UAAM;AACN,QAAI,eAAe,MAAM,QACzB,SAAS,iBAAiB,SAAS,QAAQ,cAC3C,eAAe,MAAM,UACrB,MAAM,MAAM,KACZ,OAAO,8BAA8B,OAAO,YAAY;AAC1D,QAAI,iBAAiB,QAAW;AAC9B,cAAQ,KAAK,gIAAgI;AAAA,IAC/I;AACA,QAAI,kBAAkB,OAAO,SAC3B,cAAc,gBAAgB,OAC9B,cAAc,gBAAgB;AAChC,QAAI,mBAAmB,gBAAgB,UAAU,WAAW,YAAY,OAAO,4CAA4C,GACzH,OAAO,iBAAiB,CAAC,GACzB5B,SAAQ,iBAAiB,CAAC;AAC5B,QAAI,WAAW,YAAY,eAAe,MAAMA,MAAK;AACrD,QAAI,sBAAsB,SAAS6B,uBAAsB;AACvD,UAAI,sBAAsB,cAAc7B,WAAU,YAAY,kBAAkB;AAC9E;AAAA,MACF;AACA,sBAAgB,UAAU;AAC1B,eAAS;AAAA,QACP,MAAM;AAAA,QACN,OAAOA;AAAA,QACP;AAAA,MACR,CAAO;AAAA,IACH;AACA,QAAI,kBAAkB,SAAS8B,mBAAkB;AAC/C,eAAS;AAAA,QACP,MAAM;AAAA,QACN,OAAO9B;AAAA,MACf,CAAO;AAAA,IACH;AACA,QAAI,sBAAsB,SAAS+B,qBAAoBtE,IAAG;AACxD,aAAOA,GAAE,eAAc;AAAA,IACzB;AAEA,QAAI,YAAY,UAAU,YAAY,IAAI,UAAU,MAAM,IAAI,WAAW,KAAK,SAAU,UAAU;AAChG,UAAI,UAAU;AACZ,iBAAS,QAAQ,WAAW,UAAUuC,MAAK,CAAC,IAAI;AAAA,MAClD;AAAA,IACF,CAAC,GAAG,UAAU,eAAe,IAAI,UAAU,UAAU,eAAe,IAAI,SAAS,YAAY,cAAc,UAAU,KAAK,WAAW,UAAUA,MAAK,GAAG,UAAU,OAAO,UAAU,YAAY,IAAI;AAClM,QAAI,CAAC,UAAU;AAEb;AACE,kBAAU,UAAU,qBAAqB,SAAS,eAAe;AAAA,MACnE;AAAA,IACF;AACA,cAAU,cAAc,qBAAqB,aAAa,mBAAmB;AAC7E,cAAU,cAAc,qBAAqB,aAAa,mBAAmB;AAC7E,WAAO;AAAA,EACT,GAAG,CAAC,QAAQ,YAAY,uBAAuB,iBAAiB,QAAQ,CAAC;AACzE,SAAO;AAAA;AAAA,IAEL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AACA;AAEA,IAAI,wBAAwB,QAAQ,IAAI,aAAa,eAAe,iCAAiC;AACrG,IAAI,sBAAsB,QAAQ,IAAI,aAAa,eAAe,+BAA+B;AACjG,IAAI,qBAAqB,QAAQ,IAAI,aAAa,eAAe,6BAA6B;AAC9F,IAAI,mBAAmB,QAAQ,IAAI,aAAa,eAAe,2BAA2B;AAC1F,IAAI,kBAAkB,QAAQ,IAAI,aAAa,eAAe,0BAA0B;AACxF,IAAI,qBAAqB,QAAQ,IAAI,aAAa,eAAe,8BAA8B;AAC/F,IAAI,uBAAuB,QAAQ,IAAI,aAAa,eAAe,gCAAgC;AACnG,IAAI,oBAAoB,QAAQ,IAAI,aAAa,eAAe,4BAA4B;AAC5F,IAAI,cAAc,QAAQ,IAAI,aAAa,eAAe,qBAAqB;AAC/E,IAAI,YAAY,QAAQ,IAAI,aAAa,eAAe,mBAAmB;AAC3E,IAAI,aAAa,QAAQ,IAAI,aAAa,eAAe,oBAAoB;AAC7E,IAAI,iBAAiB,QAAQ,IAAI,aAAa,eAAe,yBAAyB;AACtF,IAAI,gBAAgB,QAAQ,IAAI,aAAa,eAAe,wBAAwB;AACpF,IAAI,YAAY,QAAQ,IAAI,aAAa,eAAe,mBAAmB;AAC3E,IAAI,oBAAoB,QAAQ,IAAI,aAAa,eAAe,2BAA2B;AAC3F,IAAI,qBAAqB,QAAQ,IAAI,aAAa,eAAe,6BAA6B;AAC9F,IAAI,mBAAmB,QAAQ,IAAI,aAAa,eAAe,2BAA2B;AAC1F,IAAI,oBAAoB,QAAQ,IAAI,aAAa,eAAe,4BAA4B;AAC5F,IAAI,8BAA8B,QAAQ,IAAI,aAAa,eAAe,uCAAuC;AACjH,IAAI,qBAAqB,QAAQ,IAAI,aAAa,eAAe,6BAA6B;AAC9F,IAAI,wBAAwB,QAAQ,IAAI,aAAa,eAAe,iCAAiC;AACrG,IAAI,kBAAkB,QAAQ,IAAI,aAAa,eAAe,uBAAuB;AACrF,IAAI,oCAAoC,QAAQ,IAAI,aAAa,eAAe,8CAA8C;AAE9H,IAAI,qBAAkC,uBAAO,OAAO;AAAA,EAClD,WAAW;AAAA,EACX;AAAA,EACA;AAAA,EACA;AAAA,EACA,eAAe;AAAA,EACf;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAED,SAAS,kBAAkB,OAAO;AAChC,MAAI,eAAe,kBAAkB,KAAK;AAC1C,MAAI,eAAe,aAAa;AAChC,MAAI,aAAa,aAAa;AAC9B,MAAI,eAAe,MAAM,gBAAgB,MAAM,sBAAsB,UAAa,MAAM,sBAAsB,UAAa,MAAM,eAAe,QAAW;AACzJ,iBAAa,MAAM,aAAa,YAAY;AAAA,EAC9C;AACA,SAAO,SAAS,CAAA,GAAI,cAAc;AAAA,IAChC;AAAA,EACJ,CAAG;AACH;AACA,IAAI,cAAc,SAAS,CAAA,GAAI,yBAAyB;AAAA,EACtD,OAAO,UAAU,MAAM;AAAA,EACvB,gBAAgB,UAAU;AAAA,EAC1B,YAAY,UAAU;AAAA,EACtB,mBAAmB,UAAU;AAAA,EAC7B,mBAAmB,UAAU;AAAA,EAC7B,SAAS,UAAU;AAAA,EACnB,oBAAoB,UAAU;AAChC,CAAC;AAeD,SAAS,qBAAqB,SAAS,OAAO,oBAAoBe,eAAc;AAC9E,MAAI,0BAA0B,OAAM;AACpC,MAAI,sBAAsB,mBAAmB,SAAS,OAAO,oBAAoBA,aAAY,GAC3F,QAAQ,oBAAoB,CAAC,GAC7B,WAAW,oBAAoB,CAAC;AAClC,MAAI,iBAAiB,kBAAiB;AACtC,YAAU,WAAY;AACpB,QAAI,CAAC,iBAAiB,OAAO,cAAc,GAAG;AAC5C;AAAA,IACF;AACA,QAAI,CAAC,gBACH;AACA,UAAI,qBAAqB,MAAM,UAAU,MAAM,YAAY,MAAM,MAAM,UAAU,wBAAwB,OAAO;AAChH,UAAI,oBAAoB;AACtB,iBAAS;AAAA,UACP,MAAM;AAAA,UACN,YAAY,MAAM,aAAa,MAAM,YAAY;AAAA,QAC3D,CAAS;AAAA,MACH;AAAA,IACF;AACA,4BAAwB,UAAU,MAAM,iBAAiB,wBAAwB,UAAU,MAAM,eAAe,MAAM;AAAA,EAExH,GAAG,CAAC,MAAM,cAAc,MAAM,YAAY,CAAC;AAC3C,SAAO,CAAC,SAAS,OAAO,KAAK,GAAG,QAAQ;AAC1C;AAGA,IAAI,sBAAsBpB;AAE1B,IAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,wBAAsB,SAASqC,mBAAkB,SAAS,QAAQ;AAChE,cAAU,eAAe,aAAa,SAAS,QAAQ,OAAO,IAAI;AAAA,EACpE;AACF;AACA,IAAI,iBAAiB,SAAS,CAAA,GAAI,gBAAgB;AAAA,EAChD,gBAAgB,SAAS,iBAAiB;AACxC,WAAO;AAAA,EACT;AACF,CAAC;AAGD,SAAS,4BAA4B,OAAO,QAAQ;AAClD,MAAI;AACJ,MAAI,OAAO,OAAO,MAChB,QAAQ,OAAO,OACf,SAAS,OAAO;AAClB,MAAI;AACJ,UAAQ,MAAI;AAAA,IACV,KAAK;AACH,gBAAU;AAAA,QACR,QAAQ,kBAAkB,OAAO,QAAQ;AAAA,QACzC,kBAAkB,2BAA2B,KAAK;AAAA,QAClD,cAAc,MAAM,MAAM,OAAO,KAAK;AAAA,QACtC,YAAY,MAAM,aAAa,MAAM,MAAM,OAAO,KAAK,CAAC;AAAA,MAChE;AACM;AAAA,IACF,KAAK;AACH,UAAI,MAAM,QAAQ;AAChB,kBAAU;AAAA,UACR,kBAAkB,oBAAoB,MAAM,kBAAkB,GAAG,MAAM,OAAO,MAAM,gBAAgB,IAAI;AAAA,QAClH;AAAA,MACM,OAAO;AACL,kBAAU;AAAA,UACR,kBAAkB,UAAU,MAAM,gBAAgB,OAAO,KAAK,0BAA0B,OAAO,OAAO,CAAC;AAAA,UACvG,QAAQ,MAAM,MAAM,UAAU;AAAA,QACxC;AAAA,MACM;AACA;AAAA,IACF,KAAK;AACH,UAAI,MAAM,QAAQ;AAChB,YAAI,QAAQ;AACV,oBAAU,sBAAsB,OAAO,MAAM,gBAAgB;AAAA,QAC/D,OAAO;AACL,oBAAU;AAAA,YACR,kBAAkB,oBAAoB,MAAM,kBAAkB,IAAI,MAAM,OAAO,MAAM,gBAAgB,IAAI;AAAA,UACrH;AAAA,QACQ;AAAA,MACF,OAAO;AACL,kBAAU;AAAA,UACR,kBAAkB,0BAA0B,OAAO,OAAO,EAAE;AAAA,UAC5D,QAAQ,MAAM,MAAM,UAAU;AAAA,QACxC;AAAA,MACM;AACA;AAAA,IACF,KAAK;AACH,gBAAU,sBAAsB,OAAO,MAAM,gBAAgB;AAC7D;AAAA,IACF,KAAK;AACH,gBAAU,SAAS;AAAA,QACjB,QAAQ;AAAA,QACR,kBAAkB;AAAA,MAC1B,GAAS,CAAC,MAAM,UAAU;AAAA,QAClB,cAAc;AAAA,QACd,YAAY;AAAA,MACpB,CAAO;AACD;AAAA,IACF,KAAK;AACH,gBAAU;AAAA,QACR,kBAAkB,oBAAoB,MAAM,kBAAkB,KAAK,MAAM,OAAO,MAAM,gBAAgB,IAAI;AAAA,MAClH;AACM;AAAA,IACF,KAAK;AACH,gBAAU;AAAA,QACR,kBAAkB,oBAAoB,MAAM,kBAAkB,IAAI,MAAM,OAAO,MAAM,gBAAgB,IAAI;AAAA,MACjH;AACM;AAAA,IACF,KAAK;AACH,gBAAU;AAAA,QACR,kBAAkB,oBAAoB,GAAG,OAAO,MAAM,OAAO,MAAM,cAAc;AAAA,MACzF;AACM;AAAA,IACF,KAAK;AACH,gBAAU;AAAA,QACR,kBAAkB,oBAAoB,MAAM,MAAM,SAAS,GAAG,MAAM,MAAM,OAAO,MAAM,cAAc;AAAA,MAC7G;AACM;AAAA,IACF,KAAK;AACH,gBAAU,SAAS;AAAA,QACjB,QAAQ;AAAA,QACR,kBAAkB;AAAA,MAC1B,GAAS,MAAM,oBAAoB,OAAO,eAAe,MAAM,UAAU,OAAO,SAAS,aAAa,WAAW,OAAO,cAAc;AAAA,QAC9H,cAAc,MAAM,MAAM,MAAM,gBAAgB;AAAA,QAChD,YAAY,MAAM,aAAa,MAAM,MAAM,MAAM,gBAAgB,CAAC;AAAA,MAC1E,CAAO;AACD;AAAA,IACF,KAAK;AACH,gBAAU;AAAA,QACR,QAAQ;AAAA,QACR,kBAAkB,2BAA2B,KAAK;AAAA,QAClD,YAAY,OAAO;AAAA,MAC3B;AACM;AAAA,IACF,KAAK;AACH,gBAAU;AAAA,QACR,QAAQ,CAAC,MAAM;AAAA,QACf,kBAAkB,MAAM,SAAS,KAAK,0BAA0B,OAAO,OAAO,CAAC;AAAA,MACvF;AACM;AAAA,IACF,KAAK;AACH,gBAAU;AAAA,QACR,cAAc,OAAO;AAAA,QACrB,YAAY,MAAM,aAAa,OAAO,YAAY;AAAA,MAC1D;AACM;AAAA,IACF,KAAK;AACH,gBAAU;AAAA,QACR,YAAY,OAAO;AAAA,MAC3B;AACM;AAAA,IACF;AACE,aAAO,uBAAuB,OAAO,QAAQ,kBAAkB;AAAA,EACrE;AACE,SAAO,SAAS,CAAA,GAAI,OAAO,OAAO;AACpC;AAGA,IAAI,cAAc,CAAC,gBAAgB,UAAU,KAAK,GAChD,eAAe,CAAC,QAAQ,SAAS,UAAU,OAAO,eAAe,eAAe,WAAW,WAAW,UAAU,GAChH,aAAa,CAAC,WAAW,WAAW,UAAU,KAAK,GACnD,aAAa,CAAC,aAAa,YAAY,WAAW,UAAU,gBAAgB,WAAW,UAAU,KAAK;AACxG,YAAY,mBAAmB;AAC/B,SAAS,YAAY,WAAW;AAC9B,MAAI,cAAc,QAAQ;AACxB,gBAAY,CAAA;AAAA,EACd;AACA,sBAAoB,WAAW,WAAW;AAE1C,MAAI,QAAQ,SAAS,IAAI,gBAAgB,SAAS;AAClD,MAAI,QAAQ,MAAM,OAChBT,kBAAiB,MAAM,gBACvB,cAAc,MAAM,aACpB1B,wBAAuB,MAAM;AAE/B,MAAI,wBAAwB,qBAAqB,6BAA6B,OAAO,mBAAmB,qBAAqB,GAC3H,QAAQ,sBAAsB,CAAC,GAC/B,WAAW,sBAAsB,CAAC;AACpC,MAAI,SAAS,MAAM,QACjB,mBAAmB,MAAM,kBACzB,eAAe,MAAM,cACrB,aAAa,MAAM;AAGrB,MAAI,UAAU,OAAO,IAAI;AACzB,MAAI,WAAW,OAAO,EAAE;AACxB,MAAI,WAAW,OAAO,IAAI;AAC1B,MAAI,kBAAkB,OAAO,IAAI;AACjC,MAAI,iBAAiB,kBAAiB;AAGtC,MAAI,aAAa,cAAc,KAAK;AAEpC,MAAI,yBAAyB,OAAM;AAEnC,MAAI,SAASiB,eAAa;AAAA,IACxB;AAAA,IACA;AAAA,EACJ,CAAG;AACD,MAAI,uBAAuB,YAAY,SAAUd,QAAO;AACtD,WAAO,SAAS,QAAQ,WAAW,UAAUA,MAAK,CAAC;AAAA,EACrD,GAAG,CAAC,UAAU,CAAC;AAIf,uBAAqBH,uBAAsB,OAAO,CAAC,QAAQ,kBAAkB,cAAc,UAAU,GAAG,WAAW;AAEnH,MAAI,kBAAkB,kBAAkB;AAAA,IACtC,aAAa,QAAQ;AAAA,IACrB;AAAA,IACA;AAAA,IACA;AAAA,IACA,gBAAgB0B;AAAA,IAChB;AAAA,EACJ,CAAG;AACD,2BAAyB;AAAA,IACvB;AAAA,IACA;AAAA,EACJ,CAAG;AAED,YAAU,WAAY;AACpB,QAAI,cAAc,kBAAkB,OAAO,QAAQ;AACnD,QAAI,eAAe,SAAS,SAAS;AACnC,eAAS,QAAQ,MAAK;AAAA,IACxB;AAAA,EAEF,GAAG,CAAA,CAAE;AACL,YAAU,WAAY;AACpB,QAAI,CAAC,gBAAgB;AACnB,6BAAuB,UAAU,MAAM;AAAA,IACzC;AAAA,EACF,CAAC;AACD,MAAI,wBAAwB,wBAAwB,aAAa,YAAY,SAAS,aAAa;AACjG,QAAI,OAAO,QAAQ,MAAM,QAAQ;AAC/B,eAAS;AAAA,QACP,MAAM;AAAA,QACN,YAAY;AAAA,MACpB,CAAO;AAAA,IACH;AAAA,EACF,GAAG,CAAC,UAAU,MAAM,CAAC,GAAG,QAAQ,WAAY;AAC1C,WAAO,CAAC,SAAS,iBAAiB,QAAQ;AAAA,EAC5C,GAAG,CAAC,QAAQ,SAAS,gBAAgB,SAAS,SAAS,OAAO,CAAC,CAAC;AAChE,MAAI,wBAAwB,4BAA4B,iBAAiB,cAAc;AAEvF,YAAU,WAAY;AACpB,QAAI,CAAC,QAAQ;AACX,eAAS,UAAU,CAAA;AAAA,IACrB;AAAA,EACF,GAAG,CAAC,MAAM,CAAC;AAEX,YAAU,WAAY;AACpB,QAAI;AACJ,QAAI,CAAC,UAAU,EAAE,eAAe,QAAQ,YAAY,aAAa,EAAE,YAAY,SAAS,oBAAoB,SAAS,YAAY,QAAQ,kBAAkB,QAAQ;AACjK;AAAA,IACF;AACA,QAAI,YAAY,SAAS,kBAAkB,SAAS,SAAS;AAC3D,eAAS,QAAQ,MAAK;AAAA,IACxB;AAAA,EACF,GAAG,CAAC,QAAQ,WAAW,CAAC;AAGxB,MAAI,uBAAuB,QAAQ,WAAY;AAC7C,WAAO;AAAA,MACL,WAAW,SAAS,UAAU,OAAO;AACnC,cAAM,eAAc;AACpB,iBAAS;AAAA,UACP,MAAM;AAAA,UACN,QAAQ,MAAM;AAAA,QACxB,CAAS;AAAA,MACH;AAAA,MACA,SAAS,SAAS,QAAQ,OAAO;AAC/B,cAAM,eAAc;AACpB,iBAAS;AAAA,UACP,MAAM;AAAA,UACN,QAAQ,MAAM;AAAA,QACxB,CAAS;AAAA,MACH;AAAA,MACA,MAAM,SAAS,KAAK,OAAO;AACzB,YAAI,CAAC,OAAO,QAAQ,MAAM,QAAQ;AAChC;AAAA,QACF;AACA,cAAM,eAAc;AACpB,iBAAS;AAAA,UACP,MAAM;AAAA,QAChB,CAAS;AAAA,MACH;AAAA,MACA,KAAK,SAAS,IAAI,OAAO;AACvB,YAAI,CAAC,OAAO,QAAQ,MAAM,QAAQ;AAChC;AAAA,QACF;AACA,cAAM,eAAc;AACpB,iBAAS;AAAA,UACP,MAAM;AAAA,QAChB,CAAS;AAAA,MACH;AAAA,MACA,QAAQ,SAAS,OAAO,OAAO;AAC7B,YAAI,cAAc,OAAO,QAAQ;AACjC,YAAI,YAAY,UAAU,YAAY,cAAc,YAAY,gBAAgB,YAAY,mBAAmB,IAAI;AACjH,gBAAM,eAAc;AACpB,mBAAS;AAAA,YACP,MAAM;AAAA,UAClB,CAAW;AAAA,QACH;AAAA,MACF;AAAA,MACA,OAAO,SAAS,MAAM,OAAO;AAC3B,YAAI,cAAc,OAAO,QAAQ;AAEjC,YAAI,CAAC,YAAY,UAAU,MAAM,UAAU,KACzC;AACA;AAAA,QACF;AACA,cAAM,eAAc;AACpB,iBAAS;AAAA,UACP,MAAM;AAAA,QAChB,CAAS;AAAA,MACH;AAAA,MACA,QAAQ,SAAS,OAAO,OAAO;AAC7B,YAAI,OAAO,QAAQ,MAAM,QAAQ;AAC/B,gBAAM,eAAc;AACpB,mBAAS;AAAA,YACP,MAAM;AAAA,UAClB,CAAW;AAAA,QACH;AAAA,MACF;AAAA,MACA,UAAU,SAAS,SAAS,OAAO;AACjC,YAAI,OAAO,QAAQ,MAAM,QAAQ;AAC/B,gBAAM,eAAc;AACpB,mBAAS;AAAA,YACP,MAAM;AAAA,UAClB,CAAW;AAAA,QACH;AAAA,MACF;AAAA,IACN;AAAA,EACE,GAAG,CAAC,UAAU,MAAM,CAAC;AAGrB,MAAI,gBAAgB,YAAY,SAAU,YAAY;AACpD,WAAO,SAAS;AAAA,MACd,IAAI,WAAW;AAAA,MACf,SAAS,WAAW;AAAA,IAC1B,GAAO,UAAU;AAAA,EACf,GAAG,CAAC,UAAU,CAAC;AACf,MAAI,eAAe,YAAY,SAAU,OAAO,QAAQ;AACtD,QAAI;AACJ,QAAI,OAAO,UAAU,SAAS,CAAA,IAAK,OACjC,eAAe,KAAK,cACpB,cAAc,KAAK,QACnB,SAAS,gBAAgB,SAAS,QAAQ,aAC1C,MAAM,KAAK,KACX,OAAO,8BAA8B,MAAM,WAAW;AACxD,QAAI,QAAQ,WAAW,SAAS,CAAA,IAAK,QACnC,wBAAwB,MAAM,kBAC9B,mBAAmB,0BAA0B,SAAS,QAAQ;AAChE,0BAAsB,gBAAgB,kBAAkB,QAAQ,OAAO;AACvE,WAAO,UAAU,YAAY,CAAA,GAAI,UAAU,MAAM,IAAI,WAAW,KAAK,SAAU,UAAU;AACvF,cAAQ,UAAU;AAAA,IACpB,CAAC,GAAG,UAAU,KAAK,WAAW,QAAQ,UAAU,OAAO,WAAW,UAAU,iBAAiB,IAAI,QAAQ,KAAK,YAAY,IAAI,SAAY,KAAK,WAAW,SAAS,UAAU,eAAe,qBAAqB,cAAc,WAAY;AACzO,eAAS;AAAA,QACP,MAAM;AAAA,MACd,CAAO;AAAA,IACH,CAAC,GAAG,YAAY,IAAI;AAAA,EACtB,GAAG,CAAC,UAAU,uBAAuB,UAAU,CAAC;AAChD,MAAI,eAAe,YAAY,SAAU,QAAQ;AAC/C,QAAI,WAAW;AACf,QAAI,QAAQ,WAAW,SAAS,CAAA,IAAK,QACnC,WAAW,MAAM,MACjB,YAAY,MAAM,OAClB,eAAe,MAAM,QACrB,SAAS,iBAAiB,SAAS,QAAQ,cAC3C,MAAM,MAAM,KACZ,cAAc,MAAM,aACpB,cAAc,MAAM,aACpB,UAAU,MAAM;AAChB,UAAM;AACN,QAAI,eAAe,MAAM,UACzB,OAAO,8BAA8B,OAAO,YAAY;AAC1D,QAAI,iBAAiB,QAAW;AAC9B,cAAQ,KAAK,kIAAkI;AAAA,IACjJ;AACA,QAAI,kBAAkB,OAAO,SAC3B,cAAc,gBAAgB,OAC9B,cAAc,gBAAgB;AAChC,QAAI,mBAAmB,gBAAgB,UAAU,WAAW,YAAY,OAAO,4CAA4C,GACzH,OAAO,iBAAiB,CAAC,GACzBvB,SAAQ,iBAAiB,CAAC;AAC5B,QAAI,WAAW,YAAY,eAAe,MAAMA,MAAK;AACrD,QAAI,cAAc;AAClB,QAAI,qBAAqB;AACzB,QAAI,sBAAsB,SAAS6B,uBAAsB;AACvD,UAAI,sBAAsB,cAAc7B,WAAU,YAAY,kBAAkB;AAC9E;AAAA,MACF;AACA,sBAAgB,UAAU;AAC1B,eAAS;AAAA,QACP,MAAM;AAAA,QACN,OAAOA;AAAA,QACP;AAAA,MACR,CAAO;AAAA,IACH;AACA,QAAI,kBAAkB,SAAS8B,mBAAkB;AAC/C,eAAS;AAAA,QACP,MAAM;AAAA,QACN,OAAO9B;AAAA,MACf,CAAO;AAAA,IACH;AACA,QAAI,sBAAsB,SAAS+B,qBAAoBtE,IAAG;AACxD,aAAOA,GAAE,eAAc;AAAA,IACzB;AAEA,WAAO,UAAU,YAAY,CAAA,GAAI,UAAU,MAAM,IAAI,WAAW,KAAK,SAAU,UAAU;AACvF,UAAI,UAAU;AACZ,iBAAS,QAAQ,WAAW,UAAUuC,MAAK,CAAC,IAAI;AAAA,MAClD;AAAA,IACF,CAAC,GAAG,UAAU,eAAe,IAAI,UAAU,UAAU,eAAe,IAAIA,WAAU,YAAY,kBAAkB,UAAU,KAAK,WAAW,UAAUA,MAAK,GAAG,UAAU,OAAO,UAAU,YAAY,CAAC,aAAa,QAAQ,CAAA,GAAI,MAAM,WAAW,IAAI,qBAAqB,oBAAoB,eAAe,GAAG,QAAQ;AAAA,MACnT,aAAa,qBAAqB,aAAa,mBAAmB;AAAA,MAClE,aAAa,qBAAqB,aAAa,mBAAmB;AAAA,IACxE,GAAO,IAAI;AAAA,EACT,GAAG,CAAC,UAAU,YAAY,QAAQ,uBAAuB,eAAe,CAAC;AACzE,MAAI,uBAAuB,YAAY,SAAU,QAAQ;AACvD,QAAI;AACJ,QAAI,QAAQ,WAAW,SAAS,CAAA,IAAK,QACnC,UAAU,MAAM;AAChB,UAAM;AACN,QAAI,eAAe,MAAM,QACzB,SAAS,iBAAiB,SAAS,QAAQ,cAC3C,MAAM,MAAM,KACZ,OAAO,8BAA8B,OAAO,UAAU;AACxD,QAAI,cAAc,OAAO,QAAQ;AACjC,QAAI,0BAA0B,SAAS0B,2BAA0B;AAC/D,eAAS;AAAA,QACP,MAAM;AAAA,MACd,CAAO;AAAA,IACH;AACA,WAAO,UAAU,YAAY,CAAA,GAAI,UAAU,MAAM,IAAI,WAAW,KAAK,SAAU,kBAAkB;AAC/F,sBAAgB,UAAU;AAAA,IAC5B,CAAC,GAAG,UAAU,eAAe,IAAI,WAAW,QAAQ,UAAU,eAAe,IAAI,YAAY,QAAQ,UAAU,KAAK,WAAW,gBAAgB,UAAU,WAAW,IAAI,YAAY,CAAC,KAAK,YAAY,SAAS,CAAA,GAAI;AAAA,MACjN,SAAS,qBAAqB,SAAS,uBAAuB;AAAA,IACpE,CAAK,GAAG,IAAI;AAAA,EACV,GAAG,CAAC,UAAU,QAAQ,UAAU,CAAC;AACjC,MAAI,gBAAgB,YAAY,SAAU,QAAQ,QAAQ;AACxD,QAAI;AACJ,QAAI,QAAQ,WAAW,SAAS,CAAA,IAAK,QACnC,YAAY,MAAM,WAClB,WAAW,MAAM,UACjB,UAAU,MAAM,SAChB,SAAS,MAAM;AACf,UAAM;AACN,QAAI,UAAU,MAAM,SACpB,eAAe,MAAM,QACrB,SAAS,iBAAiB,SAAS,QAAQ,cAC3C,MAAM,MAAM,KACZ,OAAO,8BAA8B,OAAO,UAAU;AACxD,QAAI,QAAQ,WAAW,SAAS,CAAA,IAAK,QACnC,wBAAwB,MAAM,kBAC9B,mBAAmB,0BAA0B,SAAS,QAAQ;AAChE,0BAAsB,iBAAiB,kBAAkB,QAAQ,QAAQ;AACzE,QAAI,cAAc,OAAO,QAAQ;AACjC,QAAI,qBAAqB,SAASO,oBAAmB,OAAO;AAC1D,UAAI,MAAM,kBAAkB,KAAK;AACjC,UAAI,OAAO,qBAAqB,GAAG,GAAG;AACpC,6BAAqB,GAAG,EAAE,KAAK;AAAA,MACjC;AAAA,IACF;AACA,QAAI,oBAAoB,SAASC,mBAAkB,OAAO;AACxD,eAAS;AAAA,QACP,MAAM;AAAA,QACN,YAAY,MAAM,OAAO;AAAA,MACjC,CAAO;AAAA,IACH;AACA,QAAI,kBAAkB,SAASC,iBAAgB,OAAO;AAEpD,UAAI,eAAe,QAAQ,YAAY,YAAY,YAAY,UAAU,CAAC,sBAAsB,aAAa;AAC3G,YAAI,oBAAoB,MAAM,kBAAkB,QAAQ,YAAY,SAAS,kBAAkB,YAAY,SAAS;AACpH,iBAAS;AAAA,UACP,MAAM;AAAA,UACN,YAAY,CAAC;AAAA,QACvB,CAAS;AAAA,MACH;AAAA,IACF;AACA,QAAI,mBAAmB,SAASC,oBAAmB;AACjD,eAAS;AAAA,QACP,MAAM;AAAA,MACd,CAAO;AAAA,IACH;AAGA,QAAI,cAAc;AAClB,QAAI,gBAAgB,CAAA;AACpB,QAAI,CAAC,KAAK,UAAU;AAClB,UAAI;AACJ,uBAAiB,iBAAiB,CAAA,GAAI,eAAe,WAAW,IAAI,qBAAqB,UAAU,SAAS,iBAAiB,GAAG,eAAe,YAAY,qBAAqB,WAAW,kBAAkB,GAAG,eAAe,SAAS,qBAAqB,QAAQ,eAAe,GAAG,eAAe,UAAU,qBAAqB,SAAS,gBAAgB,GAAG;AAAA,IACnW;AACA,WAAO,UAAU,YAAY,CAAA,GAAI,UAAU,MAAM,IAAI,WAAW,KAAK,SAAU,WAAW;AACxF,eAAS,UAAU;AAAA,IACrB,CAAC,GAAG,UAAU,uBAAuB,IAAI,YAAY,UAAU,YAAY,mBAAmB,KAAK,WAAW,UAAU,YAAY,gBAAgB,IAAI,IAAI,UAAU,mBAAmB,IAAI,QAAQ,UAAU,eAAe,IAAI,WAAW,QAAQ,UAAU,eAAe,IAAI,YAAY,QAAQ,UAAU,iBAAiB,IAAI,QAAQ,KAAK,YAAY,IAAI,SAAY,WAAW,SAAS,UAAU,eAAe,OAAO,UAAU,KAAK,WAAW,SAAS,UAAU,OAAO,YAAY,UAAU,QAAQ,YAAY,YAAY,YAAY,eAAe,IAAI;AAAA,EAC7iB,GAAG,CAAC,UAAU,YAAY,aAAa,sBAAsB,QAAQ,uBAAuB,qBAAqB,CAAC;AAGlH,MAAI,aAAa,YAAY,WAAY;AACvC,aAAS;AAAA,MACP,MAAM;AAAA,IACZ,CAAK;AAAA,EACH,GAAG,CAAC,QAAQ,CAAC;AACb,MAAI,YAAY,YAAY,WAAY;AACtC,aAAS;AAAA,MACP,MAAM;AAAA,IACZ,CAAK;AAAA,EACH,GAAG,CAAC,QAAQ,CAAC;AACb,MAAI,WAAW,YAAY,WAAY;AACrC,aAAS;AAAA,MACP,MAAM;AAAA,IACZ,CAAK;AAAA,EACH,GAAG,CAAC,QAAQ,CAAC;AACb,MAAI,sBAAsB,YAAY,SAAU,qBAAqB;AACnE,aAAS;AAAA,MACP,MAAM;AAAA,MACN,kBAAkB;AAAA,IACxB,CAAK;AAAA,EACH,GAAG,CAAC,QAAQ,CAAC;AACb,MAAI,aAAa,YAAY,SAAU,iBAAiB;AACtD,aAAS;AAAA,MACP,MAAM;AAAA,MACN,cAAc;AAAA,IACpB,CAAK;AAAA,EACH,GAAG,CAAC,QAAQ,CAAC;AACb,MAAI,gBAAgB,YAAY,SAAU,eAAe;AACvD,aAAS;AAAA,MACP,MAAM;AAAA,MACN,YAAY;AAAA,IAClB,CAAK;AAAA,EACH,GAAG,CAAC,QAAQ,CAAC;AACb,MAAI,QAAQ,YAAY,WAAY;AAClC,aAAS;AAAA,MACP,MAAM;AAAA,IACZ,CAAK;AAAA,EACH,GAAG,CAAC,QAAQ,CAAC;AACb,SAAO;AAAA;AAAA,IAEL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AACA;AAEA,IAAI,qBAAqB;AAAA,EACvB,aAAa;AAAA,EACb,eAAe,CAAA;AACjB;AAWA,SAAS,gBAAgB,OAAO,SAAS;AACvC,SAAO,kBAAkB,OAAO,SAAS,kBAAkB;AAC7D;AAUA,SAAS,gBAAgB,OAAO,SAAS;AACvC,SAAO,kBAAkB,OAAO,SAAS,kBAAkB;AAC7D;AASA,SAAS,gBAAgB,OAAO;AAC9B,MAAI,cAAc,gBAAgB,OAAO,aAAa;AACtD,MAAI,gBAAgB,gBAAgB,OAAO,eAAe;AAC1D,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EACJ;AACA;AAWA,SAAS,4BAA4B,OAAO;AAC1C,MAAI,MAAM,YAAY,MAAM,WAAW,MAAM,WAAW,MAAM,QAAQ;AACpE,WAAO;AAAA,EACT;AACA,MAAI,UAAU,MAAM;AACpB,MAAI,mBAAmB;AAAA,EAEvB,QAAQ,UAAU;AAAA;AAAA,GAGlB,QAAQ,mBAAmB,KAAK,QAAQ,iBAAiB,IAAI;AAC3D,WAAO;AAAA,EACT;AACA,SAAO;AACT;AAUA,SAAS,aAAa,WAAW,UAAU;AACzC,SAAO,UAAU,kBAAkB,SAAS,iBAAiB,UAAU,gBAAgB,SAAS;AAClG;AACA,IAAI,YAAY;AAAA,EACd,cAAc,gBAAgB;AAAA,EAC9B,WAAW,gBAAgB;AAAA,EAC3B,aAAa,gBAAgB;AAAA,EAC7B,eAAe,UAAU;AAAA,EACzB,sBAAsB,UAAU;AAAA,EAChC,sBAAsB,UAAU;AAAA,EAChC,sBAAsB,UAAU;AAAA,EAChC,aAAa,UAAU;AAAA,EACvB,oBAAoB,UAAU;AAAA,EAC9B,oBAAoB,UAAU;AAAA,EAC9B,qBAAqB,UAAU;AAAA,EAC/B,uBAAuB,UAAU;AAAA,EACjC,mBAAmB,UAAU;AAAA,EAC7B,uBAAuB,UAAU;AACnC;AACA,IAAI,eAAe;AAAA,EACjB,WAAW,eAAe;AAAA,EAC1B,cAAc,eAAe;AAAA,EAC7B,aAAa,eAAe;AAAA,EAC5B,mBAAmB;AAAA,EACnB,uBAAuB;AACzB;AAGA,IAAI,oBAAoBzC;AAExB,IAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,sBAAoB,SAASqC,mBAAkB,SAAS,QAAQ;AAC9D,cAAU,eAAe,WAAW,SAAS,QAAQ,OAAO,IAAI;AAAA,EAClE;AACF;AAEA,IAAI,oBAAoB,QAAQ,IAAI,aAAa,eAAe,4BAA4B;AAC5F,IAAI,4BAA4B,QAAQ,IAAI,aAAa,eAAe,qCAAqC;AAC7G,IAAI,+BAA+B,QAAQ,IAAI,aAAa,eAAe,wCAAwC;AACnH,IAAI,oCAAoC,QAAQ,IAAI,aAAa,eAAe,8CAA8C;AAC9H,IAAI,wCAAwC,QAAQ,IAAI,aAAa,eAAe,kDAAkD;AACtI,IAAI,oCAAoC,QAAQ,IAAI,aAAa,eAAe,6CAA6C;AAC7H,IAAI,2BAA2B,QAAQ,IAAI,aAAa,eAAe,mCAAmC;AAC1G,IAAI,gBAAgB,QAAQ,IAAI,aAAa,eAAe,uBAAuB;AACnF,IAAI,0BAA0B,QAAQ,IAAI,aAAa,eAAe,mCAAmC;AACzG,IAAI,6BAA6B,QAAQ,IAAI,aAAa,eAAe,sCAAsC;AAC/G,IAAI,2BAA2B,QAAQ,IAAI,aAAa,eAAe,oCAAoC;AAC3G,IAAI,yBAAyB,QAAQ,IAAI,aAAa,eAAe,kCAAkC;AACvG,IAAI,gBAAgB,QAAQ,IAAI,aAAa,eAAe,uBAAuB;AAEnF,IAAI,mBAAgC,uBAAO,OAAO;AAAA,EAChD,WAAW;AAAA,EACX;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAGD,SAAS,kCAAkC,OAAO,QAAQ;AACxD,MAAI,OAAO,OAAO,MAChBhC,SAAQ,OAAO,OACf,QAAQ,OAAO,OACf,eAAe,OAAO;AACxB,MAAI,cAAc,MAAM,aACtB,gBAAgB,MAAM;AACxB,MAAI;AACJ,UAAQ,MAAI;AAAA,IACV,KAAK;AACH,gBAAU;AAAA,QACR,aAAaA;AAAA,MACrB;AACM;AAAA,IACF,KAAK;AACH,gBAAU;AAAA,QACR,aAAa,cAAc,IAAI,IAAI,IAAI,cAAc;AAAA,MAC7D;AACM;AAAA,IACF,KAAK;AACH,gBAAU;AAAA,QACR,aAAa,cAAc,KAAK,cAAc,SAAS,KAAK,cAAc;AAAA,MAClF;AACM;AAAA,IACF,KAAK;AAAA,IACL,KAAK,2BACH;AACE,UAAI,cAAc,GAAG;AACnB;AAAA,MACF;AACA,UAAI,iBAAiB;AACrB,UAAI,cAAc,WAAW,GAAG;AAC9B,yBAAiB;AAAA,MACnB,WAAW,gBAAgB,cAAc,SAAS,GAAG;AACnD,yBAAiB,cAAc,SAAS;AAAA,MAC1C;AACA,gBAAU,SAAS;AAAA,QACjB,eAAe,CAAA,EAAG,OAAO,cAAc,MAAM,GAAG,WAAW,GAAG,cAAc,MAAM,cAAc,CAAC,CAAC;AAAA,MAC5G,GAAW;AAAA,QACD,aAAa;AAAA,MACvB,CAAS;AACD;AAAA,IACF;AAAA,IACF,KAAK;AACH,gBAAU;AAAA,QACR,aAAa,cAAc,SAAS;AAAA,MAC5C;AACM;AAAA,IACF,KAAK;AACH,gBAAU;AAAA,QACR,eAAe,cAAc,MAAM,GAAG,cAAc,SAAS,CAAC;AAAA,MACtE;AACM;AAAA,IACF,KAAK;AACH,gBAAU;AAAA,QACR,eAAe,CAAA,EAAG,OAAO,eAAe,CAAC,YAAY,CAAC;AAAA,MAC9D;AACM;AAAA,IACF,KAAK;AACH,gBAAU;AAAA,QACR,aAAa;AAAA,MACrB;AACM;AAAA,IACF,KAAK,4BACH;AACE,UAAI,kBAAkB;AACtB,UAAI,oBAAoB,cAAc,UAAU,SAAU,MAAM;AAC9D,eAAO,MAAM,UAAU,IAAI,MAAM,MAAM,UAAU,YAAY;AAAA,MAC/D,CAAC;AACD,UAAI,oBAAoB,GAAG;AACzB;AAAA,MACF;AACA,UAAI,cAAc,WAAW,GAAG;AAC9B,0BAAkB;AAAA,MACpB,WAAW,sBAAsB,cAAc,SAAS,GAAG;AACzD,0BAAkB,cAAc,SAAS;AAAA,MAC3C;AACA,gBAAU;AAAA,QACR,eAAe,CAAA,EAAG,OAAO,cAAc,MAAM,GAAG,iBAAiB,GAAG,cAAc,MAAM,oBAAoB,CAAC,CAAC;AAAA,QAC9G,aAAa;AAAA,MACvB;AACQ;AAAA,IACF;AAAA,IACF,KAAK,0BACH;AACE,UAAI,mBAAmB,OAAO;AAC9B,gBAAU;AAAA,QACR,eAAe;AAAA,MACzB;AACQ;AAAA,IACF;AAAA,IACF,KAAK,wBACH;AACE,UAAI,mBAAmB,OAAO;AAC9B,gBAAU;AAAA,QACR,aAAa;AAAA,MACvB;AACQ;AAAA,IACF;AAAA,IACF,KAAK;AACH,gBAAU;AAAA,QACR,aAAa,gBAAgB,OAAO,aAAa;AAAA,QACjD,eAAe,gBAAgB,OAAO,eAAe;AAAA,MAC7D;AACM;AAAA,IACF;AACE,YAAM,IAAI,MAAM,4CAA4C;AAAA,EAClE;AACE,SAAO,SAAS,CAAA,GAAI,OAAO,OAAO;AACpC;AAEA,IAAI,YAAY,CAAC,UAAU,OAAO,WAAW,aAAa,gBAAgB,OAAO,GAC/E,aAAa,CAAC,UAAU,OAAO,aAAa,WAAW,kBAAkB;AAC3E,qBAAqB,mBAAmB;AACxC,SAAS,qBAAqB,WAAW;AACvC,MAAI,cAAc,QAAQ;AACxB,gBAAY,CAAA;AAAA,EACd;AACA,oBAAkB,WAAW,oBAAoB;AAEjD,MAAI,QAAQ,SAAS,IAAI,cAAc,SAAS;AAChD,MAAIH,wBAAuB,MAAM,sBAC/B,cAAc,MAAM,aACpB,oBAAoB,MAAM,mBAC1B,wBAAwB,MAAM;AAGhC,MAAI,wBAAwB,uBAAuB,mCAAmC,OAAO,iBAAiB,YAAY,GACxH,QAAQ,sBAAsB,CAAC,GAC/B,WAAW,sBAAsB,CAAC;AACpC,MAAI,cAAc,MAAM,aACtB,gBAAgB,MAAM;AAGxB,MAAI,iBAAiB,kBAAiB;AACtC,MAAI,cAAc,OAAO,IAAI;AAC7B,MAAI,mBAAmB,OAAM;AAC7B,mBAAiB,UAAU,CAAA;AAC3B,MAAI,SAASiB,eAAa;AAAA,IACxB;AAAA,IACA;AAAA,EACJ,CAAG;AAID,uBAAqBjB,uBAAsB,OAAO,CAAC,aAAa,aAAa,GAAG,WAAW;AAE3F,YAAU,WAAY;AACpB,QAAI,gBAAgB;AAClB;AAAA,IACF;AACA,QAAI,gBAAgB,MAAM,YAAY,SAAS;AAC7C,kBAAY,QAAQ,MAAK;AAAA,IAC3B,WAAW,iBAAiB,QAAQ,WAAW,GAAG;AAChD,uBAAiB,QAAQ,WAAW,EAAE,MAAK;AAAA,IAC7C;AAAA,EAEF,GAAG,CAAC,WAAW,CAAC;AAChB,2BAAyB;AAAA,IACvB;AAAA,IACA;AAAA,EACJ,CAAG;AACD,MAAI,wBAAwB,4BAA4B,kBAAkB;AAG1E,MAAI,8BAA8B,QAAQ,WAAY;AACpD,QAAI;AACJ,WAAO,OAAO,CAAA,GAAI,KAAK,qBAAqB,IAAI,WAAY;AAC1D,eAAS;AAAA,QACP,MAAM;AAAA,MACd,CAAO;AAAA,IACH,GAAG,KAAK,iBAAiB,IAAI,WAAY;AACvC,eAAS;AAAA,QACP,MAAM;AAAA,MACd,CAAO;AAAA,IACH,GAAG,KAAK,SAAS,SAAS,SAAS;AACjC,eAAS;AAAA,QACP,MAAM;AAAA,MACd,CAAO;AAAA,IACH,GAAG,KAAK,YAAY,SAAS,YAAY;AACvC,eAAS;AAAA,QACP,MAAM;AAAA,MACd,CAAO;AAAA,IACH,GAAG;AAAA,EACL,GAAG,CAAC,UAAU,mBAAmB,qBAAqB,CAAC;AACvD,MAAI,0BAA0B,QAAQ,WAAY;AAChD,QAAI;AACJ,WAAO,QAAQ,CAAA,GAAI,MAAM,qBAAqB,IAAI,SAAU,OAAO;AACjE,UAAI,4BAA4B,KAAK,GAAG;AACtC,iBAAS;AAAA,UACP,MAAM;AAAA,QAChB,CAAS;AAAA,MACH;AAAA,IACF,GAAG,MAAM,YAAY,SAAS,UAAU,OAAO;AAC7C,UAAI,4BAA4B,KAAK,GAAG;AACtC,iBAAS;AAAA,UACP,MAAM;AAAA,QAChB,CAAS;AAAA,MACH;AAAA,IACF,GAAG;AAAA,EACL,GAAG,CAAC,UAAU,qBAAqB,CAAC;AAGpC,MAAI,uBAAuB,YAAY,SAAU,OAAO;AACtD,QAAI;AACJ,QAAI,QAAQ,UAAU,SAAS,CAAA,IAAK,OAClC,eAAe,MAAM,QACrB,SAAS,iBAAiB,SAAS,QAAQ,cAC3C,MAAM,MAAM,KACZ,UAAU,MAAM,SAChB,YAAY,MAAM,WAClB,mBAAmB,MAAM,cACzB,YAAY,MAAM,OAClB,OAAO,8BAA8B,OAAO,SAAS;AACvD,QAAI,cAAc,OAAO,QAAQ;AACjC,QAAI,mBAAmB,gBAAgB,kBAAkB,WAAW,YAAY,eAAe,oDAAoD,GACjJG,SAAQ,iBAAiB,CAAC;AAC5B,QAAI,cAAcA,SAAQ,MAAMA,WAAU,YAAY;AACtD,QAAI,0BAA0B,SAASqC,2BAA0B;AAC/D,eAAS;AAAA,QACP,MAAM;AAAA,QACN,OAAOrC;AAAA,MACf,CAAO;AAAA,IACH;AACA,QAAI,4BAA4B,SAASsC,2BAA0B,OAAO;AACxE,UAAI,MAAM,kBAAkB,KAAK;AACjC,UAAI,OAAO,4BAA4B,GAAG,GAAG;AAC3C,oCAA4B,GAAG,EAAE,KAAK;AAAA,MACxC;AAAA,IACF;AACA,WAAO,UAAU,YAAY,CAAA,GAAI,UAAU,MAAM,IAAI,WAAW,KAAK,SAAU,kBAAkB;AAC/F,UAAI,kBAAkB;AACpB,yBAAiB,QAAQ,KAAK,gBAAgB;AAAA,MAChD;AAAA,IACF,CAAC,GAAG,UAAU,WAAW,cAAc,IAAI,IAAI,UAAU,UAAU,qBAAqB,SAAS,uBAAuB,GAAG,UAAU,YAAY,qBAAqB,WAAW,yBAAyB,GAAG,YAAY,IAAI;AAAA,EAC/N,GAAG,CAAC,UAAU,QAAQ,2BAA2B,CAAC;AAClD,MAAI,mBAAmB,YAAY,SAAU,QAAQ,QAAQ;AAC3D,QAAI;AACJ,QAAI,QAAQ,WAAW,SAAS,CAAA,IAAK,QACnC,eAAe,MAAM,QACrB,SAAS,iBAAiB,SAAS,QAAQ,cAC3C,MAAM,MAAM,KACZ,YAAY,MAAM,WAClB,UAAU,MAAM,SAChB,wBAAwB,MAAM,kBAC9B,mBAAmB,0BAA0B,SAAS,QAAQ,uBAC9D,OAAO,8BAA8B,OAAO,UAAU;AACxD,QAAI,QAAQ,WAAW,SAAS,CAAA,IAAK,QACnC,wBAAwB,MAAM,kBAC9B,mBAAmB,0BAA0B,SAAS,QAAQ;AAChE,0BAAsB,oBAAoB,kBAAkB,QAAQ,WAAW;AAC/E,QAAI,wBAAwB,SAASC,uBAAsB,OAAO;AAChE,UAAI,MAAM,kBAAkB,KAAK;AACjC,UAAI,OAAO,wBAAwB,GAAG,GAAG;AACvC,gCAAwB,GAAG,EAAE,KAAK;AAAA,MACpC;AAAA,IACF;AACA,QAAI,sBAAsB,SAASC,uBAAsB;AACvD,eAAS;AAAA,QACP,MAAM;AAAA,MACd,CAAO;AAAA,IACH;AACA,WAAO,UAAU,YAAY,CAAA,GAAI,UAAU,MAAM,IAAI,WAAW,KAAK,SAAU,cAAc;AAC3F,UAAI,cAAc;AAChB,oBAAY,UAAU;AAAA,MACxB;AAAA,IACF,CAAC,GAAG,YAAY,CAAC,oBAAoB;AAAA,MACnC,WAAW,qBAAqB,WAAW,qBAAqB;AAAA,MAChE,SAAS,qBAAqB,SAAS,mBAAmB;AAAA,IAChE,GAAO,IAAI;AAAA,EACT,GAAG,CAAC,UAAU,yBAAyB,qBAAqB,CAAC;AAG7D,MAAI,kBAAkB,YAAY,SAAU,cAAc;AACxD,aAAS;AAAA,MACP,MAAM;AAAA,MACN;AAAA,IACN,CAAK;AAAA,EACH,GAAG,CAAC,QAAQ,CAAC;AACb,MAAI,qBAAqB,YAAY,SAAU,cAAc;AAC3D,aAAS;AAAA,MACP,MAAM;AAAA,MACN;AAAA,IACN,CAAK;AAAA,EACH,GAAG,CAAC,QAAQ,CAAC;AACb,MAAI,mBAAmB,YAAY,SAAU,kBAAkB;AAC7D,aAAS;AAAA,MACP,MAAM;AAAA,MACN,eAAe;AAAA,IACrB,CAAK;AAAA,EACH,GAAG,CAAC,QAAQ,CAAC;AACb,MAAI,iBAAiB,YAAY,SAAU,gBAAgB;AACzD,aAAS;AAAA,MACP,MAAM;AAAA,MACN,aAAa;AAAA,IACnB,CAAK;AAAA,EACH,GAAG,CAAC,QAAQ,CAAC;AACb,MAAI,QAAQ,YAAY,WAAY;AAClC,aAAS;AAAA,MACP,MAAM;AAAA,IACZ,CAAK;AAAA,EACH,GAAG,CAAC,QAAQ,CAAC;AACb,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AACA;;;;;;;;;;;;ACrxHA,KAAC,WAAY;AAGZ,UAAI,SAAS,CAAA,EAAG;AAEhB,eAASC,cAAc;AACtB,YAAI,UAAU;AAEd,iBAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AAC1C,cAAI,MAAM,UAAU,CAAC;AACrB,cAAI,KAAK;AACR,sBAAU,YAAY,SAAS,WAAW,GAAG,CAAC;AAAA,UAClD;AAAA,QACA;AAEE,eAAO;AAAA,MACT;AAEC,eAAS,WAAY,KAAK;AACzB,YAAI,OAAO,QAAQ,YAAY,OAAO,QAAQ,UAAU;AACvD,iBAAO;AAAA,QACV;AAEE,YAAI,OAAO,QAAQ,UAAU;AAC5B,iBAAO;AAAA,QACV;AAEE,YAAI,MAAM,QAAQ,GAAG,GAAG;AACvB,iBAAOA,YAAW,MAAM,MAAM,GAAG;AAAA,QACpC;AAEE,YAAI,IAAI,aAAa,OAAO,UAAU,YAAY,CAAC,IAAI,SAAS,SAAQ,EAAG,SAAS,eAAe,GAAG;AACrG,iBAAO,IAAI,SAAQ;AAAA,QACtB;AAEE,YAAI,UAAU;AAEd,iBAAS,OAAO,KAAK;AACpB,cAAI,OAAO,KAAK,KAAK,GAAG,KAAK,IAAI,GAAG,GAAG;AACtC,sBAAU,YAAY,SAAS,GAAG;AAAA,UACtC;AAAA,QACA;AAEE,eAAO;AAAA,MACT;AAEC,eAAS,YAAa,OAAO,UAAU;AACtC,YAAI,CAAC,UAAU;AACd,iBAAO;AAAA,QACV;AAEE,YAAI,OAAO;AACV,iBAAO,QAAQ,MAAM;AAAA,QACxB;AAEE,eAAO,QAAQ;AAAA,MACjB;AAEC,UAAqC,OAAO,SAAS;AACpD,QAAAA,YAAW,UAAUA;AACrB,yBAAiBA;AAAA,MACnB,OAKQ;AACN,eAAO,aAAaA;AAAA,MACtB;AAAA,IACA;;;;;;ACpEA,MAAM,MAAM,KAAK;AACjB,MAAM,MAAM,KAAK;AACjB,MAAM,QAAQ,KAAK;AACnB,MAAM,QAAQ,KAAK;AACnB,MAAM,eAAe,QAAM;AAAA,EACzB,GAAG;AAAA,EACH,GAAG;AACL;AACA,MAAM,kBAAkB;AAAA,EACtB,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,KAAK;AACP;AACA,MAAM,uBAAuB;AAAA,EAC3B,OAAO;AAAA,EACP,KAAK;AACP;AACA,SAASC,QAAM,OAAO,OAAO,KAAK;AAChC,SAAO,IAAI,OAAO,IAAI,OAAO,GAAG,CAAC;AACnC;AACA,SAAS,SAAS,OAAO,OAAO;AAC9B,SAAO,OAAO,UAAU,aAAa,MAAM,KAAK,IAAI;AACtD;AACA,SAAS,QAAQ,WAAW;AAC1B,SAAO,UAAU,MAAM,GAAG,EAAE,CAAC;AAC/B;AACA,SAAS,aAAa,WAAW;AAC/B,SAAO,UAAU,MAAM,GAAG,EAAE,CAAC;AAC/B;AACA,SAAS,gBAAgB,MAAM;AAC7B,SAAO,SAAS,MAAM,MAAM;AAC9B;AACA,SAAS,cAAc,MAAM;AAC3B,SAAO,SAAS,MAAM,WAAW;AACnC;AACA,MAAM,aAA0B,oBAAI,IAAI,CAAC,OAAO,QAAQ,CAAC;AACzD,SAAS,YAAY,WAAW;AAC9B,SAAO,WAAW,IAAI,QAAQ,SAAS,CAAC,IAAI,MAAM;AACpD;AACA,SAAS,iBAAiB,WAAW;AACnC,SAAO,gBAAgB,YAAY,SAAS,CAAC;AAC/C;AACA,SAAS,kBAAkB,WAAW,OAAO,KAAK;AAChD,MAAI,QAAQ,QAAQ;AAClB,UAAM;AAAA,EACR;AACA,QAAM,YAAY,aAAa,SAAS;AACxC,QAAM,gBAAgB,iBAAiB,SAAS;AAChD,QAAM,SAAS,cAAc,aAAa;AAC1C,MAAI,oBAAoB,kBAAkB,MAAM,eAAe,MAAM,QAAQ,WAAW,UAAU,SAAS,cAAc,UAAU,WAAW;AAC9I,MAAI,MAAM,UAAU,MAAM,IAAI,MAAM,SAAS,MAAM,GAAG;AACpD,wBAAoB,qBAAqB,iBAAiB;AAAA,EAC5D;AACA,SAAO,CAAC,mBAAmB,qBAAqB,iBAAiB,CAAC;AACpE;AACA,SAAS,sBAAsB,WAAW;AACxC,QAAM,oBAAoB,qBAAqB,SAAS;AACxD,SAAO,CAAC,8BAA8B,SAAS,GAAG,mBAAmB,8BAA8B,iBAAiB,CAAC;AACvH;AACA,SAAS,8BAA8B,WAAW;AAChD,SAAO,UAAU,QAAQ,cAAc,eAAa,qBAAqB,SAAS,CAAC;AACrF;AACA,MAAM,cAAc,CAAC,QAAQ,OAAO;AACpC,MAAM,cAAc,CAAC,SAAS,MAAM;AACpC,MAAM,cAAc,CAAC,OAAO,QAAQ;AACpC,MAAM,cAAc,CAAC,UAAU,KAAK;AACpC,SAAS,YAAY,MAAM,SAAS,KAAK;AACvC,UAAQ,MAAI;AAAA,IACV,KAAK;AAAA,IACL,KAAK;AACH,UAAI,IAAK,QAAO,UAAU,cAAc;AACxC,aAAO,UAAU,cAAc;AAAA,IACjC,KAAK;AAAA,IACL,KAAK;AACH,aAAO,UAAU,cAAc;AAAA,IACjC;AACE,aAAO,CAAA;AAAA,EACb;AACA;AACA,SAAS,0BAA0B,WAAW,eAAe,WAAW,KAAK;AAC3E,QAAM,YAAY,aAAa,SAAS;AACxC,MAAI,OAAO,YAAY,QAAQ,SAAS,GAAG,cAAc,SAAS,GAAG;AACrE,MAAI,WAAW;AACb,WAAO,KAAK,IAAI,UAAQ,OAAO,MAAM,SAAS;AAC9C,QAAI,eAAe;AACjB,aAAO,KAAK,OAAO,KAAK,IAAI,6BAA6B,CAAC;AAAA,IAC5D;AAAA,EACF;AACA,SAAO;AACT;AACA,SAAS,qBAAqB,WAAW;AACvC,SAAO,UAAU,QAAQ,0BAA0B,UAAQ,gBAAgB,IAAI,CAAC;AAClF;AACA,SAAS,oBAAoB,SAAS;AACpC,SAAO;AAAA,IACL,KAAK;AAAA,IACL,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,GAAG;AAAA,EACP;AACA;AACA,SAAS,iBAAiB,SAAS;AACjC,SAAO,OAAO,YAAY,WAAW,oBAAoB,OAAO,IAAI;AAAA,IAClE,KAAK;AAAA,IACL,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,MAAM;AAAA,EACV;AACA;AACA,SAAS,iBAAiB,MAAM;AAC9B,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,IAAM;AACJ,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,KAAK;AAAA,IACL,MAAM;AAAA,IACN,OAAO,IAAI;AAAA,IACX,QAAQ,IAAI;AAAA,IACZ;AAAA,IACA;AAAA,EACJ;AACA;ACrIA,SAAS,2BAA2B,MAAM,WAAW,KAAK;AACxD,MAAI;AAAA,IACF;AAAA,IACA;AAAA,EACJ,IAAM;AACJ,QAAM,WAAW,YAAY,SAAS;AACtC,QAAM,gBAAgB,iBAAiB,SAAS;AAChD,QAAM,cAAc,cAAc,aAAa;AAC/C,QAAM,OAAO,QAAQ,SAAS;AAC9B,QAAM,aAAa,aAAa;AAChC,QAAM,UAAU,UAAU,IAAI,UAAU,QAAQ,IAAI,SAAS,QAAQ;AACrE,QAAM,UAAU,UAAU,IAAI,UAAU,SAAS,IAAI,SAAS,SAAS;AACvE,QAAM,cAAc,UAAU,WAAW,IAAI,IAAI,SAAS,WAAW,IAAI;AACzE,MAAI;AACJ,UAAQ,MAAI;AAAA,IACV,KAAK;AACH,eAAS;AAAA,QACP,GAAG;AAAA,QACH,GAAG,UAAU,IAAI,SAAS;AAAA,MAClC;AACM;AAAA,IACF,KAAK;AACH,eAAS;AAAA,QACP,GAAG;AAAA,QACH,GAAG,UAAU,IAAI,UAAU;AAAA,MACnC;AACM;AAAA,IACF,KAAK;AACH,eAAS;AAAA,QACP,GAAG,UAAU,IAAI,UAAU;AAAA,QAC3B,GAAG;AAAA,MACX;AACM;AAAA,IACF,KAAK;AACH,eAAS;AAAA,QACP,GAAG,UAAU,IAAI,SAAS;AAAA,QAC1B,GAAG;AAAA,MACX;AACM;AAAA,IACF;AACE,eAAS;AAAA,QACP,GAAG,UAAU;AAAA,QACb,GAAG,UAAU;AAAA,MACrB;AAAA,EACA;AACE,UAAQ,aAAa,SAAS,GAAC;AAAA,IAC7B,KAAK;AACH,aAAO,aAAa,KAAK,eAAe,OAAO,aAAa,KAAK;AACjE;AAAA,IACF,KAAK;AACH,aAAO,aAAa,KAAK,eAAe,OAAO,aAAa,KAAK;AACjE;AAAA,EACN;AACE,SAAO;AACT;AASA,MAAMC,oBAAkB,OAAO,WAAW,UAAU,WAAW;AAC7D,QAAM;AAAA,IACJ,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,aAAa,CAAA;AAAA,IACb,UAAAC;AAAA,EACJ,IAAM;AACJ,QAAM,kBAAkB,WAAW,OAAO,OAAO;AACjD,QAAM,MAAM,OAAOA,UAAS,SAAS,OAAO,SAASA,UAAS,MAAM,QAAQ;AAC5E,MAAI,QAAQ,MAAMA,UAAS,gBAAgB;AAAA,IACzC;AAAA,IACA;AAAA,IACA;AAAA,EACJ,CAAG;AACD,MAAI;AAAA,IACF;AAAA,IACA;AAAA,EACJ,IAAM,2BAA2B,OAAO,WAAW,GAAG;AACpD,MAAI,oBAAoB;AACxB,MAAI,iBAAiB,CAAA;AACrB,MAAI,aAAa;AACjB,WAAS,IAAI,GAAG,IAAI,gBAAgB,QAAQ,KAAK;AAC/C,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,IACN,IAAQ,gBAAgB,CAAC;AACrB,UAAM;AAAA,MACJ,GAAG;AAAA,MACH,GAAG;AAAA,MACH;AAAA,MACA;AAAA,IACN,IAAQ,MAAM,GAAG;AAAA,MACX;AAAA,MACA;AAAA,MACA,kBAAkB;AAAA,MAClB,WAAW;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA,UAAAA;AAAA,MACA,UAAU;AAAA,QACR;AAAA,QACA;AAAA,MACR;AAAA,IACA,CAAK;AACD,QAAI,SAAS,OAAO,QAAQ;AAC5B,QAAI,SAAS,OAAO,QAAQ;AAC5B,qBAAiB;AAAA,MACf,GAAG;AAAA,MACH,CAAC,IAAI,GAAG;AAAA,QACN,GAAG,eAAe,IAAI;AAAA,QACtB,GAAG;AAAA,MACX;AAAA,IACA;AACI,QAAI,SAAS,cAAc,IAAI;AAC7B;AACA,UAAI,OAAO,UAAU,UAAU;AAC7B,YAAI,MAAM,WAAW;AACnB,8BAAoB,MAAM;AAAA,QAC5B;AACA,YAAI,MAAM,OAAO;AACf,kBAAQ,MAAM,UAAU,OAAO,MAAMA,UAAS,gBAAgB;AAAA,YAC5D;AAAA,YACA;AAAA,YACA;AAAA,UACZ,CAAW,IAAI,MAAM;AAAA,QACb;AACA,SAAC;AAAA,UACC;AAAA,UACA;AAAA,QACV,IAAY,2BAA2B,OAAO,mBAAmB,GAAG;AAAA,MAC9D;AACA,UAAI;AAAA,IACN;AAAA,EACF;AACA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX;AAAA,IACA;AAAA,EACJ;AACA;AAUA,eAAe,eAAe,OAAO,SAAS;AAC5C,MAAI;AACJ,MAAI,YAAY,QAAQ;AACtB,cAAU,CAAA;AAAA,EACZ;AACA,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA,UAAAA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,IAAM;AACJ,QAAM;AAAA,IACJ,WAAW;AAAA,IACX,eAAe;AAAA,IACf,iBAAiB;AAAA,IACjB,cAAc;AAAA,IACd,UAAU;AAAA,EACd,IAAM,SAAS,SAAS,KAAK;AAC3B,QAAM,gBAAgB,iBAAiB,OAAO;AAC9C,QAAM,aAAa,mBAAmB,aAAa,cAAc;AACjE,QAAM,UAAU,SAAS,cAAc,aAAa,cAAc;AAClE,QAAM,qBAAqB,iBAAiB,MAAMA,UAAS,gBAAgB;AAAA,IACzE,WAAW,wBAAwB,OAAOA,UAAS,aAAa,OAAO,SAASA,UAAS,UAAU,OAAO,OAAO,OAAO,wBAAwB,QAAQ,UAAU,QAAQ,kBAAmB,OAAOA,UAAS,sBAAsB,OAAO,SAASA,UAAS,mBAAmB,SAAS,QAAQ;AAAA,IAChS;AAAA,IACA;AAAA,IACA;AAAA,EACJ,CAAG,CAAC;AACF,QAAM,OAAO,mBAAmB,aAAa;AAAA,IAC3C;AAAA,IACA;AAAA,IACA,OAAO,MAAM,SAAS;AAAA,IACtB,QAAQ,MAAM,SAAS;AAAA,EAC3B,IAAM,MAAM;AACV,QAAM,eAAe,OAAOA,UAAS,mBAAmB,OAAO,SAASA,UAAS,gBAAgB,SAAS,QAAQ;AAClH,QAAM,cAAe,OAAOA,UAAS,aAAa,OAAO,SAASA,UAAS,UAAU,YAAY,KAAO,OAAOA,UAAS,YAAY,OAAO,SAASA,UAAS,SAAS,YAAY,MAAO;AAAA,IACvL,GAAG;AAAA,IACH,GAAG;AAAA,EACP,IAAM;AAAA,IACF,GAAG;AAAA,IACH,GAAG;AAAA,EACP;AACE,QAAM,oBAAoB,iBAAiBA,UAAS,wDAAwD,MAAMA,UAAS,sDAAsD;AAAA,IAC/K;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,CAAG,IAAI,IAAI;AACT,SAAO;AAAA,IACL,MAAM,mBAAmB,MAAM,kBAAkB,MAAM,cAAc,OAAO,YAAY;AAAA,IACxF,SAAS,kBAAkB,SAAS,mBAAmB,SAAS,cAAc,UAAU,YAAY;AAAA,IACpG,OAAO,mBAAmB,OAAO,kBAAkB,OAAO,cAAc,QAAQ,YAAY;AAAA,IAC5F,QAAQ,kBAAkB,QAAQ,mBAAmB,QAAQ,cAAc,SAAS,YAAY;AAAA,EACpG;AACA;AAiMA,MAAMC,SAAO,SAAU,SAAS;AAC9B,MAAI,YAAY,QAAQ;AACtB,cAAU,CAAA;AAAA,EACZ;AACA,SAAO;AAAA,IACL,MAAM;AAAA,IACN;AAAA,IACA,MAAM,GAAG,OAAO;AACd,UAAI,uBAAuB;AAC3B,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,UAAAD;AAAA,QACA;AAAA,MACR,IAAU;AACJ,YAAM;AAAA,QACJ,UAAU,gBAAgB;AAAA,QAC1B,WAAW,iBAAiB;AAAA,QAC5B,oBAAoB;AAAA,QACpB,mBAAmB;AAAA,QACnB,4BAA4B;AAAA,QAC5B,gBAAgB;AAAA,QAChB,GAAG;AAAA,MACX,IAAU,SAAS,SAAS,KAAK;AAM3B,WAAK,wBAAwB,eAAe,UAAU,QAAQ,sBAAsB,iBAAiB;AACnG,eAAO,CAAA;AAAA,MACT;AACA,YAAM,OAAO,QAAQ,SAAS;AAC9B,YAAM,kBAAkB,YAAY,gBAAgB;AACpD,YAAM,kBAAkB,QAAQ,gBAAgB,MAAM;AACtD,YAAM,MAAM,OAAOA,UAAS,SAAS,OAAO,SAASA,UAAS,MAAM,SAAS,QAAQ;AACrF,YAAM,qBAAqB,gCAAgC,mBAAmB,CAAC,gBAAgB,CAAC,qBAAqB,gBAAgB,CAAC,IAAI,sBAAsB,gBAAgB;AAChL,YAAM,+BAA+B,8BAA8B;AACnE,UAAI,CAAC,+BAA+B,8BAA8B;AAChE,2BAAmB,KAAK,GAAG,0BAA0B,kBAAkB,eAAe,2BAA2B,GAAG,CAAC;AAAA,MACvH;AACA,YAAM,aAAa,CAAC,kBAAkB,GAAG,kBAAkB;AAC3D,YAAM,WAAW,MAAM,eAAe,OAAO,qBAAqB;AAClE,YAAM,YAAY,CAAA;AAClB,UAAI,kBAAkB,uBAAuB,eAAe,SAAS,OAAO,SAAS,qBAAqB,cAAc,CAAA;AACxH,UAAI,eAAe;AACjB,kBAAU,KAAK,SAAS,IAAI,CAAC;AAAA,MAC/B;AACA,UAAI,gBAAgB;AAClB,cAAM,QAAQ,kBAAkB,WAAW,OAAO,GAAG;AACrD,kBAAU,KAAK,SAAS,MAAM,CAAC,CAAC,GAAG,SAAS,MAAM,CAAC,CAAC,CAAC;AAAA,MACvD;AACA,sBAAgB,CAAC,GAAG,eAAe;AAAA,QACjC;AAAA,QACA;AAAA,MACR,CAAO;AAGD,UAAI,CAAC,UAAU,MAAM,CAAAE,UAAQA,SAAQ,CAAC,GAAG;AACvC,YAAI,uBAAuB;AAC3B,cAAM,eAAe,wBAAwB,eAAe,SAAS,OAAO,SAAS,sBAAsB,UAAU,KAAK;AAC1H,cAAM,gBAAgB,WAAW,SAAS;AAC1C,YAAI,eAAe;AACjB,gBAAM,0BAA0B,mBAAmB,cAAc,oBAAoB,YAAY,aAAa,IAAI;AAClH,cAAI,CAAC;AAAA;AAAA,UAGL,cAAc,MAAM,OAAK,YAAY,EAAE,SAAS,MAAM,kBAAkB,EAAE,UAAU,CAAC,IAAI,IAAI,IAAI,GAAG;AAElG,mBAAO;AAAA,cACL,MAAM;AAAA,gBACJ,OAAO;AAAA,gBACP,WAAW;AAAA,cAC3B;AAAA,cACc,OAAO;AAAA,gBACL,WAAW;AAAA,cAC3B;AAAA,YACA;AAAA,UACU;AAAA,QACF;AAIA,YAAI,kBAAkB,wBAAwB,cAAc,OAAO,OAAK,EAAE,UAAU,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,GAAG,MAAM,EAAE,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,MAAM,OAAO,SAAS,sBAAsB;AAG1L,YAAI,CAAC,gBAAgB;AACnB,kBAAQ,kBAAgB;AAAA,YACtB,KAAK,WACH;AACE,kBAAI;AACJ,oBAAMC,cAAa,yBAAyB,cAAc,OAAO,OAAK;AACpE,oBAAI,8BAA8B;AAChC,wBAAM,kBAAkB,YAAY,EAAE,SAAS;AAC/C,yBAAO,oBAAoB;AAAA;AAAA,kBAG3B,oBAAoB;AAAA,gBACtB;AACA,uBAAO;AAAA,cACT,CAAC,EAAE,IAAI,OAAK,CAAC,EAAE,WAAW,EAAE,UAAU,OAAO,CAAAC,cAAYA,YAAW,CAAC,EAAE,OAAO,CAAC,KAAKA,cAAa,MAAMA,WAAU,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,OAAO,SAAS,uBAAuB,CAAC;AACjM,kBAAID,YAAW;AACb,iCAAiBA;AAAA,cACnB;AACA;AAAA,YACF;AAAA,YACF,KAAK;AACH,+BAAiB;AACjB;AAAA,UACd;AAAA,QACQ;AACA,YAAI,cAAc,gBAAgB;AAChC,iBAAO;AAAA,YACL,OAAO;AAAA,cACL,WAAW;AAAA,YACzB;AAAA,UACA;AAAA,QACQ;AAAA,MACF;AACA,aAAO,CAAA;AAAA,IACT;AAAA,EACJ;AACA;AA0MA,MAAM,cAA2B,oBAAI,IAAI,CAAC,QAAQ,KAAK,CAAC;AAKxD,eAAe,qBAAqB,OAAO,SAAS;AAClD,QAAM;AAAA,IACJ;AAAA,IACA,UAAAH;AAAA,IACA;AAAA,EACJ,IAAM;AACJ,QAAM,MAAM,OAAOA,UAAS,SAAS,OAAO,SAASA,UAAS,MAAM,SAAS,QAAQ;AACrF,QAAM,OAAO,QAAQ,SAAS;AAC9B,QAAM,YAAY,aAAa,SAAS;AACxC,QAAM,aAAa,YAAY,SAAS,MAAM;AAC9C,QAAM,gBAAgB,YAAY,IAAI,IAAI,IAAI,KAAK;AACnD,QAAM,iBAAiB,OAAO,aAAa,KAAK;AAChD,QAAM,WAAW,SAAS,SAAS,KAAK;AAGxC,MAAI;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,EACJ,IAAM,OAAO,aAAa,WAAW;AAAA,IACjC,UAAU;AAAA,IACV,WAAW;AAAA,IACX,eAAe;AAAA,EACnB,IAAM;AAAA,IACF,UAAU,SAAS,YAAY;AAAA,IAC/B,WAAW,SAAS,aAAa;AAAA,IACjC,eAAe,SAAS;AAAA,EAC5B;AACE,MAAI,aAAa,OAAO,kBAAkB,UAAU;AAClD,gBAAY,cAAc,QAAQ,gBAAgB,KAAK;AAAA,EACzD;AACA,SAAO,aAAa;AAAA,IAClB,GAAG,YAAY;AAAA,IACf,GAAG,WAAW;AAAA,EAClB,IAAM;AAAA,IACF,GAAG,WAAW;AAAA,IACd,GAAG,YAAY;AAAA,EACnB;AACA;AASA,MAAM9C,WAAS,SAAU,SAAS;AAChC,MAAI,YAAY,QAAQ;AACtB,cAAU;AAAA,EACZ;AACA,SAAO;AAAA,IACL,MAAM;AAAA,IACN;AAAA,IACA,MAAM,GAAG,OAAO;AACd,UAAI,uBAAuB;AAC3B,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACR,IAAU;AACJ,YAAM,aAAa,MAAM,qBAAqB,OAAO,OAAO;AAI5D,UAAI,gBAAgB,wBAAwB,eAAe,WAAW,OAAO,SAAS,sBAAsB,eAAe,wBAAwB,eAAe,UAAU,QAAQ,sBAAsB,iBAAiB;AACzN,eAAO,CAAA;AAAA,MACT;AACA,aAAO;AAAA,QACL,GAAG,IAAI,WAAW;AAAA,QAClB,GAAG,IAAI,WAAW;AAAA,QAClB,MAAM;AAAA,UACJ,GAAG;AAAA,UACH;AAAA,QACV;AAAA,MACA;AAAA,IACI;AAAA,EACJ;AACA;AAOA,MAAMmD,UAAQ,SAAU,SAAS;AAC/B,MAAI,YAAY,QAAQ;AACtB,cAAU,CAAA;AAAA,EACZ;AACA,SAAO;AAAA,IACL,MAAM;AAAA,IACN;AAAA,IACA,MAAM,GAAG,OAAO;AACd,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,MACR,IAAU;AACJ,YAAM;AAAA,QACJ,UAAU,gBAAgB;AAAA,QAC1B,WAAW,iBAAiB;AAAA,QAC5B,UAAU;AAAA,UACR,IAAI,UAAQ;AACV,gBAAI;AAAA,cACF,GAAAC;AAAA,cACA,GAAAC;AAAA,YACd,IAAgB;AACJ,mBAAO;AAAA,cACL,GAAAD;AAAA,cACA,GAAAC;AAAA,YACd;AAAA,UACU;AAAA,QACV;AAAA,QACQ,GAAG;AAAA,MACX,IAAU,SAAS,SAAS,KAAK;AAC3B,YAAM,SAAS;AAAA,QACb;AAAA,QACA;AAAA,MACR;AACM,YAAM,WAAW,MAAM,eAAe,OAAO,qBAAqB;AAClE,YAAM,YAAY,YAAY,QAAQ,SAAS,CAAC;AAChD,YAAM,WAAW,gBAAgB,SAAS;AAC1C,UAAI,gBAAgB,OAAO,QAAQ;AACnC,UAAI,iBAAiB,OAAO,SAAS;AACrC,UAAI,eAAe;AACjB,cAAM,UAAU,aAAa,MAAM,QAAQ;AAC3C,cAAM,UAAU,aAAa,MAAM,WAAW;AAC9C,cAAMC,OAAM,gBAAgB,SAAS,OAAO;AAC5C,cAAMC,OAAM,gBAAgB,SAAS,OAAO;AAC5C,wBAAgBX,QAAMU,MAAK,eAAeC,IAAG;AAAA,MAC/C;AACA,UAAI,gBAAgB;AAClB,cAAM,UAAU,cAAc,MAAM,QAAQ;AAC5C,cAAM,UAAU,cAAc,MAAM,WAAW;AAC/C,cAAMD,OAAM,iBAAiB,SAAS,OAAO;AAC7C,cAAMC,OAAM,iBAAiB,SAAS,OAAO;AAC7C,yBAAiBX,QAAMU,MAAK,gBAAgBC,IAAG;AAAA,MACjD;AACA,YAAM,gBAAgB,QAAQ,GAAG;AAAA,QAC/B,GAAG;AAAA,QACH,CAAC,QAAQ,GAAG;AAAA,QACZ,CAAC,SAAS,GAAG;AAAA,MACrB,CAAO;AACD,aAAO;AAAA,QACL,GAAG;AAAA,QACH,MAAM;AAAA,UACJ,GAAG,cAAc,IAAI;AAAA,UACrB,GAAG,cAAc,IAAI;AAAA,UACrB,SAAS;AAAA,YACP,CAAC,QAAQ,GAAG;AAAA,YACZ,CAAC,SAAS,GAAG;AAAA,UACzB;AAAA,QACA;AAAA,MACA;AAAA,IACI;AAAA,EACJ;AACA;AA4EA,MAAMC,SAAO,SAAU,SAAS;AAC9B,MAAI,YAAY,QAAQ;AACtB,cAAU,CAAA;AAAA,EACZ;AACA,SAAO;AAAA,IACL,MAAM;AAAA,IACN;AAAA,IACA,MAAM,GAAG,OAAO;AACd,UAAI,uBAAuB;AAC3B,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA,UAAAV;AAAA,QACA;AAAA,MACR,IAAU;AACJ,YAAM;AAAA,QACJ,QAAQ,MAAM;AAAA,QAAC;AAAA,QACf,GAAG;AAAA,MACX,IAAU,SAAS,SAAS,KAAK;AAC3B,YAAM,WAAW,MAAM,eAAe,OAAO,qBAAqB;AAClE,YAAM,OAAO,QAAQ,SAAS;AAC9B,YAAM,YAAY,aAAa,SAAS;AACxC,YAAM,UAAU,YAAY,SAAS,MAAM;AAC3C,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,MACR,IAAU,MAAM;AACV,UAAI;AACJ,UAAI;AACJ,UAAI,SAAS,SAAS,SAAS,UAAU;AACvC,qBAAa;AACb,oBAAY,eAAgB,OAAOA,UAAS,SAAS,OAAO,SAASA,UAAS,MAAM,SAAS,QAAQ,KAAM,UAAU,SAAS,SAAS;AAAA,MACzI,OAAO;AACL,oBAAY;AACZ,qBAAa,cAAc,QAAQ,QAAQ;AAAA,MAC7C;AACA,YAAM,wBAAwB,SAAS,SAAS,MAAM,SAAS;AAC/D,YAAM,uBAAuB,QAAQ,SAAS,OAAO,SAAS;AAC9D,YAAM,0BAA0B,IAAI,SAAS,SAAS,UAAU,GAAG,qBAAqB;AACxF,YAAM,yBAAyB,IAAI,QAAQ,SAAS,SAAS,GAAG,oBAAoB;AACpF,YAAM,UAAU,CAAC,MAAM,eAAe;AACtC,UAAI,kBAAkB;AACtB,UAAI,iBAAiB;AACrB,WAAK,wBAAwB,MAAM,eAAe,UAAU,QAAQ,sBAAsB,QAAQ,GAAG;AACnG,yBAAiB;AAAA,MACnB;AACA,WAAK,yBAAyB,MAAM,eAAe,UAAU,QAAQ,uBAAuB,QAAQ,GAAG;AACrG,0BAAkB;AAAA,MACpB;AACA,UAAI,WAAW,CAAC,WAAW;AACzB,cAAM,OAAO,IAAI,SAAS,MAAM,CAAC;AACjC,cAAM,OAAO,IAAI,SAAS,OAAO,CAAC;AAClC,cAAM,OAAO,IAAI,SAAS,KAAK,CAAC;AAChC,cAAM,OAAO,IAAI,SAAS,QAAQ,CAAC;AACnC,YAAI,SAAS;AACX,2BAAiB,QAAQ,KAAK,SAAS,KAAK,SAAS,IAAI,OAAO,OAAO,IAAI,SAAS,MAAM,SAAS,KAAK;AAAA,QAC1G,OAAO;AACL,4BAAkB,SAAS,KAAK,SAAS,KAAK,SAAS,IAAI,OAAO,OAAO,IAAI,SAAS,KAAK,SAAS,MAAM;AAAA,QAC5G;AAAA,MACF;AACA,YAAM,MAAM;AAAA,QACV,GAAG;AAAA,QACH;AAAA,QACA;AAAA,MACR,CAAO;AACD,YAAM,iBAAiB,MAAMA,UAAS,cAAc,SAAS,QAAQ;AACrE,UAAI,UAAU,eAAe,SAAS,WAAW,eAAe,QAAQ;AACtE,eAAO;AAAA,UACL,OAAO;AAAA,YACL,OAAO;AAAA,UACnB;AAAA,QACA;AAAA,MACM;AACA,aAAO,CAAA;AAAA,IACT;AAAA,EACJ;AACA;ACthCA,SAAS,YAAY;AACnB,SAAO,OAAO,WAAW;AAC3B;AACA,SAAS,YAAY,MAAM;AACzB,MAAI,OAAO,IAAI,GAAG;AAChB,YAAQ,KAAK,YAAY,IAAI,YAAW;AAAA,EAC1C;AAIA,SAAO;AACT;AACA,SAAS,UAAU,MAAM;AACvB,MAAI;AACJ,UAAQ,QAAQ,SAAS,sBAAsB,KAAK,kBAAkB,OAAO,SAAS,oBAAoB,gBAAgB;AAC5H;AACA,SAAS,mBAAmB,MAAM;AAChC,MAAI;AACJ,UAAQ,QAAQ,OAAO,IAAI,IAAI,KAAK,gBAAgB,KAAK,aAAa,OAAO,aAAa,OAAO,SAAS,KAAK;AACjH;AACA,SAAS,OAAO,OAAO;AACrB,MAAI,CAAC,UAAS,GAAI;AAChB,WAAO;AAAA,EACT;AACA,SAAO,iBAAiB,QAAQ,iBAAiB,UAAU,KAAK,EAAE;AACpE;AACA,SAAS,UAAU,OAAO;AACxB,MAAI,CAAC,UAAS,GAAI;AAChB,WAAO;AAAA,EACT;AACA,SAAO,iBAAiB,WAAW,iBAAiB,UAAU,KAAK,EAAE;AACvE;AACA,SAAS,cAAc,OAAO;AAC5B,MAAI,CAAC,UAAS,GAAI;AAChB,WAAO;AAAA,EACT;AACA,SAAO,iBAAiB,eAAe,iBAAiB,UAAU,KAAK,EAAE;AAC3E;AACA,SAAS,aAAa,OAAO;AAC3B,MAAI,CAAC,UAAS,KAAM,OAAO,eAAe,aAAa;AACrD,WAAO;AAAA,EACT;AACA,SAAO,iBAAiB,cAAc,iBAAiB,UAAU,KAAK,EAAE;AAC1E;AACA,MAAM,+BAA4C,oBAAI,IAAI,CAAC,UAAU,UAAU,CAAC;AAChF,SAAS,kBAAkB,SAAS;AAClC,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,IAAMW,mBAAiB,OAAO;AAC5B,SAAO,kCAAkC,KAAK,WAAW,YAAY,SAAS,KAAK,CAAC,6BAA6B,IAAI,OAAO;AAC9H;AACA,MAAM,gBAA6B,oBAAI,IAAI,CAAC,SAAS,MAAM,IAAI,CAAC;AAChE,SAAS,eAAe,SAAS;AAC/B,SAAO,cAAc,IAAI,YAAY,OAAO,CAAC;AAC/C;AACA,MAAM,oBAAoB,CAAC,iBAAiB,QAAQ;AACpD,SAAS,WAAW,SAAS;AAC3B,SAAO,kBAAkB,KAAK,cAAY;AACxC,QAAI;AACF,aAAO,QAAQ,QAAQ,QAAQ;AAAA,IACjC,SAAS,IAAI;AACX,aAAO;AAAA,IACT;AAAA,EACF,CAAC;AACH;AACA,MAAM,sBAAsB,CAAC,aAAa,aAAa,SAAS,UAAU,aAAa;AACvF,MAAM,mBAAmB,CAAC,aAAa,aAAa,SAAS,UAAU,eAAe,QAAQ;AAC9F,MAAM,gBAAgB,CAAC,SAAS,UAAU,UAAU,SAAS;AAC7D,SAAS,kBAAkB,cAAc;AACvC,QAAM,SAAS,SAAQ;AACvB,QAAM,MAAM,UAAU,YAAY,IAAIA,mBAAiB,YAAY,IAAI;AAIvE,SAAO,oBAAoB,KAAK,WAAS,IAAI,KAAK,IAAI,IAAI,KAAK,MAAM,SAAS,KAAK,MAAM,IAAI,gBAAgB,IAAI,kBAAkB,WAAW,UAAU,CAAC,WAAW,IAAI,iBAAiB,IAAI,mBAAmB,SAAS,UAAU,CAAC,WAAW,IAAI,SAAS,IAAI,WAAW,SAAS,UAAU,iBAAiB,KAAK,YAAU,IAAI,cAAc,IAAI,SAAS,KAAK,CAAC,KAAK,cAAc,KAAK,YAAU,IAAI,WAAW,IAAI,SAAS,KAAK,CAAC;AACza;AACA,SAAS,mBAAmB,SAAS;AACnC,MAAI,cAAc,cAAc,OAAO;AACvC,SAAO,cAAc,WAAW,KAAK,CAAC,sBAAsB,WAAW,GAAG;AACxE,QAAI,kBAAkB,WAAW,GAAG;AAClC,aAAO;AAAA,IACT,WAAW,WAAW,WAAW,GAAG;AAClC,aAAO;AAAA,IACT;AACA,kBAAc,cAAc,WAAW;AAAA,EACzC;AACA,SAAO;AACT;AACA,SAAS,WAAW;AAClB,MAAI,OAAO,QAAQ,eAAe,CAAC,IAAI,SAAU,QAAO;AACxD,SAAO,IAAI,SAAS,2BAA2B,MAAM;AACvD;AACA,MAAM,2BAAwC,oBAAI,IAAI,CAAC,QAAQ,QAAQ,WAAW,CAAC;AACnF,SAAS,sBAAsB,MAAM;AACnC,SAAO,yBAAyB,IAAI,YAAY,IAAI,CAAC;AACvD;AACA,SAASA,mBAAiB,SAAS;AACjC,SAAO,UAAU,OAAO,EAAE,iBAAiB,OAAO;AACpD;AACA,SAAS,cAAc,SAAS;AAC9B,MAAI,UAAU,OAAO,GAAG;AACtB,WAAO;AAAA,MACL,YAAY,QAAQ;AAAA,MACpB,WAAW,QAAQ;AAAA,IACzB;AAAA,EACE;AACA,SAAO;AAAA,IACL,YAAY,QAAQ;AAAA,IACpB,WAAW,QAAQ;AAAA,EACvB;AACA;AACA,SAAS,cAAc,MAAM;AAC3B,MAAI,YAAY,IAAI,MAAM,QAAQ;AAChC,WAAO;AAAA,EACT;AACA,QAAM;AAAA;AAAA,IAEN,KAAK;AAAA,IAEL,KAAK;AAAA,IAEL,aAAa,IAAI,KAAK,KAAK;AAAA,IAE3B,mBAAmB,IAAI;AAAA;AACvB,SAAO,aAAa,MAAM,IAAI,OAAO,OAAO;AAC9C;AACA,SAAS,2BAA2B,MAAM;AACxC,QAAM,aAAa,cAAc,IAAI;AACrC,MAAI,sBAAsB,UAAU,GAAG;AACrC,WAAO,KAAK,gBAAgB,KAAK,cAAc,OAAO,KAAK;AAAA,EAC7D;AACA,MAAI,cAAc,UAAU,KAAK,kBAAkB,UAAU,GAAG;AAC9D,WAAO;AAAA,EACT;AACA,SAAO,2BAA2B,UAAU;AAC9C;AACA,SAAS,qBAAqB,MAAM,MAAM,iBAAiB;AACzD,MAAI;AACJ,MAAI,SAAS,QAAQ;AACnB,WAAO,CAAA;AAAA,EACT;AACA,MAAI,oBAAoB,QAAQ;AAC9B,sBAAkB;AAAA,EACpB;AACA,QAAM,qBAAqB,2BAA2B,IAAI;AAC1D,QAAM,SAAS,yBAAyB,uBAAuB,KAAK,kBAAkB,OAAO,SAAS,qBAAqB;AAC3H,QAAM,MAAM,UAAU,kBAAkB;AACxC,MAAI,QAAQ;AACV,UAAM,eAAe,gBAAgB,GAAG;AACxC,WAAO,KAAK,OAAO,KAAK,IAAI,kBAAkB,CAAA,GAAI,kBAAkB,kBAAkB,IAAI,qBAAqB,CAAA,GAAI,gBAAgB,kBAAkB,qBAAqB,YAAY,IAAI,EAAE;AAAA,EAC9L;AACA,SAAO,KAAK,OAAO,oBAAoB,qBAAqB,oBAAoB,CAAA,GAAI,eAAe,CAAC;AACtG;AACA,SAAS,gBAAgB,KAAK;AAC5B,SAAO,IAAI,UAAU,OAAO,eAAe,IAAI,MAAM,IAAI,IAAI,eAAe;AAC9E;ACzJA,SAAS,iBAAiB,SAAS;AACjC,QAAM,MAAM,mBAAmB,OAAO;AAGtC,MAAI,QAAQ,WAAW,IAAI,KAAK,KAAK;AACrC,MAAI,SAAS,WAAW,IAAI,MAAM,KAAK;AACvC,QAAM,YAAY,cAAc,OAAO;AACvC,QAAM,cAAc,YAAY,QAAQ,cAAc;AACtD,QAAM,eAAe,YAAY,QAAQ,eAAe;AACxD,QAAM,iBAAiB,MAAM,KAAK,MAAM,eAAe,MAAM,MAAM,MAAM;AACzE,MAAI,gBAAgB;AAClB,YAAQ;AACR,aAAS;AAAA,EACX;AACA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACP;AACA;AAEA,SAAS,cAAc,SAAS;AAC9B,SAAO,CAAC,UAAU,OAAO,IAAI,QAAQ,iBAAiB;AACxD;AAEA,SAAS,SAAS,SAAS;AACzB,QAAM,aAAa,cAAc,OAAO;AACxC,MAAI,CAAC,cAAc,UAAU,GAAG;AAC9B,WAAO,aAAa,CAAC;AAAA,EACvB;AACA,QAAM,OAAO,WAAW,sBAAqB;AAC7C,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,EACJ,IAAM,iBAAiB,UAAU;AAC/B,MAAI,KAAK,IAAI,MAAM,KAAK,KAAK,IAAI,KAAK,SAAS;AAC/C,MAAI,KAAK,IAAI,MAAM,KAAK,MAAM,IAAI,KAAK,UAAU;AAIjD,MAAI,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,GAAG;AAC7B,QAAI;AAAA,EACN;AACA,MAAI,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,GAAG;AAC7B,QAAI;AAAA,EACN;AACA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EACJ;AACA;AAEA,MAAM,YAAyB,6BAAa,CAAC;AAC7C,SAAS,iBAAiB,SAAS;AACjC,QAAM,MAAM,UAAU,OAAO;AAC7B,MAAI,CAAC,SAAQ,KAAM,CAAC,IAAI,gBAAgB;AACtC,WAAO;AAAA,EACT;AACA,SAAO;AAAA,IACL,GAAG,IAAI,eAAe;AAAA,IACtB,GAAG,IAAI,eAAe;AAAA,EAC1B;AACA;AACA,SAAS,uBAAuB,SAAS,SAAS,sBAAsB;AACtE,MAAI,YAAY,QAAQ;AACtB,cAAU;AAAA,EACZ;AACA,MAAI,CAAC,wBAAwB,WAAW,yBAAyB,UAAU,OAAO,GAAG;AACnF,WAAO;AAAA,EACT;AACA,SAAO;AACT;AAEA,SAAS,sBAAsB,SAAS,cAAc,iBAAiB,cAAc;AACnF,MAAI,iBAAiB,QAAQ;AAC3B,mBAAe;AAAA,EACjB;AACA,MAAI,oBAAoB,QAAQ;AAC9B,sBAAkB;AAAA,EACpB;AACA,QAAM,aAAa,QAAQ,sBAAqB;AAChD,QAAM,aAAa,cAAc,OAAO;AACxC,MAAI,QAAQ,aAAa,CAAC;AAC1B,MAAI,cAAc;AAChB,QAAI,cAAc;AAChB,UAAI,UAAU,YAAY,GAAG;AAC3B,gBAAQ,SAAS,YAAY;AAAA,MAC/B;AAAA,IACF,OAAO;AACL,cAAQ,SAAS,OAAO;AAAA,IAC1B;AAAA,EACF;AACA,QAAM,gBAAgB,uBAAuB,YAAY,iBAAiB,YAAY,IAAI,iBAAiB,UAAU,IAAI,aAAa,CAAC;AACvI,MAAI,KAAK,WAAW,OAAO,cAAc,KAAK,MAAM;AACpD,MAAI,KAAK,WAAW,MAAM,cAAc,KAAK,MAAM;AACnD,MAAI,QAAQ,WAAW,QAAQ,MAAM;AACrC,MAAI,SAAS,WAAW,SAAS,MAAM;AACvC,MAAI,YAAY;AACd,UAAM,MAAM,UAAU,UAAU;AAChC,UAAM,YAAY,gBAAgB,UAAU,YAAY,IAAI,UAAU,YAAY,IAAI;AACtF,QAAI,aAAa;AACjB,QAAI,gBAAgB,gBAAgB,UAAU;AAC9C,WAAO,iBAAiB,gBAAgB,cAAc,YAAY;AAChE,YAAM,cAAc,SAAS,aAAa;AAC1C,YAAM,aAAa,cAAc,sBAAqB;AACtD,YAAM,MAAM,mBAAmB,aAAa;AAC5C,YAAM,OAAO,WAAW,QAAQ,cAAc,aAAa,WAAW,IAAI,WAAW,KAAK,YAAY;AACtG,YAAM,MAAM,WAAW,OAAO,cAAc,YAAY,WAAW,IAAI,UAAU,KAAK,YAAY;AAClG,WAAK,YAAY;AACjB,WAAK,YAAY;AACjB,eAAS,YAAY;AACrB,gBAAU,YAAY;AACtB,WAAK;AACL,WAAK;AACL,mBAAa,UAAU,aAAa;AACpC,sBAAgB,gBAAgB,UAAU;AAAA,IAC5C;AAAA,EACF;AACA,SAAO,iBAAiB;AAAA,IACtB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,CAAG;AACH;AAIA,SAAS,oBAAoB,SAAS,MAAM;AAC1C,QAAM,aAAa,cAAc,OAAO,EAAE;AAC1C,MAAI,CAAC,MAAM;AACT,WAAO,sBAAsB,mBAAmB,OAAO,CAAC,EAAE,OAAO;AAAA,EACnE;AACA,SAAO,KAAK,OAAO;AACrB;AAEA,SAAS,cAAc,iBAAiB,QAAQ;AAC9C,QAAM,WAAW,gBAAgB,sBAAqB;AACtD,QAAM,IAAI,SAAS,OAAO,OAAO,aAAa,oBAAoB,iBAAiB,QAAQ;AAC3F,QAAM,IAAI,SAAS,MAAM,OAAO;AAChC,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EACJ;AACA;AAEA,SAAS,sDAAsD,MAAM;AACnE,MAAI;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,IAAM;AACJ,QAAM,UAAU,aAAa;AAC7B,QAAM,kBAAkB,mBAAmB,YAAY;AACvD,QAAM,WAAW,WAAW,WAAW,SAAS,QAAQ,IAAI;AAC5D,MAAI,iBAAiB,mBAAmB,YAAY,SAAS;AAC3D,WAAO;AAAA,EACT;AACA,MAAI,SAAS;AAAA,IACX,YAAY;AAAA,IACZ,WAAW;AAAA,EACf;AACE,MAAI,QAAQ,aAAa,CAAC;AAC1B,QAAM,UAAU,aAAa,CAAC;AAC9B,QAAM,0BAA0B,cAAc,YAAY;AAC1D,MAAI,2BAA2B,CAAC,2BAA2B,CAAC,SAAS;AACnE,QAAI,YAAY,YAAY,MAAM,UAAU,kBAAkB,eAAe,GAAG;AAC9E,eAAS,cAAc,YAAY;AAAA,IACrC;AACA,QAAI,cAAc,YAAY,GAAG;AAC/B,YAAM,aAAa,sBAAsB,YAAY;AACrD,cAAQ,SAAS,YAAY;AAC7B,cAAQ,IAAI,WAAW,IAAI,aAAa;AACxC,cAAQ,IAAI,WAAW,IAAI,aAAa;AAAA,IAC1C;AAAA,EACF;AACA,QAAM,aAAa,mBAAmB,CAAC,2BAA2B,CAAC,UAAU,cAAc,iBAAiB,MAAM,IAAI,aAAa,CAAC;AACpI,SAAO;AAAA,IACL,OAAO,KAAK,QAAQ,MAAM;AAAA,IAC1B,QAAQ,KAAK,SAAS,MAAM;AAAA,IAC5B,GAAG,KAAK,IAAI,MAAM,IAAI,OAAO,aAAa,MAAM,IAAI,QAAQ,IAAI,WAAW;AAAA,IAC3E,GAAG,KAAK,IAAI,MAAM,IAAI,OAAO,YAAY,MAAM,IAAI,QAAQ,IAAI,WAAW;AAAA,EAC9E;AACA;AAEA,SAAS,eAAe,SAAS;AAC/B,SAAO,MAAM,KAAK,QAAQ,eAAc,CAAE;AAC5C;AAIA,SAAS,gBAAgB,SAAS;AAChC,QAAM,OAAO,mBAAmB,OAAO;AACvC,QAAM,SAAS,cAAc,OAAO;AACpC,QAAM,OAAO,QAAQ,cAAc;AACnC,QAAM,QAAQ,IAAI,KAAK,aAAa,KAAK,aAAa,KAAK,aAAa,KAAK,WAAW;AACxF,QAAM,SAAS,IAAI,KAAK,cAAc,KAAK,cAAc,KAAK,cAAc,KAAK,YAAY;AAC7F,MAAI,IAAI,CAAC,OAAO,aAAa,oBAAoB,OAAO;AACxD,QAAM,IAAI,CAAC,OAAO;AAClB,MAAI,mBAAmB,IAAI,EAAE,cAAc,OAAO;AAChD,SAAK,IAAI,KAAK,aAAa,KAAK,WAAW,IAAI;AAAA,EACjD;AACA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AACA;AAKA,MAAM,gBAAgB;AACtB,SAAS,gBAAgB,SAAS,UAAU;AAC1C,QAAM,MAAM,UAAU,OAAO;AAC7B,QAAM,OAAO,mBAAmB,OAAO;AACvC,QAAM,iBAAiB,IAAI;AAC3B,MAAI,QAAQ,KAAK;AACjB,MAAI,SAAS,KAAK;AAClB,MAAI,IAAI;AACR,MAAI,IAAI;AACR,MAAI,gBAAgB;AAClB,YAAQ,eAAe;AACvB,aAAS,eAAe;AACxB,UAAM,sBAAsB,SAAQ;AACpC,QAAI,CAAC,uBAAuB,uBAAuB,aAAa,SAAS;AACvE,UAAI,eAAe;AACnB,UAAI,eAAe;AAAA,IACrB;AAAA,EACF;AACA,QAAM,mBAAmB,oBAAoB,IAAI;AAIjD,MAAI,oBAAoB,GAAG;AACzB,UAAM,MAAM,KAAK;AACjB,UAAM,OAAO,IAAI;AACjB,UAAM,aAAa,iBAAiB,IAAI;AACxC,UAAM,mBAAmB,IAAI,eAAe,eAAe,WAAW,WAAW,UAAU,IAAI,WAAW,WAAW,WAAW,KAAK,IAAI;AACzI,UAAM,+BAA+B,KAAK,IAAI,KAAK,cAAc,KAAK,cAAc,gBAAgB;AACpG,QAAI,gCAAgC,eAAe;AACjD,eAAS;AAAA,IACX;AAAA,EACF,WAAW,oBAAoB,eAAe;AAG5C,aAAS;AAAA,EACX;AACA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AACA;AAEA,MAAM,kBAA+B,oBAAI,IAAI,CAAC,YAAY,OAAO,CAAC;AAElE,SAAS,2BAA2B,SAAS,UAAU;AACrD,QAAM,aAAa,sBAAsB,SAAS,MAAM,aAAa,OAAO;AAC5E,QAAM,MAAM,WAAW,MAAM,QAAQ;AACrC,QAAM,OAAO,WAAW,OAAO,QAAQ;AACvC,QAAM,QAAQ,cAAc,OAAO,IAAI,SAAS,OAAO,IAAI,aAAa,CAAC;AACzE,QAAM,QAAQ,QAAQ,cAAc,MAAM;AAC1C,QAAM,SAAS,QAAQ,eAAe,MAAM;AAC5C,QAAM,IAAI,OAAO,MAAM;AACvB,QAAM,IAAI,MAAM,MAAM;AACtB,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AACA;AACA,SAAS,kCAAkC,SAAS,kBAAkB,UAAU;AAC9E,MAAI;AACJ,MAAI,qBAAqB,YAAY;AACnC,WAAO,gBAAgB,SAAS,QAAQ;AAAA,EAC1C,WAAW,qBAAqB,YAAY;AAC1C,WAAO,gBAAgB,mBAAmB,OAAO,CAAC;AAAA,EACpD,WAAW,UAAU,gBAAgB,GAAG;AACtC,WAAO,2BAA2B,kBAAkB,QAAQ;AAAA,EAC9D,OAAO;AACL,UAAM,gBAAgB,iBAAiB,OAAO;AAC9C,WAAO;AAAA,MACL,GAAG,iBAAiB,IAAI,cAAc;AAAA,MACtC,GAAG,iBAAiB,IAAI,cAAc;AAAA,MACtC,OAAO,iBAAiB;AAAA,MACxB,QAAQ,iBAAiB;AAAA,IAC/B;AAAA,EACE;AACA,SAAO,iBAAiB,IAAI;AAC9B;AACA,SAAS,yBAAyB,SAAS,UAAU;AACnD,QAAM,aAAa,cAAc,OAAO;AACxC,MAAI,eAAe,YAAY,CAAC,UAAU,UAAU,KAAK,sBAAsB,UAAU,GAAG;AAC1F,WAAO;AAAA,EACT;AACA,SAAO,mBAAmB,UAAU,EAAE,aAAa,WAAW,yBAAyB,YAAY,QAAQ;AAC7G;AAKA,SAAS,4BAA4B,SAAS,OAAO;AACnD,QAAM,eAAe,MAAM,IAAI,OAAO;AACtC,MAAI,cAAc;AAChB,WAAO;AAAA,EACT;AACA,MAAI,SAAS,qBAAqB,SAAS,CAAA,GAAI,KAAK,EAAE,OAAO,QAAM,UAAU,EAAE,KAAK,YAAY,EAAE,MAAM,MAAM;AAC9G,MAAI,sCAAsC;AAC1C,QAAM,iBAAiB,mBAAmB,OAAO,EAAE,aAAa;AAChE,MAAI,cAAc,iBAAiB,cAAc,OAAO,IAAI;AAG5D,SAAO,UAAU,WAAW,KAAK,CAAC,sBAAsB,WAAW,GAAG;AACpE,UAAM,gBAAgB,mBAAmB,WAAW;AACpD,UAAM,0BAA0B,kBAAkB,WAAW;AAC7D,QAAI,CAAC,2BAA2B,cAAc,aAAa,SAAS;AAClE,4CAAsC;AAAA,IACxC;AACA,UAAM,wBAAwB,iBAAiB,CAAC,2BAA2B,CAAC,sCAAsC,CAAC,2BAA2B,cAAc,aAAa,YAAY,CAAC,CAAC,uCAAuC,gBAAgB,IAAI,oCAAoC,QAAQ,KAAK,kBAAkB,WAAW,KAAK,CAAC,2BAA2B,yBAAyB,SAAS,WAAW;AAC9Y,QAAI,uBAAuB;AAEzB,eAAS,OAAO,OAAO,cAAY,aAAa,WAAW;AAAA,IAC7D,OAAO;AAEL,4CAAsC;AAAA,IACxC;AACA,kBAAc,cAAc,WAAW;AAAA,EACzC;AACA,QAAM,IAAI,SAAS,MAAM;AACzB,SAAO;AACT;AAIA,SAAS,gBAAgB,MAAM;AAC7B,MAAI;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,IAAM;AACJ,QAAM,2BAA2B,aAAa,sBAAsB,WAAW,OAAO,IAAI,CAAA,IAAK,4BAA4B,SAAS,KAAK,EAAE,IAAI,CAAA,EAAG,OAAO,QAAQ;AACjK,QAAM,oBAAoB,CAAC,GAAG,0BAA0B,YAAY;AACpE,QAAM,wBAAwB,kBAAkB,CAAC;AACjD,QAAM,eAAe,kBAAkB,OAAO,CAAC,SAAS,qBAAqB;AAC3E,UAAM,OAAO,kCAAkC,SAAS,kBAAkB,QAAQ;AAClF,YAAQ,MAAM,IAAI,KAAK,KAAK,QAAQ,GAAG;AACvC,YAAQ,QAAQ,IAAI,KAAK,OAAO,QAAQ,KAAK;AAC7C,YAAQ,SAAS,IAAI,KAAK,QAAQ,QAAQ,MAAM;AAChD,YAAQ,OAAO,IAAI,KAAK,MAAM,QAAQ,IAAI;AAC1C,WAAO;AAAA,EACT,GAAG,kCAAkC,SAAS,uBAAuB,QAAQ,CAAC;AAC9E,SAAO;AAAA,IACL,OAAO,aAAa,QAAQ,aAAa;AAAA,IACzC,QAAQ,aAAa,SAAS,aAAa;AAAA,IAC3C,GAAG,aAAa;AAAA,IAChB,GAAG,aAAa;AAAA,EACpB;AACA;AAEA,SAAS,cAAc,SAAS;AAC9B,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,EACJ,IAAM,iBAAiB,OAAO;AAC5B,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EACJ;AACA;AAEA,SAAS,8BAA8B,SAAS,cAAc,UAAU;AACtE,QAAM,0BAA0B,cAAc,YAAY;AAC1D,QAAM,kBAAkB,mBAAmB,YAAY;AACvD,QAAM,UAAU,aAAa;AAC7B,QAAM,OAAO,sBAAsB,SAAS,MAAM,SAAS,YAAY;AACvE,MAAI,SAAS;AAAA,IACX,YAAY;AAAA,IACZ,WAAW;AAAA,EACf;AACE,QAAM,UAAU,aAAa,CAAC;AAI9B,WAAS,4BAA4B;AACnC,YAAQ,IAAI,oBAAoB,eAAe;AAAA,EACjD;AACA,MAAI,2BAA2B,CAAC,2BAA2B,CAAC,SAAS;AACnE,QAAI,YAAY,YAAY,MAAM,UAAU,kBAAkB,eAAe,GAAG;AAC9E,eAAS,cAAc,YAAY;AAAA,IACrC;AACA,QAAI,yBAAyB;AAC3B,YAAM,aAAa,sBAAsB,cAAc,MAAM,SAAS,YAAY;AAClF,cAAQ,IAAI,WAAW,IAAI,aAAa;AACxC,cAAQ,IAAI,WAAW,IAAI,aAAa;AAAA,IAC1C,WAAW,iBAAiB;AAC1B,gCAAyB;AAAA,IAC3B;AAAA,EACF;AACA,MAAI,WAAW,CAAC,2BAA2B,iBAAiB;AAC1D,8BAAyB;AAAA,EAC3B;AACA,QAAM,aAAa,mBAAmB,CAAC,2BAA2B,CAAC,UAAU,cAAc,iBAAiB,MAAM,IAAI,aAAa,CAAC;AACpI,QAAM,IAAI,KAAK,OAAO,OAAO,aAAa,QAAQ,IAAI,WAAW;AACjE,QAAM,IAAI,KAAK,MAAM,OAAO,YAAY,QAAQ,IAAI,WAAW;AAC/D,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,OAAO,KAAK;AAAA,IACZ,QAAQ,KAAK;AAAA,EACjB;AACA;AAEA,SAAS,mBAAmB,SAAS;AACnC,SAAO,mBAAmB,OAAO,EAAE,aAAa;AAClD;AAEA,SAAS,oBAAoB,SAAS,UAAU;AAC9C,MAAI,CAAC,cAAc,OAAO,KAAK,mBAAmB,OAAO,EAAE,aAAa,SAAS;AAC/E,WAAO;AAAA,EACT;AACA,MAAI,UAAU;AACZ,WAAO,SAAS,OAAO;AAAA,EACzB;AACA,MAAI,kBAAkB,QAAQ;AAM9B,MAAI,mBAAmB,OAAO,MAAM,iBAAiB;AACnD,sBAAkB,gBAAgB,cAAc;AAAA,EAClD;AACA,SAAO;AACT;AAIA,SAAS,gBAAgB,SAAS,UAAU;AAC1C,QAAM,MAAM,UAAU,OAAO;AAC7B,MAAI,WAAW,OAAO,GAAG;AACvB,WAAO;AAAA,EACT;AACA,MAAI,CAAC,cAAc,OAAO,GAAG;AAC3B,QAAI,kBAAkB,cAAc,OAAO;AAC3C,WAAO,mBAAmB,CAAC,sBAAsB,eAAe,GAAG;AACjE,UAAI,UAAU,eAAe,KAAK,CAAC,mBAAmB,eAAe,GAAG;AACtE,eAAO;AAAA,MACT;AACA,wBAAkB,cAAc,eAAe;AAAA,IACjD;AACA,WAAO;AAAA,EACT;AACA,MAAI,eAAe,oBAAoB,SAAS,QAAQ;AACxD,SAAO,gBAAgB,eAAe,YAAY,KAAK,mBAAmB,YAAY,GAAG;AACvF,mBAAe,oBAAoB,cAAc,QAAQ;AAAA,EAC3D;AACA,MAAI,gBAAgB,sBAAsB,YAAY,KAAK,mBAAmB,YAAY,KAAK,CAAC,kBAAkB,YAAY,GAAG;AAC/H,WAAO;AAAA,EACT;AACA,SAAO,gBAAgB,mBAAmB,OAAO,KAAK;AACxD;AAEA,MAAM,kBAAkB,eAAgB,MAAM;AAC5C,QAAM,oBAAoB,KAAK,mBAAmB;AAClD,QAAM,kBAAkB,KAAK;AAC7B,QAAM,qBAAqB,MAAM,gBAAgB,KAAK,QAAQ;AAC9D,SAAO;AAAA,IACL,WAAW,8BAA8B,KAAK,WAAW,MAAM,kBAAkB,KAAK,QAAQ,GAAG,KAAK,QAAQ;AAAA,IAC9G,UAAU;AAAA,MACR,GAAG;AAAA,MACH,GAAG;AAAA,MACH,OAAO,mBAAmB;AAAA,MAC1B,QAAQ,mBAAmB;AAAA,IACjC;AAAA,EACA;AACA;AAEA,SAAS,MAAM,SAAS;AACtB,SAAO,mBAAmB,OAAO,EAAE,cAAc;AACnD;AAEA,MAAM,WAAW;AAAA,EACf;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,SAAS,cAAc,GAAG,GAAG;AAC3B,SAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE;AAC7E;AAGA,SAAS,YAAY,SAAS,QAAQ;AACpC,MAAI,KAAK;AACT,MAAI;AACJ,QAAM,OAAO,mBAAmB,OAAO;AACvC,WAAS,UAAU;AACjB,QAAI;AACJ,iBAAa,SAAS;AACtB,KAAC,MAAM,OAAO,QAAQ,IAAI,WAAU;AACpC,SAAK;AAAA,EACP;AACA,WAAS,QAAQ,MAAM,WAAW;AAChC,QAAI,SAAS,QAAQ;AACnB,aAAO;AAAA,IACT;AACA,QAAI,cAAc,QAAQ;AACxB,kBAAY;AAAA,IACd;AACA,YAAO;AACP,UAAM,2BAA2B,QAAQ,sBAAqB;AAC9D,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACN,IAAQ;AACJ,QAAI,CAAC,MAAM;AACT,aAAM;AAAA,IACR;AACA,QAAI,CAAC,SAAS,CAAC,QAAQ;AACrB;AAAA,IACF;AACA,UAAM,WAAW,MAAM,GAAG;AAC1B,UAAM,aAAa,MAAM,KAAK,eAAe,OAAO,MAAM;AAC1D,UAAM,cAAc,MAAM,KAAK,gBAAgB,MAAM,OAAO;AAC5D,UAAM,YAAY,MAAM,IAAI;AAC5B,UAAM,aAAa,CAAC,WAAW,QAAQ,CAAC,aAAa,QAAQ,CAAC,cAAc,QAAQ,CAAC,YAAY;AACjG,UAAM,UAAU;AAAA,MACd;AAAA,MACA,WAAW,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC,KAAK;AAAA,IAC9C;AACI,QAAI,gBAAgB;AACpB,aAAS,cAAc,SAAS;AAC9B,YAAM,QAAQ,QAAQ,CAAC,EAAE;AACzB,UAAI,UAAU,WAAW;AACvB,YAAI,CAAC,eAAe;AAClB,iBAAO,QAAO;AAAA,QAChB;AACA,YAAI,CAAC,OAAO;AAGV,sBAAY,WAAW,MAAM;AAC3B,oBAAQ,OAAO,IAAI;AAAA,UACrB,GAAG,GAAI;AAAA,QACT,OAAO;AACL,kBAAQ,OAAO,KAAK;AAAA,QACtB;AAAA,MACF;AACA,UAAI,UAAU,KAAK,CAAC,cAAc,0BAA0B,QAAQ,sBAAqB,CAAE,GAAG;AAQ5F,gBAAO;AAAA,MACT;AACA,sBAAgB;AAAA,IAClB;AAIA,QAAI;AACF,WAAK,IAAI,qBAAqB,eAAe;AAAA,QAC3C,GAAG;AAAA;AAAA,QAEH,MAAM,KAAK;AAAA,MACnB,CAAO;AAAA,IACH,SAAS,IAAI;AACX,WAAK,IAAI,qBAAqB,eAAe,OAAO;AAAA,IACtD;AACA,OAAG,QAAQ,OAAO;AAAA,EACpB;AACA,UAAQ,IAAI;AACZ,SAAO;AACT;AAUA,SAAS,WAAW,WAAW,UAAU,QAAQ,SAAS;AACxD,MAAI,YAAY,QAAQ;AACtB,cAAU,CAAA;AAAA,EACZ;AACA,QAAM;AAAA,IACJ,iBAAiB;AAAA,IACjB,iBAAiB;AAAA,IACjB,gBAAgB,OAAO,mBAAmB;AAAA,IAC1C,cAAc,OAAO,yBAAyB;AAAA,IAC9C,iBAAiB;AAAA,EACrB,IAAM;AACJ,QAAM,cAAc,cAAc,SAAS;AAC3C,QAAM,YAAY,kBAAkB,iBAAiB,CAAC,GAAI,cAAc,qBAAqB,WAAW,IAAI,CAAA,GAAK,GAAG,qBAAqB,QAAQ,CAAC,IAAI,CAAA;AACtJ,YAAU,QAAQ,cAAY;AAC5B,sBAAkB,SAAS,iBAAiB,UAAU,QAAQ;AAAA,MAC5D,SAAS;AAAA,IACf,CAAK;AACD,sBAAkB,SAAS,iBAAiB,UAAU,MAAM;AAAA,EAC9D,CAAC;AACD,QAAM,YAAY,eAAe,cAAc,YAAY,aAAa,MAAM,IAAI;AAClF,MAAI,iBAAiB;AACrB,MAAI,iBAAiB;AACrB,MAAI,eAAe;AACjB,qBAAiB,IAAI,eAAe,UAAQ;AAC1C,UAAI,CAAC,UAAU,IAAI;AACnB,UAAI,cAAc,WAAW,WAAW,eAAe,gBAAgB;AAGrE,uBAAe,UAAU,QAAQ;AACjC,6BAAqB,cAAc;AACnC,yBAAiB,sBAAsB,MAAM;AAC3C,cAAI;AACJ,WAAC,kBAAkB,mBAAmB,QAAQ,gBAAgB,QAAQ,QAAQ;AAAA,QAChF,CAAC;AAAA,MACH;AACA,aAAM;AAAA,IACR,CAAC;AACD,QAAI,eAAe,CAAC,gBAAgB;AAClC,qBAAe,QAAQ,WAAW;AAAA,IACpC;AACA,mBAAe,QAAQ,QAAQ;AAAA,EACjC;AACA,MAAI;AACJ,MAAI,cAAc,iBAAiB,sBAAsB,SAAS,IAAI;AACtE,MAAI,gBAAgB;AAClB,cAAS;AAAA,EACX;AACA,WAAS,YAAY;AACnB,UAAM,cAAc,sBAAsB,SAAS;AACnD,QAAI,eAAe,CAAC,cAAc,aAAa,WAAW,GAAG;AAC3D,aAAM;AAAA,IACR;AACA,kBAAc;AACd,cAAU,sBAAsB,SAAS;AAAA,EAC3C;AACA,SAAM;AACN,SAAO,MAAM;AACX,QAAI;AACJ,cAAU,QAAQ,cAAY;AAC5B,wBAAkB,SAAS,oBAAoB,UAAU,MAAM;AAC/D,wBAAkB,SAAS,oBAAoB,UAAU,MAAM;AAAA,IACjE,CAAC;AACD,iBAAa,QAAQ,UAAS;AAC9B,KAAC,mBAAmB,mBAAmB,QAAQ,iBAAiB,WAAU;AAC1E,qBAAiB;AACjB,QAAI,gBAAgB;AAClB,2BAAqB,OAAO;AAAA,IAC9B;AAAA,EACF;AACF;AAmBA,MAAMzD,WAAS0D;AAef,MAAMP,UAAQQ;AAQd,MAAMZ,SAAOa;AAQb,MAAMJ,SAAOK;AAgCb,MAAM,kBAAkB,CAAC,WAAW,UAAU,YAAY;AAIxD,QAAM,QAAQ,oBAAI,IAAG;AACrB,QAAM,gBAAgB;AAAA,IACpB;AAAA,IACA,GAAG;AAAA,EACP;AACE,QAAM,oBAAoB;AAAA,IACxB,GAAG,cAAc;AAAA,IACjB,IAAI;AAAA,EACR;AACE,SAAO,kBAAkB,WAAW,UAAU;AAAA,IAC5C,GAAG;AAAA,IACH,UAAU;AAAA,EACd,CAAG;AACH;AChwBA,IAAI,WAAW,OAAO,aAAa;AAEnC,IAAI,OAAO,SAAShE,QAAO;AAAC;AAC5B,IAAI,QAAQ,WAAW,kBAAkB;AAIzC,SAAS,UAAU,GAAG,GAAG;AACvB,MAAI,MAAM,GAAG;AACX,WAAO;AAAA,EACT;AACA,MAAI,OAAO,MAAM,OAAO,GAAG;AACzB,WAAO;AAAA,EACT;AACA,MAAI,OAAO,MAAM,cAAc,EAAE,eAAe,EAAE,YAAY;AAC5D,WAAO;AAAA,EACT;AACA,MAAI;AACJ,MAAI;AACJ,MAAI;AACJ,MAAI,KAAK,KAAK,OAAO,MAAM,UAAU;AACnC,QAAI,MAAM,QAAQ,CAAC,GAAG;AACpB,eAAS,EAAE;AACX,UAAI,WAAW,EAAE,OAAQ,QAAO;AAChC,WAAK,IAAI,QAAQ,QAAQ,KAAI;AAC3B,YAAI,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG;AAC1B,iBAAO;AAAA,QACT;AAAA,MACF;AACA,aAAO;AAAA,IACT;AACA,WAAO,OAAO,KAAK,CAAC;AACpB,aAAS,KAAK;AACd,QAAI,WAAW,OAAO,KAAK,CAAC,EAAE,QAAQ;AACpC,aAAO;AAAA,IACT;AACA,SAAK,IAAI,QAAQ,QAAQ,KAAI;AAC3B,UAAI,CAAC,CAAA,EAAG,eAAe,KAAK,GAAG,KAAK,CAAC,CAAC,GAAG;AACvC,eAAO;AAAA,MACT;AAAA,IACF;AACA,SAAK,IAAI,QAAQ,QAAQ,KAAI;AAC3B,YAAM,MAAM,KAAK,CAAC;AAClB,UAAI,QAAQ,YAAY,EAAE,UAAU;AAClC;AAAA,MACF;AACA,UAAI,CAAC,UAAU,EAAE,GAAG,GAAG,EAAE,GAAG,CAAC,GAAG;AAC9B,eAAO;AAAA,MACT;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACA,SAAO,MAAM,KAAK,MAAM;AAC1B;AAEA,SAAS,OAAO,SAAS;AACvB,MAAI,OAAO,WAAW,aAAa;AACjC,WAAO;AAAA,EACT;AACA,QAAM,MAAM,QAAQ,cAAc,eAAe;AACjD,SAAO,IAAI,oBAAoB;AACjC;AAEA,SAAS,WAAW,SAAS,OAAO;AAClC,QAAM,MAAM,OAAO,OAAO;AAC1B,SAAO,KAAK,MAAM,QAAQ,GAAG,IAAI;AACnC;AAEA,SAAS,aAAa,OAAO;AAC3B,QAAM,MAAM,MAAM,OAAO,KAAK;AAC9B,QAAM,MAAM;AACV,QAAI,UAAU;AAAA,EAChB,CAAC;AACD,SAAO;AACT;AAMA,SAAS,YAAY,SAAS;AAC5B,MAAI,YAAY,QAAQ;AACtB,cAAU,CAAA;AAAA,EACZ;AACA,QAAM;AAAA,IACJ,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,aAAa,CAAA;AAAA,IACb,UAAAiD;AAAA,IACA,UAAU;AAAA,MACR,WAAW;AAAA,MACX,UAAU;AAAA,IAChB,IAAQ,CAAA;AAAA,IACJ,YAAY;AAAA,IACZ;AAAA,IACA;AAAA,EACJ,IAAM;AACJ,QAAM,CAAC,MAAM,OAAO,IAAI,MAAM,SAAS;AAAA,IACrC,GAAG;AAAA,IACH,GAAG;AAAA,IACH;AAAA,IACA;AAAA,IACA,gBAAgB,CAAA;AAAA,IAChB,cAAc;AAAA,EAClB,CAAG;AACD,QAAM,CAAC,kBAAkB,mBAAmB,IAAI,MAAM,SAAS,UAAU;AACzE,MAAI,CAAC,UAAU,kBAAkB,UAAU,GAAG;AAC5C,wBAAoB,UAAU;AAAA,EAChC;AACA,QAAM,CAAC,YAAY,aAAa,IAAI,MAAM,SAAS,IAAI;AACvD,QAAM,CAAC,WAAW,YAAY,IAAI,MAAM,SAAS,IAAI;AACrD,QAAM,eAAe,MAAM,YAAY,UAAQ;AAC7C,QAAI,SAAS,aAAa,SAAS;AACjC,mBAAa,UAAU;AACvB,oBAAc,IAAI;AAAA,IACpB;AAAA,EACF,GAAG,CAAA,CAAE;AACL,QAAM,cAAc,MAAM,YAAY,UAAQ;AAC5C,QAAI,SAAS,YAAY,SAAS;AAChC,kBAAY,UAAU;AACtB,mBAAa,IAAI;AAAA,IACnB;AAAA,EACF,GAAG,CAAA,CAAE;AACL,QAAM,cAAc,qBAAqB;AACzC,QAAM,aAAa,oBAAoB;AACvC,QAAM,eAAe,MAAM,OAAO,IAAI;AACtC,QAAM,cAAc,MAAM,OAAO,IAAI;AACrC,QAAM,UAAU,MAAM,OAAO,IAAI;AACjC,QAAM,0BAA0B,wBAAwB;AACxD,QAAM,0BAA0B,aAAa,oBAAoB;AACjE,QAAM,cAAc,aAAaA,SAAQ;AACzC,QAAM,UAAU,aAAa,IAAI;AACjC,QAAM,SAAS,MAAM,YAAY,MAAM;AACrC,QAAI,CAAC,aAAa,WAAW,CAAC,YAAY,SAAS;AACjD;AAAA,IACF;AACA,UAAM,SAAS;AAAA,MACb;AAAA,MACA;AAAA,MACA,YAAY;AAAA,IAClB;AACI,QAAI,YAAY,SAAS;AACvB,aAAO,WAAW,YAAY;AAAA,IAChC;AACA,oBAAgB,aAAa,SAAS,YAAY,SAAS,MAAM,EAAE,KAAK,CAAAgB,UAAQ;AAC9E,YAAM,WAAW;AAAA,QACf,GAAGA;AAAA;AAAA;AAAA;AAAA;AAAA,QAKH,cAAc,QAAQ,YAAY;AAAA,MAC1C;AACM,UAAI,aAAa,WAAW,CAAC,UAAU,QAAQ,SAAS,QAAQ,GAAG;AACjE,gBAAQ,UAAU;AAClB,iBAAS,UAAU,MAAM;AACvB,kBAAQ,QAAQ;AAAA,QAClB,CAAC;AAAA,MACH;AAAA,IACF,CAAC;AAAA,EACH,GAAG,CAAC,kBAAkB,WAAW,UAAU,aAAa,OAAO,CAAC;AAChE,QAAM,MAAM;AACV,QAAI,SAAS,SAAS,QAAQ,QAAQ,cAAc;AAClD,cAAQ,QAAQ,eAAe;AAC/B,cAAQ,CAAAA,WAAS;AAAA,QACf,GAAGA;AAAA,QACH,cAAc;AAAA,MACtB,EAAQ;AAAA,IACJ;AAAA,EACF,GAAG,CAAC,IAAI,CAAC;AACT,QAAM,eAAe,MAAM,OAAO,KAAK;AACvC,QAAM,MAAM;AACV,iBAAa,UAAU;AACvB,WAAO,MAAM;AACX,mBAAa,UAAU;AAAA,IACzB;AAAA,EACF,GAAG,CAAA,CAAE;AACL,QAAM,MAAM;AACV,QAAI,YAAa,cAAa,UAAU;AACxC,QAAI,WAAY,aAAY,UAAU;AACtC,QAAI,eAAe,YAAY;AAC7B,UAAI,wBAAwB,SAAS;AACnC,eAAO,wBAAwB,QAAQ,aAAa,YAAY,MAAM;AAAA,MACxE;AACA,aAAM;AAAA,IACR;AAAA,EACF,GAAG,CAAC,aAAa,YAAY,QAAQ,yBAAyB,uBAAuB,CAAC;AACtF,QAAM,OAAO,MAAM,QAAQ,OAAO;AAAA,IAChC,WAAW;AAAA,IACX,UAAU;AAAA,IACV;AAAA,IACA;AAAA,EACJ,IAAM,CAAC,cAAc,WAAW,CAAC;AAC/B,QAAM,WAAW,MAAM,QAAQ,OAAO;AAAA,IACpC,WAAW;AAAA,IACX,UAAU;AAAA,EACd,IAAM,CAAC,aAAa,UAAU,CAAC;AAC7B,QAAM,iBAAiB,MAAM,QAAQ,MAAM;AACzC,UAAM,gBAAgB;AAAA,MACpB,UAAU;AAAA,MACV,MAAM;AAAA,MACN,KAAK;AAAA,IACX;AACI,QAAI,CAAC,SAAS,UAAU;AACtB,aAAO;AAAA,IACT;AACA,UAAM,IAAI,WAAW,SAAS,UAAU,KAAK,CAAC;AAC9C,UAAM,IAAI,WAAW,SAAS,UAAU,KAAK,CAAC;AAC9C,QAAI,WAAW;AACb,aAAO;AAAA,QACL,GAAG;AAAA,QACH,WAAW,eAAe,IAAI,SAAS,IAAI;AAAA,QAC3C,GAAI,OAAO,SAAS,QAAQ,KAAK,OAAO;AAAA,UACtC,YAAY;AAAA,QACtB;AAAA,MACA;AAAA,IACI;AACA,WAAO;AAAA,MACL,UAAU;AAAA,MACV,MAAM;AAAA,MACN,KAAK;AAAA,IACX;AAAA,EACE,GAAG,CAAC,UAAU,WAAW,SAAS,UAAU,KAAK,GAAG,KAAK,CAAC,CAAC;AAC3D,SAAO,MAAM,QAAQ,OAAO;AAAA,IAC1B,GAAG;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,IAAM,CAAC,MAAM,QAAQ,MAAM,UAAU,cAAc,CAAC;AACpD;AA+CA,MAAM,SAAS,CAAC,SAAS,UAAU;AAAA,EACjC,GAAG,SAAS,OAAO;AAAA,EACnB,SAAS,CAAC,SAAS,IAAI;AACzB;AAOA,MAAM,QAAQ,CAAC,SAAS,UAAU;AAAA,EAChC,GAAG,QAAQ,OAAO;AAAA,EAClB,SAAS,CAAC,SAAS,IAAI;AACzB;AAgBA,MAAM,OAAO,CAAC,SAAS,UAAU;AAAA,EAC/B,GAAG,OAAO,OAAO;AAAA,EACjB,SAAS,CAAC,SAAS,IAAI;AACzB;AAQA,MAAM,OAAO,CAAC,SAAS,UAAU;AAAA,EAC/B,GAAG,OAAO,OAAO;AAAA,EACjB,SAAS,CAAC,SAAS,IAAI;AACzB;ACnSO,MAAM,eAAe,CAAqC;AAAA,EAC/D,0BAA0B;AAAA,EAC1B,wBAAwB;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,UAAU;AAAA,EACV,cAAc;AAAA,EACd,gBAAgB;AAAA,EAChB;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX,GAAG;AACL,MAAoC;AAClC,QAAM,gBAAgB,kBAAkB;AACxC,QAAM,cACJ,CAAC,YACA,UAAU,WAAW,KACnB,WAAW,WAAW,KACrB,YAAY,CAAC,GAAG,UAAU,eAAe;AAC/C,QAAM,iBAAiB,CACrB,SAEA,cAAc;AAAA,IACZ,kBACE,cAAc,UAAU,MAAM,SAC9B,cAAc,UAAU,MAAM;AAAA,EAAA;AAGpC,QAAM,sBAAsB,MAAM;AAChC,YAAQ,4BAAyB;AAAA,MAC/B,KAAK,iBAAiB;AACpB,eAAO;AAAA,UACL,OAAO,GAAG,eAAe,KAAK;AAAA,UAC9B,UAAU;AAAA,QAAA;AAAA,MAEd;AAAA,MACA,KAAK,MAAM;AACT,eAAO;AAAA,UACL,OAAO,GAAG,eAAe,KAAK,KAAK,uBAAuB;AAAA,UAC1D,UAAU;AAAA,QAAA;AAAA,MAEd;AAAA,MACA,SAAS;AACP,eAAO,EAAE,OAAO,GAAG,eAAe,KAAK,IAAI,UAAU,MAAA;AAAA,MACvD;AAAA,IAAA;AAAA,EAEJ;AAEA,QAAM,2BAA2B,MAC/B,qBAAA,UAAA,EACE,UAAA;AAAA,IAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,eAAY;AAAA,QACZ,SAAS,yBAAA;AAAA,QACT,WAAU;AAAA,QACV,UAAU;AAAA,QACV,UAAU,MAAM;AAAA,MAAA;AAAA,IAAA;AAAA,IAElB;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACV,cAAY,sBAAsB;AAAA,QAEjC,UAAA,eAAe;AAAA,MAAA;AAAA,IAAA;AAAA,EAClB,GACF;AAGF,QAAM,mBAAmB,CAAC,SAAgD;AACxE,WACE,OAAO,SAAS,cACf,OAAO,SAAS,YACf,SAAS,QACT,cAAc,QACd,OAAO,KAAK,aAAa;AAAA,EAE/B;AAEA,QAAM,kBAAkB,CAAC,SAAgD;AACvE,WACE,qBAAA,UAAA,EACG,UAAA;AAAA,MAAA,iBACC;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,eAAY;AAAA,UACZ,SAAS,eAAe,IAAI;AAAA,UAC5B,WAAU;AAAA,UACV,UAAU;AAAA,UACV,UAAU,MAAM;AAAA,QAAA;AAAA,MAAA;AAAA,MAGpB,qBAAC,QAAA,EAAK,WAAU,kCACb,UAAA;AAAA,QAAA,KAAK;AAAA,4BACL,gBAAA,EACE,UAAA,eAAe,IAAI,IAAI,wBAAwB,GAAA,CAClD;AAAA,MAAA,GACF;AAAA,MACC,MAAM,QAAQ,KAAK,KAAK,IACrB,KAAK,MAAM,OAAO,gBAAgB,EAAE,IAAI,CAAC,MAAM5D,WAAU;AACvD,cAAM,MAAM,GACV,KAAK,eAAe,KAAK,QAAQ,KAAK,IACxC,IAAIA,MAAK;AACT,eACE;AAAA,UAAC;AAAA,UAAA;AAAA,YAEC,QAAM;AAAA,YACN,WAAU;AAAA,UAAA;AAAA,UAFL;AAAA,QAAA;AAAA,MAKX,CAAC,IACD;AAAA,IAAA,GACN;AAAA,EAEJ;AAEA;AAAA;AAAA,IAEE;AAAA,MAAC;AAAA,MAAA;AAAA,QACE,GAAG,aAAa;AAAA,UACf,wBAAwB;AAAA,UACxB,KAAK;AAAA,UACL,WAAW;AAAA,UACX,OAAO;AAAA,YACL,GAAG;AAAA,YACH,SAAS,UAAU,CAAC,WAAW,SAAY;AAAA,YAC3C,GAAG,KAAK;AAAA,UAAA;AAAA,QACV,CACD;AAAA,QAEC,WAAA,MAAM;AACN,cAAI,CAAC,UAAU,UAAU;AACvB,mBAAO;AAAA,UACT;AAEA,cAAI,SAAS;AACX,mBACE;AAAA,cAAC;AAAA,cAAA;AAAA,gBAEC,WAAU;AAAA,gBAET,UAAA;AAAA,cAAA;AAAA,cAHG;AAAA,YAAA;AAAA,UAMV;AAEA,cAAI,aAAa;AACf,mBACE;AAAA,cAAC;AAAA,cAAA;AAAA,gBAEC,WAAU;AAAA,gBAET,UAAA;AAAA,cAAA;AAAA,cAHG;AAAA,YAAA;AAAA,UAMV;AAEA,iBAAO,UAAU,IAAI,CAAC,MAAMA,WAAU;AACpC,kBAAM,MACJ,KAAK,WACL,GAAG,KAAK,SAAS,EAAE,IAAI,KAAK,SAAS,EAAE,KAAK,KAAK,SAAS,CAAA,GACvD,IAAI,CAAA,SAAQ,MAAM,eAAe,MAAM,QAAQ,SAAS,EACxD,KAAK,GAAG,CAAC;AACd,kBAAM,kBAAkB,KAAK,UAAU,eAAe;AACtD,gBAAI,mBAAmB,UAAU,UAAU,EAAG,QAAO;AACrD,mBACE;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,WAAW,WAAW,4BAA4B;AAAA,kBAChD,wCAAwC;AAAA,kBACxC,yCACE,qBAAqBA;AAAA,kBACvB,sCACE,CAAC,iBAAiB,eAAe,IAAI;AAAA,gBAAA,CACxC;AAAA,gBAEA,GAAG,aAAa;AAAA;AAAA;AAAA;AAAA,kBAIf;AAAA,kBACA,OAAAA;AAAA,kBACA,iBAAiB,kBACb,oBAAA,EAAsB,WACtB,eAAe,IAAI;AAAA,gBAAA,CACxB;AAAA,gBAEA,UAAA,kBACG,6BACA;AAAA,kBACE;AAAA,gBAAA;AAAA,cACF;AAAA,cAhBC;AAAA,YAAA;AAAA,UAmBX,CAAC;AAAA,QACH,GAAA;AAAA,MAAG;AAAA,IAAA;AAAA;AAGT;ACzNO,MAAM,kBAAkB,CAAqC;AAAA,EAClE;AAAA,EACA,kBAAkB;AAAA,EAClB;AAAA,EACA;AAAA,EACA,OAAAA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAaM;AACJ,QAAM,EAAE,UAAU,GAAG,GAAG,kBAAA,IACtB,uBAAuB;AAAA,IACrB;AAAA,IACA,OAAAA;AAAA,EAAA,CACD,KAAK,CAAA;AACR,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,WAAW,WAAW,mCAAmC;AAAA,QACvD,6CAA6C;AAAA,QAC7C,6CAA6C;AAAA,MAAA,CAC9C;AAAA,MACA,GAAG;AAAA,MACJ,SAAS,CAACvC,OAA2C;AACnD,QAAAA,GAAE,gBAAA;AACF,2BAAmB,YAAY;AAAA,MACjC;AAAA,MACA,SAAS,CAACA,OAAwBA,GAAE,gBAAA;AAAA,MACpC,sBAAsB,GAAG,aAAa,KAAK,IAAI,eAAe,KAAK,uBAAuB;AAAA,MAC1F,KAAK,aAAa;AAAA,MAClB,aAAU;AAAA,IAAA;AAAA,IAEV;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,eAAY;AAAA,QACZ,WAAU;AAAA,QAET,UAAA,aAAa;AAAA,MAAA;AAAA,IAAA;AAAA,EAChB;AAGN;AAgBO,MAAM,wBAAwB;AAAA,EACnC,CACE;AAAA,IACE;AAAA,IACA;AAAA,IACA,YAAY;AAAA,IACZ;AAAA,IACA,YAAY;AAAA,IACZ;AAAA,IACA;AAAA,IACA,UAAU;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EAAA,GAEL,QACG;AACH,aAAS,qBAAqB;AAC5B,UAAI,QAAS,QAAO;AACpB,UAAI,OAAQ,QAAO;AACnB,aAAO;AAAA,IACT;AAEA,2CAEK,UAAA,CAAC,YACA,qBAAC,OAAA,EAAI,WAAU,0BACZ,UAAA;AAAA,MAAA,aAAa,kBACZ;AAAA,QAAC;AAAA,QAAA;AAAA,UACC;AAAA,UACA,WAAW;AAAA,UACX,yBAAyB;AAAA,QAAA;AAAA,MAAA;AAAA,MAI7B;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAW,WAAW,yCAAyC;AAAA,YAC7D,+CAA+C;AAAA,UAAA,CAChD;AAAA,UACD;AAAA,UACA,cAAY,mBAAA;AAAA,UACX,GAAG;AAAA,UACJ,MAAK;AAAA,UACL,UAAU,YAAY,IAAI;AAAA,UAEzB,UAAA,CAAC,UACA,oBAAC,eAAA,EAAc,eAAY,QAAO,IAElC,oBAAC,aAAA,EAAY,eAAY,OAAA,CAAO;AAAA,QAAA;AAAA,MAAA;AAAA,IAEpC,EAAA,CACF,EAAA,CAEJ;AAAA,EAEJ;AACF;AAEO,MAAM,kBAAkB,CAAC;AAAA,EAC9B;AAAA,EACA,0BAA0B;AAAA,EAC1B,YAAY;AACd,MAKM;AACJ,SACE,qBAAA,UAAA,EACE,UAAA;AAAA,IAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,eAAY;AAAA,QACZ,WAAU;AAAA,QACV,SAAS;AAAA,QACT,WAAU;AAAA,QAEV,UAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAU;AAAA,YACV,MAAK;AAAA,YACL,UAAU,YAAY,IAAI;AAAA,YAG1B,SAAS,CAAAA,OAAK;AACZ,cAAAA,GAAE,gBAAA;AACF,sBAAA;AAAA,YACF;AAAA,YACA,WAAW,CAAAA,OAAK;AACd,kBAAIA,GAAE,QAAQ,WAAWA,GAAE,QAAQ,KAAK;AACtC,gBAAAA,GAAE,eAAA;AACF,gBAAAA,GAAE,gBAAA;AACF,wBAAA;AAAA,cACF;AAAA,YACF;AAAA,YACA,cAAY;AAAA,YAEZ,UAAA,oBAAC,gBAAA,EAAe,eAAY,OAAA,CAAO;AAAA,UAAA;AAAA,QAAA;AAAA,MACrC;AAAA,IAAA;AAAA,IAEF,oBAAC,OAAA,EAAI,WAAU,kCAAA,CAAkC;AAAA,EAAA,GACnD;AAEJ;ACxLO,MAAM,qBAAqB,CAChC,UAEAmD,eAAM;AAAA,EACJ,MACE,MAAM,IAAI,CAAA,SAAQ;AAChB,QAAI,OAAO,QAAQ,UAAU;AAC3B,aAAO;AAAA,QACL,OAAO;AAAA,QACP,OAAO;AAAA,MAAA;AAAA,IAEX;AAEA,QAAI,MAAM,UAAU,QAAW;AAC7B,aAAO;AAAA,QACL,GAAG;AAAA,QACH,OAAO,KAAK;AAAA,MAAA;AAAA,IAEhB;AACA,WAAO,EAAE,GAAG,MAAM,OAAO,KAAK,MAAA;AAAA,EAChC,CAAC;AAAA,EACH,CAAC,KAAK;AACR;ACbK,MAAM,mBAAmB,CAE9B,sBAEA,kBAAkB,QAKf;AACH,QAAM,mBAAmB,OAAO,yBAAyB;AAEzD,QAAM,CAAC,OAAO,QAAQ,IAAIA,eAAM;AAAA,IAC9B,mBAAmB,CAAA,IAAK;AAAA,EAAA;AAE1B,QAAM,CAAC,SAAS,UAAU,IAAIA,eAAM,SAAS,KAAK;AAElD,QAAM,qBAAqBA,eAAM;AAAA,IAC/B,IAAI,gBAAA;AAAA,EAAgB;AAKtB,QAAM,gBAAgBA,eAAM,QAAQ,MAAM;AACxC,QAAI;AACF,aAAO;AACT,WAAO,MACL,QAAQ,QAAQ,oBAAqD;AAAA,EACzE,GAAG,CAAC,sBAAsB,gBAAgB,CAAC;AAG3C,QAAM,cAAc,OAAO,eAAwB;AAEjD,QAAI,oBAAoB,QAAS,qBAAoB,SAAS,MAAA;AAC9D,UAAM,kBAAkB,IAAI,gBAAA;AAC5B,uBAAmB,UAAU;AAE7B,eAAW,IAAI;AAEf,QAAI;AACF,YAAM,gBAAgB,MAAM;AAAA,QAC1B,cAAc;AAAA,QACd;AAAA,MAAA;AAGF,UAAI,oBAAoB,SAAS,QAAQ,SAAS;AAChD,gBAAQ;AAAA,UACN;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QAAA;AAEF;AAAA,MACF;AAEA,iBAAW,KAAK;AAChB,eAAS,aAAa;AAAA,IACxB,SAASpC,QAAO;AACd,UACEA,UACA,OAAOA,WAAU,YACjB,UAAUA,UACVA,OAAM,SAAS,cACf;AAEA;AAAA,MACF;AACA,cAAQ;AAAA,QACN;AAAA,MAAA;AAEF,YAAMA;AAAA,IACR;AAAA,EACF;AAEA,QAAM,sBAAsB,YAAY,aAAa,eAAe;AACpE,QAAM,kBAAkB,mBAAmB,KAAK;AAEhDoC,iBAAM,UAAU,MAAM;AAEpB,WAAO,MAAM,oBAAoB,SAAS,MAAM,qBAAqB;AAAA,EACvE,GAAG,CAAA,CAAE;AAELA,iBAAM,UAAU,MAAM;AAEpB,QAAI,kBAAkB;AACpB,0BAAoB,EAAE;AAAA,IACxB;AAAA,EACF,GAAG,CAAC,kBAAkB,aAAa,CAAC;AAEpC,SAAO;AAAA,IACL,OAAO;AAAA,IACP,SAAS,mBAAmB,UAAU;AAAA,IACtC,YAAY;AAAA,EAAA;AAEhB;ACjGO,MAAM,cAAc;AAEpB,SAAS,oBACd,MACA,OACA;AACA,MAAI,CAAC,OAAO;AACV,WAAO;AAAA,EACT;AACA,QAAM,2BAA2B,MAAM;AAAA,IACrC;AAAA,IACA;AAAA,EAAA;AAEF,QAAM,aAAa,IAAI,OAAO,0BAA0B,GAAG;AAC3D,SAAO,WAAW,KAAK,KAAK,KAAK;AACnC;AAEO,SAAS,SAEd,MAEA,OACA;AACA,SAAO;AACT;AAEO,MAAMT,gBAAe,CAAC,SAC3B,OAAO,KAAK,QAAQ;AAEf,MAAMgB,aAAY,CAAC,SACxB,MAAM,QAAQ,MAAM;AAEf,MAAM,8BAA8B,CAAC,WAC1C,OAAO,WAAW,cAAc,OAAO,SAAS;AAE3C,MAAM,QAAQ,CAAC,KAAaiC,OAAM,GAAGC,OAAM,OAChD,KAAK,IAAI,KAAK,IAAI,KAAKD,IAAG,GAAGC,IAAG;AAW3B,MAAM,sBAAsB,CAAY;AAAA,EAC7C;AAAA,EACA;AAAA,EACA;AACF,MAA0C;AACxC,QAAM,mBAAmB,cAAc,SAAS;AAEhD,QAAM,4BAA4B,UAAU;AAAA,IAC1C,CAAA,SAAQ,KAAK,UAAU,UAAU;AAAA,EAAA;AAGnC,QAAM,6BAA6B,0BAA0B;AAAA,IAC3D,CAAA,aACE,CAAC,cAAc;AAAA,MACb,CAAA,iBAAgB,aAAa,UAAU,SAAS;AAAA,IAAA;AAAA,EAClD;AAGJ,QAAM,0BAA0B,CAAC,0BAA0B;AAAA,IACzD,CAAA,aACE,CAAC,cAAc;AAAA,MACb,CAAA,iBAAgB,aAAa,UAAU,SAAS;AAAA,IAAA;AAAA,EAClD;AAGJ,QAAM,2BAA2B,0BAA0B;AAAA,IAAK,cAC9D,cAAc,KAAK,kBAAgB,aAAa,UAAU,SAAS,KAAK;AAAA,EAAA;AAG1E,QAAM,gCAAgC,CACpC,aACA,aACG,SAAS,CAAC,GAAG,eAAe,WAAW,CAAC;AAE7C,QAAM,+BAA+B,CACnC,gBAEA,cAAc;AAAA,IACZ,CAAA,iBAAgB,aAAa,UAAU,YAAY;AAAA,EAAA;AAGvD,QAAM,yBAAyB,CAC7B,gBAEA,YAAY,UAAU,UAAU;AAElC,QAAM,wBAAwB,CAAC;AAAA,IAC7B;AAAA,IACA;AAAA,EAAA,MAII;AACJ,QAAI,uBAAuB,WAAW,GAAG;AACvC,UAAI,yBAAyB;AAC3B,eAAO,qBAAqB,QAAQ;AAAA,MACtC;AACA,aAAO,oCAAoC,QAAQ;AAAA,IACrD;AAEA,QAAI,6BAA6B,WAAW,GAAG;AAC7C,aAAO,mCAAmC,aAAa,QAAQ;AAAA,IACjE;AACA,kCAA8B,aAAa,QAAQ;AAAA,EACrD;AAEA,QAAM,qCAAqC,CACzC,aACA,aAEA;AAAA,IACE,cAAc;AAAA,MACZ,CAAA,iBAAgB,aAAa,UAAU,YAAY;AAAA,IAAA;AAAA,EACrD;AAGJ,QAAM,yBAAyB,MAAM;AACnC,QAAI,wBAAyB,QAAO;AACpC,QAAI,yBAA0B,QAAO;AACrC,WAAO;AAAA,EACT;AAEA,QAAM,sCAAsC,CAC1C,aACG;AACH,aAAS,CAAC,GAAG,eAAe,GAAG,0BAA0B,CAAC;AAAA,EAC5D;AAEA,QAAM,uBAAuB,CAC3B,aACG;AACH,UAAM,uCAAuC,cAAc;AAAA,MACzD,CAAA,iBACE,CAAC,0BAA0B;AAAA,QACzB,CAAA,aAAY,SAAS,UAAU,aAAa;AAAA,MAAA;AAAA,IAC9C;AAEJ,aAAS,oCAAoC;AAAA,EAC/C;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;AAOO,SAAS,qBACd,SAIQ;AACR,QAAM,EAAE,QAAQ,wBAAwB,OAAO,gBAAgB;AAE/D,MAAI,CAAC,QAAQ;AACX,WAAO;AAAA,EACT;AAEA,QAAM,8BAA8B,wBAChC,cAAc,IACd;AAEJ,MAAI,gCAAgC,GAAG;AACrC,WAAO;AAAA,EACT;AAEA,SAAO,GAAG,2BAA2B,YACnC,gCAAgC,IAAI,KAAK,IAC3C;AACF;AC7IO,MAAM,qBAAqBzC,eAAM;AAAA,EACtC,CACE;AAAA,IACE;AAAA,IACA,qBAAqB;AAAA,IACrB,oBAAoB;AAAA,IACpB;AAAA,IACA;AAAA,IACA,YAAY;AAAA,IACZ;AAAA,IACA,WAAW;AAAA,IACX,wBAAwB;AAAA,IACxB;AAAA,IACA,OAAO;AAAA,IACP,aAAa,4BAA4B,YAAY,IACjD,WACA;AAAA,IACJ;AAAA,IACA,yBAAyB;AAAA,IACzB;AAAA,IACA;AAAA,IACA;AAAA,IACA,cAAc;AAAA,IACd,gBAAgB;AAAA,IAChB,WAAW,MAAM;AAAA,IACjB;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX,cAAc;AAAA,IACd,eAAe;AAAA,IACf,cAAc;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,GAAG;AAAA,EAAA,GAEL,QACG;AACH,UAAM,CAAC,kBAAkB,mBAAmB,IAAI,SAAS,UAAU,IAAI;AACvE,UAAM,CAAC,sBAAsB,uBAAuB,IAAI,SAAS,CAAC;AAClE,UAAM,WAAW,OAAyB,IAAI;AAE9C,UAAM;AAAA,MACJ,OAAO;AAAA,MACP,SAAS;AAAA,MACT;AAAA,IAAA,IACE,iBAAiB,cAAc,eAAe;AAElD,UAAM,CAAC,WAAW,YAAY,IAAI,SAAS,eAAe;AAE1D,UAAM,kBAAkB,CAAC,EAAE,YAAAiD,kBACzB;AAAA,MACE,gBAAgB,OAAO,CAAA,SAAQ,WAAW,MAAMA,WAAU,CAAC;AAAA,IAAA;AAG/D,UAAM,kBAAkB,CAAC,EAAE,YAAAA,kBAA0C;AACnE,YAAM,qBAAqB,4BAA4B,YAAY;AACnE,UAAI,mBAAoB,YAAWA,eAAc,WAAW;AAE5D,sBAAgB,EAAE,YAAYA,eAAc,YAAA,CAAa;AAAA,IAC3D;AAEA,UAAM,kBAAkB,CAAC;AAAA,MACvB;AAAA,IAAA,MAGI;AACJ,sBAAgB,EAAE,YAAY,aAAa;AAC3C,aAAO;AAAA,QACL,GAAG;AAAA,QACH,YAAY;AAAA,MAAA;AAAA,IAEhB;AAEA,UAAM,gBACJ,OAAO,aAAa,cAChB,UAAU,YAAY,UAAU,gBAChC;AAEN,cAAU,MAAM;AACd,sBAAgB,EAAE,YAAY;AAAA,IAChC,GAAG,CAAC,eAAe,CAAC;AAEpB,cAAU,MAAM;AAEd,UAAI,iBAAiB,QAAQ,CAAC,eAAe;AAC3C,4BAAoB,IAAI;AACxB,wBAAgB,EAAE,YAAY,aAAa;AAC3C,sBAAc,WAAW;AAAA,MAC3B;AAAA,IACF,GAAG,CAAA,CAAE;AAEL,UAAMpD,gBAAe;AAAA,MACnB,CACE,OACA;AAAA,QACE;AAAA,QACA;AAAA,MAAA,MAEC;AACH,YACE,QAAQ,qBAAqB,UAC7B,SAAS,oBAAoB,GAC7B;AACA,kCAAwB,SAAS,gBAAgB;AAAA,QACnD;AAEA,gBAAQ,MAAA;AAAA;AAAA,UAEN,KAAK,YAAY,iBAAiB;AAAA,UAClC,KAAK,YAAY,iBAAiB;AAAA,UAClC,KAAK,YAAY,iBAAiB;AAChC,mBAAO,gBAAgB,EAAE,SAAS;AAAA,UACpC,KAAK,YAAY,iBAAiB;AAChC,gBAAI,QAAQ,iBAAiB,QAAQ,CAAC;AACpC,kCAAoB,IAAI;AAC1B,mBAAO,gBAAgB,EAAE,SAAS;AAAA;AAAA,UAEpC,KAAK,YAAY,iBAAiB,aAAa;AAC7C,kBAAM,wBAAwB;AAC9B,kBAAM,6BAA6B,QAAQ,eAAe;AAC1D,gBAAI,CAAC,2BAA4B,yBAAwB,CAAC;AAE1D,gBAAI,QAAQ,YAAY,MAAM,qBAAqB,GAAG;AACpD,oBAAM,sBAAsB,QAAQ,WAAW;AAAA,gBAC7C;AAAA,gBACA;AAAA,cAAA;AAEF,kBAAI,4BAA4B;AAC9B,oBAAI,CAAC,MAAM;AACT,yBAAO;AAAA,oBACL,GAAG;AAAA,oBACH,YAAY;AAAA,oBACZ,QAAQ;AAAA,kBAAA;AAGZ,oBAAI,QAAQ,qBAAqB,QAAW;AAC1C,yBAAO;AAAA,oBACL,GAAG;AAAA,oBACH,YAAY;AAAA,oBACZ,cAAc,UAAU,QAAQ,gBAAgB;AAAA,kBAAA;AAAA,gBAEpD;AAAA,cACF;AAAA,YACF;AAEA,mBAAO,EAAE,GAAG,SAAS,kBAAkB,EAAA;AAAA,UACzC;AAAA,UACA;AACE,mBAAO;AAAA,QAAA;AAAA,MAEb;AAAA,MACA,CAAC,YAAY,iBAAiB,eAAe,eAAe;AAAA,IAAA;AAG9D,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA,IACE,YAAY;AAAA,MACd,yBAAyB;AAAA,MACzB,OAAO;AAAA,MACP,cAAAN;AAAA,MACA,cAAc;AAAA,MACd,cAAAM;AAAA,MACA,mBAAmB,SAAS;AAC1B,wBAAgB,EAAE,YAAY,QAAQ,WAAA,CAAY;AAAA,MACpD;AAAA,MACA,qBAAqB,EAAE,cAAc,mBAAmB;AACtD,iBAAS,eAAe;AAAA,MAC1B;AAAA;AAAA,MAEA,sBAAsB,aACpB,qBAAqB,EAAE,GAAG,SAAS,aAAa,UAAU,OAAA,CAAQ;AAAA,IAAA,CACrE;AAGD,UAAM,EAAE,MAAM,gBAAgB,OAAA,IAAW,YAAY;AAAA,MACnD,MAAM;AAAA,MACN,WAAW;AAAA,MACX,YAAY;AAAA,QACV,OAAO,MAAM,WAAW;AAAA,QACxB,MAAM,EAAE,SAAS,MAAM,YAAY;AAAA,QACnC,KAAK;AAAA,UACH,MAAM,EAAE,OAAO,UAAU,mBAAmB;AAC1C,mBAAO,OAAO,SAAS,SAAS,OAAO;AAAA,cACrC,OAAO,GAAG,MAAM,UAAU,KAAK;AAAA;AAAA;AAAA,cAG/B,WAAW,GAAG,MAAM,KAAK,IAAI,iBAAiB,KAAK,EAAE,CAAC;AAAA,YAAA,CACvD;AAAA,UACH;AAAA,QAAA,CACD;AAAA,QACD,KAAK,EAAE,kBAAkB,mBAAA,CAAoB;AAAA,MAAA;AAAA,IAC/C,CACD;AAMD,cAAU,MAAM;AACd,UAAI,UAAU,KAAK,UAAU,WAAW,KAAK,SAAS,SAAS;AAC7D,eAAO;AAAA,UACL,KAAK,UAAU;AAAA,UACf,KAAK,SAAS;AAAA,UACd;AAAA,QAAA;AAAA,MAEJ;AAAA,IACF,GAAG,CAAC,QAAQ,KAAK,WAAW,KAAK,UAAU,MAAM,CAAC;AAElD,UAAM,gBAAgB,MAAM;AAC1B,eAAS,SAAS,MAAA;AAClB,YAAA;AAAA,IACF;AAEA,WACE;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAW;AAAA,UACT;AAAA,UACA;AAAA,UACA;AAAA,UACA,EAAE,6BAA6B,iBAAiB,OAAA;AAAA,QAAU;AAAA,QAE5D;AAAA,QACA;AAAA,QACA;AAAA,QACA,UAAU,iBAAiB,QAAQ,eAAe;AAAA,QAClD;AAAA,QACA,SAAS,gBAAgB;AAAA,QACzB,YAAY,cAAA;AAAA,QACZ;AAAA,QACA,SAAS,CAAChD,OAAwB;AAChC,cAAIA,GAAE,WAAWA,GAAE,eAAe;AAChC,0BAAA,GAAiB,UAAUA,EAAC;AAAA,UAC9B;AAAA,QACF;AAAA,QACA;AAAA,QACA;AAAA,QACA,KAAK,KAAK;AAAA,QACV;AAAA,QACA,UAAU,YAAY,WAAW,KAAK;AAAA,QACtC;AAAA,QACA,OACE;AAAA,UAAC;AAAA,UAAA;AAAA,YACC;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA,OAAO;AAAA,YACP,YAAY,KAAK;AAAA,YACjB,SAAS,WAAW;AAAA,YACpB;AAAA,YACA;AAAA,YACA,eAAe,iBAAiB,OAAO,CAAC,YAAY,IAAI,CAAA;AAAA,YACxD;AAAA,UAAA;AAAA,QAAA;AAAA,QAGH,GAAG;AAAA,QAEJ,QAAQ;AAAA,QAER,UAAA;AAAA,UAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAW,WAAW,2CAA2C;AAAA,gBAC/D,mDACE,CAAC;AAAA,cAAA,CACJ;AAAA,cACD,SAAS,CAAA,UAAS;AAChB,oBAAI,CAAC,YAAY,CAAC,UAAU;AAC1B,2BAAS,SAAS,MAAA;AAClB,gCAAA,GAAiB,UAAU,KAAK;AAAA,gBAClC;AAAA,cACF;AAAA,cACA,UAAU,WAAW,IAAI;AAAA,cAExB,UAAA,mBAAmB,cAAc,QAAQ;AAAA,YAAA;AAAA,UAAA;AAAA,UAE5C;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAW,WAAW,wCAAwC;AAAA,gBAC5D,+BAA+B;AAAA,cAAA,CAChC;AAAA,cACA,GAAG,cAAc;AAAA,gBAChB,UAAUA,IAAwB;AAChC,sBAAI,UAAUA,GAAE,QAAQ,OAAO;AAC7B,0BAAM,gBAAgB,UAAU,gBAAgB;AAEhD,yBACG,eAAe,iBAChB,iBACA,kBAAkB,cAClB;AACA,iCAAW,aAAa;AAAA,oBAC1B;AAAA,kBACF;AAAA,gBACF;AAAA,gBACA,SAAS;AACP,sBAAI,iBAAiB,KAAM,qBAAoB,IAAI;AAAA,gBACrD;AAAA,gBACA,UAAU;AACR,sBAAI,CAAC,UAAU;AACb,wCAAoB,KAAK;AAAA,kBAC3B;AAAA,gBACF;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA,aAAa,cAAc,SAAS;AAAA,gBACpC,UAAU,YAAY,WAAW,KAAK;AAAA,gBACtC,KAAK,UAAU,UAAU,GAAG;AAAA,cAAA,CAC7B;AAAA,YAAA;AAAA,UAAA;AAAA,UAEH;AAAA,YAAC;AAAA,YAAA;AAAA,cACE,GAAG,qBAAqB;AAAA,gBACvB,aAAa,EAAE,WAAW,wBACtB,SACA;AAAA,cAAA,CACL;AAAA,cACD;AAAA,cACA;AAAA,cACA;AAAA,cACA,UAAU,YAAY;AAAA,cACtB,SAAS;AAAA,cACT,WAAW;AAAA,cACX,oBAAoB;AAAA,cACpB;AAAA,cACA,gBAAgB,iBAAiB;AAAA,cACjC;AAAA,cACA,SAAS,WAAW;AAAA,YAAA;AAAA,UAAA;AAAA,QACtB;AAAA,MAAA;AAAA,IAAA;AAAA,EAGN;AACF;ACnSO,MAAM,cAAcmD,eAAM;AAAA,EAC/B,CACE;AAAA,IACE;AAAA,IACA,YAAY;AAAA,IACZ,qBAAqB;AAAA,IACrB;AAAA,IACA,WAAW;AAAA,IACX;AAAA,IACA;AAAA,IACA,gBAAgB;AAAA,IAChB,OAAO;AAAA,IACP,aAAa,4BAA4B,YAAY,IACjD,WACA;AAAA,IACJ;AAAA,IACA,wBAAwB;AAAA,IACxB,qBAAqB;AAAA,IACrB,iBAAiB;AAAA,IACjB;AAAA,IACA;AAAA,IACA;AAAA,IACA,cAAc;AAAA,IACd,WAAW;AAAA,IACX;AAAA,IACA,WAAW,MAAM;AAAA,IACjB;AAAA,IACA,WAAW;AAAA,IACX,gBAAgB,CAAA;AAAA,IAChB,eAAe;AAAA,IACf,cAAc;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV;AAAA,IACA,wBAAwB;AAAA,IACxB,qBAAqB;AAAA,IACrB,uBAAuB,GAAG,cAAc,MAAM;AAAA,IAC9C,oBAAoB;AAAA,IACpB,0BAA0B;AAAA,IAC1B;AAAA,IACA,GAAG;AAAA,EAAA,GAEL,QACG;AACH,UAAM,CAAC,sBAAsB,uBAAuB,IAAIA,eAAM,SAAS,CAAC;AACxE,UAAM,WAAW,OAAyB,IAAI;AAE9C,cAAU,MAAM;AAEd,UAAI,KAAK,iBAAiB;AACxB,gBAAQ;AAAA,UACN;AAAA,QAAA;AAAA,IAGN,GAAG,CAAC,KAAK,YAAY,CAAC;AAEtB,UAAM;AAAA,MACJ,OAAO;AAAA,MACP,SAAS;AAAA,MACT;AAAA,IAAA,IACE,iBAAiB,cAAc,eAAe;AAElD,UAAM,6BACJ,OAAO,iBAAiB,cACxB,cAAc,WAAW,gBAAgB;AAG3C,UAAM,YAAgD;AAAA,MACpD,OAAO,YAAY,YAAY;AAAA,MAC/B,OAAO;AAAA,IAAA;AAIT,UAAM,uBACJA,eAAM;AAAA,MACJ,OAAO;AAAA,QACL,OAAO;AAAA,QACP,OAAO,6BACH,wBACA,cAAc,SAAS,MAAM;AAAA,MAAA;AAAA,MAEnC;AAAA,QACE;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,IACF;AAGJ,UAAM,CAAC,WAAW,YAAY,IAAI,SAAS;AAAA,MACzC,GAAI,CAAC,gBAAgB,CAAC,SAAS,IAAI,CAAA;AAAA,MACnC,GAAG;AAAA,IAAA,CACJ;AAED,UAAM,kBAAkB,CAAC,EAAE,YAAAiD,YAAAA,MACzB,aAAa;AAAA,MACX,GAAI,CAAC,gBAAgB,CAAC,SAAS,IAAI,CAAA;AAAA,MACnC,GAAG,gBAAgB,OAAO,UAAQ,WAAW,MAAMA,WAAU,CAAC;AAAA,IAAA,CAC/D;AAEH,UAAM,kBAAkB,CAAC,EAAE,YAAAA,kBAA0C;AACnE,YAAM,qBAAqB,4BAA4B,YAAY;AACnE,UAAI,mBAAoB,YAAWA,eAAc,WAAW;AAE5D,sBAAgB,EAAE,YAAYA,eAAc,YAAA,CAAa;AAAA,IAC3D;AAEAjD,mBAAM,UAAU,MAAM;AACpB,sBAAgB,EAAE,YAAY;AAAA,IAChC,GAAG,CAAC,eAAe,CAAC;AAEpB,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA,IACE,oBAA+B;AAAA,MACjC;AAAA,MACA;AAAA,MACA;AAAA,IAAA,CACD;AAED,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA,IACE,qBAAqB;AAAA,MACvB;AAAA;AAAA,MAEA,cAAAT;AAAA,MACA,WAAAgB;AAAA,MACA,sBAAsB,EAAE,eAAe,oBAAoB;AACzD,iBAAS,gBAAgB;AAAA,MAC3B;AAAA,IAAA,CACD;AAED,UAAMV,gBAAeG,eAAM;AAAA,MACzB,CACE,OACA;AAAA,QACE;AAAA,QACA;AAAA,MAAA,MAIC;AACH,YACE,QAAQ,qBAAqB,UAC7B,SAAS,oBAAoB,GAC7B;AACA,kCAAwB,SAAS,gBAAgB;AAAA,QACnD;AAEA,gBAAQ,MAAA;AAAA;AAAA,UAEN,KAAK,YAAY,iBAAiB;AAChC,mBAAO;AAAA,cACL,GAAG;AAAA,cACH,YAAY;AAAA,YAAA;AAAA;AAAA,UAGhB,KAAK,YAAY,iBAAiB;AAAA,UAClC,KAAK,YAAY,iBAAiB,WAAW;AAC3C,mBAAO;AAAA,cACL,GAAG;AAAA,cACH,QAAQ;AAAA,cACR,YAAY,qBACR,cACA,UAAU,SAAS,SAAS;AAAA,YAAA;AAAA,UAEpC;AAAA;AAAA,UAEA,KAAK,YAAY,iBAAiB,mCAAmC;AACnE,mBAAO;AAAA,cACL,GAAG;AAAA,cACH,YAAY,UAAU,SAAS,SAAS;AAAA,YAAA;AAAA,UAE5C;AAAA;AAAA,UAEA,KAAK,YAAY,iBAAiB,aAAa;AAC7C,kBAAM,wBAAwB;AAC9B,kBAAM,6BAA6B,QAAQ,eAAe;AAC1D,gBAAI,QAAQ,YAAY,MAAM,qBAAqB,GAAG;AACpD,oBAAM,sBAAsB,QAAQ,WAAW;AAAA,gBAC7C;AAAA,gBACA;AAAA,cAAA;AAEF,kBAAI,4BAA4B;AAC9B,oBAAI,CAAC,MAAM;AACT,yBAAO;AAAA,oBACL,GAAG;AAAA,oBACH,YAAY;AAAA,oBACZ,QAAQ;AAAA,kBAAA;AAGZ,oBAAI,QAAQ,qBAAqB,QAAW;AAC1C,yBAAO;AAAA,oBACL,GAAG;AAAA,oBACH,YAAY;AAAA,oBACZ,cAAc,UAAU,QAAQ,gBAAgB;AAAA,kBAAA;AAAA,gBAEpD;AAAA,cACF;AAAA,YACF;AAEA,mBAAO;AAAA,UACT;AAAA,UACA;AACE,mBAAO;AAAA,QAAA;AAAA,MAEb;AAAA,MACA,CAAC,eAAe,iBAAiB,iBAAiB,YAAY;AAAA,IAAA;AAGhE,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA,IACE,YAAY;AAAA,MACd,yBAAyB;AAAA;AAAA,MACzB,OAAO;AAAA,MACP,cAAAT;AAAA,MACA,cAAc;AAAA,MACd,cAAAM;AAAA,MACA,mBAAmB,SAAS;AAC1B,wBAAgB,EAAE,YAAY,QAAQ,WAAA,CAAY;AAElD,4BAAoB,gBAAgB,IAAI,CAAC;AACzC,gCAAwB,gBAAgB,IAAI,CAAC;AAAA,MAC/C;AAAA,MACA,qBAAqB,EAAE,cAAc,eAAe;AAElD,YAAI,CAAC,YAAa;AAElB,8BAAsB;AAAA,UACpB;AAAA,UACA,UAAU;AAAA,QAAA,CACX;AAAA,MACH;AAAA;AAAA,MAEA,sBAAsB,aACpB,qBAAqB;AAAA,QACnB,GAAG;AAAA,QACH,uBAAuB,CAAC;AAAA,QACxB,aAAa,UAAU;AAAA,MAAA,CACxB;AAAA,MACH,GAAG;AAAA,IAAA,CACJ;AAGD,UAAM,EAAE,MAAM,gBAAgB,OAAA,IAAW,YAAY;AAAA,MACnD,MAAM;AAAA,MACN,WAAW;AAAA,MACX,YAAY;AAAA,QACV,OAAO,MAAM,WAAW;AAAA,QACxB,MAAM,EAAE,SAAS,MAAM,YAAY;AAAA,QACnC,KAAK;AAAA,UACH,MAAM,EAAE,OAAO,UAAU,mBAAmB;AAC1C,mBAAO,OAAO,SAAS,SAAS,OAAO;AAAA,cACrC,OAAO,GAAG,MAAM,UAAU,KAAK;AAAA;AAAA;AAAA,cAG/B,WAAW,GAAG,MAAM,KAAK,IAAI,iBAAiB,KAAK,EAAE,CAAC;AAAA,YAAA,CACvD;AAAA,UACH;AAAA,QAAA,CACD;AAAA,QACD,KAAK,EAAE,kBAAkB,mBAAA,CAAoB;AAAA,MAAA;AAAA,IAC/C,CACD;AAMD,cAAU,MAAM;AACd,UAAI,UAAU,KAAK,UAAU,WAAW,KAAK,SAAS,SAAS;AAC7D,eAAO;AAAA,UACL,KAAK,UAAU;AAAA,UACf,KAAK,SAAS;AAAA,UACd;AAAA,QAAA;AAAA,MAEJ;AAAA,IACF,GAAG,CAAC,QAAQ,KAAK,WAAW,KAAK,UAAU,MAAM,CAAC;AAElD,UAAM,gBAAgB,MAAM;AAC1B,eAAS,SAAS,MAAA;AAClB,YAAA;AAAA,IACF;AAEA,WACE;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAW;AAAA,UACT;AAAA,UACA;AAAA,UACA;AAAA,UACA,EAAE,6BAA6B,iBAAiB,OAAA;AAAA,QAAU;AAAA,QAE5D;AAAA,QACA;AAAA,QACA;AAAA,QACA,UAAU,oBAAoB,eAAe;AAAA,QAC7C;AAAA,QACA,SAAS,gBAAgB;AAAA,QACzB,YAAY,cAAA;AAAA,QACZ;AAAA,QACA,QAAQ,MAAM,cAAc,EAAE;AAAA,QAC9B,SAAS,CAAChD,OAAwB;AAChC,cAAIA,GAAE,WAAWA,GAAE,eAAe;AAChC,0BAAA,GAAiB,UAAUA,EAAC;AAAA,UAC9B;AAAA,QACF;AAAA,QACA;AAAA,QACA,KAAK,KAAK;AAAA,QACV;AAAA,QACA;AAAA,QACA,OACE;AAAA,UAAC;AAAA,UAAA;AAAA,YACC;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA,OAAO;AAAA,YACP,YAAY,KAAK;AAAA,YACjB,SAAS,WAAW;AAAA,YACpB;AAAA,YACA;AAAA,YACA;AAAA,YACA,eAAe;AAAA,YACf;AAAA,YACA;AAAA,UAAA;AAAA,QAAA;AAAA,QAGH,GAAG;AAAA,QAEJ,UAAA;AAAA,UAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAW;AAAA,gBACT;AAAA,gBACA;AAAA,kBACE,+DACE;AAAA,gBAAA;AAAA,cACJ;AAAA,cAGD,UAAA;AAAA,gBAAA,cAAc,SAAS,IACtB,oBAAC,gBAAA,EAAe,SAAS,SAAS,SAAS,OACxC,UAAA,qBAAA,CACH,IACE;AAAA,gBACH,cAAc,UAAU,WACvB,cAAc,IAAI,CAAC,cAAcuC,WAC/B;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,iBAAiB;AAAA,oBACjB;AAAA,oBACA;AAAA,oBACA;AAAA,oBACA,OAAAA;AAAA,oBAOA;AAAA,oBACA,oBAAoB,MAAM;AACxB,yCAAmB,YAAY;AAC/B,gCAAU,SAAS,MAAA;AAAA,oBACrB;AAAA,oBACA;AAAA,kBAAA;AAAA,kBAVE,cAAc,SACb,OAAO,cAAc,UAAU,WAC5B,aAAa,QACb;AAAA,gBAAA,CAST,IAED;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,yBAAyB;AAAA,oBACzB,iBAAgB;AAAA,oBAChB;AAAA,oBACA;AAAA,oBACA,oBAAoB;AAAA,oBACpB,cAAc;AAAA,kBAAA;AAAA,gBAAA;AAAA,gBAGlB;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACE,GAAG,cAAc;AAAA,sBAChB,WAAW,CAACvC,OAA2B;AACrC,4BAAI,eAAe,UAAUA,GAAE,QAAQ,OAAO;AAC5C,gCAAM,gBAAgB,UAAU,gBAAgB;AAChD,8BAAI,CAAC,cAAe;AAGpB,gCAAM,yBACJ,uBAAuB,aAAa,KACnC,CAAC,uBAAuB,aAAa,KACpC,6BAA6B,aAAa;AAE9C,8BAAI,uBAAwB;AAE5B,gDAAsB;AAAA,4BACpB,aAAa;AAAA,4BACb,UAAU;AAAA,0BAAA,CACX;AAAA,wBACH;AAAA,sBACF;AAAA,sBACA,GAAG,iBAAiB;AAAA,wBAClB,kBAAkB;AAAA,wBAClB,OAAO,cAAc;AAAA,wBACrB,KAAK,UAAU,UAAU,GAAG;AAAA,sBAAA,CAC7B;AAAA,sBACD,WAAW;AAAA,sBACX,UAAU,YAAY;AAAA,sBACtB;AAAA,sBACA,UAAU,YAAY,WAAW,KAAK;AAAA,oBAAA,CACvC;AAAA,kBAAA;AAAA,gBAAA;AAAA,cACH;AAAA,YAAA;AAAA,UAAA;AAAA,UAEF;AAAA,YAAC;AAAA,YAAA;AAAA,cACE,GAAG,qBAAqB;AAAA,gBACvB,aAAa,EAAE,WAAW,wBACtB,SACA;AAAA,cAAA,CACL;AAAA,cACD;AAAA,cACA;AAAA,cACA;AAAA,cACA,UAAU,YAAY;AAAA,cACtB,SAAS;AAAA,cACT,WAAW;AAAA,cACX,oBAAoB;AAAA,cACpB;AAAA,cACA,gBAAgB,cAAc,SAAS;AAAA,cACvC;AAAA,cACA,SAAS,WAAW;AAAA,YAAA;AAAA,UAAA;AAAA,QACtB;AAAA,MAAA;AAAA,IAAA;AAAA,EAGN;AACF;AC9bO,MAAM,WAAWmD,eAAM;AAAA,EAC5B,CACE;AAAA,IACE;AAAA,IACA,qBAAqB;AAAA,IACrB,oBAAoB;AAAA,IACpB;AAAA,IACA;AAAA,IACA,YAAY;AAAA,IACZ,WAAW;AAAA,IACX;AAAA,IACA;AAAA,IACA,OAAO;AAAA,IACP;AAAA,IACA,yBAAyB;AAAA,IACzB;AAAA,IACA;AAAA,IACA;AAAA,IACA,cAAc;AAAA,IACd,gBAAgB;AAAA,IAChB;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX;AAAA,IACA,eAAe;AAAA,IACf,cAAc;AAAA,IACd;AAAA,IACA,UAAU;AAAA,IACV,GAAG;AAAA,EAAA,GAEL,QACG;AACH,UAAM,EAAE,OAAO,iBAAiB,SAAS,qBAAA,IACvC,iBAAiB,YAAY;AAC/B,UAAM,WAAW,iBAAiB,QAAQ,gBAAgB;AAC1D,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA,IACE,UAAU;AAAA,MACZ,OAAO;AAAA,MACP,yBAAyB,eAAe,SAAY;AAAA,MACpD;AAAA,MACA,aAAa,GAAG,EAAE,SAAS,QAAQ;AACjC,cAAM,wBACJ,OAAO,aAAa,eACpB,SAAS,kBAAkB,KAAK,UAAU;AAE5C,gBAAQ,MAAA;AAAA,UACN,KAAK,UAAU,iBAAiB;AAAA,UAChC,KAAK,UAAU,iBAAiB;AAC9B,gBAAI,CAAC,sBAAuB,QAAO,EAAE,GAAG,SAAS,QAAQ,MAAA;AAAA,QAAM;AAEnE,eAAO;AAAA,MACT;AAAA,MACA,cAAc,EAAE,MAAM,cAAc,mBAAmB;AACrD,gBAAQ,MAAA;AAAA,UACN,KAAK,UAAU,iBAAiB;AAC9B,gBAAI,CAAC,aAAc;AAAA,QAAA;AAEvB,YAAI,oBAAoB,OAAW;AACnC,mBAAW,mBAAmB,IAAI;AAAA,MACpC;AAAA,MACA,cAAAT;AAAA,IAAA,CACD;AAGD,UAAM,EAAE,MAAM,gBAAgB,OAAA,IAAW,YAA4B;AAAA,MACnE,MAAM;AAAA,MACN,WAAW;AAAA,MACX,YAAY;AAAA,QACV,OAAO,MAAM,WAAW;AAAA,QACxB,MAAM,EAAE,SAAS,MAAM,YAAY;AAAA,QACnC,KAAK;AAAA,UACH,MAAM,EAAE,OAAO,UAAU,mBAAmB;AAC1C,mBAAO,OAAO,SAAS,SAAS,OAAO;AAAA,cACrC,OAAO,GAAG,MAAM,UAAU,KAAK;AAAA;AAAA;AAAA,cAG/B,WAAW,GAAG,MAAM,KAAK,IAAI,iBAAiB,KAAK,EAAE,CAAC;AAAA,YAAA,CACvD;AAAA,UACH;AAAA,QAAA,CACD;AAAA,QACD,KAAK,EAAE,kBAAkB,mBAAA,CAAoB;AAAA,MAAA;AAAA,IAC/C,CACD;AAMD,cAAU,MAAM;AACd,UAAI,UAAU,KAAK,UAAU,WAAW,KAAK,SAAS,SAAS;AAC7D,eAAO;AAAA,UACL,KAAK,UAAU;AAAA,UACf,KAAK,SAAS;AAAA,UACd;AAAA,QAAA;AAAA,MAEJ;AAAA,IACF,GAAG,CAAC,QAAQ,KAAK,WAAW,KAAK,UAAU,MAAM,CAAC;AAElD,UAAM,gBAAgB,MAAM;AAC1B,YAAA;AACA,WAAK,UAAU,SAAS,MAAA;AAAA,IAC1B;AAEA,WACE;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAW,WAAW,gBAAgB,WAAW;AAAA,UAC/C,6BAA6B,iBAAiB;AAAA,QAAA,CAC/C;AAAA,QACD;AAAA,QACA;AAAA,QACA;AAAA,QACA,YAAY,cAAA;AAAA,QACZ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACC,GAAG,qBAAqB;AAAA,UACvB,KAAK,UAAU,KAAK,KAAK,YAAY;AAAA,UACrC,iBAAiB;AAAA,UACjB,cAAc,WAAW,sBAAsB;AAAA,UAC/C;AAAA,UACA;AAAA,UACA;AAAA,UACA,SAAS,iBAAiB;AAAA,UAC1B,UAAU;AAAA,UACV,UAAU,YAAY,WAAW,KAAK;AAAA,UACtC,UAAU1C,IAAG;AACX,gBAAI,UAAUA,GAAE,QAAQ,OAAO;AAC7B,oBAAM,gBAAgB,gBAAgB,gBAAgB;AAEtD,mBACG,eAAe,iBAChB,iBACA,kBAAkB,cAClB;AACA,2BAAW,aAAa;AAAA,cAC1B;AAAA,YACF;AAAA,UACF;AAAA,QAAA,CACD;AAAA,QACD,OACE;AAAA,UAAC;AAAA,UAAA;AAAA,YACC;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA,WAAW;AAAA,YACX;AAAA,YACA,OAAO;AAAA,YACP,YAAY,KAAK;AAAA,YACjB,SAAS,WAAW;AAAA,YACpB;AAAA,YACA,eAAe,iBAAiB,OAAO,CAAC,YAAY,IAAI,CAAA;AAAA,YACxD;AAAA,UAAA;AAAA,QAAA;AAAA,QAGH,GAAG;AAAA,QAEJ,QAAQ;AAAA,QAER,UAAA;AAAA,UAAA,oBAAC,OAAA,EAAI,WAAU,+BACZ,UAAA,cAAc,SACb;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAW;AAAA,gBACT;AAAA,gBACA;AAAA,kBACE,sDACE;AAAA,gBAAA;AAAA,cACJ;AAAA,cAGD,UAAA;AAAA,YAAA;AAAA,UAAA,GAGP;AAAA,UACA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,aAAW,EAAE,WAAW,wBAAwB,SAAY;AAAA,cAC5D,iBAAe;AAAA,cACf;AAAA,cACA,SAAS;AAAA,cACT,UAAU,YAAY;AAAA,cACtB,WAAW;AAAA,cACX,oBAAoB;AAAA,cACpB;AAAA,cACA,gBAAgB,iBAAiB;AAAA,cACjC;AAAA,cACA;AAAA,cACA,SAAS;AAAA,cACT,aAAa;AAAA,YAAA;AAAA,UAAA;AAAA,QACf;AAAA,MAAA;AAAA,IAAA;AAAA,EAGN;AACF;AC/SA,MAAM,QAAQ;AAqDP,MAAM,iBAAiB;AAAA,EAC5B,CACE;AAAA,IACE;AAAA,IACA,WAAW;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EAAA,GAEL,QACG;AACH,UAAM,EAAE,OAAO,iBAAiB,QAAA,IAC9B,iBAA4B,KAAK;AACnC,UAAM,mBAAmB,YAAY,qBAAqB;AAE1D,WACE;AAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA,QACE;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,QAAQ,YAAY;AAAA,YACpB;AAAA,YACA;AAAA,UAAA;AAAA,QAAA;AAAA,QAGJ;AAAA,QACA;AAAA,QACA;AAAA,QACA,SAAS;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACA,UAAU;AAAA,QAEV,UAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,gBAAc,YAAY,cAAc,YAAY;AAAA,YACpD,mBAAiB;AAAA,YACjB,aAAW;AAAA,YACX,WAAU;AAAA,YACV,UAAU,YAAY;AAAA,YACtB,UAAU,CAAA,UAAS;AACjB,yBAAW;AAAA,gBACT,OAAO,MAAM,OAAO;AAAA,gBACpB,cACE,gBAAgB;AAAA,kBACd,CAAA,SAAQ,KAAK,UAAU,MAAM,OAAO;AAAA,gBAAA,KACjC;AAAA,gBACP,QAAQ,MAAM;AAAA,cAAA,CACf;AAAA,YACH;AAAA,YACA,OAAO,SAAS,cAAc,SAAS;AAAA,YACvC;AAAA,YACC,GAAG;AAAA,YAEH,UAAA,gBAAgB,IAAI,CAAA,SACnB,oBAAC,UAAA,EAAwB,OAAO,KAAK,OAClC,UAAA,KAAK,MAAA,GADK,KAAK,KAElB,CACD;AAAA,UAAA;AAAA,QAAA;AAAA,MACH;AAAA,IAAA;AAAA,EAGN;AACF;AAEA,MAAM,cAAc,CAAC;AAAA,EACnB;AAAA,EACA;AAAA,EACA;AACF,MAIM;AACJ,MAAI,SAAS;AACX,WACE,oBAAC,SAAI,WAAU,qCACb,8BAAC,aAAA,EAAY,cAAY,aAAa,EAAA,CACxC;AAAA,EAEJ;AACA,MAAI,QAAQ;AACV,WAAO,oBAAA,UAAA,EAAE;AAAA,EACX;AACA,SAAO,oBAAC,eAAA,EAAc,QAAM,KAAA,CAAC;AAC/B;ACpKA,uBAAuB,YAAY,QAAQ,QAAQ,MAAM;","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]}
1
+ {"version":3,"file":"dropdown.esm.js","sources":["../src/components/DropdownList.tsx","../src/components/FieldComponents.tsx","../src/useNormalizedItems.ts","../src/useResolvedItems.ts","../src/utils.ts","../src/SearchableDropdown.tsx","../src/MultiSelect.tsx","../src/Dropdown.tsx","../src/NativeDropdown.tsx","../src/index.tsx"],"sourcesContent":["import React from 'react';\nimport classNames from 'classnames';\nimport { UseComboboxPropGetters, UseSelectPropGetters } from 'downshift';\n\nimport { VisuallyHidden } from '@entur/a11y';\nimport { Checkbox } from '@entur/form';\n\nimport { NormalizedDropdownItemType } from '../types';\n\nimport './DropdownList.scss';\n\ntype DropdownListProps<ValueType> = {\n ariaLabelChosenSingular?: string;\n ariaLabelSelectedItem?: string;\n getMenuProps:\n | UseComboboxPropGetters<ValueType>['getMenuProps']\n | UseSelectPropGetters<ValueType>['getMenuProps'];\n getItemProps:\n | UseComboboxPropGetters<ValueType>['getItemProps']\n | UseSelectPropGetters<ValueType>['getItemProps'];\n highlightedIndex: number;\n isOpen: boolean;\n listItems: NormalizedDropdownItemType<ValueType | string>[];\n floatingStyles: { [key: string]: any } | undefined;\n setListRef: (node: HTMLElement | null) => void;\n loading?: boolean;\n loadingText?: string;\n noMatchesText?: string;\n selectAllCheckboxState?: () => boolean | 'indeterminate';\n selectAllItem?: NormalizedDropdownItemType<string>;\n selectedItems: NormalizedDropdownItemType<ValueType>[];\n style?: React.CSSProperties;\n readOnly?: boolean;\n};\n\nexport const DropdownList = <ValueType extends NonNullable<any>>({\n ariaLabelChosenSingular = 'valgt',\n ariaLabelSelectedItem = ', valgt element, trykk for å fjerne',\n getItemProps,\n getMenuProps,\n isOpen,\n highlightedIndex,\n listItems,\n floatingStyles,\n setListRef,\n loading = false,\n loadingText = 'Laster inn …',\n noMatchesText = 'Ingen treff for søket',\n selectAllCheckboxState,\n selectAllItem,\n selectedItems,\n readOnly = false,\n ...rest\n}: DropdownListProps<ValueType>) => {\n const isMultiselect = selectAllItem !== undefined;\n const isNoMatches =\n !loading &&\n (listItems.length === 0 ||\n (listItems?.length === 1 &&\n listItems?.[0]?.value === selectAllItem?.value));\n const isItemSelected = (\n item: NormalizedDropdownItemType<ValueType | string>,\n ) =>\n selectedItems.some(\n selectedItem =>\n selectedItem?.value === item?.value &&\n selectedItem?.label === item?.label,\n );\n\n const ariaValuesSelectAll = () => {\n switch (selectAllCheckboxState?.()) {\n case 'indeterminate': {\n return {\n label: `${selectAllItem?.label}, delvis valgt`,\n selected: false,\n };\n }\n case true: {\n return {\n label: `${selectAllItem?.label}, ${ariaLabelChosenSingular}`,\n selected: true,\n };\n }\n default: {\n return { label: `${selectAllItem?.label}`, selected: false };\n }\n }\n };\n\n const selectAllListItemContent = () => (\n <>\n <Checkbox\n aria-hidden=\"true\"\n checked={selectAllCheckboxState?.()}\n className=\"eds-dropdown__list__item__checkbox\"\n tabIndex={-1}\n onChange={() => undefined}\n />\n <span\n className=\"eds-dropdown__list__item__text\"\n aria-label={ariaValuesSelectAll().label}\n >\n {selectAllItem?.label}\n </span>\n </>\n );\n\n const isReactComponent = (icon: any): icon is React.ComponentType<any> => {\n return (\n typeof icon === 'function' ||\n (typeof icon === 'object' &&\n icon !== null &&\n '$$typeof' in icon &&\n typeof icon.$$typeof === 'symbol')\n );\n };\n\n const listItemContent = (item: NormalizedDropdownItemType<ValueType>) => {\n return (\n <>\n {isMultiselect && (\n <Checkbox\n aria-hidden=\"true\"\n checked={isItemSelected(item)}\n className=\"eds-dropdown__list__item__checkbox\"\n tabIndex={-1}\n onChange={() => undefined}\n />\n )}\n <span className=\"eds-dropdown__list__item__text\">\n {item.label}\n <VisuallyHidden>\n {isItemSelected(item) ? ariaLabelSelectedItem : ''}\n </VisuallyHidden>\n </span>\n {Array.isArray(item.icons)\n ? item.icons.filter(isReactComponent).map((Icon, index) => {\n const key = `${\n Icon.displayName ?? Icon.name ?? Icon.name\n }-${index}`;\n return (\n <Icon\n key={key}\n inline\n className=\"eds-dropdown__list__item__icon\"\n />\n );\n })\n : null}\n </>\n );\n };\n\n return (\n // use popover from @entur/tooltip when that package upgrades to floating-ui\n <ul\n {...getMenuProps({\n 'aria-multiselectable': isMultiselect,\n ref: setListRef,\n className: 'eds-dropdown__list',\n style: {\n ...floatingStyles,\n display: isOpen && !readOnly ? undefined : 'none',\n ...rest.style,\n },\n })}\n >\n {(() => {\n if (!isOpen || readOnly) {\n return null;\n }\n\n if (loading) {\n return (\n <li\n key=\"dropdown-list-loading\"\n className=\"eds-dropdown__list__item\"\n >\n {loadingText}\n </li>\n );\n }\n\n if (isNoMatches) {\n return (\n <li\n key=\"dropdown-list-no-match\"\n className=\"eds-dropdown__list__item\"\n >\n {noMatchesText}\n </li>\n );\n }\n\n return listItems.map((item, index) => {\n const key =\n item.itemKey ??\n `${item.label ?? ''}-${item.value ?? ''}-${(item.icons ?? [])\n .map(icon => icon?.displayName ?? icon?.name ?? 'unknown')\n .join('-')}`;\n const itemIsSelectAll = item.value === selectAllItem?.value;\n if (itemIsSelectAll && listItems.length <= 2) return null;\n return (\n <li\n className={classNames('eds-dropdown__list__item', {\n 'eds-dropdown__list__item--select-all': itemIsSelectAll,\n 'eds-dropdown__list__item--highlighted':\n highlightedIndex === index,\n 'eds-dropdown__list__item--selected':\n !isMultiselect && isItemSelected(item),\n })}\n key={key}\n {...getItemProps({\n // @ts-expect-error Since getItemProps expects the same item type\n // here as items, it throws error when selectAllItem is a string.\n // This does, however, not cause any functional issues.\n item,\n index,\n 'aria-selected': itemIsSelectAll\n ? ariaValuesSelectAll().selected\n : isItemSelected(item),\n })}\n >\n {itemIsSelectAll\n ? selectAllListItemContent()\n : listItemContent(\n item as NormalizedDropdownItemType<ValueType>,\n )}\n </li>\n );\n });\n })()}\n </ul>\n );\n};\n","import React, { forwardRef } from 'react';\nimport classNames from 'classnames';\nimport {\n UseComboboxGetToggleButtonPropsReturnValue,\n UseMultipleSelectionGetSelectedItemPropsOptions,\n} from 'downshift';\n\nimport { IconButton } from '@entur/button';\nimport { TagChip } from '@entur/chip';\nimport { CloseSmallIcon, DownArrowIcon } from '@entur/icons';\nimport { LoadingDots } from '@entur/loader';\nimport { Tooltip } from '@entur/tooltip';\n\nimport { NormalizedDropdownItemType } from '../types';\n\nimport './FieldComponents.scss';\n\nexport const SelectedItemTag = <ValueType extends NonNullable<any>>({\n ariaLabelRemoveSelected,\n ariaLabelChosen = 'valgt',\n disabled,\n getSelectedItemProps,\n index,\n readOnly,\n removeSelectedItem,\n selectedItem,\n}: {\n ariaLabelRemoveSelected: string;\n ariaLabelChosen?: string;\n disabled?: boolean;\n getSelectedItemProps?: (\n options: UseMultipleSelectionGetSelectedItemPropsOptions<\n NormalizedDropdownItemType<ValueType>\n >,\n ) => any;\n index?: number;\n readOnly?: boolean;\n removeSelectedItem: (item: NormalizedDropdownItemType<ValueType>) => void;\n selectedItem: NormalizedDropdownItemType<ValueType>;\n}) => {\n const { tabIndex: _, ...selectedItemProps } =\n getSelectedItemProps?.({\n selectedItem,\n index,\n }) ?? {};\n return (\n <TagChip\n size=\"small\"\n className={classNames('eds-dropdown__selected-item-tag', {\n 'eds-dropdown__selected-item-tag--readonly': readOnly,\n 'eds-dropdown__selected-item-tag--disabled': disabled,\n })}\n {...selectedItemProps}\n onClose={(e: React.MouseEvent<HTMLButtonElement>) => {\n e.stopPropagation();\n removeSelectedItem(selectedItem);\n }}\n onClick={(e: React.MouseEvent) => e.stopPropagation()}\n closeButtonAriaLabel={`${selectedItem.label} ${ariaLabelChosen}, ${ariaLabelRemoveSelected} `}\n key={selectedItem.value}\n aria-live=\"polite\"\n >\n <span\n aria-hidden=\"true\"\n className=\"eds-dropdown__selected-item-tag__text\"\n >\n {selectedItem.label}\n </span>\n </TagChip>\n );\n};\n\ntype FieldAppendProps = Partial<UseComboboxGetToggleButtonPropsReturnValue> & {\n ariaLabelCloseList: string;\n ariaLabelOpenList: string;\n clearable?: boolean;\n labelClearSelected: string;\n disabled?: boolean;\n focusable?: boolean;\n isOpen: boolean;\n loading: boolean;\n loadingText: string | undefined;\n onClear: () => void;\n itemIsSelected: boolean;\n};\n\nexport const DropdownFieldAppendix = forwardRef(\n (\n {\n ariaLabelCloseList,\n ariaLabelOpenList,\n clearable = false,\n labelClearSelected,\n focusable = false,\n disabled,\n isOpen,\n loading = false,\n loadingText,\n onClear,\n itemIsSelected,\n ...rest\n }: FieldAppendProps,\n ref: React.ForwardedRef<HTMLButtonElement>,\n ) => {\n function getToggleAriaLabel() {\n if (loading) return loadingText;\n if (isOpen) return ariaLabelCloseList;\n return ariaLabelOpenList;\n }\n\n return (\n <>\n {!disabled && (\n <div className=\"eds-dropdown__appendix\">\n {clearable && itemIsSelected && (\n <ClearableButton\n onClear={onClear}\n focusable={true}\n labelClearSelectedItems={labelClearSelected}\n />\n )}\n\n <IconButton\n className={classNames('eds-dropdown__appendix__toggle-button', {\n 'eds-dropdown__appendix__toggle-button--open': isOpen,\n })}\n ref={ref}\n aria-label={getToggleAriaLabel()}\n {...rest}\n type=\"button\"\n tabIndex={focusable ? 0 : -1}\n >\n {!loading ? (\n <DownArrowIcon aria-hidden=\"true\" />\n ) : (\n <LoadingDots aria-hidden=\"true\" />\n )}\n </IconButton>\n </div>\n )}\n </>\n );\n },\n);\n\nexport const ClearableButton = ({\n onClear,\n labelClearSelectedItems = 'Fjern valgte',\n focusable = false,\n}: {\n onClear: () => void;\n labelClearSelectedItems?: string;\n focusable?: boolean;\n ariaLabelClearItems?: string;\n}) => {\n return (\n <>\n <Tooltip\n aria-hidden=\"true\"\n placement=\"top\"\n content={labelClearSelectedItems}\n className=\"eds-dropdown__appendix__clear-button__tooltip\"\n >\n <IconButton\n className=\"eds-dropdown__appendix__clear-button\"\n type=\"button\"\n tabIndex={focusable ? 0 : -1}\n // These events bubble up to the Dropdown container and trigger openMenu.\n // To avoid this, stopPropagation and preventDefault are added.\n onClick={e => {\n e.stopPropagation();\n onClear();\n }}\n onKeyDown={e => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n e.stopPropagation();\n onClear();\n }\n }}\n aria-label={labelClearSelectedItems}\n >\n <CloseSmallIcon aria-hidden=\"true\" />\n </IconButton>\n </Tooltip>\n <div className=\"eds-dropdown__appendix__divider\" />\n </>\n );\n};\n","import React from 'react';\n\nimport { DropdownItemType, NormalizedDropdownItemType } from './types';\n\nexport const useNormalizedItems = <ValueType = string>(\n items: DropdownItemType<ValueType>[],\n): NormalizedDropdownItemType<ValueType>[] =>\n React.useMemo(\n () =>\n items.map(item => {\n if (typeof item == 'string') {\n return {\n value: item as ValueType,\n label: item,\n };\n }\n\n if (item?.value === undefined) {\n return {\n ...item,\n value: item.label as ValueType,\n };\n }\n return { ...item, value: item.value };\n }),\n [items],\n );\n","import React from 'react';\n\nimport { useDebounce } from '@entur/utils';\n\nimport { useNormalizedItems } from './useNormalizedItems';\n\nimport {\n PotentiallyAsyncDropdownItemType,\n DropdownItemType,\n NormalizedDropdownItemType,\n AsyncDropdownItemType,\n} from './types';\n\nexport const useResolvedItems = <ValueType extends NonNullable<any>>(\n /** The list of items, or an async function that resolves the list of items */\n itemsOrItemsResolver: PotentiallyAsyncDropdownItemType<ValueType>,\n /** The time to wait after the input changes to the fetchItems method is called */\n debounceTimeout = 250,\n): {\n fetchItems: (query?: string) => void;\n loading: boolean;\n items: NormalizedDropdownItemType<ValueType>[];\n} => {\n const itemsIsAFunction = typeof itemsOrItemsResolver === 'function';\n\n const [items, setItems] = React.useState<DropdownItemType<ValueType>[]>(\n itemsIsAFunction ? [] : itemsOrItemsResolver,\n );\n const [loading, setLoading] = React.useState(false);\n\n const abortControllerRef = React.useRef<AbortController>(\n new AbortController(),\n );\n\n // We normalize the itemsResolver argument to an async function, so we\n // can use it without thinking about the differences later\n const itemsResolver = React.useMemo(() => {\n if (itemsIsAFunction)\n return itemsOrItemsResolver as AsyncDropdownItemType<ValueType>;\n return () =>\n Promise.resolve(itemsOrItemsResolver as DropdownItemType<ValueType>[]);\n }, [itemsOrItemsResolver, itemsIsAFunction]);\n\n // This should be called whenever the input value changes\n const updateItems = async (inputValue?: string) => {\n // The abortController handles cleanup of the previous request and unmounting\n if (abortControllerRef?.current) abortControllerRef?.current?.abort();\n const abortController = new AbortController();\n abortControllerRef.current = abortController;\n\n setLoading(true);\n\n try {\n const resolvedItems = await itemsResolver(\n inputValue ?? '',\n abortControllerRef,\n );\n\n if (abortControllerRef?.current?.signal?.aborted) {\n console.warn(\n 'Avbryt den asynkrone funksjonen din med signalet fra AbortController-en for å for å unngå minnelekkasje.',\n 'Funksjonen bør kaste en DOMException med navnet \"AbortError\" når den avbrytes.',\n '',\n '\\n\\nSe eksempel her: https://linje.entur.no/komponenter/skjemaelementer/dropdown#s%C3%B8kbar-dropdown-med-valg-fra-nettverkskall-bassert-p%C3%A5-tekstinput',\n '\\nLes mer om AbortController her: https://developer.mozilla.org/en-US/docs/Web/API/AbortController',\n );\n return;\n }\n\n setLoading(false);\n setItems(resolvedItems);\n } catch (error) {\n if (\n error &&\n typeof error === 'object' &&\n 'name' in error &&\n error.name === 'AbortError'\n ) {\n // Stop execution if the request was aborted\n return;\n }\n console.warn(\n 'The following error was received but not handled inside Entur Designsystems useResolvedItems hook:',\n );\n throw error;\n }\n };\n\n const debouncedFetchItems = useDebounce(updateItems, debounceTimeout);\n const normalizedItems = useNormalizedItems(items);\n\n React.useEffect(() => {\n // send abort signal to previous request on unmount for cleanup\n return () => abortControllerRef?.current?.abort('Component unmounted');\n }, []);\n\n React.useEffect(() => {\n // Let's fetch the list initially if it's specified\n if (itemsIsAFunction) {\n debouncedFetchItems('');\n }\n }, [itemsIsAFunction, itemsResolver]);\n\n return {\n items: normalizedItems,\n loading: itemsIsAFunction ? loading : false,\n fetchItems: debouncedFetchItems,\n };\n};\n","import { UseComboboxState } from 'downshift';\nimport { NormalizedDropdownItemType } from './types';\n\n// Redeclare forwardRef\ndeclare module 'react' {\n function forwardRef<T, P = object>(\n render: (props: P, ref: React.Ref<T>) => React.ReactElement | null,\n ): (props: P & React.RefAttributes<T>) => React.ReactElement | null;\n}\n\n/* start general utils */\nexport const EMPTY_INPUT = '';\n\nexport function lowerCaseFilterTest(\n item: NormalizedDropdownItemType<any>,\n input: string | undefined,\n) {\n if (!input) {\n return true;\n }\n const sanitizeEscapeCharacters = input.replace(\n /[-/\\\\^$*+?.()|[\\]{}]/g,\n '\\\\$&',\n );\n const inputRegex = new RegExp(sanitizeEscapeCharacters, 'i');\n return inputRegex.test(item.label);\n}\n\nexport function noFilter<ValueType>(\n //@ts-expect-error only here to comply with dropdown filter API\n item: NormalizedDropdownItemType<ValueType>,\n //@ts-expect-error only here to comply with dropdown filter API\n input: string | undefined,\n) {\n return true;\n}\n\nexport const itemToString = (item: NormalizedDropdownItemType<any> | null) =>\n item ? item.label : '';\n\nexport const itemToKey = (item: NormalizedDropdownItemType<any> | null) =>\n item?.label + item?.value;\n\nexport const isFunctionWithQueryArgument = (object: any) =>\n typeof object === 'function' && object.length > 0;\n\nexport const clamp = (val: number, min = 1, max = 10) =>\n Math.min(Math.max(val, min), max);\n\n/* end general utils */\n/* start multiselect utils */\n\ntype useMultiselectUtilsType<ValueType> = {\n selectedItems: NormalizedDropdownItemType<ValueType>[];\n listItems: NormalizedDropdownItemType<ValueType | string>[];\n selectAll: NormalizedDropdownItemType<string>;\n};\n\nexport const useMultiselectUtils = <ValueType>({\n listItems,\n selectedItems,\n selectAll,\n}: useMultiselectUtilsType<ValueType>) => {\n const hasSelectedItems = selectedItems.length > 0;\n\n const listItemsWithoutSelectAll = listItems.filter(\n item => item.value !== selectAll.value,\n ) as NormalizedDropdownItemType<ValueType>[];\n\n const unselectedItemsInListItems = listItemsWithoutSelectAll.filter(\n listItem =>\n !selectedItems.some(\n selectedItem => selectedItem.value === listItem.value,\n ),\n );\n\n const allListItemsAreSelected = !listItemsWithoutSelectAll.some(\n listItem =>\n !selectedItems.some(\n selectedItem => selectedItem.value === listItem.value,\n ),\n );\n\n const someListItemsAreSelected = listItemsWithoutSelectAll.some(listItem =>\n selectedItems.some(selectedItem => selectedItem.value === listItem.value),\n );\n\n const addClickedItemToSelectedItems = (\n clickedItem: NormalizedDropdownItemType<ValueType>,\n onChange: (value: NormalizedDropdownItemType<ValueType>[]) => void,\n ) => onChange([...selectedItems, clickedItem]);\n\n const clickedItemIsInSelectedItems = (\n clickedItem: NormalizedDropdownItemType<ValueType>,\n ) =>\n selectedItems.some(\n selectedItem => selectedItem.value === clickedItem.value,\n );\n\n const clickedItemIsSelectAll = (\n clickedItem: NormalizedDropdownItemType<string | ValueType>,\n ): clickedItem is NormalizedDropdownItemType<string> =>\n clickedItem.value === selectAll.value;\n\n const handleListItemClicked = ({\n clickedItem,\n onChange,\n }: {\n clickedItem: NormalizedDropdownItemType<any>;\n onChange: (value: NormalizedDropdownItemType<ValueType>[]) => void;\n }) => {\n if (clickedItemIsSelectAll(clickedItem)) {\n if (allListItemsAreSelected) {\n return unselectAllListItems(onChange);\n }\n return selectAllUnselectedItemsInListItems(onChange);\n }\n\n if (clickedItemIsInSelectedItems(clickedItem)) {\n return removeClickedItemFromSelectedItems(clickedItem, onChange);\n }\n addClickedItemToSelectedItems(clickedItem, onChange);\n };\n\n const removeClickedItemFromSelectedItems = (\n clickedItem: NormalizedDropdownItemType<ValueType>,\n onChange: (value: NormalizedDropdownItemType<ValueType>[]) => void,\n ) =>\n onChange(\n selectedItems.filter(\n selectedItem => selectedItem.value !== clickedItem.value,\n ),\n );\n\n const selectAllCheckboxState = () => {\n if (allListItemsAreSelected) return true;\n if (someListItemsAreSelected) return 'indeterminate';\n return false;\n };\n\n const selectAllUnselectedItemsInListItems = (\n onChange: (value: NormalizedDropdownItemType<ValueType>[]) => void,\n ) => {\n onChange([...selectedItems, ...unselectedItemsInListItems]);\n };\n\n const unselectAllListItems = (\n onChange: (value: NormalizedDropdownItemType<ValueType>[]) => void,\n ) => {\n const selectedItemsWithoutItemsInListItems = selectedItems.filter(\n selectedItem =>\n !listItemsWithoutSelectAll.some(\n listItem => listItem.value === selectedItem.value,\n ),\n );\n onChange(selectedItemsWithoutItemsInListItems);\n };\n\n return {\n addClickedItemToSelectedItems,\n allListItemsAreSelected,\n clickedItemIsInSelectedItems,\n clickedItemIsSelectAll,\n handleListItemClicked,\n hasSelectedItems,\n listItemsWithoutSelectAll,\n removeClickedItemFromSelectedItems,\n selectAllCheckboxState,\n selectAllUnselectedItemsInListItems,\n someListItemsAreSelected,\n unselectAllListItems,\n };\n};\n\n/* end multiselect utils */\n/* start a11y utils */\n\n// called when the state changes:\n// selectedItem, highlightedIndex, inputValue or isOpen.\nexport function getA11yStatusMessage<ValueType>(\n options: UseComboboxState<NormalizedDropdownItemType<ValueType>> & {\n selectAllItemIncluded?: boolean;\n resultCount: number;\n },\n): string {\n const { isOpen, selectAllItemIncluded = false, resultCount } = options;\n\n if (!isOpen) {\n return '';\n }\n\n const resultCountWithoutSelectAll = selectAllItemIncluded\n ? resultCount - 1\n : resultCount;\n\n if (resultCountWithoutSelectAll === 0) {\n return 'Ingen resultater';\n }\n\n return `${resultCountWithoutSelectAll} resultat${\n resultCountWithoutSelectAll === 1 ? '' : 'er'\n } tilgjengelig, naviger med pil opp eller ned, velg elementer med Enter.`;\n}\n/* end a11y utils */\n","/* eslint-disable no-warning-comments */\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\nimport {\n UseComboboxState,\n UseComboboxStateChangeOptions,\n useCombobox,\n} from 'downshift';\nimport classNames from 'classnames';\nimport {\n useFloating,\n autoUpdate,\n offset,\n flip,\n shift,\n size,\n} from '@floating-ui/react-dom';\n\nimport { BaseFormControl } from '@entur/form';\nimport { space } from '@entur/tokens';\nimport { mergeRefs } from '@entur/utils';\n\nimport { DropdownList } from './components/DropdownList';\nimport { DropdownFieldAppendix } from './components/FieldComponents';\n\nimport { DropdownProps } from './Dropdown';\nimport { useResolvedItems } from './useResolvedItems';\nimport {\n clamp,\n EMPTY_INPUT,\n getA11yStatusMessage,\n isFunctionWithQueryArgument,\n itemToString,\n lowerCaseFilterTest,\n noFilter,\n} from './utils';\n\nimport { NormalizedDropdownItemType } from './types';\n\nimport './Dropdown.scss';\n\nexport type SearchableDropdownProps<ValueType> = DropdownProps<ValueType> & {\n /** Filtreringen som brukes når man skriver inn tekst i inputfeltet\n * @default Regex-test som sjekker om item.label inneholder input-teksten\n */\n itemFilter?: (\n item: NormalizedDropdownItemType<ValueType>,\n inputValue: string | undefined,\n ) => boolean;\n /** Antall millisekunder man venter etter tekstinput før det gjøres kall for å oppdatere items\n * Denne er kun relevant hvis du sender inn en funksjon som items.\n */\n debounceTimeout?: number;\n /** Tekst som kommer opp når det ikke er noe treff på filtreringsøket\n * @default \"Ingen treff for søket\"\n */\n noMatchesText?: string;\n /** Tekst for skjermleser som beskriver statusen til et element som valgt\n * @default \", valgt element, trykk for å fjerne\"\n */\n};\n\nexport const SearchableDropdown = React.forwardRef(\n <ValueType extends NonNullable<any>>(\n {\n ariaLabelChosenSingular,\n ariaLabelCloseList = 'Lukk liste med valg',\n ariaLabelOpenList = 'Åpne liste med valg',\n ariaLabelSelectedItem,\n className,\n clearable = true,\n debounceTimeout,\n disabled = false,\n disableLabelAnimation = false,\n feedback,\n items: initialItems,\n itemFilter = isFunctionWithQueryArgument(initialItems)\n ? noFilter\n : lowerCaseFilterTest,\n label,\n labelClearSelectedItem = 'fjern valgt',\n labelTooltip,\n listStyle,\n loading,\n loadingText = 'Laster resultater …',\n noMatchesText = 'Ingen tilgjengelige valg …',\n onChange = () => undefined,\n placeholder,\n prepend,\n readOnly = false,\n selectedItem: value,\n selectOnBlur = false,\n selectOnTab = false,\n style,\n variant = 'info',\n ...rest\n }: SearchableDropdownProps<ValueType>,\n ref: React.ForwardedRef<HTMLInputElement>,\n ) => {\n const [showSelectedItem, setShowSelectedItem] = useState(value !== null);\n const [lastHighlightedIndex, setLastHighlightedIndex] = useState(0);\n const inputRef = useRef<HTMLInputElement>(null);\n\n const {\n items: normalizedItems,\n loading: resolvedItemsLoading,\n fetchItems,\n } = useResolvedItems(initialItems, debounceTimeout);\n\n const [listItems, setListItems] = useState(normalizedItems);\n\n const filterListItems = ({ inputValue }: { inputValue: string }) =>\n setListItems(\n normalizedItems.filter(item => itemFilter(item, inputValue)),\n );\n\n const updateListItems = ({ inputValue }: { inputValue?: string }) => {\n const shouldRefetchItems = isFunctionWithQueryArgument(initialItems);\n if (shouldRefetchItems) fetchItems(inputValue ?? EMPTY_INPUT);\n\n filterListItems({ inputValue: inputValue ?? EMPTY_INPUT });\n };\n\n const resetInputState = ({\n changes,\n }: {\n changes: Partial<UseComboboxState<NormalizedDropdownItemType<ValueType>>>;\n }) => {\n updateListItems({ inputValue: EMPTY_INPUT });\n return {\n ...changes,\n inputValue: EMPTY_INPUT,\n };\n };\n\n const inputHasFocus =\n typeof document !== 'undefined'\n ? inputRef?.current === document?.activeElement\n : false;\n\n useEffect(() => {\n filterListItems({ inputValue });\n }, [normalizedItems]); // eslint-disable-line react-hooks/exhaustive-deps\n\n useEffect(() => {\n // sync internal state on initial render\n if (selectedItem !== null && !inputHasFocus) {\n setShowSelectedItem(true);\n updateListItems({ inputValue: EMPTY_INPUT });\n setInputValue(EMPTY_INPUT);\n }\n }, []);\n\n const stateReducer = useCallback(\n (\n state: UseComboboxState<NormalizedDropdownItemType<ValueType>>,\n {\n type,\n changes,\n }: UseComboboxStateChangeOptions<NormalizedDropdownItemType<ValueType>>,\n ) => {\n if (\n changes.highlightedIndex !== undefined &&\n changes?.highlightedIndex >= 0\n ) {\n setLastHighlightedIndex(changes?.highlightedIndex);\n }\n\n switch (type) {\n // empty input to show selected item and reset dropdown list on item selection\n case useCombobox.stateChangeTypes.ItemClick:\n case useCombobox.stateChangeTypes.InputKeyDownEnter:\n case useCombobox.stateChangeTypes.InputBlur:\n return resetInputState({ changes });\n case useCombobox.stateChangeTypes.ControlledPropUpdatedSelectedItem:\n if (changes.selectedItem !== null && !inputHasFocus)\n setShowSelectedItem(true);\n return resetInputState({ changes });\n // remove leading whitespace, select element with spacebar on empty input\n case useCombobox.stateChangeTypes.InputChange: {\n const leadingWhitespaceTest = /^\\s+/g;\n const isSpacePressedOnEmptyInput = changes.inputValue === ' ';\n if (!isSpacePressedOnEmptyInput) setLastHighlightedIndex(0);\n\n if (changes.inputValue?.match(leadingWhitespaceTest)) {\n const sanitizedInputValue = changes.inputValue.replace(\n leadingWhitespaceTest,\n EMPTY_INPUT,\n );\n if (isSpacePressedOnEmptyInput) {\n if (!state.isOpen)\n return {\n ...changes,\n inputValue: sanitizedInputValue,\n isOpen: true,\n };\n\n if (changes.highlightedIndex !== undefined) {\n return {\n ...changes,\n inputValue: sanitizedInputValue,\n selectedItem: listItems[changes.highlightedIndex],\n };\n }\n }\n }\n\n return { ...changes, highlightedIndex: 0 };\n }\n default:\n return changes;\n }\n },\n [fetchItems, filterListItems, inputHasFocus, resetInputState],\n );\n\n const {\n isOpen,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getInputProps,\n highlightedIndex,\n getItemProps,\n selectedItem,\n inputValue,\n setInputValue,\n selectItem,\n reset,\n } = useCombobox({\n defaultHighlightedIndex: lastHighlightedIndex,\n items: listItems,\n itemToString,\n selectedItem: value,\n stateReducer,\n onInputValueChange(changes) {\n updateListItems({ inputValue: changes.inputValue });\n },\n onSelectedItemChange({ selectedItem: newSelectedItem }) {\n onChange(newSelectedItem);\n },\n // Accessibility\n getA11yStatusMessage: options =>\n getA11yStatusMessage({ ...options, resultCount: listItems.length }),\n });\n\n // calculations for floating-UI popover position\n const { refs, floatingStyles, update } = useFloating({\n open: isOpen,\n placement: 'bottom-start',\n middleware: [\n offset(space.extraSmall2),\n shift({ padding: space.extraSmall }),\n size({\n apply({ rects, elements, availableHeight }) {\n Object.assign(elements.floating.style, {\n width: `${rects.reference.width}px`,\n // Floating will flip when smaller than 10*16 px\n // and never exceed 20*16 px.\n maxHeight: `${clamp(10 * 16, availableHeight, 20 * 16)}px`,\n });\n },\n }),\n flip({ fallbackStrategy: 'initialPlacement' }),\n ],\n });\n\n // Update floating-ui position on scroll etc. Floating-ui's autoupdate is usually used inside\n // the useFloating hook but this requires the floating element to be conditionally rendered.\n // Downshift doesn't work correctly when conditionally rendered since props and refs aren't correctly\n // spread to the component. We therefor use this useEffect to update position. See https://floating-ui.com/docs/autoupdate#usage\n useEffect(() => {\n if (isOpen && refs.reference.current && refs.floating.current) {\n return autoUpdate(\n refs.reference.current,\n refs.floating.current,\n update,\n );\n }\n }, [isOpen, refs.reference, refs.floating, update]);\n\n const handleOnClear = () => {\n inputRef.current?.focus();\n reset();\n };\n\n return (\n <BaseFormControl\n className={classNames(\n 'eds-dropdown',\n 'eds-dropdown--searchable',\n className,\n { 'eds-dropdown--has-tooltip': labelTooltip !== undefined },\n )}\n disabled={disabled}\n disableLabelAnimation={disableLabelAnimation}\n feedback={feedback}\n isFilled={selectedItem !== null || inputValue !== EMPTY_INPUT}\n label={label}\n labelId={getLabelProps().id}\n labelProps={getLabelProps()}\n labelTooltip={labelTooltip}\n onClick={(e: React.MouseEvent) => {\n if (e.target === e.currentTarget) {\n getInputProps()?.onClick?.(e);\n }\n }}\n prepend={prepend}\n readOnly={readOnly}\n ref={refs.setReference}\n style={style}\n tabIndex={disabled || readOnly ? -1 : undefined}\n variant={variant}\n after={\n <DropdownList\n ariaLabelChosenSingular={ariaLabelChosenSingular}\n ariaLabelSelectedItem={ariaLabelSelectedItem}\n floatingStyles={floatingStyles}\n getItemProps={getItemProps}\n getMenuProps={getMenuProps}\n highlightedIndex={highlightedIndex}\n isOpen={isOpen}\n listItems={listItems}\n style={listStyle}\n setListRef={refs.setFloating}\n loading={loading ?? resolvedItemsLoading}\n loadingText={loadingText}\n noMatchesText={noMatchesText}\n selectedItems={selectedItem !== null ? [selectedItem] : []}\n readOnly={readOnly}\n />\n }\n {...rest}\n // Append is not supported as of now\n append={undefined}\n >\n <span\n className={classNames('eds-dropdown--searchable__selected-item', {\n 'eds-dropdown--searchable__selected-item--hidden':\n !showSelectedItem,\n })}\n onClick={event => {\n if (!disabled && !readOnly) {\n inputRef.current?.focus();\n getInputProps()?.onClick?.(event);\n }\n }}\n tabIndex={readOnly ? 0 : -1}\n >\n {showSelectedItem ? selectedItem?.label : ''}\n </span>\n <input\n className={classNames('eds-dropdown__input eds-form-control', {\n 'eds-dropdown__input--hidden': showSelectedItem,\n })}\n {...getInputProps({\n onKeyDown(e: React.KeyboardEvent) {\n if (isOpen && e.key === 'Tab') {\n const highlitedItem = listItems[highlightedIndex];\n // we don't want to clear selection with tab\n if (\n (selectOnTab || selectOnBlur) &&\n highlitedItem &&\n highlitedItem !== selectedItem\n ) {\n selectItem(highlitedItem);\n }\n }\n },\n onBlur() {\n if (selectedItem !== null) setShowSelectedItem(true);\n },\n onFocus() {\n if (!readOnly) {\n setShowSelectedItem(false);\n }\n },\n disabled: disabled,\n readOnly: readOnly,\n placeholder: selectedItem?.label ?? placeholder,\n tabIndex: disabled || readOnly ? -1 : undefined,\n ref: mergeRefs(inputRef, ref),\n })}\n />\n <DropdownFieldAppendix\n {...getToggleButtonProps({\n 'aria-busy': !(loading ?? resolvedItemsLoading)\n ? undefined\n : 'true',\n })}\n ariaLabelCloseList={ariaLabelCloseList}\n ariaLabelOpenList={ariaLabelOpenList}\n clearable={clearable}\n disabled={disabled || readOnly}\n onClear={handleOnClear}\n focusable={false}\n labelClearSelected={labelClearSelectedItem}\n isOpen={isOpen}\n itemIsSelected={selectedItem !== null}\n loadingText={loadingText}\n loading={loading ?? resolvedItemsLoading}\n />\n </BaseFormControl>\n );\n },\n);\n","import React, {\n Dispatch,\n SetStateAction,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport classNames from 'classnames';\nimport {\n useMultipleSelection,\n useCombobox,\n UseComboboxStateChangeOptions,\n UseComboboxState,\n} from 'downshift';\nimport {\n useFloating,\n autoUpdate,\n offset,\n flip,\n shift,\n size,\n} from '@floating-ui/react-dom';\n\nimport { VisuallyHidden } from '@entur/a11y';\nimport { BaseFormControl } from '@entur/form';\nimport { space } from '@entur/tokens';\nimport { mergeRefs, useRandomId } from '@entur/utils';\n\nimport {\n DropdownFieldAppendix,\n SelectedItemTag,\n} from './components/FieldComponents';\nimport { DropdownList } from './components/DropdownList';\n\nimport { useResolvedItems } from './useResolvedItems';\nimport { DropdownProps } from './Dropdown';\nimport {\n clamp,\n EMPTY_INPUT,\n getA11yStatusMessage,\n isFunctionWithQueryArgument,\n itemToKey,\n itemToString,\n lowerCaseFilterTest,\n noFilter,\n useMultiselectUtils,\n} from './utils';\n\nimport { NormalizedDropdownItemType } from './types';\n\nimport './Dropdown.scss';\n\nexport type MultiSelectProps<ValueType> = Omit<\n DropdownProps<ValueType>,\n 'selectedItem' | 'onChange'\n> & {\n /** Elementer som er valgt blant 'items'. Bruk tom liste for ingen valgte\n */\n selectedItems: NormalizedDropdownItemType<ValueType>[];\n /** Callback med alle valgte verdier.\n * Bruk denne til å oppdatere selectedItems-listen */\n onChange?: (\n selectedItems: NormalizedDropdownItemType<ValueType>[],\n ) => void | Dispatch<SetStateAction<NormalizedDropdownItemType<ValueType>[]>>;\n /** Filtreringen som brukes når man skriver inn tekst i inputfeltet\n * @default Regex-test som sjekker om item.label inneholder input-teksten\n */\n itemFilter?: (\n item: NormalizedDropdownItemType<ValueType>,\n inputValue: string | undefined,\n ) => boolean;\n /** Skjuler «Velg alle» fra listen med valg\n * @default false\n */\n hideSelectAll?: boolean;\n /** Antall millisekunder man venter før man kaller en potensiell items-funksjon\n * @default 250\n */\n debounceTimeout?: number;\n /** Maks antall individuelle valgt-element-tags i MultiSelect-en før de blir til en samle-tag\n * @default 10\n */\n maxChips?: number;\n /** Resetter input etter at et element er valgt i listen\n * @default false\n */\n clearInputOnSelect?: boolean;\n /** Teksten som vises for «Velg alle»-elementet i listen\n * @default \"Velg alle\"\n */\n labelSelectAll?: string;\n /** Teksten som vises for «Velg alle»-elementet i listen\n * @default \"Alle valgt\"\n */\n labelAllItemsSelected?: string;\n /** Skjermleser-tekst som for å fjerne alle valg\n * @default \"Fjern valgte\"\n */\n labelClearAllItems?: string;\n /** Tekst for skjemleser på knapper for å fjerne valgt element\n * @default \"trykk for å fjerne valg\"\n */\n ariaLabelRemoveSelected?: string;\n /** Tekst for skjemleser for å indikere at et element er valgt\n * @default \"valgte\"\n */\n ariaLabelChosenPlural?: string;\n /** Tekst for skjemleser for å hoppe til input-feltet\n * @default `${selectedItems.length} valgte elementer, trykk for å hoppe til tekstfeltet`\n */\n ariaLabelJumpToInput?: string;\n};\n\nexport const MultiSelect = React.forwardRef(\n <ValueType extends NonNullable<any>>(\n {\n className,\n clearable = true,\n clearInputOnSelect = false,\n debounceTimeout,\n disabled = false,\n disableLabelAnimation,\n feedback,\n hideSelectAll = false,\n items: initialItems,\n itemFilter = isFunctionWithQueryArgument(initialItems)\n ? noFilter\n : lowerCaseFilterTest,\n label,\n labelAllItemsSelected = 'Alle valgt',\n labelClearAllItems = 'Fjern valgte',\n labelSelectAll = 'Velg alle',\n labelTooltip,\n listStyle,\n loading,\n loadingText = 'Laster resultater …',\n maxChips = 10,\n noMatchesText,\n onChange = () => undefined,\n placeholder,\n readOnly = false,\n selectedItems = [],\n selectOnBlur = false,\n selectOnTab = false,\n style,\n variant = 'information',\n ariaLabelChosenSingular,\n ariaLabelChosenPlural = 'valgte',\n ariaLabelCloseList = 'Lukk liste med valg',\n ariaLabelJumpToInput = `${selectedItems.length} valgte elementer, trykk for å hoppe til tekstfeltet`,\n ariaLabelOpenList = 'Åpne liste med valg',\n ariaLabelRemoveSelected = 'trykk for å fjerne valg',\n ariaLabelSelectedItem,\n ...rest\n }: MultiSelectProps<ValueType>,\n ref: React.ForwardedRef<HTMLInputElement>,\n ) => {\n const [lastHighlightedIndex, setLastHighlightedIndex] = React.useState(0);\n const inputRef = useRef<HTMLInputElement>(null);\n\n useEffect(() => {\n //@ts-expect-error this is done to aid developers debug wrong prop usage\n if (rest.selectedItem !== undefined)\n console.warn(\n \"Incorrect 'selectedItem' prop found, did you mean to use 'selectedItems?\",\n );\n //@ts-expect-error selectedItem should not actually exist in rest\n }, [rest.selectedItem]);\n\n const {\n items: normalizedItems,\n loading: resolvedItemsLoading,\n fetchItems,\n } = useResolvedItems(initialItems, debounceTimeout);\n\n const isAllNonAsyncItemsSelected =\n typeof initialItems !== 'function' &&\n selectedItems.length === normalizedItems.length;\n\n // special 'item' used as Select All entry in the dropdown list\n const selectAll: NormalizedDropdownItemType<string> = {\n value: useRandomId('select-all'),\n label: labelSelectAll,\n };\n // special 'item' used as a replacement selected item tag for when\n // there are more selected element than maxChips\n const summarySelectedItems: NormalizedDropdownItemType<string> =\n React.useMemo(\n () => ({\n value: EMPTY_INPUT,\n label: isAllNonAsyncItemsSelected\n ? labelAllItemsSelected\n : selectedItems.length + ' ' + ariaLabelChosenPlural,\n }),\n [\n isAllNonAsyncItemsSelected,\n selectedItems,\n labelAllItemsSelected,\n ariaLabelChosenPlural,\n ],\n );\n\n const [listItems, setListItems] = useState([\n ...(!hideSelectAll ? [selectAll] : []),\n ...normalizedItems,\n ]);\n\n const filterListItems = ({ inputValue }: { inputValue: string }) =>\n setListItems([\n ...(!hideSelectAll ? [selectAll] : []),\n ...normalizedItems.filter(item => itemFilter(item, inputValue)),\n ]);\n\n const updateListItems = ({ inputValue }: { inputValue?: string }) => {\n const shouldRefetchItems = isFunctionWithQueryArgument(initialItems);\n if (shouldRefetchItems) fetchItems(inputValue ?? EMPTY_INPUT);\n\n filterListItems({ inputValue: inputValue ?? EMPTY_INPUT });\n };\n\n React.useEffect(() => {\n filterListItems({ inputValue });\n }, [normalizedItems]); // eslint-disable-line react-hooks/exhaustive-deps\n\n const {\n hasSelectedItems,\n handleListItemClicked,\n selectAllCheckboxState,\n clickedItemIsInSelectedItems,\n clickedItemIsSelectAll,\n } = useMultiselectUtils<ValueType>({\n listItems,\n selectAll,\n selectedItems,\n });\n\n const {\n getSelectedItemProps,\n getDropdownProps,\n reset,\n removeSelectedItem,\n setSelectedItems,\n } = useMultipleSelection({\n selectedItems,\n // @ts-expect-error prop missing from library types\n itemToString,\n itemToKey,\n onSelectedItemsChange({ selectedItems: newSelectedItems }) {\n onChange(newSelectedItems);\n },\n });\n\n const stateReducer = React.useCallback(\n (\n state: UseComboboxState<NormalizedDropdownItemType<ValueType | string>>,\n {\n changes,\n type,\n }: UseComboboxStateChangeOptions<\n NormalizedDropdownItemType<ValueType | string>\n >,\n ) => {\n if (\n changes.highlightedIndex !== undefined &&\n changes?.highlightedIndex >= 0\n ) {\n setLastHighlightedIndex(changes?.highlightedIndex);\n }\n\n switch (type) {\n // reset input value when leaving input field\n case useCombobox.stateChangeTypes.InputBlur:\n return {\n ...changes,\n inputValue: EMPTY_INPUT,\n };\n // keep menu open and edit input value on item selection\n case useCombobox.stateChangeTypes.InputKeyDownEnter:\n case useCombobox.stateChangeTypes.ItemClick: {\n return {\n ...changes,\n isOpen: true,\n inputValue: clearInputOnSelect\n ? EMPTY_INPUT\n : inputRef?.current?.value ?? EMPTY_INPUT,\n };\n }\n // edit input value when selected items is updated outside component\n case useCombobox.stateChangeTypes.ControlledPropUpdatedSelectedItem: {\n return {\n ...changes,\n inputValue: inputRef?.current?.value ?? EMPTY_INPUT,\n };\n }\n // remove leading whitespace, select item with spacebar if input is empty and filter list items\n case useCombobox.stateChangeTypes.InputChange: {\n const leadingWhitespaceTest = /^\\s+/g;\n const isSpacePressedOnEmptyInput = changes.inputValue === ' ';\n if (changes.inputValue?.match(leadingWhitespaceTest)) {\n const sanitizedInputValue = changes.inputValue.replace(\n leadingWhitespaceTest,\n EMPTY_INPUT,\n );\n if (isSpacePressedOnEmptyInput) {\n if (!state.isOpen)\n return {\n ...changes,\n inputValue: sanitizedInputValue,\n isOpen: true,\n };\n\n if (changes.highlightedIndex !== undefined) {\n return {\n ...changes,\n inputValue: sanitizedInputValue,\n selectedItem: listItems[changes.highlightedIndex],\n };\n }\n }\n }\n\n return changes;\n }\n default:\n return changes;\n }\n },\n [hideSelectAll, normalizedItems, filterListItems, initialItems],\n );\n\n const {\n getInputProps,\n getItemProps,\n getLabelProps,\n getMenuProps,\n getToggleButtonProps,\n highlightedIndex,\n setHighlightedIndex,\n inputValue,\n isOpen,\n setInputValue,\n } = useCombobox({\n defaultHighlightedIndex: lastHighlightedIndex, // after selection, highlight previously selected item.\n items: listItems,\n itemToString,\n selectedItem: null,\n stateReducer,\n onInputValueChange(changes) {\n updateListItems({ inputValue: changes.inputValue });\n // set highlighted item to first item after search\n setHighlightedIndex(hideSelectAll ? 0 : 1);\n setLastHighlightedIndex(hideSelectAll ? 0 : 1);\n },\n onSelectedItemChange({ selectedItem: clickedItem }) {\n // clickedItem means item chosen either via mouse or keyboard\n if (!clickedItem) return;\n\n handleListItemClicked({\n clickedItem,\n onChange: setSelectedItems,\n });\n },\n // Accessibility\n getA11yStatusMessage: options =>\n getA11yStatusMessage({\n ...options,\n selectAllItemIncluded: !hideSelectAll,\n resultCount: listItems.length,\n }),\n ...rest,\n });\n\n // calculations for floating-UI popover position\n const { refs, floatingStyles, update } = useFloating({\n open: isOpen,\n placement: 'bottom-start',\n middleware: [\n offset(space.extraSmall2),\n shift({ padding: space.extraSmall }),\n size({\n apply({ rects, elements, availableHeight }) {\n Object.assign(elements.floating.style, {\n width: `${rects.reference.width}px`,\n // Floating will flip when smaller than 10*16 px\n // and never exceed 20*16 px.\n maxHeight: `${clamp(10 * 16, availableHeight, 20 * 16)}px`,\n });\n },\n }),\n flip({ fallbackStrategy: 'initialPlacement' }),\n ],\n });\n\n // Update floating-ui position on scroll etc. Floating-ui's autoupdate is usually used inside\n // the useFloating hook but this requires the floating element to be conditionally rendered.\n // Downshift doesn't work correctly when conditionally rendered since props and refs aren't correctly\n // spread to the component. We therefor use this useEffect to update position. See https://floating-ui.com/docs/autoupdate#usage\n useEffect(() => {\n if (isOpen && refs.reference.current && refs.floating.current) {\n return autoUpdate(\n refs.reference.current,\n refs.floating.current,\n update,\n );\n }\n }, [isOpen, refs.reference, refs.floating, update]);\n\n const handleOnClear = () => {\n inputRef.current?.focus();\n reset();\n };\n\n return (\n <BaseFormControl\n className={classNames(\n 'eds-dropdown',\n 'eds-dropdown--multiselect',\n className,\n { 'eds-dropdown--has-tooltip': labelTooltip !== undefined },\n )}\n disabled={disabled}\n disableLabelAnimation={disableLabelAnimation}\n feedback={feedback}\n isFilled={hasSelectedItems || inputValue !== EMPTY_INPUT}\n label={label}\n labelId={getLabelProps().id}\n labelProps={getLabelProps()}\n labelTooltip={labelTooltip}\n onBlur={() => setInputValue('')}\n onClick={(e: React.MouseEvent) => {\n if (e.target === e.currentTarget) {\n getInputProps()?.onClick?.(e);\n }\n }}\n readOnly={readOnly}\n ref={refs.setReference}\n style={style}\n variant={variant}\n after={\n <DropdownList\n ariaLabelChosenSingular={ariaLabelChosenSingular}\n ariaLabelSelectedItem={ariaLabelSelectedItem}\n floatingStyles={floatingStyles}\n getItemProps={getItemProps}\n getMenuProps={getMenuProps}\n highlightedIndex={highlightedIndex}\n isOpen={isOpen}\n listItems={listItems}\n style={listStyle}\n setListRef={refs.setFloating}\n loading={loading ?? resolvedItemsLoading}\n loadingText={loadingText}\n noMatchesText={noMatchesText}\n selectAllCheckboxState={selectAllCheckboxState}\n selectAllItem={selectAll}\n selectedItems={selectedItems}\n readOnly={readOnly}\n />\n }\n {...rest}\n >\n <div\n className={classNames(\n 'eds-dropdown--multiselect__selected-items-and-input',\n {\n 'eds-dropdown--multiselect__selected-items-and-input--filled':\n hasSelectedItems,\n },\n )}\n >\n {selectedItems.length > 1 ? (\n <VisuallyHidden onClick={inputRef.current?.focus}>\n {ariaLabelJumpToInput}\n </VisuallyHidden>\n ) : null}\n {selectedItems.length <= maxChips ? (\n selectedItems.map((selectedItem, index) => (\n <SelectedItemTag\n ariaLabelChosen={ariaLabelChosenSingular}\n ariaLabelRemoveSelected={ariaLabelRemoveSelected}\n disabled={disabled}\n getSelectedItemProps={getSelectedItemProps}\n index={index}\n key={\n selectedItem?.label +\n (typeof selectedItem?.value === 'string'\n ? selectedItem.value\n : '')\n }\n readOnly={readOnly}\n removeSelectedItem={() => {\n removeSelectedItem(selectedItem);\n inputRef?.current?.focus();\n }}\n selectedItem={selectedItem}\n />\n ))\n ) : (\n <SelectedItemTag\n ariaLabelRemoveSelected={labelClearAllItems}\n ariaLabelChosen=\"\"\n disabled={disabled}\n readOnly={readOnly}\n removeSelectedItem={handleOnClear}\n selectedItem={summarySelectedItems}\n />\n )}\n <input\n {...getInputProps({\n onKeyDown: (e: React.KeyboardEvent) => {\n if (selectOnTab && isOpen && e.key === 'Tab') {\n const highlitedItem = listItems[highlightedIndex];\n if (!highlitedItem) return;\n\n // Skip tab selection for select all or if item already is selected\n const shouldSkipTabSelection =\n clickedItemIsSelectAll(highlitedItem) ||\n (!clickedItemIsSelectAll(highlitedItem) &&\n clickedItemIsInSelectedItems(highlitedItem));\n\n if (shouldSkipTabSelection) return;\n\n handleListItemClicked({\n clickedItem: highlitedItem,\n onChange: setSelectedItems,\n });\n }\n },\n ...getDropdownProps({\n preventKeyAction: isOpen,\n value: inputValue ?? EMPTY_INPUT,\n ref: mergeRefs(inputRef, ref),\n }),\n className: 'eds-dropdown__input eds-form-control',\n disabled: readOnly || disabled,\n placeholder: placeholder,\n tabIndex: disabled || readOnly ? -1 : undefined,\n })}\n />\n </div>\n <DropdownFieldAppendix\n {...getToggleButtonProps({\n 'aria-busy': !(loading ?? resolvedItemsLoading)\n ? undefined\n : 'true',\n })}\n ariaLabelCloseList={ariaLabelCloseList}\n ariaLabelOpenList={ariaLabelOpenList}\n clearable={clearable}\n disabled={disabled || readOnly}\n onClear={handleOnClear}\n focusable={false}\n labelClearSelected={labelClearAllItems}\n isOpen={isOpen}\n itemIsSelected={selectedItems.length > 0}\n loadingText={loadingText}\n loading={loading ?? resolvedItemsLoading}\n />\n </BaseFormControl>\n );\n },\n);\n","import React, { Dispatch, SetStateAction, useEffect } from 'react';\nimport classNames from 'classnames';\nimport { useSelect } from 'downshift';\nimport {\n autoUpdate,\n flip,\n offset,\n shift,\n size,\n useFloating,\n} from '@floating-ui/react-dom';\n\nimport { BaseFormControl } from '@entur/form';\nimport { space } from '@entur/tokens';\nimport { mergeRefs, VariantType } from '@entur/utils';\n\nimport { DropdownList } from './components/DropdownList';\nimport { DropdownFieldAppendix } from './components/FieldComponents';\nimport { useResolvedItems } from './useResolvedItems';\nimport { clamp, itemToString } from './utils';\n\nimport {\n NormalizedDropdownItemType,\n PotentiallyAsyncDropdownItemType,\n} from './types';\n\nimport './Dropdown.scss';\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n/** @deprecated use variant=\"negative\" instead */\nconst error = 'error';\n\nexport type DropdownProps<ValueType> = {\n /** Tilgjengelige valg i dropdown-en */\n items: PotentiallyAsyncDropdownItemType<ValueType>;\n /** Valgt verdi. Bruk null for ingen verdi. */\n selectedItem: NormalizedDropdownItemType<ValueType> | null;\n /** Callback ved valg som skal oppdatere selectedItem */\n onChange?: (\n selectedItem: NormalizedDropdownItemType<ValueType> | null,\n ) => void | Dispatch<\n SetStateAction<NormalizedDropdownItemType<ValueType> | null>\n >;\n /** Beskrivende tekst som forklarer feltet */\n label: string;\n /** Placeholder-tekst når ingenting er satt */\n placeholder?: string;\n /** Om man skal ha mulighet for å nullstille Dropdown-en\n * @default false\n */\n clearable?: boolean;\n /** Lar brukeren velge ved å \"tab-e\" seg ut av komponenten */\n selectOnTab?: boolean;\n /**\n * @deprecated\n * Bruk selectOnTab i stedet\n *\n * Lar brukeren velge ved å \"tab-e\" seg ut av komponenten */\n selectOnBlur?: boolean;\n /** Deaktiver dropdown-en */\n disabled?: boolean;\n /** Setter dropdown-en i read-only modus */\n readOnly?: boolean;\n /** Hvilken valideringsvariant som gjelder */\n variant?: VariantType | typeof error | typeof info;\n /** Valideringsmelding, brukes sammen med `variant` */\n feedback?: string;\n /** Tekst eller ikon som kommer først i dropdown-feltet */\n prepend?: React.ReactNode;\n /** */\n loading?: boolean;\n /** En tekst som beskriver hva som skjer når man venter på items\n * @default 'Laster inn …'\n */\n loadingText?: string;\n /** Tekst som kommer opp når det ikke er noe elementer å vise\n * @default \"Ingen tilgjengelige valg …\"\n */\n noMatchesText?: string;\n /** Om man skal ha mulighet for å nullstille Dropdown-en\n * @default \"fjern valgt\"\n */\n labelClearSelectedItem?: string;\n /** En tooltip som gir ekstra info om inputfeltet */\n labelTooltip?: React.ReactNode;\n /** Plasserer labelen statisk på toppen av inputfeltet\n * @default false\n */\n disableLabelAnimation?: boolean;\n /** Ekstra klassenavn */\n className?: string;\n /** Styling som sendes ned til Dropdown-lista */\n listStyle?: { [key: string]: any };\n /** Styling for Dropdown-en */\n style?: { [key: string]: any };\n /** Tekst for skjemleser for knapp som lukker listen med valg\n * @default \"Lukk liste med valg\"\n */\n ariaLabelCloseList?: string;\n /** Tekst for skjemleser for knapp som åpner listen med valg\n * @default \"Åpne liste med valg\"\n */\n ariaLabelOpenList?: string;\n /** Ord for at et element er valgt i entall\n * eks. 'Element 1, _valgt_'\n * @default 'valgt'\n */\n ariaLabelChosenSingular?: string;\n /** Tekst for skjermleser som beskriver statusen til et element som valgt\n * @default ', valgt element, trykk for å fjerne'\n */\n ariaLabelSelectedItem?: string;\n};\n\nexport const Dropdown = React.forwardRef(\n <ValueType extends NonNullable<any>>(\n {\n ariaLabelChosenSingular,\n ariaLabelCloseList = 'Lukk liste med valg',\n ariaLabelOpenList = 'Åpne liste med valg',\n ariaLabelSelectedItem,\n className,\n clearable = false,\n disabled = false,\n disableLabelAnimation,\n feedback,\n items: initialItems,\n label,\n labelClearSelectedItem = 'fjern valgt',\n labelTooltip,\n listStyle,\n loading,\n loadingText = 'Laster resultater …',\n noMatchesText = 'Ingen tilgjengelige valg …',\n onChange,\n placeholder,\n prepend,\n readOnly = false,\n selectedItem,\n selectOnBlur = false,\n selectOnTab = false,\n style,\n variant = 'information',\n ...rest\n }: DropdownProps<ValueType>,\n ref: React.ForwardedRef<HTMLDivElement>,\n ) => {\n const { items: normalizedItems, loading: resolvedItemsLoading } =\n useResolvedItems(initialItems);\n const isFilled = selectedItem !== null || placeholder !== undefined;\n const {\n isOpen,\n getItemProps,\n getLabelProps,\n getMenuProps,\n getToggleButtonProps,\n highlightedIndex,\n selectItem,\n reset,\n } = useSelect({\n items: normalizedItems,\n defaultHighlightedIndex: selectedItem ? undefined : 0,\n selectedItem,\n stateReducer(_, { changes, type }) {\n const toggleButtonIsFocused =\n typeof document !== 'undefined' &&\n document.activeElement === refs.reference.current;\n\n switch (type) {\n case useSelect.stateChangeTypes.ToggleButtonKeyDownArrowDown:\n case useSelect.stateChangeTypes.ToggleButtonKeyDownArrowUp:\n if (!toggleButtonIsFocused) return { ...changes, isOpen: false };\n }\n return changes;\n },\n onStateChange({ type, selectedItem: newSelectedItem }) {\n switch (type) {\n case useSelect.stateChangeTypes.ToggleButtonBlur:\n if (!selectOnBlur) return;\n }\n if (newSelectedItem === undefined) return;\n onChange?.(newSelectedItem ?? null);\n },\n itemToString,\n });\n\n // calculations for floating-UI popover position\n const { refs, floatingStyles, update } = useFloating<HTMLDivElement>({\n open: isOpen,\n placement: 'bottom-start',\n middleware: [\n offset(space.extraSmall2),\n shift({ padding: space.extraSmall }),\n size({\n apply({ rects, elements, availableHeight }) {\n Object.assign(elements.floating.style, {\n width: `${rects.reference.width}px`,\n // Floating will flip when smaller than 10*16 px\n // and never exceed 20*16 px.\n maxHeight: `${clamp(10 * 16, availableHeight, 20 * 16)}px`,\n });\n },\n }),\n flip({ fallbackStrategy: 'initialPlacement' }),\n ],\n });\n\n // Update floating-ui position on scroll etc. Floating-ui's autoupdate is usually used inside\n // the useFloating hook but this requires the floating element to be conditionally rendered.\n // Downshift doesn't work correctly when conditionally rendered since props and refs aren't correctly\n // spread to the component. We therefor use this useEffect to update position. See https://floating-ui.com/docs/autoupdate#usage\n useEffect(() => {\n if (isOpen && refs.reference.current && refs.floating.current) {\n return autoUpdate(\n refs.reference.current,\n refs.floating.current,\n update,\n );\n }\n }, [isOpen, refs.reference, refs.floating, update]);\n\n const handleOnClear = () => {\n reset();\n refs.reference.current?.focus();\n };\n\n return (\n <BaseFormControl\n className={classNames('eds-dropdown', className, {\n 'eds-dropdown--has-tooltip': labelTooltip !== undefined,\n })}\n disableLabelAnimation={disableLabelAnimation}\n feedback={feedback}\n isFilled={isFilled}\n labelProps={getLabelProps()}\n labelTooltip={labelTooltip}\n prepend={prepend}\n style={style}\n variant={variant}\n {...getToggleButtonProps({\n ref: mergeRefs(ref, refs.setReference),\n 'aria-disabled': disabled,\n 'aria-label': disabled ? 'Disabled dropdown' : '',\n disabled: disabled,\n readOnly: readOnly,\n label: label,\n labelId: getLabelProps()?.id,\n children: undefined,\n tabIndex: disabled || readOnly ? -1 : 0,\n onKeyDown(e) {\n if (isOpen && e.key === 'Tab') {\n const highlitedItem = normalizedItems[highlightedIndex];\n // we don't want to clear selection with tab\n if (\n (selectOnTab || selectOnBlur) &&\n highlitedItem &&\n highlitedItem !== selectedItem\n ) {\n selectItem(highlitedItem);\n }\n }\n },\n })}\n after={\n <DropdownList\n ariaLabelChosenSingular={ariaLabelChosenSingular}\n ariaLabelSelectedItem={ariaLabelSelectedItem}\n floatingStyles={floatingStyles}\n getItemProps={getItemProps}\n getMenuProps={getMenuProps}\n highlightedIndex={highlightedIndex}\n isOpen={isOpen}\n listItems={normalizedItems}\n noMatchesText={noMatchesText}\n style={listStyle}\n setListRef={refs.setFloating}\n loading={loading ?? resolvedItemsLoading}\n loadingText={loadingText}\n selectedItems={selectedItem !== null ? [selectedItem] : []}\n readOnly={readOnly}\n />\n }\n {...rest}\n // Append is not supported as of now\n append={undefined}\n >\n <div className=\"eds-dropdown__selected-item\">\n {selectedItem?.label ?? (\n <div\n className={classNames(\n 'eds-dropdown__selected-item__placeholder',\n {\n 'eds-dropdown__selected-item__placeholder--readonly':\n readOnly,\n },\n )}\n >\n {placeholder}\n </div>\n )}\n </div>\n <DropdownFieldAppendix\n aria-busy={!(loading ?? resolvedItemsLoading) ? undefined : 'true'}\n aria-expanded={isOpen}\n clearable={clearable}\n onClear={handleOnClear}\n disabled={disabled || readOnly}\n focusable={false}\n labelClearSelected={labelClearSelectedItem}\n isOpen={isOpen}\n itemIsSelected={selectedItem !== null}\n ariaLabelCloseList={ariaLabelCloseList}\n ariaLabelOpenList={ariaLabelOpenList}\n loading={false}\n loadingText={undefined}\n />\n </BaseFormControl>\n );\n },\n);\n","import React, { forwardRef } from 'react';\nimport { BaseFormControl } from '@entur/form';\nimport { DownArrowIcon } from '@entur/icons';\nimport { LoadingDots } from '@entur/loader';\nimport { useRandomId, VariantType } from '@entur/utils';\n\nimport { useResolvedItems } from './useResolvedItems';\nimport {\n NormalizedDropdownItemType,\n PotentiallyAsyncDropdownItemType,\n} from './types';\n\nimport './Dropdown.scss';\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n/** @deprecated use variant=\"negative\" instead */\nconst error = 'error';\n\nexport type NativeDropdownProps<ValueType> = {\n /** Ekstra klassenavn */\n className?: string;\n /**\n * For å deaktivere dropdow-nen\n * @default false\n **/\n disabled?: boolean;\n /** Valideringsmelding, brukes sammen med `variant` */\n feedback?: string;\n /** Alle valg for dropdown-en å ha */\n items: PotentiallyAsyncDropdownItemType<ValueType>;\n /** Beskrivende tekst som forklarer feltet */\n label: string;\n /** En callback for endringer av value\n * Obs: merk at parameter her denne ikke er samme som i en HTML select.\n * Bruk { target } hvis du trenger info om select-elementet som ble trykket på\n */\n onChange?: ({\n value,\n selectedItem,\n target,\n }: {\n value: string;\n selectedItem: NormalizedDropdownItemType<ValueType> | null;\n target: EventTarget & HTMLSelectElement;\n }) => void;\n /** Tekst eller ikon som kommer før dropdown-en */\n prepend?: React.ReactNode;\n /**\n * Setter dropdown-en i read-only modus\n * @default false\n **/\n readOnly?: boolean;\n /** Den valgte verdien som NormalizedDropdownItemType\n * (Brukes når komponenten er 'controlled')\n */\n selectedItem?: NormalizedDropdownItemType<ValueType> | null;\n /** Den valgte verdien som sting\n * (Brukes når komponenten er 'controlled)\n */\n value?: string;\n /** Hvilken valideringsvariant som gjelder*/\n variant?: VariantType | typeof error | typeof info;\n /** Plasserer labelen statisk på toppen av inputfeltet\n * @default false\n */\n disableLabelAnimation?: boolean;\n [key: string]: any;\n};\n\nexport const NativeDropdown = forwardRef(\n <ValueType extends string | number>(\n {\n className,\n disabled = false,\n disableLabelAnimation,\n feedback,\n items,\n label,\n loadingText,\n onChange,\n prepend,\n readOnly = false,\n selectedItem,\n style,\n value,\n variant,\n ...rest\n }: NativeDropdownProps<ValueType>,\n ref: React.ForwardedRef<HTMLSelectElement>,\n ) => {\n const { items: normalizedItems, loading } =\n useResolvedItems<ValueType>(items);\n const nativeDropdownId = useRandomId('eds-dropdown-native');\n\n return (\n <BaseFormControl\n disabled={disabled}\n readOnly={readOnly}\n prepend={prepend}\n append={\n <FieldAppend\n hidden={disabled || readOnly}\n loading={loading}\n loadingText={loadingText}\n />\n }\n className={className}\n style={style}\n label={label}\n labelId={nativeDropdownId}\n variant={variant}\n feedback={feedback}\n disableLabelAnimation={disableLabelAnimation}\n isFilled={true}\n >\n <select\n aria-invalid={variant === 'negative' || variant === error}\n aria-labelledby={nativeDropdownId}\n aria-busy={loading}\n className=\"eds-form-control eds-dropdown--native\"\n disabled={disabled || readOnly}\n onChange={event => {\n onChange?.({\n value: event.target.value,\n selectedItem:\n normalizedItems.find(\n item => item.value === event.target.value,\n ) ?? null,\n target: event.target,\n });\n }}\n value={value ?? selectedItem?.value ?? undefined}\n ref={ref}\n {...rest}\n >\n {normalizedItems.map(item => (\n <option key={item.value} value={item.value}>\n {item.label}\n </option>\n ))}\n </select>\n </BaseFormControl>\n );\n },\n);\n\nconst FieldAppend = ({\n loading,\n loadingText,\n hidden,\n}: {\n loading: boolean;\n loadingText?: string;\n hidden: boolean;\n}) => {\n if (loading) {\n return (\n <div className=\"eds-dropdown-native__loading-dots\">\n <LoadingDots aria-label={loadingText} />\n </div>\n );\n }\n if (hidden) {\n return <></>;\n }\n return <DownArrowIcon inline />;\n};\n","import { warnAboutMissingStyles } from '@entur/utils';\nimport './index.scss';\n\nwarnAboutMissingStyles('dropdown', 'form', 'a11y', 'chip');\n\nexport type { NormalizedDropdownItemType, DropdownItemType } from './types';\n\nexport * from './SearchableDropdown';\nexport * from './MultiSelect';\nexport * from './Dropdown';\nexport * from './NativeDropdown';\nexport * from './types';\n"],"names":["DropdownList","_ref","_listItems$","_ref$ariaLabelChosenS","ariaLabelChosenSingular","_ref$ariaLabelSelecte","ariaLabelSelectedItem","getItemProps","getMenuProps","isOpen","highlightedIndex","listItems","floatingStyles","setListRef","_ref$loading","loading","_ref$loadingText","loadingText","_ref$noMatchesText","noMatchesText","selectAllCheckboxState","selectAllItem","selectedItems","_ref$readOnly","readOnly","rest","_objectWithoutPropertiesLoose","_excluded","isMultiselect","undefined","isNoMatches","length","value","isItemSelected","item","some","selectedItem","label","ariaValuesSelectAll","selected","selectAllListItemContent","React","createElement","Fragment","Checkbox","checked","className","tabIndex","onChange","isReactComponent","icon","$$typeof","listItemContent","VisuallyHidden","Array","isArray","icons","filter","map","Icon","index","_ref2","_Icon$displayName","key","displayName","name","inline","_extends","ref","style","display","_item$itemKey","_item$label","_item$value","_item$icons","itemKey","_ref3","_icon$displayName","join","itemIsSelectAll","classNames","SelectedItemTag","_getSelectedItemProps","ariaLabelRemoveSelected","_ref$ariaLabelChosen","ariaLabelChosen","disabled","getSelectedItemProps","removeSelectedItem","selectedItemProps","TagChip","size","onClose","e","stopPropagation","onClick","closeButtonAriaLabel","DropdownFieldAppendix","forwardRef","ariaLabelCloseList","ariaLabelOpenList","_ref3$clearable","clearable","labelClearSelected","_ref3$focusable","focusable","_ref3$loading","onClear","itemIsSelected","_excluded2","getToggleAriaLabel","ClearableButton","labelClearSelectedItems","IconButton","type","DownArrowIcon","LoadingDots","_ref4","_ref4$labelClearSelec","_ref4$focusable","Tooltip","placement","content","onKeyDown","preventDefault","CloseSmallIcon","useNormalizedItems","items","useMemo","useResolvedItems","itemsOrItemsResolver","debounceTimeout","itemsIsAFunction","_React$useState","useState","setItems","_React$useState2","setLoading","abortControllerRef","useRef","AbortController","itemsResolver","Promise","resolve","updateItems","_asyncToGenerator","_regeneratorRuntime","mark","_callee","inputValue","_abortControllerRef$c","abortController","_abortControllerRef$c2","resolvedItems","wrap","_callee$","_context","prev","next","current","abort","sent","signal","aborted","console","warn","abrupt","t0","stop","_x","apply","arguments","debouncedFetchItems","useDebounce","normalizedItems","useEffect","_abortControllerRef$c3","fetchItems","EMPTY_INPUT","lowerCaseFilterTest","input","sanitizeEscapeCharacters","replace","inputRegex","RegExp","test","noFilter","itemToString","itemToKey","isFunctionWithQueryArgument","object","clamp","val","min","max","Math","useMultiselectUtils","selectAll","hasSelectedItems","listItemsWithoutSelectAll","unselectedItemsInListItems","listItem","allListItemsAreSelected","someListItemsAreSelected","addClickedItemToSelectedItems","clickedItem","concat","clickedItemIsInSelectedItems","clickedItemIsSelectAll","handleListItemClicked","unselectAllListItems","selectAllUnselectedItemsInListItems","removeClickedItemFromSelectedItems","selectedItemsWithoutItemsInListItems","getA11yStatusMessage","options","_options$selectAllIte","selectAllItemIncluded","resultCount","resultCountWithoutSelectAll","SearchableDropdown","_document","_selectedItem$label","_ref$ariaLabelCloseLi","_ref$ariaLabelOpenLis","_ref$clearable","_ref$disabled","_ref$disableLabelAnim","disableLabelAnimation","feedback","initialItems","_ref$itemFilter","itemFilter","_ref$labelClearSelect","labelClearSelectedItem","labelTooltip","listStyle","_ref$onChange","placeholder","prepend","_ref$selectOnBlur","selectOnBlur","_ref$selectOnTab","selectOnTab","_ref$variant","variant","_useState","showSelectedItem","setShowSelectedItem","_useState2","lastHighlightedIndex","setLastHighlightedIndex","inputRef","_useResolvedItems","resolvedItemsLoading","_useState3","setListItems","filterListItems","updateListItems","shouldRefetchItems","resetInputState","changes","inputHasFocus","document","activeElement","setInputValue","stateReducer","useCallback","state","_ref5","useCombobox","stateChangeTypes","ItemClick","InputKeyDownEnter","InputBlur","ControlledPropUpdatedSelectedItem","InputChange","_changes$inputValue","leadingWhitespaceTest","isSpacePressedOnEmptyInput","match","sanitizedInputValue","_useCombobox","defaultHighlightedIndex","onInputValueChange","onSelectedItemChange","_ref6","newSelectedItem","getToggleButtonProps","getLabelProps","getInputProps","selectItem","reset","_useFloating","useFloating","open","middleware","offset","space","extraSmall2","shift","padding","extraSmall","_ref7","rects","elements","availableHeight","Object","assign","floating","width","reference","maxHeight","flip","fallbackStrategy","refs","update","autoUpdate","handleOnClear","_inputRef$current","focus","BaseFormControl","isFilled","labelId","id","labelProps","target","currentTarget","_getInputProps","setReference","after","setFloating","append","event","_inputRef$current2","_getInputProps2","highlitedItem","onBlur","onFocus","mergeRefs","MultiSelect","_inputRef$current4","_ref$clearInputOnSele","clearInputOnSelect","_ref$hideSelectAll","hideSelectAll","_ref$labelAllItemsSel","labelAllItemsSelected","_ref$labelClearAllIte","labelClearAllItems","_ref$labelSelectAll","labelSelectAll","_ref$maxChips","maxChips","_ref$selectedItems","_ref$ariaLabelChosenP","ariaLabelChosenPlural","_ref$ariaLabelJumpToI","ariaLabelJumpToInput","_ref$ariaLabelRemoveS","isAllNonAsyncItemsSelected","useRandomId","summarySelectedItems","_useMultiselectUtils","_useMultipleSelection","useMultipleSelection","onSelectedItemsChange","newSelectedItems","getDropdownProps","setSelectedItems","_inputRef$current$val","_inputRef$current$val2","setHighlightedIndex","_inputRef$current3","_inputRef$current5","shouldSkipTabSelection","preventKeyAction","Dropdown","_getLabelProps","_useSelect","useSelect","_","toggleButtonIsFocused","ToggleButtonKeyDownArrowDown","ToggleButtonKeyDownArrowUp","onStateChange","ToggleButtonBlur","_refs$reference$curre","children","error","NativeDropdown","nativeDropdownId","FieldAppend","hidden","_normalizedItems$find","find","warnAboutMissingStyles"],"mappings":"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"}