{"version":3,"file":"3576.9699ae8e.js","mappings":"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","sources":["webpack://@finviz/website/../node_modules/date-fns/esm/addDays/index.js","webpack://@finviz/website/../node_modules/date-fns/esm/addMonths/index.js","webpack://@finviz/website/../node_modules/date-fns/esm/differenceInCalendarDays/index.js","webpack://@finviz/website/../node_modules/date-fns/esm/endOfDay/index.js","webpack://@finviz/website/../node_modules/date-fns/esm/compareAsc/index.js","webpack://@finviz/website/../node_modules/date-fns/esm/differenceInYears/index.js","webpack://@finviz/website/../node_modules/date-fns/esm/differenceInCalendarYears/index.js","webpack://@finviz/website/../node_modules/date-fns/esm/isLastDayOfMonth/index.js","webpack://@finviz/website/../node_modules/date-fns/esm/endOfMonth/index.js","webpack://@finviz/website/../node_modules/date-fns/esm/differenceInMonths/index.js","webpack://@finviz/website/../node_modules/date-fns/esm/differenceInCalendarMonths/index.js","webpack://@finviz/website/../node_modules/date-fns/esm/differenceInDays/index.js","webpack://@finviz/website/../node_modules/date-fns/esm/constants/index.js","webpack://@finviz/website/../node_modules/date-fns/esm/differenceInMilliseconds/index.js","webpack://@finviz/website/../node_modules/date-fns/esm/_lib/roundingMethods/index.js","webpack://@finviz/website/../node_modules/date-fns/esm/intervalToDuration/index.js","webpack://@finviz/website/../node_modules/date-fns/esm/differenceInHours/index.js","webpack://@finviz/website/../node_modules/date-fns/esm/differenceInMinutes/index.js","webpack://@finviz/website/../node_modules/date-fns/esm/differenceInSeconds/index.js","webpack://@finviz/website/../node_modules/date-fns/esm/startOfDay/index.js","webpack://@finviz/website/../node_modules/date-fns/esm/subMonths/index.js","webpack://@finviz/website/../node_modules/date-fns/esm/sub/index.js","webpack://@finviz/website/../node_modules/date-fns/esm/subDays/index.js","webpack://@finviz/website/../node_modules/events/events.js","webpack://@finviz/website/../node_modules/reakit/es/Menu/MenuBar.js","webpack://@finviz/website/../node_modules/reakit/es/Menu/Menu.js","webpack://@finviz/website/../node_modules/reakit/es/Menu/MenuButton.js","webpack://@finviz/website/../node_modules/reakit/es/Menu/MenuItem.js","webpack://@finviz/website/../node_modules/reakit/es/Separator/Separator.js","webpack://@finviz/website/../node_modules/reakit/es/Menu/MenuSeparator.js","webpack://@finviz/website/../node_modules/reakit/es/Menu/MenuState.js","webpack://@finviz/website/../node_modules/reakit/es/Menu/MenuBarState.js","webpack://@finviz/website/../node_modules/reakit/es/Button/Button.js","webpack://@finviz/website/../node_modules/reakit/es/Disclosure/Disclosure.js","webpack://@finviz/website/../node_modules/reakit/es/Dialog/DialogDisclosure.js","webpack://@finviz/website/../node_modules/reakit/es/Popover/PopoverDisclosure.js","webpack://@finviz/website/../node_modules/reakit/es/__keys-f74df4e0.js","webpack://@finviz/website/../node_modules/reakit/es/findVisibleSubmenu-1553e354.js","webpack://@finviz/website/../node_modules/core-js/internals/array-from.js","webpack://@finviz/website/../node_modules/core-js/internals/array-set-length.js","webpack://@finviz/website/../node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack://@finviz/website/../node_modules/core-js/internals/create-property.js","webpack://@finviz/website/../node_modules/core-js/internals/does-not-exceed-safe-integer.js","webpack://@finviz/website/../node_modules/core-js/internals/iterator-close.js","webpack://@finviz/website/../node_modules/core-js/internals/object-assign.js","webpack://@finviz/website/../node_modules/core-js/internals/string-punycode-to-ascii.js","webpack://@finviz/website/../node_modules/core-js/modules/es.array.push.js","webpack://@finviz/website/../node_modules/core-js/modules/es.array.unscopables.flat-map.js","webpack://@finviz/website/../node_modules/core-js/modules/es.string.iterator.js","webpack://@finviz/website/../node_modules/core-js/modules/web.url.constructor.js","webpack://@finviz/website/../node_modules/core-js/modules/web.url.js","webpack://@finviz/website/../node_modules/@ariakit/core/esm/__chunks/2H5K47H4.js","webpack://@finviz/website/../node_modules/@ariakit/core/esm/__chunks/7PRQYBBV.js","webpack://@finviz/website/../node_modules/@ariakit/core/esm/__chunks/MFZZDIHG.js","webpack://@finviz/website/../node_modules/@ariakit/core/esm/__chunks/URUD7X4C.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/3D6OCOHF.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/3IEDWLST.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/3OMHZVJD.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/3X3MDQGM.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/Y6GYTNQ2.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/7GBW5FLS.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/7YKLTEOQ.js","webpack://@finviz/website/../node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","webpack://@finviz/website/../node_modules/@floating-ui/core/dist/floating-ui.core.mjs","webpack://@finviz/website/../node_modules/@floating-ui/utils/dom/dist/floating-ui.utils.dom.mjs","webpack://@finviz/website/../node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/BYD75WXE.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/C6OBNQ4F.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/DMSZFK7W.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/FTNKYK65.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/MADQZZRL.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/NLT7LY5Y.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/TE637IA7.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/TKSBJDO3.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/TWDHCE7Y.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/UNDSQXBK.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/WL6TTPTB.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/XWCFCD3Q.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/Y3BYYHRY.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/combobox/combobox-item.js","webpack://@finviz/website/../node_modules/@ariakit/core/esm/combobox/combobox-store.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/URCSOWGR.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/combobox/combobox-provider.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/combobox/combobox.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/TH2YTBRW.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/ED7XMMMU.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/select/select-group-label.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/CWDOOAGR.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/ZO6PSJHJ.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/select/select-group.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/select/select-item.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/select/select-label.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/PDRDZB4I.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/select/select-popover.js","webpack://@finviz/website/../node_modules/@ariakit/core/esm/select/select-store.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/SVBVYDIK.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/select/select-provider.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/UZMGSJE4.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/UPJMZO6L.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/select/select-renderer.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/AFNONYRE.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/5SF76VVA.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/Z72LDQLY.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/HA4U57LH.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/6PC3IJNK.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/select/select.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/FWINX72I.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/tooltip/tooltip-anchor.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/QFL5V2DO.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/UFM3D5TN.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/tooltip/tooltip-arrow.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/E5E7G32I.js","webpack://@finviz/website/../node_modules/@ariakit/core/esm/tooltip/tooltip-store.js","webpack://@finviz/website/../node_modules/@ariakit/core/esm/__chunks/BRS7GKWU.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/WKII7I2E.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/tooltip/tooltip-provider.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/YMV43K4F.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/6YZEXKNV.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/tooltip/tooltip.js"],"sourcesContent":["import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addDays\n * @category Day Helpers\n * @summary Add the specified number of days to the given date.\n *\n * @description\n * Add the specified number of days to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} - the new date with the days added\n * @throws {TypeError} - 2 arguments required\n *\n * @example\n * // Add 10 days to 1 September 2014:\n * const result = addDays(new Date(2014, 8, 1), 10)\n * //=> Thu Sep 11 2014 00:00:00\n */\n\nexport default function addDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n\n if (isNaN(amount)) {\n return new Date(NaN);\n }\n\n if (!amount) {\n // If 0 days, no-op to avoid changing times in the hour before end of DST\n return date;\n }\n\n date.setDate(date.getDate() + amount);\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMonths\n * @category Month Helpers\n * @summary Add the specified number of months to the given date.\n *\n * @description\n * Add the specified number of months to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of months to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the months added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 5 months to 1 September 2014:\n * const result = addMonths(new Date(2014, 8, 1), 5)\n * //=> Sun Feb 01 2015 00:00:00\n */\n\nexport default function addMonths(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n\n if (isNaN(amount)) {\n return new Date(NaN);\n }\n\n if (!amount) {\n // If 0 months, no-op to avoid changing times in the hour before end of DST\n return date;\n }\n\n var dayOfMonth = date.getDate(); // The JS Date object supports date math by accepting out-of-bounds values for\n // month, day, etc. For example, new Date(2020, 0, 0) returns 31 Dec 2019 and\n // new Date(2020, 13, 1) returns 1 Feb 2021. This is *almost* the behavior we\n // want except that dates will wrap around the end of a month, meaning that\n // new Date(2020, 13, 31) will return 3 Mar 2021 not 28 Feb 2021 as desired. So\n // we'll default to the end of the desired month by adding 1 to the desired\n // month and using a date of 0 to back up one day to the end of the desired\n // month.\n\n var endOfDesiredMonth = new Date(date.getTime());\n endOfDesiredMonth.setMonth(date.getMonth() + amount + 1, 0);\n var daysInMonth = endOfDesiredMonth.getDate();\n\n if (dayOfMonth >= daysInMonth) {\n // If we're already at the end of the month, then this is the correct date\n // and we're done.\n return endOfDesiredMonth;\n } else {\n // Otherwise, we now know that setting the original day-of-month value won't\n // cause an overflow, so set the desired day-of-month. Note that we can't\n // just set the date of `endOfDesiredMonth` because that object may have had\n // its time changed in the unusual case where where a DST transition was on\n // the last day of the month and its local time was in the hour skipped or\n // repeated next to a DST transition. So we use `date` instead which is\n // guaranteed to still have the original time.\n date.setFullYear(endOfDesiredMonth.getFullYear(), endOfDesiredMonth.getMonth(), dayOfMonth);\n return date;\n }\n}","import getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport startOfDay from \"../startOfDay/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000;\n/**\n * @name differenceInCalendarDays\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates. This means that the times are removed\n * from the dates and then the difference in days is calculated.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar days\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInCalendarDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n * // How many calendar days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInCalendarDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\n\nexport default function differenceInCalendarDays(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var startOfDayLeft = startOfDay(dirtyDateLeft);\n var startOfDayRight = startOfDay(dirtyDateRight);\n var timestampLeft = startOfDayLeft.getTime() - getTimezoneOffsetInMilliseconds(startOfDayLeft);\n var timestampRight = startOfDayRight.getTime() - getTimezoneOffsetInMilliseconds(startOfDayRight); // Round the number of days to the nearest integer\n // because the number of milliseconds in a day is not constant\n // (e.g. it's different in the day of the daylight saving time clock shift)\n\n return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_DAY);\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfDay\n * @category Day Helpers\n * @summary Return the end of a day for the given date.\n *\n * @description\n * Return the end of a day for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a day for 2 September 2014 11:55:00:\n * const result = endOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 23:59:59.999\n */\n\nexport default function endOfDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name compareAsc\n * @category Common Helpers\n * @summary Compare the two dates and return -1, 0 or 1.\n *\n * @description\n * Compare the two dates and return 1 if the first date is after the second,\n * -1 if the first date is before the second or 0 if dates are equal.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to compare\n * @param {Date|Number} dateRight - the second date to compare\n * @returns {Number} the result of the comparison\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Compare 11 February 1987 and 10 July 1989:\n * const result = compareAsc(new Date(1987, 1, 11), new Date(1989, 6, 10))\n * //=> -1\n *\n * @example\n * // Sort the array of dates:\n * const result = [\n * new Date(1995, 6, 2),\n * new Date(1987, 1, 11),\n * new Date(1989, 6, 10)\n * ].sort(compareAsc)\n * //=> [\n * // Wed Feb 11 1987 00:00:00,\n * // Mon Jul 10 1989 00:00:00,\n * // Sun Jul 02 1995 00:00:00\n * // ]\n */\n\nexport default function compareAsc(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var diff = dateLeft.getTime() - dateRight.getTime();\n\n if (diff < 0) {\n return -1;\n } else if (diff > 0) {\n return 1; // Return 0 if diff is 0; return NaN if diff is NaN\n } else {\n return diff;\n }\n}","import toDate from \"../toDate/index.js\";\nimport differenceInCalendarYears from \"../differenceInCalendarYears/index.js\";\nimport compareAsc from \"../compareAsc/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name differenceInYears\n * @category Year Helpers\n * @summary Get the number of full years between the given dates.\n *\n * @description\n * Get the number of full years between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of full years\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many full years are between 31 December 2013 and 11 February 2015?\n * const result = differenceInYears(new Date(2015, 1, 11), new Date(2013, 11, 31))\n * //=> 1\n */\n\nexport default function differenceInYears(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var sign = compareAsc(dateLeft, dateRight);\n var difference = Math.abs(differenceInCalendarYears(dateLeft, dateRight)); // Set both dates to a valid leap year for accurate comparison when dealing\n // with leap days\n\n dateLeft.setFullYear(1584);\n dateRight.setFullYear(1584); // Math.abs(diff in full years - diff in calendar years) === 1 if last calendar year is not full\n // If so, result must be decreased by 1 in absolute value\n\n var isLastYearNotFull = compareAsc(dateLeft, dateRight) === -sign;\n var result = sign * (difference - Number(isLastYearNotFull)); // Prevent negative zero\n\n return result === 0 ? 0 : result;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name differenceInCalendarYears\n * @category Year Helpers\n * @summary Get the number of calendar years between the given dates.\n *\n * @description\n * Get the number of calendar years between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar years\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar years are between 31 December 2013 and 11 February 2015?\n * const result = differenceInCalendarYears(\n * new Date(2015, 1, 11),\n * new Date(2013, 11, 31)\n * )\n * //=> 2\n */\n\nexport default function differenceInCalendarYears(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n return dateLeft.getFullYear() - dateRight.getFullYear();\n}","import toDate from \"../toDate/index.js\";\nimport endOfDay from \"../endOfDay/index.js\";\nimport endOfMonth from \"../endOfMonth/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isLastDayOfMonth\n * @category Month Helpers\n * @summary Is the given date the last day of a month?\n *\n * @description\n * Is the given date the last day of a month?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date is the last day of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Is 28 February 2014 the last day of a month?\n * var result = isLastDayOfMonth(new Date(2014, 1, 28))\n * //=> true\n */\n\nexport default function isLastDayOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n return endOfDay(date).getTime() === endOfMonth(date).getTime();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfMonth\n * @category Month Helpers\n * @summary Return the end of a month for the given date.\n *\n * @description\n * Return the end of a month for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a month for 2 September 2014 11:55:00:\n * const result = endOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 23:59:59.999\n */\n\nexport default function endOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var month = date.getMonth();\n date.setFullYear(date.getFullYear(), month + 1, 0);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport differenceInCalendarMonths from \"../differenceInCalendarMonths/index.js\";\nimport compareAsc from \"../compareAsc/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport isLastDayOfMonth from \"../isLastDayOfMonth/index.js\";\n/**\n * @name differenceInMonths\n * @category Month Helpers\n * @summary Get the number of full months between the given dates.\n *\n * @description\n * Get the number of full months between the given dates using trunc as a default rounding method.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of full months\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many full months are between 31 January 2014 and 1 September 2014?\n * const result = differenceInMonths(new Date(2014, 8, 1), new Date(2014, 0, 31))\n * //=> 7\n */\n\nexport default function differenceInMonths(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var sign = compareAsc(dateLeft, dateRight);\n var difference = Math.abs(differenceInCalendarMonths(dateLeft, dateRight));\n var result; // Check for the difference of less than month\n\n if (difference < 1) {\n result = 0;\n } else {\n if (dateLeft.getMonth() === 1 && dateLeft.getDate() > 27) {\n // This will check if the date is end of Feb and assign a higher end of month date\n // to compare it with Jan\n dateLeft.setDate(30);\n }\n\n dateLeft.setMonth(dateLeft.getMonth() - sign * difference); // Math.abs(diff in full months - diff in calendar months) === 1 if last calendar month is not full\n // If so, result must be decreased by 1 in absolute value\n\n var isLastMonthNotFull = compareAsc(dateLeft, dateRight) === -sign; // Check for cases of one full calendar month\n\n if (isLastDayOfMonth(toDate(dirtyDateLeft)) && difference === 1 && compareAsc(dirtyDateLeft, dateRight) === 1) {\n isLastMonthNotFull = false;\n }\n\n result = sign * (difference - Number(isLastMonthNotFull));\n } // Prevent negative zero\n\n\n return result === 0 ? 0 : result;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name differenceInCalendarMonths\n * @category Month Helpers\n * @summary Get the number of calendar months between the given dates.\n *\n * @description\n * Get the number of calendar months between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar months\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar months are between 31 January 2014 and 1 September 2014?\n * var result = differenceInCalendarMonths(\n * new Date(2014, 8, 1),\n * new Date(2014, 0, 31)\n * )\n * //=> 8\n */\n\nexport default function differenceInCalendarMonths(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var yearDiff = dateLeft.getFullYear() - dateRight.getFullYear();\n var monthDiff = dateLeft.getMonth() - dateRight.getMonth();\n return yearDiff * 12 + monthDiff;\n}","import toDate from \"../toDate/index.js\";\nimport differenceInCalendarDays from \"../differenceInCalendarDays/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\"; // Like `compareAsc` but uses local time not UTC, which is needed\n// for accurate equality comparisons of UTC timestamps that end up\n// having the same representation in local time, e.g. one hour before\n// DST ends vs. the instant that DST ends.\n\nfunction compareLocalAsc(dateLeft, dateRight) {\n var diff = dateLeft.getFullYear() - dateRight.getFullYear() || dateLeft.getMonth() - dateRight.getMonth() || dateLeft.getDate() - dateRight.getDate() || dateLeft.getHours() - dateRight.getHours() || dateLeft.getMinutes() - dateRight.getMinutes() || dateLeft.getSeconds() - dateRight.getSeconds() || dateLeft.getMilliseconds() - dateRight.getMilliseconds();\n\n if (diff < 0) {\n return -1;\n } else if (diff > 0) {\n return 1; // Return 0 if diff is 0; return NaN if diff is NaN\n } else {\n return diff;\n }\n}\n/**\n * @name differenceInDays\n * @category Day Helpers\n * @summary Get the number of full days between the given dates.\n *\n * @description\n * Get the number of full day periods between two dates. Fractional days are\n * truncated towards zero.\n *\n * One \"full day\" is the distance between a local time in one day to the same\n * local time on the next or previous day. A full day can sometimes be less than\n * or more than 24 hours if a daylight savings change happens between two dates.\n *\n * To ignore DST and only measure exact 24-hour periods, use this instead:\n * `Math.floor(differenceInHours(dateLeft, dateRight)/24)|0`.\n *\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of full days according to the local timezone\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many full days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 365\n * // How many full days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 0\n * // How many full days are between\n * // 1 March 2020 0:00 and 1 June 2020 0:00 ?\n * // Note: because local time is used, the\n * // result will always be 92 days, even in\n * // time zones where DST starts and the\n * // period has only 92*24-1 hours.\n * const result = differenceInDays(\n * new Date(2020, 5, 1),\n * new Date(2020, 2, 1)\n * )\n//=> 92\n */\n\n\nexport default function differenceInDays(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var sign = compareLocalAsc(dateLeft, dateRight);\n var difference = Math.abs(differenceInCalendarDays(dateLeft, dateRight));\n dateLeft.setDate(dateLeft.getDate() - sign * difference); // Math.abs(diff in full days - diff in calendar days) === 1 if last calendar day is not full\n // If so, result must be decreased by 1 in absolute value\n\n var isLastDayNotFull = Number(compareLocalAsc(dateLeft, dateRight) === -sign);\n var result = sign * (difference - isLastDayNotFull); // Prevent negative zero\n\n return result === 0 ? 0 : result;\n}","/**\n * Days in 1 week.\n *\n * @name daysInWeek\n * @constant\n * @type {number}\n * @default\n */\nexport var daysInWeek = 7;\n/**\n * Maximum allowed time.\n *\n * @name maxTime\n * @constant\n * @type {number}\n * @default\n */\n\nexport var maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n/**\n * Milliseconds in 1 minute\n *\n * @name millisecondsInMinute\n * @constant\n * @type {number}\n * @default\n */\n\nexport var millisecondsInMinute = 60000;\n/**\n * Milliseconds in 1 hour\n *\n * @name millisecondsInHour\n * @constant\n * @type {number}\n * @default\n */\n\nexport var millisecondsInHour = 3600000;\n/**\n * Milliseconds in 1 second\n *\n * @name millisecondsInSecond\n * @constant\n * @type {number}\n * @default\n */\n\nexport var millisecondsInSecond = 1000;\n/**\n * Minimum allowed time.\n *\n * @name minTime\n * @constant\n * @type {number}\n * @default\n */\n\nexport var minTime = -maxTime;\n/**\n * Minutes in 1 hour\n *\n * @name minutesInHour\n * @constant\n * @type {number}\n * @default\n */\n\nexport var minutesInHour = 60;\n/**\n * Months in 1 quarter\n *\n * @name monthsInQuarter\n * @constant\n * @type {number}\n * @default\n */\n\nexport var monthsInQuarter = 3;\n/**\n * Months in 1 year\n *\n * @name monthsInYear\n * @constant\n * @type {number}\n * @default\n */\n\nexport var monthsInYear = 12;\n/**\n * Quarters in 1 year\n *\n * @name quartersInYear\n * @constant\n * @type {number}\n * @default\n */\n\nexport var quartersInYear = 4;\n/**\n * Seconds in 1 hour\n *\n * @name secondsInHour\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInHour = 3600;\n/**\n * Seconds in 1 minute\n *\n * @name secondsInMinute\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInMinute = 60;","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name differenceInMilliseconds\n * @category Millisecond Helpers\n * @summary Get the number of milliseconds between the given dates.\n *\n * @description\n * Get the number of milliseconds between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of milliseconds\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many milliseconds are between\n * // 2 July 2014 12:30:20.600 and 2 July 2014 12:30:21.700?\n * const result = differenceInMilliseconds(\n * new Date(2014, 6, 2, 12, 30, 21, 700),\n * new Date(2014, 6, 2, 12, 30, 20, 600)\n * )\n * //=> 1100\n */\n\nexport default function differenceInMilliseconds(dateLeft, dateRight) {\n requiredArgs(2, arguments);\n return toDate(dateLeft).getTime() - toDate(dateRight).getTime();\n}","var roundingMap = {\n ceil: Math.ceil,\n round: Math.round,\n floor: Math.floor,\n trunc: function (value) {\n return value < 0 ? Math.ceil(value) : Math.floor(value);\n } // Math.trunc is not supported by IE\n\n};\nvar defaultRoundingMethod = 'trunc';\nexport function getRoundingMethod(method) {\n return method ? roundingMap[method] : roundingMap[defaultRoundingMethod];\n}","import compareAsc from \"../compareAsc/index.js\";\nimport differenceInYears from \"../differenceInYears/index.js\";\nimport differenceInMonths from \"../differenceInMonths/index.js\";\nimport differenceInDays from \"../differenceInDays/index.js\";\nimport differenceInHours from \"../differenceInHours/index.js\";\nimport differenceInMinutes from \"../differenceInMinutes/index.js\";\nimport differenceInSeconds from \"../differenceInSeconds/index.js\";\nimport isValid from \"../isValid/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport sub from \"../sub/index.js\";\n/**\n * @name intervalToDuration\n * @category Common Helpers\n * @summary Convert interval to duration\n *\n * @description\n * Convert a interval object to a duration object.\n *\n * @param {Interval} interval - the interval to convert to duration\n *\n * @returns {Duration} The duration Object\n * @throws {TypeError} Requires 2 arguments\n * @throws {RangeError} `start` must not be Invalid Date\n * @throws {RangeError} `end` must not be Invalid Date\n *\n * @example\n * // Get the duration between January 15, 1929 and April 4, 1968.\n * intervalToDuration({\n * start: new Date(1929, 0, 15, 12, 0, 0),\n * end: new Date(1968, 3, 4, 19, 5, 0)\n * })\n * // => { years: 39, months: 2, days: 20, hours: 7, minutes: 5, seconds: 0 }\n */\n\nexport default function intervalToDuration(_ref) {\n var start = _ref.start,\n end = _ref.end;\n requiredArgs(1, arguments);\n var dateLeft = toDate(start);\n var dateRight = toDate(end);\n\n if (!isValid(dateLeft)) {\n throw new RangeError('Start Date is invalid');\n }\n\n if (!isValid(dateRight)) {\n throw new RangeError('End Date is invalid');\n }\n\n var duration = {\n years: 0,\n months: 0,\n days: 0,\n hours: 0,\n minutes: 0,\n seconds: 0\n };\n var sign = compareAsc(dateLeft, dateRight);\n duration.years = Math.abs(differenceInYears(dateLeft, dateRight));\n var remainingMonths = sub(dateLeft, {\n years: sign * duration.years\n });\n duration.months = Math.abs(differenceInMonths(remainingMonths, dateRight));\n var remainingDays = sub(remainingMonths, {\n months: sign * duration.months\n });\n duration.days = Math.abs(differenceInDays(remainingDays, dateRight));\n var remainingHours = sub(remainingDays, {\n days: sign * duration.days\n });\n duration.hours = Math.abs(differenceInHours(remainingHours, dateRight));\n var remainingMinutes = sub(remainingHours, {\n hours: sign * duration.hours\n });\n duration.minutes = Math.abs(differenceInMinutes(remainingMinutes, dateRight));\n var remainingSeconds = sub(remainingMinutes, {\n minutes: sign * duration.minutes\n });\n duration.seconds = Math.abs(differenceInSeconds(remainingSeconds, dateRight));\n return duration;\n}","import { millisecondsInHour } from \"../constants/index.js\";\nimport differenceInMilliseconds from \"../differenceInMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getRoundingMethod } from \"../_lib/roundingMethods/index.js\";\n/**\n * @name differenceInHours\n * @category Hour Helpers\n * @summary Get the number of hours between the given dates.\n *\n * @description\n * Get the number of hours between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @param {Object} [options] - an object with options.\n * @param {String} [options.roundingMethod='trunc'] - a rounding method (`ceil`, `floor`, `round` or `trunc`)\n * @returns {Number} the number of hours\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many hours are between 2 July 2014 06:50:00 and 2 July 2014 19:00:00?\n * const result = differenceInHours(\n * new Date(2014, 6, 2, 19, 0),\n * new Date(2014, 6, 2, 6, 50)\n * )\n * //=> 12\n */\n\nexport default function differenceInHours(dateLeft, dateRight, options) {\n requiredArgs(2, arguments);\n var diff = differenceInMilliseconds(dateLeft, dateRight) / millisecondsInHour;\n return getRoundingMethod(options === null || options === void 0 ? void 0 : options.roundingMethod)(diff);\n}","import { millisecondsInMinute } from \"../constants/index.js\";\nimport differenceInMilliseconds from \"../differenceInMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getRoundingMethod } from \"../_lib/roundingMethods/index.js\";\n/**\n * @name differenceInMinutes\n * @category Minute Helpers\n * @summary Get the number of minutes between the given dates.\n *\n * @description\n * Get the signed number of full (rounded towards 0) minutes between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @param {Object} [options] - an object with options.\n * @param {String} [options.roundingMethod='trunc'] - a rounding method (`ceil`, `floor`, `round` or `trunc`)\n * @returns {Number} the number of minutes\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many minutes are between 2 July 2014 12:07:59 and 2 July 2014 12:20:00?\n * const result = differenceInMinutes(\n * new Date(2014, 6, 2, 12, 20, 0),\n * new Date(2014, 6, 2, 12, 7, 59)\n * )\n * //=> 12\n *\n * @example\n * // How many minutes are between 10:01:59 and 10:00:00\n * const result = differenceInMinutes(\n * new Date(2000, 0, 1, 10, 0, 0),\n * new Date(2000, 0, 1, 10, 1, 59)\n * )\n * //=> -1\n */\n\nexport default function differenceInMinutes(dateLeft, dateRight, options) {\n requiredArgs(2, arguments);\n var diff = differenceInMilliseconds(dateLeft, dateRight) / millisecondsInMinute;\n return getRoundingMethod(options === null || options === void 0 ? void 0 : options.roundingMethod)(diff);\n}","import differenceInMilliseconds from \"../differenceInMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getRoundingMethod } from \"../_lib/roundingMethods/index.js\";\n/**\n * @name differenceInSeconds\n * @category Second Helpers\n * @summary Get the number of seconds between the given dates.\n *\n * @description\n * Get the number of seconds between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @param {Object} [options] - an object with options.\n * @param {String} [options.roundingMethod='trunc'] - a rounding method (`ceil`, `floor`, `round` or `trunc`)\n * @returns {Number} the number of seconds\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many seconds are between\n * // 2 July 2014 12:30:07.999 and 2 July 2014 12:30:20.000?\n * const result = differenceInSeconds(\n * new Date(2014, 6, 2, 12, 30, 20, 0),\n * new Date(2014, 6, 2, 12, 30, 7, 999)\n * )\n * //=> 12\n */\n\nexport default function differenceInSeconds(dateLeft, dateRight, options) {\n requiredArgs(2, arguments);\n var diff = differenceInMilliseconds(dateLeft, dateRight) / 1000;\n return getRoundingMethod(options === null || options === void 0 ? void 0 : options.roundingMethod)(diff);\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\n\nexport default function startOfDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMonths from \"../addMonths/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subMonths\n * @category Month Helpers\n * @summary Subtract the specified number of months from the given date.\n *\n * @description\n * Subtract the specified number of months from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of months to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the months subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 5 months from 1 February 2015:\n * const result = subMonths(new Date(2015, 1, 1), 5)\n * //=> Mon Sep 01 2014 00:00:00\n */\n\nexport default function subMonths(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMonths(dirtyDate, -amount);\n}","import subDays from \"../subDays/index.js\";\nimport subMonths from \"../subMonths/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name sub\n * @category Common Helpers\n * @summary Subtract the specified years, months, weeks, days, hours, minutes and seconds from the given date.\n *\n * @description\n * Subtract the specified years, months, weeks, days, hours, minutes and seconds from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Duration} duration - the object with years, months, weeks, days, hours, minutes and seconds to be subtracted\n *\n * | Key | Description |\n * |---------|------------------------------------|\n * | years | Amount of years to be subtracted |\n * | months | Amount of months to be subtracted |\n * | weeks | Amount of weeks to be subtracted |\n * | days | Amount of days to be subtracted |\n * | hours | Amount of hours to be subtracted |\n * | minutes | Amount of minutes to be subtracted |\n * | seconds | Amount of seconds to be subtracted |\n *\n * All values default to 0\n *\n * @returns {Date} the new date with the seconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract the following duration from 15 June 2017 15:29:20\n * const result = sub(new Date(2017, 5, 15, 15, 29, 20), {\n * years: 2,\n * months: 9,\n * weeks: 1,\n * days: 7,\n * hours: 5,\n * minutes: 9,\n * seconds: 30\n * })\n * //=> Mon Sep 1 2014 10:19:50\n */\n\nexport default function sub(date, duration) {\n requiredArgs(2, arguments);\n if (!duration || typeof duration !== 'object') return new Date(NaN);\n var years = duration.years ? toInteger(duration.years) : 0;\n var months = duration.months ? toInteger(duration.months) : 0;\n var weeks = duration.weeks ? toInteger(duration.weeks) : 0;\n var days = duration.days ? toInteger(duration.days) : 0;\n var hours = duration.hours ? toInteger(duration.hours) : 0;\n var minutes = duration.minutes ? toInteger(duration.minutes) : 0;\n var seconds = duration.seconds ? toInteger(duration.seconds) : 0; // Subtract years and months\n\n var dateWithoutMonths = subMonths(date, months + years * 12); // Subtract weeks and days\n\n var dateWithoutDays = subDays(dateWithoutMonths, days + weeks * 7); // Subtract hours, minutes and seconds\n\n var minutestoSub = minutes + hours * 60;\n var secondstoSub = seconds + minutestoSub * 60;\n var mstoSub = secondstoSub * 1000;\n var finalDate = new Date(dateWithoutDays.getTime() - mstoSub);\n return finalDate;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addDays from \"../addDays/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subDays\n * @category Day Helpers\n * @summary Subtract the specified number of days from the given date.\n *\n * @description\n * Subtract the specified number of days from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the days subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 10 days from 1 September 2014:\n * const result = subDays(new Date(2014, 8, 1), 10)\n * //=> Fri Aug 22 2014 00:00:00\n */\n\nexport default function subDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addDays(dirtyDate, -amount);\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","import { _ as _objectWithoutPropertiesLoose, a as _objectSpread2 } from '../_rollupPluginBabelHelpers-1f0bf8c2.js';\nimport { createComponent } from 'reakit-system/createComponent';\nimport { createHook } from 'reakit-system/createHook';\nimport 'reakit-utils/shallowEqual';\nimport { useState, useEffect, useRef, useCallback } from 'react';\nimport { useForkRef } from 'reakit-utils/useForkRef';\nimport 'reakit-utils/isButton';\nimport { useWarning } from 'reakit-warning';\nimport 'reakit-utils/useLiveRef';\nimport 'reakit-utils/isSelfTarget';\nimport 'reakit-utils/useIsomorphicEffect';\nimport 'reakit-utils/hasFocusWithin';\nimport 'reakit-utils/isPortalEvent';\nimport 'reakit-utils/dom';\nimport 'reakit-utils/tabbable';\nimport '../Role/Role.js';\nimport '../Tabbable/Tabbable.js';\nimport { useCreateElement } from 'reakit-system/useCreateElement';\nimport 'reakit-utils/getDocument';\nimport 'reakit-utils/fireBlurEvent';\nimport 'reakit-utils/fireKeyboardEvent';\nimport 'reakit-utils/canUseDOM';\nimport 'reakit-utils/getNextActiveElementOnBlur';\nimport '../reverse-30eaa122.js';\nimport '../getCurrentId-5aa9849e.js';\nimport '../findEnabledItemById-8ddca752.js';\nimport '../__keys-6742f591.js';\nimport '../userFocus-e16425e3.js';\nimport { useComposite } from '../Composite/Composite.js';\nimport 'reakit-utils/removeItemFromArray';\nimport { u as useMenuContext } from '../MenuContext-6af6cf92.js';\nimport { closest } from 'reakit-utils/closest';\nimport { b as MENU_BAR_KEYS } from '../__keys-f74df4e0.js';\n\nfunction useShortcuts(menuRef, _ref, timeout) {\n var _ref$items = _ref.items,\n items = _ref$items === void 0 ? [] : _ref$items,\n move = _ref.move;\n\n if (timeout === void 0) {\n timeout = 500;\n }\n\n var _React$useState = useState(\"\"),\n keys = _React$useState[0],\n setKeys = _React$useState[1];\n\n useEffect(function () {\n if (!keys) return undefined;\n var timeoutId = setTimeout(function () {\n return setKeys(\"\");\n }, timeout);\n var stop = items.find(function (s) {\n return Boolean(s.ref.current && s.ref.current.textContent && s.ref.current.textContent.toLowerCase().startsWith(keys));\n });\n\n if (stop) {\n move(stop.id);\n }\n\n return function () {\n return clearTimeout(timeoutId);\n };\n }, [keys, items, move, timeout]);\n useEffect(function () {\n var menu = menuRef.current;\n if (!menu) return undefined;\n\n var onKeyDown = function onKeyDown(event) {\n var _target$getAttribute;\n\n if (event.key.length > 1) return;\n if (event.shiftKey) return;\n if (event.metaKey) return;\n if (event.ctrlKey) return;\n if (event.altKey) return;\n var target = event.target;\n var role = (_target$getAttribute = target.getAttribute) === null || _target$getAttribute === void 0 ? void 0 : _target$getAttribute.call(target, \"role\");\n var targetIsMenu = target === menu;\n var targetIsMenuItem = role && role.indexOf(\"menuitem\") !== -1 && closest(target, \"[role=menu],[role=menubar]\") === menu;\n if (!targetIsMenu && !targetIsMenuItem) return;\n\n if (/^[a-z0-9_-]$/i.test(event.key)) {\n event.stopPropagation();\n event.preventDefault();\n setKeys(function (k) {\n return \"\" + k + event.key;\n });\n }\n }; // https://github.com/facebook/react/issues/11387#issuecomment-524113945\n\n\n menu.addEventListener(\"keydown\", onKeyDown);\n return function () {\n return menu.removeEventListener(\"keydown\", onKeyDown);\n };\n }, [menuRef, setKeys]);\n}\n\nvar useMenuBar = createHook({\n name: \"MenuBar\",\n compose: useComposite,\n keys: MENU_BAR_KEYS,\n useProps: function useProps(options, _ref) {\n var htmlRef = _ref.ref,\n htmlWrapElement = _ref.wrapElement,\n _ref$role = _ref.role,\n role = _ref$role === void 0 ? \"menubar\" : _ref$role,\n htmlProps = _objectWithoutPropertiesLoose(_ref, [\"ref\", \"wrapElement\", \"role\"]);\n\n var ref = useRef(null);\n var wrap = useMenuContext(ref, role, options);\n useShortcuts(ref, options);\n var wrapElement = useCallback(function (element) {\n element = wrap(element);\n\n if (htmlWrapElement) {\n return htmlWrapElement(element);\n }\n\n return element;\n }, [wrap, htmlWrapElement]);\n return _objectSpread2({\n ref: useForkRef(ref, htmlRef),\n role: role,\n \"aria-orientation\": options.orientation,\n wrapElement: wrapElement\n }, htmlProps);\n }\n});\nvar MenuBar = createComponent({\n as: \"div\",\n useHook: useMenuBar,\n useCreateElement: function useCreateElement$1(type, props, children) {\n process.env.NODE_ENV !== \"production\" ? useWarning(!props[\"aria-label\"] && !props[\"aria-labelledby\"] && props.role !== \"menubar\", \"You should provide either `aria-label` or `aria-labelledby` props.\", \"See https://reakit.io/docs/menu\") : void 0;\n return useCreateElement(type, props, children);\n }\n});\n\nexport { MenuBar, useMenuBar };\n","import { a as _objectSpread2, _ as _objectWithoutPropertiesLoose } from '../_rollupPluginBabelHelpers-1f0bf8c2.js';\nimport { createComponent } from 'reakit-system/createComponent';\nimport { createHook } from 'reakit-system/createHook';\nimport 'reakit-utils/shallowEqual';\nimport { useContext, useMemo, useCallback } from 'react';\nimport 'reakit-utils/useForkRef';\nimport 'reakit-utils/isButton';\nimport { useWarning } from 'reakit-warning';\nimport { useLiveRef } from 'reakit-utils/useLiveRef';\nimport 'reakit-utils/isSelfTarget';\nimport 'reakit-utils/useIsomorphicEffect';\nimport 'reakit-utils/hasFocusWithin';\nimport { isPortalEvent } from 'reakit-utils/isPortalEvent';\nimport 'reakit-utils/dom';\nimport 'reakit-utils/tabbable';\nimport '../Role/Role.js';\nimport '../Tabbable/Tabbable.js';\nimport 'reakit-utils/useUpdateEffect';\nimport { useCreateElement } from 'reakit-system/useCreateElement';\nimport 'reakit-utils/getDocument';\nimport 'reakit-utils/fireBlurEvent';\nimport 'reakit-utils/fireKeyboardEvent';\nimport 'reakit-utils/canUseDOM';\nimport 'reakit-utils/getNextActiveElementOnBlur';\nimport '../reverse-30eaa122.js';\nimport '../getCurrentId-5aa9849e.js';\nimport '../findEnabledItemById-8ddca752.js';\nimport '../__keys-6742f591.js';\nimport '../userFocus-e16425e3.js';\nimport '../Composite/Composite.js';\nimport 'reakit-utils/ensureFocus';\nimport '../__keys-e6a5cfbe.js';\nimport '../Disclosure/DisclosureContent.js';\nimport 'react-dom';\nimport '../Portal/Portal.js';\nimport 'reakit-utils/removeItemFromArray';\nimport { M as MenuContext } from '../MenuContext-6af6cf92.js';\nimport '../Dialog/Dialog.js';\nimport 'body-scroll-lock';\nimport 'reakit-utils/closest';\nimport 'reakit-utils/getActiveElement';\nimport 'reakit-utils/contains';\nimport '../DialogBackdropContext-8775f78b.js';\nimport 'reakit-utils/isEmpty';\nimport '../__keys-ed7b48af.js';\nimport '../__keys-26bb1730.js';\nimport { usePopover } from '../Popover/Popover.js';\nimport { useMenuBar } from './MenuBar.js';\nimport { M as MENU_KEYS } from '../__keys-f74df4e0.js';\n\nfunction usePlacementDir(placement) {\n return useMemo(function () {\n var _placement$split;\n\n return placement === null || placement === void 0 ? void 0 : (_placement$split = placement.split(\"-\")) === null || _placement$split === void 0 ? void 0 : _placement$split[0];\n }, [placement]);\n}\n\nvar useMenu = createHook({\n name: \"Menu\",\n compose: [useMenuBar, usePopover],\n keys: MENU_KEYS,\n useOptions: function useOptions(options) {\n var parent = useContext(MenuContext);\n var parentIsMenuBar = (parent === null || parent === void 0 ? void 0 : parent.role) === \"menubar\";\n return _objectSpread2(_objectSpread2({\n unstable_autoFocusOnHide: !parentIsMenuBar,\n modal: false\n }, options), {}, {\n // will be handled by MenuButton\n unstable_autoFocusOnShow: false,\n // will be handled differently from usePopover/useDialog\n hideOnEsc: false\n });\n },\n useProps: function useProps(options, _ref) {\n var htmlOnKeyDown = _ref.onKeyDown,\n htmlProps = _objectWithoutPropertiesLoose(_ref, [\"onKeyDown\"]);\n\n var onKeyDownRef = useLiveRef(htmlOnKeyDown);\n var parent = useContext(MenuContext);\n var hasParent = !!parent;\n var ancestorMenuBar = parent;\n\n while (ancestorMenuBar && ancestorMenuBar.role !== \"menubar\") {\n ancestorMenuBar = ancestorMenuBar.parent;\n }\n\n var _ref2 = ancestorMenuBar || {},\n next = _ref2.next,\n previous = _ref2.previous,\n orientation = _ref2.orientation;\n\n var ancestorIsHorizontal = orientation === \"horizontal\";\n var dir = usePlacementDir(options.placement);\n var onKeyDown = useCallback(function (event) {\n var _onKeyDownRef$current;\n\n (_onKeyDownRef$current = onKeyDownRef.current) === null || _onKeyDownRef$current === void 0 ? void 0 : _onKeyDownRef$current.call(onKeyDownRef, event);\n if (event.defaultPrevented) return;\n\n if (event.key === \"Escape\") {\n var _options$hide;\n\n if (!hasParent) {\n // On Esc, only stop propagation if there's no parent menu.\n // Otherwise, pressing Esc should close all menus\n event.stopPropagation();\n }\n\n (_options$hide = options.hide) === null || _options$hide === void 0 ? void 0 : _options$hide.call(options);\n } else if (hasParent && !isPortalEvent(event)) {\n // Moves to the next menu button in a horizontal menu bar or close\n // the menu if it's a sub menu\n var ArrowRight = ancestorIsHorizontal && dir !== \"left\" ? next : dir === \"left\" && options.hide;\n var ArrowLeft = ancestorIsHorizontal && dir !== \"right\" ? previous : dir === \"right\" && options.hide;\n var keyMap = {\n ArrowRight: ArrowRight,\n ArrowLeft: ArrowLeft\n };\n var action = keyMap[event.key];\n\n if (action) {\n event.preventDefault();\n\n if (hasParent) {\n event.stopPropagation();\n }\n\n action();\n }\n }\n }, [hasParent, ancestorIsHorizontal, next, previous, dir, options.hide]);\n return _objectSpread2({\n role: \"menu\",\n onKeyDown: onKeyDown\n }, htmlProps);\n }\n});\nvar Menu = createComponent({\n as: \"div\",\n useHook: useMenu,\n useCreateElement: function useCreateElement$1(type, props, children) {\n process.env.NODE_ENV !== \"production\" ? useWarning(!props[\"aria-label\"] && !props[\"aria-labelledby\"], \"You should provide either `aria-label` or `aria-labelledby` props.\", \"See https://reakit.io/docs/menu\") : void 0;\n return useCreateElement(type, props, children);\n }\n});\n\nexport { Menu, useMenu };\n","import { _ as _objectWithoutPropertiesLoose, a as _objectSpread2 } from '../_rollupPluginBabelHelpers-1f0bf8c2.js';\nimport { createComponent } from 'reakit-system/createComponent';\nimport { createHook } from 'reakit-system/createHook';\nimport 'reakit-utils/shallowEqual';\nimport { useContext, useRef, useCallback } from 'react';\nimport { useForkRef } from 'reakit-utils/useForkRef';\nimport 'reakit-utils/isButton';\nimport 'reakit-warning';\nimport { useLiveRef } from 'reakit-utils/useLiveRef';\nimport 'reakit-utils/isSelfTarget';\nimport 'reakit-utils/useIsomorphicEffect';\nimport { hasFocusWithin } from 'reakit-utils/hasFocusWithin';\nimport 'reakit-utils/isPortalEvent';\nimport 'reakit-utils/dom';\nimport 'reakit-utils/tabbable';\nimport '../Role/Role.js';\nimport '../Tabbable/Tabbable.js';\nimport '../Clickable/Clickable.js';\nimport '../Button/Button.js';\nimport '../__keys-e6a5cfbe.js';\nimport 'reakit-utils/removeItemFromArray';\nimport { M as MenuContext } from '../MenuContext-6af6cf92.js';\nimport '../__keys-ed7b48af.js';\nimport '../__keys-26bb1730.js';\nimport '../Disclosure/Disclosure.js';\nimport '../Dialog/DialogDisclosure.js';\nimport { c as MENU_BUTTON_KEYS } from '../__keys-f74df4e0.js';\nimport { usePopoverDisclosure } from '../Popover/PopoverDisclosure.js';\nimport { f as findVisibleSubmenu } from '../findVisibleSubmenu-1553e354.js';\n\nvar noop = function noop() {};\n\nvar useMenuButton = createHook({\n name: \"MenuButton\",\n compose: usePopoverDisclosure,\n keys: MENU_BUTTON_KEYS,\n propsAreEqual: function propsAreEqual(prev, next) {\n var prevPopoverStyles = prev.unstable_popoverStyles,\n prevArrowStyles = prev.unstable_arrowStyles,\n prevCurrentId = prev.currentId,\n prevMoves = prev.unstable_moves,\n prevProps = _objectWithoutPropertiesLoose(prev, [\"unstable_popoverStyles\", \"unstable_arrowStyles\", \"currentId\", \"unstable_moves\"]);\n\n var nextPopoverStyles = next.unstable_popoverStyles,\n nextArrowStyles = next.unstable_arrowStyles,\n nextCurrentId = next.currentId,\n nextMoves = next.unstable_moves,\n nextProps = _objectWithoutPropertiesLoose(next, [\"unstable_popoverStyles\", \"unstable_arrowStyles\", \"currentId\", \"unstable_moves\"]);\n\n return usePopoverDisclosure.unstable_propsAreEqual(prevProps, nextProps);\n },\n useProps: function useProps(options, _ref) {\n var htmlRef = _ref.ref,\n htmlOnClick = _ref.onClick,\n htmlOnKeyDown = _ref.onKeyDown,\n htmlOnFocus = _ref.onFocus,\n htmlOnMouseEnter = _ref.onMouseEnter,\n htmlOnMouseDown = _ref.onMouseDown,\n htmlProps = _objectWithoutPropertiesLoose(_ref, [\"ref\", \"onClick\", \"onKeyDown\", \"onFocus\", \"onMouseEnter\", \"onMouseDown\"]);\n\n var parent = useContext(MenuContext);\n var ref = useRef(null);\n var hasPressedMouse = useRef(false);\n\n var _options$placement$sp = options.placement.split(\"-\"),\n dir = _options$placement$sp[0];\n\n var hasParent = !!parent;\n var parentIsMenuBar = (parent === null || parent === void 0 ? void 0 : parent.role) === \"menubar\";\n var disabled = options.disabled || htmlProps[\"aria-disabled\"];\n var onClickRef = useLiveRef(htmlOnClick);\n var onKeyDownRef = useLiveRef(htmlOnKeyDown);\n var onFocusRef = useLiveRef(htmlOnFocus);\n var onMouseEnterRef = useLiveRef(htmlOnMouseEnter);\n var onMouseDownRef = useLiveRef(htmlOnMouseDown);\n var onKeyDown = useCallback(function (event) {\n var _onKeyDownRef$current;\n\n if (event.key === \"Escape\") {\n var _options$hide;\n\n // Doesn't prevent default on Escape, otherwise we can't close\n // dialogs when MenuButton is focused\n (_options$hide = options.hide) === null || _options$hide === void 0 ? void 0 : _options$hide.call(options);\n } else if (!disabled) {\n // setTimeout prevents scroll jump\n var first = options.first && function () {\n return setTimeout(options.first);\n };\n\n var last = options.last && function () {\n return setTimeout(options.last);\n };\n\n var keyMap = {\n Enter: first,\n \" \": first,\n ArrowUp: (dir === \"top\" || dir === \"bottom\") && last,\n ArrowRight: dir === \"right\" && first,\n ArrowDown: (dir === \"bottom\" || dir === \"top\") && first,\n ArrowLeft: dir === \"left\" && first\n };\n var action = keyMap[event.key];\n\n if (action) {\n var _options$show;\n\n event.preventDefault();\n event.stopPropagation();\n (_options$show = options.show) === null || _options$show === void 0 ? void 0 : _options$show.call(options);\n action();\n return;\n }\n }\n\n (_onKeyDownRef$current = onKeyDownRef.current) === null || _onKeyDownRef$current === void 0 ? void 0 : _onKeyDownRef$current.call(onKeyDownRef, event);\n }, [disabled, options.hide, options.first, options.last, dir, options.show]);\n var onMouseEnter = useCallback(function (event) {\n var _onMouseEnterRef$curr;\n\n (_onMouseEnterRef$curr = onMouseEnterRef.current) === null || _onMouseEnterRef$curr === void 0 ? void 0 : _onMouseEnterRef$curr.call(onMouseEnterRef, event);\n if (event.defaultPrevented) return; // MenuButton's don't do anything on mouse over when they aren't\n // cointained within a Menu/MenuBar\n\n if (!parent) return;\n var element = event.currentTarget;\n\n if (parentIsMenuBar) {\n // if MenuButton is an item inside a MenuBar, it'll only open\n // if there's already another sibling expanded MenuButton\n if (findVisibleSubmenu(parent.children)) {\n element.focus();\n }\n } else {\n // If it's in a Menu, open after a short delay\n // TODO: Make the delay a prop?\n setTimeout(function () {\n if (hasFocusWithin(element)) {\n var _options$show2;\n\n (_options$show2 = options.show) === null || _options$show2 === void 0 ? void 0 : _options$show2.call(options);\n }\n }, 200);\n }\n }, [parent, parentIsMenuBar, options.show]);\n var onMouseDown = useCallback(function (event) {\n var _onMouseDownRef$curre;\n\n // When in menu bar, the menu button can be activated either by focus\n // or click, but we don't want both to trigger sequentially.\n // Otherwise, onClick would toggle (hide) the menu right after it got\n // shown on focus.\n // This is also useful so we know if the menu button has been clicked\n // using mouse or keyboard. On mouse click, we don't automatically\n // focus the first menu item.\n hasPressedMouse.current = true;\n (_onMouseDownRef$curre = onMouseDownRef.current) === null || _onMouseDownRef$curre === void 0 ? void 0 : _onMouseDownRef$curre.call(onMouseDownRef, event);\n }, []);\n var onFocus = useCallback(function (event) {\n var _onFocusRef$current;\n\n (_onFocusRef$current = onFocusRef.current) === null || _onFocusRef$current === void 0 ? void 0 : _onFocusRef$current.call(onFocusRef, event);\n if (event.defaultPrevented) return;\n if (disabled) return;\n\n if (parentIsMenuBar && !hasPressedMouse.current) {\n var _options$show3;\n\n (_options$show3 = options.show) === null || _options$show3 === void 0 ? void 0 : _options$show3.call(options);\n }\n }, [parentIsMenuBar, disabled, options.show]); // If disclosure is rendered as a menu bar item, it's toggable\n // That is, you can click on the expanded disclosure to close its menu.\n\n var onClick = useCallback(function (event) {\n var _onClickRef$current;\n\n (_onClickRef$current = onClickRef.current) === null || _onClickRef$current === void 0 ? void 0 : _onClickRef$current.call(onClickRef, event);\n if (event.defaultPrevented) return; // If menu button is a menu item inside a menu (not menu bar), you\n // can't close it by clicking on it again.\n\n if (hasParent && !parentIsMenuBar) {\n var _options$show4;\n\n (_options$show4 = options.show) === null || _options$show4 === void 0 ? void 0 : _options$show4.call(options);\n } else {\n var _options$toggle;\n\n // Otherwise, if menu button is a menu bar item or an orphan menu\n // button, it's toggable.\n (_options$toggle = options.toggle) === null || _options$toggle === void 0 ? void 0 : _options$toggle.call(options); // Focus the menu popover when it's opened with mouse click.\n\n if (hasPressedMouse.current && !parentIsMenuBar && !options.visible) {\n var _options$move;\n\n (_options$move = options.move) === null || _options$move === void 0 ? void 0 : _options$move.call(options, null);\n }\n }\n\n hasPressedMouse.current = false;\n }, [hasParent, parentIsMenuBar, options.show, options.toggle, options.visible, options.move]);\n return _objectSpread2({\n ref: useForkRef(ref, htmlRef),\n \"aria-haspopup\": \"menu\",\n onKeyDown: onKeyDown,\n onMouseEnter: onMouseEnter,\n onMouseDown: onMouseDown,\n onFocus: onFocus,\n onClick: onClick\n }, htmlProps);\n },\n useComposeOptions: function useComposeOptions(options) {\n return _objectSpread2(_objectSpread2({}, options), {}, {\n // Toggling is handled by MenuButton\n toggle: noop\n });\n }\n});\nvar MenuButton = createComponent({\n as: \"button\",\n memo: true,\n useHook: useMenuButton\n});\n\nexport { MenuButton, useMenuButton };\n","import { _ as _objectWithoutPropertiesLoose, a as _objectSpread2 } from '../_rollupPluginBabelHelpers-1f0bf8c2.js';\nimport { createComponent } from 'reakit-system/createComponent';\nimport { createHook } from 'reakit-system/createHook';\nimport 'reakit-utils/shallowEqual';\nimport { useRef, useCallback, useContext } from 'react';\nimport 'reakit-utils/useForkRef';\nimport 'reakit-utils/isButton';\nimport 'reakit-warning';\nimport { useLiveRef } from 'reakit-utils/useLiveRef';\nimport 'reakit-utils/isSelfTarget';\nimport 'reakit-utils/useIsomorphicEffect';\nimport { hasFocusWithin } from 'reakit-utils/hasFocusWithin';\nimport 'reakit-utils/isPortalEvent';\nimport 'reakit-utils/dom';\nimport 'reakit-utils/tabbable';\nimport '../Role/Role.js';\nimport '../Tabbable/Tabbable.js';\nimport '../Clickable/Clickable.js';\nimport 'reakit-utils/getDocument';\nimport '../getCurrentId-5aa9849e.js';\nimport '../__keys-6742f591.js';\nimport '../userFocus-e16425e3.js';\nimport 'reakit-utils/isTextField';\nimport 'reakit-utils/ensureFocus';\nimport '../Id/IdProvider.js';\nimport '../Id/Id.js';\nimport 'reakit-utils/fireEvent';\nimport '../setTextFieldValue-0a221f4e.js';\nimport { useCompositeItem } from '../Composite/CompositeItem.js';\nimport 'reakit-utils/removeItemFromArray';\nimport { M as MenuContext } from '../MenuContext-6af6cf92.js';\nimport { contains } from 'reakit-utils/contains';\nimport { e as MENU_ITEM_KEYS } from '../__keys-f74df4e0.js';\nimport { f as findVisibleSubmenu } from '../findVisibleSubmenu-1553e354.js';\n\nfunction getTriangleArea(a, b, c) {\n return Math.abs((a.x * (b.y - c.y) + b.x * (c.y - a.y) + c.x * (a.y - b.y)) / 2);\n}\n\nfunction isPointInTriangle(point, a, b, c) {\n var A = getTriangleArea(a, b, c);\n var A1 = getTriangleArea(point, b, c);\n var A2 = getTriangleArea(a, point, c);\n var A3 = getTriangleArea(a, b, point);\n return A === A1 + A2 + A3;\n}\n\nfunction getSubmenuAnchorPoints(event, visibleSubmenu) {\n var _visibleSubmenu$getBo = visibleSubmenu.getBoundingClientRect(),\n top = _visibleSubmenu$getBo.top,\n right = _visibleSubmenu$getBo.right,\n bottom = _visibleSubmenu$getBo.bottom,\n left = _visibleSubmenu$getBo.left; // If left is bigger than mouse's clientX, than the submenu is visible on\n // the left side\n\n\n var x = left > event.clientX ? left : right;\n return [{\n x: x,\n y: top\n }, {\n x: x,\n y: bottom\n }];\n}\n\nfunction useTransitToSubmenu(menu, htmlOnMouseEnter) {\n var onMouseEnterRef = useLiveRef(htmlOnMouseEnter);\n var enterPointRef = useRef(null);\n var submenuTopPointRef = useRef(null);\n var submenuBottomPointRef = useRef(null);\n var previousClientX = useRef(0);\n var previousClientY = useRef(0);\n var assignSubmenuAnchorPoints = useCallback(function (event) {\n if (!(menu !== null && menu !== void 0 && menu.children.length)) return;\n submenuTopPointRef.current = null;\n submenuBottomPointRef.current = null;\n var visibleSubmenu = findVisibleSubmenu(menu.children);\n if (!visibleSubmenu) return;\n\n var _getSubmenuAnchorPoin = getSubmenuAnchorPoints(event, visibleSubmenu);\n\n submenuTopPointRef.current = _getSubmenuAnchorPoin[0];\n submenuBottomPointRef.current = _getSubmenuAnchorPoin[1];\n }, [menu === null || menu === void 0 ? void 0 : menu.children]);\n var isMouseInTransitToSubmenu = useCallback(function (event) {\n var isMoving = previousClientX.current !== event.clientX || previousClientY.current !== event.clientY;\n\n if (event.isTrusted && !isMoving) {\n // Safari sometimes triggers mousemove without a mouse movement\n return true;\n }\n\n var movementX = Math.abs(previousClientX.current - event.clientX);\n previousClientX.current = event.clientX;\n previousClientY.current = event.clientY;\n\n var hasAnchorPoints = function hasAnchorPoints() {\n return submenuTopPointRef.current && submenuBottomPointRef.current;\n };\n\n if (event.type === \"mouseleave\" && !hasAnchorPoints()) {\n assignSubmenuAnchorPoints(event);\n }\n\n if (!hasAnchorPoints()) return false;\n return movementX && enterPointRef.current && isPointInTriangle({\n x: event.clientX,\n y: event.clientY\n }, enterPointRef.current, submenuTopPointRef.current, submenuBottomPointRef.current);\n }, [assignSubmenuAnchorPoints]);\n var onMouseEnter = useCallback(function (event) {\n var _onMouseEnterRef$curr;\n\n (_onMouseEnterRef$curr = onMouseEnterRef.current) === null || _onMouseEnterRef$curr === void 0 ? void 0 : _onMouseEnterRef$curr.call(onMouseEnterRef, event);\n if (event.defaultPrevented) return;\n if ((menu === null || menu === void 0 ? void 0 : menu.role) === \"menubar\") return;\n enterPointRef.current = {\n x: event.clientX,\n y: event.clientY\n };\n assignSubmenuAnchorPoints(event);\n }, [menu === null || menu === void 0 ? void 0 : menu.role, assignSubmenuAnchorPoints]);\n return {\n onMouseEnter: onMouseEnter,\n isMouseInTransitToSubmenu: isMouseInTransitToSubmenu\n };\n}\n\nfunction getMouseDestination(event) {\n var relatedTarget = event.relatedTarget;\n\n if ((relatedTarget === null || relatedTarget === void 0 ? void 0 : relatedTarget.nodeType) === Node.ELEMENT_NODE) {\n return event.relatedTarget;\n } // IE 11\n\n\n return event.toElement || null;\n}\n\nfunction hoveringInside(event) {\n var nextElement = getMouseDestination(event);\n if (!nextElement) return false;\n return contains(event.currentTarget, nextElement);\n}\n\nfunction hoveringExpandedMenu(event, children) {\n if (!(children !== null && children !== void 0 && children.length)) return false;\n var nextElement = getMouseDestination(event);\n if (!nextElement) return false;\n var visibleSubmenu = findVisibleSubmenu(children);\n return visibleSubmenu && contains(visibleSubmenu, nextElement);\n}\n\nfunction hoveringAnotherMenuItem(event, items) {\n var nextElement = getMouseDestination(event);\n if (!nextElement) return false;\n return items === null || items === void 0 ? void 0 : items.some(function (item) {\n return item.ref.current && contains(item.ref.current, nextElement);\n });\n}\n\nvar useMenuItem = createHook({\n name: \"MenuItem\",\n compose: useCompositeItem,\n keys: MENU_ITEM_KEYS,\n propsAreEqual: function propsAreEqual(prev, next) {\n var prevPopoverStyles = prev.unstable_popoverStyles,\n prevArrowStyles = prev.unstable_arrowStyles,\n prevVisible = prev.visible,\n prevProps = _objectWithoutPropertiesLoose(prev, [\"unstable_popoverStyles\", \"unstable_arrowStyles\", \"visible\"]);\n\n var nextPopoverStyles = next.unstable_popoverStyles,\n nextArrowStyles = next.unstable_arrowStyles,\n nextVisible = next.visible,\n nextProps = _objectWithoutPropertiesLoose(next, [\"unstable_popoverStyles\", \"unstable_arrowStyles\", \"visible\"]);\n\n return useCompositeItem.unstable_propsAreEqual(prevProps, nextProps);\n },\n useProps: function useProps(options, _ref) {\n var htmlOnMouseEnter = _ref.onMouseEnter,\n htmlOnMouseMove = _ref.onMouseMove,\n htmlOnMouseLeave = _ref.onMouseLeave,\n htmlProps = _objectWithoutPropertiesLoose(_ref, [\"onMouseEnter\", \"onMouseMove\", \"onMouseLeave\"]);\n\n var menu = useContext(MenuContext);\n var onMouseMoveRef = useLiveRef(htmlOnMouseMove);\n var onMouseLeaveRef = useLiveRef(htmlOnMouseLeave);\n\n var _useTransitToSubmenu = useTransitToSubmenu(menu, htmlOnMouseEnter),\n onMouseEnter = _useTransitToSubmenu.onMouseEnter,\n isMouseInTransitToSubmenu = _useTransitToSubmenu.isMouseInTransitToSubmenu;\n\n var onMouseMove = useCallback(function (event) {\n var _onMouseMoveRef$curre, _options$move;\n\n (_onMouseMoveRef$curre = onMouseMoveRef.current) === null || _onMouseMoveRef$curre === void 0 ? void 0 : _onMouseMoveRef$curre.call(onMouseMoveRef, event);\n if (event.defaultPrevented) return;\n if ((menu === null || menu === void 0 ? void 0 : menu.role) === \"menubar\") return;\n if (isMouseInTransitToSubmenu(event)) return;\n if (hasFocusWithin(event.currentTarget)) return;\n (_options$move = options.move) === null || _options$move === void 0 ? void 0 : _options$move.call(options, event.currentTarget.id);\n }, [options.move]);\n var onMouseLeave = useCallback(function (event) {\n var _onMouseLeaveRef$curr;\n\n (_onMouseLeaveRef$curr = onMouseLeaveRef.current) === null || _onMouseLeaveRef$curr === void 0 ? void 0 : _onMouseLeaveRef$curr.call(onMouseLeaveRef, event);\n if (event.defaultPrevented) return;\n if ((menu === null || menu === void 0 ? void 0 : menu.role) === \"menubar\") return;\n if (hoveringInside(event)) return; // If this item is a menu disclosure and mouse is leaving it to focus\n // its respective submenu, we don't want to do anything.\n\n if (hoveringExpandedMenu(event, menu === null || menu === void 0 ? void 0 : menu.children)) return; // Move focus to menu after blurring\n\n if (!hoveringAnotherMenuItem(event, options.items)) {\n var _options$move2;\n\n if (isMouseInTransitToSubmenu(event)) return;\n (_options$move2 = options.move) === null || _options$move2 === void 0 ? void 0 : _options$move2.call(options, null);\n }\n }, [menu === null || menu === void 0 ? void 0 : menu.role, menu === null || menu === void 0 ? void 0 : menu.children, options.items, options.move]);\n return _objectSpread2({\n role: \"menuitem\",\n onMouseEnter: onMouseEnter,\n onMouseMove: onMouseMove,\n onMouseLeave: onMouseLeave\n }, htmlProps);\n }\n});\nvar MenuItem = createComponent({\n as: \"button\",\n memo: true,\n useHook: useMenuItem\n});\n\nexport { MenuItem, useMenuItem };\n","import { _ as _objectWithoutPropertiesLoose, a as _objectSpread2 } from '../_rollupPluginBabelHelpers-1f0bf8c2.js';\nimport { createComponent } from 'reakit-system/createComponent';\nimport { createHook } from 'reakit-system/createHook';\nimport 'reakit-utils/shallowEqual';\nimport { useRole } from '../Role/Role.js';\n\n// Automatically generated\nvar SEPARATOR_KEYS = [\"orientation\"];\n\nvar useSeparator = createHook({\n name: \"Separator\",\n compose: useRole,\n keys: SEPARATOR_KEYS,\n useOptions: function useOptions(_ref) {\n var _ref$orientation = _ref.orientation,\n orientation = _ref$orientation === void 0 ? \"horizontal\" : _ref$orientation,\n options = _objectWithoutPropertiesLoose(_ref, [\"orientation\"]);\n\n return _objectSpread2({\n orientation: orientation\n }, options);\n },\n useProps: function useProps(options, htmlProps) {\n return _objectSpread2({\n role: \"separator\",\n \"aria-orientation\": options.orientation\n }, htmlProps);\n }\n});\nvar Separator = createComponent({\n as: \"hr\",\n memo: true,\n useHook: useSeparator\n});\n\nexport { Separator, useSeparator };\n","import { _ as _objectWithoutPropertiesLoose, a as _objectSpread2 } from '../_rollupPluginBabelHelpers-1f0bf8c2.js';\nimport { createComponent } from 'reakit-system/createComponent';\nimport { createHook } from 'reakit-system/createHook';\nimport 'reakit-utils/shallowEqual';\nimport '../Role/Role.js';\nimport { h as MENU_SEPARATOR_KEYS } from '../__keys-f74df4e0.js';\nimport { useSeparator } from '../Separator/Separator.js';\n\nvar useMenuSeparator = createHook({\n name: \"MenuSeparator\",\n compose: useSeparator,\n keys: MENU_SEPARATOR_KEYS,\n useOptions: function useOptions(_ref) {\n var _ref$orientation = _ref.orientation,\n orientation = _ref$orientation === void 0 ? \"vertical\" : _ref$orientation,\n options = _objectWithoutPropertiesLoose(_ref, [\"orientation\"]);\n\n return _objectSpread2({\n orientation: orientation === \"vertical\" ? \"horizontal\" : \"vertical\"\n }, options);\n }\n});\nvar MenuSeparator = createComponent({\n as: \"hr\",\n memo: true,\n useHook: useMenuSeparator\n});\n\nexport { MenuSeparator, useMenuSeparator };\n","import { _ as _objectWithoutPropertiesLoose, a as _objectSpread2 } from '../_rollupPluginBabelHelpers-1f0bf8c2.js';\nimport 'reakit-utils/shallowEqual';\nimport { useContext, useEffect } from 'react';\nimport 'reakit-warning';\nimport 'reakit-utils/useIsomorphicEffect';\nimport 'reakit-utils/dom';\nimport { useSealedState } from 'reakit-utils/useSealedState';\nimport 'reakit-utils/getDocument';\nimport '../reverse-30eaa122.js';\nimport '../getCurrentId-5aa9849e.js';\nimport '../findEnabledItemById-8ddca752.js';\nimport '../Id/IdProvider.js';\nimport 'reakit-utils/applyState';\nimport '../Id/IdState.js';\nimport '../Composite/CompositeState.js';\nimport '@popperjs/core';\nimport '../Disclosure/DisclosureState.js';\nimport '../Dialog/DialogState.js';\nimport { usePopoverState } from '../Popover/PopoverState.js';\nimport 'reakit-utils/removeItemFromArray';\nimport { M as MenuContext } from '../MenuContext-6af6cf92.js';\nimport { useMenuBarState } from './MenuBarState.js';\n\nfunction useMenuState(initialState) {\n if (initialState === void 0) {\n initialState = {};\n }\n\n var parent = useContext(MenuContext);\n\n var _useSealedState = useSealedState(initialState),\n _useSealedState$orien = _useSealedState.orientation,\n orientation = _useSealedState$orien === void 0 ? \"vertical\" : _useSealedState$orien,\n _useSealedState$gutte = _useSealedState.gutter,\n gutter = _useSealedState$gutte === void 0 ? 0 : _useSealedState$gutte,\n sealed = _objectWithoutPropertiesLoose(_useSealedState, [\"orientation\", \"gutter\"]);\n\n var placement = sealed.placement || (parent && parent.orientation === \"vertical\" ? \"right-start\" : \"bottom-start\");\n var menuBar = useMenuBarState(_objectSpread2(_objectSpread2({}, sealed), {}, {\n orientation: orientation\n }));\n var popover = usePopoverState(_objectSpread2(_objectSpread2({}, sealed), {}, {\n placement: placement,\n gutter: gutter\n }));\n useEffect(function () {\n if (!popover.visible) {\n menuBar.reset();\n }\n }, [popover.visible, menuBar.reset]);\n return _objectSpread2(_objectSpread2({}, menuBar), popover);\n}\n\nexport { useMenuState };\n","import { _ as _objectWithoutPropertiesLoose, a as _objectSpread2 } from '../_rollupPluginBabelHelpers-1f0bf8c2.js';\nimport { useState, useCallback } from 'react';\nimport 'reakit-utils/useIsomorphicEffect';\nimport { useSealedState } from 'reakit-utils/useSealedState';\nimport 'reakit-utils/getDocument';\nimport '../reverse-30eaa122.js';\nimport '../getCurrentId-5aa9849e.js';\nimport '../findEnabledItemById-8ddca752.js';\nimport '../Id/IdProvider.js';\nimport 'reakit-utils/applyState';\nimport '../Id/IdState.js';\nimport { useCompositeState } from '../Composite/CompositeState.js';\n\nfunction useMenuBarState(initialState) {\n if (initialState === void 0) {\n initialState = {};\n }\n\n var _useSealedState = useSealedState(initialState),\n _useSealedState$orien = _useSealedState.orientation,\n orientation = _useSealedState$orien === void 0 ? \"horizontal\" : _useSealedState$orien,\n _useSealedState$unsta = _useSealedState.unstable_values,\n initialValues = _useSealedState$unsta === void 0 ? {} : _useSealedState$unsta,\n sealed = _objectWithoutPropertiesLoose(_useSealedState, [\"orientation\", \"unstable_values\"]);\n\n var _React$useState = useState(initialValues),\n values = _React$useState[0],\n setValues = _React$useState[1];\n\n var composite = useCompositeState(_objectSpread2(_objectSpread2({}, sealed), {}, {\n orientation: orientation\n }));\n return _objectSpread2(_objectSpread2({}, composite), {}, {\n unstable_values: values,\n unstable_setValue: useCallback(function (name, value) {\n setValues(function (vals) {\n var _objectSpread2$1;\n\n return _objectSpread2(_objectSpread2({}, vals), {}, (_objectSpread2$1 = {}, _objectSpread2$1[name] = typeof value === \"function\" ? value(vals) : value, _objectSpread2$1));\n });\n }, [])\n });\n}\n\nexport { useMenuBarState };\n","import { _ as _objectWithoutPropertiesLoose, a as _objectSpread2 } from '../_rollupPluginBabelHelpers-1f0bf8c2.js';\nimport { createComponent } from 'reakit-system/createComponent';\nimport { createHook } from 'reakit-system/createHook';\nimport 'reakit-utils/shallowEqual';\nimport { useRef, useState, useEffect } from 'react';\nimport { useForkRef } from 'reakit-utils/useForkRef';\nimport { isButton } from 'reakit-utils/isButton';\nimport { warning } from 'reakit-warning';\nimport 'reakit-utils/useLiveRef';\nimport 'reakit-utils/isSelfTarget';\nimport 'reakit-utils/useIsomorphicEffect';\nimport 'reakit-utils/hasFocusWithin';\nimport 'reakit-utils/isPortalEvent';\nimport 'reakit-utils/dom';\nimport 'reakit-utils/tabbable';\nimport '../Role/Role.js';\nimport '../Tabbable/Tabbable.js';\nimport { useClickable } from '../Clickable/Clickable.js';\n\n// Automatically generated\nvar BUTTON_KEYS = [];\n\nvar useButton = createHook({\n name: \"Button\",\n compose: useClickable,\n keys: BUTTON_KEYS,\n useProps: function useProps(_, _ref) {\n var htmlRef = _ref.ref,\n htmlProps = _objectWithoutPropertiesLoose(_ref, [\"ref\"]);\n\n var ref = useRef(null);\n\n var _React$useState = useState(undefined),\n role = _React$useState[0],\n setRole = _React$useState[1];\n\n var _React$useState2 = useState(\"button\"),\n type = _React$useState2[0],\n setType = _React$useState2[1];\n\n useEffect(function () {\n var element = ref.current;\n\n if (!element) {\n process.env.NODE_ENV !== \"production\" ? warning(true, \"Can't determine whether the element is a native button because `ref` wasn't passed to the component\", \"See https://reakit.io/docs/button\") : void 0;\n return;\n }\n\n if (!isButton(element)) {\n if (element.tagName !== \"A\") {\n setRole(\"button\");\n }\n\n setType(undefined);\n }\n }, []);\n return _objectSpread2({\n ref: useForkRef(ref, htmlRef),\n role: role,\n type: type\n }, htmlProps);\n }\n});\nvar Button = createComponent({\n as: \"button\",\n memo: true,\n useHook: useButton\n});\n\nexport { Button, useButton };\n","import { _ as _objectWithoutPropertiesLoose, a as _objectSpread2 } from '../_rollupPluginBabelHelpers-1f0bf8c2.js';\nimport { createComponent } from 'reakit-system/createComponent';\nimport { createHook } from 'reakit-system/createHook';\nimport 'reakit-utils/shallowEqual';\nimport { useCallback } from 'react';\nimport 'reakit-utils/useForkRef';\nimport 'reakit-utils/isButton';\nimport 'reakit-warning';\nimport { useLiveRef } from 'reakit-utils/useLiveRef';\nimport 'reakit-utils/isSelfTarget';\nimport 'reakit-utils/useIsomorphicEffect';\nimport 'reakit-utils/hasFocusWithin';\nimport 'reakit-utils/isPortalEvent';\nimport 'reakit-utils/dom';\nimport 'reakit-utils/tabbable';\nimport '../Role/Role.js';\nimport '../Tabbable/Tabbable.js';\nimport '../Clickable/Clickable.js';\nimport { useButton } from '../Button/Button.js';\nimport { D as DISCLOSURE_KEYS } from '../__keys-e6a5cfbe.js';\n\nvar useDisclosure = createHook({\n name: \"Disclosure\",\n compose: useButton,\n keys: DISCLOSURE_KEYS,\n useProps: function useProps(options, _ref) {\n var htmlOnClick = _ref.onClick,\n ariaControls = _ref[\"aria-controls\"],\n htmlProps = _objectWithoutPropertiesLoose(_ref, [\"onClick\", \"aria-controls\"]);\n\n var onClickRef = useLiveRef(htmlOnClick);\n var controls = ariaControls ? ariaControls + \" \" + options.baseId : options.baseId;\n var onClick = useCallback(function (event) {\n var _onClickRef$current, _options$toggle;\n\n (_onClickRef$current = onClickRef.current) === null || _onClickRef$current === void 0 ? void 0 : _onClickRef$current.call(onClickRef, event);\n if (event.defaultPrevented) return;\n (_options$toggle = options.toggle) === null || _options$toggle === void 0 ? void 0 : _options$toggle.call(options);\n }, [options.toggle]);\n return _objectSpread2({\n \"aria-expanded\": !!options.visible,\n \"aria-controls\": controls,\n onClick: onClick\n }, htmlProps);\n }\n});\nvar Disclosure = createComponent({\n as: \"button\",\n memo: true,\n useHook: useDisclosure\n});\n\nexport { Disclosure, useDisclosure };\n","import { _ as _objectWithoutPropertiesLoose, a as _objectSpread2 } from '../_rollupPluginBabelHelpers-1f0bf8c2.js';\nimport { createComponent } from 'reakit-system/createComponent';\nimport { createHook } from 'reakit-system/createHook';\nimport 'reakit-utils/shallowEqual';\nimport { useRef, useState, useCallback } from 'react';\nimport { useForkRef } from 'reakit-utils/useForkRef';\nimport 'reakit-utils/isButton';\nimport { warning } from 'reakit-warning';\nimport { useLiveRef } from 'reakit-utils/useLiveRef';\nimport 'reakit-utils/isSelfTarget';\nimport { useIsomorphicEffect } from 'reakit-utils/useIsomorphicEffect';\nimport 'reakit-utils/hasFocusWithin';\nimport 'reakit-utils/isPortalEvent';\nimport 'reakit-utils/dom';\nimport 'reakit-utils/tabbable';\nimport '../Role/Role.js';\nimport '../Tabbable/Tabbable.js';\nimport '../Clickable/Clickable.js';\nimport '../Button/Button.js';\nimport '../__keys-e6a5cfbe.js';\nimport { b as DIALOG_DISCLOSURE_KEYS } from '../__keys-ed7b48af.js';\nimport { useDisclosure } from '../Disclosure/Disclosure.js';\n\nvar useDialogDisclosure = createHook({\n name: \"DialogDisclosure\",\n compose: useDisclosure,\n keys: DIALOG_DISCLOSURE_KEYS,\n useProps: function useProps(options, _ref) {\n var htmlRef = _ref.ref,\n htmlOnClick = _ref.onClick,\n htmlProps = _objectWithoutPropertiesLoose(_ref, [\"ref\", \"onClick\"]);\n\n var ref = useRef(null);\n var onClickRef = useLiveRef(htmlOnClick);\n\n var _React$useState = useState(false),\n expanded = _React$useState[0],\n setExpanded = _React$useState[1];\n\n var disclosureRef = options.unstable_disclosureRef; // aria-expanded may be used for styling purposes, so we useLayoutEffect\n\n useIsomorphicEffect(function () {\n var element = ref.current;\n process.env.NODE_ENV !== \"production\" ? warning(!element, \"Can't determine whether the element is the current disclosure because `ref` wasn't passed to the component\", \"See https://reakit.io/docs/dialog\") : void 0;\n\n if (disclosureRef && !disclosureRef.current) {\n disclosureRef.current = element;\n }\n\n var isCurrentDisclosure = !(disclosureRef !== null && disclosureRef !== void 0 && disclosureRef.current) || disclosureRef.current === element;\n setExpanded(!!options.visible && isCurrentDisclosure);\n }, [options.visible, disclosureRef]);\n var onClick = useCallback(function (event) {\n var _onClickRef$current;\n\n (_onClickRef$current = onClickRef.current) === null || _onClickRef$current === void 0 ? void 0 : _onClickRef$current.call(onClickRef, event);\n if (event.defaultPrevented) return;\n\n if (disclosureRef) {\n disclosureRef.current = event.currentTarget;\n }\n }, [disclosureRef]);\n return _objectSpread2({\n ref: useForkRef(ref, htmlRef),\n \"aria-haspopup\": \"dialog\",\n \"aria-expanded\": expanded,\n onClick: onClick\n }, htmlProps);\n }\n});\nvar DialogDisclosure = createComponent({\n as: \"button\",\n memo: true,\n useHook: useDialogDisclosure\n});\n\nexport { DialogDisclosure, useDialogDisclosure };\n","import { _ as _objectWithoutPropertiesLoose, a as _objectSpread2 } from '../_rollupPluginBabelHelpers-1f0bf8c2.js';\nimport { createComponent } from 'reakit-system/createComponent';\nimport { createHook } from 'reakit-system/createHook';\nimport 'reakit-utils/shallowEqual';\nimport 'react';\nimport { useForkRef } from 'reakit-utils/useForkRef';\nimport 'reakit-utils/isButton';\nimport 'reakit-warning';\nimport 'reakit-utils/useLiveRef';\nimport 'reakit-utils/isSelfTarget';\nimport 'reakit-utils/useIsomorphicEffect';\nimport 'reakit-utils/hasFocusWithin';\nimport 'reakit-utils/isPortalEvent';\nimport 'reakit-utils/dom';\nimport 'reakit-utils/tabbable';\nimport '../Role/Role.js';\nimport '../Tabbable/Tabbable.js';\nimport '../Clickable/Clickable.js';\nimport '../Button/Button.js';\nimport '../__keys-e6a5cfbe.js';\nimport '../__keys-ed7b48af.js';\nimport { c as POPOVER_DISCLOSURE_KEYS } from '../__keys-26bb1730.js';\nimport '../Disclosure/Disclosure.js';\nimport { useDialogDisclosure } from '../Dialog/DialogDisclosure.js';\n\nvar usePopoverDisclosure = createHook({\n name: \"PopoverDisclosure\",\n compose: useDialogDisclosure,\n keys: POPOVER_DISCLOSURE_KEYS,\n useProps: function useProps(options, _ref) {\n var htmlRef = _ref.ref,\n htmlProps = _objectWithoutPropertiesLoose(_ref, [\"ref\"]);\n\n return _objectSpread2({\n ref: useForkRef(options.unstable_referenceRef, htmlRef)\n }, htmlProps);\n }\n});\nvar PopoverDisclosure = createComponent({\n as: \"button\",\n memo: true,\n useHook: usePopoverDisclosure\n});\n\nexport { PopoverDisclosure, usePopoverDisclosure };\n","// Automatically generated\nvar MENU_BAR_STATE_KEYS = [\"baseId\", \"unstable_idCountRef\", \"unstable_virtual\", \"rtl\", \"orientation\", \"items\", \"groups\", \"currentId\", \"loop\", \"wrap\", \"shift\", \"unstable_moves\", \"unstable_hasActiveWidget\", \"unstable_includesBaseElement\", \"unstable_values\", \"setBaseId\", \"registerItem\", \"unregisterItem\", \"registerGroup\", \"unregisterGroup\", \"move\", \"next\", \"previous\", \"up\", \"down\", \"first\", \"last\", \"sort\", \"unstable_setVirtual\", \"setRTL\", \"setOrientation\", \"setCurrentId\", \"setLoop\", \"setWrap\", \"setShift\", \"reset\", \"unstable_setIncludesBaseElement\", \"unstable_setHasActiveWidget\", \"unstable_setValue\"];\nvar MENU_STATE_KEYS = [].concat(MENU_BAR_STATE_KEYS, [\"visible\", \"animated\", \"animating\", \"show\", \"hide\", \"toggle\", \"setVisible\", \"setAnimated\", \"stopAnimation\", \"modal\", \"unstable_disclosureRef\", \"setModal\", \"unstable_referenceRef\", \"unstable_popoverRef\", \"unstable_arrowRef\", \"unstable_popoverStyles\", \"unstable_arrowStyles\", \"unstable_originalPlacement\", \"unstable_update\", \"placement\", \"place\"]);\nvar MENU_KEYS = MENU_STATE_KEYS;\nvar MENU_ARROW_KEYS = MENU_KEYS;\nvar MENU_BAR_KEYS = MENU_ARROW_KEYS;\nvar MENU_BUTTON_KEYS = MENU_BAR_KEYS;\nvar MENU_DISCLOSURE_KEYS = MENU_BUTTON_KEYS;\nvar MENU_GROUP_KEYS = MENU_DISCLOSURE_KEYS;\nvar MENU_ITEM_KEYS = MENU_GROUP_KEYS;\nvar MENU_ITEM_CHECKBOX_KEYS = [].concat(MENU_ITEM_KEYS, [\"name\"]);\nvar MENU_ITEM_RADIO_KEYS = MENU_ITEM_CHECKBOX_KEYS;\nvar MENU_SEPARATOR_KEYS = MENU_ITEM_KEYS;\n\nexport { MENU_KEYS as M, MENU_ARROW_KEYS as a, MENU_BAR_KEYS as b, MENU_BUTTON_KEYS as c, MENU_GROUP_KEYS as d, MENU_ITEM_KEYS as e, MENU_ITEM_CHECKBOX_KEYS as f, MENU_ITEM_RADIO_KEYS as g, MENU_SEPARATOR_KEYS as h };\n","function findVisibleSubmenu(submenus) {\n var visibleSubmenu = submenus === null || submenus === void 0 ? void 0 : submenus.find(function (submenu) {\n return submenu.current && !submenu.current.hidden;\n });\n return visibleSubmenu === null || visibleSubmenu === void 0 ? void 0 : visibleSubmenu.current;\n}\n\nexport { findVisibleSubmenu as f };\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar isConstructor = require('../internals/is-constructor');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $Array = Array;\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var IS_CONSTRUCTOR = isConstructor(this);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined);\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod && !(this === $Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n result = IS_CONSTRUCTOR ? new this() : [];\n for (;!(step = call(next, iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = lengthOfArrayLike(O);\n result = IS_CONSTRUCTOR ? new this(length) : $Array(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar isArray = require('../internals/is-array');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Safari < 13 does not throw an error in this case\nvar SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () {\n // makes no sense without proper strict mode support\n if (this !== undefined) return true;\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).length = 1;\n } catch (error) {\n return error instanceof TypeError;\n }\n}();\n\nmodule.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) {\n if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) {\n throw new $TypeError('Cannot set read only .length');\n } return O.length = length;\n} : function (O, length) {\n return O.length = length;\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n};\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","'use strict';\nvar $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n return it;\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\n// eslint-disable-next-line es/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\nvar concat = uncurryThis([].concat);\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line es/no-symbol -- safe\n var symbol = Symbol('assign detection');\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return $assign({}, A)[symbol] !== 7 || objectKeys($assign({}, B)).join('') !== alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","'use strict';\n// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\nvar base = 36;\nvar tMin = 1;\nvar tMax = 26;\nvar skew = 38;\nvar damp = 700;\nvar initialBias = 72;\nvar initialN = 128; // 0x80\nvar delimiter = '-'; // '\\x2D'\nvar regexNonASCII = /[^\\0-\\u007E]/; // non-ASCII chars\nvar regexSeparators = /[.\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\nvar OVERFLOW_ERROR = 'Overflow: input needs wider integers to process';\nvar baseMinusTMin = base - tMin;\n\nvar $RangeError = RangeError;\nvar exec = uncurryThis(regexSeparators.exec);\nvar floor = Math.floor;\nvar fromCharCode = String.fromCharCode;\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar join = uncurryThis([].join);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar split = uncurryThis(''.split);\nvar toLowerCase = uncurryThis(''.toLowerCase);\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n */\nvar ucs2decode = function (string) {\n var output = [];\n var counter = 0;\n var length = string.length;\n while (counter < length) {\n var value = charCodeAt(string, counter++);\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n // It's a high surrogate, and there is a next character.\n var extra = charCodeAt(string, counter++);\n if ((extra & 0xFC00) === 0xDC00) { // Low surrogate.\n push(output, ((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n // It's an unmatched surrogate; only append this code unit, in case the\n // next code unit is the high surrogate of a surrogate pair.\n push(output, value);\n counter--;\n }\n } else {\n push(output, value);\n }\n }\n return output;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n */\nvar digitToBasic = function (digit) {\n // 0..25 map to ASCII a..z or A..Z\n // 26..35 map to ASCII 0..9\n return digit + 22 + 75 * (digit < 26);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n */\nvar adapt = function (delta, numPoints, firstTime) {\n var k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n while (delta > baseMinusTMin * tMax >> 1) {\n delta = floor(delta / baseMinusTMin);\n k += base;\n }\n return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n */\nvar encode = function (input) {\n var output = [];\n\n // Convert the input in UCS-2 to an array of Unicode code points.\n input = ucs2decode(input);\n\n // Cache the length.\n var inputLength = input.length;\n\n // Initialize the state.\n var n = initialN;\n var delta = 0;\n var bias = initialBias;\n var i, currentValue;\n\n // Handle the basic code points.\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < 0x80) {\n push(output, fromCharCode(currentValue));\n }\n }\n\n var basicLength = output.length; // number of basic code points.\n var handledCPCount = basicLength; // number of code points that have been handled;\n\n // Finish the basic string with a delimiter unless it's empty.\n if (basicLength) {\n push(output, delimiter);\n }\n\n // Main encoding loop:\n while (handledCPCount < inputLength) {\n // All non-basic code points < n have been handled already. Find the next larger one:\n var m = maxInt;\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n }\n\n // Increase `delta` enough to advance the decoder's state to , but guard against overflow.\n var handledCPCountPlusOne = handledCPCount + 1;\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n throw new $RangeError(OVERFLOW_ERROR);\n }\n\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < n && ++delta > maxInt) {\n throw new $RangeError(OVERFLOW_ERROR);\n }\n if (currentValue === n) {\n // Represent delta as a generalized variable-length integer.\n var q = delta;\n var k = base;\n while (true) {\n var t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n if (q < t) break;\n var qMinusT = q - t;\n var baseMinusT = base - t;\n push(output, fromCharCode(digitToBasic(t + qMinusT % baseMinusT)));\n q = floor(qMinusT / baseMinusT);\n k += base;\n }\n\n push(output, fromCharCode(digitToBasic(q)));\n bias = adapt(delta, handledCPCountPlusOne, handledCPCount === basicLength);\n delta = 0;\n handledCPCount++;\n }\n }\n\n delta++;\n n++;\n }\n return join(output, '');\n};\n\nmodule.exports = function (input) {\n var encoded = [];\n var labels = split(replace(toLowerCase(input), regexSeparators, '\\u002E'), '.');\n var i, label;\n for (i = 0; i < labels.length; i++) {\n label = labels[i];\n push(encoded, exec(regexNonASCII, label) ? 'xn--' + encode(label) : label);\n }\n return join(encoded, '.');\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar fails = require('../internals/fails');\n\nvar INCORRECT_TO_LENGTH = fails(function () {\n return [].push.call({ length: 0x100000000 }, 1) !== 4294967297;\n});\n\n// V8 <= 121 and Safari <= 15.4; FF < 23 throws InternalError\n// https://bugs.chromium.org/p/v8/issues/detail?id=12681\nvar properErrorOnNonWritableLength = function () {\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).push();\n } catch (error) {\n return error instanceof TypeError;\n }\n};\n\nvar FORCED = INCORRECT_TO_LENGTH || !properErrorOnNonWritableLength();\n\n// `Array.prototype.push` method\n// https://tc39.es/ecma262/#sec-array.prototype.push\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n push: function push(item) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var argCount = arguments.length;\n doesNotExceedSafeInteger(len + argCount);\n for (var i = 0; i < argCount; i++) {\n O[len] = arguments[i];\n len++;\n }\n setArrayLength(O, len);\n return len;\n }\n});\n","'use strict';\n// this method was added to unscopables after implementation\n// in popular engines, so it's moved to a separate module\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('flatMap');\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return createIterResultObject(undefined, true);\n point = charAt(string, index);\n state.index += point.length;\n return createIterResultObject(point, false);\n});\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.string.iterator');\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/url-constructor-detection');\nvar global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar anInstance = require('../internals/an-instance');\nvar hasOwn = require('../internals/has-own-property');\nvar assign = require('../internals/object-assign');\nvar arrayFrom = require('../internals/array-from');\nvar arraySlice = require('../internals/array-slice');\nvar codeAt = require('../internals/string-multibyte').codeAt;\nvar toASCII = require('../internals/string-punycode-to-ascii');\nvar $toString = require('../internals/to-string');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar URLSearchParamsModule = require('../modules/web.url-search-params.constructor');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalURLState = InternalStateModule.getterFor('URL');\nvar URLSearchParams = URLSearchParamsModule.URLSearchParams;\nvar getInternalSearchParamsState = URLSearchParamsModule.getState;\n\nvar NativeURL = global.URL;\nvar TypeError = global.TypeError;\nvar parseInt = global.parseInt;\nvar floor = Math.floor;\nvar pow = Math.pow;\nvar charAt = uncurryThis(''.charAt);\nvar exec = uncurryThis(/./.exec);\nvar join = uncurryThis([].join);\nvar numberToString = uncurryThis(1.0.toString);\nvar pop = uncurryThis([].pop);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar shift = uncurryThis([].shift);\nvar split = uncurryThis(''.split);\nvar stringSlice = uncurryThis(''.slice);\nvar toLowerCase = uncurryThis(''.toLowerCase);\nvar unshift = uncurryThis([].unshift);\n\nvar INVALID_AUTHORITY = 'Invalid authority';\nvar INVALID_SCHEME = 'Invalid scheme';\nvar INVALID_HOST = 'Invalid host';\nvar INVALID_PORT = 'Invalid port';\n\nvar ALPHA = /[a-z]/i;\n// eslint-disable-next-line regexp/no-obscure-range -- safe\nvar ALPHANUMERIC = /[\\d+-.a-z]/i;\nvar DIGIT = /\\d/;\nvar HEX_START = /^0x/i;\nvar OCT = /^[0-7]+$/;\nvar DEC = /^\\d+$/;\nvar HEX = /^[\\da-f]+$/i;\n/* eslint-disable regexp/no-control-character -- safe */\nvar FORBIDDEN_HOST_CODE_POINT = /[\\0\\t\\n\\r #%/:<>?@[\\\\\\]^|]/;\nvar FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\\0\\t\\n\\r #/:<>?@[\\\\\\]^|]/;\nvar LEADING_C0_CONTROL_OR_SPACE = /^[\\u0000-\\u0020]+/;\nvar TRAILING_C0_CONTROL_OR_SPACE = /(^|[^\\u0000-\\u0020])[\\u0000-\\u0020]+$/;\nvar TAB_AND_NEW_LINE = /[\\t\\n\\r]/g;\n/* eslint-enable regexp/no-control-character -- safe */\nvar EOF;\n\n// https://url.spec.whatwg.org/#ipv4-number-parser\nvar parseIPv4 = function (input) {\n var parts = split(input, '.');\n var partsLength, numbers, index, part, radix, number, ipv4;\n if (parts.length && parts[parts.length - 1] === '') {\n parts.length--;\n }\n partsLength = parts.length;\n if (partsLength > 4) return input;\n numbers = [];\n for (index = 0; index < partsLength; index++) {\n part = parts[index];\n if (part === '') return input;\n radix = 10;\n if (part.length > 1 && charAt(part, 0) === '0') {\n radix = exec(HEX_START, part) ? 16 : 8;\n part = stringSlice(part, radix === 8 ? 1 : 2);\n }\n if (part === '') {\n number = 0;\n } else {\n if (!exec(radix === 10 ? DEC : radix === 8 ? OCT : HEX, part)) return input;\n number = parseInt(part, radix);\n }\n push(numbers, number);\n }\n for (index = 0; index < partsLength; index++) {\n number = numbers[index];\n if (index === partsLength - 1) {\n if (number >= pow(256, 5 - partsLength)) return null;\n } else if (number > 255) return null;\n }\n ipv4 = pop(numbers);\n for (index = 0; index < numbers.length; index++) {\n ipv4 += numbers[index] * pow(256, 3 - index);\n }\n return ipv4;\n};\n\n// https://url.spec.whatwg.org/#concept-ipv6-parser\n// eslint-disable-next-line max-statements -- TODO\nvar parseIPv6 = function (input) {\n var address = [0, 0, 0, 0, 0, 0, 0, 0];\n var pieceIndex = 0;\n var compress = null;\n var pointer = 0;\n var value, length, numbersSeen, ipv4Piece, number, swaps, swap;\n\n var chr = function () {\n return charAt(input, pointer);\n };\n\n if (chr() === ':') {\n if (charAt(input, 1) !== ':') return;\n pointer += 2;\n pieceIndex++;\n compress = pieceIndex;\n }\n while (chr()) {\n if (pieceIndex === 8) return;\n if (chr() === ':') {\n if (compress !== null) return;\n pointer++;\n pieceIndex++;\n compress = pieceIndex;\n continue;\n }\n value = length = 0;\n while (length < 4 && exec(HEX, chr())) {\n value = value * 16 + parseInt(chr(), 16);\n pointer++;\n length++;\n }\n if (chr() === '.') {\n if (length === 0) return;\n pointer -= length;\n if (pieceIndex > 6) return;\n numbersSeen = 0;\n while (chr()) {\n ipv4Piece = null;\n if (numbersSeen > 0) {\n if (chr() === '.' && numbersSeen < 4) pointer++;\n else return;\n }\n if (!exec(DIGIT, chr())) return;\n while (exec(DIGIT, chr())) {\n number = parseInt(chr(), 10);\n if (ipv4Piece === null) ipv4Piece = number;\n else if (ipv4Piece === 0) return;\n else ipv4Piece = ipv4Piece * 10 + number;\n if (ipv4Piece > 255) return;\n pointer++;\n }\n address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;\n numbersSeen++;\n if (numbersSeen === 2 || numbersSeen === 4) pieceIndex++;\n }\n if (numbersSeen !== 4) return;\n break;\n } else if (chr() === ':') {\n pointer++;\n if (!chr()) return;\n } else if (chr()) return;\n address[pieceIndex++] = value;\n }\n if (compress !== null) {\n swaps = pieceIndex - compress;\n pieceIndex = 7;\n while (pieceIndex !== 0 && swaps > 0) {\n swap = address[pieceIndex];\n address[pieceIndex--] = address[compress + swaps - 1];\n address[compress + --swaps] = swap;\n }\n } else if (pieceIndex !== 8) return;\n return address;\n};\n\nvar findLongestZeroSequence = function (ipv6) {\n var maxIndex = null;\n var maxLength = 1;\n var currStart = null;\n var currLength = 0;\n var index = 0;\n for (; index < 8; index++) {\n if (ipv6[index] !== 0) {\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n currStart = null;\n currLength = 0;\n } else {\n if (currStart === null) currStart = index;\n ++currLength;\n }\n }\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n return maxIndex;\n};\n\n// https://url.spec.whatwg.org/#host-serializing\nvar serializeHost = function (host) {\n var result, index, compress, ignore0;\n // ipv4\n if (typeof host == 'number') {\n result = [];\n for (index = 0; index < 4; index++) {\n unshift(result, host % 256);\n host = floor(host / 256);\n } return join(result, '.');\n // ipv6\n } else if (typeof host == 'object') {\n result = '';\n compress = findLongestZeroSequence(host);\n for (index = 0; index < 8; index++) {\n if (ignore0 && host[index] === 0) continue;\n if (ignore0) ignore0 = false;\n if (compress === index) {\n result += index ? ':' : '::';\n ignore0 = true;\n } else {\n result += numberToString(host[index], 16);\n if (index < 7) result += ':';\n }\n }\n return '[' + result + ']';\n } return host;\n};\n\nvar C0ControlPercentEncodeSet = {};\nvar fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, {\n ' ': 1, '\"': 1, '<': 1, '>': 1, '`': 1\n});\nvar pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, {\n '#': 1, '?': 1, '{': 1, '}': 1\n});\nvar userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, {\n '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\\\': 1, ']': 1, '^': 1, '|': 1\n});\n\nvar percentEncode = function (chr, set) {\n var code = codeAt(chr, 0);\n return code > 0x20 && code < 0x7F && !hasOwn(set, chr) ? chr : encodeURIComponent(chr);\n};\n\n// https://url.spec.whatwg.org/#special-scheme\nvar specialSchemes = {\n ftp: 21,\n file: null,\n http: 80,\n https: 443,\n ws: 80,\n wss: 443\n};\n\n// https://url.spec.whatwg.org/#windows-drive-letter\nvar isWindowsDriveLetter = function (string, normalized) {\n var second;\n return string.length === 2 && exec(ALPHA, charAt(string, 0))\n && ((second = charAt(string, 1)) === ':' || (!normalized && second === '|'));\n};\n\n// https://url.spec.whatwg.org/#start-with-a-windows-drive-letter\nvar startsWithWindowsDriveLetter = function (string) {\n var third;\n return string.length > 1 && isWindowsDriveLetter(stringSlice(string, 0, 2)) && (\n string.length === 2 ||\n ((third = charAt(string, 2)) === '/' || third === '\\\\' || third === '?' || third === '#')\n );\n};\n\n// https://url.spec.whatwg.org/#single-dot-path-segment\nvar isSingleDot = function (segment) {\n return segment === '.' || toLowerCase(segment) === '%2e';\n};\n\n// https://url.spec.whatwg.org/#double-dot-path-segment\nvar isDoubleDot = function (segment) {\n segment = toLowerCase(segment);\n return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e';\n};\n\n// States:\nvar SCHEME_START = {};\nvar SCHEME = {};\nvar NO_SCHEME = {};\nvar SPECIAL_RELATIVE_OR_AUTHORITY = {};\nvar PATH_OR_AUTHORITY = {};\nvar RELATIVE = {};\nvar RELATIVE_SLASH = {};\nvar SPECIAL_AUTHORITY_SLASHES = {};\nvar SPECIAL_AUTHORITY_IGNORE_SLASHES = {};\nvar AUTHORITY = {};\nvar HOST = {};\nvar HOSTNAME = {};\nvar PORT = {};\nvar FILE = {};\nvar FILE_SLASH = {};\nvar FILE_HOST = {};\nvar PATH_START = {};\nvar PATH = {};\nvar CANNOT_BE_A_BASE_URL_PATH = {};\nvar QUERY = {};\nvar FRAGMENT = {};\n\nvar URLState = function (url, isBase, base) {\n var urlString = $toString(url);\n var baseState, failure, searchParams;\n if (isBase) {\n failure = this.parse(urlString);\n if (failure) throw new TypeError(failure);\n this.searchParams = null;\n } else {\n if (base !== undefined) baseState = new URLState(base, true);\n failure = this.parse(urlString, null, baseState);\n if (failure) throw new TypeError(failure);\n searchParams = getInternalSearchParamsState(new URLSearchParams());\n searchParams.bindURL(this);\n this.searchParams = searchParams;\n }\n};\n\nURLState.prototype = {\n type: 'URL',\n // https://url.spec.whatwg.org/#url-parsing\n // eslint-disable-next-line max-statements -- TODO\n parse: function (input, stateOverride, base) {\n var url = this;\n var state = stateOverride || SCHEME_START;\n var pointer = 0;\n var buffer = '';\n var seenAt = false;\n var seenBracket = false;\n var seenPasswordToken = false;\n var codePoints, chr, bufferCodePoints, failure;\n\n input = $toString(input);\n\n if (!stateOverride) {\n url.scheme = '';\n url.username = '';\n url.password = '';\n url.host = null;\n url.port = null;\n url.path = [];\n url.query = null;\n url.fragment = null;\n url.cannotBeABaseURL = false;\n input = replace(input, LEADING_C0_CONTROL_OR_SPACE, '');\n input = replace(input, TRAILING_C0_CONTROL_OR_SPACE, '$1');\n }\n\n input = replace(input, TAB_AND_NEW_LINE, '');\n\n codePoints = arrayFrom(input);\n\n while (pointer <= codePoints.length) {\n chr = codePoints[pointer];\n switch (state) {\n case SCHEME_START:\n if (chr && exec(ALPHA, chr)) {\n buffer += toLowerCase(chr);\n state = SCHEME;\n } else if (!stateOverride) {\n state = NO_SCHEME;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case SCHEME:\n if (chr && (exec(ALPHANUMERIC, chr) || chr === '+' || chr === '-' || chr === '.')) {\n buffer += toLowerCase(chr);\n } else if (chr === ':') {\n if (stateOverride && (\n (url.isSpecial() !== hasOwn(specialSchemes, buffer)) ||\n (buffer === 'file' && (url.includesCredentials() || url.port !== null)) ||\n (url.scheme === 'file' && !url.host)\n )) return;\n url.scheme = buffer;\n if (stateOverride) {\n if (url.isSpecial() && specialSchemes[url.scheme] === url.port) url.port = null;\n return;\n }\n buffer = '';\n if (url.scheme === 'file') {\n state = FILE;\n } else if (url.isSpecial() && base && base.scheme === url.scheme) {\n state = SPECIAL_RELATIVE_OR_AUTHORITY;\n } else if (url.isSpecial()) {\n state = SPECIAL_AUTHORITY_SLASHES;\n } else if (codePoints[pointer + 1] === '/') {\n state = PATH_OR_AUTHORITY;\n pointer++;\n } else {\n url.cannotBeABaseURL = true;\n push(url.path, '');\n state = CANNOT_BE_A_BASE_URL_PATH;\n }\n } else if (!stateOverride) {\n buffer = '';\n state = NO_SCHEME;\n pointer = 0;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case NO_SCHEME:\n if (!base || (base.cannotBeABaseURL && chr !== '#')) return INVALID_SCHEME;\n if (base.cannotBeABaseURL && chr === '#') {\n url.scheme = base.scheme;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n url.cannotBeABaseURL = true;\n state = FRAGMENT;\n break;\n }\n state = base.scheme === 'file' ? FILE : RELATIVE;\n continue;\n\n case SPECIAL_RELATIVE_OR_AUTHORITY:\n if (chr === '/' && codePoints[pointer + 1] === '/') {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n pointer++;\n } else {\n state = RELATIVE;\n continue;\n } break;\n\n case PATH_OR_AUTHORITY:\n if (chr === '/') {\n state = AUTHORITY;\n break;\n } else {\n state = PATH;\n continue;\n }\n\n case RELATIVE:\n url.scheme = base.scheme;\n if (chr === EOF) {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = base.query;\n } else if (chr === '/' || (chr === '\\\\' && url.isSpecial())) {\n state = RELATIVE_SLASH;\n } else if (chr === '?') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = '';\n state = QUERY;\n } else if (chr === '#') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.path.length--;\n state = PATH;\n continue;\n } break;\n\n case RELATIVE_SLASH:\n if (url.isSpecial() && (chr === '/' || chr === '\\\\')) {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n } else if (chr === '/') {\n state = AUTHORITY;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n state = PATH;\n continue;\n } break;\n\n case SPECIAL_AUTHORITY_SLASHES:\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n if (chr !== '/' || charAt(buffer, pointer + 1) !== '/') continue;\n pointer++;\n break;\n\n case SPECIAL_AUTHORITY_IGNORE_SLASHES:\n if (chr !== '/' && chr !== '\\\\') {\n state = AUTHORITY;\n continue;\n } break;\n\n case AUTHORITY:\n if (chr === '@') {\n if (seenAt) buffer = '%40' + buffer;\n seenAt = true;\n bufferCodePoints = arrayFrom(buffer);\n for (var i = 0; i < bufferCodePoints.length; i++) {\n var codePoint = bufferCodePoints[i];\n if (codePoint === ':' && !seenPasswordToken) {\n seenPasswordToken = true;\n continue;\n }\n var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet);\n if (seenPasswordToken) url.password += encodedCodePoints;\n else url.username += encodedCodePoints;\n }\n buffer = '';\n } else if (\n chr === EOF || chr === '/' || chr === '?' || chr === '#' ||\n (chr === '\\\\' && url.isSpecial())\n ) {\n if (seenAt && buffer === '') return INVALID_AUTHORITY;\n pointer -= arrayFrom(buffer).length + 1;\n buffer = '';\n state = HOST;\n } else buffer += chr;\n break;\n\n case HOST:\n case HOSTNAME:\n if (stateOverride && url.scheme === 'file') {\n state = FILE_HOST;\n continue;\n } else if (chr === ':' && !seenBracket) {\n if (buffer === '') return INVALID_HOST;\n failure = url.parseHost(buffer);\n if (failure) return failure;\n buffer = '';\n state = PORT;\n if (stateOverride === HOSTNAME) return;\n } else if (\n chr === EOF || chr === '/' || chr === '?' || chr === '#' ||\n (chr === '\\\\' && url.isSpecial())\n ) {\n if (url.isSpecial() && buffer === '') return INVALID_HOST;\n if (stateOverride && buffer === '' && (url.includesCredentials() || url.port !== null)) return;\n failure = url.parseHost(buffer);\n if (failure) return failure;\n buffer = '';\n state = PATH_START;\n if (stateOverride) return;\n continue;\n } else {\n if (chr === '[') seenBracket = true;\n else if (chr === ']') seenBracket = false;\n buffer += chr;\n } break;\n\n case PORT:\n if (exec(DIGIT, chr)) {\n buffer += chr;\n } else if (\n chr === EOF || chr === '/' || chr === '?' || chr === '#' ||\n (chr === '\\\\' && url.isSpecial()) ||\n stateOverride\n ) {\n if (buffer !== '') {\n var port = parseInt(buffer, 10);\n if (port > 0xFFFF) return INVALID_PORT;\n url.port = (url.isSpecial() && port === specialSchemes[url.scheme]) ? null : port;\n buffer = '';\n }\n if (stateOverride) return;\n state = PATH_START;\n continue;\n } else return INVALID_PORT;\n break;\n\n case FILE:\n url.scheme = 'file';\n if (chr === '/' || chr === '\\\\') state = FILE_SLASH;\n else if (base && base.scheme === 'file') {\n switch (chr) {\n case EOF:\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = base.query;\n break;\n case '?':\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = '';\n state = QUERY;\n break;\n case '#':\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n break;\n default:\n if (!startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) {\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.shortenPath();\n }\n state = PATH;\n continue;\n }\n } else {\n state = PATH;\n continue;\n } break;\n\n case FILE_SLASH:\n if (chr === '/' || chr === '\\\\') {\n state = FILE_HOST;\n break;\n }\n if (base && base.scheme === 'file' && !startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) {\n if (isWindowsDriveLetter(base.path[0], true)) push(url.path, base.path[0]);\n else url.host = base.host;\n }\n state = PATH;\n continue;\n\n case FILE_HOST:\n if (chr === EOF || chr === '/' || chr === '\\\\' || chr === '?' || chr === '#') {\n if (!stateOverride && isWindowsDriveLetter(buffer)) {\n state = PATH;\n } else if (buffer === '') {\n url.host = '';\n if (stateOverride) return;\n state = PATH_START;\n } else {\n failure = url.parseHost(buffer);\n if (failure) return failure;\n if (url.host === 'localhost') url.host = '';\n if (stateOverride) return;\n buffer = '';\n state = PATH_START;\n } continue;\n } else buffer += chr;\n break;\n\n case PATH_START:\n if (url.isSpecial()) {\n state = PATH;\n if (chr !== '/' && chr !== '\\\\') continue;\n } else if (!stateOverride && chr === '?') {\n url.query = '';\n state = QUERY;\n } else if (!stateOverride && chr === '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr !== EOF) {\n state = PATH;\n if (chr !== '/') continue;\n } break;\n\n case PATH:\n if (\n chr === EOF || chr === '/' ||\n (chr === '\\\\' && url.isSpecial()) ||\n (!stateOverride && (chr === '?' || chr === '#'))\n ) {\n if (isDoubleDot(buffer)) {\n url.shortenPath();\n if (chr !== '/' && !(chr === '\\\\' && url.isSpecial())) {\n push(url.path, '');\n }\n } else if (isSingleDot(buffer)) {\n if (chr !== '/' && !(chr === '\\\\' && url.isSpecial())) {\n push(url.path, '');\n }\n } else {\n if (url.scheme === 'file' && !url.path.length && isWindowsDriveLetter(buffer)) {\n if (url.host) url.host = '';\n buffer = charAt(buffer, 0) + ':'; // normalize windows drive letter\n }\n push(url.path, buffer);\n }\n buffer = '';\n if (url.scheme === 'file' && (chr === EOF || chr === '?' || chr === '#')) {\n while (url.path.length > 1 && url.path[0] === '') {\n shift(url.path);\n }\n }\n if (chr === '?') {\n url.query = '';\n state = QUERY;\n } else if (chr === '#') {\n url.fragment = '';\n state = FRAGMENT;\n }\n } else {\n buffer += percentEncode(chr, pathPercentEncodeSet);\n } break;\n\n case CANNOT_BE_A_BASE_URL_PATH:\n if (chr === '?') {\n url.query = '';\n state = QUERY;\n } else if (chr === '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr !== EOF) {\n url.path[0] += percentEncode(chr, C0ControlPercentEncodeSet);\n } break;\n\n case QUERY:\n if (!stateOverride && chr === '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr !== EOF) {\n if (chr === \"'\" && url.isSpecial()) url.query += '%27';\n else if (chr === '#') url.query += '%23';\n else url.query += percentEncode(chr, C0ControlPercentEncodeSet);\n } break;\n\n case FRAGMENT:\n if (chr !== EOF) url.fragment += percentEncode(chr, fragmentPercentEncodeSet);\n break;\n }\n\n pointer++;\n }\n },\n // https://url.spec.whatwg.org/#host-parsing\n parseHost: function (input) {\n var result, codePoints, index;\n if (charAt(input, 0) === '[') {\n if (charAt(input, input.length - 1) !== ']') return INVALID_HOST;\n result = parseIPv6(stringSlice(input, 1, -1));\n if (!result) return INVALID_HOST;\n this.host = result;\n // opaque host\n } else if (!this.isSpecial()) {\n if (exec(FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT, input)) return INVALID_HOST;\n result = '';\n codePoints = arrayFrom(input);\n for (index = 0; index < codePoints.length; index++) {\n result += percentEncode(codePoints[index], C0ControlPercentEncodeSet);\n }\n this.host = result;\n } else {\n input = toASCII(input);\n if (exec(FORBIDDEN_HOST_CODE_POINT, input)) return INVALID_HOST;\n result = parseIPv4(input);\n if (result === null) return INVALID_HOST;\n this.host = result;\n }\n },\n // https://url.spec.whatwg.org/#cannot-have-a-username-password-port\n cannotHaveUsernamePasswordPort: function () {\n return !this.host || this.cannotBeABaseURL || this.scheme === 'file';\n },\n // https://url.spec.whatwg.org/#include-credentials\n includesCredentials: function () {\n return this.username !== '' || this.password !== '';\n },\n // https://url.spec.whatwg.org/#is-special\n isSpecial: function () {\n return hasOwn(specialSchemes, this.scheme);\n },\n // https://url.spec.whatwg.org/#shorten-a-urls-path\n shortenPath: function () {\n var path = this.path;\n var pathSize = path.length;\n if (pathSize && (this.scheme !== 'file' || pathSize !== 1 || !isWindowsDriveLetter(path[0], true))) {\n path.length--;\n }\n },\n // https://url.spec.whatwg.org/#concept-url-serializer\n serialize: function () {\n var url = this;\n var scheme = url.scheme;\n var username = url.username;\n var password = url.password;\n var host = url.host;\n var port = url.port;\n var path = url.path;\n var query = url.query;\n var fragment = url.fragment;\n var output = scheme + ':';\n if (host !== null) {\n output += '//';\n if (url.includesCredentials()) {\n output += username + (password ? ':' + password : '') + '@';\n }\n output += serializeHost(host);\n if (port !== null) output += ':' + port;\n } else if (scheme === 'file') output += '//';\n output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : '';\n if (query !== null) output += '?' + query;\n if (fragment !== null) output += '#' + fragment;\n return output;\n },\n // https://url.spec.whatwg.org/#dom-url-href\n setHref: function (href) {\n var failure = this.parse(href);\n if (failure) throw new TypeError(failure);\n this.searchParams.update();\n },\n // https://url.spec.whatwg.org/#dom-url-origin\n getOrigin: function () {\n var scheme = this.scheme;\n var port = this.port;\n if (scheme === 'blob') try {\n return new URLConstructor(scheme.path[0]).origin;\n } catch (error) {\n return 'null';\n }\n if (scheme === 'file' || !this.isSpecial()) return 'null';\n return scheme + '://' + serializeHost(this.host) + (port !== null ? ':' + port : '');\n },\n // https://url.spec.whatwg.org/#dom-url-protocol\n getProtocol: function () {\n return this.scheme + ':';\n },\n setProtocol: function (protocol) {\n this.parse($toString(protocol) + ':', SCHEME_START);\n },\n // https://url.spec.whatwg.org/#dom-url-username\n getUsername: function () {\n return this.username;\n },\n setUsername: function (username) {\n var codePoints = arrayFrom($toString(username));\n if (this.cannotHaveUsernamePasswordPort()) return;\n this.username = '';\n for (var i = 0; i < codePoints.length; i++) {\n this.username += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n },\n // https://url.spec.whatwg.org/#dom-url-password\n getPassword: function () {\n return this.password;\n },\n setPassword: function (password) {\n var codePoints = arrayFrom($toString(password));\n if (this.cannotHaveUsernamePasswordPort()) return;\n this.password = '';\n for (var i = 0; i < codePoints.length; i++) {\n this.password += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n },\n // https://url.spec.whatwg.org/#dom-url-host\n getHost: function () {\n var host = this.host;\n var port = this.port;\n return host === null ? ''\n : port === null ? serializeHost(host)\n : serializeHost(host) + ':' + port;\n },\n setHost: function (host) {\n if (this.cannotBeABaseURL) return;\n this.parse(host, HOST);\n },\n // https://url.spec.whatwg.org/#dom-url-hostname\n getHostname: function () {\n var host = this.host;\n return host === null ? '' : serializeHost(host);\n },\n setHostname: function (hostname) {\n if (this.cannotBeABaseURL) return;\n this.parse(hostname, HOSTNAME);\n },\n // https://url.spec.whatwg.org/#dom-url-port\n getPort: function () {\n var port = this.port;\n return port === null ? '' : $toString(port);\n },\n setPort: function (port) {\n if (this.cannotHaveUsernamePasswordPort()) return;\n port = $toString(port);\n if (port === '') this.port = null;\n else this.parse(port, PORT);\n },\n // https://url.spec.whatwg.org/#dom-url-pathname\n getPathname: function () {\n var path = this.path;\n return this.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : '';\n },\n setPathname: function (pathname) {\n if (this.cannotBeABaseURL) return;\n this.path = [];\n this.parse(pathname, PATH_START);\n },\n // https://url.spec.whatwg.org/#dom-url-search\n getSearch: function () {\n var query = this.query;\n return query ? '?' + query : '';\n },\n setSearch: function (search) {\n search = $toString(search);\n if (search === '') {\n this.query = null;\n } else {\n if (charAt(search, 0) === '?') search = stringSlice(search, 1);\n this.query = '';\n this.parse(search, QUERY);\n }\n this.searchParams.update();\n },\n // https://url.spec.whatwg.org/#dom-url-searchparams\n getSearchParams: function () {\n return this.searchParams.facade;\n },\n // https://url.spec.whatwg.org/#dom-url-hash\n getHash: function () {\n var fragment = this.fragment;\n return fragment ? '#' + fragment : '';\n },\n setHash: function (hash) {\n hash = $toString(hash);\n if (hash === '') {\n this.fragment = null;\n return;\n }\n if (charAt(hash, 0) === '#') hash = stringSlice(hash, 1);\n this.fragment = '';\n this.parse(hash, FRAGMENT);\n },\n update: function () {\n this.query = this.searchParams.serialize() || null;\n }\n};\n\n// `URL` constructor\n// https://url.spec.whatwg.org/#url-class\nvar URLConstructor = function URL(url /* , base */) {\n var that = anInstance(this, URLPrototype);\n var base = validateArgumentsLength(arguments.length, 1) > 1 ? arguments[1] : undefined;\n var state = setInternalState(that, new URLState(url, false, base));\n if (!DESCRIPTORS) {\n that.href = state.serialize();\n that.origin = state.getOrigin();\n that.protocol = state.getProtocol();\n that.username = state.getUsername();\n that.password = state.getPassword();\n that.host = state.getHost();\n that.hostname = state.getHostname();\n that.port = state.getPort();\n that.pathname = state.getPathname();\n that.search = state.getSearch();\n that.searchParams = state.getSearchParams();\n that.hash = state.getHash();\n }\n};\n\nvar URLPrototype = URLConstructor.prototype;\n\nvar accessorDescriptor = function (getter, setter) {\n return {\n get: function () {\n return getInternalURLState(this)[getter]();\n },\n set: setter && function (value) {\n return getInternalURLState(this)[setter](value);\n },\n configurable: true,\n enumerable: true\n };\n};\n\nif (DESCRIPTORS) {\n // `URL.prototype.href` accessors pair\n // https://url.spec.whatwg.org/#dom-url-href\n defineBuiltInAccessor(URLPrototype, 'href', accessorDescriptor('serialize', 'setHref'));\n // `URL.prototype.origin` getter\n // https://url.spec.whatwg.org/#dom-url-origin\n defineBuiltInAccessor(URLPrototype, 'origin', accessorDescriptor('getOrigin'));\n // `URL.prototype.protocol` accessors pair\n // https://url.spec.whatwg.org/#dom-url-protocol\n defineBuiltInAccessor(URLPrototype, 'protocol', accessorDescriptor('getProtocol', 'setProtocol'));\n // `URL.prototype.username` accessors pair\n // https://url.spec.whatwg.org/#dom-url-username\n defineBuiltInAccessor(URLPrototype, 'username', accessorDescriptor('getUsername', 'setUsername'));\n // `URL.prototype.password` accessors pair\n // https://url.spec.whatwg.org/#dom-url-password\n defineBuiltInAccessor(URLPrototype, 'password', accessorDescriptor('getPassword', 'setPassword'));\n // `URL.prototype.host` accessors pair\n // https://url.spec.whatwg.org/#dom-url-host\n defineBuiltInAccessor(URLPrototype, 'host', accessorDescriptor('getHost', 'setHost'));\n // `URL.prototype.hostname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hostname\n defineBuiltInAccessor(URLPrototype, 'hostname', accessorDescriptor('getHostname', 'setHostname'));\n // `URL.prototype.port` accessors pair\n // https://url.spec.whatwg.org/#dom-url-port\n defineBuiltInAccessor(URLPrototype, 'port', accessorDescriptor('getPort', 'setPort'));\n // `URL.prototype.pathname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-pathname\n defineBuiltInAccessor(URLPrototype, 'pathname', accessorDescriptor('getPathname', 'setPathname'));\n // `URL.prototype.search` accessors pair\n // https://url.spec.whatwg.org/#dom-url-search\n defineBuiltInAccessor(URLPrototype, 'search', accessorDescriptor('getSearch', 'setSearch'));\n // `URL.prototype.searchParams` getter\n // https://url.spec.whatwg.org/#dom-url-searchparams\n defineBuiltInAccessor(URLPrototype, 'searchParams', accessorDescriptor('getSearchParams'));\n // `URL.prototype.hash` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hash\n defineBuiltInAccessor(URLPrototype, 'hash', accessorDescriptor('getHash', 'setHash'));\n}\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\ndefineBuiltIn(URLPrototype, 'toJSON', function toJSON() {\n return getInternalURLState(this).serialize();\n}, { enumerable: true });\n\n// `URL.prototype.toString` method\n// https://url.spec.whatwg.org/#URL-stringification-behavior\ndefineBuiltIn(URLPrototype, 'toString', function toString() {\n return getInternalURLState(this).serialize();\n}, { enumerable: true });\n\nif (NativeURL) {\n var nativeCreateObjectURL = NativeURL.createObjectURL;\n var nativeRevokeObjectURL = NativeURL.revokeObjectURL;\n // `URL.createObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL\n if (nativeCreateObjectURL) defineBuiltIn(URLConstructor, 'createObjectURL', bind(nativeCreateObjectURL, NativeURL));\n // `URL.revokeObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL\n if (nativeRevokeObjectURL) defineBuiltIn(URLConstructor, 'revokeObjectURL', bind(nativeRevokeObjectURL, NativeURL));\n}\n\nsetToStringTag(URLConstructor, 'URL');\n\n$({ global: true, constructor: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, {\n URL: URLConstructor\n});\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/web.url.constructor');\n","\"use client\";\nimport {\n createCollectionStore\n} from \"./URUD7X4C.js\";\nimport {\n createStore,\n setup,\n sync\n} from \"./R676XYVY.js\";\nimport {\n defaultValue\n} from \"./22HHDS5F.js\";\nimport {\n flatten2DArray,\n reverseArray\n} from \"./7PRQYBBV.js\";\nimport {\n __spreadProps,\n __spreadValues\n} from \"./4R3V3JGP.js\";\n\n// src/composite/composite-store.ts\nvar NULL_ITEM = { id: null };\nfunction findFirstEnabledItem(items, excludeId) {\n return items.find((item) => {\n if (excludeId) {\n return !item.disabled && item.id !== excludeId;\n }\n return !item.disabled;\n });\n}\nfunction getEnabledItems(items, excludeId) {\n return items.filter((item) => {\n if (excludeId) {\n return !item.disabled && item.id !== excludeId;\n }\n return !item.disabled;\n });\n}\nfunction getOppositeOrientation(orientation) {\n if (orientation === \"vertical\")\n return \"horizontal\";\n if (orientation === \"horizontal\")\n return \"vertical\";\n return;\n}\nfunction getItemsInRow(items, rowId) {\n return items.filter((item) => item.rowId === rowId);\n}\nfunction flipItems(items, activeId, shouldInsertNullItem = false) {\n const index = items.findIndex((item) => item.id === activeId);\n return [\n ...items.slice(index + 1),\n ...shouldInsertNullItem ? [NULL_ITEM] : [],\n ...items.slice(0, index)\n ];\n}\nfunction groupItemsByRows(items) {\n const rows = [];\n for (const item of items) {\n const row = rows.find((currentRow) => {\n var _a;\n return ((_a = currentRow[0]) == null ? void 0 : _a.rowId) === item.rowId;\n });\n if (row) {\n row.push(item);\n } else {\n rows.push([item]);\n }\n }\n return rows;\n}\nfunction getMaxRowLength(array) {\n let maxLength = 0;\n for (const { length } of array) {\n if (length > maxLength) {\n maxLength = length;\n }\n }\n return maxLength;\n}\nfunction createEmptyItem(rowId) {\n return {\n id: \"__EMPTY_ITEM__\",\n disabled: true,\n rowId\n };\n}\nfunction normalizeRows(rows, activeId, focusShift) {\n const maxLength = getMaxRowLength(rows);\n for (const row of rows) {\n for (let i = 0; i < maxLength; i += 1) {\n const item = row[i];\n if (!item || focusShift && item.disabled) {\n const isFirst = i === 0;\n const previousItem = isFirst && focusShift ? findFirstEnabledItem(row) : row[i - 1];\n row[i] = previousItem && activeId !== previousItem.id && focusShift ? previousItem : createEmptyItem(previousItem == null ? void 0 : previousItem.rowId);\n }\n }\n }\n return rows;\n}\nfunction verticalizeItems(items) {\n const rows = groupItemsByRows(items);\n const maxLength = getMaxRowLength(rows);\n const verticalized = [];\n for (let i = 0; i < maxLength; i += 1) {\n for (const row of rows) {\n const item = row[i];\n if (item) {\n verticalized.push(__spreadProps(__spreadValues({}, item), {\n // If there's no rowId, it means that it's not a grid composite, but\n // a single row instead. So, instead of verticalizing it, that is,\n // assigning a different rowId based on the column index, we keep it\n // undefined so they will be part of the same row. This is useful\n // when using up/down on one-dimensional composites.\n rowId: item.rowId ? `${i}` : void 0\n }));\n }\n }\n }\n return verticalized;\n}\nfunction createCompositeStore(props = {}) {\n var _a;\n const syncState = (_a = props.store) == null ? void 0 : _a.getState();\n const collection = createCollectionStore(props);\n const activeId = defaultValue(\n props.activeId,\n syncState == null ? void 0 : syncState.activeId,\n props.defaultActiveId\n );\n const initialState = __spreadProps(__spreadValues({}, collection.getState()), {\n activeId,\n baseElement: defaultValue(syncState == null ? void 0 : syncState.baseElement, null),\n includesBaseElement: defaultValue(\n props.includesBaseElement,\n syncState == null ? void 0 : syncState.includesBaseElement,\n activeId === null\n ),\n moves: defaultValue(syncState == null ? void 0 : syncState.moves, 0),\n orientation: defaultValue(\n props.orientation,\n syncState == null ? void 0 : syncState.orientation,\n \"both\"\n ),\n rtl: defaultValue(props.rtl, syncState == null ? void 0 : syncState.rtl, false),\n virtualFocus: defaultValue(\n props.virtualFocus,\n syncState == null ? void 0 : syncState.virtualFocus,\n false\n ),\n focusLoop: defaultValue(props.focusLoop, syncState == null ? void 0 : syncState.focusLoop, false),\n focusWrap: defaultValue(props.focusWrap, syncState == null ? void 0 : syncState.focusWrap, false),\n focusShift: defaultValue(props.focusShift, syncState == null ? void 0 : syncState.focusShift, false)\n });\n const composite = createStore(initialState, collection, props.store);\n setup(\n composite,\n () => sync(composite, [\"renderedItems\", \"activeId\"], (state) => {\n composite.setState(\"activeId\", (activeId2) => {\n var _a2;\n if (activeId2 !== void 0)\n return activeId2;\n return (_a2 = findFirstEnabledItem(state.renderedItems)) == null ? void 0 : _a2.id;\n });\n })\n );\n const getNextId = (items, orientation, hasNullItem, skip) => {\n var _a2, _b;\n const { activeId: activeId2, rtl, focusLoop, focusWrap, includesBaseElement } = composite.getState();\n const isHorizontal = orientation !== \"vertical\";\n const isRTL = rtl && isHorizontal;\n const allItems = isRTL ? reverseArray(items) : items;\n if (activeId2 == null) {\n return (_a2 = findFirstEnabledItem(allItems)) == null ? void 0 : _a2.id;\n }\n const activeItem = allItems.find((item) => item.id === activeId2);\n if (!activeItem) {\n return (_b = findFirstEnabledItem(allItems)) == null ? void 0 : _b.id;\n }\n const isGrid = !!activeItem.rowId;\n const activeIndex = allItems.indexOf(activeItem);\n const nextItems = allItems.slice(activeIndex + 1);\n const nextItemsInRow = getItemsInRow(nextItems, activeItem.rowId);\n if (skip !== void 0) {\n const nextEnabledItemsInRow = getEnabledItems(nextItemsInRow, activeId2);\n const nextItem2 = nextEnabledItemsInRow.slice(skip)[0] || // If we can't find an item, just return the last one.\n nextEnabledItemsInRow[nextEnabledItemsInRow.length - 1];\n return nextItem2 == null ? void 0 : nextItem2.id;\n }\n const oppositeOrientation = getOppositeOrientation(\n // If it's a grid and orientation is not set, it's a next/previous call,\n // which is inherently horizontal. up/down will call next with orientation\n // set to vertical by default (see below on up/down methods).\n isGrid ? orientation || \"horizontal\" : orientation\n );\n const canLoop = focusLoop && focusLoop !== oppositeOrientation;\n const canWrap = isGrid && focusWrap && focusWrap !== oppositeOrientation;\n hasNullItem = hasNullItem || !isGrid && canLoop && includesBaseElement;\n if (canLoop) {\n const loopItems = canWrap && !hasNullItem ? allItems : getItemsInRow(allItems, activeItem.rowId);\n const sortedItems = flipItems(loopItems, activeId2, hasNullItem);\n const nextItem2 = findFirstEnabledItem(sortedItems, activeId2);\n return nextItem2 == null ? void 0 : nextItem2.id;\n }\n if (canWrap) {\n const nextItem2 = findFirstEnabledItem(\n // We can use nextItems, which contains all the next items, including\n // items from other rows, to wrap between rows. However, if there is a\n // null item (the composite container), we'll only use the next items in\n // the row. So moving next from the last item will focus on the\n // composite container. On grid composites, horizontal navigation never\n // focuses on the composite container, only vertical.\n hasNullItem ? nextItemsInRow : nextItems,\n activeId2\n );\n const nextId = hasNullItem ? (nextItem2 == null ? void 0 : nextItem2.id) || null : nextItem2 == null ? void 0 : nextItem2.id;\n return nextId;\n }\n const nextItem = findFirstEnabledItem(nextItemsInRow, activeId2);\n if (!nextItem && hasNullItem) {\n return null;\n }\n return nextItem == null ? void 0 : nextItem.id;\n };\n return __spreadProps(__spreadValues(__spreadValues({}, collection), composite), {\n setBaseElement: (element) => composite.setState(\"baseElement\", element),\n setActiveId: (id) => composite.setState(\"activeId\", id),\n move: (id) => {\n if (id === void 0)\n return;\n composite.setState(\"activeId\", id);\n composite.setState(\"moves\", (moves) => moves + 1);\n },\n first: () => {\n var _a2;\n return (_a2 = findFirstEnabledItem(composite.getState().renderedItems)) == null ? void 0 : _a2.id;\n },\n last: () => {\n var _a2;\n return (_a2 = findFirstEnabledItem(reverseArray(composite.getState().renderedItems))) == null ? void 0 : _a2.id;\n },\n next: (skip) => {\n const { renderedItems, orientation } = composite.getState();\n return getNextId(renderedItems, orientation, false, skip);\n },\n previous: (skip) => {\n var _a2;\n const { renderedItems, orientation, includesBaseElement } = composite.getState();\n const isGrid = !!((_a2 = findFirstEnabledItem(renderedItems)) == null ? void 0 : _a2.rowId);\n const hasNullItem = !isGrid && includesBaseElement;\n return getNextId(\n reverseArray(renderedItems),\n orientation,\n hasNullItem,\n skip\n );\n },\n down: (skip) => {\n const {\n activeId: activeId2,\n renderedItems,\n focusShift,\n focusLoop,\n includesBaseElement\n } = composite.getState();\n const shouldShift = focusShift && !skip;\n const verticalItems = verticalizeItems(\n flatten2DArray(\n normalizeRows(groupItemsByRows(renderedItems), activeId2, shouldShift)\n )\n );\n const canLoop = focusLoop && focusLoop !== \"horizontal\";\n const hasNullItem = canLoop && includesBaseElement;\n return getNextId(verticalItems, \"vertical\", hasNullItem, skip);\n },\n up: (skip) => {\n const { activeId: activeId2, renderedItems, focusShift, includesBaseElement } = composite.getState();\n const shouldShift = focusShift && !skip;\n const verticalItems = verticalizeItems(\n reverseArray(\n flatten2DArray(\n normalizeRows(\n groupItemsByRows(renderedItems),\n activeId2,\n shouldShift\n )\n )\n )\n );\n const hasNullItem = includesBaseElement;\n return getNextId(verticalItems, \"vertical\", hasNullItem, skip);\n }\n });\n}\n\nexport {\n createCompositeStore\n};\n","\"use client\";\n\n// src/utils/array.ts\nfunction toArray(arg) {\n if (Array.isArray(arg)) {\n return arg;\n }\n return typeof arg !== \"undefined\" ? [arg] : [];\n}\nfunction addItemToArray(array, item, index = -1) {\n if (!(index in array)) {\n return [...array, item];\n }\n return [...array.slice(0, index), item, ...array.slice(index)];\n}\nfunction flatten2DArray(array) {\n const flattened = [];\n for (const row of array) {\n flattened.push(...row);\n }\n return flattened;\n}\nfunction reverseArray(array) {\n return array.slice().reverse();\n}\n\nexport {\n toArray,\n addItemToArray,\n flatten2DArray,\n reverseArray\n};\n","\"use client\";\nimport {\n createDialogStore\n} from \"./5RJNXXU2.js\";\nimport {\n createStore,\n mergeStore,\n omit,\n throwOnConflictingProps\n} from \"./R676XYVY.js\";\nimport {\n defaultValue\n} from \"./22HHDS5F.js\";\nimport {\n __objRest,\n __spreadProps,\n __spreadValues\n} from \"./4R3V3JGP.js\";\n\n// src/popover/popover-store.ts\nfunction createPopoverStore(_a = {}) {\n var _b = _a, {\n popover: otherPopover\n } = _b, props = __objRest(_b, [\n \"popover\"\n ]);\n const store = mergeStore(\n props.store,\n omit(otherPopover, [\n \"arrowElement\",\n \"anchorElement\",\n \"contentElement\",\n \"popoverElement\",\n \"disclosureElement\"\n ])\n );\n throwOnConflictingProps(props, store);\n const syncState = store == null ? void 0 : store.getState();\n const dialog = createDialogStore(__spreadProps(__spreadValues({}, props), { store }));\n const placement = defaultValue(\n props.placement,\n syncState == null ? void 0 : syncState.placement,\n \"bottom\"\n );\n const initialState = __spreadProps(__spreadValues({}, dialog.getState()), {\n placement,\n currentPlacement: placement,\n anchorElement: defaultValue(syncState == null ? void 0 : syncState.anchorElement, null),\n popoverElement: defaultValue(syncState == null ? void 0 : syncState.popoverElement, null),\n arrowElement: defaultValue(syncState == null ? void 0 : syncState.arrowElement, null),\n rendered: Symbol(\"rendered\")\n });\n const popover = createStore(initialState, dialog, store);\n return __spreadProps(__spreadValues(__spreadValues({}, dialog), popover), {\n setAnchorElement: (element) => popover.setState(\"anchorElement\", element),\n setPopoverElement: (element) => popover.setState(\"popoverElement\", element),\n setArrowElement: (element) => popover.setState(\"arrowElement\", element),\n render: () => popover.setState(\"rendered\", Symbol(\"rendered\"))\n });\n}\n\nexport {\n createPopoverStore\n};\n","\"use client\";\nimport {\n batch,\n createStore,\n init,\n setup,\n throwOnConflictingProps\n} from \"./R676XYVY.js\";\nimport {\n chain,\n defaultValue\n} from \"./22HHDS5F.js\";\nimport {\n getDocument\n} from \"./RRSZHCH6.js\";\nimport {\n __spreadProps,\n __spreadValues\n} from \"./4R3V3JGP.js\";\n\n// src/collection/collection-store.ts\nfunction isElementPreceding(a, b) {\n return Boolean(\n b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_PRECEDING\n );\n}\nfunction sortBasedOnDOMPosition(items) {\n const pairs = items.map((item, index) => [index, item]);\n let isOrderDifferent = false;\n pairs.sort(([indexA, a], [indexB, b]) => {\n const elementA = a.element;\n const elementB = b.element;\n if (elementA === elementB)\n return 0;\n if (!elementA || !elementB)\n return 0;\n if (isElementPreceding(elementA, elementB)) {\n if (indexA > indexB) {\n isOrderDifferent = true;\n }\n return -1;\n }\n if (indexA < indexB) {\n isOrderDifferent = true;\n }\n return 1;\n });\n if (isOrderDifferent) {\n return pairs.map(([_, item]) => item);\n }\n return items;\n}\nfunction getCommonParent(items) {\n var _a;\n const firstItem = items.find((item) => !!item.element);\n const lastItem = [...items].reverse().find((item) => !!item.element);\n let parentElement = (_a = firstItem == null ? void 0 : firstItem.element) == null ? void 0 : _a.parentElement;\n while (parentElement && (lastItem == null ? void 0 : lastItem.element)) {\n const parent = parentElement;\n if (lastItem && parent.contains(lastItem.element)) {\n return parentElement;\n }\n parentElement = parentElement.parentElement;\n }\n return getDocument(parentElement).body;\n}\nfunction getPrivateStore(store) {\n return store == null ? void 0 : store.__unstablePrivateStore;\n}\nfunction createCollectionStore(props = {}) {\n var _a;\n throwOnConflictingProps(props, props.store);\n const syncState = (_a = props.store) == null ? void 0 : _a.getState();\n const items = defaultValue(\n props.items,\n syncState == null ? void 0 : syncState.items,\n props.defaultItems,\n []\n );\n const itemsMap = new Map(items.map((item) => [item.id, item]));\n const initialState = {\n items,\n renderedItems: defaultValue(syncState == null ? void 0 : syncState.renderedItems, [])\n };\n const syncPrivateStore = getPrivateStore(props.store);\n const privateStore = createStore(\n { items, renderedItems: initialState.renderedItems },\n syncPrivateStore\n );\n const collection = createStore(initialState, props.store);\n const sortItems = (renderedItems) => {\n const sortedItems = sortBasedOnDOMPosition(renderedItems);\n privateStore.setState(\"renderedItems\", sortedItems);\n collection.setState(\"renderedItems\", sortedItems);\n };\n setup(collection, () => init(privateStore));\n setup(privateStore, () => {\n return batch(privateStore, [\"items\"], (state) => {\n collection.setState(\"items\", state.items);\n });\n });\n setup(privateStore, () => {\n return batch(privateStore, [\"renderedItems\"], (state) => {\n let firstRun = true;\n let raf = requestAnimationFrame(() => {\n const { renderedItems } = collection.getState();\n if (state.renderedItems === renderedItems)\n return;\n sortItems(state.renderedItems);\n });\n if (typeof IntersectionObserver !== \"function\") {\n return () => cancelAnimationFrame(raf);\n }\n const ioCallback = () => {\n if (firstRun) {\n firstRun = false;\n return;\n }\n cancelAnimationFrame(raf);\n raf = requestAnimationFrame(() => sortItems(state.renderedItems));\n };\n const root = getCommonParent(state.renderedItems);\n const observer = new IntersectionObserver(ioCallback, { root });\n for (const item of state.renderedItems) {\n if (!item.element)\n continue;\n observer.observe(item.element);\n }\n return () => {\n cancelAnimationFrame(raf);\n observer.disconnect();\n };\n });\n });\n const mergeItem = (item, setItems, canDeleteFromMap = false) => {\n let prevItem;\n setItems((items2) => {\n const index = items2.findIndex(({ id }) => id === item.id);\n const nextItems = items2.slice();\n if (index !== -1) {\n prevItem = items2[index];\n const nextItem = __spreadValues(__spreadValues({}, prevItem), item);\n nextItems[index] = nextItem;\n itemsMap.set(item.id, nextItem);\n } else {\n nextItems.push(item);\n itemsMap.set(item.id, item);\n }\n return nextItems;\n });\n const unmergeItem = () => {\n setItems((items2) => {\n if (!prevItem) {\n if (canDeleteFromMap) {\n itemsMap.delete(item.id);\n }\n return items2.filter(({ id }) => id !== item.id);\n }\n const index = items2.findIndex(({ id }) => id === item.id);\n if (index === -1)\n return items2;\n const nextItems = items2.slice();\n nextItems[index] = prevItem;\n itemsMap.set(item.id, prevItem);\n return nextItems;\n });\n };\n return unmergeItem;\n };\n const registerItem = (item) => mergeItem(\n item,\n (getItems) => privateStore.setState(\"items\", getItems),\n true\n );\n return __spreadProps(__spreadValues({}, collection), {\n registerItem,\n renderItem: (item) => chain(\n registerItem(item),\n mergeItem(\n item,\n (getItems) => privateStore.setState(\"renderedItems\", getItems)\n )\n ),\n item: (id) => {\n if (!id)\n return null;\n let item = itemsMap.get(id);\n if (!item) {\n const { items: items2 } = collection.getState();\n item = items2.find((item2) => item2.id === id);\n if (item) {\n itemsMap.set(id, item);\n }\n }\n return item || null;\n },\n // @ts-expect-error Internal\n __unstablePrivateStore: privateStore\n });\n}\n\nexport {\n createCollectionStore\n};\n","\"use client\";\nimport {\n CollectionContextProvider,\n CollectionScopedContextProvider\n} from \"./MADQZZRL.js\";\nimport {\n createStoreContext\n} from \"./5M6RSQEC.js\";\n\n// src/composite/composite-context.tsx\nimport { createContext } from \"react\";\nvar ctx = createStoreContext(\n [CollectionContextProvider],\n [CollectionScopedContextProvider]\n);\nvar useCompositeContext = ctx.useContext;\nvar useCompositeScopedContext = ctx.useScopedContext;\nvar useCompositeProviderContext = ctx.useProviderContext;\nvar CompositeContextProvider = ctx.ContextProvider;\nvar CompositeScopedContextProvider = ctx.ScopedContextProvider;\nvar CompositeItemContext = createContext(\n void 0\n);\nvar CompositeRowContext = createContext(\n void 0\n);\n\nexport {\n useCompositeContext,\n useCompositeScopedContext,\n useCompositeProviderContext,\n CompositeContextProvider,\n CompositeScopedContextProvider,\n CompositeItemContext,\n CompositeRowContext\n};\n","\"use client\";\n\n// src/composite/utils.ts\nimport { getDocument, isTextField } from \"@ariakit/core/utils/dom\";\nvar NULL_ITEM = { id: null };\nfunction flipItems(items, activeId, shouldInsertNullItem = false) {\n const index = items.findIndex((item) => item.id === activeId);\n return [\n ...items.slice(index + 1),\n ...shouldInsertNullItem ? [NULL_ITEM] : [],\n ...items.slice(0, index)\n ];\n}\nfunction findFirstEnabledItem(items, excludeId) {\n return items.find((item) => {\n if (excludeId) {\n return !item.disabled && item.id !== excludeId;\n }\n return !item.disabled;\n });\n}\nfunction getEnabledItem(store, id) {\n if (!id)\n return null;\n return store.item(id) || null;\n}\nfunction groupItemsByRows(items) {\n const rows = [];\n for (const item of items) {\n const row = rows.find((currentRow) => {\n var _a;\n return ((_a = currentRow[0]) == null ? void 0 : _a.rowId) === item.rowId;\n });\n if (row) {\n row.push(item);\n } else {\n rows.push([item]);\n }\n }\n return rows;\n}\nfunction selectTextField(element, collapseToEnd = false) {\n if (isTextField(element)) {\n element.setSelectionRange(\n collapseToEnd ? element.value.length : 0,\n element.value.length\n );\n } else if (element.isContentEditable) {\n const selection = getDocument(element).getSelection();\n selection == null ? void 0 : selection.selectAllChildren(element);\n if (collapseToEnd) {\n selection == null ? void 0 : selection.collapseToEnd();\n }\n }\n}\nvar FOCUS_SILENTLY = Symbol(\"FOCUS_SILENTLY\");\nfunction focusSilently(element) {\n element[FOCUS_SILENTLY] = true;\n element.focus({ preventScroll: true });\n}\nfunction silentlyFocused(element) {\n const isSilentlyFocused = element[FOCUS_SILENTLY];\n delete element[FOCUS_SILENTLY];\n return isSilentlyFocused;\n}\nfunction isItem(store, element, exclude) {\n if (!element)\n return false;\n if (element === exclude)\n return false;\n const item = store.item(element.id);\n if (!item)\n return false;\n if (exclude && item.element === exclude)\n return false;\n return true;\n}\n\nexport {\n flipItems,\n findFirstEnabledItem,\n getEnabledItem,\n groupItemsByRows,\n selectTextField,\n focusSilently,\n silentlyFocused,\n isItem\n};\n","\"use client\";\nimport {\n HovercardContextProvider,\n HovercardScopedContextProvider\n} from \"./TWDHCE7Y.js\";\nimport {\n createStoreContext\n} from \"./5M6RSQEC.js\";\n\n// src/tooltip/tooltip-context.tsx\nvar ctx = createStoreContext(\n [HovercardContextProvider],\n [HovercardScopedContextProvider]\n);\nvar useTooltipContext = ctx.useContext;\nvar useTooltipScopedContext = ctx.useScopedContext;\nvar useTooltipProviderContext = ctx.useProviderContext;\nvar TooltipContextProvider = ctx.ContextProvider;\nvar TooltipScopedContextProvider = ctx.ScopedContextProvider;\n\nexport {\n useTooltipContext,\n useTooltipScopedContext,\n useTooltipProviderContext,\n TooltipContextProvider,\n TooltipScopedContextProvider\n};\n","\"use client\";\n\n// src/group/group-label-context.ts\nimport { createContext } from \"react\";\nvar GroupLabelContext = createContext(void 0);\n\nexport {\n GroupLabelContext\n};\n","\"use client\";\nimport {\n useStore,\n useStoreProps\n} from \"./EKQEJRUF.js\";\nimport {\n useUpdateEffect\n} from \"./6O5OEQGF.js\";\n\n// src/collection/collection-store.ts\nimport * as Core from \"@ariakit/core/collection/collection-store\";\nfunction useCollectionStoreProps(store, update, props) {\n useUpdateEffect(update, [props.store]);\n useStoreProps(store, props, \"items\", \"setItems\");\n return store;\n}\nfunction useCollectionStore(props = {}) {\n const [store, update] = useStore(Core.createCollectionStore, props);\n return useCollectionStoreProps(store, update, props);\n}\n\nexport {\n useCollectionStoreProps,\n useCollectionStore\n};\n","\"use client\";\nimport {\n useCollectionStoreProps\n} from \"./Y6GYTNQ2.js\";\nimport {\n useStore,\n useStoreProps\n} from \"./EKQEJRUF.js\";\n\n// src/composite/composite-store.ts\nimport * as Core from \"@ariakit/core/composite/composite-store\";\nfunction useCompositeStoreProps(store, update, props) {\n store = useCollectionStoreProps(store, update, props);\n useStoreProps(store, props, \"activeId\", \"setActiveId\");\n useStoreProps(store, props, \"includesBaseElement\");\n useStoreProps(store, props, \"virtualFocus\");\n useStoreProps(store, props, \"orientation\");\n useStoreProps(store, props, \"rtl\");\n useStoreProps(store, props, \"focusLoop\");\n useStoreProps(store, props, \"focusWrap\");\n useStoreProps(store, props, \"focusShift\");\n return store;\n}\nfunction useCompositeStore(props = {}) {\n const [store, update] = useStore(Core.createCompositeStore, props);\n return useCompositeStoreProps(store, update, props);\n}\n\nexport {\n useCompositeStoreProps,\n useCompositeStore\n};\n","\"use client\";\nimport {\n useCollectionContext\n} from \"./MADQZZRL.js\";\nimport {\n createElement,\n createHook,\n forwardRef\n} from \"./5M6RSQEC.js\";\nimport {\n useId,\n useMergeRefs\n} from \"./6O5OEQGF.js\";\nimport {\n __objRest,\n __spreadProps,\n __spreadValues\n} from \"./4R3V3JGP.js\";\n\n// src/collection/collection-item.ts\nimport { useEffect, useRef } from \"react\";\nimport { identity, removeUndefinedValues } from \"@ariakit/core/utils/misc\";\nvar TagName = \"div\";\nvar useCollectionItem = createHook(\n function useCollectionItem2(_a) {\n var _b = _a, {\n store,\n shouldRegisterItem = true,\n getItem = identity,\n element: element\n } = _b, props = __objRest(_b, [\n \"store\",\n \"shouldRegisterItem\",\n \"getItem\",\n // @ts-expect-error This prop may come from a collection renderer.\n \"element\"\n ]);\n const context = useCollectionContext();\n store = store || context;\n const id = useId(props.id);\n const ref = useRef(element);\n useEffect(() => {\n const element2 = ref.current;\n if (!id)\n return;\n if (!element2)\n return;\n if (!shouldRegisterItem)\n return;\n const item = getItem({ id, element: element2 });\n return store == null ? void 0 : store.renderItem(item);\n }, [id, shouldRegisterItem, getItem, store]);\n props = __spreadProps(__spreadValues({}, props), {\n ref: useMergeRefs(ref, props.ref)\n });\n return removeUndefinedValues(props);\n }\n);\nvar CollectionItem = forwardRef(function CollectionItem2(props) {\n const htmlProps = useCollectionItem(props);\n return createElement(TagName, htmlProps);\n});\n\nexport {\n useCollectionItem,\n CollectionItem\n};\n","const 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}\nfunction getSideAxis(placement) {\n return ['top', 'bottom'].includes(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}\nfunction getSideList(side, isStart, rtl) {\n const lr = ['left', 'right'];\n const rl = ['right', 'left'];\n const tb = ['top', 'bottom'];\n const bt = ['bottom', 'top'];\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rl : lr;\n return isStart ? lr : rl;\n case 'left':\n case 'right':\n return isStart ? tb : bt;\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 return {\n ...rect,\n top: rect.y,\n left: rect.x,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\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 reference element when it is given a certain positioning strategy.\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 continue;\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 ...rects.floating,\n x,\n y\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 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 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 if (!specifiedFallbackPlacements && fallbackAxisSideDirection !== 'none') {\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 // 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 // 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$map$so;\n const placement = (_overflowsData$map$so = overflowsData.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$map$so[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\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\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 = ['left', 'top'].includes(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: 0,\n crossAxis: 0,\n alignmentAxis: null,\n ...rawValue\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 const {\n x,\n y\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: diffCoords\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 }\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 = ['top', 'left'].includes(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 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 overflowAvailableHeight = height - overflow[heightSide];\n const overflowAvailableWidth = width - overflow[widthSide];\n const noShift = !state.middlewareData.shift;\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if (isYAxis) {\n const maximumClippingWidth = width - overflow.left - overflow.right;\n availableWidth = alignment || noShift ? min(overflowAvailableWidth, maximumClippingWidth) : maximumClippingWidth;\n } else {\n const maximumClippingHeight = height - overflow.top - overflow.bottom;\n availableHeight = alignment || noShift ? min(overflowAvailableHeight, maximumClippingHeight) : 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 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 ? void 0 : (_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 return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n // Browsers without `ShadowRoot` support.\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\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) && !['inline', 'contents'].includes(display);\n}\nfunction isTableElement(element) {\n return ['table', 'td', 'th'].includes(getNodeName(element));\n}\nfunction isContainingBlock(element) {\n const webkit = isWebKit();\n const css = getComputedStyle(element);\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n return css.transform !== 'none' || css.perspective !== 'none' || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || ['transform', 'perspective', 'filter'].some(value => (css.willChange || '').includes(value)) || ['paint', 'layout', 'strict', 'content'].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 {\n currentNode = getParentNode(currentNode);\n }\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}\nfunction isLastTraversableNode(node) {\n return ['html', 'body', '#document'].includes(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.pageXOffset,\n scrollTop: element.pageYOffset\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 return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], win.frameElement && traverseIframes ? getOverflowAncestors(win.frameElement) : []);\n }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n}\n\nexport { getComputedStyle, getContainingBlock, getDocumentElement, getNearestOverflowAncestor, getNodeName, getNodeScroll, getOverflowAncestors, getParentNode, getWindow, isContainingBlock, isElement, isHTMLElement, isLastTraversableNode, isNode, isOverflowElement, isShadowRoot, isTableElement, isWebKit };\n","import { rectToClientRect, computePosition as computePosition$1 } from '@floating-ui/core';\nexport { arrow, autoPlacement, detectOverflow, flip, hide, inline, limitShift, offset, shift, size } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle, isHTMLElement, isElement, getWindow, isWebKit, getDocumentElement, getNodeName, isOverflowElement, getNodeScroll, 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(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 currentIFrame = win.frameElement;\n while (currentIFrame && offsetParent && offsetWin !== win) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle(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 currentIFrame = getWindow(currentIFrame).frameElement;\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n if (offsetParent === documentElement) {\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 if (isOffsetParentAnElement || !isOffsetParentAnElement && strategy !== 'fixed') {\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 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,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y\n };\n}\n\nfunction getClientRects(element) {\n return Array.from(element.getClientRects());\n}\n\nfunction getWindowScrollBarX(element) {\n // If has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n return getBoundingClientRect(getDocumentElement(element)).left + getNodeScroll(element).scrollLeft;\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `` and `` 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(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\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 return {\n width,\n height,\n x,\n y\n };\n}\n\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 ...clippingAncestor,\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y\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(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(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(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 && ['absolute', 'fixed'].includes(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' ? 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 return getCssDimensions(element);\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 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 offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n return element.offsetParent;\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 window = getWindow(element);\n if (!isHTMLElement(element)) {\n return window;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static' && !isContainingBlock(offsetParent))) {\n return window;\n }\n return offsetParent || getContainingBlock(element) || window;\n}\n\nconst getElementRects = async function (_ref) {\n let {\n reference,\n floating,\n strategy\n } = _ref;\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n return {\n reference: getRectRelativeToOffsetParent(reference, await getOffsetParentFn(floating), strategy),\n floating: {\n x: 0,\n y: 0,\n ...(await getDimensionsFn(floating))\n }\n };\n};\n\nfunction isRTL(element) {\n return getComputedStyle(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\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 clearTimeout(timeoutId);\n io && 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 {\n left,\n top,\n width,\n height\n } = element.getBoundingClientRect();\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 timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 100);\n } else {\n refresh(false, ratio);\n }\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