@warp-ds/elements 2.4.0-next.9 → 2.5.0-next.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/dist/custom-elements.json +29 -7
  2. package/dist/index.d.ts +16 -14
  3. package/dist/packages/attention/attention.js +12 -12
  4. package/dist/packages/attention/attention.js.map +3 -3
  5. package/dist/packages/breadcrumbs/breadcrumbs.js +9 -9
  6. package/dist/packages/breadcrumbs/breadcrumbs.js.map +3 -3
  7. package/dist/packages/button/button.js +8 -8
  8. package/dist/packages/button/button.js.map +3 -3
  9. package/dist/packages/card/card.js +8 -8
  10. package/dist/packages/card/card.js.map +3 -3
  11. package/dist/packages/combobox/combobox.js +13 -13
  12. package/dist/packages/combobox/combobox.js.map +3 -3
  13. package/dist/packages/combobox/combobox.react.stories.d.ts +1 -1
  14. package/dist/packages/datepicker/datepicker.js +15 -15
  15. package/dist/packages/datepicker/datepicker.js.map +3 -3
  16. package/dist/packages/datepicker/datepicker.react.stories.d.ts +1 -1
  17. package/dist/packages/i18n.js +6 -2
  18. package/dist/packages/icon/icon.d.ts +27 -0
  19. package/dist/packages/icon/icon.js +101 -0
  20. package/dist/packages/icon/icon.react.stories.d.ts +28 -0
  21. package/dist/packages/icon/icon.react.stories.js +37 -0
  22. package/dist/packages/icon/icon.stories.d.ts +39 -0
  23. package/dist/packages/icon/icon.stories.js +43 -0
  24. package/dist/packages/icon/react.d.ts +2 -0
  25. package/dist/packages/icon/react.js +11 -0
  26. package/dist/packages/icon/style.d.ts +1 -0
  27. package/dist/packages/icon/style.js +27 -0
  28. package/dist/packages/modal-header/modal-header.js +7 -7
  29. package/dist/packages/modal-header/modal-header.js.map +3 -3
  30. package/dist/packages/page-indicator/locales/da/messages.mjs +1 -0
  31. package/dist/packages/page-indicator/locales/en/messages.mjs +1 -0
  32. package/dist/packages/page-indicator/locales/fi/messages.mjs +1 -0
  33. package/dist/packages/page-indicator/locales/nb/messages.mjs +1 -0
  34. package/dist/packages/page-indicator/locales/sv/messages.mjs +1 -0
  35. package/dist/packages/page-indicator/page-indicator.d.ts +16 -0
  36. package/dist/packages/page-indicator/page-indicator.js +14 -5
  37. package/dist/packages/page-indicator/page-indicator.js.map +4 -4
  38. package/dist/packages/page-indicator/page-indicator.stories.js +22 -6
  39. package/dist/packages/page-indicator/page-indicator.test.d.ts +1 -0
  40. package/dist/packages/page-indicator/page-indicator.test.js +118 -0
  41. package/dist/packages/pagination/pagination.js +14 -14
  42. package/dist/packages/pagination/pagination.js.map +3 -3
  43. package/dist/packages/pill/pill.js +8 -8
  44. package/dist/packages/pill/pill.js.map +3 -3
  45. package/dist/packages/select/select.js +15 -15
  46. package/dist/packages/select/select.js.map +3 -3
  47. package/dist/packages/select/select.react.stories.d.ts +1 -1
  48. package/dist/packages/slider/slider.js +17 -17
  49. package/dist/packages/slider/slider.js.map +3 -3
  50. package/dist/packages/step/locales/da/messages.d.mts +1 -0
  51. package/dist/packages/step/locales/en/messages.d.mts +1 -0
  52. package/dist/packages/step/locales/fi/messages.d.mts +1 -0
  53. package/dist/packages/step/locales/nb/messages.d.mts +1 -0
  54. package/dist/packages/step/locales/sv/messages.d.mts +1 -0
  55. package/dist/packages/step/step.js +7 -7
  56. package/dist/packages/step/step.js.map +4 -4
  57. package/dist/packages/step-indicator/step-indicator.d.ts +0 -1
  58. package/dist/packages/step-indicator/step-indicator.js +5 -14
  59. package/dist/packages/step-indicator/step-indicator.js.map +4 -4
  60. package/dist/packages/tabs/tabs.react.stories.js +6 -6
  61. package/dist/packages/textarea/textarea.react.stories.d.ts +1 -1
  62. package/dist/packages/textfield/textfield.react.stories.d.ts +1 -1
  63. package/dist/packages/toast/toast.js +8 -8
  64. package/dist/packages/toast/toast.js.map +3 -3
  65. package/dist/web-types.json +6 -6
  66. package/package.json +1 -1
  67. /package/dist/packages/{step-indicator → page-indicator}/locales/da/messages.d.mts +0 -0
  68. /package/dist/packages/{step-indicator → page-indicator}/locales/en/messages.d.mts +0 -0
  69. /package/dist/packages/{step-indicator → page-indicator}/locales/fi/messages.d.mts +0 -0
  70. /package/dist/packages/{step-indicator → page-indicator}/locales/nb/messages.d.mts +0 -0
  71. /package/dist/packages/{step-indicator → page-indicator}/locales/sv/messages.d.mts +0 -0
  72. /package/dist/packages/{step-indicator → step}/locales/da/messages.mjs +0 -0
  73. /package/dist/packages/{step-indicator → step}/locales/en/messages.mjs +0 -0
  74. /package/dist/packages/{step-indicator → step}/locales/fi/messages.mjs +0 -0
  75. /package/dist/packages/{step-indicator → step}/locales/nb/messages.mjs +0 -0
  76. /package/dist/packages/{step-indicator → step}/locales/sv/messages.mjs +0 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../node_modules/.pnpm/unraw@3.0.0/node_modules/unraw/dist/errors.js", "../../../node_modules/.pnpm/unraw@3.0.0/node_modules/unraw/dist/index.js", "../../../node_modules/.pnpm/@lingui+core@5.2.0_@lingui+babel-plugin-lingui-macro@5.2.0_babel-plugin-macros@3.1.0_ty_33a2537ce57a59324989ce8020998d0e/node_modules/@lingui/core/dist/index.mjs", "../../../node_modules/.pnpm/@open-wc+form-control@1.0.0/node_modules/@open-wc/form-control/src/FormControlMixin.ts", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/constants.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/constructFrom.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/toDate.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addDays.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addMonths.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/defaultOptions.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfWeek.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfISOWeek.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getISOWeekYear.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/normalizeDates.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfDay.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInCalendarDays.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfISOWeekYear.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addWeeks.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/constructNow.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isSameDay.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isDate.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isValid.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/normalizeInterval.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/eachDayOfInterval.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/eachWeekOfInterval.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfMonth.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfYear.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/endOfWeek.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/formatDistance.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/_lib/buildFormatLongFn.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/formatLong.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/formatRelative.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/_lib/buildLocalizeFn.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/localize.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/_lib/buildMatchFn.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/match.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getDayOfYear.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getISOWeek.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getWeekYear.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfWeekYear.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getWeek.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/addLeadingZeros.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/format/lightFormatters.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/format/formatters.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/format/longFormatters.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/protectedTokens.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/format.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/formatISO.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getDate.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getDay.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getWeekOfMonth.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/lastDayOfMonth.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isSameMonth.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isToday.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/subDays.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfToday.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/subMonths.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/da/_lib/formatDistance.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/da/_lib/formatLong.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/da/_lib/formatRelative.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/da/_lib/localize.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/da/_lib/match.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/da.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-GB/_lib/formatLong.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-GB.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/fi/_lib/formatDistance.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/fi/_lib/formatLong.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/fi/_lib/formatRelative.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/fi/_lib/localize.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/fi/_lib/match.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/fi.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/nb/_lib/formatDistance.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/nb/_lib/formatLong.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/nb/_lib/formatRelative.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/nb/_lib/localize.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/nb/_lib/match.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/nb.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/sv/_lib/formatDistance.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/sv/_lib/formatLong.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/sv/_lib/formatRelative.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/sv/_lib/localize.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/sv/_lib/match.js", "../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/sv.js", "../../../packages/datepicker/datepicker.ts", "../../../node_modules/.pnpm/@warp-ds+icons@2.5.0_@lingui+core@5.2.0_@lingui+babel-plugin-lingui-macro@5.2.0_babel-p_f73b1d3c5bd9121d6f30248535f1f172/node_modules/@warp-ds/icons/elements/calendar-16.js", "../../../node_modules/.pnpm/@warp-ds+icons@2.5.0_@lingui+core@5.2.0_@lingui+babel-plugin-lingui-macro@5.2.0_babel-p_f73b1d3c5bd9121d6f30248535f1f172/node_modules/@warp-ds/icons/src/raw/calendar/locales/nb/messages.mjs", "../../../node_modules/.pnpm/@warp-ds+icons@2.5.0_@lingui+core@5.2.0_@lingui+babel-plugin-lingui-macro@5.2.0_babel-p_f73b1d3c5bd9121d6f30248535f1f172/node_modules/@warp-ds/icons/src/raw/calendar/locales/en/messages.mjs", "../../../node_modules/.pnpm/@warp-ds+icons@2.5.0_@lingui+core@5.2.0_@lingui+babel-plugin-lingui-macro@5.2.0_babel-p_f73b1d3c5bd9121d6f30248535f1f172/node_modules/@warp-ds/icons/src/raw/calendar/locales/fi/messages.mjs", "../../../node_modules/.pnpm/@warp-ds+icons@2.5.0_@lingui+core@5.2.0_@lingui+babel-plugin-lingui-macro@5.2.0_babel-p_f73b1d3c5bd9121d6f30248535f1f172/node_modules/@warp-ds/icons/src/raw/calendar/locales/da/messages.mjs", "../../../node_modules/.pnpm/@warp-ds+icons@2.5.0_@lingui+core@5.2.0_@lingui+babel-plugin-lingui-macro@5.2.0_babel-p_f73b1d3c5bd9121d6f30248535f1f172/node_modules/@warp-ds/icons/src/raw/calendar/locales/sv/messages.mjs", "../../../node_modules/.pnpm/@warp-ds+icons@2.5.0_@lingui+core@5.2.0_@lingui+babel-plugin-lingui-macro@5.2.0_babel-p_f73b1d3c5bd9121d6f30248535f1f172/node_modules/@warp-ds/icons/src/utils/i18n.ts", "../../../node_modules/.pnpm/@warp-ds+icons@2.5.0_@lingui+core@5.2.0_@lingui+babel-plugin-lingui-macro@5.2.0_babel-p_f73b1d3c5bd9121d6f30248535f1f172/node_modules/@warp-ds/icons/elements/chevron-left-16.js", "../../../node_modules/.pnpm/@warp-ds+icons@2.5.0_@lingui+core@5.2.0_@lingui+babel-plugin-lingui-macro@5.2.0_babel-p_f73b1d3c5bd9121d6f30248535f1f172/node_modules/@warp-ds/icons/src/raw/chevron-left/locales/nb/messages.mjs", "../../../node_modules/.pnpm/@warp-ds+icons@2.5.0_@lingui+core@5.2.0_@lingui+babel-plugin-lingui-macro@5.2.0_babel-p_f73b1d3c5bd9121d6f30248535f1f172/node_modules/@warp-ds/icons/src/raw/chevron-left/locales/en/messages.mjs", "../../../node_modules/.pnpm/@warp-ds+icons@2.5.0_@lingui+core@5.2.0_@lingui+babel-plugin-lingui-macro@5.2.0_babel-p_f73b1d3c5bd9121d6f30248535f1f172/node_modules/@warp-ds/icons/src/raw/chevron-left/locales/fi/messages.mjs", "../../../node_modules/.pnpm/@warp-ds+icons@2.5.0_@lingui+core@5.2.0_@lingui+babel-plugin-lingui-macro@5.2.0_babel-p_f73b1d3c5bd9121d6f30248535f1f172/node_modules/@warp-ds/icons/src/raw/chevron-left/locales/da/messages.mjs", "../../../node_modules/.pnpm/@warp-ds+icons@2.5.0_@lingui+core@5.2.0_@lingui+babel-plugin-lingui-macro@5.2.0_babel-p_f73b1d3c5bd9121d6f30248535f1f172/node_modules/@warp-ds/icons/src/raw/chevron-left/locales/sv/messages.mjs", "../../../node_modules/.pnpm/@warp-ds+icons@2.5.0_@lingui+core@5.2.0_@lingui+babel-plugin-lingui-macro@5.2.0_babel-p_f73b1d3c5bd9121d6f30248535f1f172/node_modules/@warp-ds/icons/src/utils/i18n.ts", "../../../node_modules/.pnpm/@warp-ds+icons@2.5.0_@lingui+core@5.2.0_@lingui+babel-plugin-lingui-macro@5.2.0_babel-p_f73b1d3c5bd9121d6f30248535f1f172/node_modules/@warp-ds/icons/elements/chevron-right-16.js", "../../../node_modules/.pnpm/@warp-ds+icons@2.5.0_@lingui+core@5.2.0_@lingui+babel-plugin-lingui-macro@5.2.0_babel-p_f73b1d3c5bd9121d6f30248535f1f172/node_modules/@warp-ds/icons/src/raw/chevron-right/locales/nb/messages.mjs", "../../../node_modules/.pnpm/@warp-ds+icons@2.5.0_@lingui+core@5.2.0_@lingui+babel-plugin-lingui-macro@5.2.0_babel-p_f73b1d3c5bd9121d6f30248535f1f172/node_modules/@warp-ds/icons/src/raw/chevron-right/locales/en/messages.mjs", "../../../node_modules/.pnpm/@warp-ds+icons@2.5.0_@lingui+core@5.2.0_@lingui+babel-plugin-lingui-macro@5.2.0_babel-p_f73b1d3c5bd9121d6f30248535f1f172/node_modules/@warp-ds/icons/src/raw/chevron-right/locales/fi/messages.mjs", "../../../node_modules/.pnpm/@warp-ds+icons@2.5.0_@lingui+core@5.2.0_@lingui+babel-plugin-lingui-macro@5.2.0_babel-p_f73b1d3c5bd9121d6f30248535f1f172/node_modules/@warp-ds/icons/src/raw/chevron-right/locales/da/messages.mjs", "../../../node_modules/.pnpm/@warp-ds+icons@2.5.0_@lingui+core@5.2.0_@lingui+babel-plugin-lingui-macro@5.2.0_babel-p_f73b1d3c5bd9121d6f30248535f1f172/node_modules/@warp-ds/icons/src/raw/chevron-right/locales/sv/messages.mjs", "../../../node_modules/.pnpm/@warp-ds+icons@2.5.0_@lingui+core@5.2.0_@lingui+babel-plugin-lingui-macro@5.2.0_babel-p_f73b1d3c5bd9121d6f30248535f1f172/node_modules/@warp-ds/icons/src/utils/i18n.ts", "../../../packages/i18n.ts", "../../../packages/styles.ts", "../../../packages/datepicker/locales/da/messages.mjs", "../../../packages/datepicker/locales/en/messages.mjs", "../../../packages/datepicker/locales/fi/messages.mjs", "../../../packages/datepicker/locales/nb/messages.mjs", "../../../packages/datepicker/locales/sv/messages.mjs", "../../../packages/datepicker/styles/w-datepicker.styles.ts", "../../../packages/datepicker/styles/w-datepicker-calendar.styles.ts", "../../../packages/datepicker/styles/w-datepicker-day.styles.ts", "../../../packages/datepicker/styles/w-datepicker-month.styles.ts", "../../../packages/datepicker/utils.ts"],
4
- "sourcesContent": ["\"use strict\";\n// NOTE: don't construct errors here or they'll have the wrong stack trace.\n// NOTE: don't make custom error class; the JS engines use `SyntaxError`\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.errorMessages = exports.ErrorType = void 0;\n/**\n * Keys for possible error messages used by `unraw`.\n * Note: These do _not_ map to actual error object types. All errors thrown\n * are `SyntaxError`.\n */\n// Don't use const enum or JS users won't be able to access the enum values\nvar ErrorType;\n(function (ErrorType) {\n /**\n * Thrown when a badly formed Unicode escape sequence is found. Possible\n * reasons include the code being too short (`\"\\u25\"`) or having invalid\n * characters (`\"\\u2$A5\"`).\n */\n ErrorType[\"MalformedUnicode\"] = \"MALFORMED_UNICODE\";\n /**\n * Thrown when a badly formed hexadecimal escape sequence is found. Possible\n * reasons include the code being too short (`\"\\x2\"`) or having invalid\n * characters (`\"\\x2$\"`).\n */\n ErrorType[\"MalformedHexadecimal\"] = \"MALFORMED_HEXADECIMAL\";\n /**\n * Thrown when a Unicode code point escape sequence has too high of a code\n * point. The maximum code point allowed is `\\u{10FFFF}`, so `\\u{110000}` and\n * higher will throw this error.\n */\n ErrorType[\"CodePointLimit\"] = \"CODE_POINT_LIMIT\";\n /**\n * Thrown when an octal escape sequences is encountered and `allowOctals` is\n * `false`. For example, `unraw(\"\\234\", false)`.\n */\n ErrorType[\"OctalDeprecation\"] = \"OCTAL_DEPRECATION\";\n /**\n * Thrown only when a single backslash is found at the end of a string. For\n * example, `\"\\\\\"` or `\"test\\\\x24\\\\\"`.\n */\n ErrorType[\"EndOfString\"] = \"END_OF_STRING\";\n})(ErrorType = exports.ErrorType || (exports.ErrorType = {}));\n/** Map of error message names to the full text of the message. */\nexports.errorMessages = new Map([\n [ErrorType.MalformedUnicode, \"malformed Unicode character escape sequence\"],\n [\n ErrorType.MalformedHexadecimal,\n \"malformed hexadecimal character escape sequence\"\n ],\n [\n ErrorType.CodePointLimit,\n \"Unicode codepoint must not be greater than 0x10FFFF in escape sequence\"\n ],\n [\n ErrorType.OctalDeprecation,\n '\"0\"-prefixed octal literals and octal escape sequences are deprecated; ' +\n 'for octal literals use the \"0o\" prefix instead'\n ],\n [ErrorType.EndOfString, \"malformed escape sequence at end of string\"]\n]);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.unraw = exports.errorMessages = exports.ErrorType = void 0;\nconst errors_1 = require(\"./errors\");\nObject.defineProperty(exports, \"ErrorType\", { enumerable: true, get: function () { return errors_1.ErrorType; } });\nObject.defineProperty(exports, \"errorMessages\", { enumerable: true, get: function () { return errors_1.errorMessages; } });\n/**\n * Parse a string as a base-16 number. This is more strict than `parseInt` as it\n * will not allow any other characters, including (for example) \"+\", \"-\", and\n * \".\".\n * @param hex A string containing a hexadecimal number.\n * @returns The parsed integer, or `NaN` if the string is not a valid hex\n * number.\n */\nfunction parseHexToInt(hex) {\n const isOnlyHexChars = !hex.match(/[^a-f0-9]/i);\n return isOnlyHexChars ? parseInt(hex, 16) : NaN;\n}\n/**\n * Check the validity and length of a hexadecimal code and optionally enforces\n * a specific number of hex digits.\n * @param hex The string to validate and parse.\n * @param errorName The name of the error message to throw a `SyntaxError` with\n * if `hex` is invalid. This is used to index `errorMessages`.\n * @param enforcedLength If provided, will throw an error if `hex` is not\n * exactly this many characters.\n * @returns The parsed hex number as a normal number.\n * @throws {SyntaxError} If the code is not valid.\n */\nfunction validateAndParseHex(hex, errorName, enforcedLength) {\n const parsedHex = parseHexToInt(hex);\n if (Number.isNaN(parsedHex) ||\n (enforcedLength !== undefined && enforcedLength !== hex.length)) {\n throw new SyntaxError(errors_1.errorMessages.get(errorName));\n }\n return parsedHex;\n}\n/**\n * Parse a two-digit hexadecimal character escape code.\n * @param code The two-digit hexadecimal number that represents the character to\n * output.\n * @returns The single character represented by the code.\n * @throws {SyntaxError} If the code is not valid hex or is not the right\n * length.\n */\nfunction parseHexadecimalCode(code) {\n const parsedCode = validateAndParseHex(code, errors_1.ErrorType.MalformedHexadecimal, 2);\n return String.fromCharCode(parsedCode);\n}\n/**\n * Parse a four-digit Unicode character escape code.\n * @param code The four-digit unicode number that represents the character to\n * output.\n * @param surrogateCode Optional four-digit unicode surrogate that represents\n * the other half of the character to output.\n * @returns The single character represented by the code.\n * @throws {SyntaxError} If the codes are not valid hex or are not the right\n * length.\n */\nfunction parseUnicodeCode(code, surrogateCode) {\n const parsedCode = validateAndParseHex(code, errors_1.ErrorType.MalformedUnicode, 4);\n if (surrogateCode !== undefined) {\n const parsedSurrogateCode = validateAndParseHex(surrogateCode, errors_1.ErrorType.MalformedUnicode, 4);\n return String.fromCharCode(parsedCode, parsedSurrogateCode);\n }\n return String.fromCharCode(parsedCode);\n}\n/**\n * Test if the text is surrounded by curly braces (`{}`).\n * @param text Text to check.\n * @returns `true` if the text is in the form `{*}`.\n */\nfunction isCurlyBraced(text) {\n return text.charAt(0) === \"{\" && text.charAt(text.length - 1) === \"}\";\n}\n/**\n * Parse a Unicode code point character escape code.\n * @param codePoint A unicode escape code point, including the surrounding curly\n * braces.\n * @returns The single character represented by the code.\n * @throws {SyntaxError} If the code is not valid hex or does not have the\n * surrounding curly braces.\n */\nfunction parseUnicodeCodePointCode(codePoint) {\n if (!isCurlyBraced(codePoint)) {\n throw new SyntaxError(errors_1.errorMessages.get(errors_1.ErrorType.MalformedUnicode));\n }\n const withoutBraces = codePoint.slice(1, -1);\n const parsedCode = validateAndParseHex(withoutBraces, errors_1.ErrorType.MalformedUnicode);\n try {\n return String.fromCodePoint(parsedCode);\n }\n catch (err) {\n throw err instanceof RangeError\n ? new SyntaxError(errors_1.errorMessages.get(errors_1.ErrorType.CodePointLimit))\n : err;\n }\n}\n// Have to give overload that takes boolean for when compiler doesn't know if\n// true or false\nfunction parseOctalCode(code, error = false) {\n if (error) {\n throw new SyntaxError(errors_1.errorMessages.get(errors_1.ErrorType.OctalDeprecation));\n }\n // The original regex only allows digits so we don't need to have a strict\n // octal parser like hexToInt. Length is not enforced for octals.\n const parsedCode = parseInt(code, 8);\n return String.fromCharCode(parsedCode);\n}\n/**\n * Map of unescaped letters to their corresponding special JS escape characters.\n * Intentionally does not include characters that map to themselves like \"\\'\".\n */\nconst singleCharacterEscapes = new Map([\n [\"b\", \"\\b\"],\n [\"f\", \"\\f\"],\n [\"n\", \"\\n\"],\n [\"r\", \"\\r\"],\n [\"t\", \"\\t\"],\n [\"v\", \"\\v\"],\n [\"0\", \"\\0\"]\n]);\n/**\n * Parse a single character escape sequence and return the matching character.\n * If none is matched, defaults to `code`.\n * @param code A single character code.\n */\nfunction parseSingleCharacterCode(code) {\n return singleCharacterEscapes.get(code) || code;\n}\n/**\n * Matches every escape sequence possible, including invalid ones.\n *\n * All capture groups (described below) are unique (only one will match), except\n * for 4, which can only potentially match if 3 does.\n *\n * **Capture Groups:**\n * 0. A single backslash\n * 1. Hexadecimal code\n * 2. Unicode code point code with surrounding curly braces\n * 3. Unicode escape code with surrogate\n * 4. Surrogate code\n * 5. Unicode escape code without surrogate\n * 6. Octal code _NOTE: includes \"0\"._\n * 7. A single character (will never be \\, x, u, or 0-3)\n */\nconst escapeMatch = /\\\\(?:(\\\\)|x([\\s\\S]{0,2})|u(\\{[^}]*\\}?)|u([\\s\\S]{4})\\\\u([^{][\\s\\S]{0,3})|u([\\s\\S]{0,4})|([0-3]?[0-7]{1,2})|([\\s\\S])|$)/g;\n/**\n * Replace raw escape character strings with their escape characters.\n * @param raw A string where escape characters are represented as raw string\n * values like `\\'` rather than `'`.\n * @param allowOctals If `true`, will process the now-deprecated octal escape\n * sequences (ie, `\\111`).\n * @returns The processed string, with escape characters replaced by their\n * respective actual Unicode characters.\n */\nfunction unraw(raw, allowOctals = false) {\n return raw.replace(escapeMatch, function (_, backslash, hex, codePoint, unicodeWithSurrogate, surrogate, unicode, octal, singleCharacter) {\n // Compare groups to undefined because empty strings mean different errors\n // Otherwise, `\\u` would fail the same as `\\` which is wrong.\n if (backslash !== undefined) {\n return \"\\\\\";\n }\n if (hex !== undefined) {\n return parseHexadecimalCode(hex);\n }\n if (codePoint !== undefined) {\n return parseUnicodeCodePointCode(codePoint);\n }\n if (unicodeWithSurrogate !== undefined) {\n return parseUnicodeCode(unicodeWithSurrogate, surrogate);\n }\n if (unicode !== undefined) {\n return parseUnicodeCode(unicode);\n }\n if (octal === \"0\") {\n return \"\\0\";\n }\n if (octal !== undefined) {\n return parseOctalCode(octal, !allowOctals);\n }\n if (singleCharacter !== undefined) {\n return parseSingleCharacterCode(singleCharacter);\n }\n throw new SyntaxError(errors_1.errorMessages.get(errors_1.ErrorType.EndOfString));\n });\n}\nexports.unraw = unraw;\nexports.default = unraw;\n", "import { unraw } from 'unraw';\nimport { compileMessage } from '@lingui/message-utils/compileMessage';\n\nconst isString = (s) => typeof s === \"string\";\nconst isFunction = (f) => typeof f === \"function\";\n\nconst cache = /* @__PURE__ */ new Map();\nconst defaultLocale = \"en\";\nfunction normalizeLocales(locales) {\n const out = Array.isArray(locales) ? locales : [locales];\n return [...out, defaultLocale];\n}\nfunction date(locales, value, format) {\n const _locales = normalizeLocales(locales);\n if (!format) {\n format = \"default\";\n }\n let o;\n if (typeof format === \"string\") {\n o = {\n day: \"numeric\",\n month: \"short\",\n year: \"numeric\"\n };\n switch (format) {\n case \"full\":\n o.weekday = \"long\";\n case \"long\":\n o.month = \"long\";\n break;\n case \"short\":\n o.month = \"numeric\";\n break;\n }\n } else {\n o = format;\n }\n const formatter = getMemoized(\n () => cacheKey(\"date\", _locales, format),\n () => new Intl.DateTimeFormat(_locales, o)\n );\n return formatter.format(isString(value) ? new Date(value) : value);\n}\nfunction time(locales, value, format) {\n let o;\n if (!format) {\n format = \"default\";\n }\n if (typeof format === \"string\") {\n o = {\n second: \"numeric\",\n minute: \"numeric\",\n hour: \"numeric\"\n };\n switch (format) {\n case \"full\":\n case \"long\":\n o.timeZoneName = \"short\";\n break;\n case \"short\":\n delete o.second;\n }\n } else {\n o = format;\n }\n return date(locales, value, o);\n}\nfunction number(locales, value, format) {\n const _locales = normalizeLocales(locales);\n const formatter = getMemoized(\n () => cacheKey(\"number\", _locales, format),\n () => new Intl.NumberFormat(_locales, format)\n );\n return formatter.format(value);\n}\nfunction plural(locales, ordinal, value, { offset = 0, ...rules }) {\n const _locales = normalizeLocales(locales);\n const plurals = ordinal ? getMemoized(\n () => cacheKey(\"plural-ordinal\", _locales),\n () => new Intl.PluralRules(_locales, { type: \"ordinal\" })\n ) : getMemoized(\n () => cacheKey(\"plural-cardinal\", _locales),\n () => new Intl.PluralRules(_locales, { type: \"cardinal\" })\n );\n return rules[value] ?? rules[plurals.select(value - offset)] ?? rules.other;\n}\nfunction getMemoized(getKey, construct) {\n const key = getKey();\n let formatter = cache.get(key);\n if (!formatter) {\n formatter = construct();\n cache.set(key, formatter);\n }\n return formatter;\n}\nfunction cacheKey(type, locales, options) {\n const localeKey = locales.join(\"-\");\n return `${type}-${localeKey}-${JSON.stringify(options)}`;\n}\n\nconst formats = {\n __proto__: null,\n date: date,\n defaultLocale: defaultLocale,\n number: number,\n plural: plural,\n time: time\n};\n\nconst UNICODE_REGEX = /\\\\u[a-fA-F0-9]{4}|\\\\x[a-fA-F0-9]{2}/;\nconst OCTOTHORPE_PH = \"%__lingui_octothorpe__%\";\nconst getDefaultFormats = (locale, passedLocales, formats = {}) => {\n const locales = passedLocales || locale;\n const style = (format) => {\n if (typeof format === \"object\")\n return format;\n return formats[format];\n };\n const replaceOctothorpe = (value, message) => {\n const numberFormat = Object.keys(formats).length ? style(\"number\") : void 0;\n const valueStr = number(locales, value, numberFormat);\n return message.replace(new RegExp(OCTOTHORPE_PH, \"g\"), valueStr);\n };\n return {\n plural: (value, cases) => {\n const { offset = 0 } = cases;\n const message = plural(locales, false, value, cases);\n return replaceOctothorpe(value - offset, message);\n },\n selectordinal: (value, cases) => {\n const { offset = 0 } = cases;\n const message = plural(locales, true, value, cases);\n return replaceOctothorpe(value - offset, message);\n },\n select: selectFormatter,\n number: (value, format) => number(\n locales,\n value,\n style(format) || { style: format }\n ),\n date: (value, format) => date(locales, value, style(format) || format),\n time: (value, format) => time(locales, value, style(format) || format)\n };\n};\nconst selectFormatter = (value, rules) => rules[value] ?? rules.other;\nfunction interpolate(translation, locale, locales) {\n return (values = {}, formats) => {\n const formatters = getDefaultFormats(locale, locales, formats);\n const formatMessage = (tokens, replaceOctothorpe = false) => {\n if (!Array.isArray(tokens))\n return tokens;\n return tokens.reduce((message, token) => {\n if (token === \"#\" && replaceOctothorpe) {\n return message + OCTOTHORPE_PH;\n }\n if (isString(token)) {\n return message + token;\n }\n const [name, type, format] = token;\n let interpolatedFormat = {};\n if (type === \"plural\" || type === \"selectordinal\" || type === \"select\") {\n Object.entries(format).forEach(\n ([key, value2]) => {\n interpolatedFormat[key] = formatMessage(\n value2,\n type === \"plural\" || type === \"selectordinal\"\n );\n }\n );\n } else {\n interpolatedFormat = format;\n }\n let value;\n if (type) {\n const formatter = formatters[type];\n value = formatter(values[name], interpolatedFormat);\n } else {\n value = values[name];\n }\n if (value == null) {\n return message;\n }\n return message + value;\n }, \"\");\n };\n const result = formatMessage(translation);\n if (isString(result) && UNICODE_REGEX.test(result)) {\n return unraw(result);\n }\n if (isString(result))\n return result;\n return result ? String(result) : \"\";\n };\n}\n\nvar __defProp$1 = Object.defineProperty;\nvar __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField$1 = (obj, key, value) => {\n __defNormalProp$1(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\nclass EventEmitter {\n constructor() {\n __publicField$1(this, \"_events\", {});\n }\n on(event, listener) {\n var _a;\n (_a = this._events)[event] ?? (_a[event] = []);\n this._events[event].push(listener);\n return () => this.removeListener(event, listener);\n }\n removeListener(event, listener) {\n const maybeListeners = this._getListeners(event);\n if (!maybeListeners)\n return;\n const index = maybeListeners.indexOf(listener);\n if (~index)\n maybeListeners.splice(index, 1);\n }\n emit(event, ...args) {\n const maybeListeners = this._getListeners(event);\n if (!maybeListeners)\n return;\n maybeListeners.map((listener) => listener.apply(this, args));\n }\n _getListeners(event) {\n const maybeListeners = this._events[event];\n return Array.isArray(maybeListeners) ? maybeListeners : false;\n }\n}\n\nvar __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => {\n __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\nclass I18n extends EventEmitter {\n constructor(params) {\n super();\n __publicField(this, \"_locale\", \"\");\n __publicField(this, \"_locales\");\n __publicField(this, \"_localeData\", {});\n __publicField(this, \"_messages\", {});\n __publicField(this, \"_missing\");\n __publicField(this, \"_messageCompiler\");\n /**\n * Alias for {@see I18n._}\n */\n __publicField(this, \"t\", this._.bind(this));\n if (process.env.NODE_ENV !== \"production\") {\n this.setMessagesCompiler(compileMessage);\n }\n if (params.missing != null)\n this._missing = params.missing;\n if (params.messages != null)\n this.load(params.messages);\n if (params.localeData != null)\n this.loadLocaleData(params.localeData);\n if (typeof params.locale === \"string\" || params.locales) {\n this.activate(params.locale ?? defaultLocale, params.locales);\n }\n }\n get locale() {\n return this._locale;\n }\n get locales() {\n return this._locales;\n }\n get messages() {\n return this._messages[this._locale] ?? {};\n }\n /**\n * @deprecated this has no effect. Please remove this from the code. Deprecated in v4\n */\n get localeData() {\n return this._localeData[this._locale] ?? {};\n }\n _loadLocaleData(locale, localeData) {\n const maybeLocaleData = this._localeData[locale];\n if (!maybeLocaleData) {\n this._localeData[locale] = localeData;\n } else {\n Object.assign(maybeLocaleData, localeData);\n }\n }\n /**\n * Registers a `MessageCompiler` to enable the use of uncompiled catalogs at runtime.\n *\n * In production builds, the `MessageCompiler` is typically excluded to reduce bundle size.\n * By default, message catalogs should be precompiled during the build process. However,\n * if you need to compile catalogs at runtime, you can use this method to set a message compiler.\n *\n * Example usage:\n *\n * ```ts\n * import { compileMessage } from \"@lingui/message-utils/compileMessage\";\n *\n * i18n.setMessagesCompiler(compileMessage);\n * ```\n */\n setMessagesCompiler(compiler) {\n this._messageCompiler = compiler;\n return this;\n }\n /**\n * @deprecated Plurals automatically used from Intl.PluralRules you can safely remove this call. Deprecated in v4\n */\n loadLocaleData(localeOrAllData, localeData) {\n if (typeof localeOrAllData === \"string\") {\n this._loadLocaleData(localeOrAllData, localeData);\n } else {\n Object.keys(localeOrAllData).forEach(\n (locale) => this._loadLocaleData(locale, localeOrAllData[locale])\n );\n }\n this.emit(\"change\");\n }\n _load(locale, messages) {\n const maybeMessages = this._messages[locale];\n if (!maybeMessages) {\n this._messages[locale] = messages;\n } else {\n Object.assign(maybeMessages, messages);\n }\n }\n load(localeOrMessages, messages) {\n if (typeof localeOrMessages == \"string\" && typeof messages === \"object\") {\n this._load(localeOrMessages, messages);\n } else {\n Object.entries(localeOrMessages).forEach(\n ([locale, messages2]) => this._load(locale, messages2)\n );\n }\n this.emit(\"change\");\n }\n /**\n * @param options {@link LoadAndActivateOptions}\n */\n loadAndActivate({ locale, locales, messages }) {\n this._locale = locale;\n this._locales = locales || void 0;\n this._messages[this._locale] = messages;\n this.emit(\"change\");\n }\n activate(locale, locales) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!this._messages[locale]) {\n console.warn(`Messages for locale \"${locale}\" not loaded.`);\n }\n }\n this._locale = locale;\n this._locales = locales;\n this.emit(\"change\");\n }\n _(id, values, options) {\n if (!this.locale) {\n throw new Error(\n \"Lingui: Attempted to call a translation function without setting a locale.\\nMake sure to call `i18n.activate(locale)` before using Lingui functions.\\nThis issue may also occur due to a race condition in your initialization logic.\"\n );\n }\n let message = options?.message;\n if (!id) {\n id = \"\";\n }\n if (!isString(id)) {\n values = id.values || values;\n message = id.message;\n id = id.id;\n }\n const messageForId = this.messages[id];\n const messageMissing = messageForId === void 0;\n const missing = this._missing;\n if (missing && messageMissing) {\n return isFunction(missing) ? missing(this._locale, id) : missing;\n }\n if (messageMissing) {\n this.emit(\"missing\", { id, locale: this._locale });\n }\n let translation = messageForId || message || id;\n if (isString(translation)) {\n if (this._messageCompiler) {\n translation = this._messageCompiler(translation);\n } else {\n console.warn(`Uncompiled message detected! Message:\n\n> ${translation}\n\nThat means you use raw catalog or your catalog doesn't have a translation for the message and fallback was used.\nICU features such as interpolation and plurals will not work properly for that message. \n\nPlease compile your catalog first. \n`);\n }\n }\n if (isString(translation) && UNICODE_REGEX.test(translation))\n return JSON.parse(`\"${translation}\"`);\n if (isString(translation))\n return translation;\n return interpolate(\n translation,\n this._locale,\n this._locales\n )(values, options?.formats);\n }\n date(value, format) {\n return date(this._locales || this._locale, value, format);\n }\n number(value, format) {\n return number(this._locales || this._locale, value, format);\n }\n}\nfunction setupI18n(params = {}) {\n return new I18n(params);\n}\n\nconst i18n = setupI18n();\n\nexport { I18n, formats, i18n, setupI18n };\n", "import { Constructor, CustomValidityState, FormControlInterface, FormValue, IControlHost, validationMessageCallback, Validator } from './types.js';\n\nexport function FormControlMixin<\n TBase extends Constructor<HTMLElement & IControlHost> & { observedAttributes?: string [] }\n>(SuperClass: TBase) {\n class FormControl extends SuperClass {\n /** Wires up control instances to be form associated */\n static get formAssociated(): boolean {\n return true;\n }\n\n /**\n * A list of Validator objects that will be evaluated when a control's form\n * value is modified or optionally when a given attribute changes.\n *\n * When a Validator's callback returns false, the entire form control will\n * be set to an invalid state.\n */\n declare static formControlValidators: Validator[];\n\n /**\n * If set to true the control described should be evaluated and validated\n * as part of a group. Like a radio, if any member of the group's validity\n * changes the the other members should update as well.\n */\n declare static formControlValidationGroup: boolean;\n\n private static get validators(): Validator[] {\n return this.formControlValidators || [];\n }\n\n /**\n * Allows the FormControl instance to respond to Validator attributes.\n * For instance, if a given Validator has a `required` attribute, that\n * validator will be evaluated whenever the host's required attribute\n * is updated.\n */\n static get observedAttributes(): string[] {\n const validatorAttributes = this.validators.map((validator) => validator.attribute).flat();\n\n const observedAttributes = super.observedAttributes || [];\n\n /** Make sure there are no duplicates inside the attributes list */\n const attributeSet = new Set([...observedAttributes, ...validatorAttributes]);\n return [...attributeSet] as string[];\n }\n\n /**\n * Return the validator associated with a given attribute. If no\n * Validator is associated with the attribute, it will return null.\n */\n static getValidator(attribute: string): Validator | null {\n return this.validators.find((validator) => validator.attribute === attribute) || null;\n }\n\n /**\n * Get all validators that are set to react to a given attribute\n * @param {string} attribute - The attribute that has changed\n * @returns {Validator[]}\n */\n static getValidators(attribute: string): Validator[] | null {\n return this.validators.filter(validator => {\n if (validator.attribute === attribute || validator.attribute?.includes(attribute)) {\n return true;\n }\n });\n }\n\n /** The ElementInternals instance for the control. */\n internals = this.attachInternals();\n\n /**\n * Keep track of if the control has focus\n * @private\n */\n #focused = false;\n\n /**\n * Exists to control when an error should be displayed\n * @private\n */\n #forceError = false;\n\n /**\n * Toggles to true whenever the element has been focused. This property\n * will reset whenever the control's formResetCallback is called.\n * @private\n */\n #touched = false;\n\n /** An internal abort controller for cancelling pending async validation */\n #abortController?: AbortController;\n #previousAbortController?: AbortController;\n\n /**\n * Used for tracking if a validation target has been set to manage focus\n * when the control's validity is reported\n */\n #awaitingValidationTarget = true;\n\n /** All of the controls within a root with a matching local name and form name */\n get #formValidationGroup(): NodeListOf<FormControl> {\n const rootNode = this.getRootNode() as HTMLElement;\n const selector = `${this.localName}[name=\"${this.getAttribute('name')}\"]`;\n return rootNode.querySelectorAll<FormControl>(selector);\n }\n\n /**\n * Acts as a cache for the current value so the value can be re-evaluated\n * whenever an attribute changes or on some other event.\n */\n #value: FormValue = '';\n\n /**\n * Set this[touched] and this[focused]\n * to true when the element is focused\n * @private\n */\n #onFocus = (): void => {\n this.#touched = true;\n this.#focused = true;\n this.#shouldShowError();\n };\n\n /**\n * Reset this[focused] on blur\n * @private\n */\n #onBlur = (): void => {\n this.#focused = false;\n\n this.#runValidators(this.shouldFormValueUpdate() ? this.#value : '');\n\n /**\n * Set forceError to ensure error messages persist until\n * the value is changed.\n */\n if (!this.validity.valid && this.#touched) {\n this.#forceError = true;\n }\n const showError = this.#shouldShowError();\n if (this.validationMessageCallback) {\n this.validationMessageCallback(showError ? this.internals.validationMessage : '');\n }\n };\n\n /**\n * For the show error state on invalid\n * @private\n */\n #onInvalid = (): void => {\n if (this.#awaitingValidationTarget && this.validationTarget) {\n this.internals.setValidity(\n this.validity,\n this.validationMessage,\n this.validationTarget\n );\n this.#awaitingValidationTarget = false;\n }\n this.#touched = true;\n this.#forceError = true;\n this.#shouldShowError();\n this?.validationMessageCallback?.(this.showError ? this.internals.validationMessage : '');\n };\n\n /** Return a reference to the control's form */\n get form(): HTMLFormElement {\n return this.internals.form;\n }\n\n /**\n * Will return true if it is recommended that the control shows an internal\n * error. If using this property, it is wise to listen for 'invalid' events\n * on the element host and call preventDefault on the event. Doing this will\n * prevent browsers from showing a validation popup.\n */\n get showError(): boolean {\n return this.#shouldShowError();\n }\n\n /**\n * Forward the internals checkValidity method\n * will return the valid state of the control.\n */\n checkValidity(): boolean {\n return this.internals.checkValidity();\n }\n\n /** The element's validity state */\n get validity(): ValidityState {\n return this.internals.validity;\n }\n\n /**\n * The validation message shown by a given Validator object. If the control\n * is in a valid state this should be falsy.\n */\n get validationMessage(): string {\n return this.internals.validationMessage;\n }\n\n /* eslint-disable @typescript-eslint/no-explicit-any */\n constructor(...args: any[]) {\n super(...args);\n this.addEventListener?.('focus', this.#onFocus);\n this.addEventListener?.('blur', this.#onBlur);\n this.addEventListener?.('invalid', this.#onInvalid);\n this.setValue(null);\n }\n\n attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n super.attributeChangedCallback?.(name, oldValue, newValue);\n\n /**\n * Check to see if a Validator is associated with the changed attribute.\n * If one exists, call control's validate function which will perform\n * control validation.\n */\n const proto = this.constructor as typeof FormControl;\n const validators = proto.getValidators(name);\n\n if (validators?.length && this.validationTarget) {\n this.setValue(this.#value);\n }\n }\n\n /** PUBLIC LIFECYCLE METHODS */\n\n /**\n * Sets the control's form value if the call to `shouldFormValueUpdate`\n * returns `true`.\n * @param value {FormValue} - The value to pass to the form\n */\n setValue(value: FormValue): void {\n this.#forceError = false;\n this.validationMessageCallback?.('');\n this.#value = value;\n const valueShouldUpdate = this.shouldFormValueUpdate();\n const valueToUpdate = valueShouldUpdate ? value : null;\n this.internals.setFormValue(valueToUpdate as string);\n this.#runValidators(valueToUpdate);\n if (this.valueChangedCallback) {\n this.valueChangedCallback(valueToUpdate);\n }\n this.#shouldShowError();\n }\n\n /**\n * This method can be overridden to determine if the control's form value\n * should be set on a call to `setValue`. An example of when a user might want\n * to skip this step is when implementing checkbox-like behavior, first checking\n * to see if `this.checked` is set to a truthy value. By default this returns\n * `true`.\n */\n shouldFormValueUpdate(): boolean {\n return true;\n }\n\n /** Save a reference to the validation complete resolver */\n #validationCompleteResolver?: (value: void | PromiseLike<void>) => void;\n\n /** When true validation will be pending */\n #isValidationPending = false;\n\n #validationComplete = Promise.resolve();\n\n /** A promise that will resolve when all pending validations are complete */\n get validationComplete(): Promise<void> {\n return new Promise(resolve => resolve(this.#validationComplete));\n }\n\n /** DECLARED INSTANCE METHODS AND PROPERTIES*/\n\n /**\n * Resets a form control to its initial state\n */\n declare resetFormControl: () => void;\n\n /**\n * This method is used to override the controls' validity message\n * for a given Validator key. This has the highest level of priority when\n * setting a validationMessage, so use this method wisely.\n *\n * The returned value will be used as the validationMessage for the given key.\n * @param validationKey {string} - The key that has returned invalid\n */\n declare validityCallback: (validationKey: string) => string | void;\n\n /**\n * Called when the control's validationMessage should be changed\n * @param message { string } - The new validation message\n */\n declare validationMessageCallback: (message: string) => void;\n\n /**\n * A callback for when the controls' form value changes. The value\n * passed to this function should not be confused with the control's\n * value property, this is the value that will appear on the form.\n *\n * In cases where `checked` did not exist on the control's prototype\n * upon initialization, this value and the value property will be identical;\n * in cases where `checked` is present upon initialization, this will be\n * effectively `this.checked && this.value`.\n */\n declare valueChangedCallback: (value: FormValue) => void;\n\n /**\n * The element that will receive focus when the control's validity\n * state is reported either by a form submission or via API\n *\n * We use declare since this is optional and we don't particularly\n * care how the consuming component implements this (as a field, member\n * or getter/setter)\n */\n declare validationTarget: HTMLElement | null;\n\n /** PRIVATE LIFECYCLE METHODS */\n\n /**\n * Check to see if an error should be shown. This method will also\n * update the internals state object with the --show-error state\n * if necessary.\n * @private\n */\n #shouldShowError(): boolean {\n if (this.hasAttribute('disabled')) {\n return false;\n }\n\n const showError = this.#forceError || (this.#touched && !this.validity.valid && !this.#focused);\n\n /**\n * At the time of writing Firefox doesn't support states\n * TODO: Remove when check for states when fully support is in place\n */\n if (showError && this.internals.states) {\n this.internals.states.add('--show-error');\n } else if (this.internals.states) {\n this.internals.states.delete('--show-error');\n }\n\n return showError;\n }\n\n #runValidators(value: FormValue): void {\n const proto = this.constructor as typeof FormControl;\n const validity: CustomValidityState = {};\n const validators = proto.validators;\n const asyncValidators: Promise<boolean|void>[] = [];\n const hasAsyncValidators = validators.some((validator) => validator.isValid instanceof Promise)\n\n if (!this.#isValidationPending) {\n this.#validationComplete = new Promise(resolve => {\n this.#validationCompleteResolver = resolve\n });\n this.#isValidationPending = true;\n }\n\n /**\n * If an abort controller exists from a previous validation step\n * notify still-running async validators that we are requesting they\n * discontinue any work.\n */\n if (this.#abortController) {\n this.#abortController.abort();\n this.#previousAbortController = this.#abortController;\n }\n\n /**\n * Create a new abort controller and replace the instance reference\n * so we can clean it up for next time\n */\n const abortController = new AbortController();\n this.#abortController = abortController;\n let validationMessage: string | undefined = undefined;\n\n /** Track to see if any validity key has changed */\n let hasChange = false;\n\n if (!validators.length) {\n return;\n }\n\n validators.forEach(validator => {\n const key = validator.key || 'customError';\n const isValid = validator.isValid(this, value, abortController.signal);\n const isAsyncValidator = isValid instanceof Promise;\n\n if (isAsyncValidator) {\n asyncValidators.push(isValid);\n\n isValid.then(isValidatorValid => {\n if (isValidatorValid === undefined || isValidatorValid === null) {\n return;\n }\n /** Invert the validity state to correspond to the ValidityState API */\n validity[key] = !isValidatorValid;\n\n validationMessage = this.#getValidatorMessageForValue(validator, value);\n this.#setValidityWithOptionalTarget(validity, validationMessage);\n });\n } else {\n /** Invert the validity state to correspond to the ValidityState API */\n validity[key] = !isValid;\n\n if (this.validity[key] !== !isValid) {\n hasChange = true;\n }\n\n // only update the validationMessage for the first invalid scenario\n // so that earlier invalid validators dont get their messages overwritten by later ones\n // in the validators array\n if (!isValid && !validationMessage) {\n validationMessage = this.#getValidatorMessageForValue(validator, value);\n }\n }\n });\n\n /** Once all the async validators have settled, resolve validationComplete */\n Promise.allSettled(asyncValidators)\n .then(() => {\n /** Don't resolve validations if the signal is aborted */\n if (!abortController?.signal.aborted) {\n this.#isValidationPending = false;\n this.#validationCompleteResolver?.();\n }\n });\n\n /**\n * If async validators are present:\n * Only run updates when a sync validator has a change. This is to prevent\n * situations where running sync validators can override async validators\n * that are still in progress\n *\n * If async validators are not present, always update validity\n */\n if (hasChange || !hasAsyncValidators) {\n this.#setValidityWithOptionalTarget(validity, validationMessage);\n }\n }\n\n /**\n * If the validationTarget is not set, the user can decide how they would\n * prefer to handle focus when the field is validated.\n */\n #setValidityWithOptionalTarget(validity: Partial<ValidityState>, validationMessage: string|undefined): void {\n if (this.validationTarget) {\n this.internals.setValidity(validity, validationMessage, this.validationTarget);\n this.#awaitingValidationTarget = false;\n } else {\n this.internals.setValidity(validity, validationMessage);\n\n if (this.internals.validity.valid) {\n return;\n }\n\n /**\n * Sets mark the component as awaiting a validation target\n * if the element dispatches an invalid event, the #onInvalid listener\n * will check to see if the validation target has been set since this call\n * has run. This useful in cases like Lit's use of the query\n * decorator for setting the validationTarget or any scenario\n * where the validationTarget isn't available upon construction\n */\n this.#awaitingValidationTarget = true;\n }\n }\n\n /** Process the validator message attribute */\n #getValidatorMessageForValue(validator: Validator, value: FormValue): string {\n /** If the validity callback exists and returns, use that as the result */\n if (this.validityCallback) {\n const message = this.validityCallback(validator.key || 'customError');\n\n if (message) {\n return message;\n }\n }\n\n if (validator.message instanceof Function) {\n return (validator.message as validationMessageCallback)(this, value);\n } else {\n return validator.message as string;\n }\n }\n\n /** Reset control state when the form is reset */\n formResetCallback() {\n this.#touched = false;\n this.#forceError = false;\n this.#shouldShowError();\n this.resetFormControl?.();\n\n this.validationMessageCallback?.(\n this.#shouldShowError() ? this.validationMessage : ''\n );\n }\n }\n\n return FormControl as Constructor<FormControlInterface> & TBase;\n}\n", "/**\n * @module constants\n * @summary Useful constants\n * @description\n * Collection of useful date constants.\n *\n * The constants could be imported from `date-fns/constants`:\n *\n * ```ts\n * import { maxTime, minTime } from \"./constants/date-fns/constants\";\n *\n * function isAllowedTime(time) {\n * return time <= maxTime && time >= minTime;\n * }\n * ```\n */\n\n/**\n * @constant\n * @name daysInWeek\n * @summary Days in 1 week.\n */\nexport const daysInWeek = 7;\n\n/**\n * @constant\n * @name daysInYear\n * @summary Days in 1 year.\n *\n * @description\n * How many days in a year.\n *\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occurs every 4 years, except for years that are divisible by 100 and not divisible by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n */\nexport const daysInYear = 365.2425;\n\n/**\n * @constant\n * @name maxTime\n * @summary Maximum allowed time.\n *\n * @example\n * import { maxTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = 8640000000000001 <= maxTime;\n * //=> false\n *\n * new Date(8640000000000001);\n * //=> Invalid Date\n */\nexport const maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n\n/**\n * @constant\n * @name minTime\n * @summary Minimum allowed time.\n *\n * @example\n * import { minTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = -8640000000000001 >= minTime;\n * //=> false\n *\n * new Date(-8640000000000001)\n * //=> Invalid Date\n */\nexport const minTime = -maxTime;\n\n/**\n * @constant\n * @name millisecondsInWeek\n * @summary Milliseconds in 1 week.\n */\nexport const millisecondsInWeek = 604800000;\n\n/**\n * @constant\n * @name millisecondsInDay\n * @summary Milliseconds in 1 day.\n */\nexport const millisecondsInDay = 86400000;\n\n/**\n * @constant\n * @name millisecondsInMinute\n * @summary Milliseconds in 1 minute\n */\nexport const millisecondsInMinute = 60000;\n\n/**\n * @constant\n * @name millisecondsInHour\n * @summary Milliseconds in 1 hour\n */\nexport const millisecondsInHour = 3600000;\n\n/**\n * @constant\n * @name millisecondsInSecond\n * @summary Milliseconds in 1 second\n */\nexport const millisecondsInSecond = 1000;\n\n/**\n * @constant\n * @name minutesInYear\n * @summary Minutes in 1 year.\n */\nexport const minutesInYear = 525600;\n\n/**\n * @constant\n * @name minutesInMonth\n * @summary Minutes in 1 month.\n */\nexport const minutesInMonth = 43200;\n\n/**\n * @constant\n * @name minutesInDay\n * @summary Minutes in 1 day.\n */\nexport const minutesInDay = 1440;\n\n/**\n * @constant\n * @name minutesInHour\n * @summary Minutes in 1 hour.\n */\nexport const minutesInHour = 60;\n\n/**\n * @constant\n * @name monthsInQuarter\n * @summary Months in 1 quarter.\n */\nexport const monthsInQuarter = 3;\n\n/**\n * @constant\n * @name monthsInYear\n * @summary Months in 1 year.\n */\nexport const monthsInYear = 12;\n\n/**\n * @constant\n * @name quartersInYear\n * @summary Quarters in 1 year\n */\nexport const quartersInYear = 4;\n\n/**\n * @constant\n * @name secondsInHour\n * @summary Seconds in 1 hour.\n */\nexport const secondsInHour = 3600;\n\n/**\n * @constant\n * @name secondsInMinute\n * @summary Seconds in 1 minute.\n */\nexport const secondsInMinute = 60;\n\n/**\n * @constant\n * @name secondsInDay\n * @summary Seconds in 1 day.\n */\nexport const secondsInDay = secondsInHour * 24;\n\n/**\n * @constant\n * @name secondsInWeek\n * @summary Seconds in 1 week.\n */\nexport const secondsInWeek = secondsInDay * 7;\n\n/**\n * @constant\n * @name secondsInYear\n * @summary Seconds in 1 year.\n */\nexport const secondsInYear = secondsInDay * daysInYear;\n\n/**\n * @constant\n * @name secondsInMonth\n * @summary Seconds in 1 month\n */\nexport const secondsInMonth = secondsInYear / 12;\n\n/**\n * @constant\n * @name secondsInQuarter\n * @summary Seconds in 1 quarter.\n */\nexport const secondsInQuarter = secondsInMonth * 3;\n\n/**\n * @constant\n * @name constructFromSymbol\n * @summary Symbol enabling Date extensions to inherit properties from the reference date.\n *\n * The symbol is used to enable the `constructFrom` function to construct a date\n * using a reference date and a value. It allows to transfer extra properties\n * from the reference date to the new date. It's useful for extensions like\n * [`TZDate`](https://github.com/date-fns/tz) that accept a time zone as\n * a constructor argument.\n */\nexport const constructFromSymbol = Symbol.for(\"constructDateFrom\");\n", "import { constructFromSymbol } from \"./constants.js\";\n\n/**\n * @name constructFrom\n * @category Generic Helpers\n * @summary Constructs a date using the reference date and the value\n *\n * @description\n * The function constructs a new date using the constructor from the reference\n * date and the given value. It helps to build generic functions that accept\n * date extensions.\n *\n * It defaults to `Date` if the passed reference date is a number or a string.\n *\n * Starting from v3.7.0, it allows to construct a date using `[Symbol.for(\"constructDateFrom\")]`\n * enabling to transfer extra properties from the reference date to the new date.\n * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz)\n * that accept a time zone as a constructor argument.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The reference date to take constructor from\n * @param value - The value to create the date\n *\n * @returns Date initialized using the given date and value\n *\n * @example\n * import { constructFrom } from \"./constructFrom/date-fns\";\n *\n * // A function that clones a date preserving the original type\n * function cloneDate<DateType extends Date>(date: DateType): DateType {\n * return constructFrom(\n * date, // Use constructor from the given date\n * date.getTime() // Use the date value to create a new date\n * );\n * }\n */\nexport function constructFrom(date, value) {\n if (typeof date === \"function\") return date(value);\n\n if (date && typeof date === \"object\" && constructFromSymbol in date)\n return date[constructFromSymbol](value);\n\n if (date instanceof Date) return new date.constructor(value);\n\n return new Date(value);\n}\n\n// Fallback for modularized imports:\nexport default constructFrom;\n", "import { constructFrom } from \"./constructFrom.js\";\n\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * Starting from v3.7.0, it clones a date using `[Symbol.for(\"constructDateFrom\")]`\n * enabling to transfer extra properties from the reference date to the new date.\n * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz)\n * that accept a time zone as a constructor argument.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param argument - The value to convert\n *\n * @returns The parsed date in the local time zone\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport function toDate(argument, context) {\n // [TODO] Get rid of `toDate` or `constructFrom`?\n return constructFrom(context || argument, argument);\n}\n\n// Fallback for modularized imports:\nexport default toDate;\n", "import { constructFrom } from \"./constructFrom.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link addDays} function options.\n */\n\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 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of days to be added.\n * @param options - An object with options\n *\n * @returns The new date with the days added\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 */\nexport function addDays(date, amount, options) {\n const _date = toDate(date, options?.in);\n if (isNaN(amount)) return constructFrom(options?.in || date, NaN);\n\n // If 0 days, no-op to avoid changing times in the hour before end of DST\n if (!amount) return _date;\n\n _date.setDate(_date.getDate() + amount);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default addDays;\n", "import { constructFrom } from \"./constructFrom.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link addMonths} function options.\n */\n\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 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of months to be added.\n * @param options - The options object\n *\n * @returns The new date with the months added\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 * // Add one month to 30 January 2023:\n * const result = addMonths(new Date(2023, 0, 30), 1)\n * //=> Tue Feb 28 2023 00:00:00\n */\nexport function addMonths(date, amount, options) {\n const _date = toDate(date, options?.in);\n if (isNaN(amount)) return constructFrom(options?.in || date, NaN);\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 const dayOfMonth = _date.getDate();\n\n // 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 const endOfDesiredMonth = constructFrom(options?.in || date, _date.getTime());\n endOfDesiredMonth.setMonth(_date.getMonth() + amount + 1, 0);\n const daysInMonth = endOfDesiredMonth.getDate();\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(\n endOfDesiredMonth.getFullYear(),\n endOfDesiredMonth.getMonth(),\n dayOfMonth,\n );\n return _date;\n }\n}\n\n// Fallback for modularized imports:\nexport default addMonths;\n", "let defaultOptions = {};\n\nexport function getDefaultOptions() {\n return defaultOptions;\n}\n\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}\n", "import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfWeek} function options.\n */\n\n/**\n * @name startOfWeek\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfWeek(date, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const _date = toDate(date, options?.in);\n const day = _date.getDay();\n const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n\n _date.setDate(_date.getDate() - diff);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeek;\n", "import { startOfWeek } from \"./startOfWeek.js\";\n\n/**\n * The {@link startOfISOWeek} function options.\n */\n\n/**\n * @name startOfISOWeek\n * @category ISO Week Helpers\n * @summary Return the start of an ISO week for the given date.\n *\n * @description\n * Return the start of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of an ISO week\n *\n * @example\n * // The start of an ISO week for 2 September 2014 11:55:00:\n * const result = startOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfISOWeek(date, options) {\n return startOfWeek(date, { ...options, weekStartsOn: 1 });\n}\n\n// Fallback for modularized imports:\nexport default startOfISOWeek;\n", "import { constructFrom } from \"./constructFrom.js\";\nimport { startOfISOWeek } from \"./startOfISOWeek.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getISOWeekYear} function options.\n */\n\n/**\n * @name getISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the ISO week-numbering year of the given date.\n *\n * @description\n * Get the ISO week-numbering year of the given date,\n * which always starts 3 days before the year's first Thursday.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param date - The given date\n *\n * @returns The ISO week-numbering year\n *\n * @example\n * // Which ISO-week numbering year is 2 January 2005?\n * const result = getISOWeekYear(new Date(2005, 0, 2))\n * //=> 2004\n */\nexport function getISOWeekYear(date, options) {\n const _date = toDate(date, options?.in);\n const year = _date.getFullYear();\n\n const fourthOfJanuaryOfNextYear = constructFrom(_date, 0);\n fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0);\n const startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear);\n\n const fourthOfJanuaryOfThisYear = constructFrom(_date, 0);\n fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0);\n const startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear);\n\n if (_date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (_date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}\n\n// Fallback for modularized imports:\nexport default getISOWeekYear;\n", "import { toDate } from \"../toDate.js\";\n\n/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport function getTimezoneOffsetInMilliseconds(date) {\n const _date = toDate(date);\n const utcDate = new Date(\n Date.UTC(\n _date.getFullYear(),\n _date.getMonth(),\n _date.getDate(),\n _date.getHours(),\n _date.getMinutes(),\n _date.getSeconds(),\n _date.getMilliseconds(),\n ),\n );\n utcDate.setUTCFullYear(_date.getFullYear());\n return +date - +utcDate;\n}\n", "import { constructFrom } from \"../constructFrom.js\";\n\nexport function normalizeDates(context, ...dates) {\n const normalize = constructFrom.bind(\n null,\n context || dates.find((date) => typeof date === \"object\"),\n );\n return dates.map(normalize);\n}\n", "import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfDay} function options.\n */\n\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 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - The options\n *\n * @returns The start of a day\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 */\nexport function startOfDay(date, options) {\n const _date = toDate(date, options?.in);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfDay;\n", "import { getTimezoneOffsetInMilliseconds } from \"./_lib/getTimezoneOffsetInMilliseconds.js\";\nimport { normalizeDates } from \"./_lib/normalizeDates.js\";\nimport { millisecondsInDay } from \"./constants.js\";\nimport { startOfDay } from \"./startOfDay.js\";\n\n/**\n * The {@link differenceInCalendarDays} function options.\n */\n\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 * @param laterDate - The later date\n * @param earlierDate - The earlier date\n * @param options - The options object\n *\n * @returns The number of calendar days\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 */\nexport function differenceInCalendarDays(laterDate, earlierDate, options) {\n const [laterDate_, earlierDate_] = normalizeDates(\n options?.in,\n laterDate,\n earlierDate,\n );\n\n const laterStartOfDay = startOfDay(laterDate_);\n const earlierStartOfDay = startOfDay(earlierDate_);\n\n const laterTimestamp =\n +laterStartOfDay - getTimezoneOffsetInMilliseconds(laterStartOfDay);\n const earlierTimestamp =\n +earlierStartOfDay - getTimezoneOffsetInMilliseconds(earlierStartOfDay);\n\n // Round the number of days to the nearest integer because the number of\n // milliseconds in a day is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round((laterTimestamp - earlierTimestamp) / millisecondsInDay);\n}\n\n// Fallback for modularized imports:\nexport default differenceInCalendarDays;\n", "import { constructFrom } from \"./constructFrom.js\";\nimport { getISOWeekYear } from \"./getISOWeekYear.js\";\nimport { startOfISOWeek } from \"./startOfISOWeek.js\";\n\n/**\n * The {@link startOfISOWeekYear} function options.\n */\n\n/**\n * @name startOfISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the start of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the start of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of an ISO week-numbering year\n *\n * @example\n * // The start of an ISO week-numbering year for 2 July 2005:\n * const result = startOfISOWeekYear(new Date(2005, 6, 2))\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport function startOfISOWeekYear(date, options) {\n const year = getISOWeekYear(date, options);\n const fourthOfJanuary = constructFrom(options?.in || date, 0);\n fourthOfJanuary.setFullYear(year, 0, 4);\n fourthOfJanuary.setHours(0, 0, 0, 0);\n return startOfISOWeek(fourthOfJanuary);\n}\n\n// Fallback for modularized imports:\nexport default startOfISOWeekYear;\n", "import { addDays } from \"./addDays.js\";\n\n/**\n * The {@link addWeeks} function options.\n */\n\n/**\n * @name addWeeks\n * @category Week Helpers\n * @summary Add the specified number of weeks to the given date.\n *\n * @description\n * Add the specified number of weeks to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of weeks to be added.\n * @param options - An object with options\n *\n * @returns The new date with the weeks added\n *\n * @example\n * // Add 4 weeks to 1 September 2014:\n * const result = addWeeks(new Date(2014, 8, 1), 4)\n * //=> Mon Sep 29 2014 00:00:00\n */\nexport function addWeeks(date, amount, options) {\n return addDays(date, amount * 7, options);\n}\n\n// Fallback for modularized imports:\nexport default addWeeks;\n", "import { constructFrom } from \"./constructFrom.js\";\n\n/**\n * @name constructNow\n * @category Generic Helpers\n * @summary Constructs a new current date using the passed value constructor.\n * @pure false\n *\n * @description\n * The function constructs a new current date using the constructor from\n * the reference date. It helps to build generic functions that accept date\n * extensions and use the current date.\n *\n * It defaults to `Date` if the passed reference date is a number or a string.\n *\n * @param date - The reference date to take constructor from\n *\n * @returns Current date initialized using the given date constructor\n *\n * @example\n * import { constructNow, isSameDay } from 'date-fns'\n *\n * function isToday<DateType extends Date>(\n * date: DateArg<DateType>,\n * ): boolean {\n * // If we were to use `new Date()` directly, the function would behave\n * // differently in different timezones and return false for the same date.\n * return isSameDay(date, constructNow(date));\n * }\n */\nexport function constructNow(date) {\n return constructFrom(date, Date.now());\n}\n\n// Fallback for modularized imports:\nexport default constructNow;\n", "import { normalizeDates } from \"./_lib/normalizeDates.js\";\nimport { startOfDay } from \"./startOfDay.js\";\n\n/**\n * The {@link isSameDay} function options.\n */\n\n/**\n * @name isSameDay\n * @category Day Helpers\n * @summary Are the given dates in the same day (and year and month)?\n *\n * @description\n * Are the given dates in the same day (and year and month)?\n *\n * @param laterDate - The first date to check\n * @param earlierDate - The second date to check\n * @param options - An object with options\n *\n * @returns The dates are in the same day (and year and month)\n *\n * @example\n * // Are 4 September 06:00:00 and 4 September 18:00:00 in the same day?\n * const result = isSameDay(new Date(2014, 8, 4, 6, 0), new Date(2014, 8, 4, 18, 0))\n * //=> true\n *\n * @example\n * // Are 4 September and 4 October in the same day?\n * const result = isSameDay(new Date(2014, 8, 4), new Date(2014, 9, 4))\n * //=> false\n *\n * @example\n * // Are 4 September, 2014 and 4 September, 2015 in the same day?\n * const result = isSameDay(new Date(2014, 8, 4), new Date(2015, 8, 4))\n * //=> false\n */\nexport function isSameDay(laterDate, earlierDate, options) {\n const [dateLeft_, dateRight_] = normalizeDates(\n options?.in,\n laterDate,\n earlierDate,\n );\n return +startOfDay(dateLeft_) === +startOfDay(dateRight_);\n}\n\n// Fallback for modularized imports:\nexport default isSameDay;\n", "/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param value - The value to check\n *\n * @returns True if the given value is a date\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\nexport function isDate(value) {\n return (\n value instanceof Date ||\n (typeof value === \"object\" &&\n Object.prototype.toString.call(value) === \"[object Date]\")\n );\n}\n\n// Fallback for modularized imports:\nexport default isDate;\n", "import { isDate } from \"./isDate.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate](https://date-fns.org/docs/toDate)\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param date - The date to check\n *\n * @returns The date is valid\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertible into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\nexport function isValid(date) {\n return !((!isDate(date) && typeof date !== \"number\") || isNaN(+toDate(date)));\n}\n\n// Fallback for modularized imports:\nexport default isValid;\n", "import { normalizeDates } from \"./normalizeDates.js\";\n\nexport function normalizeInterval(context, interval) {\n const [start, end] = normalizeDates(context, interval.start, interval.end);\n return { start, end };\n}\n", "import { normalizeInterval } from \"./_lib/normalizeInterval.js\";\nimport { constructFrom } from \"./constructFrom.js\";\n\n/**\n * The {@link eachDayOfInterval} function options.\n */\n\n/**\n * The {@link eachDayOfInterval} function result type. It resolves the proper data type.\n * It uses the first argument date object type, starting from the date argument,\n * then the start interval date, and finally the end interval date. If\n * a context function is passed, it uses the context function return type.\n */\n\n/**\n * @name eachDayOfInterval\n * @category Interval Helpers\n * @summary Return the array of dates within the specified time interval.\n *\n * @description\n * Return the array of dates within the specified time interval.\n *\n * @typeParam IntervalType - Interval type.\n * @typeParam Options - Options type.\n *\n * @param interval - The interval.\n * @param options - An object with options.\n *\n * @returns The array with starts of days from the day of the interval start to the day of the interval end\n *\n * @example\n * // Each day between 6 October 2014 and 10 October 2014:\n * const result = eachDayOfInterval({\n * start: new Date(2014, 9, 6),\n * end: new Date(2014, 9, 10)\n * })\n * //=> [\n * // Mon Oct 06 2014 00:00:00,\n * // Tue Oct 07 2014 00:00:00,\n * // Wed Oct 08 2014 00:00:00,\n * // Thu Oct 09 2014 00:00:00,\n * // Fri Oct 10 2014 00:00:00\n * // ]\n */\nexport function eachDayOfInterval(interval, options) {\n const { start, end } = normalizeInterval(options?.in, interval);\n\n let reversed = +start > +end;\n const endTime = reversed ? +start : +end;\n const date = reversed ? end : start;\n date.setHours(0, 0, 0, 0);\n\n let step = options?.step ?? 1;\n if (!step) return [];\n if (step < 0) {\n step = -step;\n reversed = !reversed;\n }\n\n const dates = [];\n\n while (+date <= endTime) {\n dates.push(constructFrom(start, date));\n date.setDate(date.getDate() + step);\n date.setHours(0, 0, 0, 0);\n }\n\n return reversed ? dates.reverse() : dates;\n}\n\n// Fallback for modularized imports:\nexport default eachDayOfInterval;\n", "import { normalizeInterval } from \"./_lib/normalizeInterval.js\";\nimport { addWeeks } from \"./addWeeks.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\n\n/**\n * The {@link eachWeekOfInterval} function options.\n */\n\n/**\n * The {@link eachWeekOfInterval} function result type. It resolves the proper data type.\n * It uses the first argument date object type, starting from the interval start date,\n * then the end interval date. If a context function is passed, it uses the context function return type.\n */\n\n/**\n * @name eachWeekOfInterval\n * @category Interval Helpers\n * @summary Return the array of weeks within the specified time interval.\n *\n * @description\n * Return the array of weeks within the specified time interval.\n *\n * @param interval - The interval.\n * @param options - An object with options.\n *\n * @returns The array with starts of weeks from the week of the interval start to the week of the interval end\n *\n * @example\n * // Each week within interval 6 October 2014 - 23 November 2014:\n * const result = eachWeekOfInterval({\n * start: new Date(2014, 9, 6),\n * end: new Date(2014, 10, 23)\n * })\n * //=> [\n * // Sun Oct 05 2014 00:00:00,\n * // Sun Oct 12 2014 00:00:00,\n * // Sun Oct 19 2014 00:00:00,\n * // Sun Oct 26 2014 00:00:00,\n * // Sun Nov 02 2014 00:00:00,\n * // Sun Nov 09 2014 00:00:00,\n * // Sun Nov 16 2014 00:00:00,\n * // Sun Nov 23 2014 00:00:00\n * // ]\n */\nexport function eachWeekOfInterval(interval, options) {\n const { start, end } = normalizeInterval(options?.in, interval);\n\n let reversed = +start > +end;\n const startDateWeek = reversed\n ? startOfWeek(end, options)\n : startOfWeek(start, options);\n const endDateWeek = reversed\n ? startOfWeek(start, options)\n : startOfWeek(end, options);\n\n startDateWeek.setHours(15);\n endDateWeek.setHours(15);\n\n const endTime = +endDateWeek.getTime();\n let currentDate = startDateWeek;\n\n let step = options?.step ?? 1;\n if (!step) return [];\n if (step < 0) {\n step = -step;\n reversed = !reversed;\n }\n\n const dates = [];\n\n while (+currentDate <= endTime) {\n currentDate.setHours(0);\n dates.push(constructFrom(start, currentDate));\n currentDate = addWeeks(currentDate, step);\n currentDate.setHours(15);\n }\n\n return reversed ? dates.reverse() : dates;\n}\n\n// Fallback for modularized imports:\nexport default eachWeekOfInterval;\n", "import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfMonth} function options.\n */\n\n/**\n * @name startOfMonth\n * @category Month Helpers\n * @summary Return the start of a month for the given date.\n *\n * @description\n * Return the start of a month for the given date. The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments.\n * Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed,\n * or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a month\n *\n * @example\n * // The start of a month for 2 September 2014 11:55:00:\n * const result = startOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfMonth(date, options) {\n const _date = toDate(date, options?.in);\n _date.setDate(1);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfMonth;\n", "import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfYear} function options.\n */\n\n/**\n * @name startOfYear\n * @category Year Helpers\n * @summary Return the start of a year for the given date.\n *\n * @description\n * Return the start of a year for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - The options\n *\n * @returns The start of a year\n *\n * @example\n * // The start of a year for 2 September 2014 11:55:00:\n * const result = startOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Jan 01 2014 00:00:00\n */\nexport function startOfYear(date, options) {\n const date_ = toDate(date, options?.in);\n date_.setFullYear(date_.getFullYear(), 0, 1);\n date_.setHours(0, 0, 0, 0);\n return date_;\n}\n\n// Fallback for modularized imports:\nexport default startOfYear;\n", "import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link endOfWeek} function options.\n */\n\n/**\n * @name endOfWeek\n * @category Week Helpers\n * @summary Return the end of a week for the given date.\n *\n * @description\n * Return the end of a week for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The end of a week\n *\n * @example\n * // The end of a week for 2 September 2014 11:55:00:\n * const result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sat Sep 06 2014 23:59:59.999\n *\n * @example\n * // If the week starts on Monday, the end of the week for 2 September 2014 11:55:00:\n * const result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Sun Sep 07 2014 23:59:59.999\n */\nexport function endOfWeek(date, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const _date = toDate(date, options?.in);\n const day = _date.getDay();\n const diff = (day < weekStartsOn ? -7 : 0) + 6 - (day - weekStartsOn);\n\n _date.setDate(_date.getDate() + diff);\n _date.setHours(23, 59, 59, 999);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default endOfWeek;\n", "const formatDistanceLocale = {\n lessThanXSeconds: {\n one: \"less than a second\",\n other: \"less than {{count}} seconds\",\n },\n\n xSeconds: {\n one: \"1 second\",\n other: \"{{count}} seconds\",\n },\n\n halfAMinute: \"half a minute\",\n\n lessThanXMinutes: {\n one: \"less than a minute\",\n other: \"less than {{count}} minutes\",\n },\n\n xMinutes: {\n one: \"1 minute\",\n other: \"{{count}} minutes\",\n },\n\n aboutXHours: {\n one: \"about 1 hour\",\n other: \"about {{count}} hours\",\n },\n\n xHours: {\n one: \"1 hour\",\n other: \"{{count}} hours\",\n },\n\n xDays: {\n one: \"1 day\",\n other: \"{{count}} days\",\n },\n\n aboutXWeeks: {\n one: \"about 1 week\",\n other: \"about {{count}} weeks\",\n },\n\n xWeeks: {\n one: \"1 week\",\n other: \"{{count}} weeks\",\n },\n\n aboutXMonths: {\n one: \"about 1 month\",\n other: \"about {{count}} months\",\n },\n\n xMonths: {\n one: \"1 month\",\n other: \"{{count}} months\",\n },\n\n aboutXYears: {\n one: \"about 1 year\",\n other: \"about {{count}} years\",\n },\n\n xYears: {\n one: \"1 year\",\n other: \"{{count}} years\",\n },\n\n overXYears: {\n one: \"over 1 year\",\n other: \"over {{count}} years\",\n },\n\n almostXYears: {\n one: \"almost 1 year\",\n other: \"almost {{count}} years\",\n },\n};\n\nexport const formatDistance = (token, count, options) => {\n let result;\n\n const tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === \"string\") {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace(\"{{count}}\", count.toString());\n }\n\n if (options?.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return \"in \" + result;\n } else {\n return result + \" ago\";\n }\n }\n\n return result;\n};\n", "export function buildFormatLongFn(args) {\n return (options = {}) => {\n // TODO: Remove String()\n const width = options.width ? String(options.width) : args.defaultWidth;\n const format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}\n", "import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n full: \"EEEE, MMMM do, y\",\n long: \"MMMM do, y\",\n medium: \"MMM d, y\",\n short: \"MM/dd/yyyy\",\n};\n\nconst timeFormats = {\n full: \"h:mm:ss a zzzz\",\n long: \"h:mm:ss a z\",\n medium: \"h:mm:ss a\",\n short: \"h:mm a\",\n};\n\nconst dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: \"{{date}}, {{time}}\",\n short: \"{{date}}, {{time}}\",\n};\n\nexport const formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n};\n", "const formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n formatRelativeLocale[token];\n", "/**\n * The localize function argument callback which allows to convert raw value to\n * the actual type.\n *\n * @param value - The value to convert\n *\n * @returns The converted value\n */\n\n/**\n * The map of localized values for each width.\n */\n\n/**\n * The index type of the locale unit value. It types conversion of units of\n * values that don't start at 0 (i.e. quarters).\n */\n\n/**\n * Converts the unit value to the tuple of values.\n */\n\n/**\n * The tuple of localized era values. The first element represents BC,\n * the second element represents AD.\n */\n\n/**\n * The tuple of localized quarter values. The first element represents Q1.\n */\n\n/**\n * The tuple of localized day values. The first element represents Sunday.\n */\n\n/**\n * The tuple of localized month values. The first element represents January.\n */\n\nexport function buildLocalizeFn(args) {\n return (value, options) => {\n const context = options?.context ? String(options.context) : \"standalone\";\n\n let valuesArray;\n if (context === \"formatting\" && args.formattingValues) {\n const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n const width = options?.width ? String(options.width) : defaultWidth;\n\n valuesArray =\n args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n const defaultWidth = args.defaultWidth;\n const width = options?.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[width] || args.values[defaultWidth];\n }\n const index = args.argumentCallback ? args.argumentCallback(value) : value;\n\n // @ts-expect-error - For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}\n", "import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n narrow: [\"B\", \"A\"],\n abbreviated: [\"BC\", \"AD\"],\n wide: [\"Before Christ\", \"Anno Domini\"],\n};\n\nconst quarterValues = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n wide: [\"1st quarter\", \"2nd quarter\", \"3rd quarter\", \"4th quarter\"],\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nconst monthValues = {\n narrow: [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n abbreviated: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n\n wide: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n};\n\nconst dayValues = {\n narrow: [\"S\", \"M\", \"T\", \"W\", \"T\", \"F\", \"S\"],\n short: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n abbreviated: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n wide: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ],\n};\n\nconst dayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n};\n\nconst formattingDayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n const number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n const rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + \"st\";\n case 2:\n return number + \"nd\";\n case 3:\n return number + \"rd\";\n }\n }\n return number + \"th\";\n};\n\nexport const localize = {\n ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: \"wide\",\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: \"wide\",\n argumentCallback: (quarter) => quarter - 1,\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: \"wide\",\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: \"wide\",\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: \"wide\",\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: \"wide\",\n }),\n};\n", "export function buildMatchFn(args) {\n return (string, options = {}) => {\n const width = options.width;\n\n const matchPattern =\n (width && args.matchPatterns[width]) ||\n args.matchPatterns[args.defaultMatchWidth];\n const matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n const matchedString = matchResult[0];\n\n const parsePatterns =\n (width && args.parsePatterns[width]) ||\n args.parsePatterns[args.defaultParseWidth];\n\n const key = Array.isArray(parsePatterns)\n ? findIndex(parsePatterns, (pattern) => pattern.test(matchedString))\n : // [TODO] -- I challenge you to fix the type\n findKey(parsePatterns, (pattern) => pattern.test(matchedString));\n\n let value;\n\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback\n ? // [TODO] -- I challenge you to fix the type\n options.valueCallback(value)\n : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n\nfunction findKey(object, predicate) {\n for (const key in object) {\n if (\n Object.prototype.hasOwnProperty.call(object, key) &&\n predicate(object[key])\n ) {\n return key;\n }\n }\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (let key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}\n", "export function buildMatchPatternFn(args) {\n return (string, options = {}) => {\n const matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n const matchedString = matchResult[0];\n\n const parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n let value = args.valueCallback\n ? args.valueCallback(parseResult[0])\n : parseResult[0];\n\n // [TODO] I challenge you to fix the type\n value = options.valueCallback ? options.valueCallback(value) : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n", "import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i,\n};\nconst parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i],\n};\n\nconst matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i,\n};\nconst parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i,\n};\nconst parseMonthPatterns = {\n narrow: [\n /^j/i,\n /^f/i,\n /^m/i,\n /^a/i,\n /^m/i,\n /^j/i,\n /^j/i,\n /^a/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n\n any: [\n /^ja/i,\n /^f/i,\n /^mar/i,\n /^ap/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^au/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n};\n\nconst matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i,\n};\nconst parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i],\n};\n\nconst matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i,\n};\nconst parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i,\n },\n};\n\nexport const match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: (value) => parseInt(value, 10),\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseEraPatterns,\n defaultParseWidth: \"any\",\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: \"any\",\n valueCallback: (index) => index + 1,\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: \"any\",\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPatterns,\n defaultParseWidth: \"any\",\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: \"any\",\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: \"any\",\n }),\n};\n", "import { formatDistance } from \"./en-US/_lib/formatDistance.js\";\nimport { formatLong } from \"./en-US/_lib/formatLong.js\";\nimport { formatRelative } from \"./en-US/_lib/formatRelative.js\";\nimport { localize } from \"./en-US/_lib/localize.js\";\nimport { match } from \"./en-US/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp](https://github.com/kossnocorp)\n * @author Lesha Koss [@leshakoss](https://github.com/leshakoss)\n */\nexport const enUS = {\n code: \"en-US\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1,\n },\n};\n\n// Fallback for modularized imports:\nexport default enUS;\n", "import { differenceInCalendarDays } from \"./differenceInCalendarDays.js\";\nimport { startOfYear } from \"./startOfYear.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getDayOfYear} function options.\n */\n\n/**\n * @name getDayOfYear\n * @category Day Helpers\n * @summary Get the day of the year of the given date.\n *\n * @description\n * Get the day of the year of the given date.\n *\n * @param date - The given date\n * @param options - The options\n *\n * @returns The day of year\n *\n * @example\n * // Which day of the year is 2 July 2014?\n * const result = getDayOfYear(new Date(2014, 6, 2))\n * //=> 183\n */\nexport function getDayOfYear(date, options) {\n const _date = toDate(date, options?.in);\n const diff = differenceInCalendarDays(_date, startOfYear(_date));\n const dayOfYear = diff + 1;\n return dayOfYear;\n}\n\n// Fallback for modularized imports:\nexport default getDayOfYear;\n", "import { millisecondsInWeek } from \"./constants.js\";\nimport { startOfISOWeek } from \"./startOfISOWeek.js\";\nimport { startOfISOWeekYear } from \"./startOfISOWeekYear.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getISOWeek} function options.\n */\n\n/**\n * @name getISOWeek\n * @category ISO Week Helpers\n * @summary Get the ISO week of the given date.\n *\n * @description\n * Get the ISO week of the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param date - The given date\n * @param options - The options\n *\n * @returns The ISO week\n *\n * @example\n * // Which week of the ISO-week numbering year is 2 January 2005?\n * const result = getISOWeek(new Date(2005, 0, 2))\n * //=> 53\n */\nexport function getISOWeek(date, options) {\n const _date = toDate(date, options?.in);\n const diff = +startOfISOWeek(_date) - +startOfISOWeekYear(_date);\n\n // Round the number of weeks to the nearest integer because the number of\n // milliseconds in a week is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(diff / millisecondsInWeek) + 1;\n}\n\n// Fallback for modularized imports:\nexport default getISOWeek;\n", "import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getWeekYear} function options.\n */\n\n/**\n * @name getWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Get the local week-numbering year of the given date.\n *\n * @description\n * Get the local week-numbering year of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @param date - The given date\n * @param options - An object with options.\n *\n * @returns The local week-numbering year\n *\n * @example\n * // Which week numbering year is 26 December 2004 with the default settings?\n * const result = getWeekYear(new Date(2004, 11, 26))\n * //=> 2005\n *\n * @example\n * // Which week numbering year is 26 December 2004 if week starts on Saturday?\n * const result = getWeekYear(new Date(2004, 11, 26), { weekStartsOn: 6 })\n * //=> 2004\n *\n * @example\n * // Which week numbering year is 26 December 2004 if the first week contains 4 January?\n * const result = getWeekYear(new Date(2004, 11, 26), { firstWeekContainsDate: 4 })\n * //=> 2004\n */\nexport function getWeekYear(date, options) {\n const _date = toDate(date, options?.in);\n const year = _date.getFullYear();\n\n const defaultOptions = getDefaultOptions();\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const firstWeekOfNextYear = constructFrom(options?.in || date, 0);\n firstWeekOfNextYear.setFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setHours(0, 0, 0, 0);\n const startOfNextYear = startOfWeek(firstWeekOfNextYear, options);\n\n const firstWeekOfThisYear = constructFrom(options?.in || date, 0);\n firstWeekOfThisYear.setFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setHours(0, 0, 0, 0);\n const startOfThisYear = startOfWeek(firstWeekOfThisYear, options);\n\n if (+_date >= +startOfNextYear) {\n return year + 1;\n } else if (+_date >= +startOfThisYear) {\n return year;\n } else {\n return year - 1;\n }\n}\n\n// Fallback for modularized imports:\nexport default getWeekYear;\n", "import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { getWeekYear } from \"./getWeekYear.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\n\n/**\n * The {@link startOfWeekYear} function options.\n */\n\n/**\n * @name startOfWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Return the start of a local week-numbering year for the given date.\n *\n * @description\n * Return the start of a local week-numbering year.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week-numbering year\n *\n * @example\n * // The start of an a week-numbering year for 2 July 2005 with default settings:\n * const result = startOfWeekYear(new Date(2005, 6, 2))\n * //=> Sun Dec 26 2004 00:00:00\n *\n * @example\n * // The start of a week-numbering year for 2 July 2005\n * // if Monday is the first day of week\n * // and 4 January is always in the first week of the year:\n * const result = startOfWeekYear(new Date(2005, 6, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport function startOfWeekYear(date, options) {\n const defaultOptions = getDefaultOptions();\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const year = getWeekYear(date, options);\n const firstWeek = constructFrom(options?.in || date, 0);\n firstWeek.setFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setHours(0, 0, 0, 0);\n const _date = startOfWeek(firstWeek, options);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeekYear;\n", "import { millisecondsInWeek } from \"./constants.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\nimport { startOfWeekYear } from \"./startOfWeekYear.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getWeek} function options.\n */\n\n/**\n * @name getWeek\n * @category Week Helpers\n * @summary Get the local week index of the given date.\n *\n * @description\n * Get the local week index of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The week\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005 with default options?\n * const result = getWeek(new Date(2005, 0, 2))\n * //=> 2\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005,\n * // if Monday is the first day of the week,\n * // and the first week of the year always contains 4 January?\n * const result = getWeek(new Date(2005, 0, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> 53\n */\nexport function getWeek(date, options) {\n const _date = toDate(date, options?.in);\n const diff = +startOfWeek(_date, options) - +startOfWeekYear(_date, options);\n\n // Round the number of weeks to the nearest integer because the number of\n // milliseconds in a week is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(diff / millisecondsInWeek) + 1;\n}\n\n// Fallback for modularized imports:\nexport default getWeek;\n", "export function addLeadingZeros(number, targetLength) {\n const sign = number < 0 ? \"-\" : \"\";\n const output = Math.abs(number).toString().padStart(targetLength, \"0\");\n return sign + output;\n}\n", "import { addLeadingZeros } from \"../addLeadingZeros.js\";\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nexport const lightFormatters = {\n // Year\n y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n const signedYear = date.getFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === \"yy\" ? year % 100 : year, token.length);\n },\n\n // Month\n M(date, token) {\n const month = date.getMonth();\n return token === \"M\" ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n\n // Day of the month\n d(date, token) {\n return addLeadingZeros(date.getDate(), token.length);\n },\n\n // AM or PM\n a(date, token) {\n const dayPeriodEnumValue = date.getHours() / 12 >= 1 ? \"pm\" : \"am\";\n\n switch (token) {\n case \"a\":\n case \"aa\":\n return dayPeriodEnumValue.toUpperCase();\n case \"aaa\":\n return dayPeriodEnumValue;\n case \"aaaaa\":\n return dayPeriodEnumValue[0];\n case \"aaaa\":\n default:\n return dayPeriodEnumValue === \"am\" ? \"a.m.\" : \"p.m.\";\n }\n },\n\n // Hour [1-12]\n h(date, token) {\n return addLeadingZeros(date.getHours() % 12 || 12, token.length);\n },\n\n // Hour [0-23]\n H(date, token) {\n return addLeadingZeros(date.getHours(), token.length);\n },\n\n // Minute\n m(date, token) {\n return addLeadingZeros(date.getMinutes(), token.length);\n },\n\n // Second\n s(date, token) {\n return addLeadingZeros(date.getSeconds(), token.length);\n },\n\n // Fraction of second\n S(date, token) {\n const numberOfDigits = token.length;\n const milliseconds = date.getMilliseconds();\n const fractionalSeconds = Math.trunc(\n milliseconds * Math.pow(10, numberOfDigits - 3),\n );\n return addLeadingZeros(fractionalSeconds, token.length);\n },\n};\n", "import { getDayOfYear } from \"../../getDayOfYear.js\";\nimport { getISOWeek } from \"../../getISOWeek.js\";\nimport { getISOWeekYear } from \"../../getISOWeekYear.js\";\nimport { getWeek } from \"../../getWeek.js\";\nimport { getWeekYear } from \"../../getWeekYear.js\";\n\nimport { addLeadingZeros } from \"../addLeadingZeros.js\";\nimport { lightFormatters } from \"./lightFormatters.js\";\n\nconst dayPeriodEnum = {\n am: \"am\",\n pm: \"pm\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n};\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nexport const formatters = {\n // Era\n G: function (date, token, localize) {\n const era = date.getFullYear() > 0 ? 1 : 0;\n switch (token) {\n // AD, BC\n case \"G\":\n case \"GG\":\n case \"GGG\":\n return localize.era(era, { width: \"abbreviated\" });\n // A, B\n case \"GGGGG\":\n return localize.era(era, { width: \"narrow\" });\n // Anno Domini, Before Christ\n case \"GGGG\":\n default:\n return localize.era(era, { width: \"wide\" });\n }\n },\n\n // Year\n y: function (date, token, localize) {\n // Ordinal number\n if (token === \"yo\") {\n const signedYear = date.getFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, { unit: \"year\" });\n }\n\n return lightFormatters.y(date, token);\n },\n\n // Local week-numbering year\n Y: function (date, token, localize, options) {\n const signedWeekYear = getWeekYear(date, options);\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;\n\n // Two digit year\n if (token === \"YY\") {\n const twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n }\n\n // Ordinal number\n if (token === \"Yo\") {\n return localize.ordinalNumber(weekYear, { unit: \"year\" });\n }\n\n // Padding\n return addLeadingZeros(weekYear, token.length);\n },\n\n // ISO week-numbering year\n R: function (date, token) {\n const isoWeekYear = getISOWeekYear(date);\n\n // Padding\n return addLeadingZeros(isoWeekYear, token.length);\n },\n\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function (date, token) {\n const year = date.getFullYear();\n return addLeadingZeros(year, token.length);\n },\n\n // Quarter\n Q: function (date, token, localize) {\n const quarter = Math.ceil((date.getMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case \"Q\":\n return String(quarter);\n // 01, 02, 03, 04\n case \"QQ\":\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case \"Qo\":\n return localize.ordinalNumber(quarter, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"QQQ\":\n return localize.quarter(quarter, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"QQQQQ\":\n return localize.quarter(quarter, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"QQQQ\":\n default:\n return localize.quarter(quarter, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Stand-alone quarter\n q: function (date, token, localize) {\n const quarter = Math.ceil((date.getMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case \"q\":\n return String(quarter);\n // 01, 02, 03, 04\n case \"qq\":\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case \"qo\":\n return localize.ordinalNumber(quarter, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"qqq\":\n return localize.quarter(quarter, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"qqqqq\":\n return localize.quarter(quarter, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"qqqq\":\n default:\n return localize.quarter(quarter, {\n width: \"wide\",\n context: \"standalone\",\n });\n }\n },\n\n // Month\n M: function (date, token, localize) {\n const month = date.getMonth();\n switch (token) {\n case \"M\":\n case \"MM\":\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n case \"Mo\":\n return localize.ordinalNumber(month + 1, { unit: \"month\" });\n // Jan, Feb, ..., Dec\n case \"MMM\":\n return localize.month(month, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // J, F, ..., D\n case \"MMMMM\":\n return localize.month(month, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // January, February, ..., December\n case \"MMMM\":\n default:\n return localize.month(month, { width: \"wide\", context: \"formatting\" });\n }\n },\n\n // Stand-alone month\n L: function (date, token, localize) {\n const month = date.getMonth();\n switch (token) {\n // 1, 2, ..., 12\n case \"L\":\n return String(month + 1);\n // 01, 02, ..., 12\n case \"LL\":\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n case \"Lo\":\n return localize.ordinalNumber(month + 1, { unit: \"month\" });\n // Jan, Feb, ..., Dec\n case \"LLL\":\n return localize.month(month, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // J, F, ..., D\n case \"LLLLL\":\n return localize.month(month, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // January, February, ..., December\n case \"LLLL\":\n default:\n return localize.month(month, { width: \"wide\", context: \"standalone\" });\n }\n },\n\n // Local week of year\n w: function (date, token, localize, options) {\n const week = getWeek(date, options);\n\n if (token === \"wo\") {\n return localize.ordinalNumber(week, { unit: \"week\" });\n }\n\n return addLeadingZeros(week, token.length);\n },\n\n // ISO week of year\n I: function (date, token, localize) {\n const isoWeek = getISOWeek(date);\n\n if (token === \"Io\") {\n return localize.ordinalNumber(isoWeek, { unit: \"week\" });\n }\n\n return addLeadingZeros(isoWeek, token.length);\n },\n\n // Day of the month\n d: function (date, token, localize) {\n if (token === \"do\") {\n return localize.ordinalNumber(date.getDate(), { unit: \"date\" });\n }\n\n return lightFormatters.d(date, token);\n },\n\n // Day of year\n D: function (date, token, localize) {\n const dayOfYear = getDayOfYear(date);\n\n if (token === \"Do\") {\n return localize.ordinalNumber(dayOfYear, { unit: \"dayOfYear\" });\n }\n\n return addLeadingZeros(dayOfYear, token.length);\n },\n\n // Day of week\n E: function (date, token, localize) {\n const dayOfWeek = date.getDay();\n switch (token) {\n // Tue\n case \"E\":\n case \"EE\":\n case \"EEE\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"EEEEE\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"EEEEEE\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"EEEE\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Local day of week\n e: function (date, token, localize, options) {\n const dayOfWeek = date.getDay();\n const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case \"e\":\n return String(localDayOfWeek);\n // Padded numerical value\n case \"ee\":\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n case \"eo\":\n return localize.ordinalNumber(localDayOfWeek, { unit: \"day\" });\n case \"eee\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"eeeee\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"eeeeee\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"eeee\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Stand-alone local day of week\n c: function (date, token, localize, options) {\n const dayOfWeek = date.getDay();\n const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (same as in `e`)\n case \"c\":\n return String(localDayOfWeek);\n // Padded numerical value\n case \"cc\":\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n case \"co\":\n return localize.ordinalNumber(localDayOfWeek, { unit: \"day\" });\n case \"ccc\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // T\n case \"ccccc\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // Tu\n case \"cccccc\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"standalone\",\n });\n // Tuesday\n case \"cccc\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"standalone\",\n });\n }\n },\n\n // ISO day of week\n i: function (date, token, localize) {\n const dayOfWeek = date.getDay();\n const isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n switch (token) {\n // 2\n case \"i\":\n return String(isoDayOfWeek);\n // 02\n case \"ii\":\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n case \"io\":\n return localize.ordinalNumber(isoDayOfWeek, { unit: \"day\" });\n // Tue\n case \"iii\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"iiiii\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"iiiiii\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"iiii\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // AM or PM\n a: function (date, token, localize) {\n const hours = date.getHours();\n const dayPeriodEnumValue = hours / 12 >= 1 ? \"pm\" : \"am\";\n\n switch (token) {\n case \"a\":\n case \"aa\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"aaa\":\n return localize\n .dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n })\n .toLowerCase();\n case \"aaaaa\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"aaaa\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // AM, PM, midnight, noon\n b: function (date, token, localize) {\n const hours = date.getHours();\n let dayPeriodEnumValue;\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? \"pm\" : \"am\";\n }\n\n switch (token) {\n case \"b\":\n case \"bb\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"bbb\":\n return localize\n .dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n })\n .toLowerCase();\n case \"bbbbb\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"bbbb\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // in the morning, in the afternoon, in the evening, at night\n B: function (date, token, localize) {\n const hours = date.getHours();\n let dayPeriodEnumValue;\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n\n switch (token) {\n case \"B\":\n case \"BB\":\n case \"BBB\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"BBBBB\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"BBBB\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Hour [1-12]\n h: function (date, token, localize) {\n if (token === \"ho\") {\n let hours = date.getHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return lightFormatters.h(date, token);\n },\n\n // Hour [0-23]\n H: function (date, token, localize) {\n if (token === \"Ho\") {\n return localize.ordinalNumber(date.getHours(), { unit: \"hour\" });\n }\n\n return lightFormatters.H(date, token);\n },\n\n // Hour [0-11]\n K: function (date, token, localize) {\n const hours = date.getHours() % 12;\n\n if (token === \"Ko\") {\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n\n // Hour [1-24]\n k: function (date, token, localize) {\n let hours = date.getHours();\n if (hours === 0) hours = 24;\n\n if (token === \"ko\") {\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n\n // Minute\n m: function (date, token, localize) {\n if (token === \"mo\") {\n return localize.ordinalNumber(date.getMinutes(), { unit: \"minute\" });\n }\n\n return lightFormatters.m(date, token);\n },\n\n // Second\n s: function (date, token, localize) {\n if (token === \"so\") {\n return localize.ordinalNumber(date.getSeconds(), { unit: \"second\" });\n }\n\n return lightFormatters.s(date, token);\n },\n\n // Fraction of second\n S: function (date, token) {\n return lightFormatters.S(date, token);\n },\n\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n if (timezoneOffset === 0) {\n return \"Z\";\n }\n\n switch (token) {\n // Hours and optional minutes\n case \"X\":\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n case \"XXXX\":\n case \"XX\": // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n case \"XXXXX\":\n case \"XXX\": // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Hours and optional minutes\n case \"x\":\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n case \"xxxx\":\n case \"xx\": // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n case \"xxxxx\":\n case \"xxx\": // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (GMT)\n O: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Short\n case \"O\":\n case \"OO\":\n case \"OOO\":\n return \"GMT\" + formatTimezoneShort(timezoneOffset, \":\");\n // Long\n case \"OOOO\":\n default:\n return \"GMT\" + formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (specific non-location)\n z: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Short\n case \"z\":\n case \"zz\":\n case \"zzz\":\n return \"GMT\" + formatTimezoneShort(timezoneOffset, \":\");\n // Long\n case \"zzzz\":\n default:\n return \"GMT\" + formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Seconds timestamp\n t: function (date, token, _localize) {\n const timestamp = Math.trunc(+date / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n\n // Milliseconds timestamp\n T: function (date, token, _localize) {\n return addLeadingZeros(+date, token.length);\n },\n};\n\nfunction formatTimezoneShort(offset, delimiter = \"\") {\n const sign = offset > 0 ? \"-\" : \"+\";\n const absOffset = Math.abs(offset);\n const hours = Math.trunc(absOffset / 60);\n const minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours);\n }\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, delimiter) {\n if (offset % 60 === 0) {\n const sign = offset > 0 ? \"-\" : \"+\";\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n return formatTimezone(offset, delimiter);\n}\n\nfunction formatTimezone(offset, delimiter = \"\") {\n const sign = offset > 0 ? \"-\" : \"+\";\n const absOffset = Math.abs(offset);\n const hours = addLeadingZeros(Math.trunc(absOffset / 60), 2);\n const minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\n", "const dateLongFormatter = (pattern, formatLong) => {\n switch (pattern) {\n case \"P\":\n return formatLong.date({ width: \"short\" });\n case \"PP\":\n return formatLong.date({ width: \"medium\" });\n case \"PPP\":\n return formatLong.date({ width: \"long\" });\n case \"PPPP\":\n default:\n return formatLong.date({ width: \"full\" });\n }\n};\n\nconst timeLongFormatter = (pattern, formatLong) => {\n switch (pattern) {\n case \"p\":\n return formatLong.time({ width: \"short\" });\n case \"pp\":\n return formatLong.time({ width: \"medium\" });\n case \"ppp\":\n return formatLong.time({ width: \"long\" });\n case \"pppp\":\n default:\n return formatLong.time({ width: \"full\" });\n }\n};\n\nconst dateTimeLongFormatter = (pattern, formatLong) => {\n const matchResult = pattern.match(/(P+)(p+)?/) || [];\n const datePattern = matchResult[1];\n const timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n let dateTimeFormat;\n\n switch (datePattern) {\n case \"P\":\n dateTimeFormat = formatLong.dateTime({ width: \"short\" });\n break;\n case \"PP\":\n dateTimeFormat = formatLong.dateTime({ width: \"medium\" });\n break;\n case \"PPP\":\n dateTimeFormat = formatLong.dateTime({ width: \"long\" });\n break;\n case \"PPPP\":\n default:\n dateTimeFormat = formatLong.dateTime({ width: \"full\" });\n break;\n }\n\n return dateTimeFormat\n .replace(\"{{date}}\", dateLongFormatter(datePattern, formatLong))\n .replace(\"{{time}}\", timeLongFormatter(timePattern, formatLong));\n};\n\nexport const longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter,\n};\n", "const dayOfYearTokenRE = /^D+$/;\nconst weekYearTokenRE = /^Y+$/;\n\nconst throwTokens = [\"D\", \"DD\", \"YY\", \"YYYY\"];\n\nexport function isProtectedDayOfYearToken(token) {\n return dayOfYearTokenRE.test(token);\n}\n\nexport function isProtectedWeekYearToken(token) {\n return weekYearTokenRE.test(token);\n}\n\nexport function warnOrThrowProtectedError(token, format, input) {\n const _message = message(token, format, input);\n console.warn(_message);\n if (throwTokens.includes(token)) throw new RangeError(_message);\n}\n\nfunction message(token, format, input) {\n const subject = token[0] === \"Y\" ? \"years\" : \"days of the month\";\n return `Use \\`${token.toLowerCase()}\\` instead of \\`${token}\\` (in \\`${format}\\`) for formatting ${subject} to the input \\`${input}\\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`;\n}\n", "import { defaultLocale } from \"./_lib/defaultLocale.js\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { formatters } from \"./_lib/format/formatters.js\";\nimport { longFormatters } from \"./_lib/format/longFormatters.js\";\nimport {\n isProtectedDayOfYearToken,\n isProtectedWeekYearToken,\n warnOrThrowProtectedError,\n} from \"./_lib/protectedTokens.js\";\nimport { isValid } from \"./isValid.js\";\nimport { toDate } from \"./toDate.js\";\n\n// Rexports of internal for libraries to use.\n// See: https://github.com/date-fns/date-fns/issues/3638#issuecomment-1877082874\nexport { formatters, longFormatters };\n\n// This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nconst formattingTokensRegExp =\n /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nconst longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\n\nconst escapedStringRegExp = /^'([^]*?)'?$/;\nconst doubleQuoteRegExp = /''/g;\nconst unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\nexport { format as formatDate };\n\n/**\n * The {@link format} function options.\n */\n\n/**\n * @name format\n * @alias formatDate\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > \u26A0\uFE0F Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear](https://date-fns.org/docs/getISOWeekYear)\n * and [getWeekYear](https://date-fns.org/docs/getWeekYear)).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @param date - The original date\n * @param format - The string of tokens\n * @param options - An object with options\n *\n * @returns The formatted date string\n *\n * @throws `date` must not be Invalid Date\n * @throws `options.locale` must contain `localize` property\n * @throws `options.locale` must contain `formatLong` property\n * @throws use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\nexport function format(date, formatStr, options) {\n const defaultOptions = getDefaultOptions();\n const locale = options?.locale ?? defaultOptions.locale ?? defaultLocale;\n\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const originalDate = toDate(date, options?.in);\n\n if (!isValid(originalDate)) {\n throw new RangeError(\"Invalid time value\");\n }\n\n let parts = formatStr\n .match(longFormattingTokensRegExp)\n .map((substring) => {\n const firstCharacter = substring[0];\n if (firstCharacter === \"p\" || firstCharacter === \"P\") {\n const longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n })\n .join(\"\")\n .match(formattingTokensRegExp)\n .map((substring) => {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return { isToken: false, value: \"'\" };\n }\n\n const firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return { isToken: false, value: cleanEscapedString(substring) };\n }\n\n if (formatters[firstCharacter]) {\n return { isToken: true, value: substring };\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError(\n \"Format string contains an unescaped latin alphabet character `\" +\n firstCharacter +\n \"`\",\n );\n }\n\n return { isToken: false, value: substring };\n });\n\n // invoke localize preprocessor (only for french locales at the moment)\n if (locale.localize.preprocessor) {\n parts = locale.localize.preprocessor(originalDate, parts);\n }\n\n const formatterOptions = {\n firstWeekContainsDate,\n weekStartsOn,\n locale,\n };\n\n return parts\n .map((part) => {\n if (!part.isToken) return part.value;\n\n const token = part.value;\n\n if (\n (!options?.useAdditionalWeekYearTokens &&\n isProtectedWeekYearToken(token)) ||\n (!options?.useAdditionalDayOfYearTokens &&\n isProtectedDayOfYearToken(token))\n ) {\n warnOrThrowProtectedError(token, formatStr, String(date));\n }\n\n const formatter = formatters[token[0]];\n return formatter(originalDate, token, locale.localize, formatterOptions);\n })\n .join(\"\");\n}\n\nfunction cleanEscapedString(input) {\n const matched = input.match(escapedStringRegExp);\n\n if (!matched) {\n return input;\n }\n\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}\n\n// Fallback for modularized imports:\nexport default format;\n", "import { addLeadingZeros } from \"./_lib/addLeadingZeros.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link formatISO} function options.\n */\n\n/**\n * @name formatISO\n * @category Common Helpers\n * @summary Format the date according to the ISO 8601 standard (https://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a003169814.htm).\n *\n * @description\n * Return the formatted date string in ISO 8601 format. Options may be passed to control the parts and notations of the date.\n *\n * @param date - The original date\n * @param options - An object with options.\n *\n * @returns The formatted date string (in local time zone)\n *\n * @throws `date` must not be Invalid Date\n *\n * @example\n * // Represent 18 September 2019 in ISO 8601 format (local time zone is UTC):\n * const result = formatISO(new Date(2019, 8, 18, 19, 0, 52))\n * //=> '2019-09-18T19:00:52Z'\n *\n * @example\n * // Represent 18 September 2019 in ISO 8601, short format (local time zone is UTC):\n * const result = formatISO(new Date(2019, 8, 18, 19, 0, 52), { format: 'basic' })\n * //=> '20190918T190052'\n *\n * @example\n * // Represent 18 September 2019 in ISO 8601 format, date only:\n * const result = formatISO(new Date(2019, 8, 18, 19, 0, 52), { representation: 'date' })\n * //=> '2019-09-18'\n *\n * @example\n * // Represent 18 September 2019 in ISO 8601 format, time only (local time zone is UTC):\n * const result = formatISO(new Date(2019, 8, 18, 19, 0, 52), { representation: 'time' })\n * //=> '19:00:52Z'\n */\nexport function formatISO(date, options) {\n const date_ = toDate(date, options?.in);\n\n if (isNaN(+date_)) {\n throw new RangeError(\"Invalid time value\");\n }\n\n const format = options?.format ?? \"extended\";\n const representation = options?.representation ?? \"complete\";\n\n let result = \"\";\n let tzOffset = \"\";\n\n const dateDelimiter = format === \"extended\" ? \"-\" : \"\";\n const timeDelimiter = format === \"extended\" ? \":\" : \"\";\n\n // Representation is either 'date' or 'complete'\n if (representation !== \"time\") {\n const day = addLeadingZeros(date_.getDate(), 2);\n const month = addLeadingZeros(date_.getMonth() + 1, 2);\n const year = addLeadingZeros(date_.getFullYear(), 4);\n\n // yyyyMMdd or yyyy-MM-dd.\n result = `${year}${dateDelimiter}${month}${dateDelimiter}${day}`;\n }\n\n // Representation is either 'time' or 'complete'\n if (representation !== \"date\") {\n // Add the timezone.\n const offset = date_.getTimezoneOffset();\n\n if (offset !== 0) {\n const absoluteOffset = Math.abs(offset);\n const hourOffset = addLeadingZeros(Math.trunc(absoluteOffset / 60), 2);\n const minuteOffset = addLeadingZeros(absoluteOffset % 60, 2);\n // If less than 0, the sign is +, because it is ahead of time.\n const sign = offset < 0 ? \"+\" : \"-\";\n\n tzOffset = `${sign}${hourOffset}:${minuteOffset}`;\n } else {\n tzOffset = \"Z\";\n }\n\n const hour = addLeadingZeros(date_.getHours(), 2);\n const minute = addLeadingZeros(date_.getMinutes(), 2);\n const second = addLeadingZeros(date_.getSeconds(), 2);\n\n // If there's also date, separate it with time with 'T'\n const separator = result === \"\" ? \"\" : \"T\";\n\n // Creates a time string consisting of hour, minute, and second, separated by delimiters, if defined.\n const time = [hour, minute, second].join(timeDelimiter);\n\n // HHmmss or HH:mm:ss.\n result = `${result}${separator}${time}${tzOffset}`;\n }\n\n return result;\n}\n\n// Fallback for modularized imports:\nexport default formatISO;\n", "import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getDate} function options.\n */\n\n/**\n * @name getDate\n * @category Day Helpers\n * @summary Get the day of the month of the given date.\n *\n * @description\n * Get the day of the month of the given date.\n *\n * @param date - The given date\n * @param options - An object with options.\n *\n * @returns The day of month\n *\n * @example\n * // Which day of the month is 29 February 2012?\n * const result = getDate(new Date(2012, 1, 29))\n * //=> 29\n */\nexport function getDate(date, options) {\n return toDate(date, options?.in).getDate();\n}\n\n// Fallback for modularized imports:\nexport default getDate;\n", "import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getDay} function options.\n */\n\n/**\n * @name getDay\n * @category Weekday Helpers\n * @summary Get the day of the week of the given date.\n *\n * @description\n * Get the day of the week of the given date.\n *\n * @param date - The given date\n * @param options - The options\n *\n * @returns The day of week, 0 represents Sunday\n *\n * @example\n * // Which day of the week is 29 February 2012?\n * const result = getDay(new Date(2012, 1, 29))\n * //=> 3\n */\nexport function getDay(date, options) {\n return toDate(date, options?.in).getDay();\n}\n\n// Fallback for modularized imports:\nexport default getDay;\n", "import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { getDate } from \"./getDate.js\";\nimport { getDay } from \"./getDay.js\";\nimport { startOfMonth } from \"./startOfMonth.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getWeekOfMonth} function options.\n */\n\n/**\n * @name getWeekOfMonth\n * @category Week Helpers\n * @summary Get the week of the month of the given date.\n *\n * @description\n * Get the week of the month of the given date.\n *\n * @param date - The given date\n * @param options - An object with options.\n *\n * @returns The week of month\n *\n * @example\n * // Which week of the month is 9 November 2017?\n * const result = getWeekOfMonth(new Date(2017, 10, 9))\n * //=> 2\n */\nexport function getWeekOfMonth(date, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const currentDayOfMonth = getDate(toDate(date, options?.in));\n if (isNaN(currentDayOfMonth)) return NaN;\n\n const startWeekDay = getDay(startOfMonth(date, options));\n\n let lastDayOfFirstWeek = weekStartsOn - startWeekDay;\n if (lastDayOfFirstWeek <= 0) lastDayOfFirstWeek += 7;\n\n const remainingDaysAfterFirstWeek = currentDayOfMonth - lastDayOfFirstWeek;\n return Math.ceil(remainingDaysAfterFirstWeek / 7) + 1;\n}\n\n// Fallback for modularized imports:\nexport default getWeekOfMonth;\n", "import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link lastDayOfMonth} function options.\n */\n\n/**\n * @name lastDayOfMonth\n * @category Month Helpers\n * @summary Return the last day of a month for the given date.\n *\n * @description\n * Return the last day of a month for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The last day of a month\n *\n * @example\n * // The last day of a month for 2 September 2014 11:55:00:\n * const result = lastDayOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 00:00:00\n */\nexport function lastDayOfMonth(date, options) {\n const _date = toDate(date, options?.in);\n const month = _date.getMonth();\n _date.setFullYear(_date.getFullYear(), month + 1, 0);\n _date.setHours(0, 0, 0, 0);\n return toDate(_date, options?.in);\n}\n\n// Fallback for modularized imports:\nexport default lastDayOfMonth;\n", "import { normalizeDates } from \"./_lib/normalizeDates.js\";\n\n/**\n * The {@link isSameMonth} function options.\n */\n\n/**\n * @name isSameMonth\n * @category Month Helpers\n * @summary Are the given dates in the same month (and year)?\n *\n * @description\n * Are the given dates in the same month (and year)?\n *\n * @param laterDate - The first date to check\n * @param earlierDate - The second date to check\n * @param options - An object with options\n *\n * @returns The dates are in the same month (and year)\n *\n * @example\n * // Are 2 September 2014 and 25 September 2014 in the same month?\n * const result = isSameMonth(new Date(2014, 8, 2), new Date(2014, 8, 25))\n * //=> true\n *\n * @example\n * // Are 2 September 2014 and 25 September 2015 in the same month?\n * const result = isSameMonth(new Date(2014, 8, 2), new Date(2015, 8, 25))\n * //=> false\n */\nexport function isSameMonth(laterDate, earlierDate, options) {\n const [laterDate_, earlierDate_] = normalizeDates(\n options?.in,\n laterDate,\n earlierDate,\n );\n return (\n laterDate_.getFullYear() === earlierDate_.getFullYear() &&\n laterDate_.getMonth() === earlierDate_.getMonth()\n );\n}\n\n// Fallback for modularized imports:\nexport default isSameMonth;\n", "import { constructFrom } from \"./constructFrom.js\";\nimport { constructNow } from \"./constructNow.js\";\nimport { isSameDay } from \"./isSameDay.js\";\n\n/**\n * The {@link isToday} function options.\n */\n\n/**\n * @name isToday\n * @category Day Helpers\n * @summary Is the given date today?\n * @pure false\n *\n * @description\n * Is the given date today?\n *\n * @param date - The date to check\n * @param options - An object with options\n *\n * @returns The date is today\n *\n * @example\n * // If today is 6 October 2014, is 6 October 14:00:00 today?\n * const result = isToday(new Date(2014, 9, 6, 14, 0))\n * //=> true\n */\nexport function isToday(date, options) {\n return isSameDay(\n constructFrom(options?.in || date, date),\n constructNow(options?.in || date),\n );\n}\n\n// Fallback for modularized imports:\nexport default isToday;\n", "import { addDays } from \"./addDays.js\";\n\n/**\n * The {@link subDays} function options.\n */\n\n/**\n * @name subDays\n * @category Day Helpers\n * @summary Subtract the specified number of days from the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of days to be subtracted.\n * @param options - An object with options\n *\n * @returns The new date with the days subtracted\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 */\nexport function subDays(date, amount, options) {\n return addDays(date, -amount, options);\n}\n\n// Fallback for modularized imports:\nexport default subDays;\n", "import { startOfDay } from \"./startOfDay.js\";\n\n/**\n * The {@link startOfToday} function options.\n */\n\n/**\n * @name startOfToday\n * @category Day Helpers\n * @summary Return the start of today.\n * @pure false\n *\n * @description\n * Return the start of today.\n *\n * @typeParam ContextDate - The `Date` type of the context function.\n *\n * @param options - An object with options\n *\n * @returns The start of today\n *\n * @example\n * // If today is 6 October 2014:\n * const result = startOfToday()\n * //=> Mon Oct 6 2014 00:00:00\n */\nexport function startOfToday(options) {\n return startOfDay(Date.now(), options);\n}\n\n// Fallback for modularized imports:\nexport default startOfToday;\n", "import { addMonths } from \"./addMonths.js\";\n\n/**\n * The subMonths function options.\n */\n\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 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of months to be subtracted.\n * @param options - An object with options\n *\n * @returns The new date with the months subtracted\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 */\nexport function subMonths(date, amount, options) {\n return addMonths(date, -amount, options);\n}\n\n// Fallback for modularized imports:\nexport default subMonths;\n", "const formatDistanceLocale = {\n lessThanXSeconds: {\n one: \"mindre end \u00E9t sekund\",\n other: \"mindre end {{count}} sekunder\",\n },\n\n xSeconds: {\n one: \"1 sekund\",\n other: \"{{count}} sekunder\",\n },\n\n halfAMinute: \"\u00E9t halvt minut\",\n\n lessThanXMinutes: {\n one: \"mindre end \u00E9t minut\",\n other: \"mindre end {{count}} minutter\",\n },\n\n xMinutes: {\n one: \"1 minut\",\n other: \"{{count}} minutter\",\n },\n\n aboutXHours: {\n one: \"cirka 1 time\",\n other: \"cirka {{count}} timer\",\n },\n\n xHours: {\n one: \"1 time\",\n other: \"{{count}} timer\",\n },\n\n xDays: {\n one: \"1 dag\",\n other: \"{{count}} dage\",\n },\n\n aboutXWeeks: {\n one: \"cirka 1 uge\",\n other: \"cirka {{count}} uger\",\n },\n\n xWeeks: {\n one: \"1 uge\",\n other: \"{{count}} uger\",\n },\n\n aboutXMonths: {\n one: \"cirka 1 m\u00E5ned\",\n other: \"cirka {{count}} m\u00E5neder\",\n },\n\n xMonths: {\n one: \"1 m\u00E5ned\",\n other: \"{{count}} m\u00E5neder\",\n },\n\n aboutXYears: {\n one: \"cirka 1 \u00E5r\",\n other: \"cirka {{count}} \u00E5r\",\n },\n\n xYears: {\n one: \"1 \u00E5r\",\n other: \"{{count}} \u00E5r\",\n },\n\n overXYears: {\n one: \"over 1 \u00E5r\",\n other: \"over {{count}} \u00E5r\",\n },\n\n almostXYears: {\n one: \"n\u00E6sten 1 \u00E5r\",\n other: \"n\u00E6sten {{count}} \u00E5r\",\n },\n};\n\nexport const formatDistance = (token, count, options) => {\n let result;\n\n const tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === \"string\") {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace(\"{{count}}\", String(count));\n }\n\n if (options?.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return \"om \" + result;\n } else {\n return result + \" siden\";\n }\n }\n\n return result;\n};\n", "import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n full: \"EEEE 'den' d. MMMM y\",\n long: \"d. MMMM y\",\n medium: \"d. MMM y\",\n short: \"dd/MM/y\",\n};\n\nconst timeFormats = {\n full: \"HH:mm:ss zzzz\",\n long: \"HH:mm:ss z\",\n medium: \"HH:mm:ss\",\n short: \"HH:mm\",\n};\n\nconst dateTimeFormats = {\n full: \"{{date}} 'kl'. {{time}}\",\n long: \"{{date}} 'kl'. {{time}}\",\n medium: \"{{date}} {{time}}\",\n short: \"{{date}} {{time}}\",\n};\n\nexport const formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n};\n", "const formatRelativeLocale = {\n lastWeek: \"'sidste' eeee 'kl.' p\",\n yesterday: \"'i g\u00E5r kl.' p\",\n today: \"'i dag kl.' p\",\n tomorrow: \"'i morgen kl.' p\",\n nextWeek: \"'p\u00E5' eeee 'kl.' p\",\n other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n formatRelativeLocale[token];\n", "import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n narrow: [\"fvt\", \"vt\"],\n abbreviated: [\"f.v.t.\", \"v.t.\"],\n wide: [\"f\u00F8r vesterlandsk tidsregning\", \"vesterlandsk tidsregning\"],\n};\n\nconst quarterValues = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"1. kvt.\", \"2. kvt.\", \"3. kvt.\", \"4. kvt.\"],\n wide: [\"1. kvartal\", \"2. kvartal\", \"3. kvartal\", \"4. kvartal\"],\n};\n\nconst monthValues = {\n narrow: [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n abbreviated: [\n \"jan.\",\n \"feb.\",\n \"mar.\",\n \"apr.\",\n \"maj\",\n \"jun.\",\n \"jul.\",\n \"aug.\",\n \"sep.\",\n \"okt.\",\n \"nov.\",\n \"dec.\",\n ],\n\n wide: [\n \"januar\",\n \"februar\",\n \"marts\",\n \"april\",\n \"maj\",\n \"juni\",\n \"juli\",\n \"august\",\n \"september\",\n \"oktober\",\n \"november\",\n \"december\",\n ],\n};\n\n// Note that 'Days - abbreviated - Formatting' has periods at the end.\n// https://www.unicode.org/cldr/charts/32/summary/da.html#1760\n// This makes grammatical sense in danish, as most abbreviations have periods.\nconst dayValues = {\n narrow: [\"S\", \"M\", \"T\", \"O\", \"T\", \"F\", \"L\"],\n short: [\"s\u00F8\", \"ma\", \"ti\", \"on\", \"to\", \"fr\", \"l\u00F8\"],\n abbreviated: [\"s\u00F8n.\", \"man.\", \"tir.\", \"ons.\", \"tor.\", \"fre.\", \"l\u00F8r.\"],\n\n wide: [\n \"s\u00F8ndag\",\n \"mandag\",\n \"tirsdag\",\n \"onsdag\",\n \"torsdag\",\n \"fredag\",\n \"l\u00F8rdag\",\n ],\n};\n\nconst dayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"midnat\",\n noon: \"middag\",\n morning: \"morgen\",\n afternoon: \"eftermiddag\",\n evening: \"aften\",\n night: \"nat\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnat\",\n noon: \"middag\",\n morning: \"morgen\",\n afternoon: \"eftermiddag\",\n evening: \"aften\",\n night: \"nat\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnat\",\n noon: \"middag\",\n morning: \"morgen\",\n afternoon: \"eftermiddag\",\n evening: \"aften\",\n night: \"nat\",\n },\n};\n\nconst formattingDayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"midnat\",\n noon: \"middag\",\n morning: \"om morgenen\",\n afternoon: \"om eftermiddagen\",\n evening: \"om aftenen\",\n night: \"om natten\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnat\",\n noon: \"middag\",\n morning: \"om morgenen\",\n afternoon: \"om eftermiddagen\",\n evening: \"om aftenen\",\n night: \"om natten\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnat\",\n noon: \"middag\",\n morning: \"om morgenen\",\n afternoon: \"om eftermiddagen\",\n evening: \"om aftenen\",\n night: \"om natten\",\n },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n const number = Number(dirtyNumber);\n return number + \".\";\n};\n\nexport const localize = {\n ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: \"wide\",\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: \"wide\",\n argumentCallback: (quarter) => quarter - 1,\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: \"wide\",\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: \"wide\",\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: \"wide\",\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: \"wide\",\n }),\n};\n", "import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(\\.)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n narrow: /^(fKr|fvt|eKr|vt)/i,\n abbreviated: /^(f\\.Kr\\.?|f\\.v\\.t\\.?|e\\.Kr\\.?|v\\.t\\.)/i,\n wide: /^(f.Kr.|f\u00F8r vesterlandsk tidsregning|e.Kr.|vesterlandsk tidsregning)/i,\n};\nconst parseEraPatterns = {\n any: [/^f/i, /^(v|e)/i],\n};\n\nconst matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^[1234]. kvt\\./i,\n wide: /^[1234]\\.? kvartal/i,\n};\nconst parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan.|feb.|mar.|apr.|maj|jun.|jul.|aug.|sep.|okt.|nov.|dec.)/i,\n wide: /^(januar|februar|marts|april|maj|juni|juli|august|september|oktober|november|december)/i,\n};\nconst parseMonthPatterns = {\n narrow: [\n /^j/i,\n /^f/i,\n /^m/i,\n /^a/i,\n /^m/i,\n /^j/i,\n /^j/i,\n /^a/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n\n any: [\n /^ja/i,\n /^f/i,\n /^mar/i,\n /^ap/i,\n /^maj/i,\n /^jun/i,\n /^jul/i,\n /^au/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n};\n\nconst matchDayPatterns = {\n narrow: /^[smtofl]/i,\n short: /^(s\u00F8n.|man.|tir.|ons.|tor.|fre.|l\u00F8r.)/i,\n abbreviated: /^(s\u00F8n|man|tir|ons|tor|fre|l\u00F8r)/i,\n wide: /^(s\u00F8ndag|mandag|tirsdag|onsdag|torsdag|fredag|l\u00F8rdag)/i,\n};\nconst parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^o/i, /^t/i, /^f/i, /^l/i],\n any: [/^s/i, /^m/i, /^ti/i, /^o/i, /^to/i, /^f/i, /^l/i],\n};\n\nconst matchDayPeriodPatterns = {\n narrow: /^(a|p|midnat|middag|(om) (morgenen|eftermiddagen|aftenen|natten))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnat|middag|(om) (morgenen|eftermiddagen|aftenen|natten))/i,\n};\nconst parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /midnat/i,\n noon: /middag/i,\n morning: /morgen/i,\n afternoon: /eftermiddag/i,\n evening: /aften/i,\n night: /nat/i,\n },\n};\n\nexport const match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: (value) => parseInt(value, 10),\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseEraPatterns,\n defaultParseWidth: \"any\",\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: \"any\",\n valueCallback: (index) => index + 1,\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: \"any\",\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPatterns,\n defaultParseWidth: \"any\",\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: \"any\",\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: \"any\",\n }),\n};\n", "import { formatDistance } from \"./da/_lib/formatDistance.js\";\nimport { formatLong } from \"./da/_lib/formatLong.js\";\nimport { formatRelative } from \"./da/_lib/formatRelative.js\";\nimport { localize } from \"./da/_lib/localize.js\";\nimport { match } from \"./da/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Danish locale.\n * @language Danish\n * @iso-639-2 dan\n * @author Mathias W\u00F8bbe [@MathiasKandelborg](https://github.com/MathiasKandelborg)\n * @author Anders B. Hansen [@Andersbiha](https://github.com/Andersbiha)\n * @author [@kgram](https://github.com/kgram)\n * @author [@stefanbugge](https://github.com/stefanbugge)\n */\nexport const da = {\n code: \"da\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 1 /* Monday */,\n firstWeekContainsDate: 4,\n },\n};\n\n// Fallback for modularized imports:\nexport default da;\n", "import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n full: \"EEEE, d MMMM yyyy\",\n long: \"d MMMM yyyy\",\n medium: \"d MMM yyyy\",\n short: \"dd/MM/yyyy\",\n};\n\nconst timeFormats = {\n full: \"HH:mm:ss zzzz\",\n long: \"HH:mm:ss z\",\n medium: \"HH:mm:ss\",\n short: \"HH:mm\",\n};\n\nconst dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: \"{{date}}, {{time}}\",\n short: \"{{date}}, {{time}}\",\n};\n\nexport const formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n};\n", "import { formatDistance } from \"./en-US/_lib/formatDistance.js\";\nimport { formatRelative } from \"./en-US/_lib/formatRelative.js\";\nimport { localize } from \"./en-US/_lib/localize.js\";\nimport { match } from \"./en-US/_lib/match.js\";\n\nimport { formatLong } from \"./en-GB/_lib/formatLong.js\";\n\n/**\n * @category Locales\n * @summary English locale (United Kingdom).\n * @language English\n * @iso-639-2 eng\n * @author Alex [@glintik](https://github.com/glintik)\n */\nexport const enGB = {\n code: \"en-GB\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 1 /* Monday */,\n firstWeekContainsDate: 4,\n },\n};\n\n// Fallback for modularized imports:\nexport default enGB;\n", "function futureSeconds(text) {\n return text.replace(/sekuntia?/, \"sekunnin\");\n}\n\nfunction futureMinutes(text) {\n return text.replace(/minuuttia?/, \"minuutin\");\n}\n\nfunction futureHours(text) {\n return text.replace(/tuntia?/, \"tunnin\");\n}\n\nfunction futureDays(text) {\n return text.replace(/p\u00E4iv\u00E4\u00E4?/, \"p\u00E4iv\u00E4n\");\n}\n\nfunction futureWeeks(text) {\n return text.replace(/(viikko|viikkoa)/, \"viikon\");\n}\n\nfunction futureMonths(text) {\n return text.replace(/(kuukausi|kuukautta)/, \"kuukauden\");\n}\n\nfunction futureYears(text) {\n return text.replace(/(vuosi|vuotta)/, \"vuoden\");\n}\n\nconst formatDistanceLocale = {\n lessThanXSeconds: {\n one: \"alle sekunti\",\n other: \"alle {{count}} sekuntia\",\n futureTense: futureSeconds,\n },\n\n xSeconds: {\n one: \"sekunti\",\n other: \"{{count}} sekuntia\",\n futureTense: futureSeconds,\n },\n\n halfAMinute: {\n one: \"puoli minuuttia\",\n other: \"puoli minuuttia\",\n futureTense: (_text) => \"puolen minuutin\",\n },\n\n lessThanXMinutes: {\n one: \"alle minuutti\",\n other: \"alle {{count}} minuuttia\",\n futureTense: futureMinutes,\n },\n\n xMinutes: {\n one: \"minuutti\",\n other: \"{{count}} minuuttia\",\n futureTense: futureMinutes,\n },\n\n aboutXHours: {\n one: \"noin tunti\",\n other: \"noin {{count}} tuntia\",\n futureTense: futureHours,\n },\n\n xHours: {\n one: \"tunti\",\n other: \"{{count}} tuntia\",\n futureTense: futureHours,\n },\n\n xDays: {\n one: \"p\u00E4iv\u00E4\",\n other: \"{{count}} p\u00E4iv\u00E4\u00E4\",\n futureTense: futureDays,\n },\n\n aboutXWeeks: {\n one: \"noin viikko\",\n other: \"noin {{count}} viikkoa\",\n futureTense: futureWeeks,\n },\n\n xWeeks: {\n one: \"viikko\",\n other: \"{{count}} viikkoa\",\n futureTense: futureWeeks,\n },\n\n aboutXMonths: {\n one: \"noin kuukausi\",\n other: \"noin {{count}} kuukautta\",\n futureTense: futureMonths,\n },\n\n xMonths: {\n one: \"kuukausi\",\n other: \"{{count}} kuukautta\",\n futureTense: futureMonths,\n },\n\n aboutXYears: {\n one: \"noin vuosi\",\n other: \"noin {{count}} vuotta\",\n futureTense: futureYears,\n },\n\n xYears: {\n one: \"vuosi\",\n other: \"{{count}} vuotta\",\n futureTense: futureYears,\n },\n\n overXYears: {\n one: \"yli vuosi\",\n other: \"yli {{count}} vuotta\",\n futureTense: futureYears,\n },\n\n almostXYears: {\n one: \"l\u00E4hes vuosi\",\n other: \"l\u00E4hes {{count}} vuotta\",\n futureTense: futureYears,\n },\n};\n\nexport const formatDistance = (token, count, options) => {\n const tokenValue = formatDistanceLocale[token];\n const result =\n count === 1\n ? tokenValue.one\n : tokenValue.other.replace(\"{{count}}\", String(count));\n\n if (options?.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return tokenValue.futureTense(result) + \" kuluttua\";\n } else {\n return result + \" sitten\";\n }\n }\n\n return result;\n};\n", "import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n full: \"eeee d. MMMM y\",\n long: \"d. MMMM y\",\n medium: \"d. MMM y\",\n short: \"d.M.y\",\n};\n\nconst timeFormats = {\n full: \"HH.mm.ss zzzz\",\n long: \"HH.mm.ss z\",\n medium: \"HH.mm.ss\",\n short: \"HH.mm\",\n};\n\nconst dateTimeFormats = {\n full: \"{{date}} 'klo' {{time}}\",\n long: \"{{date}} 'klo' {{time}}\",\n medium: \"{{date}} {{time}}\",\n short: \"{{date}} {{time}}\",\n};\n\nexport const formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n};\n", "const formatRelativeLocale = {\n lastWeek: \"'viime' eeee 'klo' p\",\n yesterday: \"'eilen klo' p\",\n today: \"'t\u00E4n\u00E4\u00E4n klo' p\",\n tomorrow: \"'huomenna klo' p\",\n nextWeek: \"'ensi' eeee 'klo' p\",\n other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n formatRelativeLocale[token];\n", "import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n narrow: [\"eaa.\", \"jaa.\"],\n abbreviated: [\"eaa.\", \"jaa.\"],\n wide: [\"ennen ajanlaskun alkua\", \"j\u00E4lkeen ajanlaskun alun\"],\n};\n\nconst quarterValues = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n wide: [\"1. kvartaali\", \"2. kvartaali\", \"3. kvartaali\", \"4. kvartaali\"],\n};\n\nconst monthValues = {\n narrow: [\"T\", \"H\", \"M\", \"H\", \"T\", \"K\", \"H\", \"E\", \"S\", \"L\", \"M\", \"J\"],\n abbreviated: [\n \"tammi\",\n \"helmi\",\n \"maalis\",\n \"huhti\",\n \"touko\",\n \"kes\u00E4\",\n \"hein\u00E4\",\n \"elo\",\n \"syys\",\n \"loka\",\n \"marras\",\n \"joulu\",\n ],\n\n wide: [\n \"tammikuu\",\n \"helmikuu\",\n \"maaliskuu\",\n \"huhtikuu\",\n \"toukokuu\",\n \"kes\u00E4kuu\",\n \"hein\u00E4kuu\",\n \"elokuu\",\n \"syyskuu\",\n \"lokakuu\",\n \"marraskuu\",\n \"joulukuu\",\n ],\n};\n\nconst formattingMonthValues = {\n narrow: monthValues.narrow,\n abbreviated: monthValues.abbreviated,\n wide: [\n \"tammikuuta\",\n \"helmikuuta\",\n \"maaliskuuta\",\n \"huhtikuuta\",\n \"toukokuuta\",\n \"kes\u00E4kuuta\",\n \"hein\u00E4kuuta\",\n \"elokuuta\",\n \"syyskuuta\",\n \"lokakuuta\",\n \"marraskuuta\",\n \"joulukuuta\",\n ],\n};\n\nconst dayValues = {\n narrow: [\"S\", \"M\", \"T\", \"K\", \"T\", \"P\", \"L\"],\n short: [\"su\", \"ma\", \"ti\", \"ke\", \"to\", \"pe\", \"la\"],\n abbreviated: [\"sunn.\", \"maan.\", \"tiis.\", \"kesk.\", \"torst.\", \"perj.\", \"la\"],\n\n wide: [\n \"sunnuntai\",\n \"maanantai\",\n \"tiistai\",\n \"keskiviikko\",\n \"torstai\",\n \"perjantai\",\n \"lauantai\",\n ],\n};\n\nconst formattingDayValues = {\n narrow: dayValues.narrow,\n short: dayValues.short,\n abbreviated: dayValues.abbreviated,\n wide: [\n \"sunnuntaina\",\n \"maanantaina\",\n \"tiistaina\",\n \"keskiviikkona\",\n \"torstaina\",\n \"perjantaina\",\n \"lauantaina\",\n ],\n};\n\nconst dayPeriodValues = {\n narrow: {\n am: \"ap\",\n pm: \"ip\",\n midnight: \"keskiy\u00F6\",\n noon: \"keskip\u00E4iv\u00E4\",\n morning: \"ap\",\n afternoon: \"ip\",\n evening: \"illalla\",\n night: \"y\u00F6ll\u00E4\",\n },\n abbreviated: {\n am: \"ap\",\n pm: \"ip\",\n midnight: \"keskiy\u00F6\",\n noon: \"keskip\u00E4iv\u00E4\",\n morning: \"ap\",\n afternoon: \"ip\",\n evening: \"illalla\",\n night: \"y\u00F6ll\u00E4\",\n },\n wide: {\n am: \"ap\",\n pm: \"ip\",\n midnight: \"keskiy\u00F6ll\u00E4\",\n noon: \"keskip\u00E4iv\u00E4ll\u00E4\",\n morning: \"aamup\u00E4iv\u00E4ll\u00E4\",\n afternoon: \"iltap\u00E4iv\u00E4ll\u00E4\",\n evening: \"illalla\",\n night: \"y\u00F6ll\u00E4\",\n },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n const number = Number(dirtyNumber);\n return number + \".\";\n};\n\nexport const localize = {\n ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: \"wide\",\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: \"wide\",\n argumentCallback: (quarter) => quarter - 1,\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: \"wide\",\n formattingValues: formattingMonthValues,\n defaultFormattingWidth: \"wide\",\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: \"wide\",\n formattingValues: formattingDayValues,\n defaultFormattingWidth: \"wide\",\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: \"wide\",\n }),\n};\n", "import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(\\.)/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n narrow: /^(e|j)/i,\n abbreviated: /^(eaa.|jaa.)/i,\n wide: /^(ennen ajanlaskun alkua|j\u00E4lkeen ajanlaskun alun)/i,\n};\nconst parseEraPatterns = {\n any: [/^e/i, /^j/i],\n};\n\nconst matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234]\\.? kvartaali/i,\n};\nconst parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n narrow: /^[thmkeslj]/i,\n abbreviated:\n /^(tammi|helmi|maalis|huhti|touko|kes\u00E4|hein\u00E4|elo|syys|loka|marras|joulu)/i,\n wide: /^(tammikuu|helmikuu|maaliskuu|huhtikuu|toukokuu|kes\u00E4kuu|hein\u00E4kuu|elokuu|syyskuu|lokakuu|marraskuu|joulukuu)(ta)?/i,\n};\nconst parseMonthPatterns = {\n narrow: [\n /^t/i,\n /^h/i,\n /^m/i,\n /^h/i,\n /^t/i,\n /^k/i,\n /^h/i,\n /^e/i,\n /^s/i,\n /^l/i,\n /^m/i,\n /^j/i,\n ],\n\n any: [\n /^ta/i,\n /^hel/i,\n /^maa/i,\n /^hu/i,\n /^to/i,\n /^k/i,\n /^hei/i,\n /^e/i,\n /^s/i,\n /^l/i,\n /^mar/i,\n /^j/i,\n ],\n};\n\nconst matchDayPatterns = {\n narrow: /^[smtkpl]/i,\n short: /^(su|ma|ti|ke|to|pe|la)/i,\n abbreviated: /^(sunn.|maan.|tiis.|kesk.|torst.|perj.|la)/i,\n wide: /^(sunnuntai|maanantai|tiistai|keskiviikko|torstai|perjantai|lauantai)(na)?/i,\n};\nconst parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^k/i, /^t/i, /^p/i, /^l/i],\n any: [/^s/i, /^m/i, /^ti/i, /^k/i, /^to/i, /^p/i, /^l/i],\n};\n\nconst matchDayPeriodPatterns = {\n narrow:\n /^(ap|ip|keskiy\u00F6|keskip\u00E4iv\u00E4|aamup\u00E4iv\u00E4ll\u00E4|iltap\u00E4iv\u00E4ll\u00E4|illalla|y\u00F6ll\u00E4)/i,\n any: /^(ap|ip|keskiy\u00F6ll\u00E4|keskip\u00E4iv\u00E4ll\u00E4|aamup\u00E4iv\u00E4ll\u00E4|iltap\u00E4iv\u00E4ll\u00E4|illalla|y\u00F6ll\u00E4)/i,\n};\nconst parseDayPeriodPatterns = {\n any: {\n am: /^ap/i,\n pm: /^ip/i,\n midnight: /^keskiy\u00F6/i,\n noon: /^keskip\u00E4iv\u00E4/i,\n morning: /aamup\u00E4iv\u00E4ll\u00E4/i,\n afternoon: /iltap\u00E4iv\u00E4ll\u00E4/i,\n evening: /illalla/i,\n night: /y\u00F6ll\u00E4/i,\n },\n};\n\nexport const match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: (value) => parseInt(value, 10),\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseEraPatterns,\n defaultParseWidth: \"any\",\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: \"any\",\n valueCallback: (index) => index + 1,\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: \"any\",\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPatterns,\n defaultParseWidth: \"any\",\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: \"any\",\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: \"any\",\n }),\n};\n", "import { formatDistance } from \"./fi/_lib/formatDistance.js\";\nimport { formatLong } from \"./fi/_lib/formatLong.js\";\nimport { formatRelative } from \"./fi/_lib/formatRelative.js\";\nimport { localize } from \"./fi/_lib/localize.js\";\nimport { match } from \"./fi/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Finnish locale.\n * @language Finnish\n * @iso-639-2 fin\n * @author Pyry-Samuli Lahti [@Pyppe](https://github.com/Pyppe)\n * @author Edo Rivai [@mikolajgrzyb](https://github.com/mikolajgrzyb)\n * @author Samu Juvonen [@sjuvonen](https://github.com/sjuvonen)\n */\nexport const fi = {\n code: \"fi\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 1 /* Monday */,\n firstWeekContainsDate: 4,\n },\n};\n\n// Fallback for modularized imports:\nexport default fi;\n", "const formatDistanceLocale = {\n lessThanXSeconds: {\n one: \"mindre enn ett sekund\",\n other: \"mindre enn {{count}} sekunder\",\n },\n\n xSeconds: {\n one: \"ett sekund\",\n other: \"{{count}} sekunder\",\n },\n\n halfAMinute: \"et halvt minutt\",\n\n lessThanXMinutes: {\n one: \"mindre enn ett minutt\",\n other: \"mindre enn {{count}} minutter\",\n },\n\n xMinutes: {\n one: \"ett minutt\",\n other: \"{{count}} minutter\",\n },\n\n aboutXHours: {\n one: \"omtrent en time\",\n other: \"omtrent {{count}} timer\",\n },\n\n xHours: {\n one: \"en time\",\n other: \"{{count}} timer\",\n },\n\n xDays: {\n one: \"en dag\",\n other: \"{{count}} dager\",\n },\n\n aboutXWeeks: {\n one: \"omtrent en uke\",\n other: \"omtrent {{count}} uker\",\n },\n\n xWeeks: {\n one: \"en uke\",\n other: \"{{count}} uker\",\n },\n\n aboutXMonths: {\n one: \"omtrent en m\u00E5ned\",\n other: \"omtrent {{count}} m\u00E5neder\",\n },\n\n xMonths: {\n one: \"en m\u00E5ned\",\n other: \"{{count}} m\u00E5neder\",\n },\n\n aboutXYears: {\n one: \"omtrent ett \u00E5r\",\n other: \"omtrent {{count}} \u00E5r\",\n },\n\n xYears: {\n one: \"ett \u00E5r\",\n other: \"{{count}} \u00E5r\",\n },\n\n overXYears: {\n one: \"over ett \u00E5r\",\n other: \"over {{count}} \u00E5r\",\n },\n\n almostXYears: {\n one: \"nesten ett \u00E5r\",\n other: \"nesten {{count}} \u00E5r\",\n },\n};\n\nexport const formatDistance = (token, count, options) => {\n let result;\n\n const tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === \"string\") {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace(\"{{count}}\", String(count));\n }\n\n if (options?.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return \"om \" + result;\n } else {\n return result + \" siden\";\n }\n }\n\n return result;\n};\n", "import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n full: \"EEEE d. MMMM y\",\n long: \"d. MMMM y\",\n medium: \"d. MMM y\",\n short: \"dd.MM.y\",\n};\n\nconst timeFormats = {\n full: \"'kl'. HH:mm:ss zzzz\",\n long: \"HH:mm:ss z\",\n medium: \"HH:mm:ss\",\n short: \"HH:mm\",\n};\n\nconst dateTimeFormats = {\n full: \"{{date}} 'kl.' {{time}}\",\n long: \"{{date}} 'kl.' {{time}}\",\n medium: \"{{date}} {{time}}\",\n short: \"{{date}} {{time}}\",\n};\n\nexport const formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n};\n", "const formatRelativeLocale = {\n lastWeek: \"'forrige' eeee 'kl.' p\",\n yesterday: \"'i g\u00E5r kl.' p\",\n today: \"'i dag kl.' p\",\n tomorrow: \"'i morgen kl.' p\",\n nextWeek: \"EEEE 'kl.' p\",\n other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n formatRelativeLocale[token];\n", "import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n narrow: [\"f.Kr.\", \"e.Kr.\"],\n abbreviated: [\"f.Kr.\", \"e.Kr.\"],\n wide: [\"f\u00F8r Kristus\", \"etter Kristus\"],\n};\n\nconst quarterValues = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n wide: [\"1. kvartal\", \"2. kvartal\", \"3. kvartal\", \"4. kvartal\"],\n};\n\nconst monthValues = {\n narrow: [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n abbreviated: [\n \"jan.\",\n \"feb.\",\n \"mars\",\n \"apr.\",\n \"mai\",\n \"juni\",\n \"juli\",\n \"aug.\",\n \"sep.\",\n \"okt.\",\n \"nov.\",\n \"des.\",\n ],\n\n wide: [\n \"januar\",\n \"februar\",\n \"mars\",\n \"april\",\n \"mai\",\n \"juni\",\n \"juli\",\n \"august\",\n \"september\",\n \"oktober\",\n \"november\",\n \"desember\",\n ],\n};\n\nconst dayValues = {\n narrow: [\"S\", \"M\", \"T\", \"O\", \"T\", \"F\", \"L\"],\n short: [\"s\u00F8\", \"ma\", \"ti\", \"on\", \"to\", \"fr\", \"l\u00F8\"],\n abbreviated: [\"s\u00F8n\", \"man\", \"tir\", \"ons\", \"tor\", \"fre\", \"l\u00F8r\"],\n wide: [\n \"s\u00F8ndag\",\n \"mandag\",\n \"tirsdag\",\n \"onsdag\",\n \"torsdag\",\n \"fredag\",\n \"l\u00F8rdag\",\n ],\n};\n\nconst dayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"midnatt\",\n noon: \"middag\",\n morning: \"p\u00E5 morg.\",\n afternoon: \"p\u00E5 etterm.\",\n evening: \"p\u00E5 kvelden\",\n night: \"p\u00E5 natten\",\n },\n abbreviated: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnatt\",\n noon: \"middag\",\n morning: \"p\u00E5 morg.\",\n afternoon: \"p\u00E5 etterm.\",\n evening: \"p\u00E5 kvelden\",\n night: \"p\u00E5 natten\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnatt\",\n noon: \"middag\",\n morning: \"p\u00E5 morgenen\",\n afternoon: \"p\u00E5 ettermiddagen\",\n evening: \"p\u00E5 kvelden\",\n night: \"p\u00E5 natten\",\n },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n const number = Number(dirtyNumber);\n return number + \".\";\n};\n\nexport const localize = {\n ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: \"wide\",\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: \"wide\",\n argumentCallback: (quarter) => quarter - 1,\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: \"wide\",\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: \"wide\",\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: \"wide\",\n }),\n};\n", "import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)\\.?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n narrow: /^(f\\.? ?Kr\\.?|fvt\\.?|e\\.? ?Kr\\.?|evt\\.?)/i,\n abbreviated: /^(f\\.? ?Kr\\.?|fvt\\.?|e\\.? ?Kr\\.?|evt\\.?)/i,\n wide: /^(f\u00F8r Kristus|f\u00F8r v\u00E5r tid|etter Kristus|v\u00E5r tid)/i,\n};\nconst parseEraPatterns = {\n any: [/^f/i, /^e/i],\n};\n\nconst matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](\\.)? kvartal/i,\n};\nconst parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mars?|apr|mai|juni?|juli?|aug|sep|okt|nov|des)\\.?/i,\n wide: /^(januar|februar|mars|april|mai|juni|juli|august|september|oktober|november|desember)/i,\n};\nconst parseMonthPatterns = {\n narrow: [\n /^j/i,\n /^f/i,\n /^m/i,\n /^a/i,\n /^m/i,\n /^j/i,\n /^j/i,\n /^a/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n\n any: [\n /^ja/i,\n /^f/i,\n /^mar/i,\n /^ap/i,\n /^mai/i,\n /^jun/i,\n /^jul/i,\n /^aug/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n};\n\nconst matchDayPatterns = {\n narrow: /^[smtofl]/i,\n short: /^(s\u00F8|ma|ti|on|to|fr|l\u00F8)/i,\n abbreviated: /^(s\u00F8n|man|tir|ons|tor|fre|l\u00F8r)/i,\n wide: /^(s\u00F8ndag|mandag|tirsdag|onsdag|torsdag|fredag|l\u00F8rdag)/i,\n};\nconst parseDayPatterns = {\n any: [/^s/i, /^m/i, /^ti/i, /^o/i, /^to/i, /^f/i, /^l/i],\n};\n\nconst matchDayPeriodPatterns = {\n narrow:\n /^(midnatt|middag|(p\u00E5) (morgenen|ettermiddagen|kvelden|natten)|[ap])/i,\n any: /^([ap]\\.?\\s?m\\.?|midnatt|middag|(p\u00E5) (morgenen|ettermiddagen|kvelden|natten))/i,\n};\nconst parseDayPeriodPatterns = {\n any: {\n am: /^a(\\.?\\s?m\\.?)?$/i,\n pm: /^p(\\.?\\s?m\\.?)?$/i,\n midnight: /^midn/i,\n noon: /^midd/i,\n morning: /morgen/i,\n afternoon: /ettermiddag/i,\n evening: /kveld/i,\n night: /natt/i,\n },\n};\n\nexport const match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: (value) => parseInt(value, 10),\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseEraPatterns,\n defaultParseWidth: \"any\",\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: \"any\",\n valueCallback: (index) => index + 1,\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: \"any\",\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPatterns,\n defaultParseWidth: \"any\",\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: \"any\",\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: \"any\",\n }),\n};\n", "import { formatDistance } from \"./nb/_lib/formatDistance.js\";\nimport { formatLong } from \"./nb/_lib/formatLong.js\";\nimport { formatRelative } from \"./nb/_lib/formatRelative.js\";\nimport { localize } from \"./nb/_lib/localize.js\";\nimport { match } from \"./nb/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Norwegian Bokm\u00E5l locale.\n * @language Norwegian Bokm\u00E5l\n * @iso-639-2 nob\n * @author Hans-Kristian Koren [@Hanse](https://github.com/Hanse)\n * @author Mikolaj Grzyb [@mikolajgrzyb](https://github.com/mikolajgrzyb)\n * @author Dag Stuan [@dagstuan](https://github.com/dagstuan)\n */\nexport const nb = {\n code: \"nb\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 1 /* Monday */,\n firstWeekContainsDate: 4,\n },\n};\n\n// Fallback for modularized imports:\nexport default nb;\n", "const formatDistanceLocale = {\n lessThanXSeconds: {\n one: \"mindre \u00E4n en sekund\",\n other: \"mindre \u00E4n {{count}} sekunder\",\n },\n\n xSeconds: {\n one: \"en sekund\",\n other: \"{{count}} sekunder\",\n },\n\n halfAMinute: \"en halv minut\",\n\n lessThanXMinutes: {\n one: \"mindre \u00E4n en minut\",\n other: \"mindre \u00E4n {{count}} minuter\",\n },\n\n xMinutes: {\n one: \"en minut\",\n other: \"{{count}} minuter\",\n },\n\n aboutXHours: {\n one: \"ungef\u00E4r en timme\",\n other: \"ungef\u00E4r {{count}} timmar\",\n },\n\n xHours: {\n one: \"en timme\",\n other: \"{{count}} timmar\",\n },\n\n xDays: {\n one: \"en dag\",\n other: \"{{count}} dagar\",\n },\n\n aboutXWeeks: {\n one: \"ungef\u00E4r en vecka\",\n other: \"ungef\u00E4r {{count}} veckor\",\n },\n\n xWeeks: {\n one: \"en vecka\",\n other: \"{{count}} veckor\",\n },\n\n aboutXMonths: {\n one: \"ungef\u00E4r en m\u00E5nad\",\n other: \"ungef\u00E4r {{count}} m\u00E5nader\",\n },\n\n xMonths: {\n one: \"en m\u00E5nad\",\n other: \"{{count}} m\u00E5nader\",\n },\n\n aboutXYears: {\n one: \"ungef\u00E4r ett \u00E5r\",\n other: \"ungef\u00E4r {{count}} \u00E5r\",\n },\n\n xYears: {\n one: \"ett \u00E5r\",\n other: \"{{count}} \u00E5r\",\n },\n\n overXYears: {\n one: \"\u00F6ver ett \u00E5r\",\n other: \"\u00F6ver {{count}} \u00E5r\",\n },\n\n almostXYears: {\n one: \"n\u00E4stan ett \u00E5r\",\n other: \"n\u00E4stan {{count}} \u00E5r\",\n },\n};\n\nconst wordMapping = [\n \"noll\",\n \"en\",\n \"tv\u00E5\",\n \"tre\",\n \"fyra\",\n \"fem\",\n \"sex\",\n \"sju\",\n \"\u00E5tta\",\n \"nio\",\n \"tio\",\n \"elva\",\n \"tolv\",\n];\n\nexport const formatDistance = (token, count, options) => {\n let result;\n\n const tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === \"string\") {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace(\n \"{{count}}\",\n count < 13 ? wordMapping[count] : String(count),\n );\n }\n\n if (options?.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return \"om \" + result;\n } else {\n return result + \" sedan\";\n }\n }\n\n return result;\n};\n", "import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n full: \"EEEE d MMMM y\",\n long: \"d MMMM y\",\n medium: \"d MMM y\",\n short: \"y-MM-dd\",\n};\n\nconst timeFormats = {\n full: \"'kl'. HH:mm:ss zzzz\",\n long: \"HH:mm:ss z\",\n medium: \"HH:mm:ss\",\n short: \"HH:mm\",\n};\n\nconst dateTimeFormats = {\n full: \"{{date}} 'kl.' {{time}}\",\n long: \"{{date}} 'kl.' {{time}}\",\n medium: \"{{date}} {{time}}\",\n short: \"{{date}} {{time}}\",\n};\n\nexport const formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n};\n", "const formatRelativeLocale = {\n lastWeek: \"'i' EEEE's kl.' p\",\n yesterday: \"'ig\u00E5r kl.' p\",\n today: \"'idag kl.' p\",\n tomorrow: \"'imorgon kl.' p\",\n nextWeek: \"EEEE 'kl.' p\",\n other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n formatRelativeLocale[token];\n", "import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n narrow: [\"f.Kr.\", \"e.Kr.\"],\n abbreviated: [\"f.Kr.\", \"e.Kr.\"],\n wide: [\"f\u00F6re Kristus\", \"efter Kristus\"],\n};\n\nconst quarterValues = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n wide: [\"1:a kvartalet\", \"2:a kvartalet\", \"3:e kvartalet\", \"4:e kvartalet\"],\n};\n\nconst monthValues = {\n narrow: [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n abbreviated: [\n \"jan.\",\n \"feb.\",\n \"mars\",\n \"apr.\",\n \"maj\",\n \"juni\",\n \"juli\",\n \"aug.\",\n \"sep.\",\n \"okt.\",\n \"nov.\",\n \"dec.\",\n ],\n\n wide: [\n \"januari\",\n \"februari\",\n \"mars\",\n \"april\",\n \"maj\",\n \"juni\",\n \"juli\",\n \"augusti\",\n \"september\",\n \"oktober\",\n \"november\",\n \"december\",\n ],\n};\n\nconst dayValues = {\n narrow: [\"S\", \"M\", \"T\", \"O\", \"T\", \"F\", \"L\"],\n short: [\"s\u00F6\", \"m\u00E5\", \"ti\", \"on\", \"to\", \"fr\", \"l\u00F6\"],\n abbreviated: [\"s\u00F6n\", \"m\u00E5n\", \"tis\", \"ons\", \"tors\", \"fre\", \"l\u00F6r\"],\n wide: [\"s\u00F6ndag\", \"m\u00E5ndag\", \"tisdag\", \"onsdag\", \"torsdag\", \"fredag\", \"l\u00F6rdag\"],\n};\n\n// https://www.unicode.org/cldr/charts/32/summary/sv.html#1888\nconst dayPeriodValues = {\n narrow: {\n am: \"fm\",\n pm: \"em\",\n midnight: \"midnatt\",\n noon: \"middag\",\n morning: \"morg.\",\n afternoon: \"efterm.\",\n evening: \"kv\u00E4ll\",\n night: \"natt\",\n },\n abbreviated: {\n am: \"f.m.\",\n pm: \"e.m.\",\n midnight: \"midnatt\",\n noon: \"middag\",\n morning: \"morgon\",\n afternoon: \"efterm.\",\n evening: \"kv\u00E4ll\",\n night: \"natt\",\n },\n wide: {\n am: \"f\u00F6rmiddag\",\n pm: \"eftermiddag\",\n midnight: \"midnatt\",\n noon: \"middag\",\n morning: \"morgon\",\n afternoon: \"eftermiddag\",\n evening: \"kv\u00E4ll\",\n night: \"natt\",\n },\n};\n\nconst formattingDayPeriodValues = {\n narrow: {\n am: \"fm\",\n pm: \"em\",\n midnight: \"midnatt\",\n noon: \"middag\",\n morning: \"p\u00E5 morg.\",\n afternoon: \"p\u00E5 efterm.\",\n evening: \"p\u00E5 kv\u00E4llen\",\n night: \"p\u00E5 natten\",\n },\n abbreviated: {\n am: \"fm\",\n pm: \"em\",\n midnight: \"midnatt\",\n noon: \"middag\",\n morning: \"p\u00E5 morg.\",\n afternoon: \"p\u00E5 efterm.\",\n evening: \"p\u00E5 kv\u00E4llen\",\n night: \"p\u00E5 natten\",\n },\n wide: {\n am: \"fm\",\n pm: \"em\",\n midnight: \"midnatt\",\n noon: \"middag\",\n morning: \"p\u00E5 morgonen\",\n afternoon: \"p\u00E5 eftermiddagen\",\n evening: \"p\u00E5 kv\u00E4llen\",\n night: \"p\u00E5 natten\",\n },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n const number = Number(dirtyNumber);\n\n const rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n case 2:\n return number + \":a\";\n }\n }\n return number + \":e\";\n};\n\nexport const localize = {\n ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: \"wide\",\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: \"wide\",\n argumentCallback: (quarter) => quarter - 1,\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: \"wide\",\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: \"wide\",\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: \"wide\",\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: \"wide\",\n }),\n};\n", "import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(:a|:e)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n narrow: /^(f\\.? ?Kr\\.?|f\\.? ?v\\.? ?t\\.?|e\\.? ?Kr\\.?|v\\.? ?t\\.?)/i,\n abbreviated: /^(f\\.? ?Kr\\.?|f\\.? ?v\\.? ?t\\.?|e\\.? ?Kr\\.?|v\\.? ?t\\.?)/i,\n wide: /^(f\u00F6re Kristus|f\u00F6re v\u00E5r tid|efter Kristus|v\u00E5r tid)/i,\n};\nconst parseEraPatterns = {\n any: [/^f/i, /^[ev]/i],\n};\n\nconst matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](:a|:e)? kvartalet/i,\n};\nconst parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated:\n /^(jan|feb|mar[s]?|apr|maj|jun[i]?|jul[i]?|aug|sep|okt|nov|dec)\\.?/i,\n wide: /^(januari|februari|mars|april|maj|juni|juli|augusti|september|oktober|november|december)/i,\n};\nconst parseMonthPatterns = {\n narrow: [\n /^j/i,\n /^f/i,\n /^m/i,\n /^a/i,\n /^m/i,\n /^j/i,\n /^j/i,\n /^a/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n\n any: [\n /^ja/i,\n /^f/i,\n /^mar/i,\n /^ap/i,\n /^maj/i,\n /^jun/i,\n /^jul/i,\n /^au/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n};\n\nconst matchDayPatterns = {\n narrow: /^[smtofl]/i,\n short: /^(s\u00F6|m\u00E5|ti|on|to|fr|l\u00F6)/i,\n abbreviated: /^(s\u00F6n|m\u00E5n|tis|ons|tors|fre|l\u00F6r)/i,\n wide: /^(s\u00F6ndag|m\u00E5ndag|tisdag|onsdag|torsdag|fredag|l\u00F6rdag)/i,\n};\nconst parseDayPatterns = {\n any: [/^s/i, /^m/i, /^ti/i, /^o/i, /^to/i, /^f/i, /^l/i],\n};\n\nconst matchDayPeriodPatterns = {\n any: /^([fe]\\.?\\s?m\\.?|midn(att)?|midd(ag)?|(p\u00E5) (morgonen|eftermiddagen|kv\u00E4llen|natten))/i,\n};\nconst parseDayPeriodPatterns = {\n any: {\n am: /^f/i,\n pm: /^e/i,\n midnight: /^midn/i,\n noon: /^midd/i,\n morning: /morgon/i,\n afternoon: /eftermiddag/i,\n evening: /kv\u00E4ll/i,\n night: /natt/i,\n },\n};\n\nexport const match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: (value) => parseInt(value, 10),\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseEraPatterns,\n defaultParseWidth: \"any\",\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: \"any\",\n valueCallback: (index) => index + 1,\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: \"any\",\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPatterns,\n defaultParseWidth: \"any\",\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: \"any\",\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: \"any\",\n }),\n};\n", "import { formatDistance } from \"./sv/_lib/formatDistance.js\";\nimport { formatLong } from \"./sv/_lib/formatLong.js\";\nimport { formatRelative } from \"./sv/_lib/formatRelative.js\";\nimport { localize } from \"./sv/_lib/localize.js\";\nimport { match } from \"./sv/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Swedish locale.\n * @language Swedish\n * @iso-639-2 swe\n * @author Johannes Ul\u00E9n [@ejulen](https://github.com/ejulen)\n * @author Alexander Nanberg [@alexandernanberg](https://github.com/alexandernanberg)\n * @author Henrik Andersson [@limelights](https://github.com/limelights)\n */\nexport const sv = {\n code: \"sv\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 1 /* Monday */,\n firstWeekContainsDate: 4,\n },\n};\n\n// Fallback for modularized imports:\nexport default sv;\n", "import { i18n } from '@lingui/core';\nimport { FormControlMixin } from '@open-wc/form-control';\nimport {\n addDays,\n addMonths,\n differenceInCalendarDays,\n eachDayOfInterval,\n eachWeekOfInterval,\n endOfWeek,\n format,\n formatISO,\n getDate,\n getWeekOfMonth,\n isSameDay,\n isSameMonth,\n isToday,\n Locale,\n lastDayOfMonth,\n startOfMonth,\n startOfToday,\n startOfWeek,\n subDays,\n subMonths,\n} from 'date-fns';\nimport { da, enGB, fi, nb, sv } from 'date-fns/locale';\nimport { html, LitElement } from 'lit';\nimport { property, query, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { styleMap } from 'lit/directives/style-map.js';\n\nimport '@warp-ds/icons/elements/calendar-16';\nimport '@warp-ds/icons/elements/chevron-left-16';\nimport '@warp-ds/icons/elements/chevron-right-16';\n\nimport { activateI18n, detectLocale } from '../i18n.js';\nimport { reset } from '../styles.js';\n\nimport { messages as daMessages } from './locales/da/messages.mjs';\nimport { messages as enMessages } from './locales/en/messages.mjs';\nimport { messages as fiMessages } from './locales/fi/messages.mjs';\nimport { messages as nbMessages } from './locales/nb/messages.mjs';\nimport { messages as svMessages } from './locales/sv/messages.mjs';\nimport { wDatepickerStyles } from './styles/w-datepicker.styles.js';\nimport { wDatepickerCalendarStyles } from './styles/w-datepicker-calendar.styles.js';\nimport { wDatepickerDayStyles } from './styles/w-datepicker-day.styles.js';\nimport { wDatepickerMonthStyles } from './styles/w-datepicker-month.styles.js';\nimport { fromISOToDate } from './utils.js';\n\nconst ua = typeof navigator !== 'undefined' ? navigator.userAgent : '';\nconst isIOS = /iP(hone|od|ad)/.test(ua);\nconst inputType = isIOS ? 'text' : 'date';\n\nconst calendarId = 'calendar';\nconst inputId = 'input';\nconst toggleButtonId = 'toggle';\nconst wrapperId = 'wrapper';\nconst previousMonthButtonId = 'previous';\n\n// Convenience to support the common locales of our users.\n// For other locales either add to this list or point users\n// to https://date-fns.org/v4.1.0/docs/setDefaultOptions\nconst datefnsLocale = {\n en: enGB,\n nb,\n sv,\n da,\n fi,\n};\n\n/**\n * An input for dates.\n *\n * Uses the `lang` attribute on either the element or on `<html>` to determine the locale options.\n *\n * [See Storybook for usage examples](https://warp-ds.github.io/elements/?path=/docs/forms-datepicker--docs)\n */\nclass WarpDatepicker extends FormControlMixin(LitElement) {\n static shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n static styles = [reset, wDatepickerStyles, wDatepickerCalendarStyles, wDatepickerDayStyles, wDatepickerMonthStyles];\n\n @property({ reflect: true })\n label: string;\n\n /** Takes precedence over the `<html>` lang attribute. */\n @property({ reflect: true })\n lang: string;\n\n @property({ reflect: true })\n name: string;\n\n @property({ reflect: true })\n value: string;\n\n /**\n * Decides the format of the date as shown in the calendar header.\n *\n * The syntax is defined by [date-fns/format](https://date-fns.org/v4.1.0/docs/format).\n */\n @property({ attribute: 'header-format' })\n headerFormat = 'MMMM yyyy';\n\n /**\n * Decides the format of the weekday as shown above the grid of dates in the calendar.\n *\n * The syntax is defined by [date-fns/format](https://date-fns.org/v4.1.0/docs/format).\n */\n @property({ attribute: 'weekday-format' })\n weekdayFormat = 'EEEEEE';\n\n /**\n * Lets you control if a date in the calendar should be disabled.\n *\n * This needs to be set on the element instance in JavaScript, not as an HTML attribute.\n *\n * @example\n * ```ts\n * import type { WarpDatepicker } from \"@warp-ds/elements\";\n * import { isBefore, startOfDay } from 'date-fns';\n *\n * const today = startOfDay(new Date());\n * const datePicker = document.querySelector('w-datepicker') as WarpDatepicker;\n * datePicker.isDayDisabled = (day: Date) => isBefore(startOfDay(day), today);\n * ```\n */\n @property({ attribute: false })\n isDayDisabled: (day: Date) => boolean;\n\n /**\n * Decides the format of the day in the calendar as read to screen readers.\n *\n * The syntax is defined by [date-fns/format](https://date-fns.org/v4.1.0/docs/format).\n */\n @property({ attribute: 'day-format' })\n dayFormat = 'PPPP';\n\n @state()\n isCalendarOpen = false;\n\n @state()\n navigationDate: Date = startOfToday();\n\n /** @internal This gets picked up by the custom element manifest analyzer as a property for some reason */\n @state()\n locale: Locale = enGB;\n\n @state()\n get selectedDate(): Date | null {\n return fromISOToDate(this.value) ?? null;\n }\n\n @state()\n get month() {\n return startOfMonth(this.navigationDate);\n }\n\n // capture the initial value using connectedCallback and #initialValue\n #initialValue: string | null = null;\n\n @state()\n get weeks() {\n const month = this.month;\n const navigationDate = this.navigationDate;\n const weekStarts = eachWeekOfInterval(\n {\n start: startOfMonth(month),\n end: lastDayOfMonth(month),\n },\n { locale: this.locale },\n );\n const weekIntervals = weekStarts\n .map((weekStart) => ({\n start: weekStart,\n end: endOfWeek(weekStart, { locale: this.locale }),\n }))\n .map((week) => eachDayOfInterval(week));\n\n // Inserts the navigation date into the date matrix\n if (isSameMonth(navigationDate, month)) {\n const weekOfMonth = getWeekOfMonth(navigationDate, { locale: this.locale }) - 1;\n\n // we need to get the day of the week to index into the correct day after we've gotten the week\n // getDay() however isn't locale aware. This is a good replacement\n const day = differenceInCalendarDays(navigationDate, startOfWeek(navigationDate, { locale: this.locale }));\n\n weekIntervals[weekOfMonth][day] = navigationDate;\n }\n return weekIntervals;\n }\n\n @query(`#${calendarId}`)\n calendar: HTMLDivElement;\n\n @query(`#${inputId}`, true)\n input: HTMLInputElement;\n\n @query(`#${toggleButtonId}`, true)\n toggleButton: HTMLButtonElement;\n\n @query(`#${wrapperId}`, true)\n wrapper: HTMLDivElement;\n\n /**\n * This is the first focusable element, needed for the modal focus trap.\n *\n * Don't cache this and other `@query` fields from inside the calendar modal.\n * They work the first time, but once the calendar is closed and reopened\n * the query will point to an element that doesn't exist anymore.\n */\n @query(`#${previousMonthButtonId}`)\n previousMonthButton: HTMLButtonElement;\n\n @query('[aria-current=\"date\"]')\n todayCell: HTMLTableCellElement;\n\n @query('[data-navigation=\"true\"]')\n selectedCell: HTMLTableCellElement;\n\n resetFormControl(): void {\n this.value = this.#initialValue;\n }\n\n async #toggleCalendarOpen(e: MouseEvent | KeyboardEvent) {\n e.preventDefault();\n this.isCalendarOpen = !this.isCalendarOpen;\n if (this.isCalendarOpen) {\n // Move into the calendar and announce the availability\n // of the calendar grid to screen reader users.\n await this.updateComplete;\n (this.selectedCell || this.todayCell).focus();\n }\n }\n\n #nextMonth() {\n this.navigationDate = addMonths(this.month, 1);\n }\n\n #previousMonth() {\n this.navigationDate = subMonths(this.month, 1);\n }\n\n async #dispatchChangeEvent() {\n // Let Lit finish rendering the updated value for the input field so\n // the `event.target.value` is correct.\n await this.updateComplete;\n this.input.dispatchEvent(new Event('change', { bubbles: true, composed: true }));\n }\n\n /**\n * We can't use private fields (`#` prefix) for this method\n * since we can't overwrite private field methods. We need\n * to `.bind(this)` in the constructor because we need one\n * stable method handler we can register and unregister on\n * `document`, that has access to this specific instance\n * of WarpDatepicker to control the calendar.\n * @internal\n */\n private _onClickOutside(e: MouseEvent | FocusEvent) {\n if (!this.isCalendarOpen) {\n return;\n }\n\n const isInsideDatePicker = this.contains(e.target as Node);\n if (isInsideDatePicker) {\n return;\n }\n\n this.isCalendarOpen = false;\n }\n\n #onInput(e: InputEvent) {\n this.value = (e.target as HTMLInputElement).value;\n }\n\n #onInputClick(e: PointerEvent) {\n // stop Safari on macOS from showing the native calendar\n e.preventDefault();\n this.isCalendarOpen = true;\n }\n\n #onInputKeyDown(e: KeyboardEvent) {\n if (e.key === ' ') return this.#toggleCalendarOpen(e);\n if (e.key === ',' || e.key === 'Enter') {\n e.preventDefault();\n }\n }\n\n async #onCalendarKeyDown(e: KeyboardEvent) {\n const navigationDate = this.navigationDate;\n let newNavigationDate: Date;\n\n switch (e.key) {\n case 'ArrowUp':\n newNavigationDate = subDays(navigationDate, 7);\n break;\n case 'ArrowLeft':\n newNavigationDate = subDays(navigationDate, 1);\n break;\n case 'Home':\n newNavigationDate = startOfWeek(navigationDate, { locale: this.locale });\n break;\n case 'PageUp':\n newNavigationDate = subMonths(navigationDate, 1);\n break;\n case 'ArrowDown':\n newNavigationDate = addDays(navigationDate, 7);\n break;\n case 'ArrowRight':\n newNavigationDate = addDays(navigationDate, 1);\n break;\n case 'End':\n newNavigationDate = endOfWeek(navigationDate, { locale: this.locale });\n break;\n case 'PageDown':\n newNavigationDate = addMonths(navigationDate, 1);\n break;\n case 'Escape':\n this.isCalendarOpen = false;\n break;\n case 'Tab':\n if ((e.target as HTMLElement).tagName === 'TD' && !e.shiftKey) {\n // If Tab and no Shift we are about to leave the modal and should move focus\n // to the Previous month button. If Shift is held, proceed as normal.\n e.preventDefault();\n this.previousMonthButton.focus();\n } else if ((e.target as HTMLElement).id === previousMonthButtonId && e.shiftKey) {\n // If we're holding Shift and pressing Tab we are moving back in the focus\n // order. If we're about to leave the previous month button (the first focusable\n // element in the modal), move the focus to the last focusable element, which\n // is the current navigation date in the calendar grid.\n e.preventDefault();\n (this.selectedCell || this.todayCell).focus();\n }\n break;\n }\n\n if (newNavigationDate) {\n // prevent scrolling the viewport\n e.preventDefault();\n this.navigationDate = newNavigationDate;\n\n // move keyboard focus once Lit has rendered an updated `data-navigation`\n // based on this.navigationDate\n await this.updateComplete;\n this.selectedCell.focus();\n }\n }\n\n #onCalendarSelect(event: MouseEvent | KeyboardEvent) {\n // Clicks can hit the `<div>` inside the `<td>`, so look at\n // currentTarget (where the listener is registered) to get\n // the `<td>` consistently.\n const isoDate = (event.currentTarget as HTMLTableCellElement).dataset.date;\n\n if ('key' in event) {\n if (event.key === 'Enter' || event.key === ' ') {\n // Prevents whitespace from being added to the input field\n event.preventDefault();\n this.value = isoDate;\n this.isCalendarOpen = false;\n this.toggleButton.focus();\n this.#dispatchChangeEvent();\n }\n } else {\n this.value = isoDate;\n this.isCalendarOpen = false;\n this.#dispatchChangeEvent();\n }\n }\n\n constructor() {\n super();\n\n activateI18n(enMessages, nbMessages, fiMessages, daMessages, svMessages);\n\n const lang = detectLocale();\n if (lang && datefnsLocale[lang]) {\n this.locale = datefnsLocale[lang];\n }\n\n this._onClickOutside = this._onClickOutside.bind(this);\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n\n this.#initialValue = this.value;\n\n // Local lang attribute takes precedence\n const lang = this.lang;\n if (lang && datefnsLocale[lang]) {\n this.locale = datefnsLocale[lang];\n }\n\n if (this.value) {\n const iso = fromISOToDate(this.value);\n if (iso) {\n this.navigationDate = iso;\n }\n }\n\n document.addEventListener('mousedown', this._onClickOutside);\n document.addEventListener('touchend', this._onClickOutside);\n document.addEventListener('focusin', this._onClickOutside);\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n\n document.removeEventListener('mousedown', this._onClickOutside);\n document.removeEventListener('touchend', this._onClickOutside);\n document.removeEventListener('focusin', this._onClickOutside);\n }\n\n updated(changedProperties: Map<string, unknown>): void {\n if (changedProperties.has('value')) {\n // https://www.npmjs.com/package/@open-wc/form-control#setvalue\n this.setValue(this.value);\n }\n }\n\n render() {\n return html`\n <div class=\"w-datepicker-wrapper\" id=\"${wrapperId}\">\n <label class=\"w-datepicker-input-label\" for=\"${inputId}\">${this.label}</label>\n <div class=\"w-datepicker-input-wrapper\">\n <input\n id=\"${inputId}\"\n type=\"${inputType}\"\n name=\"${ifDefined(this.name)}\"\n value=\"${ifDefined(this.value)}\"\n class=\"w-datepicker-input\"\n @click=\"${this.#onInputClick}\"\n @input=\"${this.#onInput}\"\n @keydown=\"${this.#onInputKeyDown}\" />\n <w-button\n aria-label=\"${\n this.value\n ? i18n.t({\n id: 'datepicker.toggle.changeDate',\n values: { currentDate: format(this.value, this.dayFormat) },\n message: 'Change date, {currentDate}',\n comment:\n 'Used by screen readers to describe the button that toggles open the calendar in a date picker when there is a selected date',\n })\n : i18n.t({\n id: 'datepicker.toggle.chooseDate',\n message: 'Choose date',\n comment:\n 'Used by screen readers to describe the button that toggles open the calendar in a date picker when there is no selected date',\n })\n }\"\n aria-controls=\"${calendarId}\"\n class=\"w-datepicker-button\"\n data-testid=\"${toggleButtonId}\"\n id=\"${toggleButtonId}\"\n variant=\"utility\"\n quiet\n type=\"button\"\n @click=\"${this.#toggleCalendarOpen}\">\n <w-icon-calendar-16></w-icon-calendar-16>\n </w-button>\n </div>\n </div>\n <div class=\"w-dropdown__popover w-dropdown__popover--open\" style=\"${styleMap({ display: this.isCalendarOpen ? undefined : 'none' })}\">\n <div\n aria-label=\"${i18n.t({\n id: 'datepicker.calendar.roleDescription',\n message: 'Date picker',\n comment: 'Used by screen readers to announce that the calendar element is a date picker.',\n })}\"\n aria-modal=\"true\"\n role=\"dialog\"\n class=\"w-datepicker__calendar\"\n data-testid=\"${calendarId}\"\n id=\"${calendarId}\"\n @keydown=\"${this.#onCalendarKeyDown}\">\n <div class=\"w-datepicker__month-nav\">\n <w-button\n aria-label=\"${i18n.t({\n id: 'datepicker.calendar.previousMonth',\n message: 'Previous month',\n comment: 'Screen reader label for the previous month button.',\n })}\"\n class=\"w-datepicker__month__nav__button\"\n id=\"${previousMonthButtonId}\"\n data-testid=\"${previousMonthButtonId}\"\n variant=\"utility\"\n quiet\n small\n @click=\"${this.#previousMonth}\">\n <w-icon-chevron-left-16></w-icon-chevron-left-16>\n </w-button>\n <div aria-live=\"polite\" class=\"w-datepicker__month__nav__header\">\n ${format(this.month, this.headerFormat, { locale: this.locale })}\n </div>\n <w-button\n aria-label=\"${i18n.t({\n id: 'datepicker.calendar.nextMonth',\n message: 'Next month',\n comment: 'Screen reader label for the next month button.',\n })}\"\n class=\"w-datepicker__month__nav__button\"\n data-testid=\"${calendarId}-next\"\n variant=\"utility\"\n quiet\n small\n @click=\"${this.#nextMonth}\">\n <w-icon-chevron-right-16></w-icon-chevron-right-16>\n </w-button>\n </div>\n <div class=\"w-datepicker__month\">\n <table class=\"w-datepicker__table\" role=\"grid\">\n <thead class=\"w-datepicker__weekdays\">\n <tr>\n ${this.weeks[0].map(\n (day) =>\n html`<th class=\"w-datepicker__weekday\">${format(day, this.weekdayFormat, { locale: this.locale })}</th> `,\n )}\n </tr>\n </thead>\n <tbody>\n ${this.weeks.map(\n (week) =>\n html`<tr>\n ${week.map((day) => {\n if (!isSameMonth(this.month, day)) {\n return html`<td></td>`;\n }\n\n const isDisabled = this.isDayDisabled ? this.isDayDisabled(day) : false;\n const isSelected = isSameDay(day, this.selectedDate);\n const isNavigationDate = day === this.navigationDate;\n\n return html`<td\n aria-current=\"${ifDefined(isToday(day) ? 'date' : undefined)}\"\n aria-disabled=\"${isDisabled}\"\n aria-label=\"${format(day, this.dayFormat, { locale: this.locale })}\"\n aria-selected=\"${isSelected}\"\n class=\"${classMap({\n 'w-datepicker__day': true,\n 'w-datepicker__day--today': isToday(day),\n 'w-datepicker__day--selected': isSelected,\n 'w-datepicker__day--disabled': isDisabled,\n 'w-datepicker__day--navigation': isNavigationDate,\n })}\"\n data-navigation=\"${isNavigationDate}\"\n data-date=\"${formatISO(day, { representation: 'date' })}\"\n role=\"gridcell\"\n tabindex=\"${isNavigationDate ? 0 : -1}\"\n @click=\"${isDisabled ? undefined : this.#onCalendarSelect}\"\n @keydown=\"${isDisabled ? undefined : this.#onCalendarSelect}\">\n <div>${getDate(day)}</div>\n </td>`;\n })}\n </tr>`,\n )}\n </tbody>\n </table>\n </div>\n </div>\n </div>\n `;\n }\n}\n\nif (!customElements.get('w-datepicker')) {\n customElements.define('w-datepicker', WarpDatepicker);\n}\n\nexport { WarpDatepicker };\n", "import { LitElement } from 'lit';\nimport { unsafeStatic, html } from \"lit/static-html.js\";\nimport { i18n } from '@lingui/core';\nimport { messages as nbMessages} from '../src/raw/calendar/locales/nb/messages.mjs';\nimport { messages as enMessages} from '../src/raw/calendar/locales/en/messages.mjs';\nimport { messages as fiMessages} from '../src/raw/calendar/locales/fi/messages.mjs';\nimport { messages as daMessages} from '../src/raw/calendar/locales/da/messages.mjs';\nimport { messages as svMessages} from '../src/raw/calendar/locales/sv/messages.mjs';\nimport { activateI18n } from '../src/utils/i18n';\nactivateI18n(enMessages, nbMessages, fiMessages, daMessages, svMessages);\n\n\nexport class IconCalendar16 extends LitElement {\n render() {\n const title = i18n.t({ message: `Calendar`, id: 'icon.title.calendar', comment: 'Title for calendar icon' });\n \n return html`<svg xmlns=\"http://www.w3.org/2000/svg\"width=\"16\"height=\"16\"fill=\"none\"viewBox=\"0 0 16 16\" part=\"w-icon-calendar-16-part\">${unsafeStatic(`<title>${title}</title>`)}<path stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M14.5 2.5h-13a1 1 0 0 0-1 1v11a1 1 0 0 0 1 1h13a1 1 0 0 0 1-1v-11a1 1 0 0 0-1-1m-14 4h15M8 12.666V9.333m1 3.333H7m1-3.333-1 .333M4.5 3.333V.667m7 2.666V.667\"></path></svg>`; }\n}\nif (!customElements.get('w-icon-calendar-16')) {\n customElements.define('w-icon-calendar-16', IconCalendar16);\n}", "/*eslint-disable*/export const messages=JSON.parse(\"{\\\"icon.title.calendar\\\":[\\\"Kalender\\\"]}\");", "/*eslint-disable*/export const messages=JSON.parse(\"{\\\"icon.title.calendar\\\":[\\\"Calendar\\\"]}\");", "/*eslint-disable*/export const messages=JSON.parse(\"{\\\"icon.title.calendar\\\":[\\\"Kalenteri\\\"]}\");", "/*eslint-disable*/export const messages=JSON.parse(\"{\\\"icon.title.calendar\\\":[\\\"Kalender\\\"]}\");", "/*eslint-disable*/export const messages=JSON.parse(\"{\\\"icon.title.calendar\\\":[\\\"Kalender\\\"]}\");", "import { Messages, i18n } from '@lingui/core';\n\nexport const supportedLocales = ['en', 'nb', 'fi', 'da', 'sv'] as const;\ntype SupportedLocale = (typeof supportedLocales)[number];\n\nexport const defaultLocale = 'en';\n\nconst detectByBrand = () => {\n\tlet value;\n switch (process?.env?.NMP_BRAND) {\n\t\tcase 'FINN':\n\t\t\tvalue = 'nb';\n\t\t\tbreak;\n\t\tcase 'TORI':\n\t\t\tvalue = 'fi';\n\t\t\tbreak;\n\t\tcase 'BLOCKET':\n\t\t\tvalue = 'sv';\n\t\t\tbreak;\n\t\tcase 'DBA':\n\t\t\tvalue = 'da';\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tvalue = 'en';\n\t}\n\treturn value;\n};\n\nconst detectByHost = () => {\n const hostname = document?.location?.hostname;\n if (hostname?.includes('finn')) {\n return 'nb';\n } else if (hostname.includes('tori')) {\n return 'fi';\n } else if (hostname.includes('blocket')) {\n return 'sv';\n } else if (hostname.includes('dba')) {\n return 'da';\n } else {\n return defaultLocale;\n }\n}\n\nexport const getSupportedLocale = (usedLocale: string) => {\n return (\n supportedLocales.find(\n (locale) =>\n usedLocale === locale || usedLocale.toLowerCase().includes(locale)\n ) || detectByHost()\n );\n};\n\nexport function detectLocale(): SupportedLocale {\n if (typeof window === 'undefined') {\n /**\n * Server locale detection. This requires e.g NMP_BRAND environment variable to be set on the server.\n */\n const serverLocale = detectByBrand();\n return getSupportedLocale(serverLocale);\n }\n\n try {\n /**\n * Client locale detection. Expects the lang attribute to be defined.\n */\n const htmlLocale = document?.documentElement?.lang;\n const hostLocale = detectByHost();\n \n if (!supportedLocales.includes(htmlLocale as SupportedLocale)) {\n console.warn('Unsupported locale set in html lang tag, falling back to detection by hostname');\n return getSupportedLocale(hostLocale);\n }\n return getSupportedLocale(htmlLocale ?? hostLocale);\n } catch (e) {\n console.warn('could not detect locale, falling back to source locale', e);\n return defaultLocale;\n }\n}\n\nexport const getMessages = (\n locale: SupportedLocale,\n enMsg: Messages,\n nbMsg: Messages,\n fiMsg: Messages,\n daMsg: Messages,\n svMsg: Messages\n) => {\n if (locale === 'nb') return nbMsg;\n if (locale === 'fi') return fiMsg;\n if (locale === 'da') return daMsg;\n if (locale === 'sv') return svMsg;\n // Default to English\n return enMsg;\n};\n\nexport const activateI18n = (\n enMessages: Messages,\n nbMessages: Messages,\n fiMessages: Messages,\n daMessages: Messages,\n svMessages: Messages\n) => {\n const locale = detectLocale();\n const messages = getMessages(locale, enMessages, nbMessages, fiMessages, daMessages, svMessages);\n i18n.load(locale, messages);\n i18n.activate(locale);\n};\n", "import { LitElement } from 'lit';\nimport { unsafeStatic, html } from \"lit/static-html.js\";\nimport { i18n } from '@lingui/core';\nimport { messages as nbMessages} from '../src/raw/chevron-left/locales/nb/messages.mjs';\nimport { messages as enMessages} from '../src/raw/chevron-left/locales/en/messages.mjs';\nimport { messages as fiMessages} from '../src/raw/chevron-left/locales/fi/messages.mjs';\nimport { messages as daMessages} from '../src/raw/chevron-left/locales/da/messages.mjs';\nimport { messages as svMessages} from '../src/raw/chevron-left/locales/sv/messages.mjs';\nimport { activateI18n } from '../src/utils/i18n';\nactivateI18n(enMessages, nbMessages, fiMessages, daMessages, svMessages);\n\n\nexport class IconChevronLeft16 extends LitElement {\n render() {\n const title = i18n.t({ message: `Leftward arrow`, id: 'icon.title.chevron-left', comment: 'Title for chevron-left icon' });\n \n return html`<svg xmlns=\"http://www.w3.org/2000/svg\"width=\"16\"height=\"16\"fill=\"none\"viewBox=\"0 0 16 16\" part=\"w-icon-chevron-left-16-part\">${unsafeStatic(`<title>${title}</title>`)}<path stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\" d=\"M10.5 13.75 5 8.25l5.5-5.5\"></path></svg>`; }\n}\nif (!customElements.get('w-icon-chevron-left-16')) {\n customElements.define('w-icon-chevron-left-16', IconChevronLeft16);\n}", "/*eslint-disable*/export const messages=JSON.parse(\"{\\\"icon.title.chevron-left\\\":[\\\"Pil til venstre\\\"]}\");", "/*eslint-disable*/export const messages=JSON.parse(\"{\\\"icon.title.chevron-left\\\":[\\\"Leftward arrow\\\"]}\");", "/*eslint-disable*/export const messages=JSON.parse(\"{\\\"icon.title.chevron-left\\\":[\\\"Nuoli vasemmalle\\\"]}\");", "/*eslint-disable*/export const messages=JSON.parse(\"{\\\"icon.title.chevron-left\\\":[\\\"Pil til venstre\\\"]}\");", "/*eslint-disable*/export const messages=JSON.parse(\"{\\\"icon.title.chevron-left\\\":[\\\"Pil v\u00E4nster\\\"]}\");", "import { Messages, i18n } from '@lingui/core';\n\nexport const supportedLocales = ['en', 'nb', 'fi', 'da', 'sv'] as const;\ntype SupportedLocale = (typeof supportedLocales)[number];\n\nexport const defaultLocale = 'en';\n\nconst detectByBrand = () => {\n\tlet value;\n switch (process?.env?.NMP_BRAND) {\n\t\tcase 'FINN':\n\t\t\tvalue = 'nb';\n\t\t\tbreak;\n\t\tcase 'TORI':\n\t\t\tvalue = 'fi';\n\t\t\tbreak;\n\t\tcase 'BLOCKET':\n\t\t\tvalue = 'sv';\n\t\t\tbreak;\n\t\tcase 'DBA':\n\t\t\tvalue = 'da';\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tvalue = 'en';\n\t}\n\treturn value;\n};\n\nconst detectByHost = () => {\n const hostname = document?.location?.hostname;\n if (hostname?.includes('finn')) {\n return 'nb';\n } else if (hostname.includes('tori')) {\n return 'fi';\n } else if (hostname.includes('blocket')) {\n return 'sv';\n } else if (hostname.includes('dba')) {\n return 'da';\n } else {\n return defaultLocale;\n }\n}\n\nexport const getSupportedLocale = (usedLocale: string) => {\n return (\n supportedLocales.find(\n (locale) =>\n usedLocale === locale || usedLocale.toLowerCase().includes(locale)\n ) || detectByHost()\n );\n};\n\nexport function detectLocale(): SupportedLocale {\n if (typeof window === 'undefined') {\n /**\n * Server locale detection. This requires e.g NMP_BRAND environment variable to be set on the server.\n */\n const serverLocale = detectByBrand();\n return getSupportedLocale(serverLocale);\n }\n\n try {\n /**\n * Client locale detection. Expects the lang attribute to be defined.\n */\n const htmlLocale = document?.documentElement?.lang;\n const hostLocale = detectByHost();\n \n if (!supportedLocales.includes(htmlLocale as SupportedLocale)) {\n console.warn('Unsupported locale set in html lang tag, falling back to detection by hostname');\n return getSupportedLocale(hostLocale);\n }\n return getSupportedLocale(htmlLocale ?? hostLocale);\n } catch (e) {\n console.warn('could not detect locale, falling back to source locale', e);\n return defaultLocale;\n }\n}\n\nexport const getMessages = (\n locale: SupportedLocale,\n enMsg: Messages,\n nbMsg: Messages,\n fiMsg: Messages,\n daMsg: Messages,\n svMsg: Messages\n) => {\n if (locale === 'nb') return nbMsg;\n if (locale === 'fi') return fiMsg;\n if (locale === 'da') return daMsg;\n if (locale === 'sv') return svMsg;\n // Default to English\n return enMsg;\n};\n\nexport const activateI18n = (\n enMessages: Messages,\n nbMessages: Messages,\n fiMessages: Messages,\n daMessages: Messages,\n svMessages: Messages\n) => {\n const locale = detectLocale();\n const messages = getMessages(locale, enMessages, nbMessages, fiMessages, daMessages, svMessages);\n i18n.load(locale, messages);\n i18n.activate(locale);\n};\n", "import { LitElement } from 'lit';\nimport { unsafeStatic, html } from \"lit/static-html.js\";\nimport { i18n } from '@lingui/core';\nimport { messages as nbMessages} from '../src/raw/chevron-right/locales/nb/messages.mjs';\nimport { messages as enMessages} from '../src/raw/chevron-right/locales/en/messages.mjs';\nimport { messages as fiMessages} from '../src/raw/chevron-right/locales/fi/messages.mjs';\nimport { messages as daMessages} from '../src/raw/chevron-right/locales/da/messages.mjs';\nimport { messages as svMessages} from '../src/raw/chevron-right/locales/sv/messages.mjs';\nimport { activateI18n } from '../src/utils/i18n';\nactivateI18n(enMessages, nbMessages, fiMessages, daMessages, svMessages);\n\n\nexport class IconChevronRight16 extends LitElement {\n render() {\n const title = i18n.t({ message: `Rightward arrow`, id: 'icon.title.chevron-right', comment: 'Title for chevron-right icon' });\n \n return html`<svg xmlns=\"http://www.w3.org/2000/svg\"width=\"16\"height=\"16\"fill=\"none\"viewBox=\"0 0 16 16\" part=\"w-icon-chevron-right-16-part\">${unsafeStatic(`<title>${title}</title>`)}<path stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\" d=\"m5.5 13.75 5.5-5.5-5.5-5.5\"></path></svg>`; }\n}\nif (!customElements.get('w-icon-chevron-right-16')) {\n customElements.define('w-icon-chevron-right-16', IconChevronRight16);\n}", "/*eslint-disable*/export const messages=JSON.parse(\"{\\\"icon.title.chevron-right\\\":[\\\"Pil til h\u00F8yre\\\"]}\");", "/*eslint-disable*/export const messages=JSON.parse(\"{\\\"icon.title.chevron-right\\\":[\\\"Rightward arrow\\\"]}\");", "/*eslint-disable*/export const messages=JSON.parse(\"{\\\"icon.title.chevron-right\\\":[\\\"Nuoli oikealle\\\"]}\");", "/*eslint-disable*/export const messages=JSON.parse(\"{\\\"icon.title.chevron-right\\\":[\\\"Pil til h\u00F8jre\\\"]}\");", "/*eslint-disable*/export const messages=JSON.parse(\"{\\\"icon.title.chevron-right\\\":[\\\"Pil h\u00F6ger\\\"]}\");", "import { Messages, i18n } from '@lingui/core';\n\nexport const supportedLocales = ['en', 'nb', 'fi', 'da', 'sv'] as const;\ntype SupportedLocale = (typeof supportedLocales)[number];\n\nexport const defaultLocale = 'en';\n\nconst detectByBrand = () => {\n\tlet value;\n switch (process?.env?.NMP_BRAND) {\n\t\tcase 'FINN':\n\t\t\tvalue = 'nb';\n\t\t\tbreak;\n\t\tcase 'TORI':\n\t\t\tvalue = 'fi';\n\t\t\tbreak;\n\t\tcase 'BLOCKET':\n\t\t\tvalue = 'sv';\n\t\t\tbreak;\n\t\tcase 'DBA':\n\t\t\tvalue = 'da';\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tvalue = 'en';\n\t}\n\treturn value;\n};\n\nconst detectByHost = () => {\n const hostname = document?.location?.hostname;\n if (hostname?.includes('finn')) {\n return 'nb';\n } else if (hostname.includes('tori')) {\n return 'fi';\n } else if (hostname.includes('blocket')) {\n return 'sv';\n } else if (hostname.includes('dba')) {\n return 'da';\n } else {\n return defaultLocale;\n }\n}\n\nexport const getSupportedLocale = (usedLocale: string) => {\n return (\n supportedLocales.find(\n (locale) =>\n usedLocale === locale || usedLocale.toLowerCase().includes(locale)\n ) || detectByHost()\n );\n};\n\nexport function detectLocale(): SupportedLocale {\n if (typeof window === 'undefined') {\n /**\n * Server locale detection. This requires e.g NMP_BRAND environment variable to be set on the server.\n */\n const serverLocale = detectByBrand();\n return getSupportedLocale(serverLocale);\n }\n\n try {\n /**\n * Client locale detection. Expects the lang attribute to be defined.\n */\n const htmlLocale = document?.documentElement?.lang;\n const hostLocale = detectByHost();\n \n if (!supportedLocales.includes(htmlLocale as SupportedLocale)) {\n console.warn('Unsupported locale set in html lang tag, falling back to detection by hostname');\n return getSupportedLocale(hostLocale);\n }\n return getSupportedLocale(htmlLocale ?? hostLocale);\n } catch (e) {\n console.warn('could not detect locale, falling back to source locale', e);\n return defaultLocale;\n }\n}\n\nexport const getMessages = (\n locale: SupportedLocale,\n enMsg: Messages,\n nbMsg: Messages,\n fiMsg: Messages,\n daMsg: Messages,\n svMsg: Messages\n) => {\n if (locale === 'nb') return nbMsg;\n if (locale === 'fi') return fiMsg;\n if (locale === 'da') return daMsg;\n if (locale === 'sv') return svMsg;\n // Default to English\n return enMsg;\n};\n\nexport const activateI18n = (\n enMessages: Messages,\n nbMessages: Messages,\n fiMessages: Messages,\n daMessages: Messages,\n svMessages: Messages\n) => {\n const locale = detectLocale();\n const messages = getMessages(locale, enMessages, nbMessages, fiMessages, daMessages, svMessages);\n i18n.load(locale, messages);\n i18n.activate(locale);\n};\n", "import { i18n, Messages } from '@lingui/core';\n\nexport const supportedLocales = ['en', 'nb', 'fi', 'da', 'sv'] as const;\ntype SupportedLocale = (typeof supportedLocales)[number];\n\nexport const defaultLocale = 'en';\n\nexport const getSupportedLocale = (usedLocale: string) => {\n return (\n supportedLocales.find((locale) => usedLocale === locale || usedLocale.toLowerCase().includes(locale)) ||\n defaultLocale\n );\n};\n\nexport function detectLocale(): SupportedLocale {\n if (typeof window === 'undefined') {\n /**\n * Server locale detection. This requires e.g LANG environment variable to be set on the server.\n */\n const serverLocale = process.env.NMP_LANGUAGE || Intl.DateTimeFormat().resolvedOptions().locale;\n return getSupportedLocale(serverLocale);\n }\n\n try {\n /**\n * Client locale detection. Expects the lang attribute to be defined.\n */\n const htmlLocale = document.documentElement.lang;\n return getSupportedLocale(htmlLocale);\n } catch (e) {\n console.warn('could not detect locale, falling back to source locale', e);\n return defaultLocale;\n }\n}\n\nexport const getMessages = (\n locale: SupportedLocale,\n enMsg: Messages,\n nbMsg: Messages,\n fiMsg: Messages,\n daMsg: Messages,\n svMsg: Messages,\n) => {\n if (locale === 'nb') return nbMsg;\n if (locale === 'fi') return fiMsg;\n if (locale === 'da') return daMsg;\n if (locale === 'sv') return svMsg;\n // Default to English\n return enMsg;\n};\n\nexport const activateI18n = (\n enMessages: Messages,\n nbMessages: Messages,\n fiMessages: Messages,\n daMessages: Messages,\n svMessages: Messages,\n) => {\n const locale = detectLocale();\n const messages = getMessages(locale, enMessages, nbMessages, fiMessages, daMessages, svMessages);\n i18n.load(locale, messages);\n i18n.activate(locale);\n};\n", "import { css } from 'lit';\n\nexport const reset = css`\n *,\n :before,\n :after {\n box-sizing: border-box;\n border-style: solid;\n border-width: 0;\n border-color: var(--w-s-color-border);\n }\n html {\n font-size: 62.5%;\n }\n body {\n background-color: var(--w-s-color-background);\n min-height: 100%;\n margin: 0;\n overflow-y: scroll;\n }\n body,\n :host {\n -webkit-text-size-adjust: 100%;\n tab-size: 4;\n -webkit-tap-highlight-color: transparent;\n font-family: var(--w-font-family);\n font-size: var(--w-font-size-m);\n line-height: var(--w-line-height-m);\n color: var(--w-s-color-text);\n }\n hr {\n color: inherit;\n border-top-width: 1px;\n height: 0;\n }\n abbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n }\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n font-size: inherit;\n font-weight: 700;\n }\n a {\n cursor: pointer;\n color: var(--w-s-color-text-link);\n text-decoration: none;\n }\n a:hover,\n a:focus,\n a:active {\n text-decoration: underline;\n }\n a:focus-visible {\n outline: 2px solid var(--w-s-color-border-focus);\n outline-offset: 1px;\n }\n b,\n strong {\n font-weight: 700;\n }\n code,\n kbd,\n samp,\n pre {\n font-family:\n ui-monospace,\n SFMono-Regular,\n Menlo,\n Monaco,\n Consolas,\n Liberation Mono,\n Courier New,\n monospace;\n font-size: 1em;\n }\n sub,\n sup {\n vertical-align: baseline;\n font-size: 75%;\n line-height: 0;\n position: relative;\n }\n sub {\n bottom: -0.25em;\n }\n sup {\n top: -0.5em;\n }\n table {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n }\n button,\n input,\n optgroup,\n select,\n textarea {\n font-family: inherit;\n font-size: 100%;\n font-weight: inherit;\n line-height: inherit;\n color: inherit;\n margin: 0;\n padding: 0;\n }\n button,\n select {\n text-transform: none;\n }\n button,\n [type='button'],\n [type='reset'],\n [type='submit'] {\n -webkit-appearance: button;\n }\n :-moz-focusring {\n outline: auto;\n }\n :-moz-ui-invalid {\n box-shadow: none;\n }\n progress {\n vertical-align: baseline;\n }\n ::-webkit-inner-spin-button {\n height: auto;\n }\n ::-webkit-outer-spin-button {\n height: auto;\n }\n [type='search'] {\n -webkit-appearance: textfield;\n outline-offset: -2px;\n }\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n ::-webkit-file-upload-button {\n -webkit-appearance: button;\n font: inherit;\n }\n summary {\n display: list-item;\n }\n blockquote,\n dl,\n dd,\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n hr,\n figure,\n p,\n pre {\n margin: 0;\n }\n fieldset {\n margin: 0;\n padding: 0;\n }\n legend {\n padding: 0;\n }\n ol,\n ul,\n menu {\n margin: 0;\n padding: 0;\n list-style: none;\n }\n textarea {\n resize: vertical;\n }\n input::placeholder,\n textarea::placeholder {\n opacity: 1;\n color: var(--w-s-color-text-placeholder);\n }\n button,\n [role='button'] {\n cursor: pointer;\n }\n :disabled {\n cursor: default;\n }\n img,\n svg,\n video,\n canvas,\n audio,\n iframe,\n embed,\n object {\n vertical-align: middle;\n display: block;\n }\n img,\n video {\n max-width: 100%;\n height: auto;\n }\n h1 {\n font-size: var(--w-font-size-xxl);\n line-height: var(--w-line-height-xxl);\n }\n h2 {\n font-size: var(--w-font-size-xl);\n line-height: var(--w-line-height-xl);\n }\n h3 {\n font-size: var(--w-font-size-l);\n line-height: var(--w-line-height-l);\n }\n h4 {\n font-size: var(--w-font-size-m);\n line-height: var(--w-line-height-m);\n }\n h5 {\n font-size: var(--w-font-size-s);\n line-height: var(--w-line-height-s);\n }\n dt,\n dd {\n margin: 0 16px;\n }\n h1,\n h2,\n h3,\n h4,\n h5,\n ul,\n ol,\n dl,\n p,\n blockquote {\n margin: 0 0 8px;\n }\n [hidden] {\n display: none !important;\n }\n [tabindex='-1']:focus:not(:focus-visible) {\n outline: none;\n }\n legend {\n float: left;\n width: 100%;\n margin: 0;\n padding: 0;\n display: table;\n }\n legend + * {\n clear: both;\n }\n fieldset {\n border: 0;\n min-width: 0;\n margin: 0;\n padding: 0.01em 0 0;\n }\n body:not(:-moz-handler-blocked) fieldset {\n display: table-cell;\n }\n svg {\n pointer-events: none;\n }\n`;\nexport const components = css`*, :before, :after {\n --w-rotate: 0;\n --w-rotate-x: 0;\n --w-rotate-y: 0;\n --w-rotate-z: 0;\n --w-scale-x: 1;\n --w-scale-y: 1;\n --w-scale-z: 1;\n --w-skew-x: 0;\n --w-skew-y: 0;\n --w-translate-x: 0;\n --w-translate-y: 0;\n --w-translate-z: 0\n }\n\n .h4, .t4 {\n font-weight: 700;\n font-size: var(--w-font-size-m);\n line-height: var(--w-line-height-m)\n }\n\n .t3 {\n font-weight: 700;\n font-size: var(--w-font-size-l);\n line-height: var(--w-line-height-l)\n }\n\n @media (min-width: 480px) {\n .sm\\\\:h3 {\n font-weight: 700;\n font-size: var(--w-font-size-l);\n line-height: var(--w-line-height-l)\n }\n }\n\n .text-center {\n text-align: center\n }\n\n .before\\\\:text-center:before {\n text-align: center\n }\n\n .text-left {\n text-align: left\n }\n\n .text-right {\n text-align: right\n }\n\n .align-middle {\n vertical-align: middle\n }\n\n .animate-inprogress {\n background-image: linear-gradient(135deg, rgba(0, 0, 0, .05) 25%, transparent 0, transparent 50%, rgba(0, 0, 0, .05) 0, rgba(0, 0, 0, .05) 75%, transparent 0, transparent) !important;\n background-size: 30px 30px;\n animation: animate-inprogress 3s linear infinite\n }\n\n @keyframes animate-inprogress {\n 0% {\n background-position: 0 0\n }\n to {\n background-position: 60px 0\n }\n }\n\n .\\\\[--w-modal-max-height\\\\:80\\\\%\\\\] {\n --w-modal-max-height: 80%\n }\n\n .\\\\[--w-modal-width\\\\:640px\\\\] {\n --w-modal-width: 640px\n }\n\n .focus\\\\:\\\\[--w-outline-offset\\\\:-2px\\\\]:focus {\n --w-outline-offset: -2px\n }\n\n .backdrop-blur {\n -webkit-backdrop-filter: blur(4px);\n backdrop-filter: blur(4px)\n }\n\n .peer:checked ~ .peer-checked\\\\:before\\\\:bg-center:before {\n background-position: center\n }\n\n .hover\\\\:bg-clip-padding:hover {\n -webkit-background-clip: padding-box;\n background-clip: padding-box\n }\n\n .bg-transparent, .group\\\\/steph:first-child .group-first\\\\/steph\\\\:bg-transparent, .group\\\\/steph:last-child .group-last\\\\/steph\\\\:bg-transparent {\n background-color: transparent\n }\n\n .bg-\\\\[--w-black\\\\/25\\\\] {\n background-color: rgba(var(--w-rgb-black), .25)\n }\n\n .bg-\\\\[--w-black\\\\/70\\\\], .bg-\\\\[var\\\\(--w-black\\\\)\\\\/70\\\\] {\n background-color: rgba(var(--w-rgb-black), .7)\n }\n\n .bg-\\\\[--w-color-badge-info-background\\\\] {\n background-color: var(--w-color-badge-info-background)\n }\n\n .bg-\\\\[--w-color-badge-negative-background\\\\] {\n background-color: var(--w-color-badge-negative-background)\n }\n\n .bg-\\\\[--w-color-badge-neutral-background\\\\] {\n background-color: var(--w-color-badge-neutral-background)\n }\n\n .bg-\\\\[--w-color-badge-positive-background\\\\] {\n background-color: var(--w-color-badge-positive-background)\n }\n\n .bg-\\\\[--w-color-badge-sponsored-background\\\\] {\n background-color: var(--w-color-badge-sponsored-background)\n }\n\n .bg-\\\\[--w-color-badge-warning-background\\\\] {\n background-color: var(--w-color-badge-warning-background)\n }\n\n .bg-\\\\[--w-color-button-primary-background\\\\] {\n background-color: var(--w-color-button-primary-background)\n }\n\n .bg-\\\\[--w-color-buttongroup-utility-background-selected\\\\] {\n background-color: var(--w-color-buttongroup-utility-background-selected)\n }\n\n .bg-\\\\[--w-color-callout-background\\\\] {\n background-color: var(--w-color-callout-background)\n }\n\n .bg-\\\\[--w-color-pill-suggestion-background\\\\] {\n background-color: var(--w-color-pill-suggestion-background)\n }\n\n .bg-\\\\[--w-color-switch-track-background\\\\] {\n background-color: var(--w-color-switch-track-background)\n }\n\n .bg-\\\\[--w-s-color-surface-elevated-100\\\\] {\n background-color: var(--w-s-color-surface-elevated-100)\n }\n\n .bg-\\\\[--w-s-color-surface-elevated-300\\\\] {\n background-color: var(--w-s-color-surface-elevated-300)\n }\n\n .bg-\\\\[--w-s-icon-selected\\\\] {\n background-color: var(--w-s-icon-selected)\n }\n\n .group:hover .group-hover\\\\:bg-\\\\[--w-color-switch-track-background-hover\\\\] {\n background-color: var(--w-color-switch-track-background-hover)\n }\n\n .hover\\\\:bg-\\\\[--w-color-button-pill-background-hover\\\\]:hover {\n background-color: var(--w-color-button-pill-background-hover)\n }\n\n .hover\\\\:bg-\\\\[--w-color-button-primary-background-hover\\\\]:hover {\n background-color: var(--w-color-button-primary-background-hover)\n }\n\n .hover\\\\:bg-\\\\[--w-color-buttongroup-utility-background-hover\\\\]:hover {\n background-color: var(--w-color-buttongroup-utility-background-hover)\n }\n\n .hover\\\\:bg-\\\\[--w-color-pill-suggestion-background-hover\\\\]:hover {\n background-color: var(--w-color-pill-suggestion-background-hover)\n }\n\n .hover\\\\:bg-\\\\[--w-s-icon-subtle\\\\]:hover {\n background-color: var(--w-s-icon-subtle)\n }\n\n .hover\\\\:bg-\\\\[var\\\\(--w-black\\\\)\\\\/85\\\\]:hover {\n background-color: rgba(var(--w-rgb-black), .85)\n }\n\n .active\\\\:bg-\\\\[--w-color-button-pill-background-active\\\\]:active {\n background-color: var(--w-color-button-pill-background-active)\n }\n\n .active\\\\:bg-\\\\[--w-color-button-primary-background-active\\\\]:active {\n background-color: var(--w-color-button-primary-background-active)\n }\n\n .active\\\\:bg-\\\\[--w-color-buttongroup-utility-background-selected\\\\]:active {\n background-color: var(--w-color-buttongroup-utility-background-selected)\n }\n\n .active\\\\:bg-\\\\[--w-color-pill-suggestion-background-active\\\\]:active {\n background-color: var(--w-color-pill-suggestion-background-active)\n }\n\n .active\\\\:bg-\\\\[var\\\\(--w-black\\\\)\\\\]:active {\n background-color: var(--w-black)\n }\n\n .peer:checked ~ .peer-checked\\\\:before\\\\:bg-\\\\[url\\\\(var\\\\(--w-icon-toggle-checked\\\\)\\\\)\\\\]:before {\n background-image: var(--w-icon-toggle-checked)\n }\n\n .appearance-none {\n -moz-appearance: none;\n appearance: none;\n -webkit-appearance: none\n }\n\n .will-change-height {\n will-change: height\n }\n\n .border, .border-1 {\n border-width: 1px\n }\n\n .border-b {\n border-bottom-width: 1px\n }\n\n .before\\\\:border:before {\n border-width: 1px\n }\n\n .border-0 {\n border-width: 0\n }\n\n .border-2 {\n border-width: 2px\n }\n\n .border-b-0 {\n border-bottom-width: 0\n }\n\n .border-b-4 {\n border-bottom-width: 4px\n }\n\n .border-l-4 {\n border-left-width: 4px\n }\n\n .border-r-0, .group:not(:last-of-type) .group-not-last-of-type\\\\:border-r-0 {\n border-right-width: 0\n }\n\n .peer:checked ~ .peer-checked\\\\:before\\\\:border-\\\\[6\\\\]:before {\n border-width: .6rem\n }\n\n .border-transparent {\n border-color: transparent\n }\n\n .border-\\\\[--w-color-buttongroup-utility-border\\\\] {\n border-color: var(--w-color-buttongroup-utility-border)\n }\n\n .border-\\\\[--w-color-callout-border\\\\] {\n border-color: var(--w-color-callout-border)\n }\n\n .border-\\\\[--w-s-color-background-inverted\\\\] {\n border-color: var(--w-s-color-background-inverted)\n }\n\n .border-\\\\[--w-s-color-surface-elevated-300\\\\] {\n border-color: var(--w-s-color-surface-elevated-300)\n }\n\n .active\\\\:border-\\\\[--w-color-buttongroup-utility-border-selected\\\\]:active {\n border-color: var(--w-color-buttongroup-utility-border-selected)\n }\n\n .divide-x > * + * {\n --w-divide-x-reverse: 0;\n border-left-width: calc(1px * calc(1 - var(--w-divide-x-reverse)));\n border-right-width: calc(1px * var(--w-divide-x-reverse))\n }\n\n .divide-y > * + * {\n --w-divide-y-reverse: 0;\n border-top-width: calc(1px * calc(1 - var(--w-divide-y-reverse)));\n border-bottom-width: calc(1px * var(--w-divide-y-reverse))\n }\n\n .rounded-4 {\n border-radius: 4px\n }\n\n .rounded-8 {\n border-radius: 8px\n }\n\n .rounded-full {\n border-radius: 9999px\n }\n\n .before\\\\:rounded-2:before {\n border-radius: 2px\n }\n\n .before\\\\:rounded-full:before {\n border-radius: 9999px\n }\n\n .rounded-b-0 {\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0\n }\n\n .rounded-bl-0 {\n border-bottom-left-radius: 0\n }\n\n .rounded-br-0 {\n border-bottom-right-radius: 0\n }\n\n .rounded-l-0 {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0\n }\n\n .rounded-l-full {\n border-top-left-radius: 9999px;\n border-bottom-left-radius: 9999px\n }\n\n .rounded-r-0 {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0\n }\n\n .rounded-r-full {\n border-top-right-radius: 9999px;\n border-bottom-right-radius: 9999px\n }\n\n .rounded-tl-0 {\n border-top-left-radius: 0\n }\n\n .rounded-tl-4 {\n border-top-left-radius: 4px\n }\n\n .rounded-tr-0 {\n border-top-right-radius: 0\n }\n\n .group:first-of-type .group-first-of-type\\\\:rounded-bl-8 {\n border-bottom-left-radius: 8px\n }\n\n .group:first-of-type .group-first-of-type\\\\:rounded-tl-8 {\n border-top-left-radius: 8px\n }\n\n .first\\\\:rounded-lb-4:first-child {\n border-bottom-left-radius: 4px\n }\n\n .first\\\\:rounded-lt-4:first-child {\n border-top-left-radius: 4px\n }\n\n .first\\\\:rounded-rt-4:first-child {\n border-top-right-radius: 4px\n }\n\n .group:last-of-type .group-last-of-type\\\\:rounded-br-8 {\n border-bottom-right-radius: 8px\n }\n\n .group:last-of-type .group-last-of-type\\\\:rounded-tr-8 {\n border-top-right-radius: 8px\n }\n\n .last\\\\:rounded-lb-4:last-child {\n border-bottom-left-radius: 4px\n }\n\n .last\\\\:rounded-rb-4:last-child {\n border-bottom-right-radius: 4px\n }\n\n .last\\\\:rounded-rt-4:last-child {\n border-top-right-radius: 4px\n }\n\n .caret-current {\n caret-color: currentColor\n }\n\n .opacity-25 {\n opacity: 25%\n }\n\n .block {\n display: block\n }\n\n .before\\\\:block:before {\n display: block\n }\n\n .inline-block {\n display: inline-block\n }\n\n .inline {\n display: inline\n }\n\n .flex, .open\\\\:flex[open] {\n display: flex\n }\n\n .inline-flex {\n display: inline-flex\n }\n\n .grid {\n display: grid\n }\n\n .inline-grid {\n display: inline-grid\n }\n\n .hidden, .group\\\\/stepv:last-child .group-last\\\\/stepv\\\\:hidden {\n display: none\n }\n\n .before\\\\:hidden:before {\n display: none\n }\n\n .hover\\\\:underline:hover {\n text-decoration-line: underline\n }\n\n .focus\\\\:underline:focus {\n text-decoration-line: underline\n }\n\n .focus-visible\\\\:underline:focus-visible {\n text-decoration-line: underline\n }\n\n .active\\\\:underline:active {\n text-decoration-line: underline\n }\n\n .hover\\\\:no-underline:hover {\n text-decoration: none\n }\n\n .focus\\\\:no-underline:focus {\n text-decoration: none\n }\n\n .active\\\\:no-underline:active {\n text-decoration: none\n }\n\n .flex-1 {\n flex: 1 1 0%\n }\n\n .shrink {\n flex-shrink: 1\n }\n\n .shrink-0 {\n flex-shrink: 0\n }\n\n .shrink-0\\\\! {\n flex-shrink: 0 !important\n }\n\n .grow, .grow-1 {\n flex-grow: 1\n }\n\n .basis-auto {\n flex-basis: auto\n }\n\n .flex-col {\n flex-direction: column\n }\n\n .focus-within\\\\:focusable:focus-within {\n outline: 2px solid var(--w-s-color-border-focus);\n outline-offset: var(--w-outline-offset, 1px)\n }\n\n .focusable:focus, .focusable:focus-visible {\n outline: 2px solid var(--w-s-color-border-focus);\n outline-offset: var(--w-outline-offset, 1px)\n }\n\n .focusable:not(:focus-visible) {\n outline: none\n }\n\n .peer:focus ~ .peer-focus\\\\:focusable, .peer:focus-visible ~ .peer-focus\\\\:focusable {\n outline: 2px solid var(--w-s-color-border-focus);\n outline-offset: var(--w-outline-offset, 1px)\n }\n\n .peer:not(:focus-visible) ~ .peer-focus\\\\:focusable {\n outline: none\n }\n\n .focusable-inset {\n --w-outline-offset: -3px\n }\n\n .gap-12 {\n gap: 1.2rem\n }\n\n .gap-8 {\n gap: .8rem\n }\n\n .gap-x-16 {\n column-gap: 1.6rem\n }\n\n .gap-y-16 {\n row-gap: 1.6rem\n }\n\n .row-span-2 {\n grid-row: span 2/span 2\n }\n\n .col-span-2 {\n grid-column: span 2/span 2\n }\n\n .col-span-3 {\n grid-column: span 3/span 3\n }\n\n .row-start-1 {\n grid-row-start: 1\n }\n\n .row-start-2 {\n grid-row-start: 2\n }\n\n .col-start-2 {\n grid-column-start: 2\n }\n\n .auto-rows-auto {\n grid-auto-rows: auto\n }\n\n .grid-flow-col {\n grid-auto-flow: column\n }\n\n .grid-rows-\\\\[20px_auto\\\\] {\n grid-template-rows:20px auto\n }\n\n .grid-rows-\\\\[auto_20px\\\\] {\n grid-template-rows:auto 20px\n }\n\n .grid-cols-\\\\[1fr_20px_1fr\\\\] {\n grid-template-columns:1fr 20px 1fr\n }\n\n .grid-cols-\\\\[1fr_20px\\\\] {\n grid-template-columns:1fr 20px\n }\n\n .grid-cols-\\\\[20px_1fr\\\\] {\n grid-template-columns:20px 1fr\n }\n\n .grid-cols-\\\\[auto_1fr_auto\\\\] {\n grid-template-columns:auto 1fr auto\n }\n\n .grid-cols-1 {\n grid-template-columns:repeat(1, minmax(0, 1fr))\n }\n\n .grid-cols-2 {\n grid-template-columns:repeat(2, minmax(0, 1fr))\n }\n\n .grid-cols-3 {\n grid-template-columns:repeat(3, minmax(0, 1fr))\n }\n\n .grid-cols-4 {\n grid-template-columns:repeat(4, minmax(0, 1fr))\n }\n\n .grid-cols-5 {\n grid-template-columns:repeat(5, minmax(0, 1fr))\n }\n\n .grid-cols-6 {\n grid-template-columns:repeat(6, minmax(0, 1fr))\n }\n\n .grid-cols-7 {\n grid-template-columns:repeat(7, minmax(0, 1fr))\n }\n\n .grid-cols-8 {\n grid-template-columns:repeat(8, minmax(0, 1fr))\n }\n\n .grid-cols-9 {\n grid-template-columns:repeat(9, minmax(0, 1fr))\n }\n\n .overflow-hidden {\n overflow: hidden\n }\n\n .overflow-x-hidden {\n overflow-x: hidden\n }\n\n .overflow-y-auto {\n overflow-y: auto\n }\n\n .list-none {\n list-style-type: none\n }\n\n .outline-\\\\[--w-s-color-border-negative\\\\]\\\\! {\n outline-color: var(--w-s-color-border-negative) !important\n }\n\n .outline-none {\n outline: 2px solid transparent;\n outline-offset: 2px\n }\n\n .focus\\\\:outline-none:focus {\n outline: 2px solid transparent;\n outline-offset: 2px\n }\n\n .items-start {\n align-items: flex-start\n }\n\n .items-end {\n align-items: flex-end\n }\n\n .items-center {\n align-items: center\n }\n\n .self-center {\n align-self: center\n }\n\n .inset-0 {\n top: 0rem;\n right: 0rem;\n bottom: 0rem;\n left: 0rem\n }\n\n .-bottom-0 {\n bottom: -0rem\n }\n\n .bottom-0 {\n bottom: 0rem\n }\n\n .bottom-10 {\n bottom: 1rem\n }\n\n .bottom-16 {\n bottom: 1.6rem\n }\n\n .left-0 {\n left: 0rem\n }\n\n .left-4 {\n left: .4rem\n }\n\n .right-0 {\n right: 0rem\n }\n\n .right-8 {\n right: .8rem\n }\n\n .top-\\\\[1\\\\.92rem\\\\] {\n top: 1.92rem\n }\n\n .top-0 {\n top: 0rem\n }\n\n .top-20 {\n top: 2rem\n }\n\n .top-4 {\n top: .4rem\n }\n\n .top-8 {\n top: .8rem\n }\n\n .before\\\\:bottom-0:before {\n bottom: 0rem\n }\n\n .before\\\\:left-0:before {\n left: 0rem\n }\n\n .before\\\\:right-0:before {\n right: 0rem\n }\n\n .before\\\\:top-2:before {\n top: .2rem\n }\n\n .-bottom-\\\\[8px\\\\] {\n bottom: -8px\n }\n\n .-left-\\\\[8px\\\\] {\n left: -8px\n }\n\n .-right-\\\\[8px\\\\] {\n right: -8px\n }\n\n .-top-\\\\[8px\\\\] {\n top: -8px\n }\n\n .top-\\\\[19px\\\\] {\n top: 19px\n }\n\n .top-\\\\[30\\\\%\\\\] {\n top: 30%\n }\n\n .justify-end {\n justify-content: flex-end\n }\n\n .justify-center {\n justify-content: center\n }\n\n .justify-between {\n justify-content: space-between\n }\n\n .justify-items-center {\n justify-items: center\n }\n\n .justify-self-start {\n justify-self: start\n }\n\n .justify-self-end {\n justify-self: end\n }\n\n .justify-self-center {\n justify-self: center\n }\n\n .absolute {\n position: absolute\n }\n\n .fixed {\n position: fixed\n }\n\n .relative {\n position: relative\n }\n\n .open\\\\:fixed[open] {\n position: fixed\n }\n\n .before\\\\:absolute:before {\n position: absolute\n }\n\n .z-10, .peer:checked ~ .peer-checked\\\\:z-10 {\n z-index: 10\n }\n\n .z-30 {\n z-index: 30\n }\n\n .z-50 {\n z-index: 50\n }\n\n .hover\\\\:z-30:hover {\n z-index: 30\n }\n\n .\\\\!s-bg-selected {\n background-color: var(--w-s-color-background-selected) !important\n }\n\n .s-bg {\n background-color: var(--w-s-color-background)\n }\n\n .s-bg-disabled {\n background-color: var(--w-s-color-background-disabled)\n }\n\n .s-bg-disabled-subtle {\n background-color: var(--w-s-color-background-disabled-subtle)\n }\n\n .s-bg-info-subtle {\n background-color: var(--w-s-color-background-info-subtle)\n }\n\n .s-bg-inverted {\n background-color: var(--w-s-color-background-inverted)\n }\n\n .s-bg-negative {\n background-color: var(--w-s-color-background-negative)\n }\n\n .s-bg-negative-subtle {\n background-color: var(--w-s-color-background-negative-subtle)\n }\n\n .s-bg-positive-subtle {\n background-color: var(--w-s-color-background-positive-subtle)\n }\n\n .s-bg-primary, .peer:checked ~ .peer-checked\\\\:s-bg-primary {\n background-color: var(--w-s-color-background-primary)\n }\n\n .s-bg-selected {\n background-color: var(--w-s-color-background-selected)\n }\n\n .s-bg-subtle {\n background-color: var(--w-s-color-background-subtle)\n }\n\n .s-bg-warning-subtle {\n background-color: var(--w-s-color-background-warning-subtle)\n }\n\n .peer:checked:hover ~ .peer-checked\\\\:peer-hover\\\\:before\\\\:s-bg-negative-hover:before {\n background-color: var(--w-s-color-background-negative-hover)\n }\n\n .peer:checked:hover ~ .peer-checked\\\\:peer-hover\\\\:before\\\\:s-bg-primary-hover:before {\n background-color: var(--w-s-color-background-primary-hover)\n }\n\n .peer:checked ~ .peer-checked\\\\:before\\\\:s-bg-disabled:before {\n background-color: var(--w-s-color-background-disabled)\n }\n\n .peer:checked ~ .peer-checked\\\\:before\\\\:s-bg-negative:before {\n background-color: var(--w-s-color-background-negative)\n }\n\n .peer:checked ~ .peer-checked\\\\:before\\\\:s-bg-primary:before {\n background-color: var(--w-s-color-background-primary)\n }\n\n .peer:indeterminate ~ .peer-indeterminate\\\\:before\\\\:s-bg-disabled:before {\n background-color: var(--w-s-color-background-disabled)\n }\n\n .peer:indeterminate ~ .peer-indeterminate\\\\:before\\\\:s-bg-negative:before {\n background-color: var(--w-s-color-background-negative)\n }\n\n .peer:indeterminate ~ .peer-indeterminate\\\\:before\\\\:s-bg-primary:before {\n background-color: var(--w-s-color-background-primary)\n }\n\n .peer:indeterminate ~ .peer-indeterminate\\\\:hover\\\\:before\\\\:s-bg-negative-hover:hover:before {\n background-color: var(--w-s-color-background-negative-hover)\n }\n\n .peer:indeterminate ~ .peer-indeterminate\\\\:hover\\\\:before\\\\:s-bg-primary-hover:hover:before {\n background-color: var(--w-s-color-background-primary-hover)\n }\n\n .\\\\!hover\\\\:s-bg-selected-hover:hover {\n background-color: var(--w-s-color-background-selected-hover) !important\n }\n\n .group:hover .group-hover\\\\:s-bg-primary-hover {\n background-color: var(--w-s-color-background-primary-hover)\n }\n\n .hover\\\\:before\\\\:s-bg-hover:hover:before {\n background-color: var(--w-s-color-background-hover)\n }\n\n .hover\\\\:before\\\\:s-bg-negative-subtle-hover:hover:before {\n background-color: var(--w-s-color-background-negative-subtle-hover)\n }\n\n .hover\\\\:s-bg-hover:hover {\n background-color: var(--w-s-color-background-hover)\n }\n\n .hover\\\\:s-bg-negative-hover:hover {\n background-color: var(--w-s-color-background-negative-hover)\n }\n\n .hover\\\\:s-bg-negative-subtle-hover:hover {\n background-color: var(--w-s-color-background-negative-subtle-hover)\n }\n\n .hover\\\\:s-bg-primary-hover:hover {\n background-color: var(--w-s-color-background-primary-hover)\n }\n\n .hover\\\\:s-bg-selected-hover:hover {\n background-color: var(--w-s-color-background-selected-hover)\n }\n\n .peer:hover:not(:checked) ~ .peer-hover\\\\:peer-not-checked\\\\:s-bg-hover {\n background-color: var(--w-s-color-background-hover)\n }\n\n .peer:hover ~ .peer-hover\\\\:before\\\\:s-bg-hover:before {\n background-color: var(--w-s-color-background-hover)\n }\n\n .peer:hover ~ .peer-hover\\\\:before\\\\:s-bg-negative-subtle:before {\n background-color: var(--w-s-color-background-negative-subtle)\n }\n\n .focus\\\\:s-bg-primary-hover:focus {\n background-color: var(--w-s-color-background-primary-hover)\n }\n\n .\\\\!active\\\\:s-bg-selected-active:active {\n background-color: var(--w-s-color-background-selected-active) !important\n }\n\n .active\\\\:s-bg-active:active {\n background-color: var(--w-s-color-background-active)\n }\n\n .active\\\\:s-bg-negative-active:active {\n background-color: var(--w-s-color-background-negative-active)\n }\n\n .active\\\\:s-bg-negative-subtle-active:active {\n background-color: var(--w-s-color-background-negative-subtle-active)\n }\n\n .active\\\\:s-bg-primary-active:active {\n background-color: var(--w-s-color-background-primary-active)\n }\n\n .active\\\\:s-bg-selected-active:active {\n background-color: var(--w-s-color-background-selected-active)\n }\n\n .before\\\\:s-bg-disabled-subtle:before {\n background-color: var(--w-s-color-background-disabled-subtle)\n }\n\n .before\\\\:s-bg:before {\n background-color: var(--w-s-color-background)\n }\n\n .s-text {\n color: var(--w-s-color-text)\n }\n\n .s-text-disabled {\n color: var(--w-s-color-text-disabled)\n }\n\n .s-text-inverted, .peer:checked ~ .peer-checked\\\\:s-text-inverted {\n color: var(--w-s-color-text-inverted)\n }\n\n .s-text-inverted-static {\n color: var(--w-s-color-text-inverted-static)\n }\n\n .s-text-link {\n color: var(--w-s-color-text-link)\n }\n\n .s-text-negative {\n color: var(--w-s-color-text-negative)\n }\n\n .s-text-subtle {\n color: var(--w-s-color-text-subtle)\n }\n\n .hover\\\\:s-text-link:hover {\n color: var(--w-s-color-text-link)\n }\n\n .active\\\\:s-text:active {\n color: var(--w-s-color-text)\n }\n\n .placeholder\\\\:s-text-placeholder::placeholder {\n color: var(--w-s-color-text-placeholder)\n }\n\n .s-icon {\n color: var(--w-s-color-icon)\n }\n\n .s-icon-info {\n color: var(--w-s-color-icon-info)\n }\n\n .s-icon-inverted {\n color: var(--w-s-color-icon-inverted)\n }\n\n .s-icon-negative {\n color: var(--w-s-color-icon-negative)\n }\n\n .s-icon-positive {\n color: var(--w-s-color-icon-positive)\n }\n\n .s-icon-warning {\n color: var(--w-s-color-icon-warning)\n }\n\n .hover\\\\:s-icon-hover:hover {\n color: var(--w-s-color-icon-hover)\n }\n\n .active\\\\:s-icon-active:active {\n color: var(--w-s-color-icon-active)\n }\n\n .before\\\\:s-icon-inverted:before {\n color: var(--w-s-color-icon-inverted)\n }\n\n .s-border {\n border-color: var(--w-s-color-border)\n }\n\n .s-border-disabled {\n border-color: var(--w-s-color-border-disabled)\n }\n\n .s-border-info-subtle {\n border-color: var(--w-s-color-border-info-subtle)\n }\n\n .s-border-l-info {\n border-left-color: var(--w-s-color-border-info)\n }\n\n .s-border-l-negative {\n border-left-color: var(--w-s-color-border-negative)\n }\n\n .s-border-l-positive {\n border-left-color: var(--w-s-color-border-positive)\n }\n\n .s-border-l-warning {\n border-left-color: var(--w-s-color-border-warning)\n }\n\n .s-border-negative {\n border-color: var(--w-s-color-border-negative)\n }\n\n .s-border-negative-subtle {\n border-color: var(--w-s-color-border-negative-subtle)\n }\n\n .s-border-positive-subtle {\n border-color: var(--w-s-color-border-positive-subtle)\n }\n\n .s-border-primary, .peer:checked ~ .peer-checked\\\\:s-border-primary {\n border-color: var(--w-s-color-border-primary)\n }\n\n .s-border-selected {\n border-color: var(--w-s-color-border-selected)\n }\n\n .s-border-warning-subtle {\n border-color: var(--w-s-color-border-warning-subtle)\n }\n\n .peer:checked:hover ~ .peer-checked\\\\:peer-hover\\\\:before\\\\:s-border-negative-hover:before {\n border-color: var(--w-s-color-border-negative-hover)\n }\n\n .peer:checked:hover ~ .peer-checked\\\\:peer-hover\\\\:before\\\\:s-border-primary-hover:before {\n border-color: var(--w-s-color-border-primary-hover)\n }\n\n .peer:checked:hover ~ .peer-checked\\\\:peer-hover\\\\:before\\\\:s-border-selected-hover:before {\n border-color: var(--w-s-color-border-selected-hover)\n }\n\n .peer:checked ~ .peer-checked\\\\:before\\\\:s-border-disabled:before {\n border-color: var(--w-s-color-border-disabled)\n }\n\n .peer:checked ~ .peer-checked\\\\:before\\\\:s-border-negative:before {\n border-color: var(--w-s-color-border-negative)\n }\n\n .peer:checked ~ .peer-checked\\\\:before\\\\:s-border-primary:before {\n border-color: var(--w-s-color-border-primary)\n }\n\n .peer:checked ~ .peer-checked\\\\:before\\\\:s-border-selected:before {\n border-color: var(--w-s-color-border-selected)\n }\n\n .peer:indeterminate ~ .peer-indeterminate\\\\:before\\\\:s-border-disabled:before {\n border-color: var(--w-s-color-border-disabled)\n }\n\n .peer:indeterminate ~ .peer-indeterminate\\\\:before\\\\:s-border-negative:before {\n border-color: var(--w-s-color-border-negative)\n }\n\n .peer:indeterminate ~ .peer-indeterminate\\\\:before\\\\:s-border-primary:before {\n border-color: var(--w-s-color-border-primary)\n }\n\n .peer:indeterminate ~ .peer-indeterminate\\\\:hover\\\\:before\\\\:s-border-negative-hover:hover:before {\n border-color: var(--w-s-color-border-negative-hover)\n }\n\n .peer:indeterminate ~ .peer-indeterminate\\\\:hover\\\\:before\\\\:s-border-primary-hover:hover:before {\n border-color: var(--w-s-color-border-primary-hover)\n }\n\n .group:hover .group-hover\\\\:s-border-selected-hover {\n border-color: var(--w-s-color-border-selected-hover)\n }\n\n .hover\\\\:before\\\\:s-border-negative-hover:hover:before {\n border-color: var(--w-s-color-border-negative-hover)\n }\n\n .hover\\\\:before\\\\:s-border-primary:hover:before {\n border-color: var(--w-s-color-border-primary)\n }\n\n .hover\\\\:s-border-disabled:hover {\n border-color: var(--w-s-color-border-disabled)\n }\n\n .hover\\\\:s-border-hover:hover {\n border-color: var(--w-s-color-border-hover)\n }\n\n .hover\\\\:s-border-negative-hover:hover {\n border-color: var(--w-s-color-border-negative-hover)\n }\n\n .hover\\\\:s-border-primary-hover:hover {\n border-color: var(--w-s-color-border-primary-hover)\n }\n\n .hover\\\\:s-border-primary:hover {\n border-color: var(--w-s-color-border-primary)\n }\n\n .hover\\\\:s-border-selected-hover:hover {\n border-color: var(--w-s-color-border-selected-hover)\n }\n\n .peer:hover ~ .peer-hover\\\\:before\\\\:s-border-negative-hover:before {\n border-color: var(--w-s-color-border-negative-hover)\n }\n\n .peer:hover ~ .peer-hover\\\\:before\\\\:s-border-primary:before {\n border-color: var(--w-s-color-border-primary)\n }\n\n .focus\\\\:s-border-primary-hover:focus {\n border-color: var(--w-s-color-border-primary-hover)\n }\n\n .active\\\\:s-border-active:active {\n border-color: var(--w-s-color-border-active)\n }\n\n .active\\\\:s-border-disabled:active {\n border-color: var(--w-s-color-border-disabled)\n }\n\n .active\\\\:s-border-primary-active:active {\n border-color: var(--w-s-color-border-primary-active)\n }\n\n .active\\\\:s-border-selected-active:active {\n border-color: var(--w-s-color-border-selected-active)\n }\n\n .active\\\\:s-border-selected:active {\n border-color: var(--w-s-color-border-selected)\n }\n\n .group:active .group-active\\\\:s-border-active {\n border-color: var(--w-s-color-border-active)\n }\n\n .group:active .group-active\\\\:s-border-selected-active {\n border-color: var(--w-s-color-border-selected-active)\n }\n\n .before\\\\:s-border-disabled:before {\n border-color: var(--w-s-color-border-disabled)\n }\n\n .before\\\\:s-border-negative:before {\n border-color: var(--w-s-color-border-negative)\n }\n\n .s-surface-sunken {\n background-color: var(--w-s-color-surface-sunken)\n }\n\n .s-surface-elevated-200 {\n background-color: var(--w-s-color-surface-elevated-200);\n box-shadow: var(--w-s-shadow-surface-elevated-200)\n }\n\n .hover\\\\:s-surface-elevated-200-hover:hover {\n background-color: var(--w-s-color-surface-elevated-200-hover);\n box-shadow: var(--w-s-shadow-surface-elevated-200-hover)\n }\n\n .active\\\\:s-surface-elevated-200-active:active {\n background-color: var(--w-s-color-surface-elevated-200-active);\n box-shadow: var(--w-s-shadow-surface-elevated-200-active)\n }\n\n .drop-shadow-m {\n filter: drop-shadow(rgba(64, 64, 64, .24) 0 3px 8px) drop-shadow(rgba(64, 64, 64, .16) 0 3px 6px)\n }\n\n .shadow-m {\n box-shadow: var(--w-shadow-m)\n }\n\n .shadow-s {\n box-shadow: var(--w-shadow-s)\n }\n\n .shadow-\\\\[--w-shadow-slider\\\\] {\n box-shadow: var(--w-shadow-slider)\n }\n\n .hover\\\\:shadow-\\\\[--w-shadow-slider-handle-hover\\\\]:hover {\n box-shadow: var(--w-shadow-slider-handle-hover)\n }\n\n .focus\\\\:shadow-\\\\[--w-shadow-slider-handle-hover\\\\]:focus {\n box-shadow: var(--w-shadow-slider-handle-hover)\n }\n\n .active\\\\:shadow-\\\\[--w-shadow-slider-handle-active\\\\]:active {\n box-shadow: var(--w-shadow-slider-handle-active)\n }\n\n .h-0 {\n height: 0rem\n }\n\n .h-16 {\n height: 1.6rem\n }\n\n .h-2 {\n height: .2rem\n }\n\n .h-20 {\n height: 2rem\n }\n\n .h-24 {\n height: 2.4rem\n }\n\n .h-4 {\n height: .4rem\n }\n\n .h-44 {\n height: 4.4rem\n }\n\n .h-6 {\n height: .6rem\n }\n\n .h-8 {\n height: .8rem\n }\n\n .h-full {\n height: 100%\n }\n\n .h-unset {\n height: unset\n }\n\n .max-h-unset {\n max-height: unset\n }\n\n .max-w-full {\n max-width: 100%\n }\n\n .max-w-max {\n max-width: max-content\n }\n\n .max-w-unset {\n max-width: unset\n }\n\n .min-h-32 {\n min-height: 3.2rem\n }\n\n .min-h-40 {\n min-height: 4rem\n }\n\n .min-w-16 {\n min-width: 1.6rem\n }\n\n .min-w-32 {\n min-width: 3.2rem\n }\n\n .w-16 {\n width: 1.6rem\n }\n\n .w-2 {\n width: .2rem\n }\n\n .w-20 {\n width: 2rem\n }\n\n .w-24 {\n width: 2.4rem\n }\n\n .w-32 {\n width: 3.2rem\n }\n\n .w-40 {\n width: 4rem\n }\n\n .w-44 {\n width: 4.4rem\n }\n\n .w-8 {\n width: .8rem\n }\n\n .w-full {\n width: 100%\n }\n\n .w-max {\n width: max-content\n }\n\n .w-unset {\n width: unset\n }\n\n .before\\\\:h-20:before {\n height: 2rem\n }\n\n .before\\\\:h-full:before {\n height: 100%\n }\n\n .before\\\\:w-20:before {\n width: 2rem\n }\n\n .before\\\\:w-32:before {\n width: 3.2rem\n }\n\n .h-\\\\[--w-modal-height\\\\] {\n height: var(--w-modal-height)\n }\n\n .h-\\\\[14px\\\\] {\n height: 14px\n }\n\n .h-\\\\[16px\\\\] {\n height: 16px\n }\n\n .max-h-\\\\[--w-modal-max-height\\\\] {\n max-height: var(--w-modal-max-height)\n }\n\n .min-h-\\\\[--w-modal-min-height\\\\] {\n min-height: var(--w-modal-min-height)\n }\n\n .min-h-\\\\[32px\\\\] {\n min-height: 32px\n }\n\n .min-h-\\\\[40px\\\\] {\n min-height: 40px\n }\n\n .min-h-\\\\[42\\\\] {\n min-height: 4.2rem\n }\n\n .min-h-\\\\[44px\\\\] {\n min-height: 44px\n }\n\n .min-w-\\\\[32px\\\\] {\n min-width: 32px\n }\n\n .min-w-\\\\[40px\\\\] {\n min-width: 40px\n }\n\n .min-w-\\\\[44px\\\\] {\n min-width: 44px\n }\n\n .w-\\\\[--w-modal-width\\\\] {\n width: var(--w-modal-width)\n }\n\n .w-\\\\[14px\\\\] {\n width: 14px\n }\n\n .w-\\\\[16px\\\\] {\n width: 16px\n }\n\n .space-x-8 > :not([hidden]) ~ :not([hidden]) {\n --w-space-x-reverse: 0;\n margin-left: calc(.8rem * calc(1 - var(--w-space-x-reverse)));\n margin-right: calc(.8rem * var(--w-space-x-reverse))\n }\n\n .space-y-16 > :not([hidden]) ~ :not([hidden]) {\n --w-space-y-reverse: 0;\n margin-top: calc(1.6rem * calc(1 - var(--w-space-y-reverse)));\n margin-bottom: calc(1.6rem * var(--w-space-y-reverse))\n }\n\n .m-0 {\n margin: 0rem\n }\n\n .m-auto {\n margin: auto\n }\n\n .-mx-16 {\n margin-left: -1.6rem;\n margin-right: -1.6rem\n }\n\n .mx-0 {\n margin-left: 0rem;\n margin-right: 0rem\n }\n\n .mx-8 {\n margin-left: .8rem;\n margin-right: .8rem\n }\n\n .mx-auto {\n margin-left: auto;\n margin-right: auto\n }\n\n .-mb-1 {\n margin-bottom: -.1rem\n }\n\n .-ml-8 {\n margin-left: -.8rem\n }\n\n .-mr-1 {\n margin-right: -.1rem\n }\n\n .-mr-8 {\n margin-right: -.8rem\n }\n\n .-mt-2 {\n margin-top: -.2rem\n }\n\n .-mt-4 {\n margin-top: -.4rem\n }\n\n .last-child\\\\:mb-0 > :last-child, .mb-0 {\n margin-bottom: 0rem\n }\n\n .mb-32 {\n margin-bottom: 3.2rem\n }\n\n .ml-8 {\n margin-left: .8rem\n }\n\n .ml-auto {\n margin-left: auto\n }\n\n .mr-8 {\n margin-right: .8rem\n }\n\n .mt-16 {\n margin-top: 1.6rem\n }\n\n .mt-4 {\n margin-top: .4rem\n }\n\n .group:not(:first-child) .group-not-first\\\\:-ml-2 {\n margin-left: -.2rem\n }\n\n .last\\\\:mb-0:last-child {\n margin-bottom: 0rem\n }\n\n .last\\\\:mr-0:last-child {\n margin-right: 0rem\n }\n\n .m-\\\\[8px\\\\] {\n margin: 8px\n }\n\n .p-0 {\n padding: 0rem\n }\n\n .p-16 {\n padding: 1.6rem\n }\n\n .p-4 {\n padding: .4rem\n }\n\n .p-8 {\n padding: .8rem\n }\n\n .px-0 {\n padding-left: 0rem;\n padding-right: 0rem\n }\n\n .px-1 {\n padding-left: .1rem;\n padding-right: .1rem\n }\n\n .px-12 {\n padding-left: 1.2rem;\n padding-right: 1.2rem\n }\n\n .px-14 {\n padding-left: 1.4rem;\n padding-right: 1.4rem\n }\n\n .px-16 {\n padding-left: 1.6rem;\n padding-right: 1.6rem\n }\n\n .px-8 {\n padding-left: .8rem;\n padding-right: .8rem\n }\n\n .py-0 {\n padding-top: 0rem;\n padding-bottom: 0rem\n }\n\n .py-1 {\n padding-top: .1rem;\n padding-bottom: .1rem\n }\n\n .py-10 {\n padding-top: 1rem;\n padding-bottom: 1rem\n }\n\n .py-12 {\n padding-top: 1.2rem;\n padding-bottom: 1.2rem\n }\n\n .py-2 {\n padding-top: .2rem;\n padding-bottom: .2rem\n }\n\n .py-4 {\n padding-top: .4rem;\n padding-bottom: .4rem\n }\n\n .py-6 {\n padding-top: .6rem;\n padding-bottom: .6rem\n }\n\n .py-8 {\n padding-top: .8rem;\n padding-bottom: .8rem\n }\n\n .pb-0 {\n padding-bottom: 0rem\n }\n\n .pb-32 {\n padding-bottom: 3.2rem\n }\n\n .pb-4 {\n padding-bottom: .4rem\n }\n\n .pb-8 {\n padding-bottom: .8rem\n }\n\n .pl-0 {\n padding-left: 0rem\n }\n\n .pl-1 {\n padding-left: .1rem\n }\n\n .pl-12 {\n padding-left: 1.2rem\n }\n\n .pl-28 {\n padding-left: 2.8rem\n }\n\n .pl-4 {\n padding-left: .4rem\n }\n\n .pl-8 {\n padding-left: .8rem\n }\n\n .pr-12 {\n padding-right: 1.2rem\n }\n\n .pr-14 {\n padding-right: 1.4rem\n }\n\n .pr-2 {\n padding-right: .2rem\n }\n\n .pr-32 {\n padding-right: 3.2rem\n }\n\n .pr-40 {\n padding-right: 4rem\n }\n\n .pt-0 {\n padding-top: 0rem\n }\n\n .pt-1 {\n padding-top: .1rem\n }\n\n .pt-16 {\n padding-top: 1.6rem\n }\n\n .pt-24 {\n padding-top: 2.4rem\n }\n\n .pt-8 {\n padding-top: .8rem\n }\n\n .group\\\\/step:last-child .group-last\\\\/step\\\\:last\\\\:pb-0:last-child {\n padding-bottom: 0rem\n }\n\n .last\\\\:pb-1:last-child {\n padding-bottom: .1rem\n }\n\n .last\\\\:pr-1:last-child {\n padding-right: .1rem\n }\n\n .p-\\\\[8px\\\\] {\n padding: 8px\n }\n\n .px-\\\\[15px\\\\] {\n padding-left: 15px;\n padding-right: 15px\n }\n\n .px-\\\\[8px\\\\] {\n padding-left: 8px;\n padding-right: 8px\n }\n\n .py-\\\\[11px\\\\] {\n padding-top: 11px;\n padding-bottom: 11px\n }\n\n .py-\\\\[5px\\\\] {\n padding-top: 5px;\n padding-bottom: 5px\n }\n\n .py-\\\\[7px\\\\] {\n padding-top: 7px;\n padding-bottom: 7px\n }\n\n .pl-\\\\[var\\\\(--w-prefix-width\\\\,_40px\\\\)\\\\] {\n padding-left: var(--w-prefix-width, 40px)\n }\n\n .invisible {\n visibility: hidden\n }\n\n .backface-hidden {\n backface-visibility: hidden\n }\n\n .break-words {\n overflow-wrap: break-word\n }\n\n .before\\\\:content-\\\\[\\\\\"\u00E2\u20AC\u201C\\\\\"\\\\]:before {\n content: \"\u00E2\u20AC\u201C\"\n }\n\n .before\\\\:content-\\\\[\\\\\"\\\\\"\\\\]:before {\n content: \"\"\n }\n\n .cursor-default {\n cursor: default\n }\n\n .cursor-pointer {\n cursor: pointer\n }\n\n .antialiased {\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n font-smoothing: grayscale\n }\n\n .font-bold {\n font-weight: 700\n }\n\n .before\\\\:font-bold:before {\n font-weight: 700\n }\n\n .font-normal {\n font-weight: 400\n }\n\n .pointer-events-auto {\n pointer-events: auto\n }\n\n .pointer-events-none {\n pointer-events: none\n }\n\n .before\\\\:pointer-events-none:before {\n pointer-events: none\n }\n\n .pb-safe-\\\\[32\\\\] {\n padding-bottom: calc(32px + env(safe-area-inset-bottom, 0px))\n }\n\n .sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0\n }\n\n .touch-pan-y {\n touch-action: pan-y\n }\n\n .select-none {\n -webkit-user-select: none;\n user-select: none\n }\n\n .translate-x-20 {\n --w-translate-x: 2rem;\n transform: translate(var(--w-translate-x)) translateY(var(--w-translate-y)) translateZ(var(--w-translate-z)) rotate(var(--w-rotate)) rotateX(var(--w-rotate-x)) rotateY(var(--w-rotate-y)) rotate(var(--w-rotate-z)) skew(var(--w-skew-x)) skewY(var(--w-skew-y)) scaleX(var(--w-scale-x)) scaleY(var(--w-scale-y)) scaleZ(var(--w-scale-z))\n }\n\n .translate-z-0 {\n --w-translate-z: 0rem;\n transform: translate(var(--w-translate-x)) translateY(var(--w-translate-y)) translateZ(var(--w-translate-z)) rotate(var(--w-rotate)) rotateX(var(--w-rotate-x)) rotateY(var(--w-rotate-y)) rotate(var(--w-rotate-z)) skew(var(--w-skew-x)) skewY(var(--w-skew-y)) scaleX(var(--w-scale-x)) scaleY(var(--w-scale-y)) scaleZ(var(--w-scale-z))\n }\n\n .-rotate-180, .part-\\\\[w-icon-chevron-down-16-part\\\\]\\\\:-rotate-180::part(w-icon-chevron-down-16-part) {\n --w-rotate-x: 0;\n --w-rotate-y: 0;\n --w-rotate-z: 0;\n --w-rotate: -180deg;\n transform: translate(var(--w-translate-x)) translateY(var(--w-translate-y)) translateZ(var(--w-translate-z)) rotate(var(--w-rotate)) rotateX(var(--w-rotate-x)) rotateY(var(--w-rotate-y)) rotate(var(--w-rotate-z)) skew(var(--w-skew-x)) skewY(var(--w-skew-y)) scaleX(var(--w-scale-x)) scaleY(var(--w-scale-y)) scaleZ(var(--w-scale-z))\n }\n\n .part-\\\\[w-icon-chevron-up-16-part\\\\]\\\\:rotate-180::part(w-icon-chevron-up-16-part), .rotate-180 {\n --w-rotate-x: 0;\n --w-rotate-y: 0;\n --w-rotate-z: 0;\n --w-rotate: 180deg;\n transform: translate(var(--w-translate-x)) translateY(var(--w-translate-y)) translateZ(var(--w-translate-z)) rotate(var(--w-rotate)) rotateX(var(--w-rotate-x)) rotateY(var(--w-rotate-y)) rotate(var(--w-rotate-z)) skew(var(--w-skew-x)) skewY(var(--w-skew-y)) scaleX(var(--w-scale-x)) scaleY(var(--w-scale-y)) scaleZ(var(--w-scale-z))\n }\n\n .rotate-90 {\n --w-rotate-x: 0;\n --w-rotate-y: 0;\n --w-rotate-z: 0;\n --w-rotate: 90deg;\n transform: translate(var(--w-translate-x)) translateY(var(--w-translate-y)) translateZ(var(--w-translate-z)) rotate(var(--w-rotate)) rotateX(var(--w-rotate-x)) rotateY(var(--w-rotate-y)) rotate(var(--w-rotate-z)) skew(var(--w-skew-x)) skewY(var(--w-skew-y)) scaleX(var(--w-scale-x)) scaleY(var(--w-scale-y)) scaleZ(var(--w-scale-z))\n }\n\n .part-\\\\[w-icon-chevron-down-16-part\\\\]\\\\:transform::part(w-icon-chevron-down-16-part), .part-\\\\[w-icon-chevron-up-16-part\\\\]\\\\:transform::part(w-icon-chevron-up-16-part), .transform {\n transform: translate(var(--w-translate-x)) translateY(var(--w-translate-y)) translateZ(var(--w-translate-z)) rotate(var(--w-rotate)) rotateX(var(--w-rotate-x)) rotateY(var(--w-rotate-y)) rotate(var(--w-rotate-z)) skew(var(--w-skew-x)) skewY(var(--w-skew-y)) scaleX(var(--w-scale-x)) scaleY(var(--w-scale-y)) scaleZ(var(--w-scale-z))\n }\n\n .part-\\\\[w-icon-chevron-down-16-part\\\\]\\\\:transform-gpu::part(w-icon-chevron-down-16-part), .part-\\\\[w-icon-chevron-up-16-part\\\\]\\\\:transform-gpu::part(w-icon-chevron-up-16-part), .transform-gpu {\n transform: translate3d(var(--w-translate-x), var(--w-translate-y), var(--w-translate-z)) rotate(var(--w-rotate)) rotateX(var(--w-rotate-x)) rotateY(var(--w-rotate-y)) rotate(var(--w-rotate-z)) skew(var(--w-skew-x)) skewY(var(--w-skew-y)) scaleX(var(--w-scale-x)) scaleY(var(--w-scale-y)) scaleZ(var(--w-scale-z))\n }\n\n .part-\\\\[w-icon-chevron-down-16-part\\\\]\\\\:transition-transform::part(w-icon-chevron-down-16-part), .part-\\\\[w-icon-chevron-up-16-part\\\\]\\\\:transition-transform::part(w-icon-chevron-up-16-part), .transition-transform {\n transition-property: transform;\n transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n transition-duration: .15s\n }\n\n .transition-300 {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;\n transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n transition-duration: .3s\n }\n\n .transition-all {\n transition-property: all;\n transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n transition-duration: .15s\n }\n\n .transition-colors {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;\n transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n transition-duration: .15s\n }\n\n .transition-shadow {\n transition-property: box-shadow;\n transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n transition-duration: .15s\n }\n\n .before\\\\:transition-all:before {\n transition-property: all;\n transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n transition-duration: .15s\n }\n\n .duration-300 {\n transition-duration: .3s\n }\n\n .ease-in-out, .part-\\\\[w-icon-chevron-down-16-part\\\\]\\\\:ease-in-out::part(w-icon-chevron-down-16-part), .part-\\\\[w-icon-chevron-up-16-part\\\\]\\\\:ease-in-out::part(w-icon-chevron-up-16-part) {\n transition-timing-function: cubic-bezier(.4, 0, .2, 1)\n }\n\n .text-m {\n font-size: var(--w-font-size-m);\n line-height: var(--w-line-height-m)\n }\n\n .text-s {\n font-size: var(--w-font-size-s);\n line-height: var(--w-line-height-s)\n }\n\n .text-xs {\n font-size: var(--w-font-size-xs);\n line-height: var(--w-line-height-xs)\n }\n\n .leading-m {\n line-height: var(--w-line-height-m)\n }\n\n .before\\\\:leading-xs:before {\n line-height: var(--w-line-height-xs)\n }\n\n .leading-\\\\[24\\\\] {\n line-height: 2.4rem\n }\n\n @media (max-width: 479.9px) {\n .lt-sm\\\\:rounded-b-0 {\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0\n }\n }\n @media (min-width: 480px) {\n .sm\\\\:border-b-0 {\n border-bottom-width: 0\n }\n\n .sm\\\\:rounded-8 {\n border-radius: 8px\n }\n\n .sm\\\\:rounded-b-8 {\n border-bottom-left-radius: 8px;\n border-bottom-right-radius: 8px\n }\n\n .sm\\\\:gap-16 {\n gap: 1.6rem\n }\n\n .sm\\\\:place-content-center {\n place-content: center\n }\n\n .sm\\\\:place-items-center {\n place-items: center\n }\n\n .sm\\\\:h-24 {\n height: 2.4rem\n }\n\n .sm\\\\:min-h-48 {\n min-height: 4.8rem\n }\n\n .sm\\\\:w-24 {\n width: 2.4rem\n }\n\n .sm\\\\:min-h-\\\\[32px\\\\] {\n min-height: 32px\n }\n\n .sm\\\\:min-h-\\\\[44px\\\\] {\n min-height: 44px\n }\n\n .sm\\\\:min-h-\\\\[45\\\\] {\n min-height: 4.5rem\n }\n\n .sm\\\\:min-w-\\\\[32px\\\\] {\n min-width: 32px\n }\n\n .sm\\\\:min-w-\\\\[44px\\\\] {\n min-width: 44px\n }\n\n .sm\\\\:mx-0 {\n margin-left: 0rem;\n margin-right: 0rem\n }\n\n .sm\\\\:mx-16 {\n margin-left: 1.6rem;\n margin-right: 1.6rem\n }\n\n .sm\\\\:-ml-12 {\n margin-left: -1.2rem\n }\n\n .sm\\\\:-mr-12 {\n margin-right: -1.2rem\n }\n\n .sm\\\\:-mt-8 {\n margin-top: -.8rem\n }\n\n .sm\\\\:px-32 {\n padding-left: 3.2rem;\n padding-right: 3.2rem\n }\n\n .sm\\\\:py-0 {\n padding-top: 0rem;\n padding-bottom: 0rem\n }\n\n .sm\\\\:pb-32 {\n padding-bottom: 3.2rem\n }\n\n .sm\\\\:pt-24 {\n padding-top: 2.4rem\n }\n\n .sm\\\\:pt-32 {\n padding-top: 3.2rem\n }\n }\n @media (min-width: 768px) {\n .md\\\\:block {\n display: block\n }\n\n .md\\\\:hidden {\n display: none\n }\n }\n `;\n", "/*eslint-disable*/export const messages=JSON.parse(\"{\\\"datepicker.toggle.changeDate\\\":[\\\"Change date, \\\",[\\\"currentDate\\\"]],\\\"datepicker.toggle.chooseDate\\\":[\\\"Choose date\\\"],\\\"datepicker.calendar.roleDescription\\\":[\\\"Date picker\\\"],\\\"datepicker.calendar.nextMonth\\\":[\\\"Next month\\\"],\\\"datepicker.calendar.previousMonth\\\":[\\\"Previous month\\\"]}\");", "/*eslint-disable*/export const messages=JSON.parse(\"{\\\"datepicker.toggle.changeDate\\\":[\\\"Change date, \\\",[\\\"currentDate\\\"]],\\\"datepicker.toggle.chooseDate\\\":[\\\"Choose date\\\"],\\\"datepicker.calendar.roleDescription\\\":[\\\"Date picker\\\"],\\\"datepicker.calendar.nextMonth\\\":[\\\"Next month\\\"],\\\"datepicker.calendar.previousMonth\\\":[\\\"Previous month\\\"]}\");", "/*eslint-disable*/export const messages=JSON.parse(\"{\\\"datepicker.toggle.changeDate\\\":[\\\"Change date, \\\",[\\\"currentDate\\\"]],\\\"datepicker.toggle.chooseDate\\\":[\\\"Choose date\\\"],\\\"datepicker.calendar.roleDescription\\\":[\\\"Date picker\\\"],\\\"datepicker.calendar.nextMonth\\\":[\\\"Next month\\\"],\\\"datepicker.calendar.previousMonth\\\":[\\\"Previous month\\\"]}\");", "/*eslint-disable*/export const messages=JSON.parse(\"{\\\"datepicker.toggle.changeDate\\\":[\\\"Endre dato, \\\",[\\\"currentDate\\\"]],\\\"datepicker.toggle.chooseDate\\\":[\\\"Velg dato\\\"],\\\"datepicker.calendar.roleDescription\\\":[\\\"datovelger\\\"],\\\"datepicker.calendar.nextMonth\\\":[\\\"G\u00E5 til neste m\u00E5ned\\\"],\\\"datepicker.calendar.previousMonth\\\":[\\\"G\u00E5 til forrige m\u00E5ned\\\"]}\");", "/*eslint-disable*/export const messages=JSON.parse(\"{\\\"datepicker.toggle.changeDate\\\":[\\\"Change date, \\\",[\\\"currentDate\\\"]],\\\"datepicker.toggle.chooseDate\\\":[\\\"Choose date\\\"],\\\"datepicker.calendar.roleDescription\\\":[\\\"Date picker\\\"],\\\"datepicker.calendar.nextMonth\\\":[\\\"Next month\\\"],\\\"datepicker.calendar.previousMonth\\\":[\\\"Previous month\\\"]}\");", "import { css } from 'lit';\n\nexport const wDatepickerStyles = css`\n /* CustomDatePicker.css */\n\n /* container */\n .w-datepicker-wrapper {\n position: relative;\n display: inline-block;\n width: 100%;\n font-size: var(--w-font-size-m);\n line-height: var(--w-line-height-m);\n }\n .w-datepicker-input-wrapper {\n position: relative;\n }\n /* hide the browser\u2019s calendar icon, and prevent the native popup */\n .w-datepicker-input {\n /* remove default arrows/appearance */\n -webkit-appearance: none;\n -moz-appearance: textfield;\n appearance: none;\n\n /* basic styling */\n display: block;\n padding: 1.2rem 0.8rem;\n border: 1px solid #ccc;\n border-radius: 4px;\n width: 100%;\n height: 48px;\n cursor: pointer;\n font-size: var(--w-font-size-m);\n line-height: var(--w-line-height-m);\n background-color: var(--w-s-color-background);\n }\n .w-datepicker-input:hover {\n border-color: var(--w-s-color-border-hover);\n }\n .w-datepicker-input:active {\n border-color: var(--w-s-color-border-selected);\n }\n\n .w-datepicker-input:focus,\n .w-datepicker-input:focus-visible {\n outline: 2px solid var(--w-s-color-border-focus);\n outline-offset: -2px;\n }\n\n .w-datepicker-input-label {\n font-size: var(--w-font-size-s);\n line-height: var(--w-line-height-s);\n font-weight: 700;\n cursor: pointer;\n padding-bottom: 0.4rem;\n color: var(--w-s-color-text);\n display: block;\n }\n\n /* custom calendar button */\n .w-datepicker-button {\n position: absolute;\n right: 2px;\n top: 2px;\n height: 44px;\n width: 44px !important;\n border-radius: 2px !important;\n border: none;\n cursor: pointer;\n pointer-events: auto; /* override parent\u2019s none */\n }\n\n .w-datepicker-button:not(:hover) {\n background-color: var(--w-s-color-background) !important;\n }\n\n input[type='date']::-webkit-inner-spin-button,\n input[type='date']::-webkit-calendar-picker-indicator {\n display: none;\n -webkit-appearance: none;\n }\n input[type='date'],\n input[type='time'],\n input[type='datetime-local'],\n input[type='month'] {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n }\n /* Temporary dropdown, should probably use the appropriate component when it is done */\n .w-dropdown__popover {\n position: absolute;\n width: max-content;\n background-color: var(--w-s-color-background);\n box-shadow: var(--w-shadow-s);\n z-index: 100;\n border-radius: 8px;\n visibility: hidden;\n }\n .w-dropdown__popover--open {\n visibility: visible;\n }\n`;\n", "import { css } from 'lit';\n\nexport const wDatepickerCalendarStyles = css`\n .w-datepicker__calendar {\n --_calendar-border-color: var(--calendar-border-color, initial);\n --_calendar-border-style: var(--calendar-border-style, none);\n --_calendar-border-width: var(--calendar-border-width, 0);\n --_calendar-border-radius: var(--calendar-border-radius, 0);\n position: relative;\n z-index: 30;\n\n border: var(--_calendar-border-width) var(--_calendar-border-style) var(--_calendar-border-color);\n border-radius: var(--_calendar-border-radius);\n padding: 16px;\n }\n`;\n", "import { css } from 'lit';\n\nexport const wDatepickerDayStyles = css`\n /* === Day Cell === */\n .w-datepicker__day {\n /* No longer in use? */\n --_day-in-range-background: var(--day-in-range-background, var(--w-s-color-background-primary-subtle-active));\n\n text-align: center;\n cursor: pointer;\n outline: none;\n position: relative;\n\n color: var(--day-color, var(--w-s-color-text));\n background-color: var(--day-background, transparent);\n width: var(--day-width, 40px);\n height: var(--day-height, 40px);\n padding: var(--day-padding, 0);\n font-weight: var(--day-font-weight, normal);\n font-size: var(--w-font-size-s);\n line-height: var(--w-line-height-s);\n border-radius: var(--day-border-radius, 50%);\n }\n\n .w-datepicker__day:hover {\n --day-color: var(--w-s-color-text);\n --day-background: var(--w-s-color-background-hover);\n --day-border-radius: 50%;\n }\n .w-datepicker__day:active {\n --day-color: var(--w-s-color-text);\n --day-background: var(--w-s-color-background-active);\n --day-border-radius: 50%;\n }\n\n .w-datepicker__day:focus-visible {\n text-decoration: none;\n outline: 2px solid var(--w-s-color-border-focus);\n outline-offset: var(--w-outline-offset, -2px);\n }\n\n /* === Day variants === */\n .w-datepicker__day--today {\n --day-font-weight: bold;\n }\n\n .w-datepicker__day--selected {\n --day-background: var(--w-s-color-background-primary);\n --day-color: var(--w-s-color-text-inverted);\n --day-font-weight: bold;\n }\n .w-datepicker__day--selected:hover,\n .w-datepicker__day--selected:focus-visible {\n --day-background: var(--w-s-color-background-primary-hover);\n --day-color: var(--w-s-color-text-inverted);\n --day-font-weight: bold;\n }\n\n .w-datepicker__day--disabled,\n .w-datepicker__day--disabled:hover {\n --day-color: var(--w-s-color-text-disabled);\n cursor: not-allowed;\n pointer-events: none;\n }\n`;\n", "import { css } from 'lit';\n\nexport const wDatepickerMonthStyles = css`\n .w-datepicker__month {\n /* Sets default used in the day fragment */\n --day-width: 40px;\n\n --_month-color: var(--month-color, var(--w-s-color-text));\n --_month-font-size: var(--month-font-size, var(--w-font-size-m));\n --_month-line-height: var(--month-line-height, var(--w-line-height-m));\n\n --_month-table-min-width: var(--month-table-min-width, calc(var(--day-width) * 7));\n\n --_weekdays-font-size: var(--weekdays-font-size, var(--w-font-size-xs));\n --_weekdays-line-height: var(--weekdays-font-size, var(--w-line-height-xs));\n --_weekdays-font-weight: var(--weekdays-font-weight, bold);\n\n --_weekdays-padding: var(--weekdays-padding, 8px 0 4px 0);\n\n text-align: center;\n user-select: none;\n display: inline-block;\n\n color: var(--_month-color);\n font-size: var(--_month-font-size);\n line-height: var(--_month-line-height);\n }\n\n .w-datepicker__month__nav {\n margin: 0 0 8px 0;\n }\n\n .w-datepicker__month__nav__header {\n text-align: center;\n font-weight: Bold;\n }\n\n .w-datepicker__table {\n width: 100%;\n border-spacing: 0;\n border-collapse: collapse;\n display: block;\n min-width: var(--_month-table-min-width);\n padding-top: 8px;\n }\n\n .w-datepicker__weekday {\n text-align: center;\n font-size: var(--_weekdays-font-size);\n line-height: var(--_weekdays-line-height);\n font-weight: var(--_weekdays-font-weight);\n padding: var(--_weekdays-padding);\n }\n\n .w-datepicker__month-nav {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n }\n\n .w-datepicker__month__nav__button {\n flex-shrink: 0;\n }\n\n .w-datepicker__month__nav__header {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n text-align: center;\n }\n`;\n", "const dateOnlyRe = /^\\d{4}-\\d{2}-\\d{2}$/;\n\n/**\n * Parses an ISO-8601 string into a JS Date.\n *\n * Supports:\n * - YYYY-MM-DD\n * - YYYY-MM-DDThh:mm:ss(.sss)?(Z|\u00B1hh:mm)?\n *\n * @param {string} isoString\n * @returns {Date}\n * @throws {TypeError} if input isn\u2019t a string\n * @throws {Error} if string is not a valid ISO-8601 date\n */\nexport function fromISOToDate(isoString: string): Date | null {\n if (typeof isoString !== 'string') {\n return null;\n }\n\n // If it's a bare date (YYYY-MM-DD), treat it as UTC midnight\n let normalized = isoString;\n if (dateOnlyRe.test(isoString)) {\n normalized = `${isoString}T00:00:00Z`;\n }\n\n const timestamp = Date.parse(normalized);\n if (Number.isNaN(timestamp)) {\n return null;\n }\n\n return new Date(timestamp);\n}\n"],
5
- "mappings": "qiCAAA,IAAAA,GAAAC,GAAAC,GAAA,cAGA,OAAO,eAAeA,EAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5DA,EAAQ,cAAgBA,EAAQ,UAAY,OAO5C,IAAIC,IACH,SAAUA,EAAW,CAMlBA,EAAU,iBAAsB,oBAMhCA,EAAU,qBAA0B,wBAMpCA,EAAU,eAAoB,mBAK9BA,EAAU,iBAAsB,oBAKhCA,EAAU,YAAiB,eAC/B,GAAGA,GAAYD,EAAQ,YAAcA,EAAQ,UAAY,CAAC,EAAE,EAE5DA,EAAQ,cAAgB,IAAI,IAAI,CAC5B,CAACC,GAAU,iBAAkB,6CAA6C,EAC1E,CACIA,GAAU,qBACV,iDACJ,EACA,CACIA,GAAU,eACV,wEACJ,EACA,CACIA,GAAU,iBACV,uHAEJ,EACA,CAACA,GAAU,YAAa,4CAA4C,CACxE,CAAC,IC3DD,IAAAC,GAAAC,GAAAC,GAAA,cACA,OAAO,eAAeA,EAAS,aAAc,CAAE,MAAO,EAAK,CAAC,EAC5DA,EAAQ,MAAQA,EAAQ,cAAgBA,EAAQ,UAAY,OAC5D,IAAMC,EAAW,KACjB,OAAO,eAAeD,EAAS,YAAa,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAS,SAAW,CAAE,CAAC,EACjH,OAAO,eAAeD,EAAS,gBAAiB,CAAE,WAAY,GAAM,IAAK,UAAY,CAAE,OAAOC,EAAS,aAAe,CAAE,CAAC,EASzH,SAASC,GAAcC,EAAK,CAExB,MADuB,CAACA,EAAI,MAAM,YAAY,EACtB,SAASA,EAAK,EAAE,EAAI,GAChD,CAYA,SAASC,GAAoBD,EAAKE,EAAWC,EAAgB,CACzD,IAAMC,EAAYL,GAAcC,CAAG,EACnC,GAAI,OAAO,MAAMI,CAAS,GACrBD,IAAmB,QAAaA,IAAmBH,EAAI,OACxD,MAAM,IAAI,YAAYF,EAAS,cAAc,IAAII,CAAS,CAAC,EAE/D,OAAOE,CACX,CASA,SAASC,GAAqBC,EAAM,CAChC,IAAMC,EAAaN,GAAoBK,EAAMR,EAAS,UAAU,qBAAsB,CAAC,EACvF,OAAO,OAAO,aAAaS,CAAU,CACzC,CAWA,SAASC,GAAiBF,EAAMG,EAAe,CAC3C,IAAMF,EAAaN,GAAoBK,EAAMR,EAAS,UAAU,iBAAkB,CAAC,EACnF,GAAIW,IAAkB,OAAW,CAC7B,IAAMC,EAAsBT,GAAoBQ,EAAeX,EAAS,UAAU,iBAAkB,CAAC,EACrG,OAAO,OAAO,aAAaS,EAAYG,CAAmB,CAC9D,CACA,OAAO,OAAO,aAAaH,CAAU,CACzC,CAMA,SAASI,GAAcC,EAAM,CACzB,OAAOA,EAAK,OAAO,CAAC,IAAM,KAAOA,EAAK,OAAOA,EAAK,OAAS,CAAC,IAAM,GACtE,CASA,SAASC,GAA0BC,EAAW,CAC1C,GAAI,CAACH,GAAcG,CAAS,EACxB,MAAM,IAAI,YAAYhB,EAAS,cAAc,IAAIA,EAAS,UAAU,gBAAgB,CAAC,EAEzF,IAAMiB,EAAgBD,EAAU,MAAM,EAAG,EAAE,EACrCP,EAAaN,GAAoBc,EAAejB,EAAS,UAAU,gBAAgB,EACzF,GAAI,CACA,OAAO,OAAO,cAAcS,CAAU,CAC1C,OACOS,EAAK,CACR,MAAMA,aAAe,WACf,IAAI,YAAYlB,EAAS,cAAc,IAAIA,EAAS,UAAU,cAAc,CAAC,EAC7EkB,CACV,CACJ,CAGA,SAASC,GAAeX,EAAMY,EAAQ,GAAO,CACzC,GAAIA,EACA,MAAM,IAAI,YAAYpB,EAAS,cAAc,IAAIA,EAAS,UAAU,gBAAgB,CAAC,EAIzF,IAAMS,EAAa,SAASD,EAAM,CAAC,EACnC,OAAO,OAAO,aAAaC,CAAU,CACzC,CAKA,IAAMY,GAAyB,IAAI,IAAI,CACnC,CAAC,IAAK,IAAI,EACV,CAAC,IAAK,IAAI,EACV,CAAC,IAAK;AAAA,CAAI,EACV,CAAC,IAAK,IAAI,EACV,CAAC,IAAK,GAAI,EACV,CAAC,IAAK,IAAI,EACV,CAAC,IAAK,IAAI,CACd,CAAC,EAMD,SAASC,GAAyBd,EAAM,CACpC,OAAOa,GAAuB,IAAIb,CAAI,GAAKA,CAC/C,CAiBA,IAAMe,GAAc,yHAUpB,SAASC,GAAMC,EAAKC,EAAc,GAAO,CACrC,OAAOD,EAAI,QAAQF,GAAa,SAAUI,EAAGC,EAAW1B,EAAKc,EAAWa,EAAsBC,EAAWC,EAASC,EAAOC,EAAiB,CAGtI,GAAIL,IAAc,OACd,MAAO,KAEX,GAAI1B,IAAQ,OACR,OAAOK,GAAqBL,CAAG,EAEnC,GAAIc,IAAc,OACd,OAAOD,GAA0BC,CAAS,EAE9C,GAAIa,IAAyB,OACzB,OAAOnB,GAAiBmB,EAAsBC,CAAS,EAE3D,GAAIC,IAAY,OACZ,OAAOrB,GAAiBqB,CAAO,EAEnC,GAAIC,IAAU,IACV,MAAO,KAEX,GAAIA,IAAU,OACV,OAAOb,GAAea,EAAO,CAACN,CAAW,EAE7C,GAAIO,IAAoB,OACpB,OAAOX,GAAyBW,CAAe,EAEnD,MAAM,IAAI,YAAYjC,EAAS,cAAc,IAAIA,EAAS,UAAU,WAAW,CAAC,CACpF,CAAC,CACL,CACAD,EAAQ,MAAQyB,GAChBzB,EAAQ,QAAUyB,KC5LlB,IAAAU,GAAsB,WAGtB,IAAMC,EAAYC,GAAM,OAAOA,GAAM,SAC/BC,GAAcC,GAAM,OAAOA,GAAM,WAEjCC,GAAwB,IAAI,IAC5BC,GAAgB,KACtB,SAASC,GAAiBC,EAAS,CAEjC,MAAO,CAAC,GADI,MAAM,QAAQA,CAAO,EAAIA,EAAU,CAACA,CAAO,EACvCF,EAAa,CAC/B,CACA,SAASG,GAAKD,EAASE,EAAOC,EAAQ,CACpC,IAAMC,EAAWL,GAAiBC,CAAO,EACpCG,IACHA,EAAS,WAEX,IAAI,EACJ,GAAI,OAAOA,GAAW,SAMpB,OALA,EAAI,CACF,IAAK,UACL,MAAO,QACP,KAAM,SACR,EACQA,EAAQ,CACd,IAAK,OACH,EAAE,QAAU,OACd,IAAK,OACH,EAAE,MAAQ,OACV,MACF,IAAK,QACH,EAAE,MAAQ,UACV,KACJ,MAEA,EAAIA,EAMN,OAJkBE,GAChB,IAAMC,GAAS,OAAQF,EAAUD,CAAM,EACvC,IAAM,IAAI,KAAK,eAAeC,EAAU,CAAC,CAC3C,EACiB,OAAOX,EAASS,CAAK,EAAI,IAAI,KAAKA,CAAK,EAAIA,CAAK,CACnE,CACA,SAASK,GAAKP,EAASE,EAAOC,EAAQ,CACpC,IAAIK,EAIJ,GAHKL,IACHA,EAAS,WAEP,OAAOA,GAAW,SAMpB,OALAK,EAAI,CACF,OAAQ,UACR,OAAQ,UACR,KAAM,SACR,EACQL,EAAQ,CACd,IAAK,OACL,IAAK,OACHK,EAAE,aAAe,QACjB,MACF,IAAK,QACH,OAAOA,EAAE,MACb,MAEAA,EAAIL,EAEN,OAAOF,GAAKD,EAASE,EAAOM,CAAC,CAC/B,CACA,SAASC,GAAOT,EAASE,EAAOC,EAAQ,CACtC,IAAMC,EAAWL,GAAiBC,CAAO,EAKzC,OAJkBK,GAChB,IAAMC,GAAS,SAAUF,EAAUD,CAAM,EACzC,IAAM,IAAI,KAAK,aAAaC,EAAUD,CAAM,CAC9C,EACiB,OAAOD,CAAK,CAC/B,CACA,SAASQ,GAAOV,EAASW,EAAST,EAAO,CAAE,OAAAU,EAAS,EAAG,GAAGC,CAAM,EAAG,CA3EnE,IAAAC,EAAAC,EA4EE,IAAMX,EAAWL,GAAiBC,CAAO,EACnCgB,EAAUL,EAAUN,GACxB,IAAMC,GAAS,iBAAkBF,CAAQ,EACzC,IAAM,IAAI,KAAK,YAAYA,EAAU,CAAE,KAAM,SAAU,CAAC,CAC1D,EAAIC,GACF,IAAMC,GAAS,kBAAmBF,CAAQ,EAC1C,IAAM,IAAI,KAAK,YAAYA,EAAU,CAAE,KAAM,UAAW,CAAC,CAC3D,EACA,OAAOW,GAAAD,EAAAD,EAAMX,CAAK,IAAX,KAAAY,EAAgBD,EAAMG,EAAQ,OAAOd,EAAQU,CAAM,CAAC,IAApD,KAAAG,EAAyDF,EAAM,KACxE,CACA,SAASR,GAAYY,EAAQC,EAAW,CACtC,IAAMC,EAAMF,EAAO,EACfG,EAAYvB,GAAM,IAAIsB,CAAG,EAC7B,OAAKC,IACHA,EAAYF,EAAU,EACtBrB,GAAM,IAAIsB,EAAKC,CAAS,GAEnBA,CACT,CACA,SAASd,GAASe,EAAMrB,EAASsB,EAAS,CACxC,IAAMC,EAAYvB,EAAQ,KAAK,GAAG,EAClC,MAAO,GAAGqB,CAAI,IAAIE,CAAS,IAAI,KAAK,UAAUD,CAAO,CAAC,EACxD,CAWA,IAAME,GAAgB,sCAChBC,GAAgB,0BAChBC,GAAoB,CAACC,EAAQC,EAAeC,EAAU,CAAC,IAAM,CACjE,IAAMC,EAAUF,GAAiBD,EAC3BI,EAASC,GACT,OAAOA,GAAW,SACbA,EACFH,EAAQG,CAAM,EAEjBC,EAAoB,CAACC,EAAOC,IAAY,CAC5C,IAAMC,EAAe,OAAO,KAAKP,CAAO,EAAE,OAASE,EAAM,QAAQ,EAAI,OAC/DM,EAAWC,GAAOR,EAASI,EAAOE,CAAY,EACpD,OAAOD,EAAQ,QAAQ,IAAI,OAAOV,GAAe,GAAG,EAAGY,CAAQ,CACjE,EACA,MAAO,CACL,OAAQ,CAACH,EAAOK,IAAU,CACxB,GAAM,CAAE,OAAAC,EAAS,CAAE,EAAID,EACjBJ,EAAUM,GAAOX,EAAS,GAAOI,EAAOK,CAAK,EACnD,OAAON,EAAkBC,EAAQM,EAAQL,CAAO,CAClD,EACA,cAAe,CAACD,EAAOK,IAAU,CAC/B,GAAM,CAAE,OAAAC,EAAS,CAAE,EAAID,EACjBJ,EAAUM,GAAOX,EAAS,GAAMI,EAAOK,CAAK,EAClD,OAAON,EAAkBC,EAAQM,EAAQL,CAAO,CAClD,EACA,OAAQO,GACR,OAAQ,CAACR,EAAOF,IAAWM,GACzBR,EACAI,EACAH,EAAMC,CAAM,GAAK,CAAE,MAAOA,CAAO,CACnC,EACA,KAAM,CAACE,EAAOF,IAAWW,GAAKb,EAASI,EAAOH,EAAMC,CAAM,GAAKA,CAAM,EACrE,KAAM,CAACE,EAAOF,IAAWY,GAAKd,EAASI,EAAOH,EAAMC,CAAM,GAAKA,CAAM,CACvE,CACF,EACMU,GAAkB,CAACR,EAAOW,IAAO,CAhJvC,IAAAC,EAgJ0C,OAAAA,EAAAD,EAAMX,CAAK,IAAX,KAAAY,EAAgBD,EAAM,OAChE,SAASE,GAAYC,EAAarB,EAAQG,EAAS,CACjD,MAAO,CAACmB,EAAS,CAAC,EAAGpB,IAAY,CAC/B,IAAMqB,EAAaxB,GAAkBC,EAAQG,EAASD,CAAO,EACvDsB,EAAgB,CAACC,EAAQnB,EAAoB,KAC5C,MAAM,QAAQmB,CAAM,EAElBA,EAAO,OAAO,CAACjB,EAASkB,IAAU,CACvC,GAAIA,IAAU,KAAOpB,EACnB,OAAOE,EAAUV,GAEnB,GAAI6B,EAASD,CAAK,EAChB,OAAOlB,EAAUkB,EAEnB,GAAM,CAACE,EAAMC,EAAMxB,CAAM,EAAIqB,EACzBI,EAAqB,CAAC,EACtBD,IAAS,UAAYA,IAAS,iBAAmBA,IAAS,SAC5D,OAAO,QAAQxB,CAAM,EAAE,QACrB,CAAC,CAAC0B,EAAKC,CAAM,IAAM,CACjBF,EAAmBC,CAAG,EAAIP,EACxBQ,EACAH,IAAS,UAAYA,IAAS,eAChC,CACF,CACF,EAEAC,EAAqBzB,EAEvB,IAAIE,EACJ,GAAIsB,EAAM,CACR,IAAMI,EAAYV,EAAWM,CAAI,EACjCtB,EAAQ0B,EAAUX,EAAOM,CAAI,EAAGE,CAAkB,CACpD,MACEvB,EAAQe,EAAOM,CAAI,EAErB,OAAIrB,GAAS,KACJC,EAEFA,EAAUD,CACnB,EAAG,EAAE,EAjCIkB,EAmCLS,EAASV,EAAcH,CAAW,EACxC,OAAIM,EAASO,CAAM,GAAKrC,GAAc,KAAKqC,CAAM,KACxC,UAAMA,CAAM,EAEjBP,EAASO,CAAM,EACVA,EACFA,EAAS,OAAOA,CAAM,EAAI,EACnC,CACF,CAEA,IAAIC,GAAc,OAAO,eACrBC,GAAoB,CAACC,EAAKN,EAAKxB,IAAUwB,KAAOM,EAAMF,GAAYE,EAAKN,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAxB,CAAM,CAAC,EAAI8B,EAAIN,CAAG,EAAIxB,EAC1J+B,GAAkB,CAACD,EAAKN,EAAKxB,KAC/B6B,GAAkBC,EAAK,OAAON,GAAQ,SAAWA,EAAM,GAAKA,EAAKxB,CAAK,EAC/DA,GAEHgC,GAAN,KAAmB,CACjB,aAAc,CACZD,GAAgB,KAAM,UAAW,CAAC,CAAC,CACrC,CACA,GAAGE,EAAOC,EAAU,CA7MtB,IAAAtB,EA8MI,IAAIA,EACJ,OAACA,KAAK,KAAK,SAASqB,CAAK,IAAxB,OAA8BrB,EAAGqB,CAAK,EAAI,CAAC,GAC5C,KAAK,QAAQA,CAAK,EAAE,KAAKC,CAAQ,EAC1B,IAAM,KAAK,eAAeD,EAAOC,CAAQ,CAClD,CACA,eAAeD,EAAOC,EAAU,CAC9B,IAAMC,EAAiB,KAAK,cAAcF,CAAK,EAC/C,GAAI,CAACE,EACH,OACF,IAAMC,EAAQD,EAAe,QAAQD,CAAQ,EACzC,CAACE,GACHD,EAAe,OAAOC,EAAO,CAAC,CAClC,CACA,KAAKH,KAAUI,EAAM,CACnB,IAAMF,EAAiB,KAAK,cAAcF,CAAK,EAC1CE,GAELA,EAAe,IAAKD,GAAaA,EAAS,MAAM,KAAMG,CAAI,CAAC,CAC7D,CACA,cAAcJ,EAAO,CACnB,IAAME,EAAiB,KAAK,QAAQF,CAAK,EACzC,OAAO,MAAM,QAAQE,CAAc,EAAIA,EAAiB,EAC1D,CACF,EAEIG,GAAY,OAAO,eACnBC,GAAkB,CAACT,EAAKN,EAAKxB,IAAUwB,KAAOM,EAAMQ,GAAUR,EAAKN,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAAxB,CAAM,CAAC,EAAI8B,EAAIN,CAAG,EAAIxB,EACtJwC,GAAgB,CAACV,EAAKN,EAAKxB,KAC7BuC,GAAgBT,EAAK,OAAON,GAAQ,SAAWA,EAAM,GAAKA,EAAKxB,CAAK,EAC7DA,GAEHyC,GAAN,cAAmBT,EAAa,CAC9B,YAAYU,EAAQ,CA9OtB,IAAA9B,EA+OI,MAAM,EACN4B,GAAc,KAAM,UAAW,EAAE,EACjCA,GAAc,KAAM,UAAU,EAC9BA,GAAc,KAAM,cAAe,CAAC,CAAC,EACrCA,GAAc,KAAM,YAAa,CAAC,CAAC,EACnCA,GAAc,KAAM,UAAU,EAC9BA,GAAc,KAAM,kBAAkB,EAItCA,GAAc,KAAM,IAAK,KAAK,EAAE,KAAK,IAAI,CAAC,EAItCE,EAAO,SAAW,OACpB,KAAK,SAAWA,EAAO,SACrBA,EAAO,UAAY,MACrB,KAAK,KAAKA,EAAO,QAAQ,EACvBA,EAAO,YAAc,MACvB,KAAK,eAAeA,EAAO,UAAU,GACnC,OAAOA,EAAO,QAAW,UAAYA,EAAO,UAC9C,KAAK,UAAS9B,EAAA8B,EAAO,SAAP,KAAA9B,EAAiB+B,GAAeD,EAAO,OAAO,CAEhE,CACA,IAAI,QAAS,CACX,OAAO,KAAK,OACd,CACA,IAAI,SAAU,CACZ,OAAO,KAAK,QACd,CACA,IAAI,UAAW,CA7QjB,IAAA9B,EA8QI,OAAOA,EAAA,KAAK,UAAU,KAAK,OAAO,IAA3B,KAAAA,EAAgC,CAAC,CAC1C,CAIA,IAAI,YAAa,CAnRnB,IAAAA,EAoRI,OAAOA,EAAA,KAAK,YAAY,KAAK,OAAO,IAA7B,KAAAA,EAAkC,CAAC,CAC5C,CACA,gBAAgBnB,EAAQmD,EAAY,CAClC,IAAMC,EAAkB,KAAK,YAAYpD,CAAM,EAC1CoD,EAGH,OAAO,OAAOA,EAAiBD,CAAU,EAFzC,KAAK,YAAYnD,CAAM,EAAImD,CAI/B,CAgBA,oBAAoBE,EAAU,CAC5B,YAAK,iBAAmBA,EACjB,IACT,CAIA,eAAeC,EAAiBH,EAAY,CACtC,OAAOG,GAAoB,SAC7B,KAAK,gBAAgBA,EAAiBH,CAAU,EAEhD,OAAO,KAAKG,CAAe,EAAE,QAC1BtD,GAAW,KAAK,gBAAgBA,EAAQsD,EAAgBtD,CAAM,CAAC,CAClE,EAEF,KAAK,KAAK,QAAQ,CACpB,CACA,MAAMA,EAAQuD,EAAU,CACtB,IAAMC,EAAgB,KAAK,UAAUxD,CAAM,EACtCwD,EAGH,OAAO,OAAOA,EAAeD,CAAQ,EAFrC,KAAK,UAAUvD,CAAM,EAAIuD,CAI7B,CACA,KAAKE,EAAkBF,EAAU,CAC3B,OAAOE,GAAoB,UAAY,OAAOF,GAAa,SAC7D,KAAK,MAAME,EAAkBF,CAAQ,EAErC,OAAO,QAAQE,CAAgB,EAAE,QAC/B,CAAC,CAACzD,EAAQ0D,CAAS,IAAM,KAAK,MAAM1D,EAAQ0D,CAAS,CACvD,EAEF,KAAK,KAAK,QAAQ,CACpB,CAIA,gBAAgB,CAAE,OAAA1D,EAAQ,QAAAG,EAAS,SAAAoD,CAAS,EAAG,CAC7C,KAAK,QAAUvD,EACf,KAAK,SAAWG,GAAW,OAC3B,KAAK,UAAU,KAAK,OAAO,EAAIoD,EAC/B,KAAK,KAAK,QAAQ,CACpB,CACA,SAASvD,EAAQG,EAAS,CAMxB,KAAK,QAAUH,EACf,KAAK,SAAWG,EAChB,KAAK,KAAK,QAAQ,CACpB,CACA,EAAEwD,EAAIrC,EAAQsC,EAAS,CACrB,GAAI,CAAC,KAAK,OACR,MAAM,IAAI,MACR,uOACF,EAEF,IAAIpD,EAAUoD,GAAA,YAAAA,EAAS,QAClBD,IACHA,EAAK,IAEFhC,EAASgC,CAAE,IACdrC,EAASqC,EAAG,QAAUrC,EACtBd,EAAUmD,EAAG,QACbA,EAAKA,EAAG,IAEV,IAAME,EAAe,KAAK,SAASF,CAAE,EAC/BG,EAAiBD,IAAiB,OAClCE,EAAU,KAAK,SACrB,GAAIA,GAAWD,EACb,OAAOE,GAAWD,CAAO,EAAIA,EAAQ,KAAK,QAASJ,CAAE,EAAII,EAEvDD,GACF,KAAK,KAAK,UAAW,CAAE,GAAAH,EAAI,OAAQ,KAAK,OAAQ,CAAC,EAEnD,IAAItC,EAAcwC,GAAgBrD,GAAWmD,EAgB7C,OAfIhC,EAASN,CAAW,IAClB,KAAK,iBACPA,EAAc,KAAK,iBAAiBA,CAAW,EAE/C,QAAQ,KAAK;AAAA;AAAA,IAEjBA,CAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAMd,GAGOM,EAASN,CAAW,GAAKxB,GAAc,KAAKwB,CAAW,EAClD,KAAK,MAAM,IAAIA,CAAW,GAAG,EAClCM,EAASN,CAAW,EACfA,EACFD,GACLC,EACA,KAAK,QACL,KAAK,QACP,EAAEC,EAAQsC,GAAA,YAAAA,EAAS,OAAO,CAC5B,CACA,KAAKrD,EAAOF,EAAQ,CAClB,OAAOW,GAAK,KAAK,UAAY,KAAK,QAAST,EAAOF,CAAM,CAC1D,CACA,OAAOE,EAAOF,EAAQ,CACpB,OAAOM,GAAO,KAAK,UAAY,KAAK,QAASJ,EAAOF,CAAM,CAC5D,CACF,EACA,SAAS4D,GAAUhB,EAAS,CAAC,EAAG,CAC9B,OAAO,IAAID,GAAKC,CAAM,CACxB,CAEA,IAAMiB,EAAOD,GAAU,4pBC9ZjB,SAAUE,GAEdC,EAAiB,2CACjB,MAAMC,WAAoBD,CAAU,CAqMlC,eAAeE,EAAW,WACxB,MAAM,GAAGA,CAAI,cAtIf,KAAA,UAAY,KAAK,gBAAe,EAMhCC,EAAA,IAAA,KAAW,EAAK,EAMhBC,EAAA,IAAA,KAAc,EAAK,EAOnBC,EAAA,IAAA,KAAW,EAAK,EAGhBC,EAAA,IAAA,KAAA,MAAA,EACAC,EAAA,IAAA,KAAA,MAAA,EAMAC,EAAA,IAAA,KAA4B,EAAI,EAahCC,EAAA,IAAA,KAAoB,EAAE,EAOtBC,EAAA,IAAA,KAAW,IAAW,CACpBC,EAAA,KAAIN,EAAY,GAAI,GAAA,EACpBM,EAAA,KAAIR,EAAY,GAAI,GAAA,EACpBS,EAAA,KAAIC,EAAA,IAAAC,CAAA,EAAiB,KAArB,IAAI,CACN,CAAC,EAMDC,EAAA,IAAA,KAAU,IAAW,CACnBJ,EAAA,KAAIR,EAAY,GAAK,GAAA,EAErBS,EAAA,KAAIC,EAAA,IAAAG,CAAA,EAAe,KAAnB,KAAoB,KAAK,sBAAqB,EAAKJ,EAAA,KAAIH,EAAA,GAAA,EAAU,EAAE,EAM/D,CAAC,KAAK,SAAS,OAASG,EAAA,KAAIP,EAAA,GAAA,GAC9BM,EAAA,KAAIP,EAAe,GAAI,GAAA,EAEzB,IAAMa,EAAYL,EAAA,KAAIC,EAAA,IAAAC,CAAA,EAAiB,KAArB,IAAI,EAClB,KAAK,2BACP,KAAK,0BAA0BG,EAAY,KAAK,UAAU,kBAAoB,EAAE,CAEpF,CAAC,EAMDC,EAAA,IAAA,KAAa,IAAW,OAClBN,EAAA,KAAIJ,EAAA,GAAA,GAA8B,KAAK,mBACzC,KAAK,UAAU,YACb,KAAK,SACL,KAAK,kBACL,KAAK,gBAAgB,EAEvBG,EAAA,KAAIH,EAA6B,GAAK,GAAA,GAExCG,EAAA,KAAIN,EAAY,GAAI,GAAA,EACpBM,EAAA,KAAIP,EAAe,GAAI,GAAA,EACvBQ,EAAA,KAAIC,EAAA,IAAAC,CAAA,EAAiB,KAArB,IAAI,GACJK,EAAA,OAAI,MAAJ,OAAI,OAAA,OAAJ,KAAM,6BAAyB,MAAAA,IAAA,QAAAA,EAAA,KAA/B,KAAkC,KAAK,UAAY,KAAK,UAAU,kBAAoB,EAAE,CAC1F,CAAC,EAgGDC,EAAA,IAAA,KAAA,MAAA,EAGAC,EAAA,IAAA,KAAuB,EAAK,EAE5BC,EAAA,IAAA,KAAsB,QAAQ,QAAO,CAAE,GA5DrCH,EAAA,KAAK,oBAAgB,MAAAA,IAAA,QAAAA,EAAA,KAArB,KAAwB,QAASP,EAAA,KAAIF,EAAA,GAAA,CAAS,GAC9Ca,EAAA,KAAK,oBAAgB,MAAAA,IAAA,QAAAA,EAAA,KAArB,KAAwB,OAAQX,EAAA,KAAIG,EAAA,GAAA,CAAQ,GAC5CS,EAAA,KAAK,oBAAgB,MAAAA,IAAA,QAAAA,EAAA,KAArB,KAAwB,UAAWZ,EAAA,KAAIM,EAAA,GAAA,CAAW,EAClD,KAAK,SAAS,IAAI,CACpB,CAzMA,WAAW,gBAAc,CACvB,MAAO,EACT,CAkBQ,WAAW,YAAU,CAC3B,OAAO,KAAK,uBAAyB,CAAA,CACvC,CAQC,WAAW,oBAAkB,CAC5B,IAAMO,EAAsB,KAAK,WAAW,IAAKC,GAAcA,EAAU,SAAS,EAAE,KAAI,EAElFC,EAAqB,MAAM,oBAAsB,CAAA,EAIvD,MAAO,CAAC,GADa,IAAI,IAAI,CAAC,GAAGA,EAAoB,GAAGF,CAAmB,CAAC,CACrD,CACzB,CAMA,OAAO,aAAaG,EAAiB,CACnC,OAAO,KAAK,WAAW,KAAMF,GAAcA,EAAU,YAAcE,CAAS,GAAK,IACnF,CAOA,OAAO,cAAcA,EAAiB,CACpC,OAAO,KAAK,WAAW,OAAOF,GAAY,OACxC,GAAIA,EAAU,YAAcE,GAAa,GAAAT,EAAAO,EAAU,aAAS,MAAAP,IAAA,SAAAA,EAAE,SAASS,CAAS,EAC9E,MAAO,EAEX,CAAC,CACH,CAoGA,IAAI,MAAI,CACN,OAAO,KAAK,UAAU,IACxB,CAQA,IAAI,WAAS,CACX,OAAOhB,EAAA,KAAIC,EAAA,IAAAC,CAAA,EAAiB,KAArB,IAAI,CACb,CAMA,eAAa,CACX,OAAO,KAAK,UAAU,cAAa,CACrC,CAGA,IAAI,UAAQ,CACV,OAAO,KAAK,UAAU,QACxB,CAMA,IAAI,mBAAiB,CACnB,OAAO,KAAK,UAAU,iBACxB,CAWA,yBAAyBe,EAAcC,EAAkBC,EAAgB,QACvEZ,EAAA,MAAM,4BAAwB,MAAAA,IAAA,QAAAA,EAAA,KAAA,KAAGU,EAAMC,EAAUC,CAAQ,EAQzD,IAAMC,EADQ,KAAK,YACM,cAAcH,CAAI,EAEvCG,GAAU,MAAVA,EAAY,QAAU,KAAK,kBAC7B,KAAK,SAASpB,EAAA,KAAIH,EAAA,GAAA,CAAO,CAE7B,CASA,SAASwB,EAAgB,OACvBtB,EAAA,KAAIP,EAAe,GAAK,GAAA,GACxBe,EAAA,KAAK,6BAAyB,MAAAA,IAAA,QAAAA,EAAA,KAA9B,KAAiC,EAAE,EACnCR,EAAA,KAAIF,EAAUwB,EAAK,GAAA,EAEnB,IAAMC,EADoB,KAAK,sBAAqB,EACVD,EAAQ,KAClD,KAAK,UAAU,aAAaC,CAAuB,EACnDtB,EAAA,KAAIC,EAAA,IAAAG,CAAA,EAAe,KAAnB,KAAoBkB,CAAa,EAC7B,KAAK,sBACP,KAAK,qBAAqBA,CAAa,EAEzCtB,EAAA,KAAIC,EAAA,IAAAC,CAAA,EAAiB,KAArB,IAAI,CACN,CASA,uBAAqB,CACnB,MAAO,EACT,CAWA,IAAI,oBAAkB,CACpB,OAAO,IAAI,QAAQqB,GAAWA,EAAQvB,EAAA,KAAIU,EAAA,GAAA,CAAoB,CAAC,CACjE,CA0NA,mBAAiB,SACfX,EAAA,KAAIN,EAAY,GAAK,GAAA,EACrBM,EAAA,KAAIP,EAAe,GAAK,GAAA,EACxBQ,EAAA,KAAIC,EAAA,IAAAC,CAAA,EAAiB,KAArB,IAAI,GACJK,EAAA,KAAK,oBAAgB,MAAAA,IAAA,QAAAA,EAAA,KAArB,IAAI,GAEJI,EAAA,KAAK,6BAAyB,MAAAA,IAAA,QAAAA,EAAA,KAA9B,KACEX,EAAA,KAAIC,EAAA,IAAAC,CAAA,EAAiB,KAArB,IAAI,EAAsB,KAAK,kBAAoB,EAAE,CAEzD,0NA1YE,IAAMsB,EAAW,KAAK,YAAW,EAC3BC,EAAW,GAAG,KAAK,SAAS,UAAU,KAAK,aAAa,MAAM,CAAC,KACrE,OAAOD,EAAS,iBAA8BC,CAAQ,CACxD,EAACvB,EAAA,UAAA,CA4NC,GAAI,KAAK,aAAa,UAAU,EAC9B,MAAO,GAGT,IAAMG,EAAYL,EAAA,KAAIR,EAAA,GAAA,GAAiBQ,EAAA,KAAIP,EAAA,GAAA,GAAa,CAAC,KAAK,SAAS,OAAS,CAACO,EAAA,KAAIT,EAAA,GAAA,EAMrF,OAAIc,GAAa,KAAK,UAAU,OAC9B,KAAK,UAAU,OAAO,IAAI,cAAc,EAC/B,KAAK,UAAU,QACxB,KAAK,UAAU,OAAO,OAAO,cAAc,EAGtCA,CACT,EAACD,EAAA,SAEciB,EAAgB,CAC7B,IAAMK,EAAQ,KAAK,YACbC,EAAgC,CAAA,EAChCP,EAAaM,EAAM,WACnBE,EAA2C,CAAA,EAC3CC,EAAqBT,EAAW,KAAMN,GAAcA,EAAU,mBAAmB,OAAO,EAEzFd,EAAA,KAAIS,EAAA,GAAA,IACPV,EAAA,KAAIW,EAAuB,IAAI,QAAQa,GAAU,CAC/CxB,EAAA,KAAIS,EAA+Be,EAAO,GAAA,CAC5C,CAAC,EAAC,GAAA,EACFxB,EAAA,KAAIU,EAAwB,GAAI,GAAA,GAQ9BT,EAAA,KAAIN,EAAA,GAAA,IACNM,EAAA,KAAIN,EAAA,GAAA,EAAkB,MAAK,EAC3BK,EAAA,KAAIJ,EAA4BK,EAAA,KAAIN,EAAA,GAAA,EAAiB,GAAA,GAOvD,IAAMoC,EAAkB,IAAI,gBAC5B/B,EAAA,KAAIL,EAAoBoC,EAAe,GAAA,EACvC,IAAIC,EAGAC,GAAY,GAEXZ,EAAW,SAIhBA,EAAW,QAAQN,GAAY,CAC7B,IAAMmB,GAAMnB,EAAU,KAAO,cACvBoB,GAAUpB,EAAU,QAAQ,KAAMO,EAAOS,EAAgB,MAAM,EAC5CI,cAAmB,SAG1CN,EAAgB,KAAKM,EAAO,EAE5BA,GAAQ,KAAKC,IAAmB,CACQA,IAAqB,OAI3DR,EAASM,EAAG,EAAI,CAACE,GAEjBJ,EAAoB/B,EAAA,KAAIC,EAAA,IAAAmC,CAAA,EAA6B,KAAjC,KAAkCtB,EAAWO,CAAK,EACtErB,EAAA,KAAIC,EAAA,IAAAoC,CAAA,EAA+B,KAAnC,KAAoCV,EAAUI,CAAiB,EACjE,CAAC,IAGDJ,EAASM,EAAG,EAAI,CAACC,GAEb,KAAK,SAASD,EAAG,IAAM,CAACC,KAC1BF,GAAY,IAMV,CAACE,IAAW,CAACH,IACfA,EAAoB/B,EAAA,KAAIC,EAAA,IAAAmC,CAAA,EAA6B,KAAjC,KAAkCtB,EAAWO,CAAK,GAG5E,CAAC,EAGD,QAAQ,WAAWO,CAAe,EAC/B,KAAK,IAAK,OAEJE,GAAe,MAAfA,EAAiB,OAAO,UAC3B/B,EAAA,KAAIU,EAAwB,GAAK,GAAA,GACjCF,EAAAP,EAAA,KAAIQ,EAAA,GAAA,KAA4B,MAAAD,IAAA,QAAAA,EAAA,KAAhC,IAAI,EAER,CAAC,GAUCyB,IAAa,CAACH,IAChB7B,EAAA,KAAIC,EAAA,IAAAoC,CAAA,EAA+B,KAAnC,KAAoCV,EAAUI,CAAiB,EAEnE,EAACM,EAAA,SAM8BV,EAAkCI,EAAmC,CAClG,GAAI,KAAK,iBACP,KAAK,UAAU,YAAYJ,EAAUI,EAAmB,KAAK,gBAAgB,EAC7EhC,EAAA,KAAIH,EAA6B,GAAK,GAAA,MACjC,CAGL,GAFA,KAAK,UAAU,YAAY+B,EAAUI,CAAiB,EAElD,KAAK,UAAU,SAAS,MAC1B,OAWFhC,EAAA,KAAIH,EAA6B,GAAI,GAAA,EAEzC,EAACwC,EAAA,SAG4BtB,EAAsBO,EAAgB,CAEjE,GAAI,KAAK,iBAAkB,CACzB,IAAMiB,EAAU,KAAK,iBAAiBxB,EAAU,KAAO,aAAa,EAEpE,GAAIwB,EACF,OAAOA,EAIX,OAAIxB,EAAU,mBAAmB,SACvBA,EAAU,QAAsC,KAAMO,CAAK,EAE5DP,EAAU,OAErB,EAeKzB,EACT,CC/bO,IAAMkD,GAAU,KAAK,IAAI,GAAI,CAAC,EAAI,GAAK,GAAK,GAAK,IAgB3CC,GAAU,CAACD,GAOXE,GAAqB,OAOrBC,GAAoB,MA6E1B,IAAMC,GAAgB,KActB,IAAMC,GAAeC,GAAgB,GAO/BC,GAAgBF,GAAe,EAO/BG,GAAgBH,GAAe,SAO/BI,GAAiBD,GAAgB,GAOjCE,GAAmBD,GAAiB,EAapCE,GAAsB,OAAO,IAAI,mBAAmB,EClL1D,SAASC,EAAcC,EAAMC,EAAO,CACzC,OAAI,OAAOD,GAAS,WAAmBA,EAAKC,CAAK,EAE7CD,GAAQ,OAAOA,GAAS,UAAYE,MAAuBF,EACtDA,EAAKE,EAAmB,EAAED,CAAK,EAEpCD,aAAgB,KAAa,IAAIA,EAAK,YAAYC,CAAK,EAEpD,IAAI,KAAKA,CAAK,CACvB,CCNO,SAASE,EAAOC,EAAUC,EAAS,CAExC,OAAOC,EAAcD,GAAWD,EAAUA,CAAQ,CACpD,CCdO,SAASG,GAAQC,EAAMC,EAAQC,EAAS,CAC7C,IAAMC,EAAQC,EAAOJ,EAAME,GAAA,YAAAA,EAAS,EAAE,EACtC,OAAI,MAAMD,CAAM,EAAUI,GAAcH,GAAA,YAAAA,EAAS,KAAMF,EAAM,GAAG,GAG3DC,GAELE,EAAM,QAAQA,EAAM,QAAQ,EAAIF,CAAM,EAC/BE,EACT,CCLO,SAASG,GAAUC,EAAMC,EAAQC,EAAS,CAC/C,IAAMC,EAAQC,EAAOJ,EAAME,GAAA,YAAAA,EAAS,EAAE,EACtC,GAAI,MAAMD,CAAM,EAAG,OAAOI,GAAcH,GAAA,YAAAA,EAAS,KAAMF,EAAM,GAAG,EAChE,GAAI,CAACC,EAEH,OAAOE,EAET,IAAMG,EAAaH,EAAM,QAAQ,EAU3BI,EAAoBF,GAAcH,GAAA,YAAAA,EAAS,KAAMF,EAAMG,EAAM,QAAQ,CAAC,EAC5EI,EAAkB,SAASJ,EAAM,SAAS,EAAIF,EAAS,EAAG,CAAC,EAC3D,IAAMO,EAAcD,EAAkB,QAAQ,EAC9C,OAAID,GAAcE,EAGTD,GASPJ,EAAM,YACJI,EAAkB,YAAY,EAC9BA,EAAkB,SAAS,EAC3BD,CACF,EACOH,EAEX,CCxEA,IAAIM,GAAiB,CAAC,EAEf,SAASC,GAAoB,CAClC,OAAOD,EACT,CC8BO,SAASE,EAAYC,EAAMC,EAAS,CAlC3C,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAmCE,IAAMC,EAAiBC,EAAkB,EACnCC,GACJH,GAAAD,GAAAH,GAAAD,EAAAH,GAAA,YAAAA,EAAS,eAAT,KAAAG,GACAD,GAAAD,EAAAD,GAAA,YAAAA,EAAS,SAAT,YAAAC,EAAiB,UAAjB,YAAAC,EAA0B,eAD1B,KAAAE,EAEAK,EAAe,eAFf,KAAAF,GAGAD,GAAAD,EAAAI,EAAe,SAAf,YAAAJ,EAAuB,UAAvB,YAAAC,EAAgC,eAHhC,KAAAE,EAIA,EAEII,EAAQC,EAAOd,EAAMC,GAAA,YAAAA,EAAS,EAAE,EAChCc,EAAMF,EAAM,OAAO,EACnBG,GAAQD,EAAMH,EAAe,EAAI,GAAKG,EAAMH,EAElD,OAAAC,EAAM,QAAQA,EAAM,QAAQ,EAAIG,CAAI,EACpCH,EAAM,SAAS,EAAG,EAAG,EAAG,CAAC,EAClBA,CACT,CCpBO,SAASI,GAAeC,EAAMC,EAAS,CAC5C,OAAOC,EAAYF,EAAM,CAAE,GAAGC,EAAS,aAAc,CAAE,CAAC,CAC1D,CCJO,SAASE,GAAeC,EAAMC,EAAS,CAC5C,IAAMC,EAAQC,EAAOH,EAAMC,GAAA,YAAAA,EAAS,EAAE,EAChCG,EAAOF,EAAM,YAAY,EAEzBG,EAA4BC,EAAcJ,EAAO,CAAC,EACxDG,EAA0B,YAAYD,EAAO,EAAG,EAAG,CAAC,EACpDC,EAA0B,SAAS,EAAG,EAAG,EAAG,CAAC,EAC7C,IAAME,EAAkBC,GAAeH,CAAyB,EAE1DI,EAA4BH,EAAcJ,EAAO,CAAC,EACxDO,EAA0B,YAAYL,EAAM,EAAG,CAAC,EAChDK,EAA0B,SAAS,EAAG,EAAG,EAAG,CAAC,EAC7C,IAAMC,EAAkBF,GAAeC,CAAyB,EAEhE,OAAIP,EAAM,QAAQ,GAAKK,EAAgB,QAAQ,EACtCH,EAAO,EACLF,EAAM,QAAQ,GAAKQ,EAAgB,QAAQ,EAC7CN,EAEAA,EAAO,CAElB,CCpCO,SAASO,GAAgCC,EAAM,CACpD,IAAMC,EAAQC,EAAOF,CAAI,EACnBG,EAAU,IAAI,KAClB,KAAK,IACHF,EAAM,YAAY,EAClBA,EAAM,SAAS,EACfA,EAAM,QAAQ,EACdA,EAAM,SAAS,EACfA,EAAM,WAAW,EACjBA,EAAM,WAAW,EACjBA,EAAM,gBAAgB,CACxB,CACF,EACA,OAAAE,EAAQ,eAAeF,EAAM,YAAY,CAAC,EACnC,CAACD,EAAO,CAACG,CAClB,CC1BO,SAASC,EAAeC,KAAYC,EAAO,CAChD,IAAMC,EAAYC,EAAc,KAC9B,KACAH,GAAWC,EAAM,KAAMG,GAAS,OAAOA,GAAS,QAAQ,CAC1D,EACA,OAAOH,EAAM,IAAIC,CAAS,CAC5B,CCoBO,SAASG,EAAWC,EAAMC,EAAS,CACxC,IAAMC,EAAQC,EAAOH,EAAMC,GAAA,YAAAA,EAAS,EAAE,EACtC,OAAAC,EAAM,SAAS,EAAG,EAAG,EAAG,CAAC,EAClBA,CACT,CCQO,SAASE,GAAyBC,EAAWC,EAAaC,EAAS,CACxE,GAAM,CAACC,EAAYC,CAAY,EAAIC,EACjCH,GAAA,YAAAA,EAAS,GACTF,EACAC,CACF,EAEMK,EAAkBC,EAAWJ,CAAU,EACvCK,EAAoBD,EAAWH,CAAY,EAE3CK,EACJ,CAACH,EAAkBI,GAAgCJ,CAAe,EAC9DK,EACJ,CAACH,EAAoBE,GAAgCF,CAAiB,EAKxE,OAAO,KAAK,OAAOC,EAAiBE,GAAoBC,EAAiB,CAC3E,CC1BO,SAASC,GAAmBC,EAAMC,EAAS,CAChD,IAAMC,EAAOC,GAAeH,EAAMC,CAAO,EACnCG,EAAkBC,GAAcJ,GAAA,YAAAA,EAAS,KAAMD,EAAM,CAAC,EAC5D,OAAAI,EAAgB,YAAYF,EAAM,EAAG,CAAC,EACtCE,EAAgB,SAAS,EAAG,EAAG,EAAG,CAAC,EAC5BE,GAAeF,CAAe,CACvC,CCXO,SAASG,GAASC,EAAMC,EAAQC,EAAS,CAC9C,OAAOC,GAAQH,EAAMC,EAAS,EAAGC,CAAO,CAC1C,CCAO,SAASE,GAAaC,EAAM,CACjC,OAAOC,EAAcD,EAAM,KAAK,IAAI,CAAC,CACvC,CCIO,SAASE,GAAUC,EAAWC,EAAaC,EAAS,CACzD,GAAM,CAACC,EAAWC,CAAU,EAAIC,EAC9BH,GAAA,YAAAA,EAAS,GACTF,EACAC,CACF,EACA,MAAO,CAACK,EAAWH,CAAS,GAAM,CAACG,EAAWF,CAAU,CAC1D,CCXO,SAASG,GAAOC,EAAO,CAC5B,OACEA,aAAiB,MAChB,OAAOA,GAAU,UAChB,OAAO,UAAU,SAAS,KAAKA,CAAK,IAAM,eAEhD,CCJO,SAASC,GAAQC,EAAM,CAC5B,MAAO,EAAG,CAACC,GAAOD,CAAI,GAAK,OAAOA,GAAS,UAAa,MAAM,CAACE,EAAOF,CAAI,CAAC,EAC7E,CClCO,SAASG,GAAkBC,EAASC,EAAU,CACnD,GAAM,CAACC,EAAOC,CAAG,EAAIC,EAAeJ,EAASC,EAAS,MAAOA,EAAS,GAAG,EACzE,MAAO,CAAE,MAAAC,EAAO,IAAAC,CAAI,CACtB,CCuCO,SAASE,GAAkBC,EAAUC,EAAS,CA5CrD,IAAAC,EA6CE,GAAM,CAAE,MAAAC,EAAO,IAAAC,CAAI,EAAIC,GAAkBJ,GAAA,YAAAA,EAAS,GAAID,CAAQ,EAE1DM,EAAW,CAACH,EAAQ,CAACC,EACnBG,EAAUD,EAAW,CAACH,EAAQ,CAACC,EAC/BI,EAAOF,EAAWF,EAAMD,EAC9BK,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EAExB,IAAIC,GAAOP,EAAAD,GAAA,YAAAA,EAAS,OAAT,KAAAC,EAAiB,EAC5B,GAAI,CAACO,EAAM,MAAO,CAAC,EACfA,EAAO,IACTA,EAAO,CAACA,EACRH,EAAW,CAACA,GAGd,IAAMI,EAAQ,CAAC,EAEf,KAAO,CAACF,GAAQD,GACdG,EAAM,KAAKC,EAAcR,EAAOK,CAAI,CAAC,EACrCA,EAAK,QAAQA,EAAK,QAAQ,EAAIC,CAAI,EAClCD,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EAG1B,OAAOF,EAAWI,EAAM,QAAQ,EAAIA,CACtC,CCvBO,SAASE,GAAmBC,EAAUC,EAAS,CA7CtD,IAAAC,EA8CE,GAAM,CAAE,MAAAC,EAAO,IAAAC,CAAI,EAAIC,GAAkBJ,GAAA,YAAAA,EAAS,GAAID,CAAQ,EAE1DM,EAAW,CAACH,EAAQ,CAACC,EACnBG,EAAgBD,EAClBE,EAAYJ,EAAKH,CAAO,EACxBO,EAAYL,EAAOF,CAAO,EACxBQ,EAAcH,EAChBE,EAAYL,EAAOF,CAAO,EAC1BO,EAAYJ,EAAKH,CAAO,EAE5BM,EAAc,SAAS,EAAE,EACzBE,EAAY,SAAS,EAAE,EAEvB,IAAMC,EAAU,CAACD,EAAY,QAAQ,EACjCE,EAAcJ,EAEdK,GAAOV,EAAAD,GAAA,YAAAA,EAAS,OAAT,KAAAC,EAAiB,EAC5B,GAAI,CAACU,EAAM,MAAO,CAAC,EACfA,EAAO,IACTA,EAAO,CAACA,EACRN,EAAW,CAACA,GAGd,IAAMO,EAAQ,CAAC,EAEf,KAAO,CAACF,GAAeD,GACrBC,EAAY,SAAS,CAAC,EACtBE,EAAM,KAAKC,EAAcX,EAAOQ,CAAW,CAAC,EAC5CA,EAAcI,GAASJ,EAAaC,CAAI,EACxCD,EAAY,SAAS,EAAE,EAGzB,OAAOL,EAAWO,EAAM,QAAQ,EAAIA,CACtC,CClDO,SAASG,GAAaC,EAAMC,EAAS,CAC1C,IAAMC,EAAQC,EAAOH,EAAMC,GAAA,YAAAA,EAAS,EAAE,EACtC,OAAAC,EAAM,QAAQ,CAAC,EACfA,EAAM,SAAS,EAAG,EAAG,EAAG,CAAC,EAClBA,CACT,CCNO,SAASE,GAAYC,EAAMC,EAAS,CACzC,IAAMC,EAAQC,EAAOH,EAAMC,GAAA,YAAAA,EAAS,EAAE,EACtC,OAAAC,EAAM,YAAYA,EAAM,YAAY,EAAG,EAAG,CAAC,EAC3CA,EAAM,SAAS,EAAG,EAAG,EAAG,CAAC,EAClBA,CACT,CCCO,SAASE,GAAUC,EAAMC,EAAS,CAlCzC,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAmCE,IAAMC,EAAiBC,EAAkB,EACnCC,GACJH,GAAAD,GAAAH,GAAAD,EAAAH,GAAA,YAAAA,EAAS,eAAT,KAAAG,GACAD,GAAAD,EAAAD,GAAA,YAAAA,EAAS,SAAT,YAAAC,EAAiB,UAAjB,YAAAC,EAA0B,eAD1B,KAAAE,EAEAK,EAAe,eAFf,KAAAF,GAGAD,GAAAD,EAAAI,EAAe,SAAf,YAAAJ,EAAuB,UAAvB,YAAAC,EAAgC,eAHhC,KAAAE,EAIA,EAEII,EAAQC,EAAOd,EAAMC,GAAA,YAAAA,EAAS,EAAE,EAChCc,EAAMF,EAAM,OAAO,EACnBG,GAAQD,EAAMH,EAAe,GAAK,GAAK,GAAKG,EAAMH,GAExD,OAAAC,EAAM,QAAQA,EAAM,QAAQ,EAAIG,CAAI,EACpCH,EAAM,SAAS,GAAI,GAAI,GAAI,GAAG,EACvBA,CACT,CClDA,IAAMI,GAAuB,CAC3B,iBAAkB,CAChB,IAAK,qBACL,MAAO,6BACT,EAEA,SAAU,CACR,IAAK,WACL,MAAO,mBACT,EAEA,YAAa,gBAEb,iBAAkB,CAChB,IAAK,qBACL,MAAO,6BACT,EAEA,SAAU,CACR,IAAK,WACL,MAAO,mBACT,EAEA,YAAa,CACX,IAAK,eACL,MAAO,uBACT,EAEA,OAAQ,CACN,IAAK,SACL,MAAO,iBACT,EAEA,MAAO,CACL,IAAK,QACL,MAAO,gBACT,EAEA,YAAa,CACX,IAAK,eACL,MAAO,uBACT,EAEA,OAAQ,CACN,IAAK,SACL,MAAO,iBACT,EAEA,aAAc,CACZ,IAAK,gBACL,MAAO,wBACT,EAEA,QAAS,CACP,IAAK,UACL,MAAO,kBACT,EAEA,YAAa,CACX,IAAK,eACL,MAAO,uBACT,EAEA,OAAQ,CACN,IAAK,SACL,MAAO,iBACT,EAEA,WAAY,CACV,IAAK,cACL,MAAO,sBACT,EAEA,aAAc,CACZ,IAAK,gBACL,MAAO,wBACT,CACF,EAEaC,GAAiB,CAACC,EAAOC,EAAOC,IAAY,CACvD,IAAIC,EAEEC,EAAaN,GAAqBE,CAAK,EAS7C,OARI,OAAOI,GAAe,SACxBD,EAASC,EACAH,IAAU,EACnBE,EAASC,EAAW,IAEpBD,EAASC,EAAW,MAAM,QAAQ,YAAaH,EAAM,SAAS,CAAC,EAG7DC,GAAA,MAAAA,EAAS,UACPA,EAAQ,YAAcA,EAAQ,WAAa,EACtC,MAAQC,EAERA,EAAS,OAIbA,CACT,ECpGO,SAASE,EAAkBC,EAAM,CACtC,MAAO,CAACC,EAAU,CAAC,IAAM,CAEvB,IAAMC,EAAQD,EAAQ,MAAQ,OAAOA,EAAQ,KAAK,EAAID,EAAK,aAE3D,OADeA,EAAK,QAAQE,CAAK,GAAKF,EAAK,QAAQA,EAAK,YAAY,CAEtE,CACF,CCLA,IAAMG,GAAc,CAClB,KAAM,mBACN,KAAM,aACN,OAAQ,WACR,MAAO,YACT,EAEMC,GAAc,CAClB,KAAM,iBACN,KAAM,cACN,OAAQ,YACR,MAAO,QACT,EAEMC,GAAkB,CACtB,KAAM,yBACN,KAAM,yBACN,OAAQ,qBACR,MAAO,oBACT,EAEaC,GAAa,CACxB,KAAMC,EAAkB,CACtB,QAASJ,GACT,aAAc,MAChB,CAAC,EAED,KAAMI,EAAkB,CACtB,QAASH,GACT,aAAc,MAChB,CAAC,EAED,SAAUG,EAAkB,CAC1B,QAASF,GACT,aAAc,MAChB,CAAC,CACH,ECtCA,IAAMG,GAAuB,CAC3B,SAAU,qBACV,UAAW,mBACX,MAAO,eACP,SAAU,kBACV,SAAU,cACV,MAAO,GACT,EAEaC,GAAiB,CAACC,EAAOC,EAAOC,EAAWC,IACtDL,GAAqBE,CAAK,EC6BrB,SAASI,EAAgBC,EAAM,CACpC,MAAO,CAACC,EAAOC,IAAY,CACzB,IAAMC,EAAUD,GAAA,MAAAA,EAAS,QAAU,OAAOA,EAAQ,OAAO,EAAI,aAEzDE,EACJ,GAAID,IAAY,cAAgBH,EAAK,iBAAkB,CACrD,IAAMK,EAAeL,EAAK,wBAA0BA,EAAK,aACnDM,EAAQJ,GAAA,MAAAA,EAAS,MAAQ,OAAOA,EAAQ,KAAK,EAAIG,EAEvDD,EACEJ,EAAK,iBAAiBM,CAAK,GAAKN,EAAK,iBAAiBK,CAAY,CACtE,KAAO,CACL,IAAMA,EAAeL,EAAK,aACpBM,EAAQJ,GAAA,MAAAA,EAAS,MAAQ,OAAOA,EAAQ,KAAK,EAAIF,EAAK,aAE5DI,EAAcJ,EAAK,OAAOM,CAAK,GAAKN,EAAK,OAAOK,CAAY,CAC9D,CACA,IAAME,EAAQP,EAAK,iBAAmBA,EAAK,iBAAiBC,CAAK,EAAIA,EAGrE,OAAOG,EAAYG,CAAK,CAC1B,CACF,CC3DA,IAAMC,GAAY,CAChB,OAAQ,CAAC,IAAK,GAAG,EACjB,YAAa,CAAC,KAAM,IAAI,EACxB,KAAM,CAAC,gBAAiB,aAAa,CACvC,EAEMC,GAAgB,CACpB,OAAQ,CAAC,IAAK,IAAK,IAAK,GAAG,EAC3B,YAAa,CAAC,KAAM,KAAM,KAAM,IAAI,EACpC,KAAM,CAAC,cAAe,cAAe,cAAe,aAAa,CACnE,EAMMC,GAAc,CAClB,OAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,EACnE,YAAa,CACX,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACF,EAEA,KAAM,CACJ,UACA,WACA,QACA,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,UACF,CACF,EAEMC,GAAY,CAChB,OAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,EAC1C,MAAO,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAI,EAChD,YAAa,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAK,EAC7D,KAAM,CACJ,SACA,SACA,UACA,YACA,WACA,SACA,UACF,CACF,EAEMC,GAAkB,CACtB,OAAQ,CACN,GAAI,IACJ,GAAI,IACJ,SAAU,KACV,KAAM,IACN,QAAS,UACT,UAAW,YACX,QAAS,UACT,MAAO,OACT,EACA,YAAa,CACX,GAAI,KACJ,GAAI,KACJ,SAAU,WACV,KAAM,OACN,QAAS,UACT,UAAW,YACX,QAAS,UACT,MAAO,OACT,EACA,KAAM,CACJ,GAAI,OACJ,GAAI,OACJ,SAAU,WACV,KAAM,OACN,QAAS,UACT,UAAW,YACX,QAAS,UACT,MAAO,OACT,CACF,EAEMC,GAA4B,CAChC,OAAQ,CACN,GAAI,IACJ,GAAI,IACJ,SAAU,KACV,KAAM,IACN,QAAS,iBACT,UAAW,mBACX,QAAS,iBACT,MAAO,UACT,EACA,YAAa,CACX,GAAI,KACJ,GAAI,KACJ,SAAU,WACV,KAAM,OACN,QAAS,iBACT,UAAW,mBACX,QAAS,iBACT,MAAO,UACT,EACA,KAAM,CACJ,GAAI,OACJ,GAAI,OACJ,SAAU,WACV,KAAM,OACN,QAAS,iBACT,UAAW,mBACX,QAAS,iBACT,MAAO,UACT,CACF,EAEMC,GAAgB,CAACC,EAAaC,IAAa,CAC/C,IAAMC,EAAS,OAAOF,CAAW,EAS3BG,EAASD,EAAS,IACxB,GAAIC,EAAS,IAAMA,EAAS,GAC1B,OAAQA,EAAS,GAAI,CACnB,IAAK,GACH,OAAOD,EAAS,KAClB,IAAK,GACH,OAAOA,EAAS,KAClB,IAAK,GACH,OAAOA,EAAS,IACpB,CAEF,OAAOA,EAAS,IAClB,EAEaE,GAAW,CACtB,cAAAL,GAEA,IAAKM,EAAgB,CACnB,OAAQZ,GACR,aAAc,MAChB,CAAC,EAED,QAASY,EAAgB,CACvB,OAAQX,GACR,aAAc,OACd,iBAAmBY,GAAYA,EAAU,CAC3C,CAAC,EAED,MAAOD,EAAgB,CACrB,OAAQV,GACR,aAAc,MAChB,CAAC,EAED,IAAKU,EAAgB,CACnB,OAAQT,GACR,aAAc,MAChB,CAAC,EAED,UAAWS,EAAgB,CACzB,OAAQR,GACR,aAAc,OACd,iBAAkBC,GAClB,uBAAwB,MAC1B,CAAC,CACH,EC1LO,SAASS,EAAaC,EAAM,CACjC,MAAO,CAACC,EAAQC,EAAU,CAAC,IAAM,CAC/B,IAAMC,EAAQD,EAAQ,MAEhBE,EACHD,GAASH,EAAK,cAAcG,CAAK,GAClCH,EAAK,cAAcA,EAAK,iBAAiB,EACrCK,EAAcJ,EAAO,MAAMG,CAAY,EAE7C,GAAI,CAACC,EACH,OAAO,KAET,IAAMC,EAAgBD,EAAY,CAAC,EAE7BE,EACHJ,GAASH,EAAK,cAAcG,CAAK,GAClCH,EAAK,cAAcA,EAAK,iBAAiB,EAErCQ,EAAM,MAAM,QAAQD,CAAa,EACnCE,GAAUF,EAAgBG,GAAYA,EAAQ,KAAKJ,CAAa,CAAC,EAEjEK,GAAQJ,EAAgBG,GAAYA,EAAQ,KAAKJ,CAAa,CAAC,EAE/DM,EAEJA,EAAQZ,EAAK,cAAgBA,EAAK,cAAcQ,CAAG,EAAIA,EACvDI,EAAQV,EAAQ,cAEZA,EAAQ,cAAcU,CAAK,EAC3BA,EAEJ,IAAMC,EAAOZ,EAAO,MAAMK,EAAc,MAAM,EAE9C,MAAO,CAAE,MAAAM,EAAO,KAAAC,CAAK,CACvB,CACF,CAEA,SAASF,GAAQG,EAAQC,EAAW,CAClC,QAAWP,KAAOM,EAChB,GACE,OAAO,UAAU,eAAe,KAAKA,EAAQN,CAAG,GAChDO,EAAUD,EAAON,CAAG,CAAC,EAErB,OAAOA,CAIb,CAEA,SAASC,GAAUO,EAAOD,EAAW,CACnC,QAASP,EAAM,EAAGA,EAAMQ,EAAM,OAAQR,IACpC,GAAIO,EAAUC,EAAMR,CAAG,CAAC,EACtB,OAAOA,CAIb,CCxDO,SAASS,EAAoBC,EAAM,CACxC,MAAO,CAACC,EAAQC,EAAU,CAAC,IAAM,CAC/B,IAAMC,EAAcF,EAAO,MAAMD,EAAK,YAAY,EAClD,GAAI,CAACG,EAAa,OAAO,KACzB,IAAMC,EAAgBD,EAAY,CAAC,EAE7BE,EAAcJ,EAAO,MAAMD,EAAK,YAAY,EAClD,GAAI,CAACK,EAAa,OAAO,KACzB,IAAIC,EAAQN,EAAK,cACbA,EAAK,cAAcK,EAAY,CAAC,CAAC,EACjCA,EAAY,CAAC,EAGjBC,EAAQJ,EAAQ,cAAgBA,EAAQ,cAAcI,CAAK,EAAIA,EAE/D,IAAMC,EAAON,EAAO,MAAMG,EAAc,MAAM,EAE9C,MAAO,CAAE,MAAAE,EAAO,KAAAC,CAAK,CACvB,CACF,CChBA,IAAMC,GAA4B,wBAC5BC,GAA4B,OAE5BC,GAAmB,CACvB,OAAQ,UACR,YAAa,6DACb,KAAM,4DACR,EACMC,GAAmB,CACvB,IAAK,CAAC,MAAO,SAAS,CACxB,EAEMC,GAAuB,CAC3B,OAAQ,WACR,YAAa,YACb,KAAM,gCACR,EACMC,GAAuB,CAC3B,IAAK,CAAC,KAAM,KAAM,KAAM,IAAI,CAC9B,EAEMC,GAAqB,CACzB,OAAQ,eACR,YAAa,sDACb,KAAM,2FACR,EACMC,GAAqB,CACzB,OAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACF,EAEA,IAAK,CACH,OACA,MACA,QACA,OACA,QACA,QACA,QACA,OACA,MACA,MACA,MACA,KACF,CACF,EAEMC,GAAmB,CACvB,OAAQ,YACR,MAAO,2BACP,YAAa,kCACb,KAAM,8DACR,EACMC,GAAmB,CACvB,OAAQ,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAK,EACxD,IAAK,CAAC,OAAQ,MAAO,OAAQ,MAAO,OAAQ,MAAO,MAAM,CAC3D,EAEMC,GAAyB,CAC7B,OAAQ,6DACR,IAAK,gFACP,EACMC,GAAyB,CAC7B,IAAK,CACH,GAAI,MACJ,GAAI,MACJ,SAAU,OACV,KAAM,OACN,QAAS,WACT,UAAW,aACX,QAAS,WACT,MAAO,QACT,CACF,EAEaC,GAAQ,CACnB,cAAeC,EAAoB,CACjC,aAAcb,GACd,aAAcC,GACd,cAAgBa,GAAU,SAASA,EAAO,EAAE,CAC9C,CAAC,EAED,IAAKC,EAAa,CAChB,cAAeb,GACf,kBAAmB,OACnB,cAAeC,GACf,kBAAmB,KACrB,CAAC,EAED,QAASY,EAAa,CACpB,cAAeX,GACf,kBAAmB,OACnB,cAAeC,GACf,kBAAmB,MACnB,cAAgBW,GAAUA,EAAQ,CACpC,CAAC,EAED,MAAOD,EAAa,CAClB,cAAeT,GACf,kBAAmB,OACnB,cAAeC,GACf,kBAAmB,KACrB,CAAC,EAED,IAAKQ,EAAa,CAChB,cAAeP,GACf,kBAAmB,OACnB,cAAeC,GACf,kBAAmB,KACrB,CAAC,EAED,UAAWM,EAAa,CACtB,cAAeL,GACf,kBAAmB,MACnB,cAAeC,GACf,kBAAmB,KACrB,CAAC,CACH,ECrHO,IAAMM,GAAO,CAClB,KAAM,QACN,eAAgBC,GAChB,WAAYC,GACZ,eAAgBC,GAChB,SAAUC,GACV,MAAOC,GACP,QAAS,CACP,aAAc,EACd,sBAAuB,CACzB,CACF,ECCO,SAASC,GAAaC,EAAMC,EAAS,CAC1C,IAAMC,EAAQC,EAAOH,EAAMC,GAAA,YAAAA,EAAS,EAAE,EAGtC,OAFaG,GAAyBF,EAAOG,GAAYH,CAAK,CAAC,EACtC,CAE3B,CCFO,SAASI,GAAWC,EAAMC,EAAS,CACxC,IAAMC,EAAQC,EAAOH,EAAMC,GAAA,YAAAA,EAAS,EAAE,EAChCG,EAAO,CAACC,GAAeH,CAAK,EAAI,CAACI,GAAmBJ,CAAK,EAK/D,OAAO,KAAK,MAAME,EAAOG,EAAkB,EAAI,CACjD,CCMO,SAASC,GAAYC,EAAMC,EAAS,CA3C3C,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EA4CE,IAAMC,EAAQC,EAAOX,EAAMC,GAAA,YAAAA,EAAS,EAAE,EAChCW,EAAOF,EAAM,YAAY,EAEzBG,EAAiBC,EAAkB,EACnCC,GACJN,GAAAD,GAAAH,GAAAD,EAAAH,GAAA,YAAAA,EAAS,wBAAT,KAAAG,GACAD,GAAAD,EAAAD,GAAA,YAAAA,EAAS,SAAT,YAAAC,EAAiB,UAAjB,YAAAC,EAA0B,wBAD1B,KAAAE,EAEAQ,EAAe,wBAFf,KAAAL,GAGAD,GAAAD,EAAAO,EAAe,SAAf,YAAAP,EAAuB,UAAvB,YAAAC,EAAgC,wBAHhC,KAAAE,EAIA,EAEIO,EAAsBC,GAAchB,GAAA,YAAAA,EAAS,KAAMD,EAAM,CAAC,EAChEgB,EAAoB,YAAYJ,EAAO,EAAG,EAAGG,CAAqB,EAClEC,EAAoB,SAAS,EAAG,EAAG,EAAG,CAAC,EACvC,IAAME,EAAkBC,EAAYH,EAAqBf,CAAO,EAE1DmB,EAAsBH,GAAchB,GAAA,YAAAA,EAAS,KAAMD,EAAM,CAAC,EAChEoB,EAAoB,YAAYR,EAAM,EAAGG,CAAqB,EAC9DK,EAAoB,SAAS,EAAG,EAAG,EAAG,CAAC,EACvC,IAAMC,EAAkBF,EAAYC,EAAqBnB,CAAO,EAEhE,MAAI,CAACS,GAAS,CAACQ,EACNN,EAAO,EACL,CAACF,GAAS,CAACW,EACbT,EAEAA,EAAO,CAElB,CC1BO,SAASU,GAAgBC,EAAMC,EAAS,CA9C/C,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EA+CE,IAAMC,EAAiBC,EAAkB,EACnCC,GACJH,GAAAD,GAAAH,GAAAD,EAAAH,GAAA,YAAAA,EAAS,wBAAT,KAAAG,GACAD,GAAAD,EAAAD,GAAA,YAAAA,EAAS,SAAT,YAAAC,EAAiB,UAAjB,YAAAC,EAA0B,wBAD1B,KAAAE,EAEAK,EAAe,wBAFf,KAAAF,GAGAD,GAAAD,EAAAI,EAAe,SAAf,YAAAJ,EAAuB,UAAvB,YAAAC,EAAgC,wBAHhC,KAAAE,EAIA,EAEII,EAAOC,GAAYd,EAAMC,CAAO,EAChCc,EAAYC,GAAcf,GAAA,YAAAA,EAAS,KAAMD,EAAM,CAAC,EACtD,OAAAe,EAAU,YAAYF,EAAM,EAAGD,CAAqB,EACpDG,EAAU,SAAS,EAAG,EAAG,EAAG,CAAC,EACfE,EAAYF,EAAWd,CAAO,CAE9C,CClBO,SAASiB,GAAQC,EAAMC,EAAS,CACrC,IAAMC,EAAQC,EAAOH,EAAMC,GAAA,YAAAA,EAAS,EAAE,EAChCG,EAAO,CAACC,EAAYH,EAAOD,CAAO,EAAI,CAACK,GAAgBJ,EAAOD,CAAO,EAK3E,OAAO,KAAK,MAAMG,EAAOG,EAAkB,EAAI,CACjD,CCnDO,SAASC,EAAgBC,EAAQC,EAAc,CACpD,IAAMC,EAAOF,EAAS,EAAI,IAAM,GAC1BG,EAAS,KAAK,IAAIH,CAAM,EAAE,SAAS,EAAE,SAASC,EAAc,GAAG,EACrE,OAAOC,EAAOC,CAChB,CCWO,IAAMC,EAAkB,CAE7B,EAAEC,EAAMC,EAAO,CAUb,IAAMC,EAAaF,EAAK,YAAY,EAE9BG,EAAOD,EAAa,EAAIA,EAAa,EAAIA,EAC/C,OAAOE,EAAgBH,IAAU,KAAOE,EAAO,IAAMA,EAAMF,EAAM,MAAM,CACzE,EAGA,EAAED,EAAMC,EAAO,CACb,IAAMI,EAAQL,EAAK,SAAS,EAC5B,OAAOC,IAAU,IAAM,OAAOI,EAAQ,CAAC,EAAID,EAAgBC,EAAQ,EAAG,CAAC,CACzE,EAGA,EAAEL,EAAMC,EAAO,CACb,OAAOG,EAAgBJ,EAAK,QAAQ,EAAGC,EAAM,MAAM,CACrD,EAGA,EAAED,EAAMC,EAAO,CACb,IAAMK,EAAqBN,EAAK,SAAS,EAAI,IAAM,EAAI,KAAO,KAE9D,OAAQC,EAAO,CACb,IAAK,IACL,IAAK,KACH,OAAOK,EAAmB,YAAY,EACxC,IAAK,MACH,OAAOA,EACT,IAAK,QACH,OAAOA,EAAmB,CAAC,EAC7B,IAAK,OACL,QACE,OAAOA,IAAuB,KAAO,OAAS,MAClD,CACF,EAGA,EAAEN,EAAMC,EAAO,CACb,OAAOG,EAAgBJ,EAAK,SAAS,EAAI,IAAM,GAAIC,EAAM,MAAM,CACjE,EAGA,EAAED,EAAMC,EAAO,CACb,OAAOG,EAAgBJ,EAAK,SAAS,EAAGC,EAAM,MAAM,CACtD,EAGA,EAAED,EAAMC,EAAO,CACb,OAAOG,EAAgBJ,EAAK,WAAW,EAAGC,EAAM,MAAM,CACxD,EAGA,EAAED,EAAMC,EAAO,CACb,OAAOG,EAAgBJ,EAAK,WAAW,EAAGC,EAAM,MAAM,CACxD,EAGA,EAAED,EAAMC,EAAO,CACb,IAAMM,EAAiBN,EAAM,OACvBO,EAAeR,EAAK,gBAAgB,EACpCS,EAAoB,KAAK,MAC7BD,EAAe,KAAK,IAAI,GAAID,EAAiB,CAAC,CAChD,EACA,OAAOH,EAAgBK,EAAmBR,EAAM,MAAM,CACxD,CACF,EClFA,IAAMS,GAAgB,CACpB,GAAI,KACJ,GAAI,KACJ,SAAU,WACV,KAAM,OACN,QAAS,UACT,UAAW,YACX,QAAS,UACT,MAAO,OACT,EAgDaC,GAAa,CAExB,EAAG,SAAUC,EAAMC,EAAOC,EAAU,CAClC,IAAMC,EAAMH,EAAK,YAAY,EAAI,EAAI,EAAI,EACzC,OAAQC,EAAO,CAEb,IAAK,IACL,IAAK,KACL,IAAK,MACH,OAAOC,EAAS,IAAIC,EAAK,CAAE,MAAO,aAAc,CAAC,EAEnD,IAAK,QACH,OAAOD,EAAS,IAAIC,EAAK,CAAE,MAAO,QAAS,CAAC,EAE9C,IAAK,OACL,QACE,OAAOD,EAAS,IAAIC,EAAK,CAAE,MAAO,MAAO,CAAC,CAC9C,CACF,EAGA,EAAG,SAAUH,EAAMC,EAAOC,EAAU,CAElC,GAAID,IAAU,KAAM,CAClB,IAAMG,EAAaJ,EAAK,YAAY,EAE9BK,EAAOD,EAAa,EAAIA,EAAa,EAAIA,EAC/C,OAAOF,EAAS,cAAcG,EAAM,CAAE,KAAM,MAAO,CAAC,CACtD,CAEA,OAAOC,EAAgB,EAAEN,EAAMC,CAAK,CACtC,EAGA,EAAG,SAAUD,EAAMC,EAAOC,EAAUK,EAAS,CAC3C,IAAMC,EAAiBC,GAAYT,EAAMO,CAAO,EAE1CG,EAAWF,EAAiB,EAAIA,EAAiB,EAAIA,EAG3D,GAAIP,IAAU,KAAM,CAClB,IAAMU,EAAeD,EAAW,IAChC,OAAOE,EAAgBD,EAAc,CAAC,CACxC,CAGA,OAAIV,IAAU,KACLC,EAAS,cAAcQ,EAAU,CAAE,KAAM,MAAO,CAAC,EAInDE,EAAgBF,EAAUT,EAAM,MAAM,CAC/C,EAGA,EAAG,SAAUD,EAAMC,EAAO,CACxB,IAAMY,EAAcC,GAAed,CAAI,EAGvC,OAAOY,EAAgBC,EAAaZ,EAAM,MAAM,CAClD,EAWA,EAAG,SAAUD,EAAMC,EAAO,CACxB,IAAMI,EAAOL,EAAK,YAAY,EAC9B,OAAOY,EAAgBP,EAAMJ,EAAM,MAAM,CAC3C,EAGA,EAAG,SAAUD,EAAMC,EAAOC,EAAU,CAClC,IAAMa,EAAU,KAAK,MAAMf,EAAK,SAAS,EAAI,GAAK,CAAC,EACnD,OAAQC,EAAO,CAEb,IAAK,IACH,OAAO,OAAOc,CAAO,EAEvB,IAAK,KACH,OAAOH,EAAgBG,EAAS,CAAC,EAEnC,IAAK,KACH,OAAOb,EAAS,cAAca,EAAS,CAAE,KAAM,SAAU,CAAC,EAE5D,IAAK,MACH,OAAOb,EAAS,QAAQa,EAAS,CAC/B,MAAO,cACP,QAAS,YACX,CAAC,EAEH,IAAK,QACH,OAAOb,EAAS,QAAQa,EAAS,CAC/B,MAAO,SACP,QAAS,YACX,CAAC,EAEH,IAAK,OACL,QACE,OAAOb,EAAS,QAAQa,EAAS,CAC/B,MAAO,OACP,QAAS,YACX,CAAC,CACL,CACF,EAGA,EAAG,SAAUf,EAAMC,EAAOC,EAAU,CAClC,IAAMa,EAAU,KAAK,MAAMf,EAAK,SAAS,EAAI,GAAK,CAAC,EACnD,OAAQC,EAAO,CAEb,IAAK,IACH,OAAO,OAAOc,CAAO,EAEvB,IAAK,KACH,OAAOH,EAAgBG,EAAS,CAAC,EAEnC,IAAK,KACH,OAAOb,EAAS,cAAca,EAAS,CAAE,KAAM,SAAU,CAAC,EAE5D,IAAK,MACH,OAAOb,EAAS,QAAQa,EAAS,CAC/B,MAAO,cACP,QAAS,YACX,CAAC,EAEH,IAAK,QACH,OAAOb,EAAS,QAAQa,EAAS,CAC/B,MAAO,SACP,QAAS,YACX,CAAC,EAEH,IAAK,OACL,QACE,OAAOb,EAAS,QAAQa,EAAS,CAC/B,MAAO,OACP,QAAS,YACX,CAAC,CACL,CACF,EAGA,EAAG,SAAUf,EAAMC,EAAOC,EAAU,CAClC,IAAMc,EAAQhB,EAAK,SAAS,EAC5B,OAAQC,EAAO,CACb,IAAK,IACL,IAAK,KACH,OAAOK,EAAgB,EAAEN,EAAMC,CAAK,EAEtC,IAAK,KACH,OAAOC,EAAS,cAAcc,EAAQ,EAAG,CAAE,KAAM,OAAQ,CAAC,EAE5D,IAAK,MACH,OAAOd,EAAS,MAAMc,EAAO,CAC3B,MAAO,cACP,QAAS,YACX,CAAC,EAEH,IAAK,QACH,OAAOd,EAAS,MAAMc,EAAO,CAC3B,MAAO,SACP,QAAS,YACX,CAAC,EAEH,IAAK,OACL,QACE,OAAOd,EAAS,MAAMc,EAAO,CAAE,MAAO,OAAQ,QAAS,YAAa,CAAC,CACzE,CACF,EAGA,EAAG,SAAUhB,EAAMC,EAAOC,EAAU,CAClC,IAAMc,EAAQhB,EAAK,SAAS,EAC5B,OAAQC,EAAO,CAEb,IAAK,IACH,OAAO,OAAOe,EAAQ,CAAC,EAEzB,IAAK,KACH,OAAOJ,EAAgBI,EAAQ,EAAG,CAAC,EAErC,IAAK,KACH,OAAOd,EAAS,cAAcc,EAAQ,EAAG,CAAE,KAAM,OAAQ,CAAC,EAE5D,IAAK,MACH,OAAOd,EAAS,MAAMc,EAAO,CAC3B,MAAO,cACP,QAAS,YACX,CAAC,EAEH,IAAK,QACH,OAAOd,EAAS,MAAMc,EAAO,CAC3B,MAAO,SACP,QAAS,YACX,CAAC,EAEH,IAAK,OACL,QACE,OAAOd,EAAS,MAAMc,EAAO,CAAE,MAAO,OAAQ,QAAS,YAAa,CAAC,CACzE,CACF,EAGA,EAAG,SAAUhB,EAAMC,EAAOC,EAAUK,EAAS,CAC3C,IAAMU,EAAOC,GAAQlB,EAAMO,CAAO,EAElC,OAAIN,IAAU,KACLC,EAAS,cAAce,EAAM,CAAE,KAAM,MAAO,CAAC,EAG/CL,EAAgBK,EAAMhB,EAAM,MAAM,CAC3C,EAGA,EAAG,SAAUD,EAAMC,EAAOC,EAAU,CAClC,IAAMiB,EAAUC,GAAWpB,CAAI,EAE/B,OAAIC,IAAU,KACLC,EAAS,cAAciB,EAAS,CAAE,KAAM,MAAO,CAAC,EAGlDP,EAAgBO,EAASlB,EAAM,MAAM,CAC9C,EAGA,EAAG,SAAUD,EAAMC,EAAOC,EAAU,CAClC,OAAID,IAAU,KACLC,EAAS,cAAcF,EAAK,QAAQ,EAAG,CAAE,KAAM,MAAO,CAAC,EAGzDM,EAAgB,EAAEN,EAAMC,CAAK,CACtC,EAGA,EAAG,SAAUD,EAAMC,EAAOC,EAAU,CAClC,IAAMmB,EAAYC,GAAatB,CAAI,EAEnC,OAAIC,IAAU,KACLC,EAAS,cAAcmB,EAAW,CAAE,KAAM,WAAY,CAAC,EAGzDT,EAAgBS,EAAWpB,EAAM,MAAM,CAChD,EAGA,EAAG,SAAUD,EAAMC,EAAOC,EAAU,CAClC,IAAMqB,EAAYvB,EAAK,OAAO,EAC9B,OAAQC,EAAO,CAEb,IAAK,IACL,IAAK,KACL,IAAK,MACH,OAAOC,EAAS,IAAIqB,EAAW,CAC7B,MAAO,cACP,QAAS,YACX,CAAC,EAEH,IAAK,QACH,OAAOrB,EAAS,IAAIqB,EAAW,CAC7B,MAAO,SACP,QAAS,YACX,CAAC,EAEH,IAAK,SACH,OAAOrB,EAAS,IAAIqB,EAAW,CAC7B,MAAO,QACP,QAAS,YACX,CAAC,EAEH,IAAK,OACL,QACE,OAAOrB,EAAS,IAAIqB,EAAW,CAC7B,MAAO,OACP,QAAS,YACX,CAAC,CACL,CACF,EAGA,EAAG,SAAUvB,EAAMC,EAAOC,EAAUK,EAAS,CAC3C,IAAMgB,EAAYvB,EAAK,OAAO,EACxBwB,GAAkBD,EAAYhB,EAAQ,aAAe,GAAK,GAAK,EACrE,OAAQN,EAAO,CAEb,IAAK,IACH,OAAO,OAAOuB,CAAc,EAE9B,IAAK,KACH,OAAOZ,EAAgBY,EAAgB,CAAC,EAE1C,IAAK,KACH,OAAOtB,EAAS,cAAcsB,EAAgB,CAAE,KAAM,KAAM,CAAC,EAC/D,IAAK,MACH,OAAOtB,EAAS,IAAIqB,EAAW,CAC7B,MAAO,cACP,QAAS,YACX,CAAC,EAEH,IAAK,QACH,OAAOrB,EAAS,IAAIqB,EAAW,CAC7B,MAAO,SACP,QAAS,YACX,CAAC,EAEH,IAAK,SACH,OAAOrB,EAAS,IAAIqB,EAAW,CAC7B,MAAO,QACP,QAAS,YACX,CAAC,EAEH,IAAK,OACL,QACE,OAAOrB,EAAS,IAAIqB,EAAW,CAC7B,MAAO,OACP,QAAS,YACX,CAAC,CACL,CACF,EAGA,EAAG,SAAUvB,EAAMC,EAAOC,EAAUK,EAAS,CAC3C,IAAMgB,EAAYvB,EAAK,OAAO,EACxBwB,GAAkBD,EAAYhB,EAAQ,aAAe,GAAK,GAAK,EACrE,OAAQN,EAAO,CAEb,IAAK,IACH,OAAO,OAAOuB,CAAc,EAE9B,IAAK,KACH,OAAOZ,EAAgBY,EAAgBvB,EAAM,MAAM,EAErD,IAAK,KACH,OAAOC,EAAS,cAAcsB,EAAgB,CAAE,KAAM,KAAM,CAAC,EAC/D,IAAK,MACH,OAAOtB,EAAS,IAAIqB,EAAW,CAC7B,MAAO,cACP,QAAS,YACX,CAAC,EAEH,IAAK,QACH,OAAOrB,EAAS,IAAIqB,EAAW,CAC7B,MAAO,SACP,QAAS,YACX,CAAC,EAEH,IAAK,SACH,OAAOrB,EAAS,IAAIqB,EAAW,CAC7B,MAAO,QACP,QAAS,YACX,CAAC,EAEH,IAAK,OACL,QACE,OAAOrB,EAAS,IAAIqB,EAAW,CAC7B,MAAO,OACP,QAAS,YACX,CAAC,CACL,CACF,EAGA,EAAG,SAAUvB,EAAMC,EAAOC,EAAU,CAClC,IAAMqB,EAAYvB,EAAK,OAAO,EACxByB,EAAeF,IAAc,EAAI,EAAIA,EAC3C,OAAQtB,EAAO,CAEb,IAAK,IACH,OAAO,OAAOwB,CAAY,EAE5B,IAAK,KACH,OAAOb,EAAgBa,EAAcxB,EAAM,MAAM,EAEnD,IAAK,KACH,OAAOC,EAAS,cAAcuB,EAAc,CAAE,KAAM,KAAM,CAAC,EAE7D,IAAK,MACH,OAAOvB,EAAS,IAAIqB,EAAW,CAC7B,MAAO,cACP,QAAS,YACX,CAAC,EAEH,IAAK,QACH,OAAOrB,EAAS,IAAIqB,EAAW,CAC7B,MAAO,SACP,QAAS,YACX,CAAC,EAEH,IAAK,SACH,OAAOrB,EAAS,IAAIqB,EAAW,CAC7B,MAAO,QACP,QAAS,YACX,CAAC,EAEH,IAAK,OACL,QACE,OAAOrB,EAAS,IAAIqB,EAAW,CAC7B,MAAO,OACP,QAAS,YACX,CAAC,CACL,CACF,EAGA,EAAG,SAAUvB,EAAMC,EAAOC,EAAU,CAElC,IAAMwB,EADQ1B,EAAK,SAAS,EACO,IAAM,EAAI,KAAO,KAEpD,OAAQC,EAAO,CACb,IAAK,IACL,IAAK,KACH,OAAOC,EAAS,UAAUwB,EAAoB,CAC5C,MAAO,cACP,QAAS,YACX,CAAC,EACH,IAAK,MACH,OAAOxB,EACJ,UAAUwB,EAAoB,CAC7B,MAAO,cACP,QAAS,YACX,CAAC,EACA,YAAY,EACjB,IAAK,QACH,OAAOxB,EAAS,UAAUwB,EAAoB,CAC5C,MAAO,SACP,QAAS,YACX,CAAC,EACH,IAAK,OACL,QACE,OAAOxB,EAAS,UAAUwB,EAAoB,CAC5C,MAAO,OACP,QAAS,YACX,CAAC,CACL,CACF,EAGA,EAAG,SAAU1B,EAAMC,EAAOC,EAAU,CAClC,IAAMyB,EAAQ3B,EAAK,SAAS,EACxB0B,EASJ,OARIC,IAAU,GACZD,EAAqB5B,GAAc,KAC1B6B,IAAU,EACnBD,EAAqB5B,GAAc,SAEnC4B,EAAqBC,EAAQ,IAAM,EAAI,KAAO,KAGxC1B,EAAO,CACb,IAAK,IACL,IAAK,KACH,OAAOC,EAAS,UAAUwB,EAAoB,CAC5C,MAAO,cACP,QAAS,YACX,CAAC,EACH,IAAK,MACH,OAAOxB,EACJ,UAAUwB,EAAoB,CAC7B,MAAO,cACP,QAAS,YACX,CAAC,EACA,YAAY,EACjB,IAAK,QACH,OAAOxB,EAAS,UAAUwB,EAAoB,CAC5C,MAAO,SACP,QAAS,YACX,CAAC,EACH,IAAK,OACL,QACE,OAAOxB,EAAS,UAAUwB,EAAoB,CAC5C,MAAO,OACP,QAAS,YACX,CAAC,CACL,CACF,EAGA,EAAG,SAAU1B,EAAMC,EAAOC,EAAU,CAClC,IAAMyB,EAAQ3B,EAAK,SAAS,EACxB0B,EAWJ,OAVIC,GAAS,GACXD,EAAqB5B,GAAc,QAC1B6B,GAAS,GAClBD,EAAqB5B,GAAc,UAC1B6B,GAAS,EAClBD,EAAqB5B,GAAc,QAEnC4B,EAAqB5B,GAAc,MAG7BG,EAAO,CACb,IAAK,IACL,IAAK,KACL,IAAK,MACH,OAAOC,EAAS,UAAUwB,EAAoB,CAC5C,MAAO,cACP,QAAS,YACX,CAAC,EACH,IAAK,QACH,OAAOxB,EAAS,UAAUwB,EAAoB,CAC5C,MAAO,SACP,QAAS,YACX,CAAC,EACH,IAAK,OACL,QACE,OAAOxB,EAAS,UAAUwB,EAAoB,CAC5C,MAAO,OACP,QAAS,YACX,CAAC,CACL,CACF,EAGA,EAAG,SAAU1B,EAAMC,EAAOC,EAAU,CAClC,GAAID,IAAU,KAAM,CAClB,IAAI0B,EAAQ3B,EAAK,SAAS,EAAI,GAC9B,OAAI2B,IAAU,IAAGA,EAAQ,IAClBzB,EAAS,cAAcyB,EAAO,CAAE,KAAM,MAAO,CAAC,CACvD,CAEA,OAAOrB,EAAgB,EAAEN,EAAMC,CAAK,CACtC,EAGA,EAAG,SAAUD,EAAMC,EAAOC,EAAU,CAClC,OAAID,IAAU,KACLC,EAAS,cAAcF,EAAK,SAAS,EAAG,CAAE,KAAM,MAAO,CAAC,EAG1DM,EAAgB,EAAEN,EAAMC,CAAK,CACtC,EAGA,EAAG,SAAUD,EAAMC,EAAOC,EAAU,CAClC,IAAMyB,EAAQ3B,EAAK,SAAS,EAAI,GAEhC,OAAIC,IAAU,KACLC,EAAS,cAAcyB,EAAO,CAAE,KAAM,MAAO,CAAC,EAGhDf,EAAgBe,EAAO1B,EAAM,MAAM,CAC5C,EAGA,EAAG,SAAUD,EAAMC,EAAOC,EAAU,CAClC,IAAIyB,EAAQ3B,EAAK,SAAS,EAG1B,OAFI2B,IAAU,IAAGA,EAAQ,IAErB1B,IAAU,KACLC,EAAS,cAAcyB,EAAO,CAAE,KAAM,MAAO,CAAC,EAGhDf,EAAgBe,EAAO1B,EAAM,MAAM,CAC5C,EAGA,EAAG,SAAUD,EAAMC,EAAOC,EAAU,CAClC,OAAID,IAAU,KACLC,EAAS,cAAcF,EAAK,WAAW,EAAG,CAAE,KAAM,QAAS,CAAC,EAG9DM,EAAgB,EAAEN,EAAMC,CAAK,CACtC,EAGA,EAAG,SAAUD,EAAMC,EAAOC,EAAU,CAClC,OAAID,IAAU,KACLC,EAAS,cAAcF,EAAK,WAAW,EAAG,CAAE,KAAM,QAAS,CAAC,EAG9DM,EAAgB,EAAEN,EAAMC,CAAK,CACtC,EAGA,EAAG,SAAUD,EAAMC,EAAO,CACxB,OAAOK,EAAgB,EAAEN,EAAMC,CAAK,CACtC,EAGA,EAAG,SAAUD,EAAMC,EAAO2B,EAAW,CACnC,IAAMC,EAAiB7B,EAAK,kBAAkB,EAE9C,GAAI6B,IAAmB,EACrB,MAAO,IAGT,OAAQ5B,EAAO,CAEb,IAAK,IACH,OAAO6B,GAAkCD,CAAc,EAKzD,IAAK,OACL,IAAK,KACH,OAAOE,GAAeF,CAAc,EAKtC,IAAK,QACL,IAAK,MACL,QACE,OAAOE,GAAeF,EAAgB,GAAG,CAC7C,CACF,EAGA,EAAG,SAAU7B,EAAMC,EAAO2B,EAAW,CACnC,IAAMC,EAAiB7B,EAAK,kBAAkB,EAE9C,OAAQC,EAAO,CAEb,IAAK,IACH,OAAO6B,GAAkCD,CAAc,EAKzD,IAAK,OACL,IAAK,KACH,OAAOE,GAAeF,CAAc,EAKtC,IAAK,QACL,IAAK,MACL,QACE,OAAOE,GAAeF,EAAgB,GAAG,CAC7C,CACF,EAGA,EAAG,SAAU7B,EAAMC,EAAO2B,EAAW,CACnC,IAAMC,EAAiB7B,EAAK,kBAAkB,EAE9C,OAAQC,EAAO,CAEb,IAAK,IACL,IAAK,KACL,IAAK,MACH,MAAO,MAAQ+B,GAAoBH,EAAgB,GAAG,EAExD,IAAK,OACL,QACE,MAAO,MAAQE,GAAeF,EAAgB,GAAG,CACrD,CACF,EAGA,EAAG,SAAU7B,EAAMC,EAAO2B,EAAW,CACnC,IAAMC,EAAiB7B,EAAK,kBAAkB,EAE9C,OAAQC,EAAO,CAEb,IAAK,IACL,IAAK,KACL,IAAK,MACH,MAAO,MAAQ+B,GAAoBH,EAAgB,GAAG,EAExD,IAAK,OACL,QACE,MAAO,MAAQE,GAAeF,EAAgB,GAAG,CACrD,CACF,EAGA,EAAG,SAAU7B,EAAMC,EAAO2B,EAAW,CACnC,IAAMK,EAAY,KAAK,MAAM,CAACjC,EAAO,GAAI,EACzC,OAAOY,EAAgBqB,EAAWhC,EAAM,MAAM,CAChD,EAGA,EAAG,SAAUD,EAAMC,EAAO2B,EAAW,CACnC,OAAOhB,EAAgB,CAACZ,EAAMC,EAAM,MAAM,CAC5C,CACF,EAEA,SAAS+B,GAAoBE,EAAQC,EAAY,GAAI,CACnD,IAAMC,EAAOF,EAAS,EAAI,IAAM,IAC1BG,EAAY,KAAK,IAAIH,CAAM,EAC3BP,EAAQ,KAAK,MAAMU,EAAY,EAAE,EACjCC,EAAUD,EAAY,GAC5B,OAAIC,IAAY,EACPF,EAAO,OAAOT,CAAK,EAErBS,EAAO,OAAOT,CAAK,EAAIQ,EAAYvB,EAAgB0B,EAAS,CAAC,CACtE,CAEA,SAASR,GAAkCI,EAAQC,EAAW,CAC5D,OAAID,EAAS,KAAO,GACLA,EAAS,EAAI,IAAM,KAClBtB,EAAgB,KAAK,IAAIsB,CAAM,EAAI,GAAI,CAAC,EAEjDH,GAAeG,EAAQC,CAAS,CACzC,CAEA,SAASJ,GAAeG,EAAQC,EAAY,GAAI,CAC9C,IAAMC,EAAOF,EAAS,EAAI,IAAM,IAC1BG,EAAY,KAAK,IAAIH,CAAM,EAC3BP,EAAQf,EAAgB,KAAK,MAAMyB,EAAY,EAAE,EAAG,CAAC,EACrDC,EAAU1B,EAAgByB,EAAY,GAAI,CAAC,EACjD,OAAOD,EAAOT,EAAQQ,EAAYG,CACpC,CCvwBA,IAAMC,GAAoB,CAACC,EAASC,IAAe,CACjD,OAAQD,EAAS,CACf,IAAK,IACH,OAAOC,EAAW,KAAK,CAAE,MAAO,OAAQ,CAAC,EAC3C,IAAK,KACH,OAAOA,EAAW,KAAK,CAAE,MAAO,QAAS,CAAC,EAC5C,IAAK,MACH,OAAOA,EAAW,KAAK,CAAE,MAAO,MAAO,CAAC,EAC1C,IAAK,OACL,QACE,OAAOA,EAAW,KAAK,CAAE,MAAO,MAAO,CAAC,CAC5C,CACF,EAEMC,GAAoB,CAACF,EAASC,IAAe,CACjD,OAAQD,EAAS,CACf,IAAK,IACH,OAAOC,EAAW,KAAK,CAAE,MAAO,OAAQ,CAAC,EAC3C,IAAK,KACH,OAAOA,EAAW,KAAK,CAAE,MAAO,QAAS,CAAC,EAC5C,IAAK,MACH,OAAOA,EAAW,KAAK,CAAE,MAAO,MAAO,CAAC,EAC1C,IAAK,OACL,QACE,OAAOA,EAAW,KAAK,CAAE,MAAO,MAAO,CAAC,CAC5C,CACF,EAEME,GAAwB,CAACH,EAASC,IAAe,CACrD,IAAMG,EAAcJ,EAAQ,MAAM,WAAW,GAAK,CAAC,EAC7CK,EAAcD,EAAY,CAAC,EAC3BE,EAAcF,EAAY,CAAC,EAEjC,GAAI,CAACE,EACH,OAAOP,GAAkBC,EAASC,CAAU,EAG9C,IAAIM,EAEJ,OAAQF,EAAa,CACnB,IAAK,IACHE,EAAiBN,EAAW,SAAS,CAAE,MAAO,OAAQ,CAAC,EACvD,MACF,IAAK,KACHM,EAAiBN,EAAW,SAAS,CAAE,MAAO,QAAS,CAAC,EACxD,MACF,IAAK,MACHM,EAAiBN,EAAW,SAAS,CAAE,MAAO,MAAO,CAAC,EACtD,MACF,IAAK,OACL,QACEM,EAAiBN,EAAW,SAAS,CAAE,MAAO,MAAO,CAAC,EACtD,KACJ,CAEA,OAAOM,EACJ,QAAQ,WAAYR,GAAkBM,EAAaJ,CAAU,CAAC,EAC9D,QAAQ,WAAYC,GAAkBI,EAAaL,CAAU,CAAC,CACnE,EAEaO,GAAiB,CAC5B,EAAGN,GACH,EAAGC,EACL,EC/DA,IAAMM,GAAmB,OACnBC,GAAkB,OAElBC,GAAc,CAAC,IAAK,KAAM,KAAM,MAAM,EAErC,SAASC,GAA0BC,EAAO,CAC/C,OAAOJ,GAAiB,KAAKI,CAAK,CACpC,CAEO,SAASC,GAAyBD,EAAO,CAC9C,OAAOH,GAAgB,KAAKG,CAAK,CACnC,CAEO,SAASE,GAA0BF,EAAOG,EAAQC,EAAO,CAC9D,IAAMC,EAAWC,GAAQN,EAAOG,EAAQC,CAAK,EAE7C,GADA,QAAQ,KAAKC,CAAQ,EACjBP,GAAY,SAASE,CAAK,EAAG,MAAM,IAAI,WAAWK,CAAQ,CAChE,CAEA,SAASC,GAAQN,EAAOG,EAAQC,EAAO,CACrC,IAAMG,EAAUP,EAAM,CAAC,IAAM,IAAM,QAAU,oBAC7C,MAAO,SAASA,EAAM,YAAY,CAAC,mBAAmBA,CAAK,YAAYG,CAAM,sBAAsBI,CAAO,mBAAmBH,CAAK,iFACpI,CCKA,IAAMI,GACJ,wDAIIC,GAA6B,oCAE7BC,GAAsB,eACtBC,GAAoB,MACpBC,GAAgC,WAoS/B,SAASC,GAAOC,EAAMC,EAAWC,EAAS,CAxUjD,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,GAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAyUE,IAAMC,EAAiBC,EAAkB,EACnCC,GAASnB,GAAAD,EAAAD,GAAA,YAAAA,EAAS,SAAT,KAAAC,EAAmBkB,EAAe,SAAlC,KAAAjB,EAA4CoB,GAErDC,GACJb,GAAAD,GAAAH,GAAAD,EAAAL,GAAA,YAAAA,EAAS,wBAAT,KAAAK,GACAD,GAAAD,EAAAH,GAAA,YAAAA,EAAS,SAAT,YAAAG,EAAiB,UAAjB,YAAAC,EAA0B,wBAD1B,KAAAE,EAEAa,EAAe,wBAFf,KAAAV,GAGAD,GAAAD,EAAAY,EAAe,SAAf,YAAAZ,EAAuB,UAAvB,YAAAC,EAAgC,wBAHhC,KAAAE,EAIA,EAEIc,GACJN,GAAAD,GAAAH,GAAAD,EAAAb,GAAA,YAAAA,EAAS,eAAT,KAAAa,GACAD,GAAAD,GAAAX,GAAA,YAAAA,EAAS,SAAT,YAAAW,GAAiB,UAAjB,YAAAC,EAA0B,eAD1B,KAAAE,EAEAK,EAAe,eAFf,KAAAF,GAGAD,GAAAD,EAAAI,EAAe,SAAf,YAAAJ,EAAuB,UAAvB,YAAAC,EAAgC,eAHhC,KAAAE,EAIA,EAEIO,EAAeC,EAAO5B,EAAME,GAAA,YAAAA,EAAS,EAAE,EAE7C,GAAI,CAAC2B,GAAQF,CAAY,EACvB,MAAM,IAAI,WAAW,oBAAoB,EAG3C,IAAIG,EAAQ7B,EACT,MAAM8B,EAA0B,EAChC,IAAKC,GAAc,CAClB,IAAMC,EAAiBD,EAAU,CAAC,EAClC,GAAIC,IAAmB,KAAOA,IAAmB,IAAK,CACpD,IAAMC,GAAgBC,GAAeF,CAAc,EACnD,OAAOC,GAAcF,EAAWT,EAAO,UAAU,CACnD,CACA,OAAOS,CACT,CAAC,EACA,KAAK,EAAE,EACP,MAAMI,EAAsB,EAC5B,IAAKJ,GAAc,CAElB,GAAIA,IAAc,KAChB,MAAO,CAAE,QAAS,GAAO,MAAO,GAAI,EAGtC,IAAMC,EAAiBD,EAAU,CAAC,EAClC,GAAIC,IAAmB,IACrB,MAAO,CAAE,QAAS,GAAO,MAAOI,GAAmBL,CAAS,CAAE,EAGhE,GAAIM,GAAWL,CAAc,EAC3B,MAAO,CAAE,QAAS,GAAM,MAAOD,CAAU,EAG3C,GAAIC,EAAe,MAAMM,EAA6B,EACpD,MAAM,IAAI,WACR,iEACEN,EACA,GACJ,EAGF,MAAO,CAAE,QAAS,GAAO,MAAOD,CAAU,CAC5C,CAAC,EAGCT,EAAO,SAAS,eAClBO,EAAQP,EAAO,SAAS,aAAaI,EAAcG,CAAK,GAG1D,IAAMU,EAAmB,CACvB,sBAAAf,EACA,aAAAC,EACA,OAAAH,CACF,EAEA,OAAOO,EACJ,IAAKW,GAAS,CACb,GAAI,CAACA,EAAK,QAAS,OAAOA,EAAK,MAE/B,IAAMC,EAAQD,EAAK,OAGhB,EAACvC,GAAA,MAAAA,EAAS,8BACTyC,GAAyBD,CAAK,GAC/B,EAACxC,GAAA,MAAAA,EAAS,+BACT0C,GAA0BF,CAAK,IAEjCG,GAA0BH,EAAOzC,EAAW,OAAOD,CAAI,CAAC,EAG1D,IAAM8C,GAAYR,GAAWI,EAAM,CAAC,CAAC,EACrC,OAAOI,GAAUnB,EAAce,EAAOnB,EAAO,SAAUiB,CAAgB,CACzE,CAAC,EACA,KAAK,EAAE,CACZ,CAEA,SAASH,GAAmBU,EAAO,CACjC,IAAMC,EAAUD,EAAM,MAAME,EAAmB,EAE/C,OAAKD,EAIEA,EAAQ,CAAC,EAAE,QAAQE,GAAmB,GAAG,EAHvCH,CAIX,CCpYO,SAASI,GAAUC,EAAMC,EAAS,CA1CzC,IAAAC,EAAAC,EA2CE,IAAMC,EAAQC,EAAOL,EAAMC,GAAA,YAAAA,EAAS,EAAE,EAEtC,GAAI,MAAM,CAACG,CAAK,EACd,MAAM,IAAI,WAAW,oBAAoB,EAG3C,IAAME,GAASJ,EAAAD,GAAA,YAAAA,EAAS,SAAT,KAAAC,EAAmB,WAC5BK,GAAiBJ,EAAAF,GAAA,YAAAA,EAAS,iBAAT,KAAAE,EAA2B,WAE9CK,EAAS,GACTC,EAAW,GAETC,EAAgBJ,IAAW,WAAa,IAAM,GAC9CK,EAAgBL,IAAW,WAAa,IAAM,GAGpD,GAAIC,IAAmB,OAAQ,CAC7B,IAAMK,EAAMC,EAAgBT,EAAM,QAAQ,EAAG,CAAC,EACxCU,EAAQD,EAAgBT,EAAM,SAAS,EAAI,EAAG,CAAC,EAIrDI,EAAS,GAHIK,EAAgBT,EAAM,YAAY,EAAG,CAAC,CAGnC,GAAGM,CAAa,GAAGI,CAAK,GAAGJ,CAAa,GAAGE,CAAG,EAChE,CAGA,GAAIL,IAAmB,OAAQ,CAE7B,IAAMQ,EAASX,EAAM,kBAAkB,EAEvC,GAAIW,IAAW,EAAG,CAChB,IAAMC,EAAiB,KAAK,IAAID,CAAM,EAChCE,EAAaJ,EAAgB,KAAK,MAAMG,EAAiB,EAAE,EAAG,CAAC,EAC/DE,EAAeL,EAAgBG,EAAiB,GAAI,CAAC,EAI3DP,EAAW,GAFEM,EAAS,EAAI,IAAM,GAEd,GAAGE,CAAU,IAAIC,CAAY,EACjD,MACET,EAAW,IAGb,IAAMU,EAAON,EAAgBT,EAAM,SAAS,EAAG,CAAC,EAC1CgB,EAASP,EAAgBT,EAAM,WAAW,EAAG,CAAC,EAC9CiB,EAASR,EAAgBT,EAAM,WAAW,EAAG,CAAC,EAG9CkB,EAAYd,IAAW,GAAK,GAAK,IAGjCe,EAAO,CAACJ,EAAMC,EAAQC,CAAM,EAAE,KAAKV,CAAa,EAGtDH,EAAS,GAAGA,CAAM,GAAGc,CAAS,GAAGC,CAAI,GAAGd,CAAQ,EAClD,CAEA,OAAOD,CACT,CC5EO,SAASgB,GAAQC,EAAMC,EAAS,CACrC,OAAOC,EAAOF,EAAMC,GAAA,YAAAA,EAAS,EAAE,EAAE,QAAQ,CAC3C,CCFO,SAASE,GAAOC,EAAMC,EAAS,CACpC,OAAOC,EAAOF,EAAMC,GAAA,YAAAA,EAAS,EAAE,EAAE,OAAO,CAC1C,CCEO,SAASE,GAAeC,EAAMC,EAAS,CA5B9C,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EA6BE,IAAMC,EAAiBC,EAAkB,EACnCC,GACJH,GAAAD,GAAAH,GAAAD,EAAAH,GAAA,YAAAA,EAAS,eAAT,KAAAG,GACAD,GAAAD,EAAAD,GAAA,YAAAA,EAAS,SAAT,YAAAC,EAAiB,UAAjB,YAAAC,EAA0B,eAD1B,KAAAE,EAEAK,EAAe,eAFf,KAAAF,GAGAD,GAAAD,EAAAI,EAAe,SAAf,YAAAJ,EAAuB,UAAvB,YAAAC,EAAgC,eAHhC,KAAAE,EAIA,EAEII,EAAoBC,GAAQC,EAAOf,EAAMC,GAAA,YAAAA,EAAS,EAAE,CAAC,EAC3D,GAAI,MAAMY,CAAiB,EAAG,MAAO,KAErC,IAAMG,EAAeC,GAAOC,GAAalB,EAAMC,CAAO,CAAC,EAEnDkB,EAAqBP,EAAeI,EACpCG,GAAsB,IAAGA,GAAsB,GAEnD,IAAMC,EAA8BP,EAAoBM,EACxD,OAAO,KAAK,KAAKC,EAA8B,CAAC,EAAI,CACtD,CCnBO,SAASC,GAAeC,EAAMC,EAAS,CAC5C,IAAMC,EAAQC,EAAOH,EAAMC,GAAA,YAAAA,EAAS,EAAE,EAChCG,EAAQF,EAAM,SAAS,EAC7B,OAAAA,EAAM,YAAYA,EAAM,YAAY,EAAGE,EAAQ,EAAG,CAAC,EACnDF,EAAM,SAAS,EAAG,EAAG,EAAG,CAAC,EAClBC,EAAOD,EAAOD,GAAA,YAAAA,EAAS,EAAE,CAClC,CCJO,SAASI,GAAYC,EAAWC,EAAaC,EAAS,CAC3D,GAAM,CAACC,EAAYC,CAAY,EAAIC,EACjCH,GAAA,YAAAA,EAAS,GACTF,EACAC,CACF,EACA,OACEE,EAAW,YAAY,IAAMC,EAAa,YAAY,GACtDD,EAAW,SAAS,IAAMC,EAAa,SAAS,CAEpD,CCbO,SAASE,GAAQC,EAAMC,EAAS,CACrC,OAAOC,GACLC,GAAcF,GAAA,YAAAA,EAAS,KAAMD,EAAMA,CAAI,EACvCI,IAAaH,GAAA,YAAAA,EAAS,KAAMD,CAAI,CAClC,CACF,CCPO,SAASK,GAAQC,EAAMC,EAAQC,EAAS,CAC7C,OAAOC,GAAQH,EAAM,CAACC,EAAQC,CAAO,CACvC,CCDO,SAASE,GAAaC,EAAS,CACpC,OAAOC,EAAW,KAAK,IAAI,EAAGD,CAAO,CACvC,CCAO,SAASE,GAAUC,EAAMC,EAAQC,EAAS,CAC/C,OAAOC,GAAUH,EAAM,CAACC,EAAQC,CAAO,CACzC,CC9BA,IAAME,GAAuB,CAC3B,iBAAkB,CAChB,IAAK,0BACL,MAAO,+BACT,EAEA,SAAU,CACR,IAAK,WACL,MAAO,oBACT,EAEA,YAAa,oBAEb,iBAAkB,CAChB,IAAK,yBACL,MAAO,+BACT,EAEA,SAAU,CACR,IAAK,UACL,MAAO,oBACT,EAEA,YAAa,CACX,IAAK,eACL,MAAO,uBACT,EAEA,OAAQ,CACN,IAAK,SACL,MAAO,iBACT,EAEA,MAAO,CACL,IAAK,QACL,MAAO,gBACT,EAEA,YAAa,CACX,IAAK,cACL,MAAO,sBACT,EAEA,OAAQ,CACN,IAAK,QACL,MAAO,gBACT,EAEA,aAAc,CACZ,IAAK,mBACL,MAAO,4BACT,EAEA,QAAS,CACP,IAAK,aACL,MAAO,sBACT,EAEA,YAAa,CACX,IAAK,gBACL,MAAO,uBACT,EAEA,OAAQ,CACN,IAAK,UACL,MAAO,iBACT,EAEA,WAAY,CACV,IAAK,eACL,MAAO,sBACT,EAEA,aAAc,CACZ,IAAK,oBACL,MAAO,2BACT,CACF,EAEaC,GAAiB,CAACC,EAAOC,EAAOC,IAAY,CACvD,IAAIC,EAEEC,EAAaN,GAAqBE,CAAK,EAS7C,OARI,OAAOI,GAAe,SACxBD,EAASC,EACAH,IAAU,EACnBE,EAASC,EAAW,IAEpBD,EAASC,EAAW,MAAM,QAAQ,YAAa,OAAOH,CAAK,CAAC,EAG1DC,GAAA,MAAAA,EAAS,UACPA,EAAQ,YAAcA,EAAQ,WAAa,EACtC,MAAQC,EAERA,EAAS,SAIbA,CACT,EClGA,IAAME,GAAc,CAClB,KAAM,uBACN,KAAM,YACN,OAAQ,WACR,MAAO,SACT,EAEMC,GAAc,CAClB,KAAM,gBACN,KAAM,aACN,OAAQ,WACR,MAAO,OACT,EAEMC,GAAkB,CACtB,KAAM,0BACN,KAAM,0BACN,OAAQ,oBACR,MAAO,mBACT,EAEaC,GAAa,CACxB,KAAMC,EAAkB,CACtB,QAASJ,GACT,aAAc,MAChB,CAAC,EAED,KAAMI,EAAkB,CACtB,QAASH,GACT,aAAc,MAChB,CAAC,EAED,SAAUG,EAAkB,CAC1B,QAASF,GACT,aAAc,MAChB,CAAC,CACH,ECtCA,IAAMG,GAAuB,CAC3B,SAAU,wBACV,UAAW,mBACX,MAAO,gBACP,SAAU,mBACV,SAAU,uBACV,MAAO,GACT,EAEaC,GAAiB,CAACC,EAAOC,EAAOC,EAAWC,IACtDL,GAAqBE,CAAK,ECR5B,IAAMI,GAAY,CAChB,OAAQ,CAAC,MAAO,IAAI,EACpB,YAAa,CAAC,SAAU,MAAM,EAC9B,KAAM,CAAC,kCAAgC,0BAA0B,CACnE,EAEMC,GAAgB,CACpB,OAAQ,CAAC,IAAK,IAAK,IAAK,GAAG,EAC3B,YAAa,CAAC,UAAW,UAAW,UAAW,SAAS,EACxD,KAAM,CAAC,aAAc,aAAc,aAAc,YAAY,CAC/D,EAEMC,GAAc,CAClB,OAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,EACnE,YAAa,CACX,OACA,OACA,OACA,OACA,MACA,OACA,OACA,OACA,OACA,OACA,OACA,MACF,EAEA,KAAM,CACJ,SACA,UACA,QACA,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,UACF,CACF,EAKMC,GAAY,CAChB,OAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,EAC1C,MAAO,CAAC,QAAM,KAAM,KAAM,KAAM,KAAM,KAAM,OAAI,EAChD,YAAa,CAAC,UAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,SAAM,EAEpE,KAAM,CACJ,YACA,SACA,UACA,SACA,UACA,SACA,WACF,CACF,EAEMC,GAAkB,CACtB,OAAQ,CACN,GAAI,IACJ,GAAI,IACJ,SAAU,SACV,KAAM,SACN,QAAS,SACT,UAAW,cACX,QAAS,QACT,MAAO,KACT,EACA,YAAa,CACX,GAAI,KACJ,GAAI,KACJ,SAAU,SACV,KAAM,SACN,QAAS,SACT,UAAW,cACX,QAAS,QACT,MAAO,KACT,EACA,KAAM,CACJ,GAAI,OACJ,GAAI,OACJ,SAAU,SACV,KAAM,SACN,QAAS,SACT,UAAW,cACX,QAAS,QACT,MAAO,KACT,CACF,EAEMC,GAA4B,CAChC,OAAQ,CACN,GAAI,IACJ,GAAI,IACJ,SAAU,SACV,KAAM,SACN,QAAS,cACT,UAAW,mBACX,QAAS,aACT,MAAO,WACT,EACA,YAAa,CACX,GAAI,KACJ,GAAI,KACJ,SAAU,SACV,KAAM,SACN,QAAS,cACT,UAAW,mBACX,QAAS,aACT,MAAO,WACT,EACA,KAAM,CACJ,GAAI,OACJ,GAAI,OACJ,SAAU,SACV,KAAM,SACN,QAAS,cACT,UAAW,mBACX,QAAS,aACT,MAAO,WACT,CACF,EAEMC,GAAgB,CAACC,EAAaC,IACnB,OAAOD,CAAW,EACjB,IAGLE,GAAW,CACtB,cAAAH,GAEA,IAAKI,EAAgB,CACnB,OAAQV,GACR,aAAc,MAChB,CAAC,EAED,QAASU,EAAgB,CACvB,OAAQT,GACR,aAAc,OACd,iBAAmBU,GAAYA,EAAU,CAC3C,CAAC,EAED,MAAOD,EAAgB,CACrB,OAAQR,GACR,aAAc,MAChB,CAAC,EAED,IAAKQ,EAAgB,CACnB,OAAQP,GACR,aAAc,MAChB,CAAC,EAED,UAAWO,EAAgB,CACzB,OAAQN,GACR,aAAc,OACd,iBAAkBC,GAClB,uBAAwB,MAC1B,CAAC,CACH,ECpKA,IAAMO,GAA4B,eAC5BC,GAA4B,OAE5BC,GAAmB,CACvB,OAAQ,qBACR,YAAa,0CACb,KAAM,uEACR,EACMC,GAAmB,CACvB,IAAK,CAAC,MAAO,SAAS,CACxB,EAEMC,GAAuB,CAC3B,OAAQ,WACR,YAAa,kBACb,KAAM,qBACR,EACMC,GAAuB,CAC3B,IAAK,CAAC,KAAM,KAAM,KAAM,IAAI,CAC9B,EAEMC,GAAqB,CACzB,OAAQ,eACR,YAAa,iEACb,KAAM,yFACR,EACMC,GAAqB,CACzB,OAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACF,EAEA,IAAK,CACH,OACA,MACA,QACA,OACA,QACA,QACA,QACA,OACA,MACA,MACA,MACA,KACF,CACF,EAEMC,GAAmB,CACvB,OAAQ,aACR,MAAO,yCACP,YAAa,kCACb,KAAM,wDACR,EACMC,GAAmB,CACvB,OAAQ,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAK,EACxD,IAAK,CAAC,MAAO,MAAO,OAAQ,MAAO,OAAQ,MAAO,KAAK,CACzD,EAEMC,GAAyB,CAC7B,OAAQ,qEACR,IAAK,+EACP,EACMC,GAAyB,CAC7B,IAAK,CACH,GAAI,MACJ,GAAI,MACJ,SAAU,UACV,KAAM,UACN,QAAS,UACT,UAAW,eACX,QAAS,SACT,MAAO,MACT,CACF,EAEaC,GAAQ,CACnB,cAAeC,EAAoB,CACjC,aAAcb,GACd,aAAcC,GACd,cAAgBa,GAAU,SAASA,EAAO,EAAE,CAC9C,CAAC,EAED,IAAKC,EAAa,CAChB,cAAeb,GACf,kBAAmB,OACnB,cAAeC,GACf,kBAAmB,KACrB,CAAC,EAED,QAASY,EAAa,CACpB,cAAeX,GACf,kBAAmB,OACnB,cAAeC,GACf,kBAAmB,MACnB,cAAgBW,GAAUA,EAAQ,CACpC,CAAC,EAED,MAAOD,EAAa,CAClB,cAAeT,GACf,kBAAmB,OACnB,cAAeC,GACf,kBAAmB,KACrB,CAAC,EAED,IAAKQ,EAAa,CAChB,cAAeP,GACf,kBAAmB,OACnB,cAAeC,GACf,kBAAmB,KACrB,CAAC,EAED,UAAWM,EAAa,CACtB,cAAeL,GACf,kBAAmB,MACnB,cAAeC,GACf,kBAAmB,KACrB,CAAC,CACH,ECnHO,IAAMM,GAAK,CAChB,KAAM,KACN,eAAgBC,GAChB,WAAYC,GACZ,eAAgBC,GAChB,SAAUC,GACV,MAAOC,GACP,QAAS,CACP,aAAc,EACd,sBAAuB,CACzB,CACF,ECzBA,IAAMC,GAAc,CAClB,KAAM,oBACN,KAAM,cACN,OAAQ,aACR,MAAO,YACT,EAEMC,GAAc,CAClB,KAAM,gBACN,KAAM,aACN,OAAQ,WACR,MAAO,OACT,EAEMC,GAAkB,CACtB,KAAM,yBACN,KAAM,yBACN,OAAQ,qBACR,MAAO,oBACT,EAEaC,GAAa,CACxB,KAAMC,EAAkB,CACtB,QAASJ,GACT,aAAc,MAChB,CAAC,EAED,KAAMI,EAAkB,CACtB,QAASH,GACT,aAAc,MAChB,CAAC,EAED,SAAUG,EAAkB,CAC1B,QAASF,GACT,aAAc,MAChB,CAAC,CACH,ECxBO,IAAMG,GAAO,CAClB,KAAM,QACN,eAAgBC,GAChB,WAAYC,GACZ,eAAgBC,GAChB,SAAUC,GACV,MAAOC,GACP,QAAS,CACP,aAAc,EACd,sBAAuB,CACzB,CACF,ECzBA,SAASC,GAAcC,EAAM,CAC3B,OAAOA,EAAK,QAAQ,YAAa,UAAU,CAC7C,CAEA,SAASC,GAAcD,EAAM,CAC3B,OAAOA,EAAK,QAAQ,aAAc,UAAU,CAC9C,CAEA,SAASE,GAAYF,EAAM,CACzB,OAAOA,EAAK,QAAQ,UAAW,QAAQ,CACzC,CAEA,SAASG,GAAWH,EAAM,CACxB,OAAOA,EAAK,QAAQ,UAAW,cAAQ,CACzC,CAEA,SAASI,GAAYJ,EAAM,CACzB,OAAOA,EAAK,QAAQ,mBAAoB,QAAQ,CAClD,CAEA,SAASK,GAAaL,EAAM,CAC1B,OAAOA,EAAK,QAAQ,uBAAwB,WAAW,CACzD,CAEA,SAASM,GAAYN,EAAM,CACzB,OAAOA,EAAK,QAAQ,iBAAkB,QAAQ,CAChD,CAEA,IAAMO,GAAuB,CAC3B,iBAAkB,CAChB,IAAK,eACL,MAAO,0BACP,YAAaR,EACf,EAEA,SAAU,CACR,IAAK,UACL,MAAO,qBACP,YAAaA,EACf,EAEA,YAAa,CACX,IAAK,kBACL,MAAO,kBACP,YAAcS,GAAU,iBAC1B,EAEA,iBAAkB,CAChB,IAAK,gBACL,MAAO,2BACP,YAAaP,EACf,EAEA,SAAU,CACR,IAAK,WACL,MAAO,sBACP,YAAaA,EACf,EAEA,YAAa,CACX,IAAK,aACL,MAAO,wBACP,YAAaC,EACf,EAEA,OAAQ,CACN,IAAK,QACL,MAAO,mBACP,YAAaA,EACf,EAEA,MAAO,CACL,IAAK,cACL,MAAO,4BACP,YAAaC,EACf,EAEA,YAAa,CACX,IAAK,cACL,MAAO,yBACP,YAAaC,EACf,EAEA,OAAQ,CACN,IAAK,SACL,MAAO,oBACP,YAAaA,EACf,EAEA,aAAc,CACZ,IAAK,gBACL,MAAO,2BACP,YAAaC,EACf,EAEA,QAAS,CACP,IAAK,WACL,MAAO,sBACP,YAAaA,EACf,EAEA,YAAa,CACX,IAAK,aACL,MAAO,wBACP,YAAaC,EACf,EAEA,OAAQ,CACN,IAAK,QACL,MAAO,mBACP,YAAaA,EACf,EAEA,WAAY,CACV,IAAK,YACL,MAAO,uBACP,YAAaA,EACf,EAEA,aAAc,CACZ,IAAK,iBACL,MAAO,4BACP,YAAaA,EACf,CACF,EAEaG,GAAiB,CAACC,EAAOC,EAAOC,IAAY,CACvD,IAAMC,EAAaN,GAAqBG,CAAK,EACvCI,EACJH,IAAU,EACNE,EAAW,IACXA,EAAW,MAAM,QAAQ,YAAa,OAAOF,CAAK,CAAC,EAEzD,OAAIC,GAAA,MAAAA,EAAS,UACPA,EAAQ,YAAcA,EAAQ,WAAa,EACtCC,EAAW,YAAYC,CAAM,EAAI,YAEjCA,EAAS,UAIbA,CACT,EC5IA,IAAMC,GAAc,CAClB,KAAM,iBACN,KAAM,YACN,OAAQ,WACR,MAAO,OACT,EAEMC,GAAc,CAClB,KAAM,gBACN,KAAM,aACN,OAAQ,WACR,MAAO,OACT,EAEMC,GAAkB,CACtB,KAAM,0BACN,KAAM,0BACN,OAAQ,oBACR,MAAO,mBACT,EAEaC,GAAa,CACxB,KAAMC,EAAkB,CACtB,QAASJ,GACT,aAAc,MAChB,CAAC,EAED,KAAMI,EAAkB,CACtB,QAASH,GACT,aAAc,MAChB,CAAC,EAED,SAAUG,EAAkB,CAC1B,QAASF,GACT,aAAc,MAChB,CAAC,CACH,ECtCA,IAAMG,GAAuB,CAC3B,SAAU,uBACV,UAAW,gBACX,MAAO,0BACP,SAAU,mBACV,SAAU,sBACV,MAAO,GACT,EAEaC,GAAiB,CAACC,EAAOC,EAAOC,EAAWC,IACtDL,GAAqBE,CAAK,ECR5B,IAAMI,GAAY,CAChB,OAAQ,CAAC,OAAQ,MAAM,EACvB,YAAa,CAAC,OAAQ,MAAM,EAC5B,KAAM,CAAC,yBAA0B,4BAAyB,CAC5D,EAEMC,GAAgB,CACpB,OAAQ,CAAC,IAAK,IAAK,IAAK,GAAG,EAC3B,YAAa,CAAC,KAAM,KAAM,KAAM,IAAI,EACpC,KAAM,CAAC,eAAgB,eAAgB,eAAgB,cAAc,CACvE,EAEMC,GAAc,CAClB,OAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,EACnE,YAAa,CACX,QACA,QACA,SACA,QACA,QACA,UACA,WACA,MACA,OACA,OACA,SACA,OACF,EAEA,KAAM,CACJ,WACA,WACA,YACA,WACA,WACA,aACA,cACA,SACA,UACA,UACA,YACA,UACF,CACF,EAEMC,GAAwB,CAC5B,OAAQD,GAAY,OACpB,YAAaA,GAAY,YACzB,KAAM,CACJ,aACA,aACA,cACA,aACA,aACA,eACA,gBACA,WACA,YACA,YACA,cACA,YACF,CACF,EAEME,GAAY,CAChB,OAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,EAC1C,MAAO,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAI,EAChD,YAAa,CAAC,QAAS,QAAS,QAAS,QAAS,SAAU,QAAS,IAAI,EAEzE,KAAM,CACJ,YACA,YACA,UACA,cACA,UACA,YACA,UACF,CACF,EAEMC,GAAsB,CAC1B,OAAQD,GAAU,OAClB,MAAOA,GAAU,MACjB,YAAaA,GAAU,YACvB,KAAM,CACJ,cACA,cACA,YACA,gBACA,YACA,cACA,YACF,CACF,EAEME,GAAkB,CACtB,OAAQ,CACN,GAAI,KACJ,GAAI,KACJ,SAAU,aACV,KAAM,mBACN,QAAS,KACT,UAAW,KACX,QAAS,UACT,MAAO,aACT,EACA,YAAa,CACX,GAAI,KACJ,GAAI,KACJ,SAAU,aACV,KAAM,mBACN,QAAS,KACT,UAAW,KACX,QAAS,UACT,MAAO,aACT,EACA,KAAM,CACJ,GAAI,KACJ,GAAI,KACJ,SAAU,mBACV,KAAM,yBACN,QAAS,wBACT,UAAW,wBACX,QAAS,UACT,MAAO,aACT,CACF,EAEMC,GAAgB,CAACC,EAAaC,IACnB,OAAOD,CAAW,EACjB,IAGLE,GAAW,CACtB,cAAAH,GAEA,IAAKI,EAAgB,CACnB,OAAQX,GACR,aAAc,MAChB,CAAC,EAED,QAASW,EAAgB,CACvB,OAAQV,GACR,aAAc,OACd,iBAAmBW,GAAYA,EAAU,CAC3C,CAAC,EAED,MAAOD,EAAgB,CACrB,OAAQT,GACR,aAAc,OACd,iBAAkBC,GAClB,uBAAwB,MAC1B,CAAC,EAED,IAAKQ,EAAgB,CACnB,OAAQP,GACR,aAAc,OACd,iBAAkBC,GAClB,uBAAwB,MAC1B,CAAC,EAED,UAAWM,EAAgB,CACzB,OAAQL,GACR,aAAc,MAChB,CAAC,CACH,ECpKA,IAAMO,GAA4B,cAC5BC,GAA4B,OAE5BC,GAAmB,CACvB,OAAQ,UACR,YAAa,gBACb,KAAM,oDACR,EACMC,GAAmB,CACvB,IAAK,CAAC,MAAO,KAAK,CACpB,EAEMC,GAAuB,CAC3B,OAAQ,WACR,YAAa,YACb,KAAM,uBACR,EACMC,GAAuB,CAC3B,IAAK,CAAC,KAAM,KAAM,KAAM,IAAI,CAC9B,EAEMC,GAAqB,CACzB,OAAQ,eACR,YACE,2EACF,KAAM,mHACR,EACMC,GAAqB,CACzB,OAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACF,EAEA,IAAK,CACH,OACA,QACA,QACA,OACA,OACA,MACA,QACA,MACA,MACA,MACA,QACA,KACF,CACF,EAEMC,GAAmB,CACvB,OAAQ,aACR,MAAO,2BACP,YAAa,8CACb,KAAM,6EACR,EACMC,GAAmB,CACvB,OAAQ,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAK,EACxD,IAAK,CAAC,MAAO,MAAO,OAAQ,MAAO,OAAQ,MAAO,KAAK,CACzD,EAEMC,GAAyB,CAC7B,OACE,uEACF,IAAK,4EACP,EACMC,GAAyB,CAC7B,IAAK,CACH,GAAI,OACJ,GAAI,OACJ,SAAU,YACV,KAAM,eACN,QAAS,gBACT,UAAW,gBACX,QAAS,WACT,MAAO,QACT,CACF,EAEaC,GAAQ,CACnB,cAAeC,EAAoB,CACjC,aAAcb,GACd,aAAcC,GACd,cAAgBa,GAAU,SAASA,EAAO,EAAE,CAC9C,CAAC,EAED,IAAKC,EAAa,CAChB,cAAeb,GACf,kBAAmB,OACnB,cAAeC,GACf,kBAAmB,KACrB,CAAC,EAED,QAASY,EAAa,CACpB,cAAeX,GACf,kBAAmB,OACnB,cAAeC,GACf,kBAAmB,MACnB,cAAgBW,GAAUA,EAAQ,CACpC,CAAC,EAED,MAAOD,EAAa,CAClB,cAAeT,GACf,kBAAmB,OACnB,cAAeC,GACf,kBAAmB,KACrB,CAAC,EAED,IAAKQ,EAAa,CAChB,cAAeP,GACf,kBAAmB,OACnB,cAAeC,GACf,kBAAmB,KACrB,CAAC,EAED,UAAWM,EAAa,CACtB,cAAeL,GACf,kBAAmB,MACnB,cAAeC,GACf,kBAAmB,KACrB,CAAC,CACH,ECtHO,IAAMM,GAAK,CAChB,KAAM,KACN,eAAgBC,GAChB,WAAYC,GACZ,eAAgBC,GAChB,SAAUC,GACV,MAAOC,GACP,QAAS,CACP,aAAc,EACd,sBAAuB,CACzB,CACF,EC1BA,IAAMC,GAAuB,CAC3B,iBAAkB,CAChB,IAAK,wBACL,MAAO,+BACT,EAEA,SAAU,CACR,IAAK,aACL,MAAO,oBACT,EAEA,YAAa,kBAEb,iBAAkB,CAChB,IAAK,wBACL,MAAO,+BACT,EAEA,SAAU,CACR,IAAK,aACL,MAAO,oBACT,EAEA,YAAa,CACX,IAAK,kBACL,MAAO,yBACT,EAEA,OAAQ,CACN,IAAK,UACL,MAAO,iBACT,EAEA,MAAO,CACL,IAAK,SACL,MAAO,iBACT,EAEA,YAAa,CACX,IAAK,iBACL,MAAO,wBACT,EAEA,OAAQ,CACN,IAAK,SACL,MAAO,gBACT,EAEA,aAAc,CACZ,IAAK,sBACL,MAAO,8BACT,EAEA,QAAS,CACP,IAAK,cACL,MAAO,sBACT,EAEA,YAAa,CACX,IAAK,oBACL,MAAO,yBACT,EAEA,OAAQ,CACN,IAAK,YACL,MAAO,iBACT,EAEA,WAAY,CACV,IAAK,iBACL,MAAO,sBACT,EAEA,aAAc,CACZ,IAAK,mBACL,MAAO,wBACT,CACF,EAEaC,GAAiB,CAACC,EAAOC,EAAOC,IAAY,CACvD,IAAIC,EAEEC,EAAaN,GAAqBE,CAAK,EAS7C,OARI,OAAOI,GAAe,SACxBD,EAASC,EACAH,IAAU,EACnBE,EAASC,EAAW,IAEpBD,EAASC,EAAW,MAAM,QAAQ,YAAa,OAAOH,CAAK,CAAC,EAG1DC,GAAA,MAAAA,EAAS,UACPA,EAAQ,YAAcA,EAAQ,WAAa,EACtC,MAAQC,EAERA,EAAS,SAIbA,CACT,EClGA,IAAME,GAAc,CAClB,KAAM,iBACN,KAAM,YACN,OAAQ,WACR,MAAO,SACT,EAEMC,GAAc,CAClB,KAAM,sBACN,KAAM,aACN,OAAQ,WACR,MAAO,OACT,EAEMC,GAAkB,CACtB,KAAM,0BACN,KAAM,0BACN,OAAQ,oBACR,MAAO,mBACT,EAEaC,GAAa,CACxB,KAAMC,EAAkB,CACtB,QAASJ,GACT,aAAc,MAChB,CAAC,EAED,KAAMI,EAAkB,CACtB,QAASH,GACT,aAAc,MAChB,CAAC,EAED,SAAUG,EAAkB,CAC1B,QAASF,GACT,aAAc,MAChB,CAAC,CACH,ECtCA,IAAMG,GAAuB,CAC3B,SAAU,yBACV,UAAW,mBACX,MAAO,gBACP,SAAU,mBACV,SAAU,eACV,MAAO,GACT,EAEaC,GAAiB,CAACC,EAAOC,EAAOC,EAAWC,IACtDL,GAAqBE,CAAK,ECR5B,IAAMI,GAAY,CAChB,OAAQ,CAAC,QAAS,OAAO,EACzB,YAAa,CAAC,QAAS,OAAO,EAC9B,KAAM,CAAC,iBAAe,eAAe,CACvC,EAEMC,GAAgB,CACpB,OAAQ,CAAC,IAAK,IAAK,IAAK,GAAG,EAC3B,YAAa,CAAC,KAAM,KAAM,KAAM,IAAI,EACpC,KAAM,CAAC,aAAc,aAAc,aAAc,YAAY,CAC/D,EAEMC,GAAc,CAClB,OAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,EACnE,YAAa,CACX,OACA,OACA,OACA,OACA,MACA,OACA,OACA,OACA,OACA,OACA,OACA,MACF,EAEA,KAAM,CACJ,SACA,UACA,OACA,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,UACF,CACF,EAEMC,GAAY,CAChB,OAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,EAC1C,MAAO,CAAC,QAAM,KAAM,KAAM,KAAM,KAAM,KAAM,OAAI,EAChD,YAAa,CAAC,SAAO,MAAO,MAAO,MAAO,MAAO,MAAO,QAAK,EAC7D,KAAM,CACJ,YACA,SACA,UACA,SACA,UACA,SACA,WACF,CACF,EAEMC,GAAkB,CACtB,OAAQ,CACN,GAAI,IACJ,GAAI,IACJ,SAAU,UACV,KAAM,SACN,QAAS,cACT,UAAW,gBACX,QAAS,gBACT,MAAO,cACT,EACA,YAAa,CACX,GAAI,OACJ,GAAI,OACJ,SAAU,UACV,KAAM,SACN,QAAS,cACT,UAAW,gBACX,QAAS,gBACT,MAAO,cACT,EACA,KAAM,CACJ,GAAI,OACJ,GAAI,OACJ,SAAU,UACV,KAAM,SACN,QAAS,iBACT,UAAW,sBACX,QAAS,gBACT,MAAO,cACT,CACF,EAEMC,GAAgB,CAACC,EAAaC,IACnB,OAAOD,CAAW,EACjB,IAGLE,GAAW,CACtB,cAAAH,GAEA,IAAKI,EAAgB,CACnB,OAAQT,GACR,aAAc,MAChB,CAAC,EAED,QAASS,EAAgB,CACvB,OAAQR,GACR,aAAc,OACd,iBAAmBS,GAAYA,EAAU,CAC3C,CAAC,EAED,MAAOD,EAAgB,CACrB,OAAQP,GACR,aAAc,MAChB,CAAC,EAED,IAAKO,EAAgB,CACnB,OAAQN,GACR,aAAc,MAChB,CAAC,EAED,UAAWM,EAAgB,CACzB,OAAQL,GACR,aAAc,MAChB,CAAC,CACH,EC7HA,IAAMO,GAA4B,aAC5BC,GAA4B,OAE5BC,GAAmB,CACvB,OAAQ,4CACR,YAAa,4CACb,KAAM,mDACR,EACMC,GAAmB,CACvB,IAAK,CAAC,MAAO,KAAK,CACpB,EAEMC,GAAuB,CAC3B,OAAQ,WACR,YAAa,YACb,KAAM,uBACR,EACMC,GAAuB,CAC3B,IAAK,CAAC,KAAM,KAAM,KAAM,IAAI,CAC9B,EAEMC,GAAqB,CACzB,OAAQ,eACR,YAAa,+DACb,KAAM,wFACR,EACMC,GAAqB,CACzB,OAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACF,EAEA,IAAK,CACH,OACA,MACA,QACA,OACA,QACA,QACA,QACA,QACA,MACA,MACA,MACA,KACF,CACF,EAEMC,GAAmB,CACvB,OAAQ,aACR,MAAO,2BACP,YAAa,kCACb,KAAM,wDACR,EACMC,GAAmB,CACvB,IAAK,CAAC,MAAO,MAAO,OAAQ,MAAO,OAAQ,MAAO,KAAK,CACzD,EAEMC,GAAyB,CAC7B,OACE,uEACF,IAAK,gFACP,EACMC,GAAyB,CAC7B,IAAK,CACH,GAAI,oBACJ,GAAI,oBACJ,SAAU,SACV,KAAM,SACN,QAAS,UACT,UAAW,eACX,QAAS,SACT,MAAO,OACT,CACF,EAEaC,GAAQ,CACnB,cAAeC,EAAoB,CACjC,aAAcb,GACd,aAAcC,GACd,cAAgBa,GAAU,SAASA,EAAO,EAAE,CAC9C,CAAC,EAED,IAAKC,EAAa,CAChB,cAAeb,GACf,kBAAmB,OACnB,cAAeC,GACf,kBAAmB,KACrB,CAAC,EAED,QAASY,EAAa,CACpB,cAAeX,GACf,kBAAmB,OACnB,cAAeC,GACf,kBAAmB,MACnB,cAAgBW,GAAUA,EAAQ,CACpC,CAAC,EAED,MAAOD,EAAa,CAClB,cAAeT,GACf,kBAAmB,OACnB,cAAeC,GACf,kBAAmB,KACrB,CAAC,EAED,IAAKQ,EAAa,CAChB,cAAeP,GACf,kBAAmB,OACnB,cAAeC,GACf,kBAAmB,KACrB,CAAC,EAED,UAAWM,EAAa,CACtB,cAAeL,GACf,kBAAmB,MACnB,cAAeC,GACf,kBAAmB,KACrB,CAAC,CACH,ECpHO,IAAMM,GAAK,CAChB,KAAM,KACN,eAAgBC,GAChB,WAAYC,GACZ,eAAgBC,GAChB,SAAUC,GACV,MAAOC,GACP,QAAS,CACP,aAAc,EACd,sBAAuB,CACzB,CACF,EC1BA,IAAMC,GAAuB,CAC3B,iBAAkB,CAChB,IAAK,yBACL,MAAO,iCACT,EAEA,SAAU,CACR,IAAK,YACL,MAAO,oBACT,EAEA,YAAa,gBAEb,iBAAkB,CAChB,IAAK,wBACL,MAAO,gCACT,EAEA,SAAU,CACR,IAAK,WACL,MAAO,mBACT,EAEA,YAAa,CACX,IAAK,sBACL,MAAO,6BACT,EAEA,OAAQ,CACN,IAAK,WACL,MAAO,kBACT,EAEA,MAAO,CACL,IAAK,SACL,MAAO,iBACT,EAEA,YAAa,CACX,IAAK,sBACL,MAAO,6BACT,EAEA,OAAQ,CACN,IAAK,WACL,MAAO,kBACT,EAEA,aAAc,CACZ,IAAK,yBACL,MAAO,iCACT,EAEA,QAAS,CACP,IAAK,cACL,MAAO,sBACT,EAEA,YAAa,CACX,IAAK,uBACL,MAAO,4BACT,EAEA,OAAQ,CACN,IAAK,YACL,MAAO,iBACT,EAEA,WAAY,CACV,IAAK,oBACL,MAAO,yBACT,EAEA,aAAc,CACZ,IAAK,sBACL,MAAO,2BACT,CACF,EAEMC,GAAc,CAClB,OACA,KACA,SACA,MACA,OACA,MACA,MACA,MACA,UACA,MACA,MACA,OACA,MACF,EAEaC,GAAiB,CAACC,EAAOC,EAAOC,IAAY,CACvD,IAAIC,EAEEC,EAAaP,GAAqBG,CAAK,EAY7C,OAXI,OAAOI,GAAe,SACxBD,EAASC,EACAH,IAAU,EACnBE,EAASC,EAAW,IAEpBD,EAASC,EAAW,MAAM,QACxB,YACAH,EAAQ,GAAKH,GAAYG,CAAK,EAAI,OAAOA,CAAK,CAChD,EAGEC,GAAA,MAAAA,EAAS,UACPA,EAAQ,YAAcA,EAAQ,WAAa,EACtC,MAAQC,EAERA,EAAS,SAIbA,CACT,ECrHA,IAAME,GAAc,CAClB,KAAM,gBACN,KAAM,WACN,OAAQ,UACR,MAAO,SACT,EAEMC,GAAc,CAClB,KAAM,sBACN,KAAM,aACN,OAAQ,WACR,MAAO,OACT,EAEMC,GAAkB,CACtB,KAAM,0BACN,KAAM,0BACN,OAAQ,oBACR,MAAO,mBACT,EAEaC,GAAa,CACxB,KAAMC,EAAkB,CACtB,QAASJ,GACT,aAAc,MAChB,CAAC,EAED,KAAMI,EAAkB,CACtB,QAASH,GACT,aAAc,MAChB,CAAC,EAED,SAAUG,EAAkB,CAC1B,QAASF,GACT,aAAc,MAChB,CAAC,CACH,ECtCA,IAAMG,GAAuB,CAC3B,SAAU,oBACV,UAAW,kBACX,MAAO,eACP,SAAU,kBACV,SAAU,eACV,MAAO,GACT,EAEaC,GAAiB,CAACC,EAAOC,EAAOC,EAAWC,IACtDL,GAAqBE,CAAK,ECR5B,IAAMI,GAAY,CAChB,OAAQ,CAAC,QAAS,OAAO,EACzB,YAAa,CAAC,QAAS,OAAO,EAC9B,KAAM,CAAC,kBAAgB,eAAe,CACxC,EAEMC,GAAgB,CACpB,OAAQ,CAAC,IAAK,IAAK,IAAK,GAAG,EAC3B,YAAa,CAAC,KAAM,KAAM,KAAM,IAAI,EACpC,KAAM,CAAC,gBAAiB,gBAAiB,gBAAiB,eAAe,CAC3E,EAEMC,GAAc,CAClB,OAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,EACnE,YAAa,CACX,OACA,OACA,OACA,OACA,MACA,OACA,OACA,OACA,OACA,OACA,OACA,MACF,EAEA,KAAM,CACJ,UACA,WACA,OACA,QACA,MACA,OACA,OACA,UACA,YACA,UACA,WACA,UACF,CACF,EAEMC,GAAY,CAChB,OAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,EAC1C,MAAO,CAAC,QAAM,QAAM,KAAM,KAAM,KAAM,KAAM,OAAI,EAChD,YAAa,CAAC,SAAO,SAAO,MAAO,MAAO,OAAQ,MAAO,QAAK,EAC9D,KAAM,CAAC,YAAU,YAAU,SAAU,SAAU,UAAW,SAAU,WAAQ,CAC9E,EAGMC,GAAkB,CACtB,OAAQ,CACN,GAAI,KACJ,GAAI,KACJ,SAAU,UACV,KAAM,SACN,QAAS,QACT,UAAW,UACX,QAAS,WACT,MAAO,MACT,EACA,YAAa,CACX,GAAI,OACJ,GAAI,OACJ,SAAU,UACV,KAAM,SACN,QAAS,SACT,UAAW,UACX,QAAS,WACT,MAAO,MACT,EACA,KAAM,CACJ,GAAI,eACJ,GAAI,cACJ,SAAU,UACV,KAAM,SACN,QAAS,SACT,UAAW,cACX,QAAS,WACT,MAAO,MACT,CACF,EAEMC,GAA4B,CAChC,OAAQ,CACN,GAAI,KACJ,GAAI,KACJ,SAAU,UACV,KAAM,SACN,QAAS,cACT,UAAW,gBACX,QAAS,mBACT,MAAO,cACT,EACA,YAAa,CACX,GAAI,KACJ,GAAI,KACJ,SAAU,UACV,KAAM,SACN,QAAS,cACT,UAAW,gBACX,QAAS,mBACT,MAAO,cACT,EACA,KAAM,CACJ,GAAI,KACJ,GAAI,KACJ,SAAU,UACV,KAAM,SACN,QAAS,iBACT,UAAW,sBACX,QAAS,mBACT,MAAO,cACT,CACF,EAEMC,GAAgB,CAACC,EAAaC,IAAa,CAC/C,IAAMC,EAAS,OAAOF,CAAW,EAE3BG,EAASD,EAAS,IACxB,GAAIC,EAAS,IAAMA,EAAS,GAC1B,OAAQA,EAAS,GAAI,CACnB,IAAK,GACL,IAAK,GACH,OAAOD,EAAS,IACpB,CAEF,OAAOA,EAAS,IAClB,EAEaE,GAAW,CACtB,cAAAL,GAEA,IAAKM,EAAgB,CACnB,OAAQZ,GACR,aAAc,MAChB,CAAC,EAED,QAASY,EAAgB,CACvB,OAAQX,GACR,aAAc,OACd,iBAAmBY,GAAYA,EAAU,CAC3C,CAAC,EAED,MAAOD,EAAgB,CACrB,OAAQV,GACR,aAAc,MAChB,CAAC,EAED,IAAKU,EAAgB,CACnB,OAAQT,GACR,aAAc,MAChB,CAAC,EAED,UAAWS,EAAgB,CACzB,OAAQR,GACR,aAAc,OACd,iBAAkBC,GAClB,uBAAwB,MAC1B,CAAC,CACH,EClKA,IAAMS,GAA4B,kBAC5BC,GAA4B,OAE5BC,GAAmB,CACvB,OAAQ,0DACR,YAAa,0DACb,KAAM,qDACR,EACMC,GAAmB,CACvB,IAAK,CAAC,MAAO,QAAQ,CACvB,EAEMC,GAAuB,CAC3B,OAAQ,WACR,YAAa,YACb,KAAM,4BACR,EACMC,GAAuB,CAC3B,IAAK,CAAC,KAAM,KAAM,KAAM,IAAI,CAC9B,EAEMC,GAAqB,CACzB,OAAQ,eACR,YACE,qEACF,KAAM,2FACR,EACMC,GAAqB,CACzB,OAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACF,EAEA,IAAK,CACH,OACA,MACA,QACA,OACA,QACA,QACA,QACA,OACA,MACA,MACA,MACA,KACF,CACF,EAEMC,GAAmB,CACvB,OAAQ,aACR,MAAO,2BACP,YAAa,mCACb,KAAM,uDACR,EACMC,GAAmB,CACvB,IAAK,CAAC,MAAO,MAAO,OAAQ,MAAO,OAAQ,MAAO,KAAK,CACzD,EAEMC,GAAyB,CAC7B,IAAK,sFACP,EACMC,GAAyB,CAC7B,IAAK,CACH,GAAI,MACJ,GAAI,MACJ,SAAU,SACV,KAAM,SACN,QAAS,UACT,UAAW,eACX,QAAS,SACT,MAAO,OACT,CACF,EAEaC,GAAQ,CACnB,cAAeC,EAAoB,CACjC,aAAcb,GACd,aAAcC,GACd,cAAgBa,GAAU,SAASA,EAAO,EAAE,CAC9C,CAAC,EAED,IAAKC,EAAa,CAChB,cAAeb,GACf,kBAAmB,OACnB,cAAeC,GACf,kBAAmB,KACrB,CAAC,EAED,QAASY,EAAa,CACpB,cAAeX,GACf,kBAAmB,OACnB,cAAeC,GACf,kBAAmB,MACnB,cAAgBW,GAAUA,EAAQ,CACpC,CAAC,EAED,MAAOD,EAAa,CAClB,cAAeT,GACf,kBAAmB,OACnB,cAAeC,GACf,kBAAmB,KACrB,CAAC,EAED,IAAKQ,EAAa,CAChB,cAAeP,GACf,kBAAmB,OACnB,cAAeC,GACf,kBAAmB,KACrB,CAAC,EAED,UAAWM,EAAa,CACtB,cAAeL,GACf,kBAAmB,MACnB,cAAeC,GACf,kBAAmB,KACrB,CAAC,CACH,ECnHO,IAAMM,GAAK,CAChB,KAAM,KACN,eAAgBC,GAChB,WAAYC,GACZ,eAAgBC,GAChB,SAAUC,GACV,MAAOC,GACP,QAAS,CACP,aAAc,EACd,sBAAuB,CACzB,CACF,ECDA,OAAS,QAAAC,GAAM,cAAAC,OAAkB,MACjC,OAAS,YAAAC,EAAU,SAAAC,GAAO,SAAAC,OAAa,oBACvC,OAAS,YAAAC,OAAgB,8BACzB,OAAS,aAAAC,OAAiB,+BAC1B,OAAS,YAAAC,OAAgB,8BC7BzB,OAAS,cAAAC,OAAkB,MAC3B,OAAS,gBAAAC,GAAc,QAAAC,OAAY,qBCDV,IAAMC,GAAS,KAAK,MAAM,sCAA0C,ECA9DA,GAAS,KAAK,MAAM,sCAA0C,ECA9DA,GAAS,KAAK,MAAM,uCAA2C,ECA/DA,GAAS,KAAK,MAAM,sCAA0C,ECA9DA,GAAS,KAAK,MAAM,sCAA0C,ECEhFC,GAAmB,CAAC,KAAM,KAAM,KAAM,KAAM,IAAI,EAGhDC,GAAgB,KAEvBC,GAAgB,IAAM,CAP5B,IAAAC,EAQC,IAAIC,EACH,QAAQD,EAAA,SAAA,KAAA,OAAA,QAAS,MAAT,KAAA,OAAAA,EAAc,UAAW,CACjC,IAAK,OACJC,EAAQ,KACR,MACD,IAAK,OACJA,EAAQ,KACR,MACD,IAAK,UACJA,EAAQ,KACR,MACD,IAAK,MACJA,EAAQ,KACR,MACD,QACCA,EAAQ,IACV,CACA,OAAOA,CACR,EAEMC,GAAe,IAAM,CA5B3B,IAAAF,EA6BE,IAAMG,GAAWH,EAAA,UAAA,KAAA,OAAA,SAAU,WAAV,KAAA,OAAAA,EAAoB,SACrC,OAAIG,GAAA,MAAAA,EAAU,SAAS,MAAA,EACd,KACEA,EAAS,SAAS,MAAM,EAC1B,KACEA,EAAS,SAAS,SAAS,EAC7B,KACEA,EAAS,SAAS,KAAK,EACzB,KAEAL,EAEX,EAEaM,GAAsBC,GAE/BR,GAAiB,KACdS,GACCD,IAAeC,GAAUD,EAAW,YAAY,EAAE,SAASC,CAAM,CACrE,GAAKJ,GAAa,EAIf,SAASK,IAAgC,CApDhD,IAAAP,EAqDE,GAAI,OAAO,QAAW,YAAa,CAIjC,IAAMQ,EAAeT,GAAc,EACnC,OAAOK,GAAmBI,CAAY,CACxC,CAEA,GAAI,CAIF,IAAMC,GAAaT,EAAA,UAAA,KAAA,OAAA,SAAU,kBAAV,KAAA,OAAAA,EAA2B,KACxCU,EAAaR,GAAa,EAEhC,OAAKL,GAAiB,SAASY,CAA6B,EAIrDL,GAAmBK,GAAA,KAAAA,EAAcC,CAAU,GAHhD,QAAQ,KAAK,gFAAgF,EACtFN,GAAmBM,CAAU,EAGxC,OAAS,EAAG,CACV,eAAQ,KAAK,yDAA0D,CAAC,EACjEZ,EACT,CACF,CAEO,IAAMa,GAAc,CACzBL,EACAM,EACAC,EACAC,EACAC,EACAC,IAEIV,IAAW,KAAaO,EACxBP,IAAW,KAAaQ,EACxBR,IAAW,KAAaS,EACxBT,IAAW,KAAaU,EAErBJ,EAGIK,GAAe,CAC1BC,EACAC,EACAC,EACAC,EACAC,IACG,CACH,IAAMhB,EAASC,GAAa,EACtBX,EAAWe,GAAYL,EAAQY,EAAYC,EAAYC,EAAYC,EAAYC,CAAU,EAC/FC,EAAK,KAAKjB,EAAQV,CAAQ,EAC1B2B,EAAK,SAASjB,CAAM,CACtB,ENjGAW,GAAarB,GAAYA,GAAYA,GAAYA,GAAYA,EAAU,EAGhE,IAAM4B,GAAN,cAA6BC,EAAW,CAC7C,QAAS,CACL,IAAMC,EAAQH,EAAK,EAAE,CAAE,QAAS,WAAY,GAAI,sBAAuB,QAAS,yBAA0B,CAAC,EAE3G,OAAOI,+HAAiIC,GAAa,UAAUF,CAAK,UAAU,CAAC,2PAA6P,CAClb,EACK,eAAe,IAAI,oBAAoB,GAC1C,eAAe,OAAO,qBAAsBF,EAAc,EOnB5D,OAAS,cAAAK,OAAkB,MAC3B,OAAS,gBAAAC,GAAc,QAAAC,OAAY,qBCDV,IAAMC,GAAS,KAAK,MAAM,iDAAqD,ECAzEA,GAAS,KAAK,MAAM,gDAAoD,ECAxEA,GAAS,KAAK,MAAM,kDAAsD,ECA1EA,GAAS,KAAK,MAAM,iDAAqD,ECAzEA,GAAS,KAAK,MAAM,gDAAiD,ECEvFC,GAAmB,CAAC,KAAM,KAAM,KAAM,KAAM,IAAI,EAGhDC,GAAgB,KAEvBC,GAAgB,IAAM,CAP5B,IAAAC,EAQC,IAAIC,EACH,QAAQD,EAAA,SAAA,KAAA,OAAA,QAAS,MAAT,KAAA,OAAAA,EAAc,UAAW,CACjC,IAAK,OACJC,EAAQ,KACR,MACD,IAAK,OACJA,EAAQ,KACR,MACD,IAAK,UACJA,EAAQ,KACR,MACD,IAAK,MACJA,EAAQ,KACR,MACD,QACCA,EAAQ,IACV,CACA,OAAOA,CACR,EAEMC,GAAe,IAAM,CA5B3B,IAAAF,EA6BE,IAAMG,GAAWH,EAAA,UAAA,KAAA,OAAA,SAAU,WAAV,KAAA,OAAAA,EAAoB,SACrC,OAAIG,GAAA,MAAAA,EAAU,SAAS,MAAA,EACd,KACEA,EAAS,SAAS,MAAM,EAC1B,KACEA,EAAS,SAAS,SAAS,EAC7B,KACEA,EAAS,SAAS,KAAK,EACzB,KAEAL,EAEX,EAEaM,GAAsBC,GAE/BR,GAAiB,KACdS,GACCD,IAAeC,GAAUD,EAAW,YAAY,EAAE,SAASC,CAAM,CACrE,GAAKJ,GAAa,EAIf,SAASK,IAAgC,CApDhD,IAAAP,EAqDE,GAAI,OAAO,QAAW,YAAa,CAIjC,IAAMQ,EAAeT,GAAc,EACnC,OAAOK,GAAmBI,CAAY,CACxC,CAEA,GAAI,CAIF,IAAMC,GAAaT,EAAA,UAAA,KAAA,OAAA,SAAU,kBAAV,KAAA,OAAAA,EAA2B,KACxCU,EAAaR,GAAa,EAEhC,OAAKL,GAAiB,SAASY,CAA6B,EAIrDL,GAAmBK,GAAA,KAAAA,EAAcC,CAAU,GAHhD,QAAQ,KAAK,gFAAgF,EACtFN,GAAmBM,CAAU,EAGxC,OAAS,EAAG,CACV,eAAQ,KAAK,yDAA0D,CAAC,EACjEZ,EACT,CACF,CAEO,IAAMa,GAAc,CACzBL,EACAM,EACAC,EACAC,EACAC,EACAC,IAEIV,IAAW,KAAaO,EACxBP,IAAW,KAAaQ,EACxBR,IAAW,KAAaS,EACxBT,IAAW,KAAaU,EAErBJ,EAGIK,GAAe,CAC1BC,EACAC,EACAC,EACAC,EACAC,IACG,CACH,IAAMhB,EAASC,GAAa,EACtBX,EAAWe,GAAYL,EAAQY,EAAYC,EAAYC,EAAYC,EAAYC,CAAU,EAC/FC,EAAK,KAAKjB,EAAQV,CAAQ,EAC1B2B,EAAK,SAASjB,CAAM,CACtB,ENjGAW,GAAarB,GAAYA,GAAYA,GAAYA,GAAYA,EAAU,EAGhE,IAAM4B,GAAN,cAAgCC,EAAW,CAChD,QAAS,CACL,IAAMC,EAAQH,EAAK,EAAE,CAAE,QAAS,iBAAkB,GAAI,0BAA2B,QAAS,6BAA8B,CAAC,EAEzH,OAAOI,mIAAqIC,GAAa,UAAUF,CAAK,UAAU,CAAC,4IAA8I,CACvU,EACK,eAAe,IAAI,wBAAwB,GAC9C,eAAe,OAAO,yBAA0BF,EAAiB,EOnBnE,OAAS,cAAAK,OAAkB,MAC3B,OAAS,gBAAAC,GAAc,QAAAC,OAAY,qBCDV,IAAMC,GAAS,KAAK,MAAM,mDAAoD,ECAxEA,GAAS,KAAK,MAAM,kDAAsD,ECA1EA,GAAS,KAAK,MAAM,iDAAqD,ECAzEA,GAAS,KAAK,MAAM,mDAAoD,ECAxEA,GAAS,KAAK,MAAM,+CAAgD,ECEtFC,GAAmB,CAAC,KAAM,KAAM,KAAM,KAAM,IAAI,EAGhDC,GAAgB,KAEvBC,GAAgB,IAAM,CAP5B,IAAAC,EAQC,IAAIC,EACH,QAAQD,EAAA,SAAA,KAAA,OAAA,QAAS,MAAT,KAAA,OAAAA,EAAc,UAAW,CACjC,IAAK,OACJC,EAAQ,KACR,MACD,IAAK,OACJA,EAAQ,KACR,MACD,IAAK,UACJA,EAAQ,KACR,MACD,IAAK,MACJA,EAAQ,KACR,MACD,QACCA,EAAQ,IACV,CACA,OAAOA,CACR,EAEMC,GAAe,IAAM,CA5B3B,IAAAF,EA6BE,IAAMG,GAAWH,EAAA,UAAA,KAAA,OAAA,SAAU,WAAV,KAAA,OAAAA,EAAoB,SACrC,OAAIG,GAAA,MAAAA,EAAU,SAAS,MAAA,EACd,KACEA,EAAS,SAAS,MAAM,EAC1B,KACEA,EAAS,SAAS,SAAS,EAC7B,KACEA,EAAS,SAAS,KAAK,EACzB,KAEAL,EAEX,EAEaM,GAAsBC,GAE/BR,GAAiB,KACdS,GACCD,IAAeC,GAAUD,EAAW,YAAY,EAAE,SAASC,CAAM,CACrE,GAAKJ,GAAa,EAIf,SAASK,IAAgC,CApDhD,IAAAP,EAqDE,GAAI,OAAO,QAAW,YAAa,CAIjC,IAAMQ,EAAeT,GAAc,EACnC,OAAOK,GAAmBI,CAAY,CACxC,CAEA,GAAI,CAIF,IAAMC,GAAaT,EAAA,UAAA,KAAA,OAAA,SAAU,kBAAV,KAAA,OAAAA,EAA2B,KACxCU,EAAaR,GAAa,EAEhC,OAAKL,GAAiB,SAASY,CAA6B,EAIrDL,GAAmBK,GAAA,KAAAA,EAAcC,CAAU,GAHhD,QAAQ,KAAK,gFAAgF,EACtFN,GAAmBM,CAAU,EAGxC,OAAS,EAAG,CACV,eAAQ,KAAK,yDAA0D,CAAC,EACjEZ,EACT,CACF,CAEO,IAAMa,GAAc,CACzBL,EACAM,EACAC,EACAC,EACAC,EACAC,IAEIV,IAAW,KAAaO,EACxBP,IAAW,KAAaQ,EACxBR,IAAW,KAAaS,EACxBT,IAAW,KAAaU,EAErBJ,EAGIK,GAAe,CAC1BC,EACAC,EACAC,EACAC,EACAC,IACG,CACH,IAAMhB,EAASC,GAAa,EACtBX,EAAWe,GAAYL,EAAQY,EAAYC,EAAYC,EAAYC,EAAYC,CAAU,EAC/FC,EAAK,KAAKjB,EAAQV,CAAQ,EAC1B2B,EAAK,SAASjB,CAAM,CACtB,ENjGAW,GAAarB,GAAYA,GAAYA,GAAYA,GAAYA,EAAU,EAGhE,IAAM4B,GAAN,cAAiCC,EAAW,CACjD,QAAS,CACL,IAAMC,EAAQH,EAAK,EAAE,CAAE,QAAS,kBAAmB,GAAI,2BAA4B,QAAS,8BAA+B,CAAC,EAE5H,OAAOI,oIAAsIC,GAAa,UAAUF,CAAK,UAAU,CAAC,4IAA8I,CACxU,EACK,eAAe,IAAI,yBAAyB,GAC/C,eAAe,OAAO,0BAA2BF,EAAkB,EOjB9D,IAAMK,GAAmB,CAAC,KAAM,KAAM,KAAM,KAAM,IAAI,EAGhDC,GAAgB,KAEhBC,GAAsBC,GAE/BH,GAAiB,KAAMI,GAAWD,IAAeC,GAAUD,EAAW,YAAY,EAAE,SAASC,CAAM,CAAC,GACpGH,GAIG,SAASI,IAAgC,CAC9C,GAAI,OAAO,QAAW,YAAa,CAIjC,IAAMC,EAAe,QAAQ,IAAI,cAAgB,KAAK,eAAe,EAAE,gBAAgB,EAAE,OACzF,OAAOJ,GAAmBI,CAAY,CACxC,CAEA,GAAI,CAIF,IAAMC,EAAa,SAAS,gBAAgB,KAC5C,OAAOL,GAAmBK,CAAU,CACtC,OAASC,EAAG,CACV,eAAQ,KAAK,yDAA0DA,CAAC,EACjEP,EACT,CACF,CAEO,IAAMQ,GAAc,CACzBL,EACAM,EACAC,EACAC,EACAC,EACAC,IAEIV,IAAW,KAAaO,EACxBP,IAAW,KAAaQ,EACxBR,IAAW,KAAaS,EACxBT,IAAW,KAAaU,EAErBJ,EAGIK,GAAe,CAC1BC,EACAC,EACAC,EACAC,EACAC,IACG,CACH,IAAMhB,EAASC,GAAa,EACtBgB,EAAWZ,GAAYL,EAAQY,EAAYC,EAAYC,EAAYC,EAAYC,CAAU,EAC/FE,EAAK,KAAKlB,EAAQiB,CAAQ,EAC1BC,EAAK,SAASlB,CAAM,CACtB,EC9DA,OAAS,OAAAmB,OAAW,MAEb,IAAMC,GAAQD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAkRRE,GAAaF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;UCpRD,IAAMG,GAAS,KAAK,MAAM,+QAAqS,ECA/T,IAAMC,GAAS,KAAK,MAAM,+QA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",
6
- "names": ["require_errors", "__commonJSMin", "exports", "ErrorType", "require_dist", "__commonJSMin", "exports", "errors_1", "parseHexToInt", "hex", "validateAndParseHex", "errorName", "enforcedLength", "parsedHex", "parseHexadecimalCode", "code", "parsedCode", "parseUnicodeCode", "surrogateCode", "parsedSurrogateCode", "isCurlyBraced", "text", "parseUnicodeCodePointCode", "codePoint", "withoutBraces", "err", "parseOctalCode", "error", "singleCharacterEscapes", "parseSingleCharacterCode", "escapeMatch", "unraw", "raw", "allowOctals", "_", "backslash", "unicodeWithSurrogate", "surrogate", "unicode", "octal", "singleCharacter", "import_unraw", "isString", "s", "isFunction", "f", "cache", "defaultLocale", "normalizeLocales", "locales", "date", "value", "format", "_locales", "getMemoized", "cacheKey", "time", "o", "number", "plural", "ordinal", "offset", "rules", "_a", "_b", "plurals", "getKey", "construct", "key", "formatter", "type", "options", "localeKey", "UNICODE_REGEX", "OCTOTHORPE_PH", "getDefaultFormats", "locale", "passedLocales", "formats", "locales", "style", "format", "replaceOctothorpe", "value", "message", "numberFormat", "valueStr", "number", "cases", "offset", "plural", "selectFormatter", "date", "time", "rules", "_a", "interpolate", "translation", "values", "formatters", "formatMessage", "tokens", "token", "isString", "name", "type", "interpolatedFormat", "key", "value2", "formatter", "result", "__defProp$1", "__defNormalProp$1", "obj", "__publicField$1", "EventEmitter", "event", "listener", "maybeListeners", "index", "args", "__defProp", "__defNormalProp", "__publicField", "I18n", "params", "defaultLocale", "localeData", "maybeLocaleData", "compiler", "localeOrAllData", "messages", "maybeMessages", "localeOrMessages", "messages2", "id", "options", "messageForId", "messageMissing", "missing", "isFunction", "setupI18n", "i18n", "FormControlMixin", "SuperClass", "FormControl", "args", "_FormControl_focused", "_FormControl_forceError", "_FormControl_touched", "_FormControl_abortController", "_FormControl_previousAbortController", "_FormControl_awaitingValidationTarget", "_FormControl_value", "_FormControl_onFocus", "__classPrivateFieldSet", "__classPrivateFieldGet", "_FormControl_instances", "_FormControl_shouldShowError", "_FormControl_onBlur", "_FormControl_runValidators", "showError", "_FormControl_onInvalid", "_a", "_FormControl_validationCompleteResolver", "_FormControl_isValidationPending", "_FormControl_validationComplete", "_b", "_c", "validatorAttributes", "validator", "observedAttributes", "attribute", "name", "oldValue", "newValue", "validators", "value", "valueToUpdate", "resolve", "rootNode", "selector", "proto", "validity", "asyncValidators", "hasAsyncValidators", "abortController", "validationMessage", "hasChange", "key", "isValid", "isValidatorValid", "_FormControl_getValidatorMessageForValue", "_FormControl_setValidityWithOptionalTarget", "message", "maxTime", "minTime", "millisecondsInWeek", "millisecondsInDay", "secondsInHour", "secondsInDay", "secondsInHour", "secondsInWeek", "secondsInYear", "secondsInMonth", "secondsInQuarter", "constructFromSymbol", "constructFrom", "date", "value", "constructFromSymbol", "toDate", "argument", "context", "constructFrom", "addDays", "date", "amount", "options", "_date", "toDate", "constructFrom", "addMonths", "date", "amount", "options", "_date", "toDate", "constructFrom", "dayOfMonth", "endOfDesiredMonth", "daysInMonth", "defaultOptions", "getDefaultOptions", "startOfWeek", "date", "options", "_a", "_b", "_c", "_d", "_e", "_f", "_g", "_h", "defaultOptions", "getDefaultOptions", "weekStartsOn", "_date", "toDate", "day", "diff", "startOfISOWeek", "date", "options", "startOfWeek", "getISOWeekYear", "date", "options", "_date", "toDate", "year", "fourthOfJanuaryOfNextYear", "constructFrom", "startOfNextYear", "startOfISOWeek", "fourthOfJanuaryOfThisYear", "startOfThisYear", "getTimezoneOffsetInMilliseconds", "date", "_date", "toDate", "utcDate", "normalizeDates", "context", "dates", "normalize", "constructFrom", "date", "startOfDay", "date", "options", "_date", "toDate", "differenceInCalendarDays", "laterDate", "earlierDate", "options", "laterDate_", "earlierDate_", "normalizeDates", "laterStartOfDay", "startOfDay", "earlierStartOfDay", "laterTimestamp", "getTimezoneOffsetInMilliseconds", "earlierTimestamp", "millisecondsInDay", "startOfISOWeekYear", "date", "options", "year", "getISOWeekYear", "fourthOfJanuary", "constructFrom", "startOfISOWeek", "addWeeks", "date", "amount", "options", "addDays", "constructNow", "date", "constructFrom", "isSameDay", "laterDate", "earlierDate", "options", "dateLeft_", "dateRight_", "normalizeDates", "startOfDay", "isDate", "value", "isValid", "date", "isDate", "toDate", "normalizeInterval", "context", "interval", "start", "end", "normalizeDates", "eachDayOfInterval", "interval", "options", "_a", "start", "end", "normalizeInterval", "reversed", "endTime", "date", "step", "dates", "constructFrom", "eachWeekOfInterval", "interval", "options", "_a", "start", "end", "normalizeInterval", "reversed", "startDateWeek", "startOfWeek", "endDateWeek", "endTime", "currentDate", "step", "dates", "constructFrom", "addWeeks", "startOfMonth", "date", "options", "_date", "toDate", "startOfYear", "date", "options", "date_", "toDate", "endOfWeek", "date", "options", "_a", "_b", "_c", "_d", "_e", "_f", "_g", "_h", "defaultOptions", "getDefaultOptions", "weekStartsOn", "_date", "toDate", "day", "diff", "formatDistanceLocale", "formatDistance", "token", "count", "options", "result", "tokenValue", "buildFormatLongFn", "args", "options", "width", "dateFormats", "timeFormats", "dateTimeFormats", "formatLong", "buildFormatLongFn", "formatRelativeLocale", "formatRelative", "token", "_date", "_baseDate", "_options", "buildLocalizeFn", "args", "value", "options", "context", "valuesArray", "defaultWidth", "width", "index", "eraValues", "quarterValues", "monthValues", "dayValues", "dayPeriodValues", "formattingDayPeriodValues", "ordinalNumber", "dirtyNumber", "_options", "number", "rem100", "localize", "buildLocalizeFn", "quarter", "buildMatchFn", "args", "string", "options", "width", "matchPattern", "matchResult", "matchedString", "parsePatterns", "key", "findIndex", "pattern", "findKey", "value", "rest", "object", "predicate", "array", "buildMatchPatternFn", "args", "string", "options", "matchResult", "matchedString", "parseResult", "value", "rest", "matchOrdinalNumberPattern", "parseOrdinalNumberPattern", "matchEraPatterns", "parseEraPatterns", "matchQuarterPatterns", "parseQuarterPatterns", "matchMonthPatterns", "parseMonthPatterns", "matchDayPatterns", "parseDayPatterns", "matchDayPeriodPatterns", "parseDayPeriodPatterns", "match", "buildMatchPatternFn", "value", "buildMatchFn", "index", "enUS", "formatDistance", "formatLong", "formatRelative", "localize", "match", "getDayOfYear", "date", "options", "_date", "toDate", "differenceInCalendarDays", "startOfYear", "getISOWeek", "date", "options", "_date", "toDate", "diff", "startOfISOWeek", "startOfISOWeekYear", "millisecondsInWeek", "getWeekYear", "date", "options", "_a", "_b", "_c", "_d", "_e", "_f", "_g", "_h", "_date", "toDate", "year", "defaultOptions", "getDefaultOptions", "firstWeekContainsDate", "firstWeekOfNextYear", "constructFrom", "startOfNextYear", "startOfWeek", "firstWeekOfThisYear", "startOfThisYear", "startOfWeekYear", "date", "options", "_a", "_b", "_c", "_d", "_e", "_f", "_g", "_h", "defaultOptions", "getDefaultOptions", "firstWeekContainsDate", "year", "getWeekYear", "firstWeek", "constructFrom", "startOfWeek", "getWeek", "date", "options", "_date", "toDate", "diff", "startOfWeek", "startOfWeekYear", "millisecondsInWeek", "addLeadingZeros", "number", "targetLength", "sign", "output", "lightFormatters", "date", "token", "signedYear", "year", "addLeadingZeros", "month", "dayPeriodEnumValue", "numberOfDigits", "milliseconds", "fractionalSeconds", "dayPeriodEnum", "formatters", "date", "token", "localize", "era", "signedYear", "year", "lightFormatters", "options", "signedWeekYear", "getWeekYear", "weekYear", "twoDigitYear", "addLeadingZeros", "isoWeekYear", "getISOWeekYear", "quarter", "month", "week", "getWeek", "isoWeek", "getISOWeek", "dayOfYear", "getDayOfYear", "dayOfWeek", "localDayOfWeek", "isoDayOfWeek", "dayPeriodEnumValue", "hours", "_localize", "timezoneOffset", "formatTimezoneWithOptionalMinutes", "formatTimezone", "formatTimezoneShort", "timestamp", "offset", "delimiter", "sign", "absOffset", "minutes", "dateLongFormatter", "pattern", "formatLong", "timeLongFormatter", "dateTimeLongFormatter", "matchResult", "datePattern", "timePattern", "dateTimeFormat", "longFormatters", "dayOfYearTokenRE", "weekYearTokenRE", "throwTokens", "isProtectedDayOfYearToken", "token", "isProtectedWeekYearToken", "warnOrThrowProtectedError", "format", "input", "_message", "message", "subject", "formattingTokensRegExp", "longFormattingTokensRegExp", "escapedStringRegExp", "doubleQuoteRegExp", "unescapedLatinCharacterRegExp", "format", "date", "formatStr", "options", "_a", "_b", "_c", "_d", "_e", "_f", "_g", "_h", "_i", "_j", "_k", "_l", "_m", "_n", "_o", "_p", "_q", "_r", "defaultOptions", "getDefaultOptions", "locale", "enUS", "firstWeekContainsDate", "weekStartsOn", "originalDate", "toDate", "isValid", "parts", "longFormattingTokensRegExp", "substring", "firstCharacter", "longFormatter", "longFormatters", "formattingTokensRegExp", "cleanEscapedString", "formatters", "unescapedLatinCharacterRegExp", "formatterOptions", "part", "token", "isProtectedWeekYearToken", "isProtectedDayOfYearToken", "warnOrThrowProtectedError", "formatter", "input", "matched", "escapedStringRegExp", "doubleQuoteRegExp", "formatISO", "date", "options", "_a", "_b", "date_", "toDate", "format", "representation", "result", "tzOffset", "dateDelimiter", "timeDelimiter", "day", "addLeadingZeros", "month", "offset", "absoluteOffset", "hourOffset", "minuteOffset", "hour", "minute", "second", "separator", "time", "getDate", "date", "options", "toDate", "getDay", "date", "options", "toDate", "getWeekOfMonth", "date", "options", "_a", "_b", "_c", "_d", "_e", "_f", "_g", "_h", "defaultOptions", "getDefaultOptions", "weekStartsOn", "currentDayOfMonth", "getDate", "toDate", "startWeekDay", "getDay", "startOfMonth", "lastDayOfFirstWeek", "remainingDaysAfterFirstWeek", "lastDayOfMonth", "date", "options", "_date", "toDate", "month", "isSameMonth", "laterDate", "earlierDate", "options", "laterDate_", "earlierDate_", "normalizeDates", "isToday", "date", "options", "isSameDay", "constructFrom", "constructNow", "subDays", "date", "amount", "options", "addDays", "startOfToday", "options", "startOfDay", "subMonths", "date", "amount", "options", "addMonths", "formatDistanceLocale", "formatDistance", "token", "count", "options", "result", "tokenValue", "dateFormats", "timeFormats", "dateTimeFormats", "formatLong", "buildFormatLongFn", "formatRelativeLocale", "formatRelative", "token", "_date", "_baseDate", "_options", "eraValues", "quarterValues", "monthValues", "dayValues", "dayPeriodValues", "formattingDayPeriodValues", "ordinalNumber", "dirtyNumber", "_options", "localize", "buildLocalizeFn", "quarter", "matchOrdinalNumberPattern", "parseOrdinalNumberPattern", "matchEraPatterns", "parseEraPatterns", "matchQuarterPatterns", "parseQuarterPatterns", "matchMonthPatterns", "parseMonthPatterns", "matchDayPatterns", "parseDayPatterns", "matchDayPeriodPatterns", "parseDayPeriodPatterns", "match", "buildMatchPatternFn", "value", "buildMatchFn", "index", "da", "formatDistance", "formatLong", "formatRelative", "localize", "match", "dateFormats", "timeFormats", "dateTimeFormats", "formatLong", "buildFormatLongFn", "enGB", "formatDistance", "formatLong", "formatRelative", "localize", "match", "futureSeconds", "text", "futureMinutes", "futureHours", "futureDays", "futureWeeks", "futureMonths", "futureYears", "formatDistanceLocale", "_text", "formatDistance", "token", "count", "options", "tokenValue", "result", "dateFormats", "timeFormats", "dateTimeFormats", "formatLong", "buildFormatLongFn", "formatRelativeLocale", "formatRelative", "token", "_date", "_baseDate", "_options", "eraValues", "quarterValues", "monthValues", "formattingMonthValues", "dayValues", "formattingDayValues", "dayPeriodValues", "ordinalNumber", "dirtyNumber", "_options", "localize", "buildLocalizeFn", "quarter", "matchOrdinalNumberPattern", "parseOrdinalNumberPattern", "matchEraPatterns", "parseEraPatterns", "matchQuarterPatterns", "parseQuarterPatterns", "matchMonthPatterns", "parseMonthPatterns", "matchDayPatterns", "parseDayPatterns", "matchDayPeriodPatterns", "parseDayPeriodPatterns", "match", "buildMatchPatternFn", "value", "buildMatchFn", "index", "fi", "formatDistance", "formatLong", "formatRelative", "localize", "match", "formatDistanceLocale", "formatDistance", "token", "count", "options", "result", "tokenValue", "dateFormats", "timeFormats", "dateTimeFormats", "formatLong", "buildFormatLongFn", "formatRelativeLocale", "formatRelative", "token", "_date", "_baseDate", "_options", "eraValues", "quarterValues", "monthValues", "dayValues", "dayPeriodValues", "ordinalNumber", "dirtyNumber", "_options", "localize", "buildLocalizeFn", "quarter", "matchOrdinalNumberPattern", "parseOrdinalNumberPattern", "matchEraPatterns", "parseEraPatterns", "matchQuarterPatterns", "parseQuarterPatterns", "matchMonthPatterns", "parseMonthPatterns", "matchDayPatterns", "parseDayPatterns", "matchDayPeriodPatterns", "parseDayPeriodPatterns", "match", "buildMatchPatternFn", "value", "buildMatchFn", "index", "nb", "formatDistance", "formatLong", "formatRelative", "localize", "match", "formatDistanceLocale", "wordMapping", "formatDistance", "token", "count", "options", "result", "tokenValue", "dateFormats", "timeFormats", "dateTimeFormats", "formatLong", "buildFormatLongFn", "formatRelativeLocale", "formatRelative", "token", "_date", "_baseDate", "_options", "eraValues", "quarterValues", "monthValues", "dayValues", "dayPeriodValues", "formattingDayPeriodValues", "ordinalNumber", "dirtyNumber", "_options", "number", "rem100", "localize", "buildLocalizeFn", "quarter", "matchOrdinalNumberPattern", "parseOrdinalNumberPattern", "matchEraPatterns", "parseEraPatterns", "matchQuarterPatterns", "parseQuarterPatterns", "matchMonthPatterns", "parseMonthPatterns", "matchDayPatterns", "parseDayPatterns", "matchDayPeriodPatterns", "parseDayPeriodPatterns", "match", "buildMatchPatternFn", "value", "buildMatchFn", "index", "sv", "formatDistance", "formatLong", "formatRelative", "localize", "match", "html", "LitElement", "property", "query", "state", "classMap", "ifDefined", "styleMap", "LitElement", "unsafeStatic", "html", "messages", "supportedLocales", "defaultLocale", "detectByBrand", "_a", "value", "detectByHost", "hostname", "getSupportedLocale", "usedLocale", "locale", "detectLocale", "serverLocale", "htmlLocale", "hostLocale", "getMessages", "enMsg", "nbMsg", "fiMsg", "daMsg", "svMsg", "activateI18n", "enMessages", "nbMessages", "fiMessages", "daMessages", "svMessages", "i18n", "IconCalendar16", "LitElement", "title", "html", "unsafeStatic", "LitElement", "unsafeStatic", "html", "messages", "supportedLocales", "defaultLocale", "detectByBrand", "_a", "value", "detectByHost", "hostname", "getSupportedLocale", "usedLocale", "locale", "detectLocale", "serverLocale", "htmlLocale", "hostLocale", "getMessages", "enMsg", "nbMsg", "fiMsg", "daMsg", "svMsg", "activateI18n", "enMessages", "nbMessages", "fiMessages", "daMessages", "svMessages", "i18n", "IconChevronLeft16", "LitElement", "title", "html", "unsafeStatic", "LitElement", "unsafeStatic", "html", "messages", "supportedLocales", "defaultLocale", "detectByBrand", "_a", "value", "detectByHost", "hostname", "getSupportedLocale", "usedLocale", "locale", "detectLocale", "serverLocale", "htmlLocale", "hostLocale", "getMessages", "enMsg", "nbMsg", "fiMsg", "daMsg", "svMsg", "activateI18n", "enMessages", "nbMessages", "fiMessages", "daMessages", "svMessages", "i18n", "IconChevronRight16", "LitElement", "title", "html", "unsafeStatic", "supportedLocales", "defaultLocale", "getSupportedLocale", "usedLocale", "locale", "detectLocale", "serverLocale", "htmlLocale", "e", "getMessages", "enMsg", "nbMsg", "fiMsg", "daMsg", "svMsg", "activateI18n", "enMessages", "nbMessages", "fiMessages", "daMessages", "svMessages", "messages", "i18n", "css", "reset", "components", "messages", "messages", "messages", "messages", "messages", "css", "wDatepickerStyles", "css", "wDatepickerCalendarStyles", "css", "wDatepickerDayStyles", "css", "wDatepickerMonthStyles", "dateOnlyRe", "fromISOToDate", "isoString", "normalized", "timestamp", "ua", "isIOS", "inputType", "calendarId", "inputId", "toggleButtonId", "wrapperId", "previousMonthButtonId", "datefnsLocale", "enGB", "nb", "sv", "da", "fi", "_initialValue", "_WarpDatepicker_instances", "toggleCalendarOpen_fn", "nextMonth_fn", "previousMonth_fn", "dispatchChangeEvent_fn", "onInput_fn", "onInputClick_fn", "onInputKeyDown_fn", "onCalendarKeyDown_fn", "onCalendarSelect_fn", "WarpDatepicker", "FormControlMixin", "LitElement", "__privateAdd", "startOfToday", "activateI18n", "messages", "lang", "detectLocale", "_a", "fromISOToDate", "startOfMonth", "month", "navigationDate", "weekIntervals", "eachWeekOfInterval", "lastDayOfMonth", "weekStart", "endOfWeek", "week", "eachDayOfInterval", "isSameMonth", "weekOfMonth", "getWeekOfMonth", "day", "differenceInCalendarDays", "startOfWeek", "__privateGet", "e", "__privateSet", "iso", "changedProperties", "html", "ifDefined", "__privateMethod", "i18n", "format", "styleMap", "isDisabled", "isSelected", "isSameDay", "isNavigationDate", "isToday", "classMap", "formatISO", "getDate", "addMonths", "subMonths", "newNavigationDate", "subDays", "addDays", "event", "isoDate", "reset", "wDatepickerStyles", "wDatepickerCalendarStyles", "wDatepickerDayStyles", "wDatepickerMonthStyles", "__decorateClass", "property", "state", "query"]
4
+ "sourcesContent": ["\"use strict\";\n// NOTE: don't construct errors here or they'll have the wrong stack trace.\n// NOTE: don't make custom error class; the JS engines use `SyntaxError`\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.errorMessages = exports.ErrorType = void 0;\n/**\n * Keys for possible error messages used by `unraw`.\n * Note: These do _not_ map to actual error object types. All errors thrown\n * are `SyntaxError`.\n */\n// Don't use const enum or JS users won't be able to access the enum values\nvar ErrorType;\n(function (ErrorType) {\n /**\n * Thrown when a badly formed Unicode escape sequence is found. Possible\n * reasons include the code being too short (`\"\\u25\"`) or having invalid\n * characters (`\"\\u2$A5\"`).\n */\n ErrorType[\"MalformedUnicode\"] = \"MALFORMED_UNICODE\";\n /**\n * Thrown when a badly formed hexadecimal escape sequence is found. Possible\n * reasons include the code being too short (`\"\\x2\"`) or having invalid\n * characters (`\"\\x2$\"`).\n */\n ErrorType[\"MalformedHexadecimal\"] = \"MALFORMED_HEXADECIMAL\";\n /**\n * Thrown when a Unicode code point escape sequence has too high of a code\n * point. The maximum code point allowed is `\\u{10FFFF}`, so `\\u{110000}` and\n * higher will throw this error.\n */\n ErrorType[\"CodePointLimit\"] = \"CODE_POINT_LIMIT\";\n /**\n * Thrown when an octal escape sequences is encountered and `allowOctals` is\n * `false`. For example, `unraw(\"\\234\", false)`.\n */\n ErrorType[\"OctalDeprecation\"] = \"OCTAL_DEPRECATION\";\n /**\n * Thrown only when a single backslash is found at the end of a string. For\n * example, `\"\\\\\"` or `\"test\\\\x24\\\\\"`.\n */\n ErrorType[\"EndOfString\"] = \"END_OF_STRING\";\n})(ErrorType = exports.ErrorType || (exports.ErrorType = {}));\n/** Map of error message names to the full text of the message. */\nexports.errorMessages = new Map([\n [ErrorType.MalformedUnicode, \"malformed Unicode character escape sequence\"],\n [\n ErrorType.MalformedHexadecimal,\n \"malformed hexadecimal character escape sequence\"\n ],\n [\n ErrorType.CodePointLimit,\n \"Unicode codepoint must not be greater than 0x10FFFF in escape sequence\"\n ],\n [\n ErrorType.OctalDeprecation,\n '\"0\"-prefixed octal literals and octal escape sequences are deprecated; ' +\n 'for octal literals use the \"0o\" prefix instead'\n ],\n [ErrorType.EndOfString, \"malformed escape sequence at end of string\"]\n]);\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.unraw = exports.errorMessages = exports.ErrorType = void 0;\nconst errors_1 = require(\"./errors\");\nObject.defineProperty(exports, \"ErrorType\", { enumerable: true, get: function () { return errors_1.ErrorType; } });\nObject.defineProperty(exports, \"errorMessages\", { enumerable: true, get: function () { return errors_1.errorMessages; } });\n/**\n * Parse a string as a base-16 number. This is more strict than `parseInt` as it\n * will not allow any other characters, including (for example) \"+\", \"-\", and\n * \".\".\n * @param hex A string containing a hexadecimal number.\n * @returns The parsed integer, or `NaN` if the string is not a valid hex\n * number.\n */\nfunction parseHexToInt(hex) {\n const isOnlyHexChars = !hex.match(/[^a-f0-9]/i);\n return isOnlyHexChars ? parseInt(hex, 16) : NaN;\n}\n/**\n * Check the validity and length of a hexadecimal code and optionally enforces\n * a specific number of hex digits.\n * @param hex The string to validate and parse.\n * @param errorName The name of the error message to throw a `SyntaxError` with\n * if `hex` is invalid. This is used to index `errorMessages`.\n * @param enforcedLength If provided, will throw an error if `hex` is not\n * exactly this many characters.\n * @returns The parsed hex number as a normal number.\n * @throws {SyntaxError} If the code is not valid.\n */\nfunction validateAndParseHex(hex, errorName, enforcedLength) {\n const parsedHex = parseHexToInt(hex);\n if (Number.isNaN(parsedHex) ||\n (enforcedLength !== undefined && enforcedLength !== hex.length)) {\n throw new SyntaxError(errors_1.errorMessages.get(errorName));\n }\n return parsedHex;\n}\n/**\n * Parse a two-digit hexadecimal character escape code.\n * @param code The two-digit hexadecimal number that represents the character to\n * output.\n * @returns The single character represented by the code.\n * @throws {SyntaxError} If the code is not valid hex or is not the right\n * length.\n */\nfunction parseHexadecimalCode(code) {\n const parsedCode = validateAndParseHex(code, errors_1.ErrorType.MalformedHexadecimal, 2);\n return String.fromCharCode(parsedCode);\n}\n/**\n * Parse a four-digit Unicode character escape code.\n * @param code The four-digit unicode number that represents the character to\n * output.\n * @param surrogateCode Optional four-digit unicode surrogate that represents\n * the other half of the character to output.\n * @returns The single character represented by the code.\n * @throws {SyntaxError} If the codes are not valid hex or are not the right\n * length.\n */\nfunction parseUnicodeCode(code, surrogateCode) {\n const parsedCode = validateAndParseHex(code, errors_1.ErrorType.MalformedUnicode, 4);\n if (surrogateCode !== undefined) {\n const parsedSurrogateCode = validateAndParseHex(surrogateCode, errors_1.ErrorType.MalformedUnicode, 4);\n return String.fromCharCode(parsedCode, parsedSurrogateCode);\n }\n return String.fromCharCode(parsedCode);\n}\n/**\n * Test if the text is surrounded by curly braces (`{}`).\n * @param text Text to check.\n * @returns `true` if the text is in the form `{*}`.\n */\nfunction isCurlyBraced(text) {\n return text.charAt(0) === \"{\" && text.charAt(text.length - 1) === \"}\";\n}\n/**\n * Parse a Unicode code point character escape code.\n * @param codePoint A unicode escape code point, including the surrounding curly\n * braces.\n * @returns The single character represented by the code.\n * @throws {SyntaxError} If the code is not valid hex or does not have the\n * surrounding curly braces.\n */\nfunction parseUnicodeCodePointCode(codePoint) {\n if (!isCurlyBraced(codePoint)) {\n throw new SyntaxError(errors_1.errorMessages.get(errors_1.ErrorType.MalformedUnicode));\n }\n const withoutBraces = codePoint.slice(1, -1);\n const parsedCode = validateAndParseHex(withoutBraces, errors_1.ErrorType.MalformedUnicode);\n try {\n return String.fromCodePoint(parsedCode);\n }\n catch (err) {\n throw err instanceof RangeError\n ? new SyntaxError(errors_1.errorMessages.get(errors_1.ErrorType.CodePointLimit))\n : err;\n }\n}\n// Have to give overload that takes boolean for when compiler doesn't know if\n// true or false\nfunction parseOctalCode(code, error = false) {\n if (error) {\n throw new SyntaxError(errors_1.errorMessages.get(errors_1.ErrorType.OctalDeprecation));\n }\n // The original regex only allows digits so we don't need to have a strict\n // octal parser like hexToInt. Length is not enforced for octals.\n const parsedCode = parseInt(code, 8);\n return String.fromCharCode(parsedCode);\n}\n/**\n * Map of unescaped letters to their corresponding special JS escape characters.\n * Intentionally does not include characters that map to themselves like \"\\'\".\n */\nconst singleCharacterEscapes = new Map([\n [\"b\", \"\\b\"],\n [\"f\", \"\\f\"],\n [\"n\", \"\\n\"],\n [\"r\", \"\\r\"],\n [\"t\", \"\\t\"],\n [\"v\", \"\\v\"],\n [\"0\", \"\\0\"]\n]);\n/**\n * Parse a single character escape sequence and return the matching character.\n * If none is matched, defaults to `code`.\n * @param code A single character code.\n */\nfunction parseSingleCharacterCode(code) {\n return singleCharacterEscapes.get(code) || code;\n}\n/**\n * Matches every escape sequence possible, including invalid ones.\n *\n * All capture groups (described below) are unique (only one will match), except\n * for 4, which can only potentially match if 3 does.\n *\n * **Capture Groups:**\n * 0. A single backslash\n * 1. Hexadecimal code\n * 2. Unicode code point code with surrounding curly braces\n * 3. Unicode escape code with surrogate\n * 4. Surrogate code\n * 5. Unicode escape code without surrogate\n * 6. Octal code _NOTE: includes \"0\"._\n * 7. A single character (will never be \\, x, u, or 0-3)\n */\nconst escapeMatch = /\\\\(?:(\\\\)|x([\\s\\S]{0,2})|u(\\{[^}]*\\}?)|u([\\s\\S]{4})\\\\u([^{][\\s\\S]{0,3})|u([\\s\\S]{0,4})|([0-3]?[0-7]{1,2})|([\\s\\S])|$)/g;\n/**\n * Replace raw escape character strings with their escape characters.\n * @param raw A string where escape characters are represented as raw string\n * values like `\\'` rather than `'`.\n * @param allowOctals If `true`, will process the now-deprecated octal escape\n * sequences (ie, `\\111`).\n * @returns The processed string, with escape characters replaced by their\n * respective actual Unicode characters.\n */\nfunction unraw(raw, allowOctals = false) {\n return raw.replace(escapeMatch, function (_, backslash, hex, codePoint, unicodeWithSurrogate, surrogate, unicode, octal, singleCharacter) {\n // Compare groups to undefined because empty strings mean different errors\n // Otherwise, `\\u` would fail the same as `\\` which is wrong.\n if (backslash !== undefined) {\n return \"\\\\\";\n }\n if (hex !== undefined) {\n return parseHexadecimalCode(hex);\n }\n if (codePoint !== undefined) {\n return parseUnicodeCodePointCode(codePoint);\n }\n if (unicodeWithSurrogate !== undefined) {\n return parseUnicodeCode(unicodeWithSurrogate, surrogate);\n }\n if (unicode !== undefined) {\n return parseUnicodeCode(unicode);\n }\n if (octal === \"0\") {\n return \"\\0\";\n }\n if (octal !== undefined) {\n return parseOctalCode(octal, !allowOctals);\n }\n if (singleCharacter !== undefined) {\n return parseSingleCharacterCode(singleCharacter);\n }\n throw new SyntaxError(errors_1.errorMessages.get(errors_1.ErrorType.EndOfString));\n });\n}\nexports.unraw = unraw;\nexports.default = unraw;\n", "import { unraw } from 'unraw';\nimport { compileMessage } from '@lingui/message-utils/compileMessage';\n\nconst isString = (s) => typeof s === \"string\";\nconst isFunction = (f) => typeof f === \"function\";\n\nconst cache = /* @__PURE__ */ new Map();\nconst defaultLocale = \"en\";\nfunction normalizeLocales(locales) {\n const out = Array.isArray(locales) ? locales : [locales];\n return [...out, defaultLocale];\n}\nfunction date(locales, value, format) {\n const _locales = normalizeLocales(locales);\n if (!format) {\n format = \"default\";\n }\n let o;\n if (typeof format === \"string\") {\n o = {\n day: \"numeric\",\n month: \"short\",\n year: \"numeric\"\n };\n switch (format) {\n case \"full\":\n o.weekday = \"long\";\n case \"long\":\n o.month = \"long\";\n break;\n case \"short\":\n o.month = \"numeric\";\n break;\n }\n } else {\n o = format;\n }\n const formatter = getMemoized(\n () => cacheKey(\"date\", _locales, format),\n () => new Intl.DateTimeFormat(_locales, o)\n );\n return formatter.format(isString(value) ? new Date(value) : value);\n}\nfunction time(locales, value, format) {\n let o;\n if (!format) {\n format = \"default\";\n }\n if (typeof format === \"string\") {\n o = {\n second: \"numeric\",\n minute: \"numeric\",\n hour: \"numeric\"\n };\n switch (format) {\n case \"full\":\n case \"long\":\n o.timeZoneName = \"short\";\n break;\n case \"short\":\n delete o.second;\n }\n } else {\n o = format;\n }\n return date(locales, value, o);\n}\nfunction number(locales, value, format) {\n const _locales = normalizeLocales(locales);\n const formatter = getMemoized(\n () => cacheKey(\"number\", _locales, format),\n () => new Intl.NumberFormat(_locales, format)\n );\n return formatter.format(value);\n}\nfunction plural(locales, ordinal, value, { offset = 0, ...rules }) {\n const _locales = normalizeLocales(locales);\n const plurals = ordinal ? getMemoized(\n () => cacheKey(\"plural-ordinal\", _locales),\n () => new Intl.PluralRules(_locales, { type: \"ordinal\" })\n ) : getMemoized(\n () => cacheKey(\"plural-cardinal\", _locales),\n () => new Intl.PluralRules(_locales, { type: \"cardinal\" })\n );\n return rules[value] ?? rules[plurals.select(value - offset)] ?? rules.other;\n}\nfunction getMemoized(getKey, construct) {\n const key = getKey();\n let formatter = cache.get(key);\n if (!formatter) {\n formatter = construct();\n cache.set(key, formatter);\n }\n return formatter;\n}\nfunction cacheKey(type, locales, options) {\n const localeKey = locales.join(\"-\");\n return `${type}-${localeKey}-${JSON.stringify(options)}`;\n}\n\nconst formats = {\n __proto__: null,\n date: date,\n defaultLocale: defaultLocale,\n number: number,\n plural: plural,\n time: time\n};\n\nconst UNICODE_REGEX = /\\\\u[a-fA-F0-9]{4}|\\\\x[a-fA-F0-9]{2}/;\nconst OCTOTHORPE_PH = \"%__lingui_octothorpe__%\";\nconst getDefaultFormats = (locale, passedLocales, formats = {}) => {\n const locales = passedLocales || locale;\n const style = (format) => {\n if (typeof format === \"object\")\n return format;\n return formats[format];\n };\n const replaceOctothorpe = (value, message) => {\n const numberFormat = Object.keys(formats).length ? style(\"number\") : void 0;\n const valueStr = number(locales, value, numberFormat);\n return message.replace(new RegExp(OCTOTHORPE_PH, \"g\"), valueStr);\n };\n return {\n plural: (value, cases) => {\n const { offset = 0 } = cases;\n const message = plural(locales, false, value, cases);\n return replaceOctothorpe(value - offset, message);\n },\n selectordinal: (value, cases) => {\n const { offset = 0 } = cases;\n const message = plural(locales, true, value, cases);\n return replaceOctothorpe(value - offset, message);\n },\n select: selectFormatter,\n number: (value, format) => number(\n locales,\n value,\n style(format) || { style: format }\n ),\n date: (value, format) => date(locales, value, style(format) || format),\n time: (value, format) => time(locales, value, style(format) || format)\n };\n};\nconst selectFormatter = (value, rules) => rules[value] ?? rules.other;\nfunction interpolate(translation, locale, locales) {\n return (values = {}, formats) => {\n const formatters = getDefaultFormats(locale, locales, formats);\n const formatMessage = (tokens, replaceOctothorpe = false) => {\n if (!Array.isArray(tokens))\n return tokens;\n return tokens.reduce((message, token) => {\n if (token === \"#\" && replaceOctothorpe) {\n return message + OCTOTHORPE_PH;\n }\n if (isString(token)) {\n return message + token;\n }\n const [name, type, format] = token;\n let interpolatedFormat = {};\n if (type === \"plural\" || type === \"selectordinal\" || type === \"select\") {\n Object.entries(format).forEach(\n ([key, value2]) => {\n interpolatedFormat[key] = formatMessage(\n value2,\n type === \"plural\" || type === \"selectordinal\"\n );\n }\n );\n } else {\n interpolatedFormat = format;\n }\n let value;\n if (type) {\n const formatter = formatters[type];\n value = formatter(values[name], interpolatedFormat);\n } else {\n value = values[name];\n }\n if (value == null) {\n return message;\n }\n return message + value;\n }, \"\");\n };\n const result = formatMessage(translation);\n if (isString(result) && UNICODE_REGEX.test(result)) {\n return unraw(result);\n }\n if (isString(result))\n return result;\n return result ? String(result) : \"\";\n };\n}\n\nvar __defProp$1 = Object.defineProperty;\nvar __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField$1 = (obj, key, value) => {\n __defNormalProp$1(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\nclass EventEmitter {\n constructor() {\n __publicField$1(this, \"_events\", {});\n }\n on(event, listener) {\n var _a;\n (_a = this._events)[event] ?? (_a[event] = []);\n this._events[event].push(listener);\n return () => this.removeListener(event, listener);\n }\n removeListener(event, listener) {\n const maybeListeners = this._getListeners(event);\n if (!maybeListeners)\n return;\n const index = maybeListeners.indexOf(listener);\n if (~index)\n maybeListeners.splice(index, 1);\n }\n emit(event, ...args) {\n const maybeListeners = this._getListeners(event);\n if (!maybeListeners)\n return;\n maybeListeners.map((listener) => listener.apply(this, args));\n }\n _getListeners(event) {\n const maybeListeners = this._events[event];\n return Array.isArray(maybeListeners) ? maybeListeners : false;\n }\n}\n\nvar __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => {\n __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\nclass I18n extends EventEmitter {\n constructor(params) {\n super();\n __publicField(this, \"_locale\", \"\");\n __publicField(this, \"_locales\");\n __publicField(this, \"_localeData\", {});\n __publicField(this, \"_messages\", {});\n __publicField(this, \"_missing\");\n __publicField(this, \"_messageCompiler\");\n /**\n * Alias for {@see I18n._}\n */\n __publicField(this, \"t\", this._.bind(this));\n if (process.env.NODE_ENV !== \"production\") {\n this.setMessagesCompiler(compileMessage);\n }\n if (params.missing != null)\n this._missing = params.missing;\n if (params.messages != null)\n this.load(params.messages);\n if (params.localeData != null)\n this.loadLocaleData(params.localeData);\n if (typeof params.locale === \"string\" || params.locales) {\n this.activate(params.locale ?? defaultLocale, params.locales);\n }\n }\n get locale() {\n return this._locale;\n }\n get locales() {\n return this._locales;\n }\n get messages() {\n return this._messages[this._locale] ?? {};\n }\n /**\n * @deprecated this has no effect. Please remove this from the code. Deprecated in v4\n */\n get localeData() {\n return this._localeData[this._locale] ?? {};\n }\n _loadLocaleData(locale, localeData) {\n const maybeLocaleData = this._localeData[locale];\n if (!maybeLocaleData) {\n this._localeData[locale] = localeData;\n } else {\n Object.assign(maybeLocaleData, localeData);\n }\n }\n /**\n * Registers a `MessageCompiler` to enable the use of uncompiled catalogs at runtime.\n *\n * In production builds, the `MessageCompiler` is typically excluded to reduce bundle size.\n * By default, message catalogs should be precompiled during the build process. However,\n * if you need to compile catalogs at runtime, you can use this method to set a message compiler.\n *\n * Example usage:\n *\n * ```ts\n * import { compileMessage } from \"@lingui/message-utils/compileMessage\";\n *\n * i18n.setMessagesCompiler(compileMessage);\n * ```\n */\n setMessagesCompiler(compiler) {\n this._messageCompiler = compiler;\n return this;\n }\n /**\n * @deprecated Plurals automatically used from Intl.PluralRules you can safely remove this call. Deprecated in v4\n */\n loadLocaleData(localeOrAllData, localeData) {\n if (typeof localeOrAllData === \"string\") {\n this._loadLocaleData(localeOrAllData, localeData);\n } else {\n Object.keys(localeOrAllData).forEach(\n (locale) => this._loadLocaleData(locale, localeOrAllData[locale])\n );\n }\n this.emit(\"change\");\n }\n _load(locale, messages) {\n const maybeMessages = this._messages[locale];\n if (!maybeMessages) {\n this._messages[locale] = messages;\n } else {\n Object.assign(maybeMessages, messages);\n }\n }\n load(localeOrMessages, messages) {\n if (typeof localeOrMessages == \"string\" && typeof messages === \"object\") {\n this._load(localeOrMessages, messages);\n } else {\n Object.entries(localeOrMessages).forEach(\n ([locale, messages2]) => this._load(locale, messages2)\n );\n }\n this.emit(\"change\");\n }\n /**\n * @param options {@link LoadAndActivateOptions}\n */\n loadAndActivate({ locale, locales, messages }) {\n this._locale = locale;\n this._locales = locales || void 0;\n this._messages[this._locale] = messages;\n this.emit(\"change\");\n }\n activate(locale, locales) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!this._messages[locale]) {\n console.warn(`Messages for locale \"${locale}\" not loaded.`);\n }\n }\n this._locale = locale;\n this._locales = locales;\n this.emit(\"change\");\n }\n _(id, values, options) {\n if (!this.locale) {\n throw new Error(\n \"Lingui: Attempted to call a translation function without setting a locale.\\nMake sure to call `i18n.activate(locale)` before using Lingui functions.\\nThis issue may also occur due to a race condition in your initialization logic.\"\n );\n }\n let message = options?.message;\n if (!id) {\n id = \"\";\n }\n if (!isString(id)) {\n values = id.values || values;\n message = id.message;\n id = id.id;\n }\n const messageForId = this.messages[id];\n const messageMissing = messageForId === void 0;\n const missing = this._missing;\n if (missing && messageMissing) {\n return isFunction(missing) ? missing(this._locale, id) : missing;\n }\n if (messageMissing) {\n this.emit(\"missing\", { id, locale: this._locale });\n }\n let translation = messageForId || message || id;\n if (isString(translation)) {\n if (this._messageCompiler) {\n translation = this._messageCompiler(translation);\n } else {\n console.warn(`Uncompiled message detected! Message:\n\n> ${translation}\n\nThat means you use raw catalog or your catalog doesn't have a translation for the message and fallback was used.\nICU features such as interpolation and plurals will not work properly for that message. \n\nPlease compile your catalog first. \n`);\n }\n }\n if (isString(translation) && UNICODE_REGEX.test(translation))\n return JSON.parse(`\"${translation}\"`);\n if (isString(translation))\n return translation;\n return interpolate(\n translation,\n this._locale,\n this._locales\n )(values, options?.formats);\n }\n date(value, format) {\n return date(this._locales || this._locale, value, format);\n }\n number(value, format) {\n return number(this._locales || this._locale, value, format);\n }\n}\nfunction setupI18n(params = {}) {\n return new I18n(params);\n}\n\nconst i18n = setupI18n();\n\nexport { I18n, formats, i18n, setupI18n };\n", "import { Constructor, CustomValidityState, FormControlInterface, FormValue, IControlHost, validationMessageCallback, Validator } from './types.js';\n\nexport function FormControlMixin<\n TBase extends Constructor<HTMLElement & IControlHost> & { observedAttributes?: string [] }\n>(SuperClass: TBase) {\n class FormControl extends SuperClass {\n /** Wires up control instances to be form associated */\n static get formAssociated(): boolean {\n return true;\n }\n\n /**\n * A list of Validator objects that will be evaluated when a control's form\n * value is modified or optionally when a given attribute changes.\n *\n * When a Validator's callback returns false, the entire form control will\n * be set to an invalid state.\n */\n declare static formControlValidators: Validator[];\n\n /**\n * If set to true the control described should be evaluated and validated\n * as part of a group. Like a radio, if any member of the group's validity\n * changes the the other members should update as well.\n */\n declare static formControlValidationGroup: boolean;\n\n private static get validators(): Validator[] {\n return this.formControlValidators || [];\n }\n\n /**\n * Allows the FormControl instance to respond to Validator attributes.\n * For instance, if a given Validator has a `required` attribute, that\n * validator will be evaluated whenever the host's required attribute\n * is updated.\n */\n static get observedAttributes(): string[] {\n const validatorAttributes = this.validators.map((validator) => validator.attribute).flat();\n\n const observedAttributes = super.observedAttributes || [];\n\n /** Make sure there are no duplicates inside the attributes list */\n const attributeSet = new Set([...observedAttributes, ...validatorAttributes]);\n return [...attributeSet] as string[];\n }\n\n /**\n * Return the validator associated with a given attribute. If no\n * Validator is associated with the attribute, it will return null.\n */\n static getValidator(attribute: string): Validator | null {\n return this.validators.find((validator) => validator.attribute === attribute) || null;\n }\n\n /**\n * Get all validators that are set to react to a given attribute\n * @param {string} attribute - The attribute that has changed\n * @returns {Validator[]}\n */\n static getValidators(attribute: string): Validator[] | null {\n return this.validators.filter(validator => {\n if (validator.attribute === attribute || validator.attribute?.includes(attribute)) {\n return true;\n }\n });\n }\n\n /** The ElementInternals instance for the control. */\n internals = this.attachInternals();\n\n /**\n * Keep track of if the control has focus\n * @private\n */\n #focused = false;\n\n /**\n * Exists to control when an error should be displayed\n * @private\n */\n #forceError = false;\n\n /**\n * Toggles to true whenever the element has been focused. This property\n * will reset whenever the control's formResetCallback is called.\n * @private\n */\n #touched = false;\n\n /** An internal abort controller for cancelling pending async validation */\n #abortController?: AbortController;\n #previousAbortController?: AbortController;\n\n /**\n * Used for tracking if a validation target has been set to manage focus\n * when the control's validity is reported\n */\n #awaitingValidationTarget = true;\n\n /** All of the controls within a root with a matching local name and form name */\n get #formValidationGroup(): NodeListOf<FormControl> {\n const rootNode = this.getRootNode() as HTMLElement;\n const selector = `${this.localName}[name=\"${this.getAttribute('name')}\"]`;\n return rootNode.querySelectorAll<FormControl>(selector);\n }\n\n /**\n * Acts as a cache for the current value so the value can be re-evaluated\n * whenever an attribute changes or on some other event.\n */\n #value: FormValue = '';\n\n /**\n * Set this[touched] and this[focused]\n * to true when the element is focused\n * @private\n */\n #onFocus = (): void => {\n this.#touched = true;\n this.#focused = true;\n this.#shouldShowError();\n };\n\n /**\n * Reset this[focused] on blur\n * @private\n */\n #onBlur = (): void => {\n this.#focused = false;\n\n this.#runValidators(this.shouldFormValueUpdate() ? this.#value : '');\n\n /**\n * Set forceError to ensure error messages persist until\n * the value is changed.\n */\n if (!this.validity.valid && this.#touched) {\n this.#forceError = true;\n }\n const showError = this.#shouldShowError();\n if (this.validationMessageCallback) {\n this.validationMessageCallback(showError ? this.internals.validationMessage : '');\n }\n };\n\n /**\n * For the show error state on invalid\n * @private\n */\n #onInvalid = (): void => {\n if (this.#awaitingValidationTarget && this.validationTarget) {\n this.internals.setValidity(\n this.validity,\n this.validationMessage,\n this.validationTarget\n );\n this.#awaitingValidationTarget = false;\n }\n this.#touched = true;\n this.#forceError = true;\n this.#shouldShowError();\n this?.validationMessageCallback?.(this.showError ? this.internals.validationMessage : '');\n };\n\n /** Return a reference to the control's form */\n get form(): HTMLFormElement {\n return this.internals.form;\n }\n\n /**\n * Will return true if it is recommended that the control shows an internal\n * error. If using this property, it is wise to listen for 'invalid' events\n * on the element host and call preventDefault on the event. Doing this will\n * prevent browsers from showing a validation popup.\n */\n get showError(): boolean {\n return this.#shouldShowError();\n }\n\n /**\n * Forward the internals checkValidity method\n * will return the valid state of the control.\n */\n checkValidity(): boolean {\n return this.internals.checkValidity();\n }\n\n /** The element's validity state */\n get validity(): ValidityState {\n return this.internals.validity;\n }\n\n /**\n * The validation message shown by a given Validator object. If the control\n * is in a valid state this should be falsy.\n */\n get validationMessage(): string {\n return this.internals.validationMessage;\n }\n\n /* eslint-disable @typescript-eslint/no-explicit-any */\n constructor(...args: any[]) {\n super(...args);\n this.addEventListener?.('focus', this.#onFocus);\n this.addEventListener?.('blur', this.#onBlur);\n this.addEventListener?.('invalid', this.#onInvalid);\n this.setValue(null);\n }\n\n attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n super.attributeChangedCallback?.(name, oldValue, newValue);\n\n /**\n * Check to see if a Validator is associated with the changed attribute.\n * If one exists, call control's validate function which will perform\n * control validation.\n */\n const proto = this.constructor as typeof FormControl;\n const validators = proto.getValidators(name);\n\n if (validators?.length && this.validationTarget) {\n this.setValue(this.#value);\n }\n }\n\n /** PUBLIC LIFECYCLE METHODS */\n\n /**\n * Sets the control's form value if the call to `shouldFormValueUpdate`\n * returns `true`.\n * @param value {FormValue} - The value to pass to the form\n */\n setValue(value: FormValue): void {\n this.#forceError = false;\n this.validationMessageCallback?.('');\n this.#value = value;\n const valueShouldUpdate = this.shouldFormValueUpdate();\n const valueToUpdate = valueShouldUpdate ? value : null;\n this.internals.setFormValue(valueToUpdate as string);\n this.#runValidators(valueToUpdate);\n if (this.valueChangedCallback) {\n this.valueChangedCallback(valueToUpdate);\n }\n this.#shouldShowError();\n }\n\n /**\n * This method can be overridden to determine if the control's form value\n * should be set on a call to `setValue`. An example of when a user might want\n * to skip this step is when implementing checkbox-like behavior, first checking\n * to see if `this.checked` is set to a truthy value. By default this returns\n * `true`.\n */\n shouldFormValueUpdate(): boolean {\n return true;\n }\n\n /** Save a reference to the validation complete resolver */\n #validationCompleteResolver?: (value: void | PromiseLike<void>) => void;\n\n /** When true validation will be pending */\n #isValidationPending = false;\n\n #validationComplete = Promise.resolve();\n\n /** A promise that will resolve when all pending validations are complete */\n get validationComplete(): Promise<void> {\n return new Promise(resolve => resolve(this.#validationComplete));\n }\n\n /** DECLARED INSTANCE METHODS AND PROPERTIES*/\n\n /**\n * Resets a form control to its initial state\n */\n declare resetFormControl: () => void;\n\n /**\n * This method is used to override the controls' validity message\n * for a given Validator key. This has the highest level of priority when\n * setting a validationMessage, so use this method wisely.\n *\n * The returned value will be used as the validationMessage for the given key.\n * @param validationKey {string} - The key that has returned invalid\n */\n declare validityCallback: (validationKey: string) => string | void;\n\n /**\n * Called when the control's validationMessage should be changed\n * @param message { string } - The new validation message\n */\n declare validationMessageCallback: (message: string) => void;\n\n /**\n * A callback for when the controls' form value changes. The value\n * passed to this function should not be confused with the control's\n * value property, this is the value that will appear on the form.\n *\n * In cases where `checked` did not exist on the control's prototype\n * upon initialization, this value and the value property will be identical;\n * in cases where `checked` is present upon initialization, this will be\n * effectively `this.checked && this.value`.\n */\n declare valueChangedCallback: (value: FormValue) => void;\n\n /**\n * The element that will receive focus when the control's validity\n * state is reported either by a form submission or via API\n *\n * We use declare since this is optional and we don't particularly\n * care how the consuming component implements this (as a field, member\n * or getter/setter)\n */\n declare validationTarget: HTMLElement | null;\n\n /** PRIVATE LIFECYCLE METHODS */\n\n /**\n * Check to see if an error should be shown. This method will also\n * update the internals state object with the --show-error state\n * if necessary.\n * @private\n */\n #shouldShowError(): boolean {\n if (this.hasAttribute('disabled')) {\n return false;\n }\n\n const showError = this.#forceError || (this.#touched && !this.validity.valid && !this.#focused);\n\n /**\n * At the time of writing Firefox doesn't support states\n * TODO: Remove when check for states when fully support is in place\n */\n if (showError && this.internals.states) {\n this.internals.states.add('--show-error');\n } else if (this.internals.states) {\n this.internals.states.delete('--show-error');\n }\n\n return showError;\n }\n\n #runValidators(value: FormValue): void {\n const proto = this.constructor as typeof FormControl;\n const validity: CustomValidityState = {};\n const validators = proto.validators;\n const asyncValidators: Promise<boolean|void>[] = [];\n const hasAsyncValidators = validators.some((validator) => validator.isValid instanceof Promise)\n\n if (!this.#isValidationPending) {\n this.#validationComplete = new Promise(resolve => {\n this.#validationCompleteResolver = resolve\n });\n this.#isValidationPending = true;\n }\n\n /**\n * If an abort controller exists from a previous validation step\n * notify still-running async validators that we are requesting they\n * discontinue any work.\n */\n if (this.#abortController) {\n this.#abortController.abort();\n this.#previousAbortController = this.#abortController;\n }\n\n /**\n * Create a new abort controller and replace the instance reference\n * so we can clean it up for next time\n */\n const abortController = new AbortController();\n this.#abortController = abortController;\n let validationMessage: string | undefined = undefined;\n\n /** Track to see if any validity key has changed */\n let hasChange = false;\n\n if (!validators.length) {\n return;\n }\n\n validators.forEach(validator => {\n const key = validator.key || 'customError';\n const isValid = validator.isValid(this, value, abortController.signal);\n const isAsyncValidator = isValid instanceof Promise;\n\n if (isAsyncValidator) {\n asyncValidators.push(isValid);\n\n isValid.then(isValidatorValid => {\n if (isValidatorValid === undefined || isValidatorValid === null) {\n return;\n }\n /** Invert the validity state to correspond to the ValidityState API */\n validity[key] = !isValidatorValid;\n\n validationMessage = this.#getValidatorMessageForValue(validator, value);\n this.#setValidityWithOptionalTarget(validity, validationMessage);\n });\n } else {\n /** Invert the validity state to correspond to the ValidityState API */\n validity[key] = !isValid;\n\n if (this.validity[key] !== !isValid) {\n hasChange = true;\n }\n\n // only update the validationMessage for the first invalid scenario\n // so that earlier invalid validators dont get their messages overwritten by later ones\n // in the validators array\n if (!isValid && !validationMessage) {\n validationMessage = this.#getValidatorMessageForValue(validator, value);\n }\n }\n });\n\n /** Once all the async validators have settled, resolve validationComplete */\n Promise.allSettled(asyncValidators)\n .then(() => {\n /** Don't resolve validations if the signal is aborted */\n if (!abortController?.signal.aborted) {\n this.#isValidationPending = false;\n this.#validationCompleteResolver?.();\n }\n });\n\n /**\n * If async validators are present:\n * Only run updates when a sync validator has a change. This is to prevent\n * situations where running sync validators can override async validators\n * that are still in progress\n *\n * If async validators are not present, always update validity\n */\n if (hasChange || !hasAsyncValidators) {\n this.#setValidityWithOptionalTarget(validity, validationMessage);\n }\n }\n\n /**\n * If the validationTarget is not set, the user can decide how they would\n * prefer to handle focus when the field is validated.\n */\n #setValidityWithOptionalTarget(validity: Partial<ValidityState>, validationMessage: string|undefined): void {\n if (this.validationTarget) {\n this.internals.setValidity(validity, validationMessage, this.validationTarget);\n this.#awaitingValidationTarget = false;\n } else {\n this.internals.setValidity(validity, validationMessage);\n\n if (this.internals.validity.valid) {\n return;\n }\n\n /**\n * Sets mark the component as awaiting a validation target\n * if the element dispatches an invalid event, the #onInvalid listener\n * will check to see if the validation target has been set since this call\n * has run. This useful in cases like Lit's use of the query\n * decorator for setting the validationTarget or any scenario\n * where the validationTarget isn't available upon construction\n */\n this.#awaitingValidationTarget = true;\n }\n }\n\n /** Process the validator message attribute */\n #getValidatorMessageForValue(validator: Validator, value: FormValue): string {\n /** If the validity callback exists and returns, use that as the result */\n if (this.validityCallback) {\n const message = this.validityCallback(validator.key || 'customError');\n\n if (message) {\n return message;\n }\n }\n\n if (validator.message instanceof Function) {\n return (validator.message as validationMessageCallback)(this, value);\n } else {\n return validator.message as string;\n }\n }\n\n /** Reset control state when the form is reset */\n formResetCallback() {\n this.#touched = false;\n this.#forceError = false;\n this.#shouldShowError();\n this.resetFormControl?.();\n\n this.validationMessageCallback?.(\n this.#shouldShowError() ? this.validationMessage : ''\n );\n }\n }\n\n return FormControl as Constructor<FormControlInterface> & TBase;\n}\n", "/**\n * @module constants\n * @summary Useful constants\n * @description\n * Collection of useful date constants.\n *\n * The constants could be imported from `date-fns/constants`:\n *\n * ```ts\n * import { maxTime, minTime } from \"./constants/date-fns/constants\";\n *\n * function isAllowedTime(time) {\n * return time <= maxTime && time >= minTime;\n * }\n * ```\n */\n\n/**\n * @constant\n * @name daysInWeek\n * @summary Days in 1 week.\n */\nexport const daysInWeek = 7;\n\n/**\n * @constant\n * @name daysInYear\n * @summary Days in 1 year.\n *\n * @description\n * How many days in a year.\n *\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occurs every 4 years, except for years that are divisible by 100 and not divisible by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n */\nexport const daysInYear = 365.2425;\n\n/**\n * @constant\n * @name maxTime\n * @summary Maximum allowed time.\n *\n * @example\n * import { maxTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = 8640000000000001 <= maxTime;\n * //=> false\n *\n * new Date(8640000000000001);\n * //=> Invalid Date\n */\nexport const maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n\n/**\n * @constant\n * @name minTime\n * @summary Minimum allowed time.\n *\n * @example\n * import { minTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = -8640000000000001 >= minTime;\n * //=> false\n *\n * new Date(-8640000000000001)\n * //=> Invalid Date\n */\nexport const minTime = -maxTime;\n\n/**\n * @constant\n * @name millisecondsInWeek\n * @summary Milliseconds in 1 week.\n */\nexport const millisecondsInWeek = 604800000;\n\n/**\n * @constant\n * @name millisecondsInDay\n * @summary Milliseconds in 1 day.\n */\nexport const millisecondsInDay = 86400000;\n\n/**\n * @constant\n * @name millisecondsInMinute\n * @summary Milliseconds in 1 minute\n */\nexport const millisecondsInMinute = 60000;\n\n/**\n * @constant\n * @name millisecondsInHour\n * @summary Milliseconds in 1 hour\n */\nexport const millisecondsInHour = 3600000;\n\n/**\n * @constant\n * @name millisecondsInSecond\n * @summary Milliseconds in 1 second\n */\nexport const millisecondsInSecond = 1000;\n\n/**\n * @constant\n * @name minutesInYear\n * @summary Minutes in 1 year.\n */\nexport const minutesInYear = 525600;\n\n/**\n * @constant\n * @name minutesInMonth\n * @summary Minutes in 1 month.\n */\nexport const minutesInMonth = 43200;\n\n/**\n * @constant\n * @name minutesInDay\n * @summary Minutes in 1 day.\n */\nexport const minutesInDay = 1440;\n\n/**\n * @constant\n * @name minutesInHour\n * @summary Minutes in 1 hour.\n */\nexport const minutesInHour = 60;\n\n/**\n * @constant\n * @name monthsInQuarter\n * @summary Months in 1 quarter.\n */\nexport const monthsInQuarter = 3;\n\n/**\n * @constant\n * @name monthsInYear\n * @summary Months in 1 year.\n */\nexport const monthsInYear = 12;\n\n/**\n * @constant\n * @name quartersInYear\n * @summary Quarters in 1 year\n */\nexport const quartersInYear = 4;\n\n/**\n * @constant\n * @name secondsInHour\n * @summary Seconds in 1 hour.\n */\nexport const secondsInHour = 3600;\n\n/**\n * @constant\n * @name secondsInMinute\n * @summary Seconds in 1 minute.\n */\nexport const secondsInMinute = 60;\n\n/**\n * @constant\n * @name secondsInDay\n * @summary Seconds in 1 day.\n */\nexport const secondsInDay = secondsInHour * 24;\n\n/**\n * @constant\n * @name secondsInWeek\n * @summary Seconds in 1 week.\n */\nexport const secondsInWeek = secondsInDay * 7;\n\n/**\n * @constant\n * @name secondsInYear\n * @summary Seconds in 1 year.\n */\nexport const secondsInYear = secondsInDay * daysInYear;\n\n/**\n * @constant\n * @name secondsInMonth\n * @summary Seconds in 1 month\n */\nexport const secondsInMonth = secondsInYear / 12;\n\n/**\n * @constant\n * @name secondsInQuarter\n * @summary Seconds in 1 quarter.\n */\nexport const secondsInQuarter = secondsInMonth * 3;\n\n/**\n * @constant\n * @name constructFromSymbol\n * @summary Symbol enabling Date extensions to inherit properties from the reference date.\n *\n * The symbol is used to enable the `constructFrom` function to construct a date\n * using a reference date and a value. It allows to transfer extra properties\n * from the reference date to the new date. It's useful for extensions like\n * [`TZDate`](https://github.com/date-fns/tz) that accept a time zone as\n * a constructor argument.\n */\nexport const constructFromSymbol = Symbol.for(\"constructDateFrom\");\n", "import { constructFromSymbol } from \"./constants.js\";\n\n/**\n * @name constructFrom\n * @category Generic Helpers\n * @summary Constructs a date using the reference date and the value\n *\n * @description\n * The function constructs a new date using the constructor from the reference\n * date and the given value. It helps to build generic functions that accept\n * date extensions.\n *\n * It defaults to `Date` if the passed reference date is a number or a string.\n *\n * Starting from v3.7.0, it allows to construct a date using `[Symbol.for(\"constructDateFrom\")]`\n * enabling to transfer extra properties from the reference date to the new date.\n * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz)\n * that accept a time zone as a constructor argument.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The reference date to take constructor from\n * @param value - The value to create the date\n *\n * @returns Date initialized using the given date and value\n *\n * @example\n * import { constructFrom } from \"./constructFrom/date-fns\";\n *\n * // A function that clones a date preserving the original type\n * function cloneDate<DateType extends Date>(date: DateType): DateType {\n * return constructFrom(\n * date, // Use constructor from the given date\n * date.getTime() // Use the date value to create a new date\n * );\n * }\n */\nexport function constructFrom(date, value) {\n if (typeof date === \"function\") return date(value);\n\n if (date && typeof date === \"object\" && constructFromSymbol in date)\n return date[constructFromSymbol](value);\n\n if (date instanceof Date) return new date.constructor(value);\n\n return new Date(value);\n}\n\n// Fallback for modularized imports:\nexport default constructFrom;\n", "import { constructFrom } from \"./constructFrom.js\";\n\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * Starting from v3.7.0, it clones a date using `[Symbol.for(\"constructDateFrom\")]`\n * enabling to transfer extra properties from the reference date to the new date.\n * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz)\n * that accept a time zone as a constructor argument.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param argument - The value to convert\n *\n * @returns The parsed date in the local time zone\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport function toDate(argument, context) {\n // [TODO] Get rid of `toDate` or `constructFrom`?\n return constructFrom(context || argument, argument);\n}\n\n// Fallback for modularized imports:\nexport default toDate;\n", "import { constructFrom } from \"./constructFrom.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link addDays} function options.\n */\n\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 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of days to be added.\n * @param options - An object with options\n *\n * @returns The new date with the days added\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 */\nexport function addDays(date, amount, options) {\n const _date = toDate(date, options?.in);\n if (isNaN(amount)) return constructFrom(options?.in || date, NaN);\n\n // If 0 days, no-op to avoid changing times in the hour before end of DST\n if (!amount) return _date;\n\n _date.setDate(_date.getDate() + amount);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default addDays;\n", "import { constructFrom } from \"./constructFrom.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link addMonths} function options.\n */\n\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 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of months to be added.\n * @param options - The options object\n *\n * @returns The new date with the months added\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 * // Add one month to 30 January 2023:\n * const result = addMonths(new Date(2023, 0, 30), 1)\n * //=> Tue Feb 28 2023 00:00:00\n */\nexport function addMonths(date, amount, options) {\n const _date = toDate(date, options?.in);\n if (isNaN(amount)) return constructFrom(options?.in || date, NaN);\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 const dayOfMonth = _date.getDate();\n\n // 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 const endOfDesiredMonth = constructFrom(options?.in || date, _date.getTime());\n endOfDesiredMonth.setMonth(_date.getMonth() + amount + 1, 0);\n const daysInMonth = endOfDesiredMonth.getDate();\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(\n endOfDesiredMonth.getFullYear(),\n endOfDesiredMonth.getMonth(),\n dayOfMonth,\n );\n return _date;\n }\n}\n\n// Fallback for modularized imports:\nexport default addMonths;\n", "let defaultOptions = {};\n\nexport function getDefaultOptions() {\n return defaultOptions;\n}\n\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}\n", "import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfWeek} function options.\n */\n\n/**\n * @name startOfWeek\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfWeek(date, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const _date = toDate(date, options?.in);\n const day = _date.getDay();\n const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n\n _date.setDate(_date.getDate() - diff);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeek;\n", "import { startOfWeek } from \"./startOfWeek.js\";\n\n/**\n * The {@link startOfISOWeek} function options.\n */\n\n/**\n * @name startOfISOWeek\n * @category ISO Week Helpers\n * @summary Return the start of an ISO week for the given date.\n *\n * @description\n * Return the start of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of an ISO week\n *\n * @example\n * // The start of an ISO week for 2 September 2014 11:55:00:\n * const result = startOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfISOWeek(date, options) {\n return startOfWeek(date, { ...options, weekStartsOn: 1 });\n}\n\n// Fallback for modularized imports:\nexport default startOfISOWeek;\n", "import { constructFrom } from \"./constructFrom.js\";\nimport { startOfISOWeek } from \"./startOfISOWeek.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getISOWeekYear} function options.\n */\n\n/**\n * @name getISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the ISO week-numbering year of the given date.\n *\n * @description\n * Get the ISO week-numbering year of the given date,\n * which always starts 3 days before the year's first Thursday.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param date - The given date\n *\n * @returns The ISO week-numbering year\n *\n * @example\n * // Which ISO-week numbering year is 2 January 2005?\n * const result = getISOWeekYear(new Date(2005, 0, 2))\n * //=> 2004\n */\nexport function getISOWeekYear(date, options) {\n const _date = toDate(date, options?.in);\n const year = _date.getFullYear();\n\n const fourthOfJanuaryOfNextYear = constructFrom(_date, 0);\n fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0);\n const startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear);\n\n const fourthOfJanuaryOfThisYear = constructFrom(_date, 0);\n fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0);\n const startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear);\n\n if (_date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (_date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}\n\n// Fallback for modularized imports:\nexport default getISOWeekYear;\n", "import { toDate } from \"../toDate.js\";\n\n/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport function getTimezoneOffsetInMilliseconds(date) {\n const _date = toDate(date);\n const utcDate = new Date(\n Date.UTC(\n _date.getFullYear(),\n _date.getMonth(),\n _date.getDate(),\n _date.getHours(),\n _date.getMinutes(),\n _date.getSeconds(),\n _date.getMilliseconds(),\n ),\n );\n utcDate.setUTCFullYear(_date.getFullYear());\n return +date - +utcDate;\n}\n", "import { constructFrom } from \"../constructFrom.js\";\n\nexport function normalizeDates(context, ...dates) {\n const normalize = constructFrom.bind(\n null,\n context || dates.find((date) => typeof date === \"object\"),\n );\n return dates.map(normalize);\n}\n", "import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfDay} function options.\n */\n\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 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - The options\n *\n * @returns The start of a day\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 */\nexport function startOfDay(date, options) {\n const _date = toDate(date, options?.in);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfDay;\n", "import { getTimezoneOffsetInMilliseconds } from \"./_lib/getTimezoneOffsetInMilliseconds.js\";\nimport { normalizeDates } from \"./_lib/normalizeDates.js\";\nimport { millisecondsInDay } from \"./constants.js\";\nimport { startOfDay } from \"./startOfDay.js\";\n\n/**\n * The {@link differenceInCalendarDays} function options.\n */\n\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 * @param laterDate - The later date\n * @param earlierDate - The earlier date\n * @param options - The options object\n *\n * @returns The number of calendar days\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 */\nexport function differenceInCalendarDays(laterDate, earlierDate, options) {\n const [laterDate_, earlierDate_] = normalizeDates(\n options?.in,\n laterDate,\n earlierDate,\n );\n\n const laterStartOfDay = startOfDay(laterDate_);\n const earlierStartOfDay = startOfDay(earlierDate_);\n\n const laterTimestamp =\n +laterStartOfDay - getTimezoneOffsetInMilliseconds(laterStartOfDay);\n const earlierTimestamp =\n +earlierStartOfDay - getTimezoneOffsetInMilliseconds(earlierStartOfDay);\n\n // Round the number of days to the nearest integer because the number of\n // milliseconds in a day is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round((laterTimestamp - earlierTimestamp) / millisecondsInDay);\n}\n\n// Fallback for modularized imports:\nexport default differenceInCalendarDays;\n", "import { constructFrom } from \"./constructFrom.js\";\nimport { getISOWeekYear } from \"./getISOWeekYear.js\";\nimport { startOfISOWeek } from \"./startOfISOWeek.js\";\n\n/**\n * The {@link startOfISOWeekYear} function options.\n */\n\n/**\n * @name startOfISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the start of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the start of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of an ISO week-numbering year\n *\n * @example\n * // The start of an ISO week-numbering year for 2 July 2005:\n * const result = startOfISOWeekYear(new Date(2005, 6, 2))\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport function startOfISOWeekYear(date, options) {\n const year = getISOWeekYear(date, options);\n const fourthOfJanuary = constructFrom(options?.in || date, 0);\n fourthOfJanuary.setFullYear(year, 0, 4);\n fourthOfJanuary.setHours(0, 0, 0, 0);\n return startOfISOWeek(fourthOfJanuary);\n}\n\n// Fallback for modularized imports:\nexport default startOfISOWeekYear;\n", "import { addDays } from \"./addDays.js\";\n\n/**\n * The {@link addWeeks} function options.\n */\n\n/**\n * @name addWeeks\n * @category Week Helpers\n * @summary Add the specified number of weeks to the given date.\n *\n * @description\n * Add the specified number of weeks to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of weeks to be added.\n * @param options - An object with options\n *\n * @returns The new date with the weeks added\n *\n * @example\n * // Add 4 weeks to 1 September 2014:\n * const result = addWeeks(new Date(2014, 8, 1), 4)\n * //=> Mon Sep 29 2014 00:00:00\n */\nexport function addWeeks(date, amount, options) {\n return addDays(date, amount * 7, options);\n}\n\n// Fallback for modularized imports:\nexport default addWeeks;\n", "import { constructFrom } from \"./constructFrom.js\";\n\n/**\n * @name constructNow\n * @category Generic Helpers\n * @summary Constructs a new current date using the passed value constructor.\n * @pure false\n *\n * @description\n * The function constructs a new current date using the constructor from\n * the reference date. It helps to build generic functions that accept date\n * extensions and use the current date.\n *\n * It defaults to `Date` if the passed reference date is a number or a string.\n *\n * @param date - The reference date to take constructor from\n *\n * @returns Current date initialized using the given date constructor\n *\n * @example\n * import { constructNow, isSameDay } from 'date-fns'\n *\n * function isToday<DateType extends Date>(\n * date: DateArg<DateType>,\n * ): boolean {\n * // If we were to use `new Date()` directly, the function would behave\n * // differently in different timezones and return false for the same date.\n * return isSameDay(date, constructNow(date));\n * }\n */\nexport function constructNow(date) {\n return constructFrom(date, Date.now());\n}\n\n// Fallback for modularized imports:\nexport default constructNow;\n", "import { normalizeDates } from \"./_lib/normalizeDates.js\";\nimport { startOfDay } from \"./startOfDay.js\";\n\n/**\n * The {@link isSameDay} function options.\n */\n\n/**\n * @name isSameDay\n * @category Day Helpers\n * @summary Are the given dates in the same day (and year and month)?\n *\n * @description\n * Are the given dates in the same day (and year and month)?\n *\n * @param laterDate - The first date to check\n * @param earlierDate - The second date to check\n * @param options - An object with options\n *\n * @returns The dates are in the same day (and year and month)\n *\n * @example\n * // Are 4 September 06:00:00 and 4 September 18:00:00 in the same day?\n * const result = isSameDay(new Date(2014, 8, 4, 6, 0), new Date(2014, 8, 4, 18, 0))\n * //=> true\n *\n * @example\n * // Are 4 September and 4 October in the same day?\n * const result = isSameDay(new Date(2014, 8, 4), new Date(2014, 9, 4))\n * //=> false\n *\n * @example\n * // Are 4 September, 2014 and 4 September, 2015 in the same day?\n * const result = isSameDay(new Date(2014, 8, 4), new Date(2015, 8, 4))\n * //=> false\n */\nexport function isSameDay(laterDate, earlierDate, options) {\n const [dateLeft_, dateRight_] = normalizeDates(\n options?.in,\n laterDate,\n earlierDate,\n );\n return +startOfDay(dateLeft_) === +startOfDay(dateRight_);\n}\n\n// Fallback for modularized imports:\nexport default isSameDay;\n", "/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param value - The value to check\n *\n * @returns True if the given value is a date\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\nexport function isDate(value) {\n return (\n value instanceof Date ||\n (typeof value === \"object\" &&\n Object.prototype.toString.call(value) === \"[object Date]\")\n );\n}\n\n// Fallback for modularized imports:\nexport default isDate;\n", "import { isDate } from \"./isDate.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate](https://date-fns.org/docs/toDate)\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param date - The date to check\n *\n * @returns The date is valid\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertible into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\nexport function isValid(date) {\n return !((!isDate(date) && typeof date !== \"number\") || isNaN(+toDate(date)));\n}\n\n// Fallback for modularized imports:\nexport default isValid;\n", "import { normalizeDates } from \"./normalizeDates.js\";\n\nexport function normalizeInterval(context, interval) {\n const [start, end] = normalizeDates(context, interval.start, interval.end);\n return { start, end };\n}\n", "import { normalizeInterval } from \"./_lib/normalizeInterval.js\";\nimport { constructFrom } from \"./constructFrom.js\";\n\n/**\n * The {@link eachDayOfInterval} function options.\n */\n\n/**\n * The {@link eachDayOfInterval} function result type. It resolves the proper data type.\n * It uses the first argument date object type, starting from the date argument,\n * then the start interval date, and finally the end interval date. If\n * a context function is passed, it uses the context function return type.\n */\n\n/**\n * @name eachDayOfInterval\n * @category Interval Helpers\n * @summary Return the array of dates within the specified time interval.\n *\n * @description\n * Return the array of dates within the specified time interval.\n *\n * @typeParam IntervalType - Interval type.\n * @typeParam Options - Options type.\n *\n * @param interval - The interval.\n * @param options - An object with options.\n *\n * @returns The array with starts of days from the day of the interval start to the day of the interval end\n *\n * @example\n * // Each day between 6 October 2014 and 10 October 2014:\n * const result = eachDayOfInterval({\n * start: new Date(2014, 9, 6),\n * end: new Date(2014, 9, 10)\n * })\n * //=> [\n * // Mon Oct 06 2014 00:00:00,\n * // Tue Oct 07 2014 00:00:00,\n * // Wed Oct 08 2014 00:00:00,\n * // Thu Oct 09 2014 00:00:00,\n * // Fri Oct 10 2014 00:00:00\n * // ]\n */\nexport function eachDayOfInterval(interval, options) {\n const { start, end } = normalizeInterval(options?.in, interval);\n\n let reversed = +start > +end;\n const endTime = reversed ? +start : +end;\n const date = reversed ? end : start;\n date.setHours(0, 0, 0, 0);\n\n let step = options?.step ?? 1;\n if (!step) return [];\n if (step < 0) {\n step = -step;\n reversed = !reversed;\n }\n\n const dates = [];\n\n while (+date <= endTime) {\n dates.push(constructFrom(start, date));\n date.setDate(date.getDate() + step);\n date.setHours(0, 0, 0, 0);\n }\n\n return reversed ? dates.reverse() : dates;\n}\n\n// Fallback for modularized imports:\nexport default eachDayOfInterval;\n", "import { normalizeInterval } from \"./_lib/normalizeInterval.js\";\nimport { addWeeks } from \"./addWeeks.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\n\n/**\n * The {@link eachWeekOfInterval} function options.\n */\n\n/**\n * The {@link eachWeekOfInterval} function result type. It resolves the proper data type.\n * It uses the first argument date object type, starting from the interval start date,\n * then the end interval date. If a context function is passed, it uses the context function return type.\n */\n\n/**\n * @name eachWeekOfInterval\n * @category Interval Helpers\n * @summary Return the array of weeks within the specified time interval.\n *\n * @description\n * Return the array of weeks within the specified time interval.\n *\n * @param interval - The interval.\n * @param options - An object with options.\n *\n * @returns The array with starts of weeks from the week of the interval start to the week of the interval end\n *\n * @example\n * // Each week within interval 6 October 2014 - 23 November 2014:\n * const result = eachWeekOfInterval({\n * start: new Date(2014, 9, 6),\n * end: new Date(2014, 10, 23)\n * })\n * //=> [\n * // Sun Oct 05 2014 00:00:00,\n * // Sun Oct 12 2014 00:00:00,\n * // Sun Oct 19 2014 00:00:00,\n * // Sun Oct 26 2014 00:00:00,\n * // Sun Nov 02 2014 00:00:00,\n * // Sun Nov 09 2014 00:00:00,\n * // Sun Nov 16 2014 00:00:00,\n * // Sun Nov 23 2014 00:00:00\n * // ]\n */\nexport function eachWeekOfInterval(interval, options) {\n const { start, end } = normalizeInterval(options?.in, interval);\n\n let reversed = +start > +end;\n const startDateWeek = reversed\n ? startOfWeek(end, options)\n : startOfWeek(start, options);\n const endDateWeek = reversed\n ? startOfWeek(start, options)\n : startOfWeek(end, options);\n\n startDateWeek.setHours(15);\n endDateWeek.setHours(15);\n\n const endTime = +endDateWeek.getTime();\n let currentDate = startDateWeek;\n\n let step = options?.step ?? 1;\n if (!step) return [];\n if (step < 0) {\n step = -step;\n reversed = !reversed;\n }\n\n const dates = [];\n\n while (+currentDate <= endTime) {\n currentDate.setHours(0);\n dates.push(constructFrom(start, currentDate));\n currentDate = addWeeks(currentDate, step);\n currentDate.setHours(15);\n }\n\n return reversed ? dates.reverse() : dates;\n}\n\n// Fallback for modularized imports:\nexport default eachWeekOfInterval;\n", "import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfMonth} function options.\n */\n\n/**\n * @name startOfMonth\n * @category Month Helpers\n * @summary Return the start of a month for the given date.\n *\n * @description\n * Return the start of a month for the given date. The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments.\n * Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed,\n * or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a month\n *\n * @example\n * // The start of a month for 2 September 2014 11:55:00:\n * const result = startOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfMonth(date, options) {\n const _date = toDate(date, options?.in);\n _date.setDate(1);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfMonth;\n", "import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfYear} function options.\n */\n\n/**\n * @name startOfYear\n * @category Year Helpers\n * @summary Return the start of a year for the given date.\n *\n * @description\n * Return the start of a year for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - The options\n *\n * @returns The start of a year\n *\n * @example\n * // The start of a year for 2 September 2014 11:55:00:\n * const result = startOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Jan 01 2014 00:00:00\n */\nexport function startOfYear(date, options) {\n const date_ = toDate(date, options?.in);\n date_.setFullYear(date_.getFullYear(), 0, 1);\n date_.setHours(0, 0, 0, 0);\n return date_;\n}\n\n// Fallback for modularized imports:\nexport default startOfYear;\n", "import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link endOfWeek} function options.\n */\n\n/**\n * @name endOfWeek\n * @category Week Helpers\n * @summary Return the end of a week for the given date.\n *\n * @description\n * Return the end of a week for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The end of a week\n *\n * @example\n * // The end of a week for 2 September 2014 11:55:00:\n * const result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sat Sep 06 2014 23:59:59.999\n *\n * @example\n * // If the week starts on Monday, the end of the week for 2 September 2014 11:55:00:\n * const result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Sun Sep 07 2014 23:59:59.999\n */\nexport function endOfWeek(date, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const _date = toDate(date, options?.in);\n const day = _date.getDay();\n const diff = (day < weekStartsOn ? -7 : 0) + 6 - (day - weekStartsOn);\n\n _date.setDate(_date.getDate() + diff);\n _date.setHours(23, 59, 59, 999);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default endOfWeek;\n", "const formatDistanceLocale = {\n lessThanXSeconds: {\n one: \"less than a second\",\n other: \"less than {{count}} seconds\",\n },\n\n xSeconds: {\n one: \"1 second\",\n other: \"{{count}} seconds\",\n },\n\n halfAMinute: \"half a minute\",\n\n lessThanXMinutes: {\n one: \"less than a minute\",\n other: \"less than {{count}} minutes\",\n },\n\n xMinutes: {\n one: \"1 minute\",\n other: \"{{count}} minutes\",\n },\n\n aboutXHours: {\n one: \"about 1 hour\",\n other: \"about {{count}} hours\",\n },\n\n xHours: {\n one: \"1 hour\",\n other: \"{{count}} hours\",\n },\n\n xDays: {\n one: \"1 day\",\n other: \"{{count}} days\",\n },\n\n aboutXWeeks: {\n one: \"about 1 week\",\n other: \"about {{count}} weeks\",\n },\n\n xWeeks: {\n one: \"1 week\",\n other: \"{{count}} weeks\",\n },\n\n aboutXMonths: {\n one: \"about 1 month\",\n other: \"about {{count}} months\",\n },\n\n xMonths: {\n one: \"1 month\",\n other: \"{{count}} months\",\n },\n\n aboutXYears: {\n one: \"about 1 year\",\n other: \"about {{count}} years\",\n },\n\n xYears: {\n one: \"1 year\",\n other: \"{{count}} years\",\n },\n\n overXYears: {\n one: \"over 1 year\",\n other: \"over {{count}} years\",\n },\n\n almostXYears: {\n one: \"almost 1 year\",\n other: \"almost {{count}} years\",\n },\n};\n\nexport const formatDistance = (token, count, options) => {\n let result;\n\n const tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === \"string\") {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace(\"{{count}}\", count.toString());\n }\n\n if (options?.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return \"in \" + result;\n } else {\n return result + \" ago\";\n }\n }\n\n return result;\n};\n", "export function buildFormatLongFn(args) {\n return (options = {}) => {\n // TODO: Remove String()\n const width = options.width ? String(options.width) : args.defaultWidth;\n const format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}\n", "import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n full: \"EEEE, MMMM do, y\",\n long: \"MMMM do, y\",\n medium: \"MMM d, y\",\n short: \"MM/dd/yyyy\",\n};\n\nconst timeFormats = {\n full: \"h:mm:ss a zzzz\",\n long: \"h:mm:ss a z\",\n medium: \"h:mm:ss a\",\n short: \"h:mm a\",\n};\n\nconst dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: \"{{date}}, {{time}}\",\n short: \"{{date}}, {{time}}\",\n};\n\nexport const formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n};\n", "const formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n formatRelativeLocale[token];\n", "/**\n * The localize function argument callback which allows to convert raw value to\n * the actual type.\n *\n * @param value - The value to convert\n *\n * @returns The converted value\n */\n\n/**\n * The map of localized values for each width.\n */\n\n/**\n * The index type of the locale unit value. It types conversion of units of\n * values that don't start at 0 (i.e. quarters).\n */\n\n/**\n * Converts the unit value to the tuple of values.\n */\n\n/**\n * The tuple of localized era values. The first element represents BC,\n * the second element represents AD.\n */\n\n/**\n * The tuple of localized quarter values. The first element represents Q1.\n */\n\n/**\n * The tuple of localized day values. The first element represents Sunday.\n */\n\n/**\n * The tuple of localized month values. The first element represents January.\n */\n\nexport function buildLocalizeFn(args) {\n return (value, options) => {\n const context = options?.context ? String(options.context) : \"standalone\";\n\n let valuesArray;\n if (context === \"formatting\" && args.formattingValues) {\n const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n const width = options?.width ? String(options.width) : defaultWidth;\n\n valuesArray =\n args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n const defaultWidth = args.defaultWidth;\n const width = options?.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[width] || args.values[defaultWidth];\n }\n const index = args.argumentCallback ? args.argumentCallback(value) : value;\n\n // @ts-expect-error - For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}\n", "import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n narrow: [\"B\", \"A\"],\n abbreviated: [\"BC\", \"AD\"],\n wide: [\"Before Christ\", \"Anno Domini\"],\n};\n\nconst quarterValues = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n wide: [\"1st quarter\", \"2nd quarter\", \"3rd quarter\", \"4th quarter\"],\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nconst monthValues = {\n narrow: [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n abbreviated: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n\n wide: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n};\n\nconst dayValues = {\n narrow: [\"S\", \"M\", \"T\", \"W\", \"T\", \"F\", \"S\"],\n short: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n abbreviated: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n wide: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ],\n};\n\nconst dayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n};\n\nconst formattingDayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n const number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n const rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + \"st\";\n case 2:\n return number + \"nd\";\n case 3:\n return number + \"rd\";\n }\n }\n return number + \"th\";\n};\n\nexport const localize = {\n ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: \"wide\",\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: \"wide\",\n argumentCallback: (quarter) => quarter - 1,\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: \"wide\",\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: \"wide\",\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: \"wide\",\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: \"wide\",\n }),\n};\n", "export function buildMatchFn(args) {\n return (string, options = {}) => {\n const width = options.width;\n\n const matchPattern =\n (width && args.matchPatterns[width]) ||\n args.matchPatterns[args.defaultMatchWidth];\n const matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n const matchedString = matchResult[0];\n\n const parsePatterns =\n (width && args.parsePatterns[width]) ||\n args.parsePatterns[args.defaultParseWidth];\n\n const key = Array.isArray(parsePatterns)\n ? findIndex(parsePatterns, (pattern) => pattern.test(matchedString))\n : // [TODO] -- I challenge you to fix the type\n findKey(parsePatterns, (pattern) => pattern.test(matchedString));\n\n let value;\n\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback\n ? // [TODO] -- I challenge you to fix the type\n options.valueCallback(value)\n : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n\nfunction findKey(object, predicate) {\n for (const key in object) {\n if (\n Object.prototype.hasOwnProperty.call(object, key) &&\n predicate(object[key])\n ) {\n return key;\n }\n }\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (let key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}\n", "export function buildMatchPatternFn(args) {\n return (string, options = {}) => {\n const matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n const matchedString = matchResult[0];\n\n const parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n let value = args.valueCallback\n ? args.valueCallback(parseResult[0])\n : parseResult[0];\n\n // [TODO] I challenge you to fix the type\n value = options.valueCallback ? options.valueCallback(value) : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n", "import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i,\n};\nconst parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i],\n};\n\nconst matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i,\n};\nconst parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i,\n};\nconst parseMonthPatterns = {\n narrow: [\n /^j/i,\n /^f/i,\n /^m/i,\n /^a/i,\n /^m/i,\n /^j/i,\n /^j/i,\n /^a/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n\n any: [\n /^ja/i,\n /^f/i,\n /^mar/i,\n /^ap/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^au/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n};\n\nconst matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i,\n};\nconst parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i],\n};\n\nconst matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i,\n};\nconst parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i,\n },\n};\n\nexport const match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: (value) => parseInt(value, 10),\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseEraPatterns,\n defaultParseWidth: \"any\",\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: \"any\",\n valueCallback: (index) => index + 1,\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: \"any\",\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPatterns,\n defaultParseWidth: \"any\",\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: \"any\",\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: \"any\",\n }),\n};\n", "import { formatDistance } from \"./en-US/_lib/formatDistance.js\";\nimport { formatLong } from \"./en-US/_lib/formatLong.js\";\nimport { formatRelative } from \"./en-US/_lib/formatRelative.js\";\nimport { localize } from \"./en-US/_lib/localize.js\";\nimport { match } from \"./en-US/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp](https://github.com/kossnocorp)\n * @author Lesha Koss [@leshakoss](https://github.com/leshakoss)\n */\nexport const enUS = {\n code: \"en-US\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1,\n },\n};\n\n// Fallback for modularized imports:\nexport default enUS;\n", "import { differenceInCalendarDays } from \"./differenceInCalendarDays.js\";\nimport { startOfYear } from \"./startOfYear.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getDayOfYear} function options.\n */\n\n/**\n * @name getDayOfYear\n * @category Day Helpers\n * @summary Get the day of the year of the given date.\n *\n * @description\n * Get the day of the year of the given date.\n *\n * @param date - The given date\n * @param options - The options\n *\n * @returns The day of year\n *\n * @example\n * // Which day of the year is 2 July 2014?\n * const result = getDayOfYear(new Date(2014, 6, 2))\n * //=> 183\n */\nexport function getDayOfYear(date, options) {\n const _date = toDate(date, options?.in);\n const diff = differenceInCalendarDays(_date, startOfYear(_date));\n const dayOfYear = diff + 1;\n return dayOfYear;\n}\n\n// Fallback for modularized imports:\nexport default getDayOfYear;\n", "import { millisecondsInWeek } from \"./constants.js\";\nimport { startOfISOWeek } from \"./startOfISOWeek.js\";\nimport { startOfISOWeekYear } from \"./startOfISOWeekYear.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getISOWeek} function options.\n */\n\n/**\n * @name getISOWeek\n * @category ISO Week Helpers\n * @summary Get the ISO week of the given date.\n *\n * @description\n * Get the ISO week of the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param date - The given date\n * @param options - The options\n *\n * @returns The ISO week\n *\n * @example\n * // Which week of the ISO-week numbering year is 2 January 2005?\n * const result = getISOWeek(new Date(2005, 0, 2))\n * //=> 53\n */\nexport function getISOWeek(date, options) {\n const _date = toDate(date, options?.in);\n const diff = +startOfISOWeek(_date) - +startOfISOWeekYear(_date);\n\n // Round the number of weeks to the nearest integer because the number of\n // milliseconds in a week is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(diff / millisecondsInWeek) + 1;\n}\n\n// Fallback for modularized imports:\nexport default getISOWeek;\n", "import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getWeekYear} function options.\n */\n\n/**\n * @name getWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Get the local week-numbering year of the given date.\n *\n * @description\n * Get the local week-numbering year of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @param date - The given date\n * @param options - An object with options.\n *\n * @returns The local week-numbering year\n *\n * @example\n * // Which week numbering year is 26 December 2004 with the default settings?\n * const result = getWeekYear(new Date(2004, 11, 26))\n * //=> 2005\n *\n * @example\n * // Which week numbering year is 26 December 2004 if week starts on Saturday?\n * const result = getWeekYear(new Date(2004, 11, 26), { weekStartsOn: 6 })\n * //=> 2004\n *\n * @example\n * // Which week numbering year is 26 December 2004 if the first week contains 4 January?\n * const result = getWeekYear(new Date(2004, 11, 26), { firstWeekContainsDate: 4 })\n * //=> 2004\n */\nexport function getWeekYear(date, options) {\n const _date = toDate(date, options?.in);\n const year = _date.getFullYear();\n\n const defaultOptions = getDefaultOptions();\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const firstWeekOfNextYear = constructFrom(options?.in || date, 0);\n firstWeekOfNextYear.setFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setHours(0, 0, 0, 0);\n const startOfNextYear = startOfWeek(firstWeekOfNextYear, options);\n\n const firstWeekOfThisYear = constructFrom(options?.in || date, 0);\n firstWeekOfThisYear.setFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setHours(0, 0, 0, 0);\n const startOfThisYear = startOfWeek(firstWeekOfThisYear, options);\n\n if (+_date >= +startOfNextYear) {\n return year + 1;\n } else if (+_date >= +startOfThisYear) {\n return year;\n } else {\n return year - 1;\n }\n}\n\n// Fallback for modularized imports:\nexport default getWeekYear;\n", "import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { getWeekYear } from \"./getWeekYear.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\n\n/**\n * The {@link startOfWeekYear} function options.\n */\n\n/**\n * @name startOfWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Return the start of a local week-numbering year for the given date.\n *\n * @description\n * Return the start of a local week-numbering year.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week-numbering year\n *\n * @example\n * // The start of an a week-numbering year for 2 July 2005 with default settings:\n * const result = startOfWeekYear(new Date(2005, 6, 2))\n * //=> Sun Dec 26 2004 00:00:00\n *\n * @example\n * // The start of a week-numbering year for 2 July 2005\n * // if Monday is the first day of week\n * // and 4 January is always in the first week of the year:\n * const result = startOfWeekYear(new Date(2005, 6, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport function startOfWeekYear(date, options) {\n const defaultOptions = getDefaultOptions();\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const year = getWeekYear(date, options);\n const firstWeek = constructFrom(options?.in || date, 0);\n firstWeek.setFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setHours(0, 0, 0, 0);\n const _date = startOfWeek(firstWeek, options);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeekYear;\n", "import { millisecondsInWeek } from \"./constants.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\nimport { startOfWeekYear } from \"./startOfWeekYear.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getWeek} function options.\n */\n\n/**\n * @name getWeek\n * @category Week Helpers\n * @summary Get the local week index of the given date.\n *\n * @description\n * Get the local week index of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The week\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005 with default options?\n * const result = getWeek(new Date(2005, 0, 2))\n * //=> 2\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005,\n * // if Monday is the first day of the week,\n * // and the first week of the year always contains 4 January?\n * const result = getWeek(new Date(2005, 0, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> 53\n */\nexport function getWeek(date, options) {\n const _date = toDate(date, options?.in);\n const diff = +startOfWeek(_date, options) - +startOfWeekYear(_date, options);\n\n // Round the number of weeks to the nearest integer because the number of\n // milliseconds in a week is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(diff / millisecondsInWeek) + 1;\n}\n\n// Fallback for modularized imports:\nexport default getWeek;\n", "export function addLeadingZeros(number, targetLength) {\n const sign = number < 0 ? \"-\" : \"\";\n const output = Math.abs(number).toString().padStart(targetLength, \"0\");\n return sign + output;\n}\n", "import { addLeadingZeros } from \"../addLeadingZeros.js\";\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nexport const lightFormatters = {\n // Year\n y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n const signedYear = date.getFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === \"yy\" ? year % 100 : year, token.length);\n },\n\n // Month\n M(date, token) {\n const month = date.getMonth();\n return token === \"M\" ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n\n // Day of the month\n d(date, token) {\n return addLeadingZeros(date.getDate(), token.length);\n },\n\n // AM or PM\n a(date, token) {\n const dayPeriodEnumValue = date.getHours() / 12 >= 1 ? \"pm\" : \"am\";\n\n switch (token) {\n case \"a\":\n case \"aa\":\n return dayPeriodEnumValue.toUpperCase();\n case \"aaa\":\n return dayPeriodEnumValue;\n case \"aaaaa\":\n return dayPeriodEnumValue[0];\n case \"aaaa\":\n default:\n return dayPeriodEnumValue === \"am\" ? \"a.m.\" : \"p.m.\";\n }\n },\n\n // Hour [1-12]\n h(date, token) {\n return addLeadingZeros(date.getHours() % 12 || 12, token.length);\n },\n\n // Hour [0-23]\n H(date, token) {\n return addLeadingZeros(date.getHours(), token.length);\n },\n\n // Minute\n m(date, token) {\n return addLeadingZeros(date.getMinutes(), token.length);\n },\n\n // Second\n s(date, token) {\n return addLeadingZeros(date.getSeconds(), token.length);\n },\n\n // Fraction of second\n S(date, token) {\n const numberOfDigits = token.length;\n const milliseconds = date.getMilliseconds();\n const fractionalSeconds = Math.trunc(\n milliseconds * Math.pow(10, numberOfDigits - 3),\n );\n return addLeadingZeros(fractionalSeconds, token.length);\n },\n};\n", "import { getDayOfYear } from \"../../getDayOfYear.js\";\nimport { getISOWeek } from \"../../getISOWeek.js\";\nimport { getISOWeekYear } from \"../../getISOWeekYear.js\";\nimport { getWeek } from \"../../getWeek.js\";\nimport { getWeekYear } from \"../../getWeekYear.js\";\n\nimport { addLeadingZeros } from \"../addLeadingZeros.js\";\nimport { lightFormatters } from \"./lightFormatters.js\";\n\nconst dayPeriodEnum = {\n am: \"am\",\n pm: \"pm\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n};\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nexport const formatters = {\n // Era\n G: function (date, token, localize) {\n const era = date.getFullYear() > 0 ? 1 : 0;\n switch (token) {\n // AD, BC\n case \"G\":\n case \"GG\":\n case \"GGG\":\n return localize.era(era, { width: \"abbreviated\" });\n // A, B\n case \"GGGGG\":\n return localize.era(era, { width: \"narrow\" });\n // Anno Domini, Before Christ\n case \"GGGG\":\n default:\n return localize.era(era, { width: \"wide\" });\n }\n },\n\n // Year\n y: function (date, token, localize) {\n // Ordinal number\n if (token === \"yo\") {\n const signedYear = date.getFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, { unit: \"year\" });\n }\n\n return lightFormatters.y(date, token);\n },\n\n // Local week-numbering year\n Y: function (date, token, localize, options) {\n const signedWeekYear = getWeekYear(date, options);\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n const weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;\n\n // Two digit year\n if (token === \"YY\") {\n const twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n }\n\n // Ordinal number\n if (token === \"Yo\") {\n return localize.ordinalNumber(weekYear, { unit: \"year\" });\n }\n\n // Padding\n return addLeadingZeros(weekYear, token.length);\n },\n\n // ISO week-numbering year\n R: function (date, token) {\n const isoWeekYear = getISOWeekYear(date);\n\n // Padding\n return addLeadingZeros(isoWeekYear, token.length);\n },\n\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function (date, token) {\n const year = date.getFullYear();\n return addLeadingZeros(year, token.length);\n },\n\n // Quarter\n Q: function (date, token, localize) {\n const quarter = Math.ceil((date.getMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case \"Q\":\n return String(quarter);\n // 01, 02, 03, 04\n case \"QQ\":\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case \"Qo\":\n return localize.ordinalNumber(quarter, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"QQQ\":\n return localize.quarter(quarter, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"QQQQQ\":\n return localize.quarter(quarter, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"QQQQ\":\n default:\n return localize.quarter(quarter, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Stand-alone quarter\n q: function (date, token, localize) {\n const quarter = Math.ceil((date.getMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case \"q\":\n return String(quarter);\n // 01, 02, 03, 04\n case \"qq\":\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case \"qo\":\n return localize.ordinalNumber(quarter, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"qqq\":\n return localize.quarter(quarter, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"qqqqq\":\n return localize.quarter(quarter, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"qqqq\":\n default:\n return localize.quarter(quarter, {\n width: \"wide\",\n context: \"standalone\",\n });\n }\n },\n\n // Month\n M: function (date, token, localize) {\n const month = date.getMonth();\n switch (token) {\n case \"M\":\n case \"MM\":\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n case \"Mo\":\n return localize.ordinalNumber(month + 1, { unit: \"month\" });\n // Jan, Feb, ..., Dec\n case \"MMM\":\n return localize.month(month, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // J, F, ..., D\n case \"MMMMM\":\n return localize.month(month, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // January, February, ..., December\n case \"MMMM\":\n default:\n return localize.month(month, { width: \"wide\", context: \"formatting\" });\n }\n },\n\n // Stand-alone month\n L: function (date, token, localize) {\n const month = date.getMonth();\n switch (token) {\n // 1, 2, ..., 12\n case \"L\":\n return String(month + 1);\n // 01, 02, ..., 12\n case \"LL\":\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n case \"Lo\":\n return localize.ordinalNumber(month + 1, { unit: \"month\" });\n // Jan, Feb, ..., Dec\n case \"LLL\":\n return localize.month(month, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // J, F, ..., D\n case \"LLLLL\":\n return localize.month(month, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // January, February, ..., December\n case \"LLLL\":\n default:\n return localize.month(month, { width: \"wide\", context: \"standalone\" });\n }\n },\n\n // Local week of year\n w: function (date, token, localize, options) {\n const week = getWeek(date, options);\n\n if (token === \"wo\") {\n return localize.ordinalNumber(week, { unit: \"week\" });\n }\n\n return addLeadingZeros(week, token.length);\n },\n\n // ISO week of year\n I: function (date, token, localize) {\n const isoWeek = getISOWeek(date);\n\n if (token === \"Io\") {\n return localize.ordinalNumber(isoWeek, { unit: \"week\" });\n }\n\n return addLeadingZeros(isoWeek, token.length);\n },\n\n // Day of the month\n d: function (date, token, localize) {\n if (token === \"do\") {\n return localize.ordinalNumber(date.getDate(), { unit: \"date\" });\n }\n\n return lightFormatters.d(date, token);\n },\n\n // Day of year\n D: function (date, token, localize) {\n const dayOfYear = getDayOfYear(date);\n\n if (token === \"Do\") {\n return localize.ordinalNumber(dayOfYear, { unit: \"dayOfYear\" });\n }\n\n return addLeadingZeros(dayOfYear, token.length);\n },\n\n // Day of week\n E: function (date, token, localize) {\n const dayOfWeek = date.getDay();\n switch (token) {\n // Tue\n case \"E\":\n case \"EE\":\n case \"EEE\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"EEEEE\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"EEEEEE\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"EEEE\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Local day of week\n e: function (date, token, localize, options) {\n const dayOfWeek = date.getDay();\n const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case \"e\":\n return String(localDayOfWeek);\n // Padded numerical value\n case \"ee\":\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n case \"eo\":\n return localize.ordinalNumber(localDayOfWeek, { unit: \"day\" });\n case \"eee\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"eeeee\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"eeeeee\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"eeee\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Stand-alone local day of week\n c: function (date, token, localize, options) {\n const dayOfWeek = date.getDay();\n const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (same as in `e`)\n case \"c\":\n return String(localDayOfWeek);\n // Padded numerical value\n case \"cc\":\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n case \"co\":\n return localize.ordinalNumber(localDayOfWeek, { unit: \"day\" });\n case \"ccc\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"standalone\",\n });\n // T\n case \"ccccc\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // Tu\n case \"cccccc\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"standalone\",\n });\n // Tuesday\n case \"cccc\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"standalone\",\n });\n }\n },\n\n // ISO day of week\n i: function (date, token, localize) {\n const dayOfWeek = date.getDay();\n const isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n switch (token) {\n // 2\n case \"i\":\n return String(isoDayOfWeek);\n // 02\n case \"ii\":\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n case \"io\":\n return localize.ordinalNumber(isoDayOfWeek, { unit: \"day\" });\n // Tue\n case \"iii\":\n return localize.day(dayOfWeek, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n // T\n case \"iiiii\":\n return localize.day(dayOfWeek, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"iiiiii\":\n return localize.day(dayOfWeek, {\n width: \"short\",\n context: \"formatting\",\n });\n // Tuesday\n case \"iiii\":\n default:\n return localize.day(dayOfWeek, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // AM or PM\n a: function (date, token, localize) {\n const hours = date.getHours();\n const dayPeriodEnumValue = hours / 12 >= 1 ? \"pm\" : \"am\";\n\n switch (token) {\n case \"a\":\n case \"aa\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"aaa\":\n return localize\n .dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n })\n .toLowerCase();\n case \"aaaaa\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"aaaa\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // AM, PM, midnight, noon\n b: function (date, token, localize) {\n const hours = date.getHours();\n let dayPeriodEnumValue;\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? \"pm\" : \"am\";\n }\n\n switch (token) {\n case \"b\":\n case \"bb\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"bbb\":\n return localize\n .dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n })\n .toLowerCase();\n case \"bbbbb\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"bbbb\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // in the morning, in the afternoon, in the evening, at night\n B: function (date, token, localize) {\n const hours = date.getHours();\n let dayPeriodEnumValue;\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n\n switch (token) {\n case \"B\":\n case \"BB\":\n case \"BBB\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"abbreviated\",\n context: \"formatting\",\n });\n case \"BBBBB\":\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"BBBB\":\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: \"wide\",\n context: \"formatting\",\n });\n }\n },\n\n // Hour [1-12]\n h: function (date, token, localize) {\n if (token === \"ho\") {\n let hours = date.getHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return lightFormatters.h(date, token);\n },\n\n // Hour [0-23]\n H: function (date, token, localize) {\n if (token === \"Ho\") {\n return localize.ordinalNumber(date.getHours(), { unit: \"hour\" });\n }\n\n return lightFormatters.H(date, token);\n },\n\n // Hour [0-11]\n K: function (date, token, localize) {\n const hours = date.getHours() % 12;\n\n if (token === \"Ko\") {\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n\n // Hour [1-24]\n k: function (date, token, localize) {\n let hours = date.getHours();\n if (hours === 0) hours = 24;\n\n if (token === \"ko\") {\n return localize.ordinalNumber(hours, { unit: \"hour\" });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n\n // Minute\n m: function (date, token, localize) {\n if (token === \"mo\") {\n return localize.ordinalNumber(date.getMinutes(), { unit: \"minute\" });\n }\n\n return lightFormatters.m(date, token);\n },\n\n // Second\n s: function (date, token, localize) {\n if (token === \"so\") {\n return localize.ordinalNumber(date.getSeconds(), { unit: \"second\" });\n }\n\n return lightFormatters.s(date, token);\n },\n\n // Fraction of second\n S: function (date, token) {\n return lightFormatters.S(date, token);\n },\n\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n if (timezoneOffset === 0) {\n return \"Z\";\n }\n\n switch (token) {\n // Hours and optional minutes\n case \"X\":\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n case \"XXXX\":\n case \"XX\": // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n case \"XXXXX\":\n case \"XXX\": // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Hours and optional minutes\n case \"x\":\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n case \"xxxx\":\n case \"xx\": // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n case \"xxxxx\":\n case \"xxx\": // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (GMT)\n O: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Short\n case \"O\":\n case \"OO\":\n case \"OOO\":\n return \"GMT\" + formatTimezoneShort(timezoneOffset, \":\");\n // Long\n case \"OOOO\":\n default:\n return \"GMT\" + formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Timezone (specific non-location)\n z: function (date, token, _localize) {\n const timezoneOffset = date.getTimezoneOffset();\n\n switch (token) {\n // Short\n case \"z\":\n case \"zz\":\n case \"zzz\":\n return \"GMT\" + formatTimezoneShort(timezoneOffset, \":\");\n // Long\n case \"zzzz\":\n default:\n return \"GMT\" + formatTimezone(timezoneOffset, \":\");\n }\n },\n\n // Seconds timestamp\n t: function (date, token, _localize) {\n const timestamp = Math.trunc(+date / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n\n // Milliseconds timestamp\n T: function (date, token, _localize) {\n return addLeadingZeros(+date, token.length);\n },\n};\n\nfunction formatTimezoneShort(offset, delimiter = \"\") {\n const sign = offset > 0 ? \"-\" : \"+\";\n const absOffset = Math.abs(offset);\n const hours = Math.trunc(absOffset / 60);\n const minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours);\n }\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, delimiter) {\n if (offset % 60 === 0) {\n const sign = offset > 0 ? \"-\" : \"+\";\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n return formatTimezone(offset, delimiter);\n}\n\nfunction formatTimezone(offset, delimiter = \"\") {\n const sign = offset > 0 ? \"-\" : \"+\";\n const absOffset = Math.abs(offset);\n const hours = addLeadingZeros(Math.trunc(absOffset / 60), 2);\n const minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\n", "const dateLongFormatter = (pattern, formatLong) => {\n switch (pattern) {\n case \"P\":\n return formatLong.date({ width: \"short\" });\n case \"PP\":\n return formatLong.date({ width: \"medium\" });\n case \"PPP\":\n return formatLong.date({ width: \"long\" });\n case \"PPPP\":\n default:\n return formatLong.date({ width: \"full\" });\n }\n};\n\nconst timeLongFormatter = (pattern, formatLong) => {\n switch (pattern) {\n case \"p\":\n return formatLong.time({ width: \"short\" });\n case \"pp\":\n return formatLong.time({ width: \"medium\" });\n case \"ppp\":\n return formatLong.time({ width: \"long\" });\n case \"pppp\":\n default:\n return formatLong.time({ width: \"full\" });\n }\n};\n\nconst dateTimeLongFormatter = (pattern, formatLong) => {\n const matchResult = pattern.match(/(P+)(p+)?/) || [];\n const datePattern = matchResult[1];\n const timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n let dateTimeFormat;\n\n switch (datePattern) {\n case \"P\":\n dateTimeFormat = formatLong.dateTime({ width: \"short\" });\n break;\n case \"PP\":\n dateTimeFormat = formatLong.dateTime({ width: \"medium\" });\n break;\n case \"PPP\":\n dateTimeFormat = formatLong.dateTime({ width: \"long\" });\n break;\n case \"PPPP\":\n default:\n dateTimeFormat = formatLong.dateTime({ width: \"full\" });\n break;\n }\n\n return dateTimeFormat\n .replace(\"{{date}}\", dateLongFormatter(datePattern, formatLong))\n .replace(\"{{time}}\", timeLongFormatter(timePattern, formatLong));\n};\n\nexport const longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter,\n};\n", "const dayOfYearTokenRE = /^D+$/;\nconst weekYearTokenRE = /^Y+$/;\n\nconst throwTokens = [\"D\", \"DD\", \"YY\", \"YYYY\"];\n\nexport function isProtectedDayOfYearToken(token) {\n return dayOfYearTokenRE.test(token);\n}\n\nexport function isProtectedWeekYearToken(token) {\n return weekYearTokenRE.test(token);\n}\n\nexport function warnOrThrowProtectedError(token, format, input) {\n const _message = message(token, format, input);\n console.warn(_message);\n if (throwTokens.includes(token)) throw new RangeError(_message);\n}\n\nfunction message(token, format, input) {\n const subject = token[0] === \"Y\" ? \"years\" : \"days of the month\";\n return `Use \\`${token.toLowerCase()}\\` instead of \\`${token}\\` (in \\`${format}\\`) for formatting ${subject} to the input \\`${input}\\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`;\n}\n", "import { defaultLocale } from \"./_lib/defaultLocale.js\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { formatters } from \"./_lib/format/formatters.js\";\nimport { longFormatters } from \"./_lib/format/longFormatters.js\";\nimport {\n isProtectedDayOfYearToken,\n isProtectedWeekYearToken,\n warnOrThrowProtectedError,\n} from \"./_lib/protectedTokens.js\";\nimport { isValid } from \"./isValid.js\";\nimport { toDate } from \"./toDate.js\";\n\n// Rexports of internal for libraries to use.\n// See: https://github.com/date-fns/date-fns/issues/3638#issuecomment-1877082874\nexport { formatters, longFormatters };\n\n// This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nconst formattingTokensRegExp =\n /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nconst longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\n\nconst escapedStringRegExp = /^'([^]*?)'?$/;\nconst doubleQuoteRegExp = /''/g;\nconst unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\nexport { format as formatDate };\n\n/**\n * The {@link format} function options.\n */\n\n/**\n * @name format\n * @alias formatDate\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > \u26A0\uFE0F Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear](https://date-fns.org/docs/getISOWeekYear)\n * and [getWeekYear](https://date-fns.org/docs/getWeekYear)).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @param date - The original date\n * @param format - The string of tokens\n * @param options - An object with options\n *\n * @returns The formatted date string\n *\n * @throws `date` must not be Invalid Date\n * @throws `options.locale` must contain `localize` property\n * @throws `options.locale` must contain `formatLong` property\n * @throws use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\nexport function format(date, formatStr, options) {\n const defaultOptions = getDefaultOptions();\n const locale = options?.locale ?? defaultOptions.locale ?? defaultLocale;\n\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const originalDate = toDate(date, options?.in);\n\n if (!isValid(originalDate)) {\n throw new RangeError(\"Invalid time value\");\n }\n\n let parts = formatStr\n .match(longFormattingTokensRegExp)\n .map((substring) => {\n const firstCharacter = substring[0];\n if (firstCharacter === \"p\" || firstCharacter === \"P\") {\n const longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n })\n .join(\"\")\n .match(formattingTokensRegExp)\n .map((substring) => {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return { isToken: false, value: \"'\" };\n }\n\n const firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return { isToken: false, value: cleanEscapedString(substring) };\n }\n\n if (formatters[firstCharacter]) {\n return { isToken: true, value: substring };\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError(\n \"Format string contains an unescaped latin alphabet character `\" +\n firstCharacter +\n \"`\",\n );\n }\n\n return { isToken: false, value: substring };\n });\n\n // invoke localize preprocessor (only for french locales at the moment)\n if (locale.localize.preprocessor) {\n parts = locale.localize.preprocessor(originalDate, parts);\n }\n\n const formatterOptions = {\n firstWeekContainsDate,\n weekStartsOn,\n locale,\n };\n\n return parts\n .map((part) => {\n if (!part.isToken) return part.value;\n\n const token = part.value;\n\n if (\n (!options?.useAdditionalWeekYearTokens &&\n isProtectedWeekYearToken(token)) ||\n (!options?.useAdditionalDayOfYearTokens &&\n isProtectedDayOfYearToken(token))\n ) {\n warnOrThrowProtectedError(token, formatStr, String(date));\n }\n\n const formatter = formatters[token[0]];\n return formatter(originalDate, token, locale.localize, formatterOptions);\n })\n .join(\"\");\n}\n\nfunction cleanEscapedString(input) {\n const matched = input.match(escapedStringRegExp);\n\n if (!matched) {\n return input;\n }\n\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}\n\n// Fallback for modularized imports:\nexport default format;\n", "import { addLeadingZeros } from \"./_lib/addLeadingZeros.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link formatISO} function options.\n */\n\n/**\n * @name formatISO\n * @category Common Helpers\n * @summary Format the date according to the ISO 8601 standard (https://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a003169814.htm).\n *\n * @description\n * Return the formatted date string in ISO 8601 format. Options may be passed to control the parts and notations of the date.\n *\n * @param date - The original date\n * @param options - An object with options.\n *\n * @returns The formatted date string (in local time zone)\n *\n * @throws `date` must not be Invalid Date\n *\n * @example\n * // Represent 18 September 2019 in ISO 8601 format (local time zone is UTC):\n * const result = formatISO(new Date(2019, 8, 18, 19, 0, 52))\n * //=> '2019-09-18T19:00:52Z'\n *\n * @example\n * // Represent 18 September 2019 in ISO 8601, short format (local time zone is UTC):\n * const result = formatISO(new Date(2019, 8, 18, 19, 0, 52), { format: 'basic' })\n * //=> '20190918T190052'\n *\n * @example\n * // Represent 18 September 2019 in ISO 8601 format, date only:\n * const result = formatISO(new Date(2019, 8, 18, 19, 0, 52), { representation: 'date' })\n * //=> '2019-09-18'\n *\n * @example\n * // Represent 18 September 2019 in ISO 8601 format, time only (local time zone is UTC):\n * const result = formatISO(new Date(2019, 8, 18, 19, 0, 52), { representation: 'time' })\n * //=> '19:00:52Z'\n */\nexport function formatISO(date, options) {\n const date_ = toDate(date, options?.in);\n\n if (isNaN(+date_)) {\n throw new RangeError(\"Invalid time value\");\n }\n\n const format = options?.format ?? \"extended\";\n const representation = options?.representation ?? \"complete\";\n\n let result = \"\";\n let tzOffset = \"\";\n\n const dateDelimiter = format === \"extended\" ? \"-\" : \"\";\n const timeDelimiter = format === \"extended\" ? \":\" : \"\";\n\n // Representation is either 'date' or 'complete'\n if (representation !== \"time\") {\n const day = addLeadingZeros(date_.getDate(), 2);\n const month = addLeadingZeros(date_.getMonth() + 1, 2);\n const year = addLeadingZeros(date_.getFullYear(), 4);\n\n // yyyyMMdd or yyyy-MM-dd.\n result = `${year}${dateDelimiter}${month}${dateDelimiter}${day}`;\n }\n\n // Representation is either 'time' or 'complete'\n if (representation !== \"date\") {\n // Add the timezone.\n const offset = date_.getTimezoneOffset();\n\n if (offset !== 0) {\n const absoluteOffset = Math.abs(offset);\n const hourOffset = addLeadingZeros(Math.trunc(absoluteOffset / 60), 2);\n const minuteOffset = addLeadingZeros(absoluteOffset % 60, 2);\n // If less than 0, the sign is +, because it is ahead of time.\n const sign = offset < 0 ? \"+\" : \"-\";\n\n tzOffset = `${sign}${hourOffset}:${minuteOffset}`;\n } else {\n tzOffset = \"Z\";\n }\n\n const hour = addLeadingZeros(date_.getHours(), 2);\n const minute = addLeadingZeros(date_.getMinutes(), 2);\n const second = addLeadingZeros(date_.getSeconds(), 2);\n\n // If there's also date, separate it with time with 'T'\n const separator = result === \"\" ? \"\" : \"T\";\n\n // Creates a time string consisting of hour, minute, and second, separated by delimiters, if defined.\n const time = [hour, minute, second].join(timeDelimiter);\n\n // HHmmss or HH:mm:ss.\n result = `${result}${separator}${time}${tzOffset}`;\n }\n\n return result;\n}\n\n// Fallback for modularized imports:\nexport default formatISO;\n", "import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getDate} function options.\n */\n\n/**\n * @name getDate\n * @category Day Helpers\n * @summary Get the day of the month of the given date.\n *\n * @description\n * Get the day of the month of the given date.\n *\n * @param date - The given date\n * @param options - An object with options.\n *\n * @returns The day of month\n *\n * @example\n * // Which day of the month is 29 February 2012?\n * const result = getDate(new Date(2012, 1, 29))\n * //=> 29\n */\nexport function getDate(date, options) {\n return toDate(date, options?.in).getDate();\n}\n\n// Fallback for modularized imports:\nexport default getDate;\n", "import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getDay} function options.\n */\n\n/**\n * @name getDay\n * @category Weekday Helpers\n * @summary Get the day of the week of the given date.\n *\n * @description\n * Get the day of the week of the given date.\n *\n * @param date - The given date\n * @param options - The options\n *\n * @returns The day of week, 0 represents Sunday\n *\n * @example\n * // Which day of the week is 29 February 2012?\n * const result = getDay(new Date(2012, 1, 29))\n * //=> 3\n */\nexport function getDay(date, options) {\n return toDate(date, options?.in).getDay();\n}\n\n// Fallback for modularized imports:\nexport default getDay;\n", "import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { getDate } from \"./getDate.js\";\nimport { getDay } from \"./getDay.js\";\nimport { startOfMonth } from \"./startOfMonth.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getWeekOfMonth} function options.\n */\n\n/**\n * @name getWeekOfMonth\n * @category Week Helpers\n * @summary Get the week of the month of the given date.\n *\n * @description\n * Get the week of the month of the given date.\n *\n * @param date - The given date\n * @param options - An object with options.\n *\n * @returns The week of month\n *\n * @example\n * // Which week of the month is 9 November 2017?\n * const result = getWeekOfMonth(new Date(2017, 10, 9))\n * //=> 2\n */\nexport function getWeekOfMonth(date, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const currentDayOfMonth = getDate(toDate(date, options?.in));\n if (isNaN(currentDayOfMonth)) return NaN;\n\n const startWeekDay = getDay(startOfMonth(date, options));\n\n let lastDayOfFirstWeek = weekStartsOn - startWeekDay;\n if (lastDayOfFirstWeek <= 0) lastDayOfFirstWeek += 7;\n\n const remainingDaysAfterFirstWeek = currentDayOfMonth - lastDayOfFirstWeek;\n return Math.ceil(remainingDaysAfterFirstWeek / 7) + 1;\n}\n\n// Fallback for modularized imports:\nexport default getWeekOfMonth;\n", "import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link lastDayOfMonth} function options.\n */\n\n/**\n * @name lastDayOfMonth\n * @category Month Helpers\n * @summary Return the last day of a month for the given date.\n *\n * @description\n * Return the last day of a month for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The last day of a month\n *\n * @example\n * // The last day of a month for 2 September 2014 11:55:00:\n * const result = lastDayOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 00:00:00\n */\nexport function lastDayOfMonth(date, options) {\n const _date = toDate(date, options?.in);\n const month = _date.getMonth();\n _date.setFullYear(_date.getFullYear(), month + 1, 0);\n _date.setHours(0, 0, 0, 0);\n return toDate(_date, options?.in);\n}\n\n// Fallback for modularized imports:\nexport default lastDayOfMonth;\n", "import { normalizeDates } from \"./_lib/normalizeDates.js\";\n\n/**\n * The {@link isSameMonth} function options.\n */\n\n/**\n * @name isSameMonth\n * @category Month Helpers\n * @summary Are the given dates in the same month (and year)?\n *\n * @description\n * Are the given dates in the same month (and year)?\n *\n * @param laterDate - The first date to check\n * @param earlierDate - The second date to check\n * @param options - An object with options\n *\n * @returns The dates are in the same month (and year)\n *\n * @example\n * // Are 2 September 2014 and 25 September 2014 in the same month?\n * const result = isSameMonth(new Date(2014, 8, 2), new Date(2014, 8, 25))\n * //=> true\n *\n * @example\n * // Are 2 September 2014 and 25 September 2015 in the same month?\n * const result = isSameMonth(new Date(2014, 8, 2), new Date(2015, 8, 25))\n * //=> false\n */\nexport function isSameMonth(laterDate, earlierDate, options) {\n const [laterDate_, earlierDate_] = normalizeDates(\n options?.in,\n laterDate,\n earlierDate,\n );\n return (\n laterDate_.getFullYear() === earlierDate_.getFullYear() &&\n laterDate_.getMonth() === earlierDate_.getMonth()\n );\n}\n\n// Fallback for modularized imports:\nexport default isSameMonth;\n", "import { constructFrom } from \"./constructFrom.js\";\nimport { constructNow } from \"./constructNow.js\";\nimport { isSameDay } from \"./isSameDay.js\";\n\n/**\n * The {@link isToday} function options.\n */\n\n/**\n * @name isToday\n * @category Day Helpers\n * @summary Is the given date today?\n * @pure false\n *\n * @description\n * Is the given date today?\n *\n * @param date - The date to check\n * @param options - An object with options\n *\n * @returns The date is today\n *\n * @example\n * // If today is 6 October 2014, is 6 October 14:00:00 today?\n * const result = isToday(new Date(2014, 9, 6, 14, 0))\n * //=> true\n */\nexport function isToday(date, options) {\n return isSameDay(\n constructFrom(options?.in || date, date),\n constructNow(options?.in || date),\n );\n}\n\n// Fallback for modularized imports:\nexport default isToday;\n", "import { addDays } from \"./addDays.js\";\n\n/**\n * The {@link subDays} function options.\n */\n\n/**\n * @name subDays\n * @category Day Helpers\n * @summary Subtract the specified number of days from the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of days to be subtracted.\n * @param options - An object with options\n *\n * @returns The new date with the days subtracted\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 */\nexport function subDays(date, amount, options) {\n return addDays(date, -amount, options);\n}\n\n// Fallback for modularized imports:\nexport default subDays;\n", "import { startOfDay } from \"./startOfDay.js\";\n\n/**\n * The {@link startOfToday} function options.\n */\n\n/**\n * @name startOfToday\n * @category Day Helpers\n * @summary Return the start of today.\n * @pure false\n *\n * @description\n * Return the start of today.\n *\n * @typeParam ContextDate - The `Date` type of the context function.\n *\n * @param options - An object with options\n *\n * @returns The start of today\n *\n * @example\n * // If today is 6 October 2014:\n * const result = startOfToday()\n * //=> Mon Oct 6 2014 00:00:00\n */\nexport function startOfToday(options) {\n return startOfDay(Date.now(), options);\n}\n\n// Fallback for modularized imports:\nexport default startOfToday;\n", "import { addMonths } from \"./addMonths.js\";\n\n/**\n * The subMonths function options.\n */\n\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 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of months to be subtracted.\n * @param options - An object with options\n *\n * @returns The new date with the months subtracted\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 */\nexport function subMonths(date, amount, options) {\n return addMonths(date, -amount, options);\n}\n\n// Fallback for modularized imports:\nexport default subMonths;\n", "const formatDistanceLocale = {\n lessThanXSeconds: {\n one: \"mindre end \u00E9t sekund\",\n other: \"mindre end {{count}} sekunder\",\n },\n\n xSeconds: {\n one: \"1 sekund\",\n other: \"{{count}} sekunder\",\n },\n\n halfAMinute: \"\u00E9t halvt minut\",\n\n lessThanXMinutes: {\n one: \"mindre end \u00E9t minut\",\n other: \"mindre end {{count}} minutter\",\n },\n\n xMinutes: {\n one: \"1 minut\",\n other: \"{{count}} minutter\",\n },\n\n aboutXHours: {\n one: \"cirka 1 time\",\n other: \"cirka {{count}} timer\",\n },\n\n xHours: {\n one: \"1 time\",\n other: \"{{count}} timer\",\n },\n\n xDays: {\n one: \"1 dag\",\n other: \"{{count}} dage\",\n },\n\n aboutXWeeks: {\n one: \"cirka 1 uge\",\n other: \"cirka {{count}} uger\",\n },\n\n xWeeks: {\n one: \"1 uge\",\n other: \"{{count}} uger\",\n },\n\n aboutXMonths: {\n one: \"cirka 1 m\u00E5ned\",\n other: \"cirka {{count}} m\u00E5neder\",\n },\n\n xMonths: {\n one: \"1 m\u00E5ned\",\n other: \"{{count}} m\u00E5neder\",\n },\n\n aboutXYears: {\n one: \"cirka 1 \u00E5r\",\n other: \"cirka {{count}} \u00E5r\",\n },\n\n xYears: {\n one: \"1 \u00E5r\",\n other: \"{{count}} \u00E5r\",\n },\n\n overXYears: {\n one: \"over 1 \u00E5r\",\n other: \"over {{count}} \u00E5r\",\n },\n\n almostXYears: {\n one: \"n\u00E6sten 1 \u00E5r\",\n other: \"n\u00E6sten {{count}} \u00E5r\",\n },\n};\n\nexport const formatDistance = (token, count, options) => {\n let result;\n\n const tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === \"string\") {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace(\"{{count}}\", String(count));\n }\n\n if (options?.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return \"om \" + result;\n } else {\n return result + \" siden\";\n }\n }\n\n return result;\n};\n", "import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n full: \"EEEE 'den' d. MMMM y\",\n long: \"d. MMMM y\",\n medium: \"d. MMM y\",\n short: \"dd/MM/y\",\n};\n\nconst timeFormats = {\n full: \"HH:mm:ss zzzz\",\n long: \"HH:mm:ss z\",\n medium: \"HH:mm:ss\",\n short: \"HH:mm\",\n};\n\nconst dateTimeFormats = {\n full: \"{{date}} 'kl'. {{time}}\",\n long: \"{{date}} 'kl'. {{time}}\",\n medium: \"{{date}} {{time}}\",\n short: \"{{date}} {{time}}\",\n};\n\nexport const formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n};\n", "const formatRelativeLocale = {\n lastWeek: \"'sidste' eeee 'kl.' p\",\n yesterday: \"'i g\u00E5r kl.' p\",\n today: \"'i dag kl.' p\",\n tomorrow: \"'i morgen kl.' p\",\n nextWeek: \"'p\u00E5' eeee 'kl.' p\",\n other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n formatRelativeLocale[token];\n", "import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n narrow: [\"fvt\", \"vt\"],\n abbreviated: [\"f.v.t.\", \"v.t.\"],\n wide: [\"f\u00F8r vesterlandsk tidsregning\", \"vesterlandsk tidsregning\"],\n};\n\nconst quarterValues = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"1. kvt.\", \"2. kvt.\", \"3. kvt.\", \"4. kvt.\"],\n wide: [\"1. kvartal\", \"2. kvartal\", \"3. kvartal\", \"4. kvartal\"],\n};\n\nconst monthValues = {\n narrow: [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n abbreviated: [\n \"jan.\",\n \"feb.\",\n \"mar.\",\n \"apr.\",\n \"maj\",\n \"jun.\",\n \"jul.\",\n \"aug.\",\n \"sep.\",\n \"okt.\",\n \"nov.\",\n \"dec.\",\n ],\n\n wide: [\n \"januar\",\n \"februar\",\n \"marts\",\n \"april\",\n \"maj\",\n \"juni\",\n \"juli\",\n \"august\",\n \"september\",\n \"oktober\",\n \"november\",\n \"december\",\n ],\n};\n\n// Note that 'Days - abbreviated - Formatting' has periods at the end.\n// https://www.unicode.org/cldr/charts/32/summary/da.html#1760\n// This makes grammatical sense in danish, as most abbreviations have periods.\nconst dayValues = {\n narrow: [\"S\", \"M\", \"T\", \"O\", \"T\", \"F\", \"L\"],\n short: [\"s\u00F8\", \"ma\", \"ti\", \"on\", \"to\", \"fr\", \"l\u00F8\"],\n abbreviated: [\"s\u00F8n.\", \"man.\", \"tir.\", \"ons.\", \"tor.\", \"fre.\", \"l\u00F8r.\"],\n\n wide: [\n \"s\u00F8ndag\",\n \"mandag\",\n \"tirsdag\",\n \"onsdag\",\n \"torsdag\",\n \"fredag\",\n \"l\u00F8rdag\",\n ],\n};\n\nconst dayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"midnat\",\n noon: \"middag\",\n morning: \"morgen\",\n afternoon: \"eftermiddag\",\n evening: \"aften\",\n night: \"nat\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnat\",\n noon: \"middag\",\n morning: \"morgen\",\n afternoon: \"eftermiddag\",\n evening: \"aften\",\n night: \"nat\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnat\",\n noon: \"middag\",\n morning: \"morgen\",\n afternoon: \"eftermiddag\",\n evening: \"aften\",\n night: \"nat\",\n },\n};\n\nconst formattingDayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"midnat\",\n noon: \"middag\",\n morning: \"om morgenen\",\n afternoon: \"om eftermiddagen\",\n evening: \"om aftenen\",\n night: \"om natten\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnat\",\n noon: \"middag\",\n morning: \"om morgenen\",\n afternoon: \"om eftermiddagen\",\n evening: \"om aftenen\",\n night: \"om natten\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnat\",\n noon: \"middag\",\n morning: \"om morgenen\",\n afternoon: \"om eftermiddagen\",\n evening: \"om aftenen\",\n night: \"om natten\",\n },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n const number = Number(dirtyNumber);\n return number + \".\";\n};\n\nexport const localize = {\n ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: \"wide\",\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: \"wide\",\n argumentCallback: (quarter) => quarter - 1,\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: \"wide\",\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: \"wide\",\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: \"wide\",\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: \"wide\",\n }),\n};\n", "import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(\\.)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n narrow: /^(fKr|fvt|eKr|vt)/i,\n abbreviated: /^(f\\.Kr\\.?|f\\.v\\.t\\.?|e\\.Kr\\.?|v\\.t\\.)/i,\n wide: /^(f.Kr.|f\u00F8r vesterlandsk tidsregning|e.Kr.|vesterlandsk tidsregning)/i,\n};\nconst parseEraPatterns = {\n any: [/^f/i, /^(v|e)/i],\n};\n\nconst matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^[1234]. kvt\\./i,\n wide: /^[1234]\\.? kvartal/i,\n};\nconst parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan.|feb.|mar.|apr.|maj|jun.|jul.|aug.|sep.|okt.|nov.|dec.)/i,\n wide: /^(januar|februar|marts|april|maj|juni|juli|august|september|oktober|november|december)/i,\n};\nconst parseMonthPatterns = {\n narrow: [\n /^j/i,\n /^f/i,\n /^m/i,\n /^a/i,\n /^m/i,\n /^j/i,\n /^j/i,\n /^a/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n\n any: [\n /^ja/i,\n /^f/i,\n /^mar/i,\n /^ap/i,\n /^maj/i,\n /^jun/i,\n /^jul/i,\n /^au/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n};\n\nconst matchDayPatterns = {\n narrow: /^[smtofl]/i,\n short: /^(s\u00F8n.|man.|tir.|ons.|tor.|fre.|l\u00F8r.)/i,\n abbreviated: /^(s\u00F8n|man|tir|ons|tor|fre|l\u00F8r)/i,\n wide: /^(s\u00F8ndag|mandag|tirsdag|onsdag|torsdag|fredag|l\u00F8rdag)/i,\n};\nconst parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^o/i, /^t/i, /^f/i, /^l/i],\n any: [/^s/i, /^m/i, /^ti/i, /^o/i, /^to/i, /^f/i, /^l/i],\n};\n\nconst matchDayPeriodPatterns = {\n narrow: /^(a|p|midnat|middag|(om) (morgenen|eftermiddagen|aftenen|natten))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnat|middag|(om) (morgenen|eftermiddagen|aftenen|natten))/i,\n};\nconst parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /midnat/i,\n noon: /middag/i,\n morning: /morgen/i,\n afternoon: /eftermiddag/i,\n evening: /aften/i,\n night: /nat/i,\n },\n};\n\nexport const match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: (value) => parseInt(value, 10),\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseEraPatterns,\n defaultParseWidth: \"any\",\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: \"any\",\n valueCallback: (index) => index + 1,\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: \"any\",\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPatterns,\n defaultParseWidth: \"any\",\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: \"any\",\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: \"any\",\n }),\n};\n", "import { formatDistance } from \"./da/_lib/formatDistance.js\";\nimport { formatLong } from \"./da/_lib/formatLong.js\";\nimport { formatRelative } from \"./da/_lib/formatRelative.js\";\nimport { localize } from \"./da/_lib/localize.js\";\nimport { match } from \"./da/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Danish locale.\n * @language Danish\n * @iso-639-2 dan\n * @author Mathias W\u00F8bbe [@MathiasKandelborg](https://github.com/MathiasKandelborg)\n * @author Anders B. Hansen [@Andersbiha](https://github.com/Andersbiha)\n * @author [@kgram](https://github.com/kgram)\n * @author [@stefanbugge](https://github.com/stefanbugge)\n */\nexport const da = {\n code: \"da\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 1 /* Monday */,\n firstWeekContainsDate: 4,\n },\n};\n\n// Fallback for modularized imports:\nexport default da;\n", "import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n full: \"EEEE, d MMMM yyyy\",\n long: \"d MMMM yyyy\",\n medium: \"d MMM yyyy\",\n short: \"dd/MM/yyyy\",\n};\n\nconst timeFormats = {\n full: \"HH:mm:ss zzzz\",\n long: \"HH:mm:ss z\",\n medium: \"HH:mm:ss\",\n short: \"HH:mm\",\n};\n\nconst dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: \"{{date}}, {{time}}\",\n short: \"{{date}}, {{time}}\",\n};\n\nexport const formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n};\n", "import { formatDistance } from \"./en-US/_lib/formatDistance.js\";\nimport { formatRelative } from \"./en-US/_lib/formatRelative.js\";\nimport { localize } from \"./en-US/_lib/localize.js\";\nimport { match } from \"./en-US/_lib/match.js\";\n\nimport { formatLong } from \"./en-GB/_lib/formatLong.js\";\n\n/**\n * @category Locales\n * @summary English locale (United Kingdom).\n * @language English\n * @iso-639-2 eng\n * @author Alex [@glintik](https://github.com/glintik)\n */\nexport const enGB = {\n code: \"en-GB\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 1 /* Monday */,\n firstWeekContainsDate: 4,\n },\n};\n\n// Fallback for modularized imports:\nexport default enGB;\n", "function futureSeconds(text) {\n return text.replace(/sekuntia?/, \"sekunnin\");\n}\n\nfunction futureMinutes(text) {\n return text.replace(/minuuttia?/, \"minuutin\");\n}\n\nfunction futureHours(text) {\n return text.replace(/tuntia?/, \"tunnin\");\n}\n\nfunction futureDays(text) {\n return text.replace(/p\u00E4iv\u00E4\u00E4?/, \"p\u00E4iv\u00E4n\");\n}\n\nfunction futureWeeks(text) {\n return text.replace(/(viikko|viikkoa)/, \"viikon\");\n}\n\nfunction futureMonths(text) {\n return text.replace(/(kuukausi|kuukautta)/, \"kuukauden\");\n}\n\nfunction futureYears(text) {\n return text.replace(/(vuosi|vuotta)/, \"vuoden\");\n}\n\nconst formatDistanceLocale = {\n lessThanXSeconds: {\n one: \"alle sekunti\",\n other: \"alle {{count}} sekuntia\",\n futureTense: futureSeconds,\n },\n\n xSeconds: {\n one: \"sekunti\",\n other: \"{{count}} sekuntia\",\n futureTense: futureSeconds,\n },\n\n halfAMinute: {\n one: \"puoli minuuttia\",\n other: \"puoli minuuttia\",\n futureTense: (_text) => \"puolen minuutin\",\n },\n\n lessThanXMinutes: {\n one: \"alle minuutti\",\n other: \"alle {{count}} minuuttia\",\n futureTense: futureMinutes,\n },\n\n xMinutes: {\n one: \"minuutti\",\n other: \"{{count}} minuuttia\",\n futureTense: futureMinutes,\n },\n\n aboutXHours: {\n one: \"noin tunti\",\n other: \"noin {{count}} tuntia\",\n futureTense: futureHours,\n },\n\n xHours: {\n one: \"tunti\",\n other: \"{{count}} tuntia\",\n futureTense: futureHours,\n },\n\n xDays: {\n one: \"p\u00E4iv\u00E4\",\n other: \"{{count}} p\u00E4iv\u00E4\u00E4\",\n futureTense: futureDays,\n },\n\n aboutXWeeks: {\n one: \"noin viikko\",\n other: \"noin {{count}} viikkoa\",\n futureTense: futureWeeks,\n },\n\n xWeeks: {\n one: \"viikko\",\n other: \"{{count}} viikkoa\",\n futureTense: futureWeeks,\n },\n\n aboutXMonths: {\n one: \"noin kuukausi\",\n other: \"noin {{count}} kuukautta\",\n futureTense: futureMonths,\n },\n\n xMonths: {\n one: \"kuukausi\",\n other: \"{{count}} kuukautta\",\n futureTense: futureMonths,\n },\n\n aboutXYears: {\n one: \"noin vuosi\",\n other: \"noin {{count}} vuotta\",\n futureTense: futureYears,\n },\n\n xYears: {\n one: \"vuosi\",\n other: \"{{count}} vuotta\",\n futureTense: futureYears,\n },\n\n overXYears: {\n one: \"yli vuosi\",\n other: \"yli {{count}} vuotta\",\n futureTense: futureYears,\n },\n\n almostXYears: {\n one: \"l\u00E4hes vuosi\",\n other: \"l\u00E4hes {{count}} vuotta\",\n futureTense: futureYears,\n },\n};\n\nexport const formatDistance = (token, count, options) => {\n const tokenValue = formatDistanceLocale[token];\n const result =\n count === 1\n ? tokenValue.one\n : tokenValue.other.replace(\"{{count}}\", String(count));\n\n if (options?.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return tokenValue.futureTense(result) + \" kuluttua\";\n } else {\n return result + \" sitten\";\n }\n }\n\n return result;\n};\n", "import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n full: \"eeee d. MMMM y\",\n long: \"d. MMMM y\",\n medium: \"d. MMM y\",\n short: \"d.M.y\",\n};\n\nconst timeFormats = {\n full: \"HH.mm.ss zzzz\",\n long: \"HH.mm.ss z\",\n medium: \"HH.mm.ss\",\n short: \"HH.mm\",\n};\n\nconst dateTimeFormats = {\n full: \"{{date}} 'klo' {{time}}\",\n long: \"{{date}} 'klo' {{time}}\",\n medium: \"{{date}} {{time}}\",\n short: \"{{date}} {{time}}\",\n};\n\nexport const formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n};\n", "const formatRelativeLocale = {\n lastWeek: \"'viime' eeee 'klo' p\",\n yesterday: \"'eilen klo' p\",\n today: \"'t\u00E4n\u00E4\u00E4n klo' p\",\n tomorrow: \"'huomenna klo' p\",\n nextWeek: \"'ensi' eeee 'klo' p\",\n other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n formatRelativeLocale[token];\n", "import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n narrow: [\"eaa.\", \"jaa.\"],\n abbreviated: [\"eaa.\", \"jaa.\"],\n wide: [\"ennen ajanlaskun alkua\", \"j\u00E4lkeen ajanlaskun alun\"],\n};\n\nconst quarterValues = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n wide: [\"1. kvartaali\", \"2. kvartaali\", \"3. kvartaali\", \"4. kvartaali\"],\n};\n\nconst monthValues = {\n narrow: [\"T\", \"H\", \"M\", \"H\", \"T\", \"K\", \"H\", \"E\", \"S\", \"L\", \"M\", \"J\"],\n abbreviated: [\n \"tammi\",\n \"helmi\",\n \"maalis\",\n \"huhti\",\n \"touko\",\n \"kes\u00E4\",\n \"hein\u00E4\",\n \"elo\",\n \"syys\",\n \"loka\",\n \"marras\",\n \"joulu\",\n ],\n\n wide: [\n \"tammikuu\",\n \"helmikuu\",\n \"maaliskuu\",\n \"huhtikuu\",\n \"toukokuu\",\n \"kes\u00E4kuu\",\n \"hein\u00E4kuu\",\n \"elokuu\",\n \"syyskuu\",\n \"lokakuu\",\n \"marraskuu\",\n \"joulukuu\",\n ],\n};\n\nconst formattingMonthValues = {\n narrow: monthValues.narrow,\n abbreviated: monthValues.abbreviated,\n wide: [\n \"tammikuuta\",\n \"helmikuuta\",\n \"maaliskuuta\",\n \"huhtikuuta\",\n \"toukokuuta\",\n \"kes\u00E4kuuta\",\n \"hein\u00E4kuuta\",\n \"elokuuta\",\n \"syyskuuta\",\n \"lokakuuta\",\n \"marraskuuta\",\n \"joulukuuta\",\n ],\n};\n\nconst dayValues = {\n narrow: [\"S\", \"M\", \"T\", \"K\", \"T\", \"P\", \"L\"],\n short: [\"su\", \"ma\", \"ti\", \"ke\", \"to\", \"pe\", \"la\"],\n abbreviated: [\"sunn.\", \"maan.\", \"tiis.\", \"kesk.\", \"torst.\", \"perj.\", \"la\"],\n\n wide: [\n \"sunnuntai\",\n \"maanantai\",\n \"tiistai\",\n \"keskiviikko\",\n \"torstai\",\n \"perjantai\",\n \"lauantai\",\n ],\n};\n\nconst formattingDayValues = {\n narrow: dayValues.narrow,\n short: dayValues.short,\n abbreviated: dayValues.abbreviated,\n wide: [\n \"sunnuntaina\",\n \"maanantaina\",\n \"tiistaina\",\n \"keskiviikkona\",\n \"torstaina\",\n \"perjantaina\",\n \"lauantaina\",\n ],\n};\n\nconst dayPeriodValues = {\n narrow: {\n am: \"ap\",\n pm: \"ip\",\n midnight: \"keskiy\u00F6\",\n noon: \"keskip\u00E4iv\u00E4\",\n morning: \"ap\",\n afternoon: \"ip\",\n evening: \"illalla\",\n night: \"y\u00F6ll\u00E4\",\n },\n abbreviated: {\n am: \"ap\",\n pm: \"ip\",\n midnight: \"keskiy\u00F6\",\n noon: \"keskip\u00E4iv\u00E4\",\n morning: \"ap\",\n afternoon: \"ip\",\n evening: \"illalla\",\n night: \"y\u00F6ll\u00E4\",\n },\n wide: {\n am: \"ap\",\n pm: \"ip\",\n midnight: \"keskiy\u00F6ll\u00E4\",\n noon: \"keskip\u00E4iv\u00E4ll\u00E4\",\n morning: \"aamup\u00E4iv\u00E4ll\u00E4\",\n afternoon: \"iltap\u00E4iv\u00E4ll\u00E4\",\n evening: \"illalla\",\n night: \"y\u00F6ll\u00E4\",\n },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n const number = Number(dirtyNumber);\n return number + \".\";\n};\n\nexport const localize = {\n ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: \"wide\",\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: \"wide\",\n argumentCallback: (quarter) => quarter - 1,\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: \"wide\",\n formattingValues: formattingMonthValues,\n defaultFormattingWidth: \"wide\",\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: \"wide\",\n formattingValues: formattingDayValues,\n defaultFormattingWidth: \"wide\",\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: \"wide\",\n }),\n};\n", "import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(\\.)/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n narrow: /^(e|j)/i,\n abbreviated: /^(eaa.|jaa.)/i,\n wide: /^(ennen ajanlaskun alkua|j\u00E4lkeen ajanlaskun alun)/i,\n};\nconst parseEraPatterns = {\n any: [/^e/i, /^j/i],\n};\n\nconst matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234]\\.? kvartaali/i,\n};\nconst parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n narrow: /^[thmkeslj]/i,\n abbreviated:\n /^(tammi|helmi|maalis|huhti|touko|kes\u00E4|hein\u00E4|elo|syys|loka|marras|joulu)/i,\n wide: /^(tammikuu|helmikuu|maaliskuu|huhtikuu|toukokuu|kes\u00E4kuu|hein\u00E4kuu|elokuu|syyskuu|lokakuu|marraskuu|joulukuu)(ta)?/i,\n};\nconst parseMonthPatterns = {\n narrow: [\n /^t/i,\n /^h/i,\n /^m/i,\n /^h/i,\n /^t/i,\n /^k/i,\n /^h/i,\n /^e/i,\n /^s/i,\n /^l/i,\n /^m/i,\n /^j/i,\n ],\n\n any: [\n /^ta/i,\n /^hel/i,\n /^maa/i,\n /^hu/i,\n /^to/i,\n /^k/i,\n /^hei/i,\n /^e/i,\n /^s/i,\n /^l/i,\n /^mar/i,\n /^j/i,\n ],\n};\n\nconst matchDayPatterns = {\n narrow: /^[smtkpl]/i,\n short: /^(su|ma|ti|ke|to|pe|la)/i,\n abbreviated: /^(sunn.|maan.|tiis.|kesk.|torst.|perj.|la)/i,\n wide: /^(sunnuntai|maanantai|tiistai|keskiviikko|torstai|perjantai|lauantai)(na)?/i,\n};\nconst parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^k/i, /^t/i, /^p/i, /^l/i],\n any: [/^s/i, /^m/i, /^ti/i, /^k/i, /^to/i, /^p/i, /^l/i],\n};\n\nconst matchDayPeriodPatterns = {\n narrow:\n /^(ap|ip|keskiy\u00F6|keskip\u00E4iv\u00E4|aamup\u00E4iv\u00E4ll\u00E4|iltap\u00E4iv\u00E4ll\u00E4|illalla|y\u00F6ll\u00E4)/i,\n any: /^(ap|ip|keskiy\u00F6ll\u00E4|keskip\u00E4iv\u00E4ll\u00E4|aamup\u00E4iv\u00E4ll\u00E4|iltap\u00E4iv\u00E4ll\u00E4|illalla|y\u00F6ll\u00E4)/i,\n};\nconst parseDayPeriodPatterns = {\n any: {\n am: /^ap/i,\n pm: /^ip/i,\n midnight: /^keskiy\u00F6/i,\n noon: /^keskip\u00E4iv\u00E4/i,\n morning: /aamup\u00E4iv\u00E4ll\u00E4/i,\n afternoon: /iltap\u00E4iv\u00E4ll\u00E4/i,\n evening: /illalla/i,\n night: /y\u00F6ll\u00E4/i,\n },\n};\n\nexport const match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: (value) => parseInt(value, 10),\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseEraPatterns,\n defaultParseWidth: \"any\",\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: \"any\",\n valueCallback: (index) => index + 1,\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: \"any\",\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPatterns,\n defaultParseWidth: \"any\",\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: \"any\",\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: \"any\",\n }),\n};\n", "import { formatDistance } from \"./fi/_lib/formatDistance.js\";\nimport { formatLong } from \"./fi/_lib/formatLong.js\";\nimport { formatRelative } from \"./fi/_lib/formatRelative.js\";\nimport { localize } from \"./fi/_lib/localize.js\";\nimport { match } from \"./fi/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Finnish locale.\n * @language Finnish\n * @iso-639-2 fin\n * @author Pyry-Samuli Lahti [@Pyppe](https://github.com/Pyppe)\n * @author Edo Rivai [@mikolajgrzyb](https://github.com/mikolajgrzyb)\n * @author Samu Juvonen [@sjuvonen](https://github.com/sjuvonen)\n */\nexport const fi = {\n code: \"fi\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 1 /* Monday */,\n firstWeekContainsDate: 4,\n },\n};\n\n// Fallback for modularized imports:\nexport default fi;\n", "const formatDistanceLocale = {\n lessThanXSeconds: {\n one: \"mindre enn ett sekund\",\n other: \"mindre enn {{count}} sekunder\",\n },\n\n xSeconds: {\n one: \"ett sekund\",\n other: \"{{count}} sekunder\",\n },\n\n halfAMinute: \"et halvt minutt\",\n\n lessThanXMinutes: {\n one: \"mindre enn ett minutt\",\n other: \"mindre enn {{count}} minutter\",\n },\n\n xMinutes: {\n one: \"ett minutt\",\n other: \"{{count}} minutter\",\n },\n\n aboutXHours: {\n one: \"omtrent en time\",\n other: \"omtrent {{count}} timer\",\n },\n\n xHours: {\n one: \"en time\",\n other: \"{{count}} timer\",\n },\n\n xDays: {\n one: \"en dag\",\n other: \"{{count}} dager\",\n },\n\n aboutXWeeks: {\n one: \"omtrent en uke\",\n other: \"omtrent {{count}} uker\",\n },\n\n xWeeks: {\n one: \"en uke\",\n other: \"{{count}} uker\",\n },\n\n aboutXMonths: {\n one: \"omtrent en m\u00E5ned\",\n other: \"omtrent {{count}} m\u00E5neder\",\n },\n\n xMonths: {\n one: \"en m\u00E5ned\",\n other: \"{{count}} m\u00E5neder\",\n },\n\n aboutXYears: {\n one: \"omtrent ett \u00E5r\",\n other: \"omtrent {{count}} \u00E5r\",\n },\n\n xYears: {\n one: \"ett \u00E5r\",\n other: \"{{count}} \u00E5r\",\n },\n\n overXYears: {\n one: \"over ett \u00E5r\",\n other: \"over {{count}} \u00E5r\",\n },\n\n almostXYears: {\n one: \"nesten ett \u00E5r\",\n other: \"nesten {{count}} \u00E5r\",\n },\n};\n\nexport const formatDistance = (token, count, options) => {\n let result;\n\n const tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === \"string\") {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace(\"{{count}}\", String(count));\n }\n\n if (options?.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return \"om \" + result;\n } else {\n return result + \" siden\";\n }\n }\n\n return result;\n};\n", "import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n full: \"EEEE d. MMMM y\",\n long: \"d. MMMM y\",\n medium: \"d. MMM y\",\n short: \"dd.MM.y\",\n};\n\nconst timeFormats = {\n full: \"'kl'. HH:mm:ss zzzz\",\n long: \"HH:mm:ss z\",\n medium: \"HH:mm:ss\",\n short: \"HH:mm\",\n};\n\nconst dateTimeFormats = {\n full: \"{{date}} 'kl.' {{time}}\",\n long: \"{{date}} 'kl.' {{time}}\",\n medium: \"{{date}} {{time}}\",\n short: \"{{date}} {{time}}\",\n};\n\nexport const formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n};\n", "const formatRelativeLocale = {\n lastWeek: \"'forrige' eeee 'kl.' p\",\n yesterday: \"'i g\u00E5r kl.' p\",\n today: \"'i dag kl.' p\",\n tomorrow: \"'i morgen kl.' p\",\n nextWeek: \"EEEE 'kl.' p\",\n other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n formatRelativeLocale[token];\n", "import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n narrow: [\"f.Kr.\", \"e.Kr.\"],\n abbreviated: [\"f.Kr.\", \"e.Kr.\"],\n wide: [\"f\u00F8r Kristus\", \"etter Kristus\"],\n};\n\nconst quarterValues = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n wide: [\"1. kvartal\", \"2. kvartal\", \"3. kvartal\", \"4. kvartal\"],\n};\n\nconst monthValues = {\n narrow: [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n abbreviated: [\n \"jan.\",\n \"feb.\",\n \"mars\",\n \"apr.\",\n \"mai\",\n \"juni\",\n \"juli\",\n \"aug.\",\n \"sep.\",\n \"okt.\",\n \"nov.\",\n \"des.\",\n ],\n\n wide: [\n \"januar\",\n \"februar\",\n \"mars\",\n \"april\",\n \"mai\",\n \"juni\",\n \"juli\",\n \"august\",\n \"september\",\n \"oktober\",\n \"november\",\n \"desember\",\n ],\n};\n\nconst dayValues = {\n narrow: [\"S\", \"M\", \"T\", \"O\", \"T\", \"F\", \"L\"],\n short: [\"s\u00F8\", \"ma\", \"ti\", \"on\", \"to\", \"fr\", \"l\u00F8\"],\n abbreviated: [\"s\u00F8n\", \"man\", \"tir\", \"ons\", \"tor\", \"fre\", \"l\u00F8r\"],\n wide: [\n \"s\u00F8ndag\",\n \"mandag\",\n \"tirsdag\",\n \"onsdag\",\n \"torsdag\",\n \"fredag\",\n \"l\u00F8rdag\",\n ],\n};\n\nconst dayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"midnatt\",\n noon: \"middag\",\n morning: \"p\u00E5 morg.\",\n afternoon: \"p\u00E5 etterm.\",\n evening: \"p\u00E5 kvelden\",\n night: \"p\u00E5 natten\",\n },\n abbreviated: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnatt\",\n noon: \"middag\",\n morning: \"p\u00E5 morg.\",\n afternoon: \"p\u00E5 etterm.\",\n evening: \"p\u00E5 kvelden\",\n night: \"p\u00E5 natten\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnatt\",\n noon: \"middag\",\n morning: \"p\u00E5 morgenen\",\n afternoon: \"p\u00E5 ettermiddagen\",\n evening: \"p\u00E5 kvelden\",\n night: \"p\u00E5 natten\",\n },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n const number = Number(dirtyNumber);\n return number + \".\";\n};\n\nexport const localize = {\n ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: \"wide\",\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: \"wide\",\n argumentCallback: (quarter) => quarter - 1,\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: \"wide\",\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: \"wide\",\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: \"wide\",\n }),\n};\n", "import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)\\.?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n narrow: /^(f\\.? ?Kr\\.?|fvt\\.?|e\\.? ?Kr\\.?|evt\\.?)/i,\n abbreviated: /^(f\\.? ?Kr\\.?|fvt\\.?|e\\.? ?Kr\\.?|evt\\.?)/i,\n wide: /^(f\u00F8r Kristus|f\u00F8r v\u00E5r tid|etter Kristus|v\u00E5r tid)/i,\n};\nconst parseEraPatterns = {\n any: [/^f/i, /^e/i],\n};\n\nconst matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](\\.)? kvartal/i,\n};\nconst parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mars?|apr|mai|juni?|juli?|aug|sep|okt|nov|des)\\.?/i,\n wide: /^(januar|februar|mars|april|mai|juni|juli|august|september|oktober|november|desember)/i,\n};\nconst parseMonthPatterns = {\n narrow: [\n /^j/i,\n /^f/i,\n /^m/i,\n /^a/i,\n /^m/i,\n /^j/i,\n /^j/i,\n /^a/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n\n any: [\n /^ja/i,\n /^f/i,\n /^mar/i,\n /^ap/i,\n /^mai/i,\n /^jun/i,\n /^jul/i,\n /^aug/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n};\n\nconst matchDayPatterns = {\n narrow: /^[smtofl]/i,\n short: /^(s\u00F8|ma|ti|on|to|fr|l\u00F8)/i,\n abbreviated: /^(s\u00F8n|man|tir|ons|tor|fre|l\u00F8r)/i,\n wide: /^(s\u00F8ndag|mandag|tirsdag|onsdag|torsdag|fredag|l\u00F8rdag)/i,\n};\nconst parseDayPatterns = {\n any: [/^s/i, /^m/i, /^ti/i, /^o/i, /^to/i, /^f/i, /^l/i],\n};\n\nconst matchDayPeriodPatterns = {\n narrow:\n /^(midnatt|middag|(p\u00E5) (morgenen|ettermiddagen|kvelden|natten)|[ap])/i,\n any: /^([ap]\\.?\\s?m\\.?|midnatt|middag|(p\u00E5) (morgenen|ettermiddagen|kvelden|natten))/i,\n};\nconst parseDayPeriodPatterns = {\n any: {\n am: /^a(\\.?\\s?m\\.?)?$/i,\n pm: /^p(\\.?\\s?m\\.?)?$/i,\n midnight: /^midn/i,\n noon: /^midd/i,\n morning: /morgen/i,\n afternoon: /ettermiddag/i,\n evening: /kveld/i,\n night: /natt/i,\n },\n};\n\nexport const match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: (value) => parseInt(value, 10),\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseEraPatterns,\n defaultParseWidth: \"any\",\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: \"any\",\n valueCallback: (index) => index + 1,\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: \"any\",\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPatterns,\n defaultParseWidth: \"any\",\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: \"any\",\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: \"any\",\n }),\n};\n", "import { formatDistance } from \"./nb/_lib/formatDistance.js\";\nimport { formatLong } from \"./nb/_lib/formatLong.js\";\nimport { formatRelative } from \"./nb/_lib/formatRelative.js\";\nimport { localize } from \"./nb/_lib/localize.js\";\nimport { match } from \"./nb/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Norwegian Bokm\u00E5l locale.\n * @language Norwegian Bokm\u00E5l\n * @iso-639-2 nob\n * @author Hans-Kristian Koren [@Hanse](https://github.com/Hanse)\n * @author Mikolaj Grzyb [@mikolajgrzyb](https://github.com/mikolajgrzyb)\n * @author Dag Stuan [@dagstuan](https://github.com/dagstuan)\n */\nexport const nb = {\n code: \"nb\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 1 /* Monday */,\n firstWeekContainsDate: 4,\n },\n};\n\n// Fallback for modularized imports:\nexport default nb;\n", "const formatDistanceLocale = {\n lessThanXSeconds: {\n one: \"mindre \u00E4n en sekund\",\n other: \"mindre \u00E4n {{count}} sekunder\",\n },\n\n xSeconds: {\n one: \"en sekund\",\n other: \"{{count}} sekunder\",\n },\n\n halfAMinute: \"en halv minut\",\n\n lessThanXMinutes: {\n one: \"mindre \u00E4n en minut\",\n other: \"mindre \u00E4n {{count}} minuter\",\n },\n\n xMinutes: {\n one: \"en minut\",\n other: \"{{count}} minuter\",\n },\n\n aboutXHours: {\n one: \"ungef\u00E4r en timme\",\n other: \"ungef\u00E4r {{count}} timmar\",\n },\n\n xHours: {\n one: \"en timme\",\n other: \"{{count}} timmar\",\n },\n\n xDays: {\n one: \"en dag\",\n other: \"{{count}} dagar\",\n },\n\n aboutXWeeks: {\n one: \"ungef\u00E4r en vecka\",\n other: \"ungef\u00E4r {{count}} veckor\",\n },\n\n xWeeks: {\n one: \"en vecka\",\n other: \"{{count}} veckor\",\n },\n\n aboutXMonths: {\n one: \"ungef\u00E4r en m\u00E5nad\",\n other: \"ungef\u00E4r {{count}} m\u00E5nader\",\n },\n\n xMonths: {\n one: \"en m\u00E5nad\",\n other: \"{{count}} m\u00E5nader\",\n },\n\n aboutXYears: {\n one: \"ungef\u00E4r ett \u00E5r\",\n other: \"ungef\u00E4r {{count}} \u00E5r\",\n },\n\n xYears: {\n one: \"ett \u00E5r\",\n other: \"{{count}} \u00E5r\",\n },\n\n overXYears: {\n one: \"\u00F6ver ett \u00E5r\",\n other: \"\u00F6ver {{count}} \u00E5r\",\n },\n\n almostXYears: {\n one: \"n\u00E4stan ett \u00E5r\",\n other: \"n\u00E4stan {{count}} \u00E5r\",\n },\n};\n\nconst wordMapping = [\n \"noll\",\n \"en\",\n \"tv\u00E5\",\n \"tre\",\n \"fyra\",\n \"fem\",\n \"sex\",\n \"sju\",\n \"\u00E5tta\",\n \"nio\",\n \"tio\",\n \"elva\",\n \"tolv\",\n];\n\nexport const formatDistance = (token, count, options) => {\n let result;\n\n const tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === \"string\") {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace(\n \"{{count}}\",\n count < 13 ? wordMapping[count] : String(count),\n );\n }\n\n if (options?.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return \"om \" + result;\n } else {\n return result + \" sedan\";\n }\n }\n\n return result;\n};\n", "import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n full: \"EEEE d MMMM y\",\n long: \"d MMMM y\",\n medium: \"d MMM y\",\n short: \"y-MM-dd\",\n};\n\nconst timeFormats = {\n full: \"'kl'. HH:mm:ss zzzz\",\n long: \"HH:mm:ss z\",\n medium: \"HH:mm:ss\",\n short: \"HH:mm\",\n};\n\nconst dateTimeFormats = {\n full: \"{{date}} 'kl.' {{time}}\",\n long: \"{{date}} 'kl.' {{time}}\",\n medium: \"{{date}} {{time}}\",\n short: \"{{date}} {{time}}\",\n};\n\nexport const formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n};\n", "const formatRelativeLocale = {\n lastWeek: \"'i' EEEE's kl.' p\",\n yesterday: \"'ig\u00E5r kl.' p\",\n today: \"'idag kl.' p\",\n tomorrow: \"'imorgon kl.' p\",\n nextWeek: \"EEEE 'kl.' p\",\n other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n formatRelativeLocale[token];\n", "import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n narrow: [\"f.Kr.\", \"e.Kr.\"],\n abbreviated: [\"f.Kr.\", \"e.Kr.\"],\n wide: [\"f\u00F6re Kristus\", \"efter Kristus\"],\n};\n\nconst quarterValues = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n wide: [\"1:a kvartalet\", \"2:a kvartalet\", \"3:e kvartalet\", \"4:e kvartalet\"],\n};\n\nconst monthValues = {\n narrow: [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n abbreviated: [\n \"jan.\",\n \"feb.\",\n \"mars\",\n \"apr.\",\n \"maj\",\n \"juni\",\n \"juli\",\n \"aug.\",\n \"sep.\",\n \"okt.\",\n \"nov.\",\n \"dec.\",\n ],\n\n wide: [\n \"januari\",\n \"februari\",\n \"mars\",\n \"april\",\n \"maj\",\n \"juni\",\n \"juli\",\n \"augusti\",\n \"september\",\n \"oktober\",\n \"november\",\n \"december\",\n ],\n};\n\nconst dayValues = {\n narrow: [\"S\", \"M\", \"T\", \"O\", \"T\", \"F\", \"L\"],\n short: [\"s\u00F6\", \"m\u00E5\", \"ti\", \"on\", \"to\", \"fr\", \"l\u00F6\"],\n abbreviated: [\"s\u00F6n\", \"m\u00E5n\", \"tis\", \"ons\", \"tors\", \"fre\", \"l\u00F6r\"],\n wide: [\"s\u00F6ndag\", \"m\u00E5ndag\", \"tisdag\", \"onsdag\", \"torsdag\", \"fredag\", \"l\u00F6rdag\"],\n};\n\n// https://www.unicode.org/cldr/charts/32/summary/sv.html#1888\nconst dayPeriodValues = {\n narrow: {\n am: \"fm\",\n pm: \"em\",\n midnight: \"midnatt\",\n noon: \"middag\",\n morning: \"morg.\",\n afternoon: \"efterm.\",\n evening: \"kv\u00E4ll\",\n night: \"natt\",\n },\n abbreviated: {\n am: \"f.m.\",\n pm: \"e.m.\",\n midnight: \"midnatt\",\n noon: \"middag\",\n morning: \"morgon\",\n afternoon: \"efterm.\",\n evening: \"kv\u00E4ll\",\n night: \"natt\",\n },\n wide: {\n am: \"f\u00F6rmiddag\",\n pm: \"eftermiddag\",\n midnight: \"midnatt\",\n noon: \"middag\",\n morning: \"morgon\",\n afternoon: \"eftermiddag\",\n evening: \"kv\u00E4ll\",\n night: \"natt\",\n },\n};\n\nconst formattingDayPeriodValues = {\n narrow: {\n am: \"fm\",\n pm: \"em\",\n midnight: \"midnatt\",\n noon: \"middag\",\n morning: \"p\u00E5 morg.\",\n afternoon: \"p\u00E5 efterm.\",\n evening: \"p\u00E5 kv\u00E4llen\",\n night: \"p\u00E5 natten\",\n },\n abbreviated: {\n am: \"fm\",\n pm: \"em\",\n midnight: \"midnatt\",\n noon: \"middag\",\n morning: \"p\u00E5 morg.\",\n afternoon: \"p\u00E5 efterm.\",\n evening: \"p\u00E5 kv\u00E4llen\",\n night: \"p\u00E5 natten\",\n },\n wide: {\n am: \"fm\",\n pm: \"em\",\n midnight: \"midnatt\",\n noon: \"middag\",\n morning: \"p\u00E5 morgonen\",\n afternoon: \"p\u00E5 eftermiddagen\",\n evening: \"p\u00E5 kv\u00E4llen\",\n night: \"p\u00E5 natten\",\n },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n const number = Number(dirtyNumber);\n\n const rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n case 2:\n return number + \":a\";\n }\n }\n return number + \":e\";\n};\n\nexport const localize = {\n ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: \"wide\",\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: \"wide\",\n argumentCallback: (quarter) => quarter - 1,\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: \"wide\",\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: \"wide\",\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: \"wide\",\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: \"wide\",\n }),\n};\n", "import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(:a|:e)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n narrow: /^(f\\.? ?Kr\\.?|f\\.? ?v\\.? ?t\\.?|e\\.? ?Kr\\.?|v\\.? ?t\\.?)/i,\n abbreviated: /^(f\\.? ?Kr\\.?|f\\.? ?v\\.? ?t\\.?|e\\.? ?Kr\\.?|v\\.? ?t\\.?)/i,\n wide: /^(f\u00F6re Kristus|f\u00F6re v\u00E5r tid|efter Kristus|v\u00E5r tid)/i,\n};\nconst parseEraPatterns = {\n any: [/^f/i, /^[ev]/i],\n};\n\nconst matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](:a|:e)? kvartalet/i,\n};\nconst parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated:\n /^(jan|feb|mar[s]?|apr|maj|jun[i]?|jul[i]?|aug|sep|okt|nov|dec)\\.?/i,\n wide: /^(januari|februari|mars|april|maj|juni|juli|augusti|september|oktober|november|december)/i,\n};\nconst parseMonthPatterns = {\n narrow: [\n /^j/i,\n /^f/i,\n /^m/i,\n /^a/i,\n /^m/i,\n /^j/i,\n /^j/i,\n /^a/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n\n any: [\n /^ja/i,\n /^f/i,\n /^mar/i,\n /^ap/i,\n /^maj/i,\n /^jun/i,\n /^jul/i,\n /^au/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n};\n\nconst matchDayPatterns = {\n narrow: /^[smtofl]/i,\n short: /^(s\u00F6|m\u00E5|ti|on|to|fr|l\u00F6)/i,\n abbreviated: /^(s\u00F6n|m\u00E5n|tis|ons|tors|fre|l\u00F6r)/i,\n wide: /^(s\u00F6ndag|m\u00E5ndag|tisdag|onsdag|torsdag|fredag|l\u00F6rdag)/i,\n};\nconst parseDayPatterns = {\n any: [/^s/i, /^m/i, /^ti/i, /^o/i, /^to/i, /^f/i, /^l/i],\n};\n\nconst matchDayPeriodPatterns = {\n any: /^([fe]\\.?\\s?m\\.?|midn(att)?|midd(ag)?|(p\u00E5) (morgonen|eftermiddagen|kv\u00E4llen|natten))/i,\n};\nconst parseDayPeriodPatterns = {\n any: {\n am: /^f/i,\n pm: /^e/i,\n midnight: /^midn/i,\n noon: /^midd/i,\n morning: /morgon/i,\n afternoon: /eftermiddag/i,\n evening: /kv\u00E4ll/i,\n night: /natt/i,\n },\n};\n\nexport const match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: (value) => parseInt(value, 10),\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseEraPatterns,\n defaultParseWidth: \"any\",\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: \"any\",\n valueCallback: (index) => index + 1,\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: \"any\",\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPatterns,\n defaultParseWidth: \"any\",\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: \"any\",\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: \"any\",\n }),\n};\n", "import { formatDistance } from \"./sv/_lib/formatDistance.js\";\nimport { formatLong } from \"./sv/_lib/formatLong.js\";\nimport { formatRelative } from \"./sv/_lib/formatRelative.js\";\nimport { localize } from \"./sv/_lib/localize.js\";\nimport { match } from \"./sv/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Swedish locale.\n * @language Swedish\n * @iso-639-2 swe\n * @author Johannes Ul\u00E9n [@ejulen](https://github.com/ejulen)\n * @author Alexander Nanberg [@alexandernanberg](https://github.com/alexandernanberg)\n * @author Henrik Andersson [@limelights](https://github.com/limelights)\n */\nexport const sv = {\n code: \"sv\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 1 /* Monday */,\n firstWeekContainsDate: 4,\n },\n};\n\n// Fallback for modularized imports:\nexport default sv;\n", "import { i18n } from '@lingui/core';\nimport { FormControlMixin } from '@open-wc/form-control';\nimport {\n addDays,\n addMonths,\n differenceInCalendarDays,\n eachDayOfInterval,\n eachWeekOfInterval,\n endOfWeek,\n format,\n formatISO,\n getDate,\n getWeekOfMonth,\n isSameDay,\n isSameMonth,\n isToday,\n Locale,\n lastDayOfMonth,\n startOfMonth,\n startOfToday,\n startOfWeek,\n subDays,\n subMonths,\n} from 'date-fns';\nimport { da, enGB, fi, nb, sv } from 'date-fns/locale';\nimport { html, LitElement } from 'lit';\nimport { property, query, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { styleMap } from 'lit/directives/style-map.js';\n\nimport '@warp-ds/icons/elements/calendar-16';\nimport '@warp-ds/icons/elements/chevron-left-16';\nimport '@warp-ds/icons/elements/chevron-right-16';\n\nimport { activateI18n, detectLocale } from '../i18n.js';\nimport { reset } from '../styles.js';\n\nimport { messages as daMessages } from './locales/da/messages.mjs';\nimport { messages as enMessages } from './locales/en/messages.mjs';\nimport { messages as fiMessages } from './locales/fi/messages.mjs';\nimport { messages as nbMessages } from './locales/nb/messages.mjs';\nimport { messages as svMessages } from './locales/sv/messages.mjs';\nimport { wDatepickerStyles } from './styles/w-datepicker.styles.js';\nimport { wDatepickerCalendarStyles } from './styles/w-datepicker-calendar.styles.js';\nimport { wDatepickerDayStyles } from './styles/w-datepicker-day.styles.js';\nimport { wDatepickerMonthStyles } from './styles/w-datepicker-month.styles.js';\nimport { fromISOToDate } from './utils.js';\n\nconst ua = typeof navigator !== 'undefined' ? navigator.userAgent : '';\nconst isIOS = /iP(hone|od|ad)/.test(ua);\nconst inputType = isIOS ? 'text' : 'date';\n\nconst calendarId = 'calendar';\nconst inputId = 'input';\nconst toggleButtonId = 'toggle';\nconst wrapperId = 'wrapper';\nconst previousMonthButtonId = 'previous';\n\n// Convenience to support the common locales of our users.\n// For other locales either add to this list or point users\n// to https://date-fns.org/v4.1.0/docs/setDefaultOptions\nconst datefnsLocale = {\n en: enGB,\n nb,\n sv,\n da,\n fi,\n};\n\n/**\n * An input for dates.\n *\n * Uses the `lang` attribute on either the element or on `<html>` to determine the locale options.\n *\n * [See Storybook for usage examples](https://warp-ds.github.io/elements/?path=/docs/forms-datepicker--docs)\n */\nclass WarpDatepicker extends FormControlMixin(LitElement) {\n static shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n static styles = [reset, wDatepickerStyles, wDatepickerCalendarStyles, wDatepickerDayStyles, wDatepickerMonthStyles];\n\n @property({ reflect: true })\n label: string;\n\n /** Takes precedence over the `<html>` lang attribute. */\n @property({ reflect: true })\n lang: string;\n\n @property({ reflect: true })\n name: string;\n\n @property({ reflect: true })\n value: string;\n\n /**\n * Decides the format of the date as shown in the calendar header.\n *\n * The syntax is defined by [date-fns/format](https://date-fns.org/v4.1.0/docs/format).\n */\n @property({ attribute: 'header-format' })\n headerFormat = 'MMMM yyyy';\n\n /**\n * Decides the format of the weekday as shown above the grid of dates in the calendar.\n *\n * The syntax is defined by [date-fns/format](https://date-fns.org/v4.1.0/docs/format).\n */\n @property({ attribute: 'weekday-format' })\n weekdayFormat = 'EEEEEE';\n\n /**\n * Lets you control if a date in the calendar should be disabled.\n *\n * This needs to be set on the element instance in JavaScript, not as an HTML attribute.\n *\n * @example\n * ```ts\n * import type { WarpDatepicker } from \"@warp-ds/elements\";\n * import { isBefore, startOfDay } from 'date-fns';\n *\n * const today = startOfDay(new Date());\n * const datePicker = document.querySelector('w-datepicker') as WarpDatepicker;\n * datePicker.isDayDisabled = (day: Date) => isBefore(startOfDay(day), today);\n * ```\n */\n @property({ attribute: false })\n isDayDisabled: (day: Date) => boolean;\n\n /**\n * Decides the format of the day in the calendar as read to screen readers.\n *\n * The syntax is defined by [date-fns/format](https://date-fns.org/v4.1.0/docs/format).\n */\n @property({ attribute: 'day-format' })\n dayFormat = 'PPPP';\n\n @state()\n isCalendarOpen = false;\n\n @state()\n navigationDate: Date = startOfToday();\n\n /** @internal This gets picked up by the custom element manifest analyzer as a property for some reason */\n @state()\n locale: Locale = enGB;\n\n @state()\n get selectedDate(): Date | null {\n return fromISOToDate(this.value) ?? null;\n }\n\n @state()\n get month() {\n return startOfMonth(this.navigationDate);\n }\n\n // capture the initial value using connectedCallback and #initialValue\n #initialValue: string | null = null;\n\n @state()\n get weeks() {\n const month = this.month;\n const navigationDate = this.navigationDate;\n const weekStarts = eachWeekOfInterval(\n {\n start: startOfMonth(month),\n end: lastDayOfMonth(month),\n },\n { locale: this.locale },\n );\n const weekIntervals = weekStarts\n .map((weekStart) => ({\n start: weekStart,\n end: endOfWeek(weekStart, { locale: this.locale }),\n }))\n .map((week) => eachDayOfInterval(week));\n\n // Inserts the navigation date into the date matrix\n if (isSameMonth(navigationDate, month)) {\n const weekOfMonth = getWeekOfMonth(navigationDate, { locale: this.locale }) - 1;\n\n // we need to get the day of the week to index into the correct day after we've gotten the week\n // getDay() however isn't locale aware. This is a good replacement\n const day = differenceInCalendarDays(navigationDate, startOfWeek(navigationDate, { locale: this.locale }));\n\n weekIntervals[weekOfMonth][day] = navigationDate;\n }\n return weekIntervals;\n }\n\n @query(`#${calendarId}`)\n calendar: HTMLDivElement;\n\n @query(`#${inputId}`, true)\n input: HTMLInputElement;\n\n @query(`#${toggleButtonId}`, true)\n toggleButton: HTMLButtonElement;\n\n @query(`#${wrapperId}`, true)\n wrapper: HTMLDivElement;\n\n /**\n * This is the first focusable element, needed for the modal focus trap.\n *\n * Don't cache this and other `@query` fields from inside the calendar modal.\n * They work the first time, but once the calendar is closed and reopened\n * the query will point to an element that doesn't exist anymore.\n */\n @query(`#${previousMonthButtonId}`)\n previousMonthButton: HTMLButtonElement;\n\n @query('[aria-current=\"date\"]')\n todayCell: HTMLTableCellElement;\n\n @query('[data-navigation=\"true\"]')\n selectedCell: HTMLTableCellElement;\n\n resetFormControl(): void {\n this.value = this.#initialValue;\n }\n\n async #toggleCalendarOpen(e: MouseEvent | KeyboardEvent) {\n e.preventDefault();\n this.isCalendarOpen = !this.isCalendarOpen;\n if (this.isCalendarOpen) {\n // Move into the calendar and announce the availability\n // of the calendar grid to screen reader users.\n await this.updateComplete;\n (this.selectedCell || this.todayCell).focus();\n }\n }\n\n #nextMonth() {\n this.navigationDate = addMonths(this.month, 1);\n }\n\n #previousMonth() {\n this.navigationDate = subMonths(this.month, 1);\n }\n\n async #dispatchChangeEvent() {\n // Let Lit finish rendering the updated value for the input field so\n // the `event.target.value` is correct.\n await this.updateComplete;\n this.input.dispatchEvent(new Event('change', { bubbles: true, composed: true }));\n }\n\n /**\n * We can't use private fields (`#` prefix) for this method\n * since we can't overwrite private field methods. We need\n * to `.bind(this)` in the constructor because we need one\n * stable method handler we can register and unregister on\n * `document`, that has access to this specific instance\n * of WarpDatepicker to control the calendar.\n * @internal\n */\n private _onClickOutside(e: MouseEvent | FocusEvent) {\n if (!this.isCalendarOpen) {\n return;\n }\n\n const isInsideDatePicker = this.contains(e.target as Node);\n if (isInsideDatePicker) {\n return;\n }\n\n this.isCalendarOpen = false;\n }\n\n #onInput(e: InputEvent) {\n this.value = (e.target as HTMLInputElement).value;\n }\n\n #onInputClick(e: PointerEvent) {\n // stop Safari on macOS from showing the native calendar\n e.preventDefault();\n this.isCalendarOpen = true;\n }\n\n #onInputKeyDown(e: KeyboardEvent) {\n if (e.key === ' ') return this.#toggleCalendarOpen(e);\n if (e.key === ',' || e.key === 'Enter') {\n e.preventDefault();\n }\n }\n\n async #onCalendarKeyDown(e: KeyboardEvent) {\n const navigationDate = this.navigationDate;\n let newNavigationDate: Date;\n\n switch (e.key) {\n case 'ArrowUp':\n newNavigationDate = subDays(navigationDate, 7);\n break;\n case 'ArrowLeft':\n newNavigationDate = subDays(navigationDate, 1);\n break;\n case 'Home':\n newNavigationDate = startOfWeek(navigationDate, { locale: this.locale });\n break;\n case 'PageUp':\n newNavigationDate = subMonths(navigationDate, 1);\n break;\n case 'ArrowDown':\n newNavigationDate = addDays(navigationDate, 7);\n break;\n case 'ArrowRight':\n newNavigationDate = addDays(navigationDate, 1);\n break;\n case 'End':\n newNavigationDate = endOfWeek(navigationDate, { locale: this.locale });\n break;\n case 'PageDown':\n newNavigationDate = addMonths(navigationDate, 1);\n break;\n case 'Escape':\n this.isCalendarOpen = false;\n break;\n case 'Tab':\n if ((e.target as HTMLElement).tagName === 'TD' && !e.shiftKey) {\n // If Tab and no Shift we are about to leave the modal and should move focus\n // to the Previous month button. If Shift is held, proceed as normal.\n e.preventDefault();\n this.previousMonthButton.focus();\n } else if ((e.target as HTMLElement).id === previousMonthButtonId && e.shiftKey) {\n // If we're holding Shift and pressing Tab we are moving back in the focus\n // order. If we're about to leave the previous month button (the first focusable\n // element in the modal), move the focus to the last focusable element, which\n // is the current navigation date in the calendar grid.\n e.preventDefault();\n (this.selectedCell || this.todayCell).focus();\n }\n break;\n }\n\n if (newNavigationDate) {\n // prevent scrolling the viewport\n e.preventDefault();\n this.navigationDate = newNavigationDate;\n\n // move keyboard focus once Lit has rendered an updated `data-navigation`\n // based on this.navigationDate\n await this.updateComplete;\n this.selectedCell.focus();\n }\n }\n\n #onCalendarSelect(event: MouseEvent | KeyboardEvent) {\n // Clicks can hit the `<div>` inside the `<td>`, so look at\n // currentTarget (where the listener is registered) to get\n // the `<td>` consistently.\n const isoDate = (event.currentTarget as HTMLTableCellElement).dataset.date;\n\n if ('key' in event) {\n if (event.key === 'Enter' || event.key === ' ') {\n // Prevents whitespace from being added to the input field\n event.preventDefault();\n this.value = isoDate;\n this.isCalendarOpen = false;\n this.toggleButton.focus();\n this.#dispatchChangeEvent();\n }\n } else {\n this.value = isoDate;\n this.isCalendarOpen = false;\n this.#dispatchChangeEvent();\n }\n }\n\n constructor() {\n super();\n\n activateI18n(enMessages, nbMessages, fiMessages, daMessages, svMessages);\n\n const lang = detectLocale();\n if (lang && datefnsLocale[lang]) {\n this.locale = datefnsLocale[lang];\n }\n\n this._onClickOutside = this._onClickOutside.bind(this);\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n\n this.#initialValue = this.value;\n\n // Local lang attribute takes precedence\n const lang = this.lang;\n if (lang && datefnsLocale[lang]) {\n this.locale = datefnsLocale[lang];\n }\n\n if (this.value) {\n const iso = fromISOToDate(this.value);\n if (iso) {\n this.navigationDate = iso;\n }\n }\n\n document.addEventListener('mousedown', this._onClickOutside);\n document.addEventListener('touchend', this._onClickOutside);\n document.addEventListener('focusin', this._onClickOutside);\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n\n document.removeEventListener('mousedown', this._onClickOutside);\n document.removeEventListener('touchend', this._onClickOutside);\n document.removeEventListener('focusin', this._onClickOutside);\n }\n\n updated(changedProperties: Map<string, unknown>): void {\n if (changedProperties.has('value')) {\n // https://www.npmjs.com/package/@open-wc/form-control#setvalue\n this.setValue(this.value);\n }\n }\n\n render() {\n return html`\n <div class=\"w-datepicker-wrapper\" id=\"${wrapperId}\">\n <label class=\"w-datepicker-input-label\" for=\"${inputId}\">${this.label}</label>\n <div class=\"w-datepicker-input-wrapper\">\n <input\n id=\"${inputId}\"\n type=\"${inputType}\"\n name=\"${ifDefined(this.name)}\"\n value=\"${ifDefined(this.value)}\"\n class=\"w-datepicker-input\"\n @click=\"${this.#onInputClick}\"\n @input=\"${this.#onInput}\"\n @keydown=\"${this.#onInputKeyDown}\" />\n <w-button\n aria-label=\"${\n this.value\n ? i18n.t({\n id: 'datepicker.toggle.changeDate',\n values: { currentDate: format(this.value, this.dayFormat) },\n message: 'Change date, {currentDate}',\n comment:\n 'Used by screen readers to describe the button that toggles open the calendar in a date picker when there is a selected date',\n })\n : i18n.t({\n id: 'datepicker.toggle.chooseDate',\n message: 'Choose date',\n comment:\n 'Used by screen readers to describe the button that toggles open the calendar in a date picker when there is no selected date',\n })\n }\"\n aria-controls=\"${calendarId}\"\n class=\"w-datepicker-button\"\n data-testid=\"${toggleButtonId}\"\n id=\"${toggleButtonId}\"\n variant=\"utility\"\n quiet\n type=\"button\"\n @click=\"${this.#toggleCalendarOpen}\">\n <w-icon-calendar-16></w-icon-calendar-16>\n </w-button>\n </div>\n </div>\n <div class=\"w-dropdown__popover w-dropdown__popover--open\" style=\"${styleMap({ display: this.isCalendarOpen ? undefined : 'none' })}\">\n <div\n aria-label=\"${i18n.t({\n id: 'datepicker.calendar.roleDescription',\n message: 'Date picker',\n comment: 'Used by screen readers to announce that the calendar element is a date picker.',\n })}\"\n aria-modal=\"true\"\n role=\"dialog\"\n class=\"w-datepicker__calendar\"\n data-testid=\"${calendarId}\"\n id=\"${calendarId}\"\n @keydown=\"${this.#onCalendarKeyDown}\">\n <div class=\"w-datepicker__month-nav\">\n <w-button\n aria-label=\"${i18n.t({\n id: 'datepicker.calendar.previousMonth',\n message: 'Previous month',\n comment: 'Screen reader label for the previous month button.',\n })}\"\n class=\"w-datepicker__month__nav__button\"\n id=\"${previousMonthButtonId}\"\n data-testid=\"${previousMonthButtonId}\"\n variant=\"utility\"\n quiet\n small\n @click=\"${this.#previousMonth}\">\n <w-icon-chevron-left-16></w-icon-chevron-left-16>\n </w-button>\n <div aria-live=\"polite\" class=\"w-datepicker__month__nav__header\">\n ${format(this.month, this.headerFormat, { locale: this.locale })}\n </div>\n <w-button\n aria-label=\"${i18n.t({\n id: 'datepicker.calendar.nextMonth',\n message: 'Next month',\n comment: 'Screen reader label for the next month button.',\n })}\"\n class=\"w-datepicker__month__nav__button\"\n data-testid=\"${calendarId}-next\"\n variant=\"utility\"\n quiet\n small\n @click=\"${this.#nextMonth}\">\n <w-icon-chevron-right-16></w-icon-chevron-right-16>\n </w-button>\n </div>\n <div class=\"w-datepicker__month\">\n <table class=\"w-datepicker__table\" role=\"grid\">\n <thead class=\"w-datepicker__weekdays\">\n <tr>\n ${this.weeks[0].map(\n (day) =>\n html`<th class=\"w-datepicker__weekday\">${format(day, this.weekdayFormat, { locale: this.locale })}</th> `,\n )}\n </tr>\n </thead>\n <tbody>\n ${this.weeks.map(\n (week) =>\n html`<tr>\n ${week.map((day) => {\n if (!isSameMonth(this.month, day)) {\n return html`<td></td>`;\n }\n\n const isDisabled = this.isDayDisabled ? this.isDayDisabled(day) : false;\n const isSelected = isSameDay(day, this.selectedDate);\n const isNavigationDate = day === this.navigationDate;\n\n return html`<td\n aria-current=\"${ifDefined(isToday(day) ? 'date' : undefined)}\"\n aria-disabled=\"${isDisabled}\"\n aria-label=\"${format(day, this.dayFormat, { locale: this.locale })}\"\n aria-selected=\"${isSelected}\"\n class=\"${classMap({\n 'w-datepicker__day': true,\n 'w-datepicker__day--today': isToday(day),\n 'w-datepicker__day--selected': isSelected,\n 'w-datepicker__day--disabled': isDisabled,\n 'w-datepicker__day--navigation': isNavigationDate,\n })}\"\n data-navigation=\"${isNavigationDate}\"\n data-date=\"${formatISO(day, { representation: 'date' })}\"\n role=\"gridcell\"\n tabindex=\"${isNavigationDate ? 0 : -1}\"\n @click=\"${isDisabled ? undefined : this.#onCalendarSelect}\"\n @keydown=\"${isDisabled ? undefined : this.#onCalendarSelect}\">\n <div>${getDate(day)}</div>\n </td>`;\n })}\n </tr>`,\n )}\n </tbody>\n </table>\n </div>\n </div>\n </div>\n `;\n }\n}\n\nif (!customElements.get('w-datepicker')) {\n customElements.define('w-datepicker', WarpDatepicker);\n}\n\nexport { WarpDatepicker };\n", "import { LitElement } from 'lit';\nimport { unsafeStatic, html } from \"lit/static-html.js\";\nimport { i18n } from '@lingui/core';\nimport { messages as nbMessages} from '../src/raw/calendar/locales/nb/messages.mjs';\nimport { messages as enMessages} from '../src/raw/calendar/locales/en/messages.mjs';\nimport { messages as fiMessages} from '../src/raw/calendar/locales/fi/messages.mjs';\nimport { messages as daMessages} from '../src/raw/calendar/locales/da/messages.mjs';\nimport { messages as svMessages} from '../src/raw/calendar/locales/sv/messages.mjs';\nimport { activateI18n } from '../src/utils/i18n';\nactivateI18n(enMessages, nbMessages, fiMessages, daMessages, svMessages);\n\n\nexport class IconCalendar16 extends LitElement {\n render() {\n const title = i18n.t({ message: `Calendar`, id: 'icon.title.calendar', comment: 'Title for calendar icon' });\n \n return html`<svg xmlns=\"http://www.w3.org/2000/svg\"width=\"16\"height=\"16\"fill=\"none\"viewBox=\"0 0 16 16\" part=\"w-icon-calendar-16-part\">${unsafeStatic(`<title>${title}</title>`)}<path stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M14.5 2.5h-13a1 1 0 0 0-1 1v11a1 1 0 0 0 1 1h13a1 1 0 0 0 1-1v-11a1 1 0 0 0-1-1m-14 4h15M8 12.666V9.333m1 3.333H7m1-3.333-1 .333M4.5 3.333V.667m7 2.666V.667\"></path></svg>`; }\n}\nif (!customElements.get('w-icon-calendar-16')) {\n customElements.define('w-icon-calendar-16', IconCalendar16);\n}", "/*eslint-disable*/export const messages=JSON.parse(\"{\\\"icon.title.calendar\\\":[\\\"Kalender\\\"]}\");", "/*eslint-disable*/export const messages=JSON.parse(\"{\\\"icon.title.calendar\\\":[\\\"Calendar\\\"]}\");", "/*eslint-disable*/export const messages=JSON.parse(\"{\\\"icon.title.calendar\\\":[\\\"Kalenteri\\\"]}\");", "/*eslint-disable*/export const messages=JSON.parse(\"{\\\"icon.title.calendar\\\":[\\\"Kalender\\\"]}\");", "/*eslint-disable*/export const messages=JSON.parse(\"{\\\"icon.title.calendar\\\":[\\\"Kalender\\\"]}\");", "import { Messages, i18n } from '@lingui/core';\n\nexport const supportedLocales = ['en', 'nb', 'fi', 'da', 'sv'] as const;\ntype SupportedLocale = (typeof supportedLocales)[number];\n\nexport const defaultLocale = 'en';\n\nconst detectByBrand = () => {\n\tlet value;\n switch (process?.env?.NMP_BRAND) {\n\t\tcase 'FINN':\n\t\t\tvalue = 'nb';\n\t\t\tbreak;\n\t\tcase 'TORI':\n\t\t\tvalue = 'fi';\n\t\t\tbreak;\n\t\tcase 'BLOCKET':\n\t\t\tvalue = 'sv';\n\t\t\tbreak;\n\t\tcase 'DBA':\n\t\t\tvalue = 'da';\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tvalue = 'en';\n\t}\n\treturn value;\n};\n\nconst detectByHost = () => {\n const hostname = document?.location?.hostname;\n if (hostname?.includes('finn')) {\n return 'nb';\n } else if (hostname.includes('tori')) {\n return 'fi';\n } else if (hostname.includes('blocket')) {\n return 'sv';\n } else if (hostname.includes('dba')) {\n return 'da';\n } else {\n return defaultLocale;\n }\n}\n\nexport const getSupportedLocale = (usedLocale: string) => {\n return (\n supportedLocales.find(\n (locale) =>\n usedLocale === locale || usedLocale.toLowerCase().includes(locale)\n ) || detectByHost()\n );\n};\n\nexport function detectLocale(): SupportedLocale {\n if (typeof window === 'undefined') {\n /**\n * Server locale detection. This requires e.g NMP_BRAND environment variable to be set on the server.\n */\n const serverLocale = detectByBrand();\n return getSupportedLocale(serverLocale);\n }\n\n try {\n /**\n * Client locale detection. Expects the lang attribute to be defined.\n */\n const htmlLocale = document?.documentElement?.lang;\n const hostLocale = detectByHost();\n \n if (!supportedLocales.includes(htmlLocale as SupportedLocale)) {\n console.warn('Unsupported locale set in html lang tag, falling back to detection by hostname');\n return getSupportedLocale(hostLocale);\n }\n return getSupportedLocale(htmlLocale ?? hostLocale);\n } catch (e) {\n console.warn('could not detect locale, falling back to source locale', e);\n return defaultLocale;\n }\n}\n\nexport const getMessages = (\n locale: SupportedLocale,\n enMsg: Messages,\n nbMsg: Messages,\n fiMsg: Messages,\n daMsg: Messages,\n svMsg: Messages\n) => {\n if (locale === 'nb') return nbMsg;\n if (locale === 'fi') return fiMsg;\n if (locale === 'da') return daMsg;\n if (locale === 'sv') return svMsg;\n // Default to English\n return enMsg;\n};\n\nexport const activateI18n = (\n enMessages: Messages,\n nbMessages: Messages,\n fiMessages: Messages,\n daMessages: Messages,\n svMessages: Messages\n) => {\n const locale = detectLocale();\n const messages = getMessages(locale, enMessages, nbMessages, fiMessages, daMessages, svMessages);\n i18n.load(locale, messages);\n i18n.activate(locale);\n};\n", "import { LitElement } from 'lit';\nimport { unsafeStatic, html } from \"lit/static-html.js\";\nimport { i18n } from '@lingui/core';\nimport { messages as nbMessages} from '../src/raw/chevron-left/locales/nb/messages.mjs';\nimport { messages as enMessages} from '../src/raw/chevron-left/locales/en/messages.mjs';\nimport { messages as fiMessages} from '../src/raw/chevron-left/locales/fi/messages.mjs';\nimport { messages as daMessages} from '../src/raw/chevron-left/locales/da/messages.mjs';\nimport { messages as svMessages} from '../src/raw/chevron-left/locales/sv/messages.mjs';\nimport { activateI18n } from '../src/utils/i18n';\nactivateI18n(enMessages, nbMessages, fiMessages, daMessages, svMessages);\n\n\nexport class IconChevronLeft16 extends LitElement {\n render() {\n const title = i18n.t({ message: `Leftward arrow`, id: 'icon.title.chevron-left', comment: 'Title for chevron-left icon' });\n \n return html`<svg xmlns=\"http://www.w3.org/2000/svg\"width=\"16\"height=\"16\"fill=\"none\"viewBox=\"0 0 16 16\" part=\"w-icon-chevron-left-16-part\">${unsafeStatic(`<title>${title}</title>`)}<path stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\" d=\"M10.5 13.75 5 8.25l5.5-5.5\"></path></svg>`; }\n}\nif (!customElements.get('w-icon-chevron-left-16')) {\n customElements.define('w-icon-chevron-left-16', IconChevronLeft16);\n}", "/*eslint-disable*/export const messages=JSON.parse(\"{\\\"icon.title.chevron-left\\\":[\\\"Pil til venstre\\\"]}\");", "/*eslint-disable*/export const messages=JSON.parse(\"{\\\"icon.title.chevron-left\\\":[\\\"Leftward arrow\\\"]}\");", "/*eslint-disable*/export const messages=JSON.parse(\"{\\\"icon.title.chevron-left\\\":[\\\"Nuoli vasemmalle\\\"]}\");", "/*eslint-disable*/export const messages=JSON.parse(\"{\\\"icon.title.chevron-left\\\":[\\\"Pil til venstre\\\"]}\");", "/*eslint-disable*/export const messages=JSON.parse(\"{\\\"icon.title.chevron-left\\\":[\\\"Pil v\u00E4nster\\\"]}\");", "import { Messages, i18n } from '@lingui/core';\n\nexport const supportedLocales = ['en', 'nb', 'fi', 'da', 'sv'] as const;\ntype SupportedLocale = (typeof supportedLocales)[number];\n\nexport const defaultLocale = 'en';\n\nconst detectByBrand = () => {\n\tlet value;\n switch (process?.env?.NMP_BRAND) {\n\t\tcase 'FINN':\n\t\t\tvalue = 'nb';\n\t\t\tbreak;\n\t\tcase 'TORI':\n\t\t\tvalue = 'fi';\n\t\t\tbreak;\n\t\tcase 'BLOCKET':\n\t\t\tvalue = 'sv';\n\t\t\tbreak;\n\t\tcase 'DBA':\n\t\t\tvalue = 'da';\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tvalue = 'en';\n\t}\n\treturn value;\n};\n\nconst detectByHost = () => {\n const hostname = document?.location?.hostname;\n if (hostname?.includes('finn')) {\n return 'nb';\n } else if (hostname.includes('tori')) {\n return 'fi';\n } else if (hostname.includes('blocket')) {\n return 'sv';\n } else if (hostname.includes('dba')) {\n return 'da';\n } else {\n return defaultLocale;\n }\n}\n\nexport const getSupportedLocale = (usedLocale: string) => {\n return (\n supportedLocales.find(\n (locale) =>\n usedLocale === locale || usedLocale.toLowerCase().includes(locale)\n ) || detectByHost()\n );\n};\n\nexport function detectLocale(): SupportedLocale {\n if (typeof window === 'undefined') {\n /**\n * Server locale detection. This requires e.g NMP_BRAND environment variable to be set on the server.\n */\n const serverLocale = detectByBrand();\n return getSupportedLocale(serverLocale);\n }\n\n try {\n /**\n * Client locale detection. Expects the lang attribute to be defined.\n */\n const htmlLocale = document?.documentElement?.lang;\n const hostLocale = detectByHost();\n \n if (!supportedLocales.includes(htmlLocale as SupportedLocale)) {\n console.warn('Unsupported locale set in html lang tag, falling back to detection by hostname');\n return getSupportedLocale(hostLocale);\n }\n return getSupportedLocale(htmlLocale ?? hostLocale);\n } catch (e) {\n console.warn('could not detect locale, falling back to source locale', e);\n return defaultLocale;\n }\n}\n\nexport const getMessages = (\n locale: SupportedLocale,\n enMsg: Messages,\n nbMsg: Messages,\n fiMsg: Messages,\n daMsg: Messages,\n svMsg: Messages\n) => {\n if (locale === 'nb') return nbMsg;\n if (locale === 'fi') return fiMsg;\n if (locale === 'da') return daMsg;\n if (locale === 'sv') return svMsg;\n // Default to English\n return enMsg;\n};\n\nexport const activateI18n = (\n enMessages: Messages,\n nbMessages: Messages,\n fiMessages: Messages,\n daMessages: Messages,\n svMessages: Messages\n) => {\n const locale = detectLocale();\n const messages = getMessages(locale, enMessages, nbMessages, fiMessages, daMessages, svMessages);\n i18n.load(locale, messages);\n i18n.activate(locale);\n};\n", "import { LitElement } from 'lit';\nimport { unsafeStatic, html } from \"lit/static-html.js\";\nimport { i18n } from '@lingui/core';\nimport { messages as nbMessages} from '../src/raw/chevron-right/locales/nb/messages.mjs';\nimport { messages as enMessages} from '../src/raw/chevron-right/locales/en/messages.mjs';\nimport { messages as fiMessages} from '../src/raw/chevron-right/locales/fi/messages.mjs';\nimport { messages as daMessages} from '../src/raw/chevron-right/locales/da/messages.mjs';\nimport { messages as svMessages} from '../src/raw/chevron-right/locales/sv/messages.mjs';\nimport { activateI18n } from '../src/utils/i18n';\nactivateI18n(enMessages, nbMessages, fiMessages, daMessages, svMessages);\n\n\nexport class IconChevronRight16 extends LitElement {\n render() {\n const title = i18n.t({ message: `Rightward arrow`, id: 'icon.title.chevron-right', comment: 'Title for chevron-right icon' });\n \n return html`<svg xmlns=\"http://www.w3.org/2000/svg\"width=\"16\"height=\"16\"fill=\"none\"viewBox=\"0 0 16 16\" part=\"w-icon-chevron-right-16-part\">${unsafeStatic(`<title>${title}</title>`)}<path stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\" d=\"m5.5 13.75 5.5-5.5-5.5-5.5\"></path></svg>`; }\n}\nif (!customElements.get('w-icon-chevron-right-16')) {\n customElements.define('w-icon-chevron-right-16', IconChevronRight16);\n}", "/*eslint-disable*/export const messages=JSON.parse(\"{\\\"icon.title.chevron-right\\\":[\\\"Pil til h\u00F8yre\\\"]}\");", "/*eslint-disable*/export const messages=JSON.parse(\"{\\\"icon.title.chevron-right\\\":[\\\"Rightward arrow\\\"]}\");", "/*eslint-disable*/export const messages=JSON.parse(\"{\\\"icon.title.chevron-right\\\":[\\\"Nuoli oikealle\\\"]}\");", "/*eslint-disable*/export const messages=JSON.parse(\"{\\\"icon.title.chevron-right\\\":[\\\"Pil til h\u00F8jre\\\"]}\");", "/*eslint-disable*/export const messages=JSON.parse(\"{\\\"icon.title.chevron-right\\\":[\\\"Pil h\u00F6ger\\\"]}\");", "import { Messages, i18n } from '@lingui/core';\n\nexport const supportedLocales = ['en', 'nb', 'fi', 'da', 'sv'] as const;\ntype SupportedLocale = (typeof supportedLocales)[number];\n\nexport const defaultLocale = 'en';\n\nconst detectByBrand = () => {\n\tlet value;\n switch (process?.env?.NMP_BRAND) {\n\t\tcase 'FINN':\n\t\t\tvalue = 'nb';\n\t\t\tbreak;\n\t\tcase 'TORI':\n\t\t\tvalue = 'fi';\n\t\t\tbreak;\n\t\tcase 'BLOCKET':\n\t\t\tvalue = 'sv';\n\t\t\tbreak;\n\t\tcase 'DBA':\n\t\t\tvalue = 'da';\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tvalue = 'en';\n\t}\n\treturn value;\n};\n\nconst detectByHost = () => {\n const hostname = document?.location?.hostname;\n if (hostname?.includes('finn')) {\n return 'nb';\n } else if (hostname.includes('tori')) {\n return 'fi';\n } else if (hostname.includes('blocket')) {\n return 'sv';\n } else if (hostname.includes('dba')) {\n return 'da';\n } else {\n return defaultLocale;\n }\n}\n\nexport const getSupportedLocale = (usedLocale: string) => {\n return (\n supportedLocales.find(\n (locale) =>\n usedLocale === locale || usedLocale.toLowerCase().includes(locale)\n ) || detectByHost()\n );\n};\n\nexport function detectLocale(): SupportedLocale {\n if (typeof window === 'undefined') {\n /**\n * Server locale detection. This requires e.g NMP_BRAND environment variable to be set on the server.\n */\n const serverLocale = detectByBrand();\n return getSupportedLocale(serverLocale);\n }\n\n try {\n /**\n * Client locale detection. Expects the lang attribute to be defined.\n */\n const htmlLocale = document?.documentElement?.lang;\n const hostLocale = detectByHost();\n \n if (!supportedLocales.includes(htmlLocale as SupportedLocale)) {\n console.warn('Unsupported locale set in html lang tag, falling back to detection by hostname');\n return getSupportedLocale(hostLocale);\n }\n return getSupportedLocale(htmlLocale ?? hostLocale);\n } catch (e) {\n console.warn('could not detect locale, falling back to source locale', e);\n return defaultLocale;\n }\n}\n\nexport const getMessages = (\n locale: SupportedLocale,\n enMsg: Messages,\n nbMsg: Messages,\n fiMsg: Messages,\n daMsg: Messages,\n svMsg: Messages\n) => {\n if (locale === 'nb') return nbMsg;\n if (locale === 'fi') return fiMsg;\n if (locale === 'da') return daMsg;\n if (locale === 'sv') return svMsg;\n // Default to English\n return enMsg;\n};\n\nexport const activateI18n = (\n enMessages: Messages,\n nbMessages: Messages,\n fiMessages: Messages,\n daMessages: Messages,\n svMessages: Messages\n) => {\n const locale = detectLocale();\n const messages = getMessages(locale, enMessages, nbMessages, fiMessages, daMessages, svMessages);\n i18n.load(locale, messages);\n i18n.activate(locale);\n};\n", "import { i18n, Messages } from '@lingui/core';\n\nexport const supportedLocales = ['en', 'nb', 'fi', 'da', 'sv'] as const;\ntype SupportedLocale = (typeof supportedLocales)[number];\n\nexport const defaultLocale = 'en';\n\nexport const getSupportedLocale = (usedLocale: string) => {\n return (\n supportedLocales.find((locale) => usedLocale === locale || usedLocale.toLowerCase().includes(locale)) ||\n defaultLocale\n );\n};\n\nexport function detectLocale(): SupportedLocale {\n if (typeof window === 'undefined') {\n /**\n * Server locale detection. This requires e.g LANG environment variable to be set on the server.\n */\n const serverLocale = process.env.NMP_LANGUAGE || Intl.DateTimeFormat().resolvedOptions().locale;\n return getSupportedLocale(serverLocale);\n }\n\n try {\n /**\n * Client locale detection. Expects the lang attribute to be defined.\n */\n const htmlLocale = document.documentElement.lang;\n return getSupportedLocale(htmlLocale);\n } catch (e) {\n console.warn('could not detect locale, falling back to source locale', e);\n return defaultLocale;\n }\n}\n\nexport const getMessages = (\n locale: SupportedLocale,\n enMsg: Messages,\n nbMsg: Messages,\n fiMsg: Messages,\n daMsg: Messages,\n svMsg: Messages,\n) => {\n if (locale === 'nb') return nbMsg;\n if (locale === 'fi') return fiMsg;\n if (locale === 'da') return daMsg;\n if (locale === 'sv') return svMsg;\n // Default to English\n return enMsg;\n};\n\nexport const activateI18n = (\n enMessages: Messages,\n nbMessages: Messages,\n fiMessages: Messages,\n daMessages: Messages,\n svMessages: Messages,\n) => {\n // Load all locales upfront to support dynamic locale switching\n i18n.load('en', enMessages);\n i18n.load('nb', nbMessages);\n i18n.load('fi', fiMessages);\n i18n.load('da', daMessages);\n i18n.load('sv', svMessages);\n\n const locale = detectLocale();\n i18n.activate(locale);\n};\n", "import { css } from 'lit';\n\nexport const reset = css`\n *,\n :before,\n :after {\n box-sizing: border-box;\n border-style: solid;\n border-width: 0;\n border-color: var(--w-s-color-border);\n }\n html {\n font-size: 62.5%;\n }\n body {\n background-color: var(--w-s-color-background);\n min-height: 100%;\n margin: 0;\n overflow-y: scroll;\n }\n body,\n :host {\n -webkit-text-size-adjust: 100%;\n tab-size: 4;\n -webkit-tap-highlight-color: transparent;\n font-family: var(--w-font-family);\n font-size: var(--w-font-size-m);\n line-height: var(--w-line-height-m);\n color: var(--w-s-color-text);\n }\n hr {\n color: inherit;\n border-top-width: 1px;\n height: 0;\n }\n abbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n }\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n font-size: inherit;\n font-weight: 700;\n }\n a {\n cursor: pointer;\n color: var(--w-s-color-text-link);\n text-decoration: none;\n }\n a:hover,\n a:focus,\n a:active {\n text-decoration: underline;\n }\n a:focus-visible {\n outline: 2px solid var(--w-s-color-border-focus);\n outline-offset: 1px;\n }\n b,\n strong {\n font-weight: 700;\n }\n code,\n kbd,\n samp,\n pre {\n font-family:\n ui-monospace,\n SFMono-Regular,\n Menlo,\n Monaco,\n Consolas,\n Liberation Mono,\n Courier New,\n monospace;\n font-size: 1em;\n }\n sub,\n sup {\n vertical-align: baseline;\n font-size: 75%;\n line-height: 0;\n position: relative;\n }\n sub {\n bottom: -0.25em;\n }\n sup {\n top: -0.5em;\n }\n table {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n }\n button,\n input,\n optgroup,\n select,\n textarea {\n font-family: inherit;\n font-size: 100%;\n font-weight: inherit;\n line-height: inherit;\n color: inherit;\n margin: 0;\n padding: 0;\n }\n button,\n select {\n text-transform: none;\n }\n button,\n [type='button'],\n [type='reset'],\n [type='submit'] {\n -webkit-appearance: button;\n }\n :-moz-focusring {\n outline: auto;\n }\n :-moz-ui-invalid {\n box-shadow: none;\n }\n progress {\n vertical-align: baseline;\n }\n ::-webkit-inner-spin-button {\n height: auto;\n }\n ::-webkit-outer-spin-button {\n height: auto;\n }\n [type='search'] {\n -webkit-appearance: textfield;\n outline-offset: -2px;\n }\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n ::-webkit-file-upload-button {\n -webkit-appearance: button;\n font: inherit;\n }\n summary {\n display: list-item;\n }\n blockquote,\n dl,\n dd,\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n hr,\n figure,\n p,\n pre {\n margin: 0;\n }\n fieldset {\n margin: 0;\n padding: 0;\n }\n legend {\n padding: 0;\n }\n ol,\n ul,\n menu {\n margin: 0;\n padding: 0;\n list-style: none;\n }\n textarea {\n resize: vertical;\n }\n input::placeholder,\n textarea::placeholder {\n opacity: 1;\n color: var(--w-s-color-text-placeholder);\n }\n button,\n [role='button'] {\n cursor: pointer;\n }\n :disabled {\n cursor: default;\n }\n img,\n svg,\n video,\n canvas,\n audio,\n iframe,\n embed,\n object {\n vertical-align: middle;\n display: block;\n }\n img,\n video {\n max-width: 100%;\n height: auto;\n }\n h1 {\n font-size: var(--w-font-size-xxl);\n line-height: var(--w-line-height-xxl);\n }\n h2 {\n font-size: var(--w-font-size-xl);\n line-height: var(--w-line-height-xl);\n }\n h3 {\n font-size: var(--w-font-size-l);\n line-height: var(--w-line-height-l);\n }\n h4 {\n font-size: var(--w-font-size-m);\n line-height: var(--w-line-height-m);\n }\n h5 {\n font-size: var(--w-font-size-s);\n line-height: var(--w-line-height-s);\n }\n dt,\n dd {\n margin: 0 16px;\n }\n h1,\n h2,\n h3,\n h4,\n h5,\n ul,\n ol,\n dl,\n p,\n blockquote {\n margin: 0 0 8px;\n }\n [hidden] {\n display: none !important;\n }\n [tabindex='-1']:focus:not(:focus-visible) {\n outline: none;\n }\n legend {\n float: left;\n width: 100%;\n margin: 0;\n padding: 0;\n display: table;\n }\n legend + * {\n clear: both;\n }\n fieldset {\n border: 0;\n min-width: 0;\n margin: 0;\n padding: 0.01em 0 0;\n }\n body:not(:-moz-handler-blocked) fieldset {\n display: table-cell;\n }\n svg {\n pointer-events: none;\n }\n`;\nexport const components = css`*, :before, :after {\n --w-rotate: 0;\n --w-rotate-x: 0;\n --w-rotate-y: 0;\n --w-rotate-z: 0;\n --w-scale-x: 1;\n --w-scale-y: 1;\n --w-scale-z: 1;\n --w-skew-x: 0;\n --w-skew-y: 0;\n --w-translate-x: 0;\n --w-translate-y: 0;\n --w-translate-z: 0\n }\n\n .h4, .t4 {\n font-weight: 700;\n font-size: var(--w-font-size-m);\n line-height: var(--w-line-height-m)\n }\n\n .t3 {\n font-weight: 700;\n font-size: var(--w-font-size-l);\n line-height: var(--w-line-height-l)\n }\n\n @media (min-width: 480px) {\n .sm\\\\:h3 {\n font-weight: 700;\n font-size: var(--w-font-size-l);\n line-height: var(--w-line-height-l)\n }\n }\n\n .text-center {\n text-align: center\n }\n\n .before\\\\:text-center:before {\n text-align: center\n }\n\n .text-left {\n text-align: left\n }\n\n .text-right {\n text-align: right\n }\n\n .align-middle {\n vertical-align: middle\n }\n\n .animate-inprogress {\n background-image: linear-gradient(135deg, rgba(0, 0, 0, .05) 25%, transparent 0, transparent 50%, rgba(0, 0, 0, .05) 0, rgba(0, 0, 0, .05) 75%, transparent 0, transparent) !important;\n background-size: 30px 30px;\n animation: animate-inprogress 3s linear infinite\n }\n\n @keyframes animate-inprogress {\n 0% {\n background-position: 0 0\n }\n to {\n background-position: 60px 0\n }\n }\n\n .\\\\[--w-modal-max-height\\\\:80\\\\%\\\\] {\n --w-modal-max-height: 80%\n }\n\n .\\\\[--w-modal-width\\\\:640px\\\\] {\n --w-modal-width: 640px\n }\n\n .focus\\\\:\\\\[--w-outline-offset\\\\:-2px\\\\]:focus {\n --w-outline-offset: -2px\n }\n\n .backdrop-blur {\n -webkit-backdrop-filter: blur(4px);\n backdrop-filter: blur(4px)\n }\n\n .peer:checked ~ .peer-checked\\\\:before\\\\:bg-center:before {\n background-position: center\n }\n\n .hover\\\\:bg-clip-padding:hover {\n -webkit-background-clip: padding-box;\n background-clip: padding-box\n }\n\n .bg-transparent, .group\\\\/steph:first-child .group-first\\\\/steph\\\\:bg-transparent, .group\\\\/steph:last-child .group-last\\\\/steph\\\\:bg-transparent {\n background-color: transparent\n }\n\n .bg-\\\\[--w-black\\\\/25\\\\] {\n background-color: rgba(var(--w-rgb-black), .25)\n }\n\n .bg-\\\\[--w-black\\\\/70\\\\], .bg-\\\\[var\\\\(--w-black\\\\)\\\\/70\\\\] {\n background-color: rgba(var(--w-rgb-black), .7)\n }\n\n .bg-\\\\[--w-color-badge-info-background\\\\] {\n background-color: var(--w-color-badge-info-background)\n }\n\n .bg-\\\\[--w-color-badge-negative-background\\\\] {\n background-color: var(--w-color-badge-negative-background)\n }\n\n .bg-\\\\[--w-color-badge-neutral-background\\\\] {\n background-color: var(--w-color-badge-neutral-background)\n }\n\n .bg-\\\\[--w-color-badge-positive-background\\\\] {\n background-color: var(--w-color-badge-positive-background)\n }\n\n .bg-\\\\[--w-color-badge-sponsored-background\\\\] {\n background-color: var(--w-color-badge-sponsored-background)\n }\n\n .bg-\\\\[--w-color-badge-warning-background\\\\] {\n background-color: var(--w-color-badge-warning-background)\n }\n\n .bg-\\\\[--w-color-button-primary-background\\\\] {\n background-color: var(--w-color-button-primary-background)\n }\n\n .bg-\\\\[--w-color-buttongroup-utility-background-selected\\\\] {\n background-color: var(--w-color-buttongroup-utility-background-selected)\n }\n\n .bg-\\\\[--w-color-callout-background\\\\] {\n background-color: var(--w-color-callout-background)\n }\n\n .bg-\\\\[--w-color-pill-suggestion-background\\\\] {\n background-color: var(--w-color-pill-suggestion-background)\n }\n\n .bg-\\\\[--w-color-switch-track-background\\\\] {\n background-color: var(--w-color-switch-track-background)\n }\n\n .bg-\\\\[--w-s-color-surface-elevated-100\\\\] {\n background-color: var(--w-s-color-surface-elevated-100)\n }\n\n .bg-\\\\[--w-s-color-surface-elevated-300\\\\] {\n background-color: var(--w-s-color-surface-elevated-300)\n }\n\n .bg-\\\\[--w-s-icon-selected\\\\] {\n background-color: var(--w-s-icon-selected)\n }\n\n .group:hover .group-hover\\\\:bg-\\\\[--w-color-switch-track-background-hover\\\\] {\n background-color: var(--w-color-switch-track-background-hover)\n }\n\n .hover\\\\:bg-\\\\[--w-color-button-pill-background-hover\\\\]:hover {\n background-color: var(--w-color-button-pill-background-hover)\n }\n\n .hover\\\\:bg-\\\\[--w-color-button-primary-background-hover\\\\]:hover {\n background-color: var(--w-color-button-primary-background-hover)\n }\n\n .hover\\\\:bg-\\\\[--w-color-buttongroup-utility-background-hover\\\\]:hover {\n background-color: var(--w-color-buttongroup-utility-background-hover)\n }\n\n .hover\\\\:bg-\\\\[--w-color-pill-suggestion-background-hover\\\\]:hover {\n background-color: var(--w-color-pill-suggestion-background-hover)\n }\n\n .hover\\\\:bg-\\\\[--w-s-icon-subtle\\\\]:hover {\n background-color: var(--w-s-icon-subtle)\n }\n\n .hover\\\\:bg-\\\\[var\\\\(--w-black\\\\)\\\\/85\\\\]:hover {\n background-color: rgba(var(--w-rgb-black), .85)\n }\n\n .active\\\\:bg-\\\\[--w-color-button-pill-background-active\\\\]:active {\n background-color: var(--w-color-button-pill-background-active)\n }\n\n .active\\\\:bg-\\\\[--w-color-button-primary-background-active\\\\]:active {\n background-color: var(--w-color-button-primary-background-active)\n }\n\n .active\\\\:bg-\\\\[--w-color-buttongroup-utility-background-selected\\\\]:active {\n background-color: var(--w-color-buttongroup-utility-background-selected)\n }\n\n .active\\\\:bg-\\\\[--w-color-pill-suggestion-background-active\\\\]:active {\n background-color: var(--w-color-pill-suggestion-background-active)\n }\n\n .active\\\\:bg-\\\\[var\\\\(--w-black\\\\)\\\\]:active {\n background-color: var(--w-black)\n }\n\n .peer:checked ~ .peer-checked\\\\:before\\\\:bg-\\\\[url\\\\(var\\\\(--w-icon-toggle-checked\\\\)\\\\)\\\\]:before {\n background-image: var(--w-icon-toggle-checked)\n }\n\n .appearance-none {\n -moz-appearance: none;\n appearance: none;\n -webkit-appearance: none\n }\n\n .will-change-height {\n will-change: height\n }\n\n .border, .border-1 {\n border-width: 1px\n }\n\n .border-b {\n border-bottom-width: 1px\n }\n\n .before\\\\:border:before {\n border-width: 1px\n }\n\n .border-0 {\n border-width: 0\n }\n\n .border-2 {\n border-width: 2px\n }\n\n .border-b-0 {\n border-bottom-width: 0\n }\n\n .border-b-4 {\n border-bottom-width: 4px\n }\n\n .border-l-4 {\n border-left-width: 4px\n }\n\n .border-r-0, .group:not(:last-of-type) .group-not-last-of-type\\\\:border-r-0 {\n border-right-width: 0\n }\n\n .peer:checked ~ .peer-checked\\\\:before\\\\:border-\\\\[6\\\\]:before {\n border-width: .6rem\n }\n\n .border-transparent {\n border-color: transparent\n }\n\n .border-\\\\[--w-color-buttongroup-utility-border\\\\] {\n border-color: var(--w-color-buttongroup-utility-border)\n }\n\n .border-\\\\[--w-color-callout-border\\\\] {\n border-color: var(--w-color-callout-border)\n }\n\n .border-\\\\[--w-s-color-background-inverted\\\\] {\n border-color: var(--w-s-color-background-inverted)\n }\n\n .border-\\\\[--w-s-color-surface-elevated-300\\\\] {\n border-color: var(--w-s-color-surface-elevated-300)\n }\n\n .active\\\\:border-\\\\[--w-color-buttongroup-utility-border-selected\\\\]:active {\n border-color: var(--w-color-buttongroup-utility-border-selected)\n }\n\n .divide-x > * + * {\n --w-divide-x-reverse: 0;\n border-left-width: calc(1px * calc(1 - var(--w-divide-x-reverse)));\n border-right-width: calc(1px * var(--w-divide-x-reverse))\n }\n\n .divide-y > * + * {\n --w-divide-y-reverse: 0;\n border-top-width: calc(1px * calc(1 - var(--w-divide-y-reverse)));\n border-bottom-width: calc(1px * var(--w-divide-y-reverse))\n }\n\n .rounded-4 {\n border-radius: 4px\n }\n\n .rounded-8 {\n border-radius: 8px\n }\n\n .rounded-full {\n border-radius: 9999px\n }\n\n .before\\\\:rounded-2:before {\n border-radius: 2px\n }\n\n .before\\\\:rounded-full:before {\n border-radius: 9999px\n }\n\n .rounded-b-0 {\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0\n }\n\n .rounded-bl-0 {\n border-bottom-left-radius: 0\n }\n\n .rounded-br-0 {\n border-bottom-right-radius: 0\n }\n\n .rounded-l-0 {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0\n }\n\n .rounded-l-full {\n border-top-left-radius: 9999px;\n border-bottom-left-radius: 9999px\n }\n\n .rounded-r-0 {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0\n }\n\n .rounded-r-full {\n border-top-right-radius: 9999px;\n border-bottom-right-radius: 9999px\n }\n\n .rounded-tl-0 {\n border-top-left-radius: 0\n }\n\n .rounded-tl-4 {\n border-top-left-radius: 4px\n }\n\n .rounded-tr-0 {\n border-top-right-radius: 0\n }\n\n .group:first-of-type .group-first-of-type\\\\:rounded-bl-8 {\n border-bottom-left-radius: 8px\n }\n\n .group:first-of-type .group-first-of-type\\\\:rounded-tl-8 {\n border-top-left-radius: 8px\n }\n\n .first\\\\:rounded-lb-4:first-child {\n border-bottom-left-radius: 4px\n }\n\n .first\\\\:rounded-lt-4:first-child {\n border-top-left-radius: 4px\n }\n\n .first\\\\:rounded-rt-4:first-child {\n border-top-right-radius: 4px\n }\n\n .group:last-of-type .group-last-of-type\\\\:rounded-br-8 {\n border-bottom-right-radius: 8px\n }\n\n .group:last-of-type .group-last-of-type\\\\:rounded-tr-8 {\n border-top-right-radius: 8px\n }\n\n .last\\\\:rounded-lb-4:last-child {\n border-bottom-left-radius: 4px\n }\n\n .last\\\\:rounded-rb-4:last-child {\n border-bottom-right-radius: 4px\n }\n\n .last\\\\:rounded-rt-4:last-child {\n border-top-right-radius: 4px\n }\n\n .caret-current {\n caret-color: currentColor\n }\n\n .opacity-25 {\n opacity: 25%\n }\n\n .block {\n display: block\n }\n\n .before\\\\:block:before {\n display: block\n }\n\n .inline-block {\n display: inline-block\n }\n\n .inline {\n display: inline\n }\n\n .flex, .open\\\\:flex[open] {\n display: flex\n }\n\n .inline-flex {\n display: inline-flex\n }\n\n .grid {\n display: grid\n }\n\n .inline-grid {\n display: inline-grid\n }\n\n .hidden, .group\\\\/stepv:last-child .group-last\\\\/stepv\\\\:hidden {\n display: none\n }\n\n .before\\\\:hidden:before {\n display: none\n }\n\n .hover\\\\:underline:hover {\n text-decoration-line: underline\n }\n\n .focus\\\\:underline:focus {\n text-decoration-line: underline\n }\n\n .focus-visible\\\\:underline:focus-visible {\n text-decoration-line: underline\n }\n\n .active\\\\:underline:active {\n text-decoration-line: underline\n }\n\n .hover\\\\:no-underline:hover {\n text-decoration: none\n }\n\n .focus\\\\:no-underline:focus {\n text-decoration: none\n }\n\n .active\\\\:no-underline:active {\n text-decoration: none\n }\n\n .flex-1 {\n flex: 1 1 0%\n }\n\n .shrink {\n flex-shrink: 1\n }\n\n .shrink-0 {\n flex-shrink: 0\n }\n\n .shrink-0\\\\! {\n flex-shrink: 0 !important\n }\n\n .grow, .grow-1 {\n flex-grow: 1\n }\n\n .basis-auto {\n flex-basis: auto\n }\n\n .flex-col {\n flex-direction: column\n }\n\n .focus-within\\\\:focusable:focus-within {\n outline: 2px solid var(--w-s-color-border-focus);\n outline-offset: var(--w-outline-offset, 1px)\n }\n\n .focusable:focus, .focusable:focus-visible {\n outline: 2px solid var(--w-s-color-border-focus);\n outline-offset: var(--w-outline-offset, 1px)\n }\n\n .focusable:not(:focus-visible) {\n outline: none\n }\n\n .peer:focus ~ .peer-focus\\\\:focusable, .peer:focus-visible ~ .peer-focus\\\\:focusable {\n outline: 2px solid var(--w-s-color-border-focus);\n outline-offset: var(--w-outline-offset, 1px)\n }\n\n .peer:not(:focus-visible) ~ .peer-focus\\\\:focusable {\n outline: none\n }\n\n .focusable-inset {\n --w-outline-offset: -3px\n }\n\n .gap-12 {\n gap: 1.2rem\n }\n\n .gap-8 {\n gap: .8rem\n }\n\n .gap-x-16 {\n column-gap: 1.6rem\n }\n\n .gap-y-16 {\n row-gap: 1.6rem\n }\n\n .row-span-2 {\n grid-row: span 2/span 2\n }\n\n .col-span-2 {\n grid-column: span 2/span 2\n }\n\n .col-span-3 {\n grid-column: span 3/span 3\n }\n\n .row-start-1 {\n grid-row-start: 1\n }\n\n .row-start-2 {\n grid-row-start: 2\n }\n\n .col-start-2 {\n grid-column-start: 2\n }\n\n .auto-rows-auto {\n grid-auto-rows: auto\n }\n\n .grid-flow-col {\n grid-auto-flow: column\n }\n\n .grid-rows-\\\\[20px_auto\\\\] {\n grid-template-rows:20px auto\n }\n\n .grid-rows-\\\\[auto_20px\\\\] {\n grid-template-rows:auto 20px\n }\n\n .grid-cols-\\\\[1fr_20px_1fr\\\\] {\n grid-template-columns:1fr 20px 1fr\n }\n\n .grid-cols-\\\\[1fr_20px\\\\] {\n grid-template-columns:1fr 20px\n }\n\n .grid-cols-\\\\[20px_1fr\\\\] {\n grid-template-columns:20px 1fr\n }\n\n .grid-cols-\\\\[auto_1fr_auto\\\\] {\n grid-template-columns:auto 1fr auto\n }\n\n .grid-cols-1 {\n grid-template-columns:repeat(1, minmax(0, 1fr))\n }\n\n .grid-cols-2 {\n grid-template-columns:repeat(2, minmax(0, 1fr))\n }\n\n .grid-cols-3 {\n grid-template-columns:repeat(3, minmax(0, 1fr))\n }\n\n .grid-cols-4 {\n grid-template-columns:repeat(4, minmax(0, 1fr))\n }\n\n .grid-cols-5 {\n grid-template-columns:repeat(5, minmax(0, 1fr))\n }\n\n .grid-cols-6 {\n grid-template-columns:repeat(6, minmax(0, 1fr))\n }\n\n .grid-cols-7 {\n grid-template-columns:repeat(7, minmax(0, 1fr))\n }\n\n .grid-cols-8 {\n grid-template-columns:repeat(8, minmax(0, 1fr))\n }\n\n .grid-cols-9 {\n grid-template-columns:repeat(9, minmax(0, 1fr))\n }\n\n .overflow-hidden {\n overflow: hidden\n }\n\n .overflow-x-hidden {\n overflow-x: hidden\n }\n\n .overflow-y-auto {\n overflow-y: auto\n }\n\n .list-none {\n list-style-type: none\n }\n\n .outline-\\\\[--w-s-color-border-negative\\\\]\\\\! {\n outline-color: var(--w-s-color-border-negative) !important\n }\n\n .outline-none {\n outline: 2px solid transparent;\n outline-offset: 2px\n }\n\n .focus\\\\:outline-none:focus {\n outline: 2px solid transparent;\n outline-offset: 2px\n }\n\n .items-start {\n align-items: flex-start\n }\n\n .items-end {\n align-items: flex-end\n }\n\n .items-center {\n align-items: center\n }\n\n .self-center {\n align-self: center\n }\n\n .inset-0 {\n top: 0rem;\n right: 0rem;\n bottom: 0rem;\n left: 0rem\n }\n\n .-bottom-0 {\n bottom: -0rem\n }\n\n .bottom-0 {\n bottom: 0rem\n }\n\n .bottom-10 {\n bottom: 1rem\n }\n\n .bottom-16 {\n bottom: 1.6rem\n }\n\n .left-0 {\n left: 0rem\n }\n\n .left-4 {\n left: .4rem\n }\n\n .right-0 {\n right: 0rem\n }\n\n .right-8 {\n right: .8rem\n }\n\n .top-\\\\[1\\\\.92rem\\\\] {\n top: 1.92rem\n }\n\n .top-0 {\n top: 0rem\n }\n\n .top-20 {\n top: 2rem\n }\n\n .top-4 {\n top: .4rem\n }\n\n .top-8 {\n top: .8rem\n }\n\n .before\\\\:bottom-0:before {\n bottom: 0rem\n }\n\n .before\\\\:left-0:before {\n left: 0rem\n }\n\n .before\\\\:right-0:before {\n right: 0rem\n }\n\n .before\\\\:top-2:before {\n top: .2rem\n }\n\n .-bottom-\\\\[8px\\\\] {\n bottom: -8px\n }\n\n .-left-\\\\[8px\\\\] {\n left: -8px\n }\n\n .-right-\\\\[8px\\\\] {\n right: -8px\n }\n\n .-top-\\\\[8px\\\\] {\n top: -8px\n }\n\n .top-\\\\[19px\\\\] {\n top: 19px\n }\n\n .top-\\\\[30\\\\%\\\\] {\n top: 30%\n }\n\n .justify-end {\n justify-content: flex-end\n }\n\n .justify-center {\n justify-content: center\n }\n\n .justify-between {\n justify-content: space-between\n }\n\n .justify-items-center {\n justify-items: center\n }\n\n .justify-self-start {\n justify-self: start\n }\n\n .justify-self-end {\n justify-self: end\n }\n\n .justify-self-center {\n justify-self: center\n }\n\n .absolute {\n position: absolute\n }\n\n .fixed {\n position: fixed\n }\n\n .relative {\n position: relative\n }\n\n .open\\\\:fixed[open] {\n position: fixed\n }\n\n .before\\\\:absolute:before {\n position: absolute\n }\n\n .z-10, .peer:checked ~ .peer-checked\\\\:z-10 {\n z-index: 10\n }\n\n .z-30 {\n z-index: 30\n }\n\n .z-50 {\n z-index: 50\n }\n\n .hover\\\\:z-30:hover {\n z-index: 30\n }\n\n .\\\\!s-bg-selected {\n background-color: var(--w-s-color-background-selected) !important\n }\n\n .s-bg {\n background-color: var(--w-s-color-background)\n }\n\n .s-bg-disabled {\n background-color: var(--w-s-color-background-disabled)\n }\n\n .s-bg-disabled-subtle {\n background-color: var(--w-s-color-background-disabled-subtle)\n }\n\n .s-bg-info-subtle {\n background-color: var(--w-s-color-background-info-subtle)\n }\n\n .s-bg-inverted {\n background-color: var(--w-s-color-background-inverted)\n }\n\n .s-bg-negative {\n background-color: var(--w-s-color-background-negative)\n }\n\n .s-bg-negative-subtle {\n background-color: var(--w-s-color-background-negative-subtle)\n }\n\n .s-bg-positive-subtle {\n background-color: var(--w-s-color-background-positive-subtle)\n }\n\n .s-bg-primary, .peer:checked ~ .peer-checked\\\\:s-bg-primary {\n background-color: var(--w-s-color-background-primary)\n }\n\n .s-bg-selected {\n background-color: var(--w-s-color-background-selected)\n }\n\n .s-bg-subtle {\n background-color: var(--w-s-color-background-subtle)\n }\n\n .s-bg-warning-subtle {\n background-color: var(--w-s-color-background-warning-subtle)\n }\n\n .peer:checked:hover ~ .peer-checked\\\\:peer-hover\\\\:before\\\\:s-bg-negative-hover:before {\n background-color: var(--w-s-color-background-negative-hover)\n }\n\n .peer:checked:hover ~ .peer-checked\\\\:peer-hover\\\\:before\\\\:s-bg-primary-hover:before {\n background-color: var(--w-s-color-background-primary-hover)\n }\n\n .peer:checked ~ .peer-checked\\\\:before\\\\:s-bg-disabled:before {\n background-color: var(--w-s-color-background-disabled)\n }\n\n .peer:checked ~ .peer-checked\\\\:before\\\\:s-bg-negative:before {\n background-color: var(--w-s-color-background-negative)\n }\n\n .peer:checked ~ .peer-checked\\\\:before\\\\:s-bg-primary:before {\n background-color: var(--w-s-color-background-primary)\n }\n\n .peer:indeterminate ~ .peer-indeterminate\\\\:before\\\\:s-bg-disabled:before {\n background-color: var(--w-s-color-background-disabled)\n }\n\n .peer:indeterminate ~ .peer-indeterminate\\\\:before\\\\:s-bg-negative:before {\n background-color: var(--w-s-color-background-negative)\n }\n\n .peer:indeterminate ~ .peer-indeterminate\\\\:before\\\\:s-bg-primary:before {\n background-color: var(--w-s-color-background-primary)\n }\n\n .peer:indeterminate ~ .peer-indeterminate\\\\:hover\\\\:before\\\\:s-bg-negative-hover:hover:before {\n background-color: var(--w-s-color-background-negative-hover)\n }\n\n .peer:indeterminate ~ .peer-indeterminate\\\\:hover\\\\:before\\\\:s-bg-primary-hover:hover:before {\n background-color: var(--w-s-color-background-primary-hover)\n }\n\n .\\\\!hover\\\\:s-bg-selected-hover:hover {\n background-color: var(--w-s-color-background-selected-hover) !important\n }\n\n .group:hover .group-hover\\\\:s-bg-primary-hover {\n background-color: var(--w-s-color-background-primary-hover)\n }\n\n .hover\\\\:before\\\\:s-bg-hover:hover:before {\n background-color: var(--w-s-color-background-hover)\n }\n\n .hover\\\\:before\\\\:s-bg-negative-subtle-hover:hover:before {\n background-color: var(--w-s-color-background-negative-subtle-hover)\n }\n\n .hover\\\\:s-bg-hover:hover {\n background-color: var(--w-s-color-background-hover)\n }\n\n .hover\\\\:s-bg-negative-hover:hover {\n background-color: var(--w-s-color-background-negative-hover)\n }\n\n .hover\\\\:s-bg-negative-subtle-hover:hover {\n background-color: var(--w-s-color-background-negative-subtle-hover)\n }\n\n .hover\\\\:s-bg-primary-hover:hover {\n background-color: var(--w-s-color-background-primary-hover)\n }\n\n .hover\\\\:s-bg-selected-hover:hover {\n background-color: var(--w-s-color-background-selected-hover)\n }\n\n .peer:hover:not(:checked) ~ .peer-hover\\\\:peer-not-checked\\\\:s-bg-hover {\n background-color: var(--w-s-color-background-hover)\n }\n\n .peer:hover ~ .peer-hover\\\\:before\\\\:s-bg-hover:before {\n background-color: var(--w-s-color-background-hover)\n }\n\n .peer:hover ~ .peer-hover\\\\:before\\\\:s-bg-negative-subtle:before {\n background-color: var(--w-s-color-background-negative-subtle)\n }\n\n .focus\\\\:s-bg-primary-hover:focus {\n background-color: var(--w-s-color-background-primary-hover)\n }\n\n .\\\\!active\\\\:s-bg-selected-active:active {\n background-color: var(--w-s-color-background-selected-active) !important\n }\n\n .active\\\\:s-bg-active:active {\n background-color: var(--w-s-color-background-active)\n }\n\n .active\\\\:s-bg-negative-active:active {\n background-color: var(--w-s-color-background-negative-active)\n }\n\n .active\\\\:s-bg-negative-subtle-active:active {\n background-color: var(--w-s-color-background-negative-subtle-active)\n }\n\n .active\\\\:s-bg-primary-active:active {\n background-color: var(--w-s-color-background-primary-active)\n }\n\n .active\\\\:s-bg-selected-active:active {\n background-color: var(--w-s-color-background-selected-active)\n }\n\n .before\\\\:s-bg-disabled-subtle:before {\n background-color: var(--w-s-color-background-disabled-subtle)\n }\n\n .before\\\\:s-bg:before {\n background-color: var(--w-s-color-background)\n }\n\n .s-text {\n color: var(--w-s-color-text)\n }\n\n .s-text-disabled {\n color: var(--w-s-color-text-disabled)\n }\n\n .s-text-inverted, .peer:checked ~ .peer-checked\\\\:s-text-inverted {\n color: var(--w-s-color-text-inverted)\n }\n\n .s-text-inverted-static {\n color: var(--w-s-color-text-inverted-static)\n }\n\n .s-text-link {\n color: var(--w-s-color-text-link)\n }\n\n .s-text-negative {\n color: var(--w-s-color-text-negative)\n }\n\n .s-text-subtle {\n color: var(--w-s-color-text-subtle)\n }\n\n .hover\\\\:s-text-link:hover {\n color: var(--w-s-color-text-link)\n }\n\n .active\\\\:s-text:active {\n color: var(--w-s-color-text)\n }\n\n .placeholder\\\\:s-text-placeholder::placeholder {\n color: var(--w-s-color-text-placeholder)\n }\n\n .s-icon {\n color: var(--w-s-color-icon)\n }\n\n .s-icon-info {\n color: var(--w-s-color-icon-info)\n }\n\n .s-icon-inverted {\n color: var(--w-s-color-icon-inverted)\n }\n\n .s-icon-negative {\n color: var(--w-s-color-icon-negative)\n }\n\n .s-icon-positive {\n color: var(--w-s-color-icon-positive)\n }\n\n .s-icon-warning {\n color: var(--w-s-color-icon-warning)\n }\n\n .hover\\\\:s-icon-hover:hover {\n color: var(--w-s-color-icon-hover)\n }\n\n .active\\\\:s-icon-active:active {\n color: var(--w-s-color-icon-active)\n }\n\n .before\\\\:s-icon-inverted:before {\n color: var(--w-s-color-icon-inverted)\n }\n\n .s-border {\n border-color: var(--w-s-color-border)\n }\n\n .s-border-disabled {\n border-color: var(--w-s-color-border-disabled)\n }\n\n .s-border-info-subtle {\n border-color: var(--w-s-color-border-info-subtle)\n }\n\n .s-border-l-info {\n border-left-color: var(--w-s-color-border-info)\n }\n\n .s-border-l-negative {\n border-left-color: var(--w-s-color-border-negative)\n }\n\n .s-border-l-positive {\n border-left-color: var(--w-s-color-border-positive)\n }\n\n .s-border-l-warning {\n border-left-color: var(--w-s-color-border-warning)\n }\n\n .s-border-negative {\n border-color: var(--w-s-color-border-negative)\n }\n\n .s-border-negative-subtle {\n border-color: var(--w-s-color-border-negative-subtle)\n }\n\n .s-border-positive-subtle {\n border-color: var(--w-s-color-border-positive-subtle)\n }\n\n .s-border-primary, .peer:checked ~ .peer-checked\\\\:s-border-primary {\n border-color: var(--w-s-color-border-primary)\n }\n\n .s-border-selected {\n border-color: var(--w-s-color-border-selected)\n }\n\n .s-border-warning-subtle {\n border-color: var(--w-s-color-border-warning-subtle)\n }\n\n .peer:checked:hover ~ .peer-checked\\\\:peer-hover\\\\:before\\\\:s-border-negative-hover:before {\n border-color: var(--w-s-color-border-negative-hover)\n }\n\n .peer:checked:hover ~ .peer-checked\\\\:peer-hover\\\\:before\\\\:s-border-primary-hover:before {\n border-color: var(--w-s-color-border-primary-hover)\n }\n\n .peer:checked:hover ~ .peer-checked\\\\:peer-hover\\\\:before\\\\:s-border-selected-hover:before {\n border-color: var(--w-s-color-border-selected-hover)\n }\n\n .peer:checked ~ .peer-checked\\\\:before\\\\:s-border-disabled:before {\n border-color: var(--w-s-color-border-disabled)\n }\n\n .peer:checked ~ .peer-checked\\\\:before\\\\:s-border-negative:before {\n border-color: var(--w-s-color-border-negative)\n }\n\n .peer:checked ~ .peer-checked\\\\:before\\\\:s-border-primary:before {\n border-color: var(--w-s-color-border-primary)\n }\n\n .peer:checked ~ .peer-checked\\\\:before\\\\:s-border-selected:before {\n border-color: var(--w-s-color-border-selected)\n }\n\n .peer:indeterminate ~ .peer-indeterminate\\\\:before\\\\:s-border-disabled:before {\n border-color: var(--w-s-color-border-disabled)\n }\n\n .peer:indeterminate ~ .peer-indeterminate\\\\:before\\\\:s-border-negative:before {\n border-color: var(--w-s-color-border-negative)\n }\n\n .peer:indeterminate ~ .peer-indeterminate\\\\:before\\\\:s-border-primary:before {\n border-color: var(--w-s-color-border-primary)\n }\n\n .peer:indeterminate ~ .peer-indeterminate\\\\:hover\\\\:before\\\\:s-border-negative-hover:hover:before {\n border-color: var(--w-s-color-border-negative-hover)\n }\n\n .peer:indeterminate ~ .peer-indeterminate\\\\:hover\\\\:before\\\\:s-border-primary-hover:hover:before {\n border-color: var(--w-s-color-border-primary-hover)\n }\n\n .group:hover .group-hover\\\\:s-border-selected-hover {\n border-color: var(--w-s-color-border-selected-hover)\n }\n\n .hover\\\\:before\\\\:s-border-negative-hover:hover:before {\n border-color: var(--w-s-color-border-negative-hover)\n }\n\n .hover\\\\:before\\\\:s-border-primary:hover:before {\n border-color: var(--w-s-color-border-primary)\n }\n\n .hover\\\\:s-border-disabled:hover {\n border-color: var(--w-s-color-border-disabled)\n }\n\n .hover\\\\:s-border-hover:hover {\n border-color: var(--w-s-color-border-hover)\n }\n\n .hover\\\\:s-border-negative-hover:hover {\n border-color: var(--w-s-color-border-negative-hover)\n }\n\n .hover\\\\:s-border-primary-hover:hover {\n border-color: var(--w-s-color-border-primary-hover)\n }\n\n .hover\\\\:s-border-primary:hover {\n border-color: var(--w-s-color-border-primary)\n }\n\n .hover\\\\:s-border-selected-hover:hover {\n border-color: var(--w-s-color-border-selected-hover)\n }\n\n .peer:hover ~ .peer-hover\\\\:before\\\\:s-border-negative-hover:before {\n border-color: var(--w-s-color-border-negative-hover)\n }\n\n .peer:hover ~ .peer-hover\\\\:before\\\\:s-border-primary:before {\n border-color: var(--w-s-color-border-primary)\n }\n\n .focus\\\\:s-border-primary-hover:focus {\n border-color: var(--w-s-color-border-primary-hover)\n }\n\n .active\\\\:s-border-active:active {\n border-color: var(--w-s-color-border-active)\n }\n\n .active\\\\:s-border-disabled:active {\n border-color: var(--w-s-color-border-disabled)\n }\n\n .active\\\\:s-border-primary-active:active {\n border-color: var(--w-s-color-border-primary-active)\n }\n\n .active\\\\:s-border-selected-active:active {\n border-color: var(--w-s-color-border-selected-active)\n }\n\n .active\\\\:s-border-selected:active {\n border-color: var(--w-s-color-border-selected)\n }\n\n .group:active .group-active\\\\:s-border-active {\n border-color: var(--w-s-color-border-active)\n }\n\n .group:active .group-active\\\\:s-border-selected-active {\n border-color: var(--w-s-color-border-selected-active)\n }\n\n .before\\\\:s-border-disabled:before {\n border-color: var(--w-s-color-border-disabled)\n }\n\n .before\\\\:s-border-negative:before {\n border-color: var(--w-s-color-border-negative)\n }\n\n .s-surface-sunken {\n background-color: var(--w-s-color-surface-sunken)\n }\n\n .s-surface-elevated-200 {\n background-color: var(--w-s-color-surface-elevated-200);\n box-shadow: var(--w-s-shadow-surface-elevated-200)\n }\n\n .hover\\\\:s-surface-elevated-200-hover:hover {\n background-color: var(--w-s-color-surface-elevated-200-hover);\n box-shadow: var(--w-s-shadow-surface-elevated-200-hover)\n }\n\n .active\\\\:s-surface-elevated-200-active:active {\n background-color: var(--w-s-color-surface-elevated-200-active);\n box-shadow: var(--w-s-shadow-surface-elevated-200-active)\n }\n\n .drop-shadow-m {\n filter: drop-shadow(rgba(64, 64, 64, .24) 0 3px 8px) drop-shadow(rgba(64, 64, 64, .16) 0 3px 6px)\n }\n\n .shadow-m {\n box-shadow: var(--w-shadow-m)\n }\n\n .shadow-s {\n box-shadow: var(--w-shadow-s)\n }\n\n .shadow-\\\\[--w-shadow-slider\\\\] {\n box-shadow: var(--w-shadow-slider)\n }\n\n .hover\\\\:shadow-\\\\[--w-shadow-slider-handle-hover\\\\]:hover {\n box-shadow: var(--w-shadow-slider-handle-hover)\n }\n\n .focus\\\\:shadow-\\\\[--w-shadow-slider-handle-hover\\\\]:focus {\n box-shadow: var(--w-shadow-slider-handle-hover)\n }\n\n .active\\\\:shadow-\\\\[--w-shadow-slider-handle-active\\\\]:active {\n box-shadow: var(--w-shadow-slider-handle-active)\n }\n\n .h-0 {\n height: 0rem\n }\n\n .h-16 {\n height: 1.6rem\n }\n\n .h-2 {\n height: .2rem\n }\n\n .h-20 {\n height: 2rem\n }\n\n .h-24 {\n height: 2.4rem\n }\n\n .h-4 {\n height: .4rem\n }\n\n .h-44 {\n height: 4.4rem\n }\n\n .h-6 {\n height: .6rem\n }\n\n .h-8 {\n height: .8rem\n }\n\n .h-full {\n height: 100%\n }\n\n .h-unset {\n height: unset\n }\n\n .max-h-unset {\n max-height: unset\n }\n\n .max-w-full {\n max-width: 100%\n }\n\n .max-w-max {\n max-width: max-content\n }\n\n .max-w-unset {\n max-width: unset\n }\n\n .min-h-32 {\n min-height: 3.2rem\n }\n\n .min-h-40 {\n min-height: 4rem\n }\n\n .min-w-16 {\n min-width: 1.6rem\n }\n\n .min-w-32 {\n min-width: 3.2rem\n }\n\n .w-16 {\n width: 1.6rem\n }\n\n .w-2 {\n width: .2rem\n }\n\n .w-20 {\n width: 2rem\n }\n\n .w-24 {\n width: 2.4rem\n }\n\n .w-32 {\n width: 3.2rem\n }\n\n .w-40 {\n width: 4rem\n }\n\n .w-44 {\n width: 4.4rem\n }\n\n .w-8 {\n width: .8rem\n }\n\n .w-full {\n width: 100%\n }\n\n .w-max {\n width: max-content\n }\n\n .w-unset {\n width: unset\n }\n\n .before\\\\:h-20:before {\n height: 2rem\n }\n\n .before\\\\:h-full:before {\n height: 100%\n }\n\n .before\\\\:w-20:before {\n width: 2rem\n }\n\n .before\\\\:w-32:before {\n width: 3.2rem\n }\n\n .h-\\\\[--w-modal-height\\\\] {\n height: var(--w-modal-height)\n }\n\n .h-\\\\[14px\\\\] {\n height: 14px\n }\n\n .h-\\\\[16px\\\\] {\n height: 16px\n }\n\n .max-h-\\\\[--w-modal-max-height\\\\] {\n max-height: var(--w-modal-max-height)\n }\n\n .min-h-\\\\[--w-modal-min-height\\\\] {\n min-height: var(--w-modal-min-height)\n }\n\n .min-h-\\\\[32px\\\\] {\n min-height: 32px\n }\n\n .min-h-\\\\[40px\\\\] {\n min-height: 40px\n }\n\n .min-h-\\\\[42\\\\] {\n min-height: 4.2rem\n }\n\n .min-h-\\\\[44px\\\\] {\n min-height: 44px\n }\n\n .min-w-\\\\[32px\\\\] {\n min-width: 32px\n }\n\n .min-w-\\\\[40px\\\\] {\n min-width: 40px\n }\n\n .min-w-\\\\[44px\\\\] {\n min-width: 44px\n }\n\n .w-\\\\[--w-modal-width\\\\] {\n width: var(--w-modal-width)\n }\n\n .w-\\\\[14px\\\\] {\n width: 14px\n }\n\n .w-\\\\[16px\\\\] {\n width: 16px\n }\n\n .space-x-8 > :not([hidden]) ~ :not([hidden]) {\n --w-space-x-reverse: 0;\n margin-left: calc(.8rem * calc(1 - var(--w-space-x-reverse)));\n margin-right: calc(.8rem * var(--w-space-x-reverse))\n }\n\n .space-y-16 > :not([hidden]) ~ :not([hidden]) {\n --w-space-y-reverse: 0;\n margin-top: calc(1.6rem * calc(1 - var(--w-space-y-reverse)));\n margin-bottom: calc(1.6rem * var(--w-space-y-reverse))\n }\n\n .m-0 {\n margin: 0rem\n }\n\n .m-auto {\n margin: auto\n }\n\n .-mx-16 {\n margin-left: -1.6rem;\n margin-right: -1.6rem\n }\n\n .mx-0 {\n margin-left: 0rem;\n margin-right: 0rem\n }\n\n .mx-8 {\n margin-left: .8rem;\n margin-right: .8rem\n }\n\n .mx-auto {\n margin-left: auto;\n margin-right: auto\n }\n\n .-mb-1 {\n margin-bottom: -.1rem\n }\n\n .-ml-8 {\n margin-left: -.8rem\n }\n\n .-mr-1 {\n margin-right: -.1rem\n }\n\n .-mr-8 {\n margin-right: -.8rem\n }\n\n .-mt-2 {\n margin-top: -.2rem\n }\n\n .-mt-4 {\n margin-top: -.4rem\n }\n\n .last-child\\\\:mb-0 > :last-child, .mb-0 {\n margin-bottom: 0rem\n }\n\n .mb-32 {\n margin-bottom: 3.2rem\n }\n\n .ml-8 {\n margin-left: .8rem\n }\n\n .ml-auto {\n margin-left: auto\n }\n\n .mr-8 {\n margin-right: .8rem\n }\n\n .mt-16 {\n margin-top: 1.6rem\n }\n\n .mt-4 {\n margin-top: .4rem\n }\n\n .group:not(:first-child) .group-not-first\\\\:-ml-2 {\n margin-left: -.2rem\n }\n\n .last\\\\:mb-0:last-child {\n margin-bottom: 0rem\n }\n\n .last\\\\:mr-0:last-child {\n margin-right: 0rem\n }\n\n .m-\\\\[8px\\\\] {\n margin: 8px\n }\n\n .p-0 {\n padding: 0rem\n }\n\n .p-16 {\n padding: 1.6rem\n }\n\n .p-4 {\n padding: .4rem\n }\n\n .p-8 {\n padding: .8rem\n }\n\n .px-0 {\n padding-left: 0rem;\n padding-right: 0rem\n }\n\n .px-1 {\n padding-left: .1rem;\n padding-right: .1rem\n }\n\n .px-12 {\n padding-left: 1.2rem;\n padding-right: 1.2rem\n }\n\n .px-14 {\n padding-left: 1.4rem;\n padding-right: 1.4rem\n }\n\n .px-16 {\n padding-left: 1.6rem;\n padding-right: 1.6rem\n }\n\n .px-8 {\n padding-left: .8rem;\n padding-right: .8rem\n }\n\n .py-0 {\n padding-top: 0rem;\n padding-bottom: 0rem\n }\n\n .py-1 {\n padding-top: .1rem;\n padding-bottom: .1rem\n }\n\n .py-10 {\n padding-top: 1rem;\n padding-bottom: 1rem\n }\n\n .py-12 {\n padding-top: 1.2rem;\n padding-bottom: 1.2rem\n }\n\n .py-2 {\n padding-top: .2rem;\n padding-bottom: .2rem\n }\n\n .py-4 {\n padding-top: .4rem;\n padding-bottom: .4rem\n }\n\n .py-6 {\n padding-top: .6rem;\n padding-bottom: .6rem\n }\n\n .py-8 {\n padding-top: .8rem;\n padding-bottom: .8rem\n }\n\n .pb-0 {\n padding-bottom: 0rem\n }\n\n .pb-32 {\n padding-bottom: 3.2rem\n }\n\n .pb-4 {\n padding-bottom: .4rem\n }\n\n .pb-8 {\n padding-bottom: .8rem\n }\n\n .pl-0 {\n padding-left: 0rem\n }\n\n .pl-1 {\n padding-left: .1rem\n }\n\n .pl-12 {\n padding-left: 1.2rem\n }\n\n .pl-28 {\n padding-left: 2.8rem\n }\n\n .pl-4 {\n padding-left: .4rem\n }\n\n .pl-8 {\n padding-left: .8rem\n }\n\n .pr-12 {\n padding-right: 1.2rem\n }\n\n .pr-14 {\n padding-right: 1.4rem\n }\n\n .pr-2 {\n padding-right: .2rem\n }\n\n .pr-32 {\n padding-right: 3.2rem\n }\n\n .pr-40 {\n padding-right: 4rem\n }\n\n .pt-0 {\n padding-top: 0rem\n }\n\n .pt-1 {\n padding-top: .1rem\n }\n\n .pt-16 {\n padding-top: 1.6rem\n }\n\n .pt-24 {\n padding-top: 2.4rem\n }\n\n .pt-8 {\n padding-top: .8rem\n }\n\n .group\\\\/step:last-child .group-last\\\\/step\\\\:last\\\\:pb-0:last-child {\n padding-bottom: 0rem\n }\n\n .last\\\\:pb-1:last-child {\n padding-bottom: .1rem\n }\n\n .last\\\\:pr-1:last-child {\n padding-right: .1rem\n }\n\n .p-\\\\[8px\\\\] {\n padding: 8px\n }\n\n .px-\\\\[15px\\\\] {\n padding-left: 15px;\n padding-right: 15px\n }\n\n .px-\\\\[8px\\\\] {\n padding-left: 8px;\n padding-right: 8px\n }\n\n .py-\\\\[11px\\\\] {\n padding-top: 11px;\n padding-bottom: 11px\n }\n\n .py-\\\\[5px\\\\] {\n padding-top: 5px;\n padding-bottom: 5px\n }\n\n .py-\\\\[7px\\\\] {\n padding-top: 7px;\n padding-bottom: 7px\n }\n\n .pl-\\\\[var\\\\(--w-prefix-width\\\\,_40px\\\\)\\\\] {\n padding-left: var(--w-prefix-width, 40px)\n }\n\n .invisible {\n visibility: hidden\n }\n\n .backface-hidden {\n backface-visibility: hidden\n }\n\n .break-words {\n overflow-wrap: break-word\n }\n\n .before\\\\:content-\\\\[\\\\\"\u00E2\u20AC\u201C\\\\\"\\\\]:before {\n content: \"\u00E2\u20AC\u201C\"\n }\n\n .before\\\\:content-\\\\[\\\\\"\\\\\"\\\\]:before {\n content: \"\"\n }\n\n .cursor-default {\n cursor: default\n }\n\n .cursor-pointer {\n cursor: pointer\n }\n\n .antialiased {\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n font-smoothing: grayscale\n }\n\n .font-bold {\n font-weight: 700\n }\n\n .before\\\\:font-bold:before {\n font-weight: 700\n }\n\n .font-normal {\n font-weight: 400\n }\n\n .pointer-events-auto {\n pointer-events: auto\n }\n\n .pointer-events-none {\n pointer-events: none\n }\n\n .before\\\\:pointer-events-none:before {\n pointer-events: none\n }\n\n .pb-safe-\\\\[32\\\\] {\n padding-bottom: calc(32px + env(safe-area-inset-bottom, 0px))\n }\n\n .sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0\n }\n\n .touch-pan-y {\n touch-action: pan-y\n }\n\n .select-none {\n -webkit-user-select: none;\n user-select: none\n }\n\n .translate-x-20 {\n --w-translate-x: 2rem;\n transform: translate(var(--w-translate-x)) translateY(var(--w-translate-y)) translateZ(var(--w-translate-z)) rotate(var(--w-rotate)) rotateX(var(--w-rotate-x)) rotateY(var(--w-rotate-y)) rotate(var(--w-rotate-z)) skew(var(--w-skew-x)) skewY(var(--w-skew-y)) scaleX(var(--w-scale-x)) scaleY(var(--w-scale-y)) scaleZ(var(--w-scale-z))\n }\n\n .translate-z-0 {\n --w-translate-z: 0rem;\n transform: translate(var(--w-translate-x)) translateY(var(--w-translate-y)) translateZ(var(--w-translate-z)) rotate(var(--w-rotate)) rotateX(var(--w-rotate-x)) rotateY(var(--w-rotate-y)) rotate(var(--w-rotate-z)) skew(var(--w-skew-x)) skewY(var(--w-skew-y)) scaleX(var(--w-scale-x)) scaleY(var(--w-scale-y)) scaleZ(var(--w-scale-z))\n }\n\n .-rotate-180, .part-\\\\[w-icon-chevron-down-16-part\\\\]\\\\:-rotate-180::part(w-icon-chevron-down-16-part) {\n --w-rotate-x: 0;\n --w-rotate-y: 0;\n --w-rotate-z: 0;\n --w-rotate: -180deg;\n transform: translate(var(--w-translate-x)) translateY(var(--w-translate-y)) translateZ(var(--w-translate-z)) rotate(var(--w-rotate)) rotateX(var(--w-rotate-x)) rotateY(var(--w-rotate-y)) rotate(var(--w-rotate-z)) skew(var(--w-skew-x)) skewY(var(--w-skew-y)) scaleX(var(--w-scale-x)) scaleY(var(--w-scale-y)) scaleZ(var(--w-scale-z))\n }\n\n .part-\\\\[w-icon-chevron-up-16-part\\\\]\\\\:rotate-180::part(w-icon-chevron-up-16-part), .rotate-180 {\n --w-rotate-x: 0;\n --w-rotate-y: 0;\n --w-rotate-z: 0;\n --w-rotate: 180deg;\n transform: translate(var(--w-translate-x)) translateY(var(--w-translate-y)) translateZ(var(--w-translate-z)) rotate(var(--w-rotate)) rotateX(var(--w-rotate-x)) rotateY(var(--w-rotate-y)) rotate(var(--w-rotate-z)) skew(var(--w-skew-x)) skewY(var(--w-skew-y)) scaleX(var(--w-scale-x)) scaleY(var(--w-scale-y)) scaleZ(var(--w-scale-z))\n }\n\n .rotate-90 {\n --w-rotate-x: 0;\n --w-rotate-y: 0;\n --w-rotate-z: 0;\n --w-rotate: 90deg;\n transform: translate(var(--w-translate-x)) translateY(var(--w-translate-y)) translateZ(var(--w-translate-z)) rotate(var(--w-rotate)) rotateX(var(--w-rotate-x)) rotateY(var(--w-rotate-y)) rotate(var(--w-rotate-z)) skew(var(--w-skew-x)) skewY(var(--w-skew-y)) scaleX(var(--w-scale-x)) scaleY(var(--w-scale-y)) scaleZ(var(--w-scale-z))\n }\n\n .part-\\\\[w-icon-chevron-down-16-part\\\\]\\\\:transform::part(w-icon-chevron-down-16-part), .part-\\\\[w-icon-chevron-up-16-part\\\\]\\\\:transform::part(w-icon-chevron-up-16-part), .transform {\n transform: translate(var(--w-translate-x)) translateY(var(--w-translate-y)) translateZ(var(--w-translate-z)) rotate(var(--w-rotate)) rotateX(var(--w-rotate-x)) rotateY(var(--w-rotate-y)) rotate(var(--w-rotate-z)) skew(var(--w-skew-x)) skewY(var(--w-skew-y)) scaleX(var(--w-scale-x)) scaleY(var(--w-scale-y)) scaleZ(var(--w-scale-z))\n }\n\n .part-\\\\[w-icon-chevron-down-16-part\\\\]\\\\:transform-gpu::part(w-icon-chevron-down-16-part), .part-\\\\[w-icon-chevron-up-16-part\\\\]\\\\:transform-gpu::part(w-icon-chevron-up-16-part), .transform-gpu {\n transform: translate3d(var(--w-translate-x), var(--w-translate-y), var(--w-translate-z)) rotate(var(--w-rotate)) rotateX(var(--w-rotate-x)) rotateY(var(--w-rotate-y)) rotate(var(--w-rotate-z)) skew(var(--w-skew-x)) skewY(var(--w-skew-y)) scaleX(var(--w-scale-x)) scaleY(var(--w-scale-y)) scaleZ(var(--w-scale-z))\n }\n\n .part-\\\\[w-icon-chevron-down-16-part\\\\]\\\\:transition-transform::part(w-icon-chevron-down-16-part), .part-\\\\[w-icon-chevron-up-16-part\\\\]\\\\:transition-transform::part(w-icon-chevron-up-16-part), .transition-transform {\n transition-property: transform;\n transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n transition-duration: .15s\n }\n\n .transition-300 {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;\n transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n transition-duration: .3s\n }\n\n .transition-all {\n transition-property: all;\n transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n transition-duration: .15s\n }\n\n .transition-colors {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;\n transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n transition-duration: .15s\n }\n\n .transition-shadow {\n transition-property: box-shadow;\n transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n transition-duration: .15s\n }\n\n .before\\\\:transition-all:before {\n transition-property: all;\n transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n transition-duration: .15s\n }\n\n .duration-300 {\n transition-duration: .3s\n }\n\n .ease-in-out, .part-\\\\[w-icon-chevron-down-16-part\\\\]\\\\:ease-in-out::part(w-icon-chevron-down-16-part), .part-\\\\[w-icon-chevron-up-16-part\\\\]\\\\:ease-in-out::part(w-icon-chevron-up-16-part) {\n transition-timing-function: cubic-bezier(.4, 0, .2, 1)\n }\n\n .text-m {\n font-size: var(--w-font-size-m);\n line-height: var(--w-line-height-m)\n }\n\n .text-s {\n font-size: var(--w-font-size-s);\n line-height: var(--w-line-height-s)\n }\n\n .text-xs {\n font-size: var(--w-font-size-xs);\n line-height: var(--w-line-height-xs)\n }\n\n .leading-m {\n line-height: var(--w-line-height-m)\n }\n\n .before\\\\:leading-xs:before {\n line-height: var(--w-line-height-xs)\n }\n\n .leading-\\\\[24\\\\] {\n line-height: 2.4rem\n }\n\n @media (max-width: 479.9px) {\n .lt-sm\\\\:rounded-b-0 {\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0\n }\n }\n @media (min-width: 480px) {\n .sm\\\\:border-b-0 {\n border-bottom-width: 0\n }\n\n .sm\\\\:rounded-8 {\n border-radius: 8px\n }\n\n .sm\\\\:rounded-b-8 {\n border-bottom-left-radius: 8px;\n border-bottom-right-radius: 8px\n }\n\n .sm\\\\:gap-16 {\n gap: 1.6rem\n }\n\n .sm\\\\:place-content-center {\n place-content: center\n }\n\n .sm\\\\:place-items-center {\n place-items: center\n }\n\n .sm\\\\:h-24 {\n height: 2.4rem\n }\n\n .sm\\\\:min-h-48 {\n min-height: 4.8rem\n }\n\n .sm\\\\:w-24 {\n width: 2.4rem\n }\n\n .sm\\\\:min-h-\\\\[32px\\\\] {\n min-height: 32px\n }\n\n .sm\\\\:min-h-\\\\[44px\\\\] {\n min-height: 44px\n }\n\n .sm\\\\:min-h-\\\\[45\\\\] {\n min-height: 4.5rem\n }\n\n .sm\\\\:min-w-\\\\[32px\\\\] {\n min-width: 32px\n }\n\n .sm\\\\:min-w-\\\\[44px\\\\] {\n min-width: 44px\n }\n\n .sm\\\\:mx-0 {\n margin-left: 0rem;\n margin-right: 0rem\n }\n\n .sm\\\\:mx-16 {\n margin-left: 1.6rem;\n margin-right: 1.6rem\n }\n\n .sm\\\\:-ml-12 {\n margin-left: -1.2rem\n }\n\n .sm\\\\:-mr-12 {\n margin-right: -1.2rem\n }\n\n .sm\\\\:-mt-8 {\n margin-top: -.8rem\n }\n\n .sm\\\\:px-32 {\n padding-left: 3.2rem;\n padding-right: 3.2rem\n }\n\n .sm\\\\:py-0 {\n padding-top: 0rem;\n padding-bottom: 0rem\n }\n\n .sm\\\\:pb-32 {\n padding-bottom: 3.2rem\n }\n\n .sm\\\\:pt-24 {\n padding-top: 2.4rem\n }\n\n .sm\\\\:pt-32 {\n padding-top: 3.2rem\n }\n }\n @media (min-width: 768px) {\n .md\\\\:block {\n display: block\n }\n\n .md\\\\:hidden {\n display: none\n }\n }\n `;\n", "/*eslint-disable*/export const messages=JSON.parse(\"{\\\"datepicker.toggle.changeDate\\\":[\\\"Change date, \\\",[\\\"currentDate\\\"]],\\\"datepicker.toggle.chooseDate\\\":[\\\"Choose date\\\"],\\\"datepicker.calendar.roleDescription\\\":[\\\"Date picker\\\"],\\\"datepicker.calendar.nextMonth\\\":[\\\"Next month\\\"],\\\"datepicker.calendar.previousMonth\\\":[\\\"Previous month\\\"]}\");", "/*eslint-disable*/export const messages=JSON.parse(\"{\\\"datepicker.toggle.changeDate\\\":[\\\"Change date, \\\",[\\\"currentDate\\\"]],\\\"datepicker.toggle.chooseDate\\\":[\\\"Choose date\\\"],\\\"datepicker.calendar.roleDescription\\\":[\\\"Date picker\\\"],\\\"datepicker.calendar.nextMonth\\\":[\\\"Next month\\\"],\\\"datepicker.calendar.previousMonth\\\":[\\\"Previous month\\\"]}\");", "/*eslint-disable*/export const messages=JSON.parse(\"{\\\"datepicker.toggle.changeDate\\\":[\\\"Change date, \\\",[\\\"currentDate\\\"]],\\\"datepicker.toggle.chooseDate\\\":[\\\"Choose date\\\"],\\\"datepicker.calendar.roleDescription\\\":[\\\"Date picker\\\"],\\\"datepicker.calendar.nextMonth\\\":[\\\"Next month\\\"],\\\"datepicker.calendar.previousMonth\\\":[\\\"Previous month\\\"]}\");", "/*eslint-disable*/export const messages=JSON.parse(\"{\\\"datepicker.toggle.changeDate\\\":[\\\"Endre dato, \\\",[\\\"currentDate\\\"]],\\\"datepicker.toggle.chooseDate\\\":[\\\"Velg dato\\\"],\\\"datepicker.calendar.roleDescription\\\":[\\\"datovelger\\\"],\\\"datepicker.calendar.nextMonth\\\":[\\\"G\u00E5 til neste m\u00E5ned\\\"],\\\"datepicker.calendar.previousMonth\\\":[\\\"G\u00E5 til forrige m\u00E5ned\\\"]}\");", "/*eslint-disable*/export const messages=JSON.parse(\"{\\\"datepicker.toggle.changeDate\\\":[\\\"Change date, \\\",[\\\"currentDate\\\"]],\\\"datepicker.toggle.chooseDate\\\":[\\\"Choose date\\\"],\\\"datepicker.calendar.roleDescription\\\":[\\\"Date picker\\\"],\\\"datepicker.calendar.nextMonth\\\":[\\\"Next month\\\"],\\\"datepicker.calendar.previousMonth\\\":[\\\"Previous month\\\"]}\");", "import { css } from 'lit';\n\nexport const wDatepickerStyles = css`\n /* CustomDatePicker.css */\n\n /* container */\n .w-datepicker-wrapper {\n position: relative;\n display: inline-block;\n width: 100%;\n font-size: var(--w-font-size-m);\n line-height: var(--w-line-height-m);\n }\n .w-datepicker-input-wrapper {\n position: relative;\n }\n /* hide the browser\u2019s calendar icon, and prevent the native popup */\n .w-datepicker-input {\n /* remove default arrows/appearance */\n -webkit-appearance: none;\n -moz-appearance: textfield;\n appearance: none;\n\n /* basic styling */\n display: block;\n padding: 1.2rem 0.8rem;\n border: 1px solid #ccc;\n border-radius: 4px;\n width: 100%;\n height: 48px;\n cursor: pointer;\n font-size: var(--w-font-size-m);\n line-height: var(--w-line-height-m);\n background-color: var(--w-s-color-background);\n }\n .w-datepicker-input:hover {\n border-color: var(--w-s-color-border-hover);\n }\n .w-datepicker-input:active {\n border-color: var(--w-s-color-border-selected);\n }\n\n .w-datepicker-input:focus,\n .w-datepicker-input:focus-visible {\n outline: 2px solid var(--w-s-color-border-focus);\n outline-offset: -2px;\n }\n\n .w-datepicker-input-label {\n font-size: var(--w-font-size-s);\n line-height: var(--w-line-height-s);\n font-weight: 700;\n cursor: pointer;\n padding-bottom: 0.4rem;\n color: var(--w-s-color-text);\n display: block;\n }\n\n /* custom calendar button */\n .w-datepicker-button {\n position: absolute;\n right: 2px;\n top: 2px;\n height: 44px;\n width: 44px !important;\n border-radius: 2px !important;\n border: none;\n cursor: pointer;\n pointer-events: auto; /* override parent\u2019s none */\n }\n\n .w-datepicker-button:not(:hover) {\n background-color: var(--w-s-color-background) !important;\n }\n\n input[type='date']::-webkit-inner-spin-button,\n input[type='date']::-webkit-calendar-picker-indicator {\n display: none;\n -webkit-appearance: none;\n }\n input[type='date'],\n input[type='time'],\n input[type='datetime-local'],\n input[type='month'] {\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n }\n /* Temporary dropdown, should probably use the appropriate component when it is done */\n .w-dropdown__popover {\n position: absolute;\n width: max-content;\n background-color: var(--w-s-color-background);\n box-shadow: var(--w-shadow-s);\n z-index: 100;\n border-radius: 8px;\n visibility: hidden;\n }\n .w-dropdown__popover--open {\n visibility: visible;\n }\n`;\n", "import { css } from 'lit';\n\nexport const wDatepickerCalendarStyles = css`\n .w-datepicker__calendar {\n --_calendar-border-color: var(--calendar-border-color, initial);\n --_calendar-border-style: var(--calendar-border-style, none);\n --_calendar-border-width: var(--calendar-border-width, 0);\n --_calendar-border-radius: var(--calendar-border-radius, 0);\n position: relative;\n z-index: 30;\n\n border: var(--_calendar-border-width) var(--_calendar-border-style) var(--_calendar-border-color);\n border-radius: var(--_calendar-border-radius);\n padding: 16px;\n }\n`;\n", "import { css } from 'lit';\n\nexport const wDatepickerDayStyles = css`\n /* === Day Cell === */\n .w-datepicker__day {\n /* No longer in use? */\n --_day-in-range-background: var(--day-in-range-background, var(--w-s-color-background-primary-subtle-active));\n\n text-align: center;\n cursor: pointer;\n outline: none;\n position: relative;\n\n color: var(--day-color, var(--w-s-color-text));\n background-color: var(--day-background, transparent);\n width: var(--day-width, 40px);\n height: var(--day-height, 40px);\n padding: var(--day-padding, 0);\n font-weight: var(--day-font-weight, normal);\n font-size: var(--w-font-size-s);\n line-height: var(--w-line-height-s);\n border-radius: var(--day-border-radius, 50%);\n }\n\n .w-datepicker__day:hover {\n --day-color: var(--w-s-color-text);\n --day-background: var(--w-s-color-background-hover);\n --day-border-radius: 50%;\n }\n .w-datepicker__day:active {\n --day-color: var(--w-s-color-text);\n --day-background: var(--w-s-color-background-active);\n --day-border-radius: 50%;\n }\n\n .w-datepicker__day:focus-visible {\n text-decoration: none;\n outline: 2px solid var(--w-s-color-border-focus);\n outline-offset: var(--w-outline-offset, -2px);\n }\n\n /* === Day variants === */\n .w-datepicker__day--today {\n --day-font-weight: bold;\n }\n\n .w-datepicker__day--selected {\n --day-background: var(--w-s-color-background-primary);\n --day-color: var(--w-s-color-text-inverted);\n --day-font-weight: bold;\n }\n .w-datepicker__day--selected:hover,\n .w-datepicker__day--selected:focus-visible {\n --day-background: var(--w-s-color-background-primary-hover);\n --day-color: var(--w-s-color-text-inverted);\n --day-font-weight: bold;\n }\n\n .w-datepicker__day--disabled,\n .w-datepicker__day--disabled:hover {\n --day-color: var(--w-s-color-text-disabled);\n cursor: not-allowed;\n pointer-events: none;\n }\n`;\n", "import { css } from 'lit';\n\nexport const wDatepickerMonthStyles = css`\n .w-datepicker__month {\n /* Sets default used in the day fragment */\n --day-width: 40px;\n\n --_month-color: var(--month-color, var(--w-s-color-text));\n --_month-font-size: var(--month-font-size, var(--w-font-size-m));\n --_month-line-height: var(--month-line-height, var(--w-line-height-m));\n\n --_month-table-min-width: var(--month-table-min-width, calc(var(--day-width) * 7));\n\n --_weekdays-font-size: var(--weekdays-font-size, var(--w-font-size-xs));\n --_weekdays-line-height: var(--weekdays-font-size, var(--w-line-height-xs));\n --_weekdays-font-weight: var(--weekdays-font-weight, bold);\n\n --_weekdays-padding: var(--weekdays-padding, 8px 0 4px 0);\n\n text-align: center;\n user-select: none;\n display: inline-block;\n\n color: var(--_month-color);\n font-size: var(--_month-font-size);\n line-height: var(--_month-line-height);\n }\n\n .w-datepicker__month__nav {\n margin: 0 0 8px 0;\n }\n\n .w-datepicker__month__nav__header {\n text-align: center;\n font-weight: Bold;\n }\n\n .w-datepicker__table {\n width: 100%;\n border-spacing: 0;\n border-collapse: collapse;\n display: block;\n min-width: var(--_month-table-min-width);\n padding-top: 8px;\n }\n\n .w-datepicker__weekday {\n text-align: center;\n font-size: var(--_weekdays-font-size);\n line-height: var(--_weekdays-line-height);\n font-weight: var(--_weekdays-font-weight);\n padding: var(--_weekdays-padding);\n }\n\n .w-datepicker__month-nav {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n }\n\n .w-datepicker__month__nav__button {\n flex-shrink: 0;\n }\n\n .w-datepicker__month__nav__header {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n text-align: center;\n }\n`;\n", "const dateOnlyRe = /^\\d{4}-\\d{2}-\\d{2}$/;\n\n/**\n * Parses an ISO-8601 string into a JS Date.\n *\n * Supports:\n * - YYYY-MM-DD\n * - YYYY-MM-DDThh:mm:ss(.sss)?(Z|\u00B1hh:mm)?\n *\n * @param {string} isoString\n * @returns {Date}\n * @throws {TypeError} if input isn\u2019t a string\n * @throws {Error} if string is not a valid ISO-8601 date\n */\nexport function fromISOToDate(isoString: string): Date | null {\n if (typeof isoString !== 'string') {\n return null;\n }\n\n // If it's a bare date (YYYY-MM-DD), treat it as UTC midnight\n let normalized = isoString;\n if (dateOnlyRe.test(isoString)) {\n normalized = `${isoString}T00:00:00Z`;\n }\n\n const timestamp = Date.parse(normalized);\n if (Number.isNaN(timestamp)) {\n return null;\n }\n\n return new Date(timestamp);\n}\n"],
5
+ "mappings": "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AAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAkRRE,GAAaF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;UCpRD,IAAMG,GAAS,KAAK,MAAM,+QAAqS,ECA/T,IAAMC,GAAS,KAAK,MAAM,+QAAqS,ECA/T,IAAMC,GAAS,KAAK,MAAM,+QAAqS,ECA/T,IAAMC,GAAS,KAAK,MAAM,qSAA+S,ECAzU,IAAMC,GAAS,KAAK,MAAM,+QAAqS,ECAxV,OAAS,OAAAC,OAAW,MAEb,IAAMC,GAAoBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ECFjC,OAAS,OAAAE,OAAW,MAEb,IAAMC,GAA4BD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ECFzC,OAAS,OAAAE,OAAW,MAEb,IAAMC,GAAuBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ECFpC,OAAS,OAAAE,OAAW,MAEb,IAAMC,GAAyBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ECFtC,IAAME,GAAa,sBAcZ,SAASC,GAAcC,EAAgC,CAC5D,GAAI,OAAOA,GAAc,SACvB,OAAO,KAIT,IAAIC,EAAaD,EACbF,GAAW,KAAKE,CAAS,IAC3BC,EAAa,GAAGD,CAAS,cAG3B,IAAME,EAAY,KAAK,MAAMD,CAAU,EACvC,OAAI,OAAO,MAAMC,CAAS,EACjB,KAGF,IAAI,KAAKA,CAAS,CAC3B,CjCkBA,IAAMC,GAAK,OAAO,WAAc,YAAc,UAAU,UAAY,GAC9DC,GAAQ,iBAAiB,KAAKD,EAAE,EAChCE,GAAYD,GAAQ,OAAS,OAE7BE,GAAa,WACbC,GAAU,QACVC,GAAiB,SACjBC,GAAY,UACZC,GAAwB,WAKxBC,GAAgB,CACpB,GAAIC,GACJ,GAAAC,GACA,GAAAC,GACA,GAAAC,GACA,GAAAC,EACF,EApEAC,GAAAC,EAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GA6EMC,EAAN,cAA6BC,GAAiBC,EAAU,CAAE,CAySxD,aAAc,CACZ,MAAM,EA1SVC,GAAA,KAAAb,GA2BE,kBAAe,YAQf,mBAAgB,SA0BhB,eAAY,OAGZ,oBAAiB,GAGjB,oBAAuBc,GAAa,EAIpC,YAAiBpB,GAajBmB,GAAA,KAAAd,GAA+B,MAwN7BgB,GAAaC,GAAYA,GAAYA,GAAYA,GAAYA,EAAU,EAEvE,IAAMC,EAAOC,GAAa,EACtBD,GAAQxB,GAAcwB,CAAI,IAC5B,KAAK,OAASxB,GAAcwB,CAAI,GAGlC,KAAK,gBAAkB,KAAK,gBAAgB,KAAK,IAAI,CACvD,CA1OA,IAAI,cAA4B,CAvJlC,IAAAE,EAwJI,OAAOA,EAAAC,GAAc,KAAK,KAAK,IAAxB,KAAAD,EAA6B,IACtC,CAGA,IAAI,OAAQ,CACV,OAAOE,GAAa,KAAK,cAAc,CACzC,CAMA,IAAI,OAAQ,CACV,IAAMC,EAAQ,KAAK,MACbC,EAAiB,KAAK,eAQtBC,EAPaC,GACjB,CACE,MAAOJ,GAAaC,CAAK,EACzB,IAAKI,GAAeJ,CAAK,CAC3B,EACA,CAAE,OAAQ,KAAK,MAAO,CACxB,EAEG,IAAKK,IAAe,CACnB,MAAOA,EACP,IAAKC,GAAUD,EAAW,CAAE,OAAQ,KAAK,MAAO,CAAC,CACnD,EAAE,EACD,IAAKE,GAASC,GAAkBD,CAAI,CAAC,EAGxC,GAAIE,GAAYR,EAAgBD,CAAK,EAAG,CACtC,IAAMU,EAAcC,GAAeV,EAAgB,CAAE,OAAQ,KAAK,MAAO,CAAC,EAAI,EAIxEW,EAAMC,GAAyBZ,EAAgBa,EAAYb,EAAgB,CAAE,OAAQ,KAAK,MAAO,CAAC,CAAC,EAEzGC,EAAcQ,CAAW,EAAEE,CAAG,EAAIX,CACpC,CACA,OAAOC,CACT,CA8BA,kBAAyB,CACvB,KAAK,MAAQa,GAAA,KAAKtC,GACpB,CAqCQ,gBAAgBuC,EAA4B,CAC9C,CAAC,KAAK,gBAIiB,KAAK,SAASA,EAAE,MAAc,IAKzD,KAAK,eAAiB,GACxB,CAmHA,mBAA0B,CACxB,MAAM,kBAAkB,EAExBC,GAAA,KAAKxC,GAAgB,KAAK,OAG1B,IAAMkB,EAAO,KAAK,KAKlB,GAJIA,GAAQxB,GAAcwB,CAAI,IAC5B,KAAK,OAASxB,GAAcwB,CAAI,GAG9B,KAAK,MAAO,CACd,IAAMuB,EAAMpB,GAAc,KAAK,KAAK,EAChCoB,IACF,KAAK,eAAiBA,EAE1B,CAEA,SAAS,iBAAiB,YAAa,KAAK,eAAe,EAC3D,SAAS,iBAAiB,WAAY,KAAK,eAAe,EAC1D,SAAS,iBAAiB,UAAW,KAAK,eAAe,CAC3D,CAEA,sBAA6B,CAC3B,MAAM,qBAAqB,EAE3B,SAAS,oBAAoB,YAAa,KAAK,eAAe,EAC9D,SAAS,oBAAoB,WAAY,KAAK,eAAe,EAC7D,SAAS,oBAAoB,UAAW,KAAK,eAAe,CAC9D,CAEA,QAAQC,EAA+C,CACjDA,EAAkB,IAAI,OAAO,GAE/B,KAAK,SAAS,KAAK,KAAK,CAE5B,CAEA,QAAS,CACP,OAAOC;AAAA,8CACmCnD,EAAS;AAAA,uDACAF,EAAO,KAAK,KAAK,KAAK;AAAA;AAAA;AAAA,kBAG3DA,EAAO;AAAA,oBACLF,EAAS;AAAA,oBACTwD,GAAU,KAAK,IAAI,CAAC;AAAA,qBACnBA,GAAU,KAAK,KAAK,CAAC;AAAA;AAAA,sBAEpBC,EAAA,KAAK5C,EAAAM,GAAa;AAAA,sBAClBsC,EAAA,KAAK5C,EAAAK,GAAQ;AAAA,wBACXuC,EAAA,KAAK5C,EAAAO,GAAe;AAAA;AAAA,0BAG9B,KAAK,MACDsC,EAAK,EAAE,CACL,GAAI,+BACJ,OAAQ,CAAE,YAAaC,GAAO,KAAK,MAAO,KAAK,SAAS,CAAE,EAC1D,QAAS,6BACT,QACE,6HACJ,CAAC,EACDD,EAAK,EAAE,CACL,GAAI,+BACJ,QAAS,cACT,QACE,8HACJ,CAAC,CACP;AAAA,6BACiBzD,EAAU;AAAA;AAAA,2BAEZE,EAAc;AAAA,kBACvBA,EAAc;AAAA;AAAA;AAAA;AAAA,sBAIVsD,EAAA,KAAK5C,EAAAC,GAAmB;AAAA;AAAA;AAAA;AAAA;AAAA,0EAK4B8C,GAAS,CAAE,QAAS,KAAK,eAAiB,OAAY,MAAO,CAAC,CAAC;AAAA;AAAA,wBAEjHF,EAAK,EAAE,CACnB,GAAI,sCACJ,QAAS,cACT,QAAS,gFACX,CAAC,CAAC;AAAA;AAAA;AAAA;AAAA,yBAIazD,EAAU;AAAA,gBACnBA,EAAU;AAAA,sBACJwD,EAAA,KAAK5C,EAAAQ,GAAkB;AAAA;AAAA;AAAA,4BAGjBqC,EAAK,EAAE,CACnB,GAAI,oCACJ,QAAS,iBACT,QAAS,oDACX,CAAC,CAAC;AAAA;AAAA,oBAEIrD,EAAqB;AAAA,6BACZA,EAAqB;AAAA;AAAA;AAAA;AAAA,wBAI1BoD,EAAA,KAAK5C,EAAAG,GAAc;AAAA;AAAA;AAAA;AAAA,gBAI3B2C,GAAO,KAAK,MAAO,KAAK,aAAc,CAAE,OAAQ,KAAK,MAAO,CAAC,CAAC;AAAA;AAAA;AAAA,4BAGlDD,EAAK,EAAE,CACnB,GAAI,gCACJ,QAAS,aACT,QAAS,gDACX,CAAC,CAAC;AAAA;AAAA,6BAEazD,EAAU;AAAA;AAAA;AAAA;AAAA,wBAIfwD,EAAA,KAAK5C,EAAAE,GAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAQnB,KAAK,MAAM,CAAC,EAAE,IACbgC,GACCQ,uCAAyCI,GAAOZ,EAAK,KAAK,cAAe,CAAE,OAAQ,KAAK,MAAO,CAAC,CAAC,QACrG,CAAC;AAAA;AAAA;AAAA;AAAA,kBAID,KAAK,MAAM,IACVL,GACCa;AAAA,wBACIb,EAAK,IAAKK,GAAQ,CAClB,GAAI,CAACH,GAAY,KAAK,MAAOG,CAAG,EAC9B,OAAOQ,cAGT,IAAMM,EAAa,KAAK,cAAgB,KAAK,cAAcd,CAAG,EAAI,GAC5De,EAAaC,GAAUhB,EAAK,KAAK,YAAY,EAC7CiB,EAAmBjB,IAAQ,KAAK,eAEtC,OAAOQ;AAAA,0CACWC,GAAUS,GAAQlB,CAAG,EAAI,OAAS,MAAS,CAAC;AAAA,2CAC3Cc,CAAU;AAAA,wCACbF,GAAOZ,EAAK,KAAK,UAAW,CAAE,OAAQ,KAAK,MAAO,CAAC,CAAC;AAAA,2CACjDe,CAAU;AAAA,mCAClBI,GAAS,CAChB,oBAAqB,GACrB,2BAA4BD,GAAQlB,CAAG,EACvC,8BAA+Be,EAC/B,8BAA+BD,EAC/B,gCAAiCG,CACnC,CAAC,CAAC;AAAA,6CACiBA,CAAgB;AAAA,uCACtBG,GAAUpB,EAAK,CAAE,eAAgB,MAAO,CAAC,CAAC;AAAA;AAAA,sCAE3CiB,EAAmB,EAAI,EAAE;AAAA,oCAC3BH,EAAa,OAAYJ,EAAA,KAAK5C,EAAAS,GAAiB;AAAA,sCAC7CuC,EAAa,OAAYJ,EAAA,KAAK5C,EAAAS,GAAiB;AAAA,iCACpD8C,GAAQrB,CAAG,CAAC;AAAA,8BAEvB,CAAC,CAAC;AAAA,0BAER,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAOf,CACF,EAvZEnC,GAAA,YApFFC,EAAA,YAqJQC,GAAmB,eAACqC,EAA+B,CACvDA,EAAE,eAAe,EACjB,KAAK,eAAiB,CAAC,KAAK,eACxB,KAAK,iBAGP,MAAM,KAAK,gBACV,KAAK,cAAgB,KAAK,WAAW,MAAM,EAEhD,EAEApC,GAAU,UAAG,CACX,KAAK,eAAiBsD,GAAU,KAAK,MAAO,CAAC,CAC/C,EAEArD,GAAc,UAAG,CACf,KAAK,eAAiBsD,GAAU,KAAK,MAAO,CAAC,CAC/C,EAEMrD,GAAoB,gBAAG,CAG3B,MAAM,KAAK,eACX,KAAK,MAAM,cAAc,IAAI,MAAM,SAAU,CAAE,QAAS,GAAM,SAAU,EAAK,CAAC,CAAC,CACjF,EAwBAC,GAAQ,SAACiC,EAAe,CACtB,KAAK,MAASA,EAAE,OAA4B,KAC9C,EAEAhC,GAAa,SAACgC,EAAiB,CAE7BA,EAAE,eAAe,EACjB,KAAK,eAAiB,EACxB,EAEA/B,GAAe,SAAC+B,EAAkB,CAChC,GAAIA,EAAE,MAAQ,IAAK,OAAOM,EAAA,KAAK5C,EAAAC,IAAL,UAAyBqC,IAC/CA,EAAE,MAAQ,KAAOA,EAAE,MAAQ,UAC7BA,EAAE,eAAe,CAErB,EAEM9B,GAAkB,eAAC8B,EAAkB,CACzC,IAAMf,EAAiB,KAAK,eACxBmC,EAEJ,OAAQpB,EAAE,IAAK,CACb,IAAK,UACHoB,EAAoBC,GAAQpC,EAAgB,CAAC,EAC7C,MACF,IAAK,YACHmC,EAAoBC,GAAQpC,EAAgB,CAAC,EAC7C,MACF,IAAK,OACHmC,EAAoBtB,EAAYb,EAAgB,CAAE,OAAQ,KAAK,MAAO,CAAC,EACvE,MACF,IAAK,SACHmC,EAAoBD,GAAUlC,EAAgB,CAAC,EAC/C,MACF,IAAK,YACHmC,EAAoBE,GAAQrC,EAAgB,CAAC,EAC7C,MACF,IAAK,aACHmC,EAAoBE,GAAQrC,EAAgB,CAAC,EAC7C,MACF,IAAK,MACHmC,EAAoB9B,GAAUL,EAAgB,CAAE,OAAQ,KAAK,MAAO,CAAC,EACrE,MACF,IAAK,WACHmC,EAAoBF,GAAUjC,EAAgB,CAAC,EAC/C,MACF,IAAK,SACH,KAAK,eAAiB,GACtB,MACF,IAAK,MACEe,EAAE,OAAuB,UAAY,MAAQ,CAACA,EAAE,UAGnDA,EAAE,eAAe,EACjB,KAAK,oBAAoB,MAAM,GACrBA,EAAE,OAAuB,KAAO9C,IAAyB8C,EAAE,WAKrEA,EAAE,eAAe,GAChB,KAAK,cAAgB,KAAK,WAAW,MAAM,GAE9C,KACJ,CAEIoB,IAEFpB,EAAE,eAAe,EACjB,KAAK,eAAiBoB,EAItB,MAAM,KAAK,eACX,KAAK,aAAa,MAAM,EAE5B,EAEAjD,GAAiB,SAACoD,EAAmC,CAInD,IAAMC,EAAWD,EAAM,cAAuC,QAAQ,KAElE,QAASA,GACPA,EAAM,MAAQ,SAAWA,EAAM,MAAQ,OAEzCA,EAAM,eAAe,EACrB,KAAK,MAAQC,EACb,KAAK,eAAiB,GACtB,KAAK,aAAa,MAAM,EACxBlB,EAAA,KAAK5C,EAAAI,IAAL,aAGF,KAAK,MAAQ0D,EACb,KAAK,eAAiB,GACtBlB,EAAA,KAAK5C,EAAAI,IAAL,WAEJ,EAvSIM,EACG,kBAAoB,CACzB,GAAGE,GAAW,kBACd,eAAgB,EAClB,EAJIF,EAMG,OAAS,CAACqD,GAAOC,GAAmBC,GAA2BC,GAAsBC,EAAsB,EAGlHC,EAAA,CADCC,EAAS,CAAE,QAAS,EAAK,CAAC,GARvB3D,EASJ,qBAIA0D,EAAA,CADCC,EAAS,CAAE,QAAS,EAAK,CAAC,GAZvB3D,EAaJ,oBAGA0D,EAAA,CADCC,EAAS,CAAE,QAAS,EAAK,CAAC,GAfvB3D,EAgBJ,oBAGA0D,EAAA,CADCC,EAAS,CAAE,QAAS,EAAK,CAAC,GAlBvB3D,EAmBJ,qBAQA0D,EAAA,CADCC,EAAS,CAAE,UAAW,eAAgB,CAAC,GA1BpC3D,EA2BJ,4BAQA0D,EAAA,CADCC,EAAS,CAAE,UAAW,gBAAiB,CAAC,GAlCrC3D,EAmCJ,6BAkBA0D,EAAA,CADCC,EAAS,CAAE,UAAW,EAAM,CAAC,GApD1B3D,EAqDJ,6BAQA0D,EAAA,CADCC,EAAS,CAAE,UAAW,YAAa,CAAC,GA5DjC3D,EA6DJ,yBAGA0D,EAAA,CADCE,GAAM,GA/DH5D,EAgEJ,8BAGA0D,EAAA,CADCE,GAAM,GAlEH5D,EAmEJ,8BAIA0D,EAAA,CADCE,GAAM,GAtEH5D,EAuEJ,sBAGI0D,EAAA,CADHE,GAAM,GAzEH5D,EA0EA,4BAKA0D,EAAA,CADHE,GAAM,GA9EH5D,EA+EA,qBAQA0D,EAAA,CADHE,GAAM,GAtFH5D,EAuFA,qBA+BJ0D,EAAA,CADCG,GAAM,IAAInF,EAAU,EAAE,GArHnBsB,EAsHJ,wBAGA0D,EAAA,CADCG,GAAM,IAAIlF,EAAO,GAAI,EAAI,GAxHtBqB,EAyHJ,qBAGA0D,EAAA,CADCG,GAAM,IAAIjF,EAAc,GAAI,EAAI,GA3H7BoB,EA4HJ,4BAGA0D,EAAA,CADCG,GAAM,IAAIhF,EAAS,GAAI,EAAI,GA9HxBmB,EA+HJ,uBAUA0D,EAAA,CADCG,GAAM,IAAI/E,EAAqB,EAAE,GAxI9BkB,EAyIJ,mCAGA0D,EAAA,CADCG,GAAM,uBAAuB,GA3I1B7D,EA4IJ,yBAGA0D,EAAA,CADCG,GAAM,0BAA0B,GA9I7B7D,EA+IJ,4BA8VG,eAAe,IAAI,cAAc,GACpC,eAAe,OAAO,eAAgBA,CAAc",
6
+ "names": ["require_errors", "__commonJSMin", "exports", "ErrorType", "require_dist", "__commonJSMin", "exports", "errors_1", "parseHexToInt", "hex", "validateAndParseHex", "errorName", "enforcedLength", "parsedHex", "parseHexadecimalCode", "code", "parsedCode", "parseUnicodeCode", "surrogateCode", "parsedSurrogateCode", "isCurlyBraced", "text", "parseUnicodeCodePointCode", "codePoint", "withoutBraces", "err", "parseOctalCode", "error", "singleCharacterEscapes", "parseSingleCharacterCode", "escapeMatch", "unraw", "raw", "allowOctals", "_", "backslash", "unicodeWithSurrogate", "surrogate", "unicode", "octal", "singleCharacter", "import_unraw", "isString", "s", "isFunction", "f", "cache", "defaultLocale", "normalizeLocales", "locales", "date", "value", "format", "_locales", "getMemoized", "cacheKey", "time", "o", "number", "plural", "ordinal", "offset", "rules", "_a", "_b", "plurals", "getKey", "construct", "key", "formatter", "type", "options", "localeKey", "UNICODE_REGEX", "OCTOTHORPE_PH", "getDefaultFormats", "locale", "passedLocales", "formats", "locales", "style", "format", "replaceOctothorpe", "value", "message", "numberFormat", "valueStr", "number", "cases", "offset", "plural", "selectFormatter", "date", "time", "rules", "_a", "interpolate", "translation", "values", "formatters", "formatMessage", "tokens", "token", "isString", "name", "type", "interpolatedFormat", "key", "value2", "formatter", "result", "__defProp$1", "__defNormalProp$1", "obj", "__publicField$1", "EventEmitter", "event", "listener", "maybeListeners", "index", "args", "__defProp", "__defNormalProp", "__publicField", "I18n", "params", "defaultLocale", "localeData", "maybeLocaleData", "compiler", "localeOrAllData", "messages", "maybeMessages", "localeOrMessages", "messages2", "id", "options", "messageForId", "messageMissing", "missing", "isFunction", "setupI18n", "i18n", "FormControlMixin", "SuperClass", "FormControl", "args", "_FormControl_focused", "_FormControl_forceError", "_FormControl_touched", "_FormControl_abortController", "_FormControl_previousAbortController", "_FormControl_awaitingValidationTarget", "_FormControl_value", "_FormControl_onFocus", "__classPrivateFieldSet", "__classPrivateFieldGet", "_FormControl_instances", "_FormControl_shouldShowError", "_FormControl_onBlur", "_FormControl_runValidators", "showError", "_FormControl_onInvalid", "_a", "_FormControl_validationCompleteResolver", "_FormControl_isValidationPending", "_FormControl_validationComplete", "_b", "_c", "validatorAttributes", "validator", "observedAttributes", "attribute", "name", "oldValue", "newValue", "validators", "value", "valueToUpdate", "resolve", "rootNode", "selector", "proto", "validity", "asyncValidators", "hasAsyncValidators", "abortController", "validationMessage", "hasChange", "key", "isValid", "isValidatorValid", "_FormControl_getValidatorMessageForValue", "_FormControl_setValidityWithOptionalTarget", "message", "maxTime", "minTime", "millisecondsInWeek", "millisecondsInDay", "secondsInHour", "secondsInDay", "secondsInHour", "secondsInWeek", "secondsInYear", "secondsInMonth", "secondsInQuarter", "constructFromSymbol", "constructFrom", "date", "value", "constructFromSymbol", "toDate", "argument", "context", "constructFrom", "addDays", "date", "amount", "options", "_date", "toDate", "constructFrom", "addMonths", "date", "amount", "options", "_date", "toDate", "constructFrom", "dayOfMonth", "endOfDesiredMonth", "daysInMonth", "defaultOptions", "getDefaultOptions", "startOfWeek", "date", "options", "_a", "_b", "_c", "_d", "_e", "_f", "_g", "_h", "defaultOptions", "getDefaultOptions", "weekStartsOn", "_date", "toDate", "day", "diff", "startOfISOWeek", "date", "options", "startOfWeek", "getISOWeekYear", "date", "options", "_date", "toDate", "year", "fourthOfJanuaryOfNextYear", "constructFrom", "startOfNextYear", "startOfISOWeek", "fourthOfJanuaryOfThisYear", "startOfThisYear", "getTimezoneOffsetInMilliseconds", "date", "_date", "toDate", "utcDate", "normalizeDates", "context", "dates", "normalize", "constructFrom", "date", "startOfDay", "date", "options", "_date", "toDate", "differenceInCalendarDays", "laterDate", "earlierDate", "options", "laterDate_", "earlierDate_", "normalizeDates", "laterStartOfDay", "startOfDay", "earlierStartOfDay", "laterTimestamp", "getTimezoneOffsetInMilliseconds", "earlierTimestamp", "millisecondsInDay", "startOfISOWeekYear", "date", "options", "year", "getISOWeekYear", "fourthOfJanuary", "constructFrom", "startOfISOWeek", "addWeeks", "date", "amount", "options", "addDays", "constructNow", "date", "constructFrom", "isSameDay", "laterDate", "earlierDate", "options", "dateLeft_", "dateRight_", "normalizeDates", "startOfDay", "isDate", "value", "isValid", "date", "isDate", "toDate", "normalizeInterval", "context", "interval", "start", "end", "normalizeDates", "eachDayOfInterval", "interval", "options", "_a", "start", "end", "normalizeInterval", "reversed", "endTime", "date", "step", "dates", "constructFrom", "eachWeekOfInterval", "interval", "options", "_a", "start", "end", "normalizeInterval", "reversed", "startDateWeek", "startOfWeek", "endDateWeek", "endTime", "currentDate", "step", "dates", "constructFrom", "addWeeks", "startOfMonth", "date", "options", "_date", "toDate", "startOfYear", "date", "options", "date_", "toDate", "endOfWeek", "date", "options", "_a", "_b", "_c", "_d", "_e", "_f", "_g", "_h", "defaultOptions", "getDefaultOptions", "weekStartsOn", "_date", "toDate", "day", "diff", "formatDistanceLocale", "formatDistance", "token", "count", "options", "result", "tokenValue", "buildFormatLongFn", "args", "options", "width", "dateFormats", "timeFormats", "dateTimeFormats", "formatLong", "buildFormatLongFn", "formatRelativeLocale", "formatRelative", "token", "_date", "_baseDate", "_options", "buildLocalizeFn", "args", "value", "options", "context", "valuesArray", "defaultWidth", "width", "index", "eraValues", "quarterValues", "monthValues", "dayValues", "dayPeriodValues", "formattingDayPeriodValues", "ordinalNumber", "dirtyNumber", "_options", "number", "rem100", "localize", "buildLocalizeFn", "quarter", "buildMatchFn", "args", "string", "options", "width", "matchPattern", "matchResult", "matchedString", "parsePatterns", "key", "findIndex", "pattern", "findKey", "value", "rest", "object", "predicate", "array", "buildMatchPatternFn", "args", "string", "options", "matchResult", "matchedString", "parseResult", "value", "rest", "matchOrdinalNumberPattern", "parseOrdinalNumberPattern", "matchEraPatterns", "parseEraPatterns", "matchQuarterPatterns", "parseQuarterPatterns", "matchMonthPatterns", "parseMonthPatterns", "matchDayPatterns", "parseDayPatterns", "matchDayPeriodPatterns", "parseDayPeriodPatterns", "match", "buildMatchPatternFn", "value", "buildMatchFn", "index", "enUS", "formatDistance", "formatLong", "formatRelative", "localize", "match", "getDayOfYear", "date", "options", "_date", "toDate", "differenceInCalendarDays", "startOfYear", "getISOWeek", "date", "options", "_date", "toDate", "diff", "startOfISOWeek", "startOfISOWeekYear", "millisecondsInWeek", "getWeekYear", "date", "options", "_a", "_b", "_c", "_d", "_e", "_f", "_g", "_h", "_date", "toDate", "year", "defaultOptions", "getDefaultOptions", "firstWeekContainsDate", "firstWeekOfNextYear", "constructFrom", "startOfNextYear", "startOfWeek", "firstWeekOfThisYear", "startOfThisYear", "startOfWeekYear", "date", "options", "_a", "_b", "_c", "_d", "_e", "_f", "_g", "_h", "defaultOptions", "getDefaultOptions", "firstWeekContainsDate", "year", "getWeekYear", "firstWeek", "constructFrom", "startOfWeek", "getWeek", "date", "options", "_date", "toDate", "diff", "startOfWeek", "startOfWeekYear", "millisecondsInWeek", "addLeadingZeros", "number", "targetLength", "sign", "output", "lightFormatters", "date", "token", "signedYear", "year", "addLeadingZeros", "month", "dayPeriodEnumValue", "numberOfDigits", "milliseconds", "fractionalSeconds", "dayPeriodEnum", "formatters", "date", "token", "localize", "era", "signedYear", "year", "lightFormatters", "options", "signedWeekYear", "getWeekYear", "weekYear", "twoDigitYear", "addLeadingZeros", "isoWeekYear", "getISOWeekYear", "quarter", "month", "week", "getWeek", "isoWeek", "getISOWeek", "dayOfYear", "getDayOfYear", "dayOfWeek", "localDayOfWeek", "isoDayOfWeek", "dayPeriodEnumValue", "hours", "_localize", "timezoneOffset", "formatTimezoneWithOptionalMinutes", "formatTimezone", "formatTimezoneShort", "timestamp", "offset", "delimiter", "sign", "absOffset", "minutes", "dateLongFormatter", "pattern", "formatLong", "timeLongFormatter", "dateTimeLongFormatter", "matchResult", "datePattern", "timePattern", "dateTimeFormat", "longFormatters", "dayOfYearTokenRE", "weekYearTokenRE", "throwTokens", "isProtectedDayOfYearToken", "token", "isProtectedWeekYearToken", "warnOrThrowProtectedError", "format", "input", "_message", "message", "subject", "formattingTokensRegExp", "longFormattingTokensRegExp", "escapedStringRegExp", "doubleQuoteRegExp", "unescapedLatinCharacterRegExp", "format", "date", "formatStr", "options", "_a", "_b", "_c", "_d", "_e", "_f", "_g", "_h", "_i", "_j", "_k", "_l", "_m", "_n", "_o", "_p", "_q", "_r", "defaultOptions", "getDefaultOptions", "locale", "enUS", "firstWeekContainsDate", "weekStartsOn", "originalDate", "toDate", "isValid", "parts", "longFormattingTokensRegExp", "substring", "firstCharacter", "longFormatter", "longFormatters", "formattingTokensRegExp", "cleanEscapedString", "formatters", "unescapedLatinCharacterRegExp", "formatterOptions", "part", "token", "isProtectedWeekYearToken", "isProtectedDayOfYearToken", "warnOrThrowProtectedError", "formatter", "input", "matched", "escapedStringRegExp", "doubleQuoteRegExp", "formatISO", "date", "options", "_a", "_b", "date_", "toDate", "format", "representation", "result", "tzOffset", "dateDelimiter", "timeDelimiter", "day", "addLeadingZeros", "month", "offset", "absoluteOffset", "hourOffset", "minuteOffset", "hour", "minute", "second", "separator", "time", "getDate", "date", "options", "toDate", "getDay", "date", "options", "toDate", "getWeekOfMonth", "date", "options", "_a", "_b", "_c", "_d", "_e", "_f", "_g", "_h", "defaultOptions", "getDefaultOptions", "weekStartsOn", "currentDayOfMonth", "getDate", "toDate", "startWeekDay", "getDay", "startOfMonth", "lastDayOfFirstWeek", "remainingDaysAfterFirstWeek", "lastDayOfMonth", "date", "options", "_date", "toDate", "month", "isSameMonth", "laterDate", "earlierDate", "options", "laterDate_", "earlierDate_", "normalizeDates", "isToday", "date", "options", "isSameDay", "constructFrom", "constructNow", "subDays", "date", "amount", "options", "addDays", "startOfToday", "options", "startOfDay", "subMonths", "date", "amount", "options", "addMonths", "formatDistanceLocale", "formatDistance", "token", "count", "options", "result", "tokenValue", "dateFormats", "timeFormats", "dateTimeFormats", "formatLong", "buildFormatLongFn", "formatRelativeLocale", "formatRelative", "token", "_date", "_baseDate", "_options", "eraValues", "quarterValues", "monthValues", "dayValues", "dayPeriodValues", "formattingDayPeriodValues", "ordinalNumber", "dirtyNumber", "_options", "localize", "buildLocalizeFn", "quarter", "matchOrdinalNumberPattern", "parseOrdinalNumberPattern", "matchEraPatterns", "parseEraPatterns", "matchQuarterPatterns", "parseQuarterPatterns", "matchMonthPatterns", "parseMonthPatterns", "matchDayPatterns", "parseDayPatterns", "matchDayPeriodPatterns", "parseDayPeriodPatterns", "match", "buildMatchPatternFn", "value", "buildMatchFn", "index", "da", "formatDistance", "formatLong", "formatRelative", "localize", "match", "dateFormats", "timeFormats", "dateTimeFormats", "formatLong", "buildFormatLongFn", "enGB", "formatDistance", "formatLong", "formatRelative", "localize", "match", "futureSeconds", "text", "futureMinutes", "futureHours", "futureDays", "futureWeeks", "futureMonths", "futureYears", "formatDistanceLocale", "_text", "formatDistance", "token", "count", "options", "tokenValue", "result", "dateFormats", "timeFormats", "dateTimeFormats", "formatLong", "buildFormatLongFn", "formatRelativeLocale", "formatRelative", "token", "_date", "_baseDate", "_options", "eraValues", "quarterValues", "monthValues", "formattingMonthValues", "dayValues", "formattingDayValues", "dayPeriodValues", "ordinalNumber", "dirtyNumber", "_options", "localize", "buildLocalizeFn", "quarter", "matchOrdinalNumberPattern", "parseOrdinalNumberPattern", "matchEraPatterns", "parseEraPatterns", "matchQuarterPatterns", "parseQuarterPatterns", "matchMonthPatterns", "parseMonthPatterns", "matchDayPatterns", "parseDayPatterns", "matchDayPeriodPatterns", "parseDayPeriodPatterns", "match", "buildMatchPatternFn", "value", "buildMatchFn", "index", "fi", "formatDistance", "formatLong", "formatRelative", "localize", "match", "formatDistanceLocale", "formatDistance", "token", "count", "options", "result", "tokenValue", "dateFormats", "timeFormats", "dateTimeFormats", "formatLong", "buildFormatLongFn", "formatRelativeLocale", "formatRelative", "token", "_date", "_baseDate", "_options", "eraValues", "quarterValues", "monthValues", "dayValues", "dayPeriodValues", "ordinalNumber", "dirtyNumber", "_options", "localize", "buildLocalizeFn", "quarter", "matchOrdinalNumberPattern", "parseOrdinalNumberPattern", "matchEraPatterns", "parseEraPatterns", "matchQuarterPatterns", "parseQuarterPatterns", "matchMonthPatterns", "parseMonthPatterns", "matchDayPatterns", "parseDayPatterns", "matchDayPeriodPatterns", "parseDayPeriodPatterns", "match", "buildMatchPatternFn", "value", "buildMatchFn", "index", "nb", "formatDistance", "formatLong", "formatRelative", "localize", "match", "formatDistanceLocale", "wordMapping", "formatDistance", "token", "count", "options", "result", "tokenValue", "dateFormats", "timeFormats", "dateTimeFormats", "formatLong", "buildFormatLongFn", "formatRelativeLocale", "formatRelative", "token", "_date", "_baseDate", "_options", "eraValues", "quarterValues", "monthValues", "dayValues", "dayPeriodValues", "formattingDayPeriodValues", "ordinalNumber", "dirtyNumber", "_options", "number", "rem100", "localize", "buildLocalizeFn", "quarter", "matchOrdinalNumberPattern", "parseOrdinalNumberPattern", "matchEraPatterns", "parseEraPatterns", "matchQuarterPatterns", "parseQuarterPatterns", "matchMonthPatterns", "parseMonthPatterns", "matchDayPatterns", "parseDayPatterns", "matchDayPeriodPatterns", "parseDayPeriodPatterns", "match", "buildMatchPatternFn", "value", "buildMatchFn", "index", "sv", "formatDistance", "formatLong", "formatRelative", "localize", "match", "html", "LitElement", "property", "query", "state", "classMap", "ifDefined", "styleMap", "LitElement", "unsafeStatic", "html", "messages", "supportedLocales", "defaultLocale", "detectByBrand", "_a", "value", "detectByHost", "hostname", "getSupportedLocale", "usedLocale", "locale", "detectLocale", "serverLocale", "htmlLocale", "hostLocale", "getMessages", "enMsg", "nbMsg", "fiMsg", "daMsg", "svMsg", "activateI18n", "enMessages", "nbMessages", "fiMessages", "daMessages", "svMessages", "i18n", "IconCalendar16", "LitElement", "title", "html", "unsafeStatic", "LitElement", "unsafeStatic", "html", "messages", "supportedLocales", "defaultLocale", "detectByBrand", "_a", "value", "detectByHost", "hostname", "getSupportedLocale", "usedLocale", "locale", "detectLocale", "serverLocale", "htmlLocale", "hostLocale", "getMessages", "enMsg", "nbMsg", "fiMsg", "daMsg", "svMsg", "activateI18n", "enMessages", "nbMessages", "fiMessages", "daMessages", "svMessages", "i18n", "IconChevronLeft16", "LitElement", "title", "html", "unsafeStatic", "LitElement", "unsafeStatic", "html", "messages", "supportedLocales", "defaultLocale", "detectByBrand", "_a", "value", "detectByHost", "hostname", "getSupportedLocale", "usedLocale", "locale", "detectLocale", "serverLocale", "htmlLocale", "hostLocale", "getMessages", "enMsg", "nbMsg", "fiMsg", "daMsg", "svMsg", "activateI18n", "enMessages", "nbMessages", "fiMessages", "daMessages", "svMessages", "i18n", "IconChevronRight16", "LitElement", "title", "html", "unsafeStatic", "supportedLocales", "defaultLocale", "getSupportedLocale", "usedLocale", "locale", "detectLocale", "serverLocale", "htmlLocale", "e", "activateI18n", "enMessages", "nbMessages", "fiMessages", "daMessages", "svMessages", "i18n", "locale", "detectLocale", "css", "reset", "components", "messages", "messages", "messages", "messages", "messages", "css", "wDatepickerStyles", "css", "wDatepickerCalendarStyles", "css", "wDatepickerDayStyles", "css", "wDatepickerMonthStyles", "dateOnlyRe", "fromISOToDate", "isoString", "normalized", "timestamp", "ua", "isIOS", "inputType", "calendarId", "inputId", "toggleButtonId", "wrapperId", "previousMonthButtonId", "datefnsLocale", "enGB", "nb", "sv", "da", "fi", "_initialValue", "_WarpDatepicker_instances", "toggleCalendarOpen_fn", "nextMonth_fn", "previousMonth_fn", "dispatchChangeEvent_fn", "onInput_fn", "onInputClick_fn", "onInputKeyDown_fn", "onCalendarKeyDown_fn", "onCalendarSelect_fn", "WarpDatepicker", "FormControlMixin", "LitElement", "__privateAdd", "startOfToday", "activateI18n", "messages", "lang", "detectLocale", "_a", "fromISOToDate", "startOfMonth", "month", "navigationDate", "weekIntervals", "eachWeekOfInterval", "lastDayOfMonth", "weekStart", "endOfWeek", "week", "eachDayOfInterval", "isSameMonth", "weekOfMonth", "getWeekOfMonth", "day", "differenceInCalendarDays", "startOfWeek", "__privateGet", "e", "__privateSet", "iso", "changedProperties", "html", "ifDefined", "__privateMethod", "i18n", "format", "styleMap", "isDisabled", "isSelected", "isSameDay", "isNavigationDate", "isToday", "classMap", "formatISO", "getDate", "addMonths", "subMonths", "newNavigationDate", "subDays", "addDays", "event", "isoDate", "reset", "wDatepickerStyles", "wDatepickerCalendarStyles", "wDatepickerDayStyles", "wDatepickerMonthStyles", "__decorateClass", "property", "state", "query"]
7
7
  }