@leaflink/stash 52.0.3 → 53.0.0

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 (259) hide show
  1. package/README.md +50 -49
  2. package/dist/Accordion.js +16 -16
  3. package/dist/Accordion.js.map +1 -1
  4. package/dist/AccordionGroup.js +7 -7
  5. package/dist/AccordionGroup.js.map +1 -1
  6. package/dist/ActionsDropdown.js +16 -16
  7. package/dist/ActionsDropdown.js.map +1 -1
  8. package/dist/AddressSelect.js.map +1 -1
  9. package/dist/AddressSelect.vue.d.ts +1 -1
  10. package/dist/Alert.js +34 -34
  11. package/dist/Alert.js.map +1 -1
  12. package/dist/AppNavigationItem.js +31 -31
  13. package/dist/AppNavigationItem.js.map +1 -1
  14. package/dist/AppSidebar.js +19 -19
  15. package/dist/AppSidebar.js.map +1 -1
  16. package/dist/AppTopbar.js +32 -32
  17. package/dist/AppTopbar.js.map +1 -1
  18. package/dist/Avatar.js +18 -18
  19. package/dist/Avatar.js.map +1 -1
  20. package/dist/Backdrop.js +5 -5
  21. package/dist/Backdrop.js.map +1 -1
  22. package/dist/Badge.js +38 -38
  23. package/dist/Badge.js.map +1 -1
  24. package/dist/Box.js +1 -1
  25. package/dist/{Box.vue_vue_type_script_setup_true_lang-rFnvwLVY.js → Box.vue_vue_type_script_setup_true_lang-dFFZN40_.js} +6 -6
  26. package/dist/{Box.vue_vue_type_script_setup_true_lang-rFnvwLVY.js.map → Box.vue_vue_type_script_setup_true_lang-dFFZN40_.js.map} +1 -1
  27. package/dist/Button.js +21 -21
  28. package/dist/Button.js.map +1 -1
  29. package/dist/ButtonGroup.js +26 -26
  30. package/dist/ButtonGroup.js.map +1 -1
  31. package/dist/Card.js +14 -14
  32. package/dist/Card.js.map +1 -1
  33. package/dist/CardContent.js +1 -1
  34. package/dist/CardContent.js.map +1 -1
  35. package/dist/CardFooter.js +1 -1
  36. package/dist/CardFooter.js.map +1 -1
  37. package/dist/CardHeader.js +4 -4
  38. package/dist/CardHeader.js.map +1 -1
  39. package/dist/CardMedia.js +20 -20
  40. package/dist/CardMedia.js.map +1 -1
  41. package/dist/Carousel.js +60 -60
  42. package/dist/Carousel.js.map +1 -1
  43. package/dist/Checkbox.js +30 -30
  44. package/dist/Checkbox.js.map +1 -1
  45. package/dist/Checkbox.vue.d.ts +0 -3
  46. package/dist/Chip.js +33 -33
  47. package/dist/Chip.js.map +1 -1
  48. package/dist/ConfirmationCodeInput.js +72 -72
  49. package/dist/ConfirmationCodeInput.js.map +1 -1
  50. package/dist/ContextSwitcher.js +27 -27
  51. package/dist/ContextSwitcher.js.map +1 -1
  52. package/dist/Copy.js +47 -48
  53. package/dist/Copy.js.map +1 -1
  54. package/dist/CurrencyInput.js +1 -1
  55. package/dist/CurrencyInput.js.map +1 -1
  56. package/dist/CurrencyInput.vue.d.ts +5 -5
  57. package/dist/DataView.js +23 -23
  58. package/dist/DataView.js.map +1 -1
  59. package/dist/DataViewFilters.js +26 -26
  60. package/dist/DataViewFilters.js.map +1 -1
  61. package/dist/DataViewSortButton.js +22 -22
  62. package/dist/DataViewSortButton.js.map +1 -1
  63. package/dist/DataViewToolbar.js +52 -52
  64. package/dist/DataViewToolbar.js.map +1 -1
  65. package/dist/DatePicker.js +10 -10
  66. package/dist/DatePicker.js.map +1 -1
  67. package/dist/DescriptionList.js +2 -2
  68. package/dist/DescriptionList.js.map +1 -1
  69. package/dist/DescriptionListDetail.js +2 -2
  70. package/dist/DescriptionListDetail.js.map +1 -1
  71. package/dist/DescriptionListGroup.js +9 -9
  72. package/dist/DescriptionListGroup.js.map +1 -1
  73. package/dist/DescriptionListTerm.js +8 -8
  74. package/dist/DescriptionListTerm.js.map +1 -1
  75. package/dist/Dialog.js +47 -47
  76. package/dist/Dialog.js.map +1 -1
  77. package/dist/Divider.js +6 -6
  78. package/dist/Divider.js.map +1 -1
  79. package/dist/Dropdown.js +20 -20
  80. package/dist/Dropdown.js.map +1 -1
  81. package/dist/EmptyState.js +26 -26
  82. package/dist/EmptyState.js.map +1 -1
  83. package/dist/Field.js +1 -1
  84. package/dist/{Field.vue_vue_type_script_setup_true_lang-DI6z3AE9.js → Field.vue_vue_type_script_setup_true_lang-dAGKfjf5.js} +17 -17
  85. package/dist/Field.vue_vue_type_script_setup_true_lang-dAGKfjf5.js.map +1 -0
  86. package/dist/FileUpload.js +47 -49
  87. package/dist/FileUpload.js.map +1 -1
  88. package/dist/FilterChip.js +20 -20
  89. package/dist/FilterChip.js.map +1 -1
  90. package/dist/FilterDrawerItem.js +13 -13
  91. package/dist/FilterDrawerItem.js.map +1 -1
  92. package/dist/FilterDropdown.js +27 -27
  93. package/dist/FilterDropdown.js.map +1 -1
  94. package/dist/FilterSelect.js +33 -33
  95. package/dist/FilterSelect.js.map +1 -1
  96. package/dist/Filters.js +29 -29
  97. package/dist/Filters.js.map +1 -1
  98. package/dist/Filters.vue.d.ts +2 -8
  99. package/dist/HttpError.js +29 -29
  100. package/dist/HttpError.js.map +1 -1
  101. package/dist/HttpError.vue.d.ts +0 -3
  102. package/dist/Icon.js +12 -12
  103. package/dist/Icon.js.map +1 -1
  104. package/dist/IconLabel.js +19 -19
  105. package/dist/IconLabel.js.map +1 -1
  106. package/dist/IconLabel.vue.d.ts +1 -1
  107. package/dist/Illustration.js +2 -2
  108. package/dist/{Illustration.vue_vue_type_script_setup_true_lang-BrqEF8xe.js → Illustration.vue_vue_type_script_setup_true_lang-C1bPkWZZ.js} +4 -4
  109. package/dist/{Illustration.vue_vue_type_script_setup_true_lang-BrqEF8xe.js.map → Illustration.vue_vue_type_script_setup_true_lang-C1bPkWZZ.js.map} +1 -1
  110. package/dist/Image.js +2 -2
  111. package/dist/Image.vue.d.ts +0 -3
  112. package/dist/{Image.vue_vue_type_script_setup_true_lang-D5u4av0_.js → Image.vue_vue_type_script_setup_true_lang-CAj0FH9h.js} +11 -11
  113. package/dist/Image.vue_vue_type_script_setup_true_lang-CAj0FH9h.js.map +1 -0
  114. package/dist/InlineEdit.js +8 -8
  115. package/dist/InlineEdit.js.map +1 -1
  116. package/dist/Input.js +29 -29
  117. package/dist/Input.js.map +1 -1
  118. package/dist/InputOptions.js +87 -84
  119. package/dist/InputOptions.js.map +1 -1
  120. package/dist/InputOptions.vue.d.ts +2 -2
  121. package/dist/IntegrationIcon.js +11 -11
  122. package/dist/IntegrationIcon.js.map +1 -1
  123. package/dist/Label.js +1 -1
  124. package/dist/{Label.vue_vue_type_script_setup_true_lang-CNquF3AP.js → Label.vue_vue_type_script_setup_true_lang-xwY3X-iV.js} +16 -16
  125. package/dist/{Label.vue_vue_type_script_setup_true_lang-CNquF3AP.js.map → Label.vue_vue_type_script_setup_true_lang-xwY3X-iV.js.map} +1 -1
  126. package/dist/ListItem.js +14 -14
  127. package/dist/ListItem.js.map +1 -1
  128. package/dist/ListItem.vue.d.ts +0 -6
  129. package/dist/ListItemCell.js +9 -9
  130. package/dist/ListItemCell.js.map +1 -1
  131. package/dist/ListView.js +138 -141
  132. package/dist/ListView.js.map +1 -1
  133. package/dist/ListView.vue.d.ts +2 -26
  134. package/dist/Loading.js +8 -8
  135. package/dist/Loading.js.map +1 -1
  136. package/dist/Logo.js +1 -1
  137. package/dist/{Logo.vue_vue_type_script_setup_true_lang-Dz8c98sc.js → Logo.vue_vue_type_script_setup_true_lang-DghNC_k6.js} +3 -3
  138. package/dist/{Logo.vue_vue_type_script_setup_true_lang-Dz8c98sc.js.map → Logo.vue_vue_type_script_setup_true_lang-DghNC_k6.js.map} +1 -1
  139. package/dist/Menu.js +5 -5
  140. package/dist/Menu.js.map +1 -1
  141. package/dist/MenuItem.js +12 -12
  142. package/dist/MenuItem.js.map +1 -1
  143. package/dist/Metric.js +24 -24
  144. package/dist/Metric.js.map +1 -1
  145. package/dist/Modal.js +60 -60
  146. package/dist/Modal.js.map +1 -1
  147. package/dist/Modals.js +1 -1
  148. package/dist/Modals.js.map +1 -1
  149. package/dist/Module.js +6 -6
  150. package/dist/Module.js.map +1 -1
  151. package/dist/ModuleContent.js +16 -16
  152. package/dist/ModuleContent.js.map +1 -1
  153. package/dist/ModuleFooter.js +13 -13
  154. package/dist/ModuleFooter.js.map +1 -1
  155. package/dist/ModuleHeader.js +29 -29
  156. package/dist/ModuleHeader.js.map +1 -1
  157. package/dist/MoreActions.js +81 -84
  158. package/dist/MoreActions.js.map +1 -1
  159. package/dist/ObfuscateText.js +4 -4
  160. package/dist/ObfuscateText.js.map +1 -1
  161. package/dist/PageContent.js +13 -13
  162. package/dist/PageContent.js.map +1 -1
  163. package/dist/PageHeader.js +28 -28
  164. package/dist/PageHeader.js.map +1 -1
  165. package/dist/PageNavigation.js +1 -1
  166. package/dist/Paginate.js +45 -45
  167. package/dist/Paginate.js.map +1 -1
  168. package/dist/QuickAction.js +18 -18
  169. package/dist/QuickAction.js.map +1 -1
  170. package/dist/Radio.js +17 -17
  171. package/dist/Radio.js.map +1 -1
  172. package/dist/RadioGroup.js +121 -121
  173. package/dist/RadioGroup.js.map +1 -1
  174. package/dist/RadioNew.js +80 -80
  175. package/dist/RadioNew.js.map +1 -1
  176. package/dist/RadioNew.vue.d.ts +0 -3
  177. package/dist/RangeInput.js +2 -2
  178. package/dist/RangeInput.js.map +1 -1
  179. package/dist/SearchBar.js +9 -9
  180. package/dist/SearchBar.js.map +1 -1
  181. package/dist/SectionHeader.js +14 -14
  182. package/dist/SectionHeader.js.map +1 -1
  183. package/dist/Select.js +369 -366
  184. package/dist/Select.js.map +1 -1
  185. package/dist/SelectStatus.js +26 -26
  186. package/dist/SelectStatus.js.map +1 -1
  187. package/dist/Skeleton.js +20 -20
  188. package/dist/Skeleton.js.map +1 -1
  189. package/dist/Step.js +37 -40
  190. package/dist/Step.js.map +1 -1
  191. package/dist/Stepper.js +17 -17
  192. package/dist/Stepper.js.map +1 -1
  193. package/dist/Switch.js +57 -57
  194. package/dist/Switch.js.map +1 -1
  195. package/dist/Tab.js +17 -19
  196. package/dist/Tab.js.map +1 -1
  197. package/dist/TabPanel.js +1 -1
  198. package/dist/TabPanel.js.map +1 -1
  199. package/dist/Table.js +22 -22
  200. package/dist/Table.js.map +1 -1
  201. package/dist/TableCell.js +32 -32
  202. package/dist/TableCell.js.map +1 -1
  203. package/dist/TableHeaderCell.js +35 -35
  204. package/dist/TableHeaderCell.js.map +1 -1
  205. package/dist/TableHeaderRow.js +10 -10
  206. package/dist/TableHeaderRow.js.map +1 -1
  207. package/dist/TableRow.js +51 -51
  208. package/dist/TableRow.js.map +1 -1
  209. package/dist/Tabs.js +2 -2
  210. package/dist/{Tabs.vue_vue_type_script_setup_true_lang-B3Irnlcd.js → Tabs.vue_vue_type_script_setup_true_lang-BVTCcK6M.js} +33 -33
  211. package/dist/Tabs.vue_vue_type_script_setup_true_lang-BVTCcK6M.js.map +1 -0
  212. package/dist/TextEditor.js +8 -8
  213. package/dist/TextEditor.js.map +1 -1
  214. package/dist/Textarea.js +15 -15
  215. package/dist/Textarea.js.map +1 -1
  216. package/dist/Thumbnail.js +41 -41
  217. package/dist/Thumbnail.js.map +1 -1
  218. package/dist/ThumbnailEmpty.js +3 -3
  219. package/dist/ThumbnailEmpty.js.map +1 -1
  220. package/dist/ThumbnailGroup.js +22 -22
  221. package/dist/ThumbnailGroup.js.map +1 -1
  222. package/dist/Timeline.js +3 -3
  223. package/dist/Timeline.js.map +1 -1
  224. package/dist/TimelineItem.js +22 -22
  225. package/dist/TimelineItem.js.map +1 -1
  226. package/dist/Toast.js +29 -29
  227. package/dist/Toast.js.map +1 -1
  228. package/dist/Toast.vue.d.ts +3 -0
  229. package/dist/Toasts.js +11 -11
  230. package/dist/Toasts.js.map +1 -1
  231. package/dist/Tooltip.js +2 -81
  232. package/dist/Tooltip.js.map +1 -1
  233. package/dist/Tooltip.vue.d.ts +1 -1
  234. package/dist/Tooltip.vue_vue_type_script_setup_true_lang-mzBLSXy3.js +84 -0
  235. package/dist/Tooltip.vue_vue_type_script_setup_true_lang-mzBLSXy3.js.map +1 -0
  236. package/dist/components.css +2 -2
  237. package/dist/constants.d.ts +9 -9
  238. package/dist/constants.js +17 -17
  239. package/dist/constants.js.map +1 -1
  240. package/dist/directives/tooltip.js +2 -2
  241. package/dist/directives/tooltip.js.map +1 -1
  242. package/dist/{index-C14LhAwV.js → index-DBV9Uz0C.js} +3 -3
  243. package/dist/{index-C14LhAwV.js.map → index-DBV9Uz0C.js.map} +1 -1
  244. package/dist/tailwind-base.js.d.ts +12 -0
  245. package/dist/tailwind-base.js.map +1 -1
  246. package/dist/useSortable.js +1 -1
  247. package/dist/utils/helpers.js +15 -15
  248. package/dist/utils/helpers.js.map +1 -1
  249. package/package.json +15 -15
  250. package/styles/backwards-compat.css +373 -2851
  251. package/styles/main.css +8 -0
  252. package/styles/sofia-font.css +23 -27
  253. package/styles/theme.css +1033 -0
  254. package/dist/Field.vue_vue_type_script_setup_true_lang-DI6z3AE9.js.map +0 -1
  255. package/dist/Image.vue_vue_type_script_setup_true_lang-D5u4av0_.js.map +0 -1
  256. package/dist/Tabs.vue_vue_type_script_setup_true_lang-B3Irnlcd.js.map +0 -1
  257. package/dist/tailwind-base.d.ts +0 -333
  258. package/styles/base.css +0 -902
  259. package/tailwind-base.ts +0 -455
@@ -1 +1 @@
1
- {"version":3,"file":"DatePicker.js","sources":["../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/addDays.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/endOfDay.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/getDefaultOptions.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/getISODay.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/isAfter.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/isBefore.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/transpose.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/Setter.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/Parser.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers/EraParser.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/constants.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/utils.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers/YearParser.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers/LocalWeekYearParser.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers/ISOWeekYearParser.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers/ExtendedYearParser.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers/QuarterParser.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers/StandAloneQuarterParser.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers/MonthParser.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers/StandAloneMonthParser.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/setWeek.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers/LocalWeekParser.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/setISOWeek.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers/ISOWeekParser.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers/DateParser.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers/DayOfYearParser.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/setDay.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers/DayParser.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers/LocalDayParser.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers/StandAloneLocalDayParser.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/setISODay.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers/ISODayParser.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers/AMPMParser.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers/AMPMMidnightParser.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers/DayPeriodParser.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers/Hour1to12Parser.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers/Hour0to23Parser.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers/Hour0To11Parser.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers/Hour1To24Parser.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers/MinuteParser.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers/SecondParser.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers/FractionOfSecondParser.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneWithZParser.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneParser.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers/TimestampSecondsParser.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers/TimestampMillisecondsParser.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/isMatch.mjs","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/enums.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/applyStyles.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/math.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/userAgent.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/contains.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/within.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/arrow.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getVariation.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/computeOffsets.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/detectOverflow.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/flip.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/hide.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/offset.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getAltAxis.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/orderModifiers.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/debounce.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/mergeByName.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/createPopper.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/popper.js","../node_modules/.pnpm/v-calendar@3.1.2_@popperjs+core@2.11.8_vue@3.5.13_typescript@5.4.2_/node_modules/v-calendar/dist/es/index.js","../src/components/DatePicker/DatePicker.vue"],"sourcesContent":["import { toDate } from \"./toDate.mjs\";\nimport { constructFrom } from \"./constructFrom.mjs\";\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 *\n * @param date - The date to be changed\n * @param amount - The amount of days to be added.\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) {\n const _date = toDate(date);\n if (isNaN(amount)) return constructFrom(date, NaN);\n if (!amount) {\n // If 0 days, no-op to avoid changing times in the hour before end of DST\n return _date;\n }\n _date.setDate(_date.getDate() + amount);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default addDays;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name endOfDay\n * @category Day Helpers\n * @summary Return the end of a day for the given date.\n *\n * @description\n * Return the end of a day for the given date.\n * The result will be in the local timezone.\n *\n * @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 original date\n *\n * @returns The end of a day\n *\n * @example\n * // The end of a day for 2 September 2014 11:55:00:\n * const result = endOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 23:59:59.999\n */\nexport function endOfDay(date) {\n const _date = toDate(date);\n _date.setHours(23, 59, 59, 999);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default endOfDay;\n","import { getDefaultOptions as getInternalDefaultOptions } from \"./_lib/defaultOptions.mjs\";\n\n/**\n * @name getDefaultOptions\n * @category Common Helpers\n * @summary Get default options.\n * @pure false\n *\n * @description\n * Returns an object that contains defaults for\n * `options.locale`, `options.weekStartsOn` and `options.firstWeekContainsDate`\n * arguments for all functions.\n *\n * You can change these with [setDefaultOptions](https://date-fns.org/docs/setDefaultOptions).\n *\n * @returns The default options\n *\n * @example\n * const result = getDefaultOptions()\n * //=> {}\n *\n * @example\n * setDefaultOptions({ weekStarsOn: 1, firstWeekContainsDate: 4 })\n * const result = getDefaultOptions()\n * //=> { weekStarsOn: 1, firstWeekContainsDate: 4 }\n */\nexport function getDefaultOptions() {\n return Object.assign({}, getInternalDefaultOptions());\n}\n\n// Fallback for modularized imports:\nexport default getDefaultOptions;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name getISODay\n * @category Weekday Helpers\n * @summary Get the day of the ISO week of the given date.\n *\n * @description\n * Get the day of the ISO week of the given date,\n * which is 7 for Sunday, 1 for Monday etc.\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 *\n * @param date - The given date\n *\n * @returns The day of ISO week\n *\n * @example\n * // Which day of the ISO week is 26 February 2012?\n * const result = getISODay(new Date(2012, 1, 26))\n * //=> 7\n */\nexport function getISODay(date) {\n const _date = toDate(date);\n let day = _date.getDay();\n\n if (day === 0) {\n day = 7;\n }\n\n return day;\n}\n\n// Fallback for modularized imports:\nexport default getISODay;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name isAfter\n * @category Common Helpers\n * @summary Is the first date after the second one?\n *\n * @description\n * Is the first date after the second one?\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 date that should be after the other one to return true\n * @param dateToCompare - The date to compare with\n *\n * @returns The first date is after the second date\n *\n * @example\n * // Is 10 July 1989 after 11 February 1987?\n * const result = isAfter(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> true\n */\nexport function isAfter(date, dateToCompare) {\n const _date = toDate(date);\n const _dateToCompare = toDate(dateToCompare);\n return _date.getTime() > _dateToCompare.getTime();\n}\n\n// Fallback for modularized imports:\nexport default isAfter;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name isBefore\n * @category Common Helpers\n * @summary Is the first date before the second one?\n *\n * @description\n * Is the first date before the second one?\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 date that should be before the other one to return true\n * @param dateToCompare - The date to compare with\n *\n * @returns The first date is before the second date\n *\n * @example\n * // Is 10 July 1989 before 11 February 1987?\n * const result = isBefore(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> false\n */\nexport function isBefore(date, dateToCompare) {\n const _date = toDate(date);\n const _dateToCompare = toDate(dateToCompare);\n return +_date < +_dateToCompare;\n}\n\n// Fallback for modularized imports:\nexport default isBefore;\n","import { constructFrom } from \"./constructFrom.mjs\";\n\n/**\n * @name transpose\n * @category Generic Helpers\n * @summary Transpose the date to the given constructor.\n *\n * @description\n * The function transposes the date to the given constructor. It helps you\n * to transpose the date in the system time zone to say `UTCDate` or any other\n * date extension.\n *\n * @typeParam DateInputType - The input `Date` type derived from the passed argument.\n * @typeParam DateOutputType - The output `Date` type derived from the passed constructor.\n *\n * @param fromDate - The date to use values from\n * @param constructor - The date constructor to use\n *\n * @returns Date transposed to the given constructor\n *\n * @example\n * // Create July 10, 2022 00:00 in locale time zone\n * const date = new Date(2022, 6, 10)\n * //=> 'Sun Jul 10 2022 00:00:00 GMT+0800 (Singapore Standard Time)'\n *\n * @example\n * // Transpose the date to July 10, 2022 00:00 in UTC\n * transpose(date, UTCDate)\n * //=> 'Sun Jul 10 2022 00:00:00 GMT+0000 (Coordinated Universal Time)'\n */\nexport function transpose(fromDate, constructor) {\n const date =\n constructor instanceof Date\n ? constructFrom(constructor, 0)\n : new constructor(0);\n date.setFullYear(\n fromDate.getFullYear(),\n fromDate.getMonth(),\n fromDate.getDate(),\n );\n date.setHours(\n fromDate.getHours(),\n fromDate.getMinutes(),\n fromDate.getSeconds(),\n fromDate.getMilliseconds(),\n );\n return date;\n}\n\n// Fallback for modularized imports:\nexport default transpose;\n","import { transpose } from \"../../transpose.mjs\";\nimport { constructFrom } from \"../../constructFrom.mjs\";\n\nconst TIMEZONE_UNIT_PRIORITY = 10;\n\nexport class Setter {\n subPriority = 0;\n\n validate(_utcDate, _options) {\n return true;\n }\n}\n\nexport class ValueSetter extends Setter {\n constructor(\n value,\n\n validateValue,\n\n setValue,\n\n priority,\n subPriority,\n ) {\n super();\n this.value = value;\n this.validateValue = validateValue;\n this.setValue = setValue;\n this.priority = priority;\n if (subPriority) {\n this.subPriority = subPriority;\n }\n }\n\n validate(date, options) {\n return this.validateValue(date, this.value, options);\n }\n\n set(date, flags, options) {\n return this.setValue(date, flags, this.value, options);\n }\n}\n\nexport class DateToSystemTimezoneSetter extends Setter {\n priority = TIMEZONE_UNIT_PRIORITY;\n subPriority = -1;\n set(date, flags) {\n if (flags.timestampIsSet) return date;\n return constructFrom(date, transpose(date, Date));\n }\n}\n","import { ValueSetter } from \"./Setter.mjs\";\n\nexport class Parser {\n run(dateString, token, match, options) {\n const result = this.parse(dateString, token, match, options);\n if (!result) {\n return null;\n }\n\n return {\n setter: new ValueSetter(\n result.value,\n this.validate,\n this.set,\n this.priority,\n this.subPriority,\n ),\n rest: result.rest,\n };\n }\n\n validate(_utcDate, _value, _options) {\n return true;\n }\n}\n","import { Parser } from \"../Parser.mjs\";\n\nexport class EraParser extends Parser {\n priority = 140;\n\n parse(dateString, token, match) {\n switch (token) {\n // AD, BC\n case \"G\":\n case \"GG\":\n case \"GGG\":\n return (\n match.era(dateString, { width: \"abbreviated\" }) ||\n match.era(dateString, { width: \"narrow\" })\n );\n\n // A, B\n case \"GGGGG\":\n return match.era(dateString, { width: \"narrow\" });\n // Anno Domini, Before Christ\n case \"GGGG\":\n default:\n return (\n match.era(dateString, { width: \"wide\" }) ||\n match.era(dateString, { width: \"abbreviated\" }) ||\n match.era(dateString, { width: \"narrow\" })\n );\n }\n }\n\n set(date, flags, value) {\n flags.era = value;\n date.setFullYear(value, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"R\", \"u\", \"t\", \"T\"];\n}\n","export const numericPatterns = {\n month: /^(1[0-2]|0?\\d)/, // 0 to 12\n date: /^(3[0-1]|[0-2]?\\d)/, // 0 to 31\n dayOfYear: /^(36[0-6]|3[0-5]\\d|[0-2]?\\d?\\d)/, // 0 to 366\n week: /^(5[0-3]|[0-4]?\\d)/, // 0 to 53\n hour23h: /^(2[0-3]|[0-1]?\\d)/, // 0 to 23\n hour24h: /^(2[0-4]|[0-1]?\\d)/, // 0 to 24\n hour11h: /^(1[0-1]|0?\\d)/, // 0 to 11\n hour12h: /^(1[0-2]|0?\\d)/, // 0 to 12\n minute: /^[0-5]?\\d/, // 0 to 59\n second: /^[0-5]?\\d/, // 0 to 59\n\n singleDigit: /^\\d/, // 0 to 9\n twoDigits: /^\\d{1,2}/, // 0 to 99\n threeDigits: /^\\d{1,3}/, // 0 to 999\n fourDigits: /^\\d{1,4}/, // 0 to 9999\n\n anyDigitsSigned: /^-?\\d+/,\n singleDigitSigned: /^-?\\d/, // 0 to 9, -0 to -9\n twoDigitsSigned: /^-?\\d{1,2}/, // 0 to 99, -0 to -99\n threeDigitsSigned: /^-?\\d{1,3}/, // 0 to 999, -0 to -999\n fourDigitsSigned: /^-?\\d{1,4}/, // 0 to 9999, -0 to -9999\n};\n\nexport const timezonePatterns = {\n basicOptionalMinutes: /^([+-])(\\d{2})(\\d{2})?|Z/,\n basic: /^([+-])(\\d{2})(\\d{2})|Z/,\n basicOptionalSeconds: /^([+-])(\\d{2})(\\d{2})((\\d{2}))?|Z/,\n extended: /^([+-])(\\d{2}):(\\d{2})|Z/,\n extendedOptionalSeconds: /^([+-])(\\d{2}):(\\d{2})(:(\\d{2}))?|Z/,\n};\n","import {\n millisecondsInHour,\n millisecondsInMinute,\n millisecondsInSecond,\n} from \"../../constants.mjs\";\nimport { numericPatterns } from \"./constants.mjs\";\n\nexport function mapValue(parseFnResult, mapFn) {\n if (!parseFnResult) {\n return parseFnResult;\n }\n\n return {\n value: mapFn(parseFnResult.value),\n rest: parseFnResult.rest,\n };\n}\n\nexport function parseNumericPattern(pattern, dateString) {\n const matchResult = dateString.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n return {\n value: parseInt(matchResult[0], 10),\n rest: dateString.slice(matchResult[0].length),\n };\n}\n\nexport function parseTimezonePattern(pattern, dateString) {\n const matchResult = dateString.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n // Input is 'Z'\n if (matchResult[0] === \"Z\") {\n return {\n value: 0,\n rest: dateString.slice(1),\n };\n }\n\n const sign = matchResult[1] === \"+\" ? 1 : -1;\n const hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0;\n const minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0;\n const seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0;\n\n return {\n value:\n sign *\n (hours * millisecondsInHour +\n minutes * millisecondsInMinute +\n seconds * millisecondsInSecond),\n rest: dateString.slice(matchResult[0].length),\n };\n}\n\nexport function parseAnyDigitsSigned(dateString) {\n return parseNumericPattern(numericPatterns.anyDigitsSigned, dateString);\n}\n\nexport function parseNDigits(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigit, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigits, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigits, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigits, dateString);\n default:\n return parseNumericPattern(new RegExp(\"^\\\\d{1,\" + n + \"}\"), dateString);\n }\n}\n\nexport function parseNDigitsSigned(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigitSigned, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigitsSigned, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigitsSigned, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigitsSigned, dateString);\n default:\n return parseNumericPattern(new RegExp(\"^-?\\\\d{1,\" + n + \"}\"), dateString);\n }\n}\n\nexport function dayPeriodEnumToHours(dayPeriod) {\n switch (dayPeriod) {\n case \"morning\":\n return 4;\n case \"evening\":\n return 17;\n case \"pm\":\n case \"noon\":\n case \"afternoon\":\n return 12;\n case \"am\":\n case \"midnight\":\n case \"night\":\n default:\n return 0;\n }\n}\n\nexport function normalizeTwoDigitYear(twoDigitYear, currentYear) {\n const isCommonEra = currentYear > 0;\n // Absolute number of the current year:\n // 1 -> 1 AC\n // 0 -> 1 BC\n // -1 -> 2 BC\n const absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;\n\n let result;\n if (absCurrentYear <= 50) {\n result = twoDigitYear || 100;\n } else {\n const rangeEnd = absCurrentYear + 50;\n const rangeEndCentury = Math.trunc(rangeEnd / 100) * 100;\n const isPreviousCentury = twoDigitYear >= rangeEnd % 100;\n result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0);\n }\n\n return isCommonEra ? result : 1 - result;\n}\n\nexport function isLeapYearIndex(year) {\n return year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0);\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { mapValue, normalizeTwoDigitYear, parseNDigits } from \"../utils.mjs\";\n\n// From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns\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 |\nexport class YearParser extends Parser {\n priority = 130;\n incompatibleTokens = [\"Y\", \"R\", \"u\", \"w\", \"I\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n\n parse(dateString, token, match) {\n const valueCallback = (year) => ({\n year,\n isTwoDigitYear: token === \"yy\",\n });\n\n switch (token) {\n case \"y\":\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case \"yo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"year\",\n }),\n valueCallback,\n );\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n\n validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n\n set(date, flags, value) {\n const currentYear = date.getFullYear();\n\n if (value.isTwoDigitYear) {\n const normalizedTwoDigitYear = normalizeTwoDigitYear(\n value.year,\n currentYear,\n );\n date.setFullYear(normalizedTwoDigitYear, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n const year =\n !(\"era\" in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setFullYear(year, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n}\n","import { getWeekYear } from \"../../../getWeekYear.mjs\";\nimport { startOfWeek } from \"../../../startOfWeek.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { mapValue, normalizeTwoDigitYear, parseNDigits } from \"../utils.mjs\";\n\n// Local week-numbering year\nexport class LocalWeekYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token, match) {\n const valueCallback = (year) => ({\n year,\n isTwoDigitYear: token === \"YY\",\n });\n\n switch (token) {\n case \"Y\":\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case \"Yo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"year\",\n }),\n valueCallback,\n );\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n\n validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n\n set(date, flags, value, options) {\n const currentYear = getWeekYear(date, options);\n\n if (value.isTwoDigitYear) {\n const normalizedTwoDigitYear = normalizeTwoDigitYear(\n value.year,\n currentYear,\n );\n date.setFullYear(\n normalizedTwoDigitYear,\n 0,\n options.firstWeekContainsDate,\n );\n date.setHours(0, 0, 0, 0);\n return startOfWeek(date, options);\n }\n\n const year =\n !(\"era\" in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setFullYear(year, 0, options.firstWeekContainsDate);\n date.setHours(0, 0, 0, 0);\n return startOfWeek(date, options);\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"Q\",\n \"q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"t\",\n \"T\",\n ];\n}\n","import { startOfISOWeek } from \"../../../startOfISOWeek.mjs\";\nimport { constructFrom } from \"../../../constructFrom.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigitsSigned } from \"../utils.mjs\";\n\n// ISO week-numbering year\nexport class ISOWeekYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token) {\n if (token === \"R\") {\n return parseNDigitsSigned(4, dateString);\n }\n\n return parseNDigitsSigned(token.length, dateString);\n }\n\n set(date, _flags, value) {\n const firstWeekOfYear = constructFrom(date, 0);\n firstWeekOfYear.setFullYear(value, 0, 4);\n firstWeekOfYear.setHours(0, 0, 0, 0);\n return startOfISOWeek(firstWeekOfYear);\n }\n\n incompatibleTokens = [\n \"G\",\n \"y\",\n \"Y\",\n \"u\",\n \"Q\",\n \"q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { parseNDigitsSigned } from \"../utils.mjs\";\n\nexport class ExtendedYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token) {\n if (token === \"u\") {\n return parseNDigitsSigned(4, dateString);\n }\n\n return parseNDigitsSigned(token.length, dateString);\n }\n\n set(date, _flags, value) {\n date.setFullYear(value, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"G\", \"y\", \"Y\", \"R\", \"w\", \"I\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { parseNDigits } from \"../utils.mjs\";\n\nexport class QuarterParser extends Parser {\n priority = 120;\n\n parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case \"Q\":\n case \"QQ\": // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case \"Qo\":\n return match.ordinalNumber(dateString, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"QQQ\":\n return (\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"QQQQQ\":\n return match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"QQQQ\":\n default:\n return (\n match.quarter(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n\n set(date, _flags, value) {\n date.setMonth((value - 1) * 3, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { parseNDigits } from \"../utils.mjs\";\n\nexport class StandAloneQuarterParser extends Parser {\n priority = 120;\n\n parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case \"q\":\n case \"qq\": // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case \"qo\":\n return match.ordinalNumber(dateString, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"qqq\":\n return (\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n })\n );\n\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"qqqqq\":\n return match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"qqqq\":\n default:\n return (\n match.quarter(dateString, {\n width: \"wide\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n\n set(date, _flags, value) {\n date.setMonth((value - 1) * 3, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { mapValue, parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class MonthParser extends Parser {\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"L\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n\n priority = 110;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => value - 1;\n\n switch (token) {\n // 1, 2, ..., 12\n case \"M\":\n return mapValue(\n parseNumericPattern(numericPatterns.month, dateString),\n valueCallback,\n );\n // 01, 02, ..., 12\n case \"MM\":\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case \"Mo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"month\",\n }),\n valueCallback,\n );\n // Jan, Feb, ..., Dec\n case \"MMM\":\n return (\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // J, F, ..., D\n case \"MMMMM\":\n return match.month(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // January, February, ..., December\n case \"MMMM\":\n default:\n return (\n match.month(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n date.setMonth(value, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { mapValue, parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class StandAloneMonthParser extends Parser {\n priority = 110;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => value - 1;\n\n switch (token) {\n // 1, 2, ..., 12\n case \"L\":\n return mapValue(\n parseNumericPattern(numericPatterns.month, dateString),\n valueCallback,\n );\n // 01, 02, ..., 12\n case \"LL\":\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case \"Lo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"month\",\n }),\n valueCallback,\n );\n // Jan, Feb, ..., Dec\n case \"LLL\":\n return (\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // J, F, ..., D\n case \"LLLLL\":\n return match.month(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // January, February, ..., December\n case \"LLLL\":\n default:\n return (\n match.month(dateString, { width: \"wide\", context: \"standalone\" }) ||\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n date.setMonth(value, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"M\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { getWeek } from \"./getWeek.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * The {@link setWeek} function options.\n */\n\n/**\n * @name setWeek\n * @category Week Helpers\n * @summary Set the local week to the given date.\n *\n * @description\n * Set the local week to the given date, saving the weekday number.\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 *\n * @param date - The date to be changed\n * @param week - The week of the new date\n * @param options - An object with options\n *\n * @returns The new date with the local week set\n *\n * @example\n * // Set the 1st week to 2 January 2005 with default options:\n * const result = setWeek(new Date(2005, 0, 2), 1)\n * //=> Sun Dec 26 2004 00:00:00\n *\n * @example\n * // Set the 1st week to 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 = setWeek(new Date(2005, 0, 2), 1, {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> Sun Jan 4 2004 00:00:00\n */\nexport function setWeek(date, week, options) {\n const _date = toDate(date);\n const diff = getWeek(_date, options) - week;\n _date.setDate(_date.getDate() - diff * 7);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default setWeek;\n","import { setWeek } from \"../../../setWeek.mjs\";\nimport { startOfWeek } from \"../../../startOfWeek.mjs\";\nimport { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\n// Local week of year\nexport class LocalWeekParser extends Parser {\n priority = 100;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"w\":\n return parseNumericPattern(numericPatterns.week, dateString);\n case \"wo\":\n return match.ordinalNumber(dateString, { unit: \"week\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n\n set(date, _flags, value, options) {\n return startOfWeek(setWeek(date, value, options), options);\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"t\",\n \"T\",\n ];\n}\n","import { getISOWeek } from \"./getISOWeek.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name setISOWeek\n * @category ISO Week Helpers\n * @summary Set the ISO week to the given date.\n *\n * @description\n * Set the ISO week to the given date, saving the weekday number.\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 *\n * @param date - The date to be changed\n * @param week - The ISO week of the new date\n *\n * @returns The new date with the ISO week set\n *\n * @example\n * // Set the 53rd ISO week to 7 August 2004:\n * const result = setISOWeek(new Date(2004, 7, 7), 53)\n * //=> Sat Jan 01 2005 00:00:00\n */\nexport function setISOWeek(date, week) {\n const _date = toDate(date);\n const diff = getISOWeek(_date) - week;\n _date.setDate(_date.getDate() - diff * 7);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default setISOWeek;\n","import { setISOWeek } from \"../../../setISOWeek.mjs\";\nimport { startOfISOWeek } from \"../../../startOfISOWeek.mjs\";\nimport { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\n// ISO week of year\nexport class ISOWeekParser extends Parser {\n priority = 100;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"I\":\n return parseNumericPattern(numericPatterns.week, dateString);\n case \"Io\":\n return match.ordinalNumber(dateString, { unit: \"week\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n\n set(date, _flags, value) {\n return startOfISOWeek(setISOWeek(date, value));\n }\n\n incompatibleTokens = [\n \"y\",\n \"Y\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport {\n isLeapYearIndex,\n parseNDigits,\n parseNumericPattern,\n} from \"../utils.mjs\";\n\nconst DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nconst DAYS_IN_MONTH_LEAP_YEAR = [\n 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31,\n];\n\n// Day of the month\nexport class DateParser extends Parser {\n priority = 90;\n subPriority = 1;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"d\":\n return parseNumericPattern(numericPatterns.date, dateString);\n case \"do\":\n return match.ordinalNumber(dateString, { unit: \"date\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(date, value) {\n const year = date.getFullYear();\n const isLeapYear = isLeapYearIndex(year);\n const month = date.getMonth();\n if (isLeapYear) {\n return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month];\n } else {\n return value >= 1 && value <= DAYS_IN_MONTH[month];\n }\n }\n\n set(date, _flags, value) {\n date.setDate(value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport {\n isLeapYearIndex,\n parseNDigits,\n parseNumericPattern,\n} from \"../utils.mjs\";\n\nexport class DayOfYearParser extends Parser {\n priority = 90;\n\n subpriority = 1;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"D\":\n case \"DD\":\n return parseNumericPattern(numericPatterns.dayOfYear, dateString);\n case \"Do\":\n return match.ordinalNumber(dateString, { unit: \"date\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(date, value) {\n const year = date.getFullYear();\n const isLeapYear = isLeapYearIndex(year);\n if (isLeapYear) {\n return value >= 1 && value <= 366;\n } else {\n return value >= 1 && value <= 365;\n }\n }\n\n set(date, _flags, value) {\n date.setMonth(0, value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"E\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { addDays } from \"./addDays.mjs\";\nimport { toDate } from \"./toDate.mjs\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.mjs\";\n\n/**\n * The {@link setDay} function options.\n */\n\n/**\n * @name setDay\n * @category Weekday Helpers\n * @summary Set the day of the week to the given date.\n *\n * @description\n * Set the day of the week 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 *\n * @param date - The date to be changed\n * @param day - The day of the week of the new date\n * @param options - An object with options.\n *\n * @returns The new date with the day of the week set\n *\n * @example\n * // Set week day to Sunday, with the default weekStartsOn of Sunday:\n * const result = setDay(new Date(2014, 8, 1), 0)\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // Set week day to Sunday, with a weekStartsOn of Monday:\n * const result = setDay(new Date(2014, 8, 1), 0, { weekStartsOn: 1 })\n * //=> Sun Sep 07 2014 00:00:00\n */\nexport function setDay(date, day, 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);\n const currentDay = _date.getDay();\n\n const remainder = day % 7;\n const dayIndex = (remainder + 7) % 7;\n\n const delta = 7 - weekStartsOn;\n const diff =\n day < 0 || day > 6\n ? day - ((currentDay + delta) % 7)\n : ((dayIndex + delta) % 7) - ((currentDay + delta) % 7);\n return addDays(_date, diff);\n}\n\n// Fallback for modularized imports:\nexport default setDay;\n","import { setDay } from \"../../../setDay.mjs\";\nimport { Parser } from \"../Parser.mjs\";\n\n// Day of week\nexport class DayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match) {\n switch (token) {\n // Tue\n case \"E\":\n case \"EE\":\n case \"EEE\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // T\n case \"EEEEE\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"EEEEEE\":\n return (\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // Tuesday\n case \"EEEE\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"D\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n}\n","import { setDay } from \"../../../setDay.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { mapValue, parseNDigits } from \"../utils.mjs\";\n\n// Local day of week\nexport class LocalDayParser extends Parser {\n priority = 90;\n parse(dateString, token, match, options) {\n const valueCallback = (value) => {\n // We want here floor instead of trunc, so we get -7 for value 0 instead of 0\n const wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return ((value + options.weekStartsOn + 6) % 7) + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case \"e\":\n case \"ee\": // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case \"eo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"day\",\n }),\n valueCallback,\n );\n // Tue\n case \"eee\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // T\n case \"eeeee\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"eeeeee\":\n return (\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // Tuesday\n case \"eeee\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"E\",\n \"i\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { setDay } from \"../../../setDay.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { mapValue, parseNDigits } from \"../utils.mjs\";\n\n// Stand-alone local day of week\nexport class StandAloneLocalDayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match, options) {\n const valueCallback = (value) => {\n // We want here floor instead of trunc, so we get -7 for value 0 instead of 0\n const wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return ((value + options.weekStartsOn + 6) % 7) + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case \"c\":\n case \"cc\": // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case \"co\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"day\",\n }),\n valueCallback,\n );\n // Tue\n case \"ccc\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // T\n case \"ccccc\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // Tu\n case \"cccccc\":\n return (\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // Tuesday\n case \"cccc\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"standalone\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"E\",\n \"i\",\n \"e\",\n \"t\",\n \"T\",\n ];\n}\n","import { addDays } from \"./addDays.mjs\";\nimport { getISODay } from \"./getISODay.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name setISODay\n * @category Weekday Helpers\n * @summary Set the day of the ISO week to the given date.\n *\n * @description\n * Set the day of the ISO week to the given date.\n * ISO week starts with Monday.\n * 7 is the index of Sunday, 1 is the index of Monday etc.\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 date to be changed\n * @param day - The day of the ISO week of the new date\n *\n * @returns The new date with the day of the ISO week set\n *\n * @example\n * // Set Sunday to 1 September 2014:\n * const result = setISODay(new Date(2014, 8, 1), 7)\n * //=> Sun Sep 07 2014 00:00:00\n */\nexport function setISODay(date, day) {\n const _date = toDate(date);\n const currentDay = getISODay(_date);\n const diff = day - currentDay;\n return addDays(_date, diff);\n}\n\n// Fallback for modularized imports:\nexport default setISODay;\n","import { setISODay } from \"../../../setISODay.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { mapValue, parseNDigits } from \"../utils.mjs\";\n\n// ISO day of week\nexport class ISODayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => {\n if (value === 0) {\n return 7;\n }\n return value;\n };\n\n switch (token) {\n // 2\n case \"i\":\n case \"ii\": // 02\n return parseNDigits(token.length, dateString);\n // 2nd\n case \"io\":\n return match.ordinalNumber(dateString, { unit: \"day\" });\n // Tue\n case \"iii\":\n return mapValue(\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // T\n case \"iiiii\":\n return mapValue(\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // Tu\n case \"iiiiii\":\n return mapValue(\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // Tuesday\n case \"iiii\":\n default:\n return mapValue(\n match.day(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 7;\n }\n\n set(date, _flags, value) {\n date = setISODay(date, value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"Y\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"E\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { dayPeriodEnumToHours } from \"../utils.mjs\";\n\nexport class AMPMParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"a\":\n case \"aa\":\n case \"aaa\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"aaaaa\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"aaaa\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"b\", \"B\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { dayPeriodEnumToHours } from \"../utils.mjs\";\n\nexport class AMPMMidnightParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"b\":\n case \"bb\":\n case \"bbb\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"bbbbb\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"bbbb\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"B\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { dayPeriodEnumToHours } from \"../utils.mjs\";\n\n// in the morning, in the afternoon, in the evening, at night\nexport class DayPeriodParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"B\":\n case \"BB\":\n case \"BBB\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"BBBBB\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"BBBB\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class Hour1to12Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"h\":\n return parseNumericPattern(numericPatterns.hour12h, dateString);\n case \"ho\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 12;\n }\n\n set(date, _flags, value) {\n const isPM = date.getHours() >= 12;\n if (isPM && value < 12) {\n date.setHours(value + 12, 0, 0, 0);\n } else if (!isPM && value === 12) {\n date.setHours(0, 0, 0, 0);\n } else {\n date.setHours(value, 0, 0, 0);\n }\n return date;\n }\n\n incompatibleTokens = [\"H\", \"K\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class Hour0to23Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"H\":\n return parseNumericPattern(numericPatterns.hour23h, dateString);\n case \"Ho\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 23;\n }\n\n set(date, _flags, value) {\n date.setHours(value, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"h\", \"K\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class Hour0To11Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"K\":\n return parseNumericPattern(numericPatterns.hour11h, dateString);\n case \"Ko\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n const isPM = date.getHours() >= 12;\n if (isPM && value < 12) {\n date.setHours(value + 12, 0, 0, 0);\n } else {\n date.setHours(value, 0, 0, 0);\n }\n return date;\n }\n\n incompatibleTokens = [\"h\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class Hour1To24Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"k\":\n return parseNumericPattern(numericPatterns.hour24h, dateString);\n case \"ko\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 24;\n }\n\n set(date, _flags, value) {\n const hours = value <= 24 ? value % 24 : value;\n date.setHours(hours, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"h\", \"H\", \"K\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class MinuteParser extends Parser {\n priority = 60;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"m\":\n return parseNumericPattern(numericPatterns.minute, dateString);\n case \"mo\":\n return match.ordinalNumber(dateString, { unit: \"minute\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n\n set(date, _flags, value) {\n date.setMinutes(value, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class SecondParser extends Parser {\n priority = 50;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"s\":\n return parseNumericPattern(numericPatterns.second, dateString);\n case \"so\":\n return match.ordinalNumber(dateString, { unit: \"second\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n\n set(date, _flags, value) {\n date.setSeconds(value, 0);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { mapValue, parseNDigits } from \"../utils.mjs\";\n\nexport class FractionOfSecondParser extends Parser {\n priority = 30;\n\n parse(dateString, token) {\n const valueCallback = (value) =>\n Math.trunc(value * Math.pow(10, -token.length + 3));\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n\n set(date, _flags, value) {\n date.setMilliseconds(value);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { constructFrom } from \"../../../constructFrom.mjs\";\nimport { getTimezoneOffsetInMilliseconds } from \"../../../_lib/getTimezoneOffsetInMilliseconds.mjs\";\nimport { timezonePatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseTimezonePattern } from \"../utils.mjs\";\n\n// Timezone (ISO-8601. +00:00 is `'Z'`)\nexport class ISOTimezoneWithZParser extends Parser {\n priority = 10;\n\n parse(dateString, token) {\n switch (token) {\n case \"X\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalMinutes,\n dateString,\n );\n case \"XX\":\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case \"XXXX\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalSeconds,\n dateString,\n );\n case \"XXXXX\":\n return parseTimezonePattern(\n timezonePatterns.extendedOptionalSeconds,\n dateString,\n );\n case \"XXX\":\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n\n set(date, flags, value) {\n if (flags.timestampIsSet) return date;\n return constructFrom(\n date,\n date.getTime() - getTimezoneOffsetInMilliseconds(date) - value,\n );\n }\n\n incompatibleTokens = [\"t\", \"T\", \"x\"];\n}\n","import { constructFrom } from \"../../../constructFrom.mjs\";\nimport { getTimezoneOffsetInMilliseconds } from \"../../../_lib/getTimezoneOffsetInMilliseconds.mjs\";\nimport { timezonePatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseTimezonePattern } from \"../utils.mjs\";\n\n// Timezone (ISO-8601)\nexport class ISOTimezoneParser extends Parser {\n priority = 10;\n\n parse(dateString, token) {\n switch (token) {\n case \"x\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalMinutes,\n dateString,\n );\n case \"xx\":\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case \"xxxx\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalSeconds,\n dateString,\n );\n case \"xxxxx\":\n return parseTimezonePattern(\n timezonePatterns.extendedOptionalSeconds,\n dateString,\n );\n case \"xxx\":\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n\n set(date, flags, value) {\n if (flags.timestampIsSet) return date;\n return constructFrom(\n date,\n date.getTime() - getTimezoneOffsetInMilliseconds(date) - value,\n );\n }\n\n incompatibleTokens = [\"t\", \"T\", \"X\"];\n}\n","import { constructFrom } from \"../../../constructFrom.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseAnyDigitsSigned } from \"../utils.mjs\";\n\nexport class TimestampSecondsParser extends Parser {\n priority = 40;\n\n parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n\n set(date, _flags, value) {\n return [constructFrom(date, value * 1000), { timestampIsSet: true }];\n }\n\n incompatibleTokens = \"*\";\n}\n","import { constructFrom } from \"../../../constructFrom.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseAnyDigitsSigned } from \"../utils.mjs\";\n\nexport class TimestampMillisecondsParser extends Parser {\n priority = 20;\n\n parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n\n set(date, _flags, value) {\n return [constructFrom(date, value), { timestampIsSet: true }];\n }\n\n incompatibleTokens = \"*\";\n}\n","import { EraParser } from \"./parsers/EraParser.mjs\";\nimport { YearParser } from \"./parsers/YearParser.mjs\";\nimport { LocalWeekYearParser } from \"./parsers/LocalWeekYearParser.mjs\";\nimport { ISOWeekYearParser } from \"./parsers/ISOWeekYearParser.mjs\";\nimport { ExtendedYearParser } from \"./parsers/ExtendedYearParser.mjs\";\nimport { QuarterParser } from \"./parsers/QuarterParser.mjs\";\nimport { StandAloneQuarterParser } from \"./parsers/StandAloneQuarterParser.mjs\";\nimport { MonthParser } from \"./parsers/MonthParser.mjs\";\nimport { StandAloneMonthParser } from \"./parsers/StandAloneMonthParser.mjs\";\nimport { LocalWeekParser } from \"./parsers/LocalWeekParser.mjs\";\nimport { ISOWeekParser } from \"./parsers/ISOWeekParser.mjs\";\nimport { DateParser } from \"./parsers/DateParser.mjs\";\nimport { DayOfYearParser } from \"./parsers/DayOfYearParser.mjs\";\nimport { DayParser } from \"./parsers/DayParser.mjs\";\nimport { LocalDayParser } from \"./parsers/LocalDayParser.mjs\";\nimport { StandAloneLocalDayParser } from \"./parsers/StandAloneLocalDayParser.mjs\";\nimport { ISODayParser } from \"./parsers/ISODayParser.mjs\";\nimport { AMPMParser } from \"./parsers/AMPMParser.mjs\";\nimport { AMPMMidnightParser } from \"./parsers/AMPMMidnightParser.mjs\";\nimport { DayPeriodParser } from \"./parsers/DayPeriodParser.mjs\";\nimport { Hour1to12Parser } from \"./parsers/Hour1to12Parser.mjs\";\nimport { Hour0to23Parser } from \"./parsers/Hour0to23Parser.mjs\";\nimport { Hour0To11Parser } from \"./parsers/Hour0To11Parser.mjs\";\nimport { Hour1To24Parser } from \"./parsers/Hour1To24Parser.mjs\";\nimport { MinuteParser } from \"./parsers/MinuteParser.mjs\";\nimport { SecondParser } from \"./parsers/SecondParser.mjs\";\nimport { FractionOfSecondParser } from \"./parsers/FractionOfSecondParser.mjs\";\nimport { ISOTimezoneWithZParser } from \"./parsers/ISOTimezoneWithZParser.mjs\";\nimport { ISOTimezoneParser } from \"./parsers/ISOTimezoneParser.mjs\";\nimport { TimestampSecondsParser } from \"./parsers/TimestampSecondsParser.mjs\";\nimport { TimestampMillisecondsParser } from \"./parsers/TimestampMillisecondsParser.mjs\";\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 | | P | |\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 `parse` 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 */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any -- It's ok, we want any here\nexport const parsers = {\n G: new EraParser(),\n y: new YearParser(),\n Y: new LocalWeekYearParser(),\n R: new ISOWeekYearParser(),\n u: new ExtendedYearParser(),\n Q: new QuarterParser(),\n q: new StandAloneQuarterParser(),\n M: new MonthParser(),\n L: new StandAloneMonthParser(),\n w: new LocalWeekParser(),\n I: new ISOWeekParser(),\n d: new DateParser(),\n D: new DayOfYearParser(),\n E: new DayParser(),\n e: new LocalDayParser(),\n c: new StandAloneLocalDayParser(),\n i: new ISODayParser(),\n a: new AMPMParser(),\n b: new AMPMMidnightParser(),\n B: new DayPeriodParser(),\n h: new Hour1to12Parser(),\n H: new Hour0to23Parser(),\n K: new Hour0To11Parser(),\n k: new Hour1To24Parser(),\n m: new MinuteParser(),\n s: new SecondParser(),\n S: new FractionOfSecondParser(),\n X: new ISOTimezoneWithZParser(),\n x: new ISOTimezoneParser(),\n t: new TimestampSecondsParser(),\n T: new TimestampMillisecondsParser(),\n};\n","import { constructFrom } from \"./constructFrom.mjs\";\nimport { getDefaultOptions } from \"./getDefaultOptions.mjs\";\nimport { defaultLocale } from \"./_lib/defaultLocale.mjs\";\nimport { toDate } from \"./toDate.mjs\";\nimport { longFormatters } from \"./_lib/format/longFormatters.mjs\";\nimport {\n isProtectedDayOfYearToken,\n isProtectedWeekYearToken,\n warnOrThrowProtectedError,\n} from \"./_lib/protectedTokens.mjs\";\nimport { parsers } from \"./parse/_lib/parsers.mjs\";\nimport { DateToSystemTimezoneSetter } from \"./parse/_lib/Setter.mjs\";\n\n// Rexports of internal for libraries to use.\n// See: https://github.com/date-fns/date-fns/issues/3638#issuecomment-1877082874\nexport { longFormatters, parsers };\n\n/**\n * The {@link parse} function options.\n */\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;\n\nconst notWhitespaceRegExp = /\\S/;\nconst unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name parse\n * @category Common Helpers\n * @summary Parse the date.\n *\n * @description\n * Return the date parsed from string using the given format string.\n *\n * > ⚠️ 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 in the format string 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 *\n * Format of the format 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 5 below the table).\n *\n * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited\n * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception:\n *\n * ```javascript\n * parse('23 AM', 'HH a', new Date())\n * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time\n * ```\n *\n * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true\n *\n * Accepted format string patterns:\n * | Unit |Prior| Pattern | Result examples | Notes |\n * |---------------------------------|-----|---------|-----------------------------------|-------|\n * | Era | 140 | G..GGG | AD, BC | |\n * | | | GGGG | Anno Domini, Before Christ | 2 |\n * | | | GGGGG | A, B | |\n * | Calendar year | 130 | y | 44, 1, 1900, 2017, 9999 | 4 |\n * | | | yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | yy | 44, 01, 00, 17 | 4 |\n * | | | yyy | 044, 001, 123, 999 | 4 |\n * | | | yyyy | 0044, 0001, 1900, 2017 | 4 |\n * | | | yyyyy | ... | 2,4 |\n * | Local week-numbering year | 130 | Y | 44, 1, 1900, 2017, 9000 | 4 |\n * | | | Yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | YY | 44, 01, 00, 17 | 4,6 |\n * | | | YYY | 044, 001, 123, 999 | 4 |\n * | | | YYYY | 0044, 0001, 1900, 2017 | 4,6 |\n * | | | YYYYY | ... | 2,4 |\n * | ISO week-numbering year | 130 | R | -43, 1, 1900, 2017, 9999, -9999 | 4,5 |\n * | | | RR | -43, 01, 00, 17 | 4,5 |\n * | | | RRR | -043, 001, 123, 999, -999 | 4,5 |\n * | | | RRRR | -0043, 0001, 2017, 9999, -9999 | 4,5 |\n * | | | RRRRR | ... | 2,4,5 |\n * | Extended year | 130 | u | -43, 1, 1900, 2017, 9999, -999 | 4 |\n * | | | uu | -43, 01, 99, -99 | 4 |\n * | | | uuu | -043, 001, 123, 999, -999 | 4 |\n * | | | uuuu | -0043, 0001, 2017, 9999, -9999 | 4 |\n * | | | uuuuu | ... | 2,4 |\n * | Quarter (formatting) | 120 | Q | 1, 2, 3, 4 | |\n * | | | Qo | 1st, 2nd, 3rd, 4th | 5 |\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) | 120 | q | 1, 2, 3, 4 | |\n * | | | qo | 1st, 2nd, 3rd, 4th | 5 |\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 | 3 |\n * | Month (formatting) | 110 | M | 1, 2, ..., 12 | |\n * | | | Mo | 1st, 2nd, ..., 12th | 5 |\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) | 110 | L | 1, 2, ..., 12 | |\n * | | | Lo | 1st, 2nd, ..., 12th | 5 |\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 | 100 | w | 1, 2, ..., 53 | |\n * | | | wo | 1st, 2nd, ..., 53th | 5 |\n * | | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | 100 | I | 1, 2, ..., 53 | 5 |\n * | | | Io | 1st, 2nd, ..., 53th | 5 |\n * | | | II | 01, 02, ..., 53 | 5 |\n * | Day of month | 90 | d | 1, 2, ..., 31 | |\n * | | | do | 1st, 2nd, ..., 31st | 5 |\n * | | | dd | 01, 02, ..., 31 | |\n * | Day of year | 90 | D | 1, 2, ..., 365, 366 | 7 |\n * | | | Do | 1st, 2nd, ..., 365th, 366th | 5 |\n * | | | DD | 01, 02, ..., 365, 366 | 7 |\n * | | | DDD | 001, 002, ..., 365, 366 | |\n * | | | DDDD | ... | 2 |\n * | Day of week (formatting) | 90 | 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) | 90 | i | 1, 2, 3, ..., 7 | 5 |\n * | | | io | 1st, 2nd, ..., 7th | 5 |\n * | | | ii | 01, 02, ..., 07 | 5 |\n * | | | iii | Mon, Tue, Wed, ..., Sun | 5 |\n * | | | iiii | Monday, Tuesday, ..., Sunday | 2,5 |\n * | | | iiiii | M, T, W, T, F, S, S | 5 |\n * | | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 5 |\n * | Local day of week (formatting) | 90 | e | 2, 3, 4, ..., 1 | |\n * | | | eo | 2nd, 3rd, ..., 1st | 5 |\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) | 90 | c | 2, 3, 4, ..., 1 | |\n * | | | co | 2nd, 3rd, ..., 1st | 5 |\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 | 80 | a..aaa | AM, PM | |\n * | | | aaaa | a.m., p.m. | 2 |\n * | | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | 80 | b..bbb | AM, PM, noon, midnight | |\n * | | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | | bbbbb | a, p, n, mi | |\n * | Flexible day period | 80 | 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] | 70 | h | 1, 2, ..., 11, 12 | |\n * | | | ho | 1st, 2nd, ..., 11th, 12th | 5 |\n * | | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | 70 | H | 0, 1, 2, ..., 23 | |\n * | | | Ho | 0th, 1st, 2nd, ..., 23rd | 5 |\n * | | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | 70 | K | 1, 2, ..., 11, 0 | |\n * | | | Ko | 1st, 2nd, ..., 11th, 0th | 5 |\n * | | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | 70 | k | 24, 1, 2, ..., 23 | |\n * | | | ko | 24th, 1st, 2nd, ..., 23rd | 5 |\n * | | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | 60 | m | 0, 1, ..., 59 | |\n * | | | mo | 0th, 1st, ..., 59th | 5 |\n * | | | mm | 00, 01, ..., 59 | |\n * | Second | 50 | s | 0, 1, ..., 59 | |\n * | | | so | 0th, 1st, ..., 59th | 5 |\n * | | | ss | 00, 01, ..., 59 | |\n * | Seconds timestamp | 40 | t | 512969520 | |\n * | | | tt | ... | 2 |\n * | Fraction of second | 30 | S | 0, 1, ..., 9 | |\n * | | | SS | 00, 01, ..., 99 | |\n * | | | SSS | 000, 001, ..., 999 | |\n * | | | SSSS | ... | 2 |\n * | Milliseconds timestamp | 20 | T | 512969520900 | |\n * | | | TT | ... | 2 |\n * | Timezone (ISO-8601 w/ Z) | 10 | 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) | 10 | 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 * | Long localized date | NA | P | 05/29/1453 | 5,8 |\n * | | | PP | May 29, 1453 | |\n * | | | PPP | May 29th, 1453 | |\n * | | | PPPP | Sunday, May 29th, 1453 | 2,5,8 |\n * | Long localized time | NA | p | 12:00 AM | 5,8 |\n * | | | pp | 12:00:00 AM | |\n * | Combination of date and time | NA | Pp | 05/29/1453, 12:00 AM | |\n * | | | PPpp | May 29, 1453, 12:00:00 AM | |\n * | | | PPPpp | May 29th, 1453 at ... | |\n * | | | PPPPpp | Sunday, May 29th, 1453 at ... | 2,5,8 |\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 * In `format` function, they will produce different result:\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 * `parse` will try to match both formatting and stand-alone units interchangably.\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:\n * - for numerical units (`yyyyyyyy`) `parse` will try to match a number\n * as wide as the sequence\n * - for text units (`MMMMMMMM`) `parse` will try to match the widest variation of the unit.\n * These variations are marked with \"2\" in the last column of the table.\n *\n * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 4. 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` will try to guess the century of two digit year by proximity with `referenceDate`:\n *\n * `parse('50', 'yy', new Date(2018, 0, 1)) //=> Sat Jan 01 2050 00:00:00`\n *\n * `parse('75', 'yy', new Date(2018, 0, 1)) //=> Wed Jan 01 1975 00:00:00`\n *\n * while `uu` will just assign the year as is:\n *\n * `parse('50', 'uu', new Date(2018, 0, 1)) //=> Sat Jan 01 0050 00:00:00`\n *\n * `parse('75', 'uu', new Date(2018, 0, 1)) //=> Tue Jan 01 0075 00:00:00`\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 [setISOWeekYear](https://date-fns.org/docs/setISOWeekYear)\n * and [setWeekYear](https://date-fns.org/docs/setWeekYear)).\n *\n * 5. 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 * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 6. `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 * 7. `D` and `DD` tokens represent days of the year but they are ofthen 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 * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based\n * on the given locale.\n *\n * using `en-US` locale: `P` => `MM/dd/yyyy`\n * using `en-US` locale: `p` => `hh:mm a`\n * using `pt-BR` locale: `P` => `dd/MM/yyyy`\n * using `pt-BR` locale: `p` => `HH:mm`\n *\n * Values will be assigned to the date in the descending order of its unit's priority.\n * Units of an equal priority overwrite each other in the order of appearance.\n *\n * If no values of higher priority are parsed (e.g. when parsing string 'January 1st' without a year),\n * the values will be taken from 3rd argument `referenceDate` which works as a context of parsing.\n *\n * `referenceDate` must be passed for correct work of the function.\n * If you're not sure which `referenceDate` to supply, create a new instance of Date:\n * `parse('02/11/2014', 'MM/dd/yyyy', new Date())`\n * In this case parsing will be done in the context of the current date.\n * If `referenceDate` is `Invalid Date` or a value not convertible to valid `Date`,\n * then `Invalid Date` will be returned.\n *\n * The result may vary by locale.\n *\n * If `formatString` matches with `dateString` but does not provides tokens, `referenceDate` will be returned.\n *\n * If parsing failed, `Invalid Date` will be returned.\n * Invalid Date is a Date, whose time value is NaN.\n * Time value of Date: http://es5.github.io/#x15.9.1.1\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 dateStr - The string to parse\n * @param formatStr - The string of tokens\n * @param referenceDate - defines values missing from the parsed dateString\n * @param options - An object with options.\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @returns The parsed date\n *\n * @throws `options.locale` must contain `match` 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 * // Parse 11 February 2014 from middle-endian format:\n * var result = parse('02/11/2014', 'MM/dd/yyyy', new Date())\n * //=> Tue Feb 11 2014 00:00:00\n *\n * @example\n * // Parse 28th of February in Esperanto locale in the context of 2010 year:\n * import eo from 'date-fns/locale/eo'\n * var result = parse('28-a de februaro', \"do 'de' MMMM\", new Date(2010, 0, 1), {\n * locale: eo\n * })\n * //=> Sun Feb 28 2010 00:00:00\n */\nexport function parse(dateStr, formatStr, referenceDate, 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 if (formatStr === \"\") {\n if (dateStr === \"\") {\n return toDate(referenceDate);\n } else {\n return constructFrom(referenceDate, NaN);\n }\n }\n\n const subFnOptions = {\n firstWeekContainsDate,\n weekStartsOn,\n locale,\n };\n\n // If timezone isn't specified, it will be set to the system timezone\n const setters = [new DateToSystemTimezoneSetter()];\n\n const tokens = formatStr\n .match(longFormattingTokensRegExp)\n .map((substring) => {\n const firstCharacter = substring[0];\n if (firstCharacter in longFormatters) {\n const longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n })\n .join(\"\")\n .match(formattingTokensRegExp);\n\n const usedTokens = [];\n\n for (let token of tokens) {\n if (\n !options?.useAdditionalWeekYearTokens &&\n isProtectedWeekYearToken(token)\n ) {\n warnOrThrowProtectedError(token, formatStr, dateStr);\n }\n if (\n !options?.useAdditionalDayOfYearTokens &&\n isProtectedDayOfYearToken(token)\n ) {\n warnOrThrowProtectedError(token, formatStr, dateStr);\n }\n\n const firstCharacter = token[0];\n const parser = parsers[firstCharacter];\n if (parser) {\n const { incompatibleTokens } = parser;\n if (Array.isArray(incompatibleTokens)) {\n const incompatibleToken = usedTokens.find(\n (usedToken) =>\n incompatibleTokens.includes(usedToken.token) ||\n usedToken.token === firstCharacter,\n );\n if (incompatibleToken) {\n throw new RangeError(\n `The format string mustn't contain \\`${incompatibleToken.fullToken}\\` and \\`${token}\\` at the same time`,\n );\n }\n } else if (parser.incompatibleTokens === \"*\" && usedTokens.length > 0) {\n throw new RangeError(\n `The format string mustn't contain \\`${token}\\` and any other token at the same time`,\n );\n }\n\n usedTokens.push({ token: firstCharacter, fullToken: token });\n\n const parseResult = parser.run(\n dateStr,\n token,\n locale.match,\n subFnOptions,\n );\n\n if (!parseResult) {\n return constructFrom(referenceDate, NaN);\n }\n\n setters.push(parseResult.setter);\n\n dateStr = parseResult.rest;\n } else {\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 // Replace two single quote characters with one single quote character\n if (token === \"''\") {\n token = \"'\";\n } else if (firstCharacter === \"'\") {\n token = cleanEscapedString(token);\n }\n\n // Cut token from string, or, if string doesn't match the token, return Invalid Date\n if (dateStr.indexOf(token) === 0) {\n dateStr = dateStr.slice(token.length);\n } else {\n return constructFrom(referenceDate, NaN);\n }\n }\n }\n\n // Check if the remaining input contains something other than whitespace\n if (dateStr.length > 0 && notWhitespaceRegExp.test(dateStr)) {\n return constructFrom(referenceDate, NaN);\n }\n\n const uniquePrioritySetters = setters\n .map((setter) => setter.priority)\n .sort((a, b) => b - a)\n .filter((priority, index, array) => array.indexOf(priority) === index)\n .map((priority) =>\n setters\n .filter((setter) => setter.priority === priority)\n .sort((a, b) => b.subPriority - a.subPriority),\n )\n .map((setterArray) => setterArray[0]);\n\n let date = toDate(referenceDate);\n\n if (isNaN(date.getTime())) {\n return constructFrom(referenceDate, NaN);\n }\n\n const flags = {};\n for (const setter of uniquePrioritySetters) {\n if (!setter.validate(date, subFnOptions)) {\n return constructFrom(referenceDate, NaN);\n }\n\n const result = setter.set(date, flags, subFnOptions);\n // Result is tuple (date, flags)\n if (Array.isArray(result)) {\n date = result[0];\n Object.assign(flags, result[1]);\n // Result is date\n } else {\n date = result;\n }\n }\n\n return constructFrom(referenceDate, date);\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}\n\n// Fallback for modularized imports:\nexport default parse;\n","import { isValid } from \"./isValid.mjs\";\nimport { parse } from \"./parse.mjs\";\n\n/**\n * The {@link isMatch} function options.\n */\n\n/**\n * @name isMatch\n * @category Common Helpers\n * @summary validates the date string against given formats\n *\n * @description\n * Return the true if given date is string correct against the given format else\n * will return false.\n *\n * > ⚠️ 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 in the format string 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 *\n * Format of the format 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 5 below the table).\n *\n * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited\n * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception:\n *\n * ```javascript\n * isMatch('23 AM', 'HH a')\n * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time\n * ```\n *\n * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true\n *\n * Accepted format string patterns:\n * | Unit |Prior| Pattern | Result examples | Notes |\n * |---------------------------------|-----|---------|-----------------------------------|-------|\n * | Era | 140 | G..GGG | AD, BC | |\n * | | | GGGG | Anno Domini, Before Christ | 2 |\n * | | | GGGGG | A, B | |\n * | Calendar year | 130 | y | 44, 1, 1900, 2017, 9999 | 4 |\n * | | | yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | yy | 44, 01, 00, 17 | 4 |\n * | | | yyy | 044, 001, 123, 999 | 4 |\n * | | | yyyy | 0044, 0001, 1900, 2017 | 4 |\n * | | | yyyyy | ... | 2,4 |\n * | Local week-numbering year | 130 | Y | 44, 1, 1900, 2017, 9000 | 4 |\n * | | | Yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | YY | 44, 01, 00, 17 | 4,6 |\n * | | | YYY | 044, 001, 123, 999 | 4 |\n * | | | YYYY | 0044, 0001, 1900, 2017 | 4,6 |\n * | | | YYYYY | ... | 2,4 |\n * | ISO week-numbering year | 130 | R | -43, 1, 1900, 2017, 9999, -9999 | 4,5 |\n * | | | RR | -43, 01, 00, 17 | 4,5 |\n * | | | RRR | -043, 001, 123, 999, -999 | 4,5 |\n * | | | RRRR | -0043, 0001, 2017, 9999, -9999 | 4,5 |\n * | | | RRRRR | ... | 2,4,5 |\n * | Extended year | 130 | u | -43, 1, 1900, 2017, 9999, -999 | 4 |\n * | | | uu | -43, 01, 99, -99 | 4 |\n * | | | uuu | -043, 001, 123, 999, -999 | 4 |\n * | | | uuuu | -0043, 0001, 2017, 9999, -9999 | 4 |\n * | | | uuuuu | ... | 2,4 |\n * | Quarter (formatting) | 120 | Q | 1, 2, 3, 4 | |\n * | | | Qo | 1st, 2nd, 3rd, 4th | 5 |\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) | 120 | q | 1, 2, 3, 4 | |\n * | | | qo | 1st, 2nd, 3rd, 4th | 5 |\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 | 3 |\n * | Month (formatting) | 110 | M | 1, 2, ..., 12 | |\n * | | | Mo | 1st, 2nd, ..., 12th | 5 |\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) | 110 | L | 1, 2, ..., 12 | |\n * | | | Lo | 1st, 2nd, ..., 12th | 5 |\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 | 100 | w | 1, 2, ..., 53 | |\n * | | | wo | 1st, 2nd, ..., 53th | 5 |\n * | | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | 100 | I | 1, 2, ..., 53 | 5 |\n * | | | Io | 1st, 2nd, ..., 53th | 5 |\n * | | | II | 01, 02, ..., 53 | 5 |\n * | Day of month | 90 | d | 1, 2, ..., 31 | |\n * | | | do | 1st, 2nd, ..., 31st | 5 |\n * | | | dd | 01, 02, ..., 31 | |\n * | Day of year | 90 | D | 1, 2, ..., 365, 366 | 7 |\n * | | | Do | 1st, 2nd, ..., 365th, 366th | 5 |\n * | | | DD | 01, 02, ..., 365, 366 | 7 |\n * | | | DDD | 001, 002, ..., 365, 366 | |\n * | | | DDDD | ... | 2 |\n * | Day of week (formatting) | 90 | E..EEE | Mon, Tue, Wed, ..., Su | |\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) | 90 | i | 1, 2, 3, ..., 7 | 5 |\n * | | | io | 1st, 2nd, ..., 7th | 5 |\n * | | | ii | 01, 02, ..., 07 | 5 |\n * | | | iii | Mon, Tue, Wed, ..., Su | 5 |\n * | | | iiii | Monday, Tuesday, ..., Sunday | 2,5 |\n * | | | iiiii | M, T, W, T, F, S, S | 5 |\n * | | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 5 |\n * | Local day of week (formatting) | 90 | e | 2, 3, 4, ..., 1 | |\n * | | | eo | 2nd, 3rd, ..., 1st | 5 |\n * | | | ee | 02, 03, ..., 01 | |\n * | | | eee | Mon, Tue, Wed, ..., Su | |\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) | 90 | c | 2, 3, 4, ..., 1 | |\n * | | | co | 2nd, 3rd, ..., 1st | 5 |\n * | | | cc | 02, 03, ..., 01 | |\n * | | | ccc | Mon, Tue, Wed, ..., Su | |\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 | 80 | a..aaa | AM, PM | |\n * | | | aaaa | a.m., p.m. | 2 |\n * | | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | 80 | b..bbb | AM, PM, noon, midnight | |\n * | | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | | bbbbb | a, p, n, mi | |\n * | Flexible day period | 80 | 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] | 70 | h | 1, 2, ..., 11, 12 | |\n * | | | ho | 1st, 2nd, ..., 11th, 12th | 5 |\n * | | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | 70 | H | 0, 1, 2, ..., 23 | |\n * | | | Ho | 0th, 1st, 2nd, ..., 23rd | 5 |\n * | | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | 70 | K | 1, 2, ..., 11, 0 | |\n * | | | Ko | 1st, 2nd, ..., 11th, 0th | 5 |\n * | | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | 70 | k | 24, 1, 2, ..., 23 | |\n * | | | ko | 24th, 1st, 2nd, ..., 23rd | 5 |\n * | | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | 60 | m | 0, 1, ..., 59 | |\n * | | | mo | 0th, 1st, ..., 59th | 5 |\n * | | | mm | 00, 01, ..., 59 | |\n * | Second | 50 | s | 0, 1, ..., 59 | |\n * | | | so | 0th, 1st, ..., 59th | 5 |\n * | | | ss | 00, 01, ..., 59 | |\n * | Seconds timestamp | 40 | t | 512969520 | |\n * | | | tt | ... | 2 |\n * | Fraction of second | 30 | S | 0, 1, ..., 9 | |\n * | | | SS | 00, 01, ..., 99 | |\n * | | | SSS | 000, 001, ..., 999 | |\n * | | | SSSS | ... | 2 |\n * | Milliseconds timestamp | 20 | T | 512969520900 | |\n * | | | TT | ... | 2 |\n * | Timezone (ISO-8601 w/ Z) | 10 | 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) | 10 | 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 * | Long localized date | NA | P | 05/29/1453 | 5,8 |\n * | | | PP | May 29, 1453 | |\n * | | | PPP | May 29th, 1453 | |\n * | | | PPPP | Sunday, May 29th, 1453 | 2,5,8 |\n * | Long localized time | NA | p | 12:00 AM | 5,8 |\n * | | | pp | 12:00:00 AM | |\n * | Combination of date and time | NA | Pp | 05/29/1453, 12:00 AM | |\n * | | | PPpp | May 29, 1453, 12:00:00 AM | |\n * | | | PPPpp | May 29th, 1453 at ... | |\n * | | | PPPPpp | Sunday, May 29th, 1453 at ... | 2,5,8 |\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 * In `format` function, they will produce different result:\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 * `isMatch` will try to match both formatting and stand-alone units interchangably.\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:\n * - for numerical units (`yyyyyyyy`) `isMatch` will try to match a number\n * as wide as the sequence\n * - for text units (`MMMMMMMM`) `isMatch` will try to match the widest variation of the unit.\n * These variations are marked with \"2\" in the last column of the table.\n *\n * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 4. 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` will try to guess the century of two digit year by proximity with `referenceDate`:\n *\n * `isMatch('50', 'yy') //=> true`\n *\n * `isMatch('75', 'yy') //=> true`\n *\n * while `uu` will use the year as is:\n *\n * `isMatch('50', 'uu') //=> true`\n *\n * `isMatch('75', 'uu') //=> true`\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 [setISOWeekYear](https://date-fns.org/docs/setISOWeekYear)\n * and [setWeekYear](https://date-fns.org/docs/setWeekYear)).\n *\n * 5. 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 * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 6. `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 * 7. `D` and `DD` tokens represent days of the year but they are ofthen 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 * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based\n * on the given locale.\n *\n * using `en-US` locale: `P` => `MM/dd/yyyy`\n * using `en-US` locale: `p` => `hh:mm a`\n * using `pt-BR` locale: `P` => `dd/MM/yyyy`\n * using `pt-BR` locale: `p` => `HH:mm`\n *\n * Values will be checked in the descending order of its unit's priority.\n * Units of an equal priority overwrite each other in the order of appearance.\n *\n * If no values of higher priority are matched (e.g. when matching string 'January 1st' without a year),\n * the values will be taken from today's using `new Date()` date which works as a context of parsing.\n *\n * The result may vary by locale.\n *\n * If `formatString` matches with `dateString` but does not provides tokens, `referenceDate` will be returned.\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 dateStr - The date string to verify\n * @param format - The string of tokens\n * @param options - An object with options.\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @returns Is format string a match for date string?\n *\n * @throws `options.locale` must contain `match` property\n * @throws use `yyyy` instead of `YYYY` for formatting years; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `yy` instead of `YY` for formatting years; 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; 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; 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 * // Match 11 February 2014 from middle-endian format:\n * const result = isMatch('02/11/2014', 'MM/dd/yyyy')\n * //=> true\n *\n * @example\n * // Match 28th of February in Esperanto locale in the context of 2010 year:\n * import eo from 'date-fns/locale/eo'\n * const result = isMatch('28-a de februaro', \"do 'de' MMMM\", {\n * locale: eo\n * })\n * //=> true\n */\nexport function isMatch(dateStr, formatStr, options) {\n return isValid(parse(dateStr, formatStr, new Date(), options));\n}\n\n// Fallback for modularized imports:\nexport default isMatch;\n","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","export default function getUAString() {\n var uaData = navigator.userAgentData;\n\n if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) {\n return uaData.brands.map(function (item) {\n return item.brand + \"/\" + item.version;\n }).join(' ');\n }\n\n return navigator.userAgent;\n}","import getUAString from \"../utils/userAgent.js\";\nexport default function isLayoutViewport() {\n return !/^((?!chrome|android).)*safari/i.test(getUAString());\n}","import { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nimport getWindow from \"./getWindow.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getBoundingClientRect(element, includeScale, isFixedStrategy) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n\n var clientRect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;\n scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;\n }\n\n var _ref = isElement(element) ? getWindow(element) : window,\n visualViewport = _ref.visualViewport;\n\n var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;\n var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;\n var width = clientRect.width / scaleX;\n var height = clientRect.height / scaleY;\n return {\n width: width,\n height: height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x: x,\n y: y\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement, isShadowRoot } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getUAString from \"../utils/userAgent.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = /firefox/i.test(getUAString());\n var isIE = /Trident/i.test(getUAString());\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref, win) {\n var x = _ref.x,\n y = _ref.y;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x,\n x = _offsets$x === void 0 ? 0 : _offsets$x,\n _offsets$y = offsets.y,\n y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x: x,\n y: y\n }, getWindow(popper)) : {\n x: x,\n y: y\n };\n\n x = _ref4.x;\n y = _ref4.y;\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n var state = _ref5.state,\n options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on <html>\n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getViewportRect(element, strategy) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n var layoutViewport = isLayoutViewport();\n\n if (layoutViewport || !layoutViewport && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element, strategy) {\n var rect = getBoundingClientRect(element, false, strategy === 'fixed');\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent, strategy) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary, strategy) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent, strategy));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$strategy = _options.strategy,\n strategy = _options$strategy === void 0 ? state.strategy : _options$strategy,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport { within, withinMaxClamp } from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { min as mathMin, max as mathMax } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = offset + overflow[mainSide];\n var max = offset - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n });\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref) {\n var name = _ref.name,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options,\n effect = _ref.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";","var __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};\nimport { reactive, computed, ref, watch, onUnmounted, provide, inject, onMounted, watchEffect, defineComponent, toRefs, nextTick, openBlock, createElementBlock, normalizeClass, createVNode, Transition, withCtx, mergeProps, renderSlot, createTextVNode, toDisplayString, createElementVNode, createCommentVNode, unref, createBlock, resolveDynamicComponent, normalizeProps, Fragment, renderList, normalizeStyle, withKeys, withDirectives, toRef, resolveComponent, resolveDirective, toHandlers, withModifiers, isRef, guardReactiveProps } from \"vue\";\nimport { createPopper } from \"@popperjs/core\";\nvar commonjsGlobal = typeof globalThis !== \"undefined\" ? globalThis : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : {};\nfunction getDefaultExportFromCjs(x) {\n return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, \"default\") ? x[\"default\"] : x;\n}\nvar objectProto$g = Object.prototype;\nvar hasOwnProperty$d = objectProto$g.hasOwnProperty;\nfunction baseHas$1(object, key) {\n return object != null && hasOwnProperty$d.call(object, key);\n}\nvar _baseHas = baseHas$1;\nvar isArray$c = Array.isArray;\nvar isArray_1 = isArray$c;\nvar freeGlobal$1 = typeof commonjsGlobal == \"object\" && commonjsGlobal && commonjsGlobal.Object === Object && commonjsGlobal;\nvar _freeGlobal = freeGlobal$1;\nvar freeGlobal = _freeGlobal;\nvar freeSelf = typeof self == \"object\" && self && self.Object === Object && self;\nvar root$8 = freeGlobal || freeSelf || Function(\"return this\")();\nvar _root = root$8;\nvar root$7 = _root;\nvar Symbol$5 = root$7.Symbol;\nvar _Symbol = Symbol$5;\nvar Symbol$4 = _Symbol;\nvar objectProto$f = Object.prototype;\nvar hasOwnProperty$c = objectProto$f.hasOwnProperty;\nvar nativeObjectToString$1 = objectProto$f.toString;\nvar symToStringTag$1 = Symbol$4 ? Symbol$4.toStringTag : void 0;\nfunction getRawTag$1(value) {\n var isOwn = hasOwnProperty$c.call(value, symToStringTag$1), tag = value[symToStringTag$1];\n try {\n value[symToStringTag$1] = void 0;\n var unmasked = true;\n } catch (e) {\n }\n var result = nativeObjectToString$1.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag$1] = tag;\n } else {\n delete value[symToStringTag$1];\n }\n }\n return result;\n}\nvar _getRawTag = getRawTag$1;\nvar objectProto$e = Object.prototype;\nvar nativeObjectToString = objectProto$e.toString;\nfunction objectToString$1(value) {\n return nativeObjectToString.call(value);\n}\nvar _objectToString = objectToString$1;\nvar Symbol$3 = _Symbol, getRawTag = _getRawTag, objectToString = _objectToString;\nvar nullTag = \"[object Null]\", undefinedTag = \"[object Undefined]\";\nvar symToStringTag = Symbol$3 ? Symbol$3.toStringTag : void 0;\nfunction baseGetTag$a(value) {\n if (value == null) {\n return value === void 0 ? undefinedTag : nullTag;\n }\n return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value);\n}\nvar _baseGetTag = baseGetTag$a;\nfunction isObjectLike$b(value) {\n return value != null && typeof value == \"object\";\n}\nvar isObjectLike_1 = isObjectLike$b;\nvar baseGetTag$9 = _baseGetTag, isObjectLike$a = isObjectLike_1;\nvar symbolTag$1 = \"[object Symbol]\";\nfunction isSymbol$3(value) {\n return typeof value == \"symbol\" || isObjectLike$a(value) && baseGetTag$9(value) == symbolTag$1;\n}\nvar isSymbol_1 = isSymbol$3;\nvar isArray$b = isArray_1, isSymbol$2 = isSymbol_1;\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/, reIsPlainProp = /^\\w*$/;\nfunction isKey$3(value, object) {\n if (isArray$b(value)) {\n return false;\n }\n var type = typeof value;\n if (type == \"number\" || type == \"symbol\" || type == \"boolean\" || value == null || isSymbol$2(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || object != null && value in Object(object);\n}\nvar _isKey = isKey$3;\nfunction isObject$a(value) {\n var type = typeof value;\n return value != null && (type == \"object\" || type == \"function\");\n}\nvar isObject_1 = isObject$a;\nvar baseGetTag$8 = _baseGetTag, isObject$9 = isObject_1;\nvar asyncTag = \"[object AsyncFunction]\", funcTag$1 = \"[object Function]\", genTag = \"[object GeneratorFunction]\", proxyTag = \"[object Proxy]\";\nfunction isFunction$3(value) {\n if (!isObject$9(value)) {\n return false;\n }\n var tag = baseGetTag$8(value);\n return tag == funcTag$1 || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\nvar isFunction_1 = isFunction$3;\nvar root$6 = _root;\nvar coreJsData$1 = root$6[\"__core-js_shared__\"];\nvar _coreJsData = coreJsData$1;\nvar coreJsData = _coreJsData;\nvar maskSrcKey = function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || \"\");\n return uid ? \"Symbol(src)_1.\" + uid : \"\";\n}();\nfunction isMasked$1(func) {\n return !!maskSrcKey && maskSrcKey in func;\n}\nvar _isMasked = isMasked$1;\nvar funcProto$2 = Function.prototype;\nvar funcToString$2 = funcProto$2.toString;\nfunction toSource$2(func) {\n if (func != null) {\n try {\n return funcToString$2.call(func);\n } catch (e) {\n }\n try {\n return func + \"\";\n } catch (e) {\n }\n }\n return \"\";\n}\nvar _toSource = toSource$2;\nvar isFunction$2 = isFunction_1, isMasked = _isMasked, isObject$8 = isObject_1, toSource$1 = _toSource;\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\nvar funcProto$1 = Function.prototype, objectProto$d = Object.prototype;\nvar funcToString$1 = funcProto$1.toString;\nvar hasOwnProperty$b = objectProto$d.hasOwnProperty;\nvar reIsNative = RegExp(\n \"^\" + funcToString$1.call(hasOwnProperty$b).replace(reRegExpChar, \"\\\\$&\").replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, \"$1.*?\") + \"$\"\n);\nfunction baseIsNative$1(value) {\n if (!isObject$8(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction$2(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource$1(value));\n}\nvar _baseIsNative = baseIsNative$1;\nfunction getValue$1(object, key) {\n return object == null ? void 0 : object[key];\n}\nvar _getValue = getValue$1;\nvar baseIsNative = _baseIsNative, getValue = _getValue;\nfunction getNative$7(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : void 0;\n}\nvar _getNative = getNative$7;\nvar getNative$6 = _getNative;\nvar nativeCreate$4 = getNative$6(Object, \"create\");\nvar _nativeCreate = nativeCreate$4;\nvar nativeCreate$3 = _nativeCreate;\nfunction hashClear$1() {\n this.__data__ = nativeCreate$3 ? nativeCreate$3(null) : {};\n this.size = 0;\n}\nvar _hashClear = hashClear$1;\nfunction hashDelete$1(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\nvar _hashDelete = hashDelete$1;\nvar nativeCreate$2 = _nativeCreate;\nvar HASH_UNDEFINED$2 = \"__lodash_hash_undefined__\";\nvar objectProto$c = Object.prototype;\nvar hasOwnProperty$a = objectProto$c.hasOwnProperty;\nfunction hashGet$1(key) {\n var data2 = this.__data__;\n if (nativeCreate$2) {\n var result = data2[key];\n return result === HASH_UNDEFINED$2 ? void 0 : result;\n }\n return hasOwnProperty$a.call(data2, key) ? data2[key] : void 0;\n}\nvar _hashGet = hashGet$1;\nvar nativeCreate$1 = _nativeCreate;\nvar objectProto$b = Object.prototype;\nvar hasOwnProperty$9 = objectProto$b.hasOwnProperty;\nfunction hashHas$1(key) {\n var data2 = this.__data__;\n return nativeCreate$1 ? data2[key] !== void 0 : hasOwnProperty$9.call(data2, key);\n}\nvar _hashHas = hashHas$1;\nvar nativeCreate = _nativeCreate;\nvar HASH_UNDEFINED$1 = \"__lodash_hash_undefined__\";\nfunction hashSet$1(key, value) {\n var data2 = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data2[key] = nativeCreate && value === void 0 ? HASH_UNDEFINED$1 : value;\n return this;\n}\nvar _hashSet = hashSet$1;\nvar hashClear = _hashClear, hashDelete = _hashDelete, hashGet = _hashGet, hashHas = _hashHas, hashSet = _hashSet;\nfunction Hash$1(entries) {\n var index2 = -1, length = entries == null ? 0 : entries.length;\n this.clear();\n while (++index2 < length) {\n var entry = entries[index2];\n this.set(entry[0], entry[1]);\n }\n}\nHash$1.prototype.clear = hashClear;\nHash$1.prototype[\"delete\"] = hashDelete;\nHash$1.prototype.get = hashGet;\nHash$1.prototype.has = hashHas;\nHash$1.prototype.set = hashSet;\nvar _Hash = Hash$1;\nfunction listCacheClear$1() {\n this.__data__ = [];\n this.size = 0;\n}\nvar _listCacheClear = listCacheClear$1;\nfunction eq$6(value, other) {\n return value === other || value !== value && other !== other;\n}\nvar eq_1 = eq$6;\nvar eq$5 = eq_1;\nfunction assocIndexOf$4(array, key) {\n var length = array.length;\n while (length--) {\n if (eq$5(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\nvar _assocIndexOf = assocIndexOf$4;\nvar assocIndexOf$3 = _assocIndexOf;\nvar arrayProto = Array.prototype;\nvar splice = arrayProto.splice;\nfunction listCacheDelete$1(key) {\n var data2 = this.__data__, index2 = assocIndexOf$3(data2, key);\n if (index2 < 0) {\n return false;\n }\n var lastIndex = data2.length - 1;\n if (index2 == lastIndex) {\n data2.pop();\n } else {\n splice.call(data2, index2, 1);\n }\n --this.size;\n return true;\n}\nvar _listCacheDelete = listCacheDelete$1;\nvar assocIndexOf$2 = _assocIndexOf;\nfunction listCacheGet$1(key) {\n var data2 = this.__data__, index2 = assocIndexOf$2(data2, key);\n return index2 < 0 ? void 0 : data2[index2][1];\n}\nvar _listCacheGet = listCacheGet$1;\nvar assocIndexOf$1 = _assocIndexOf;\nfunction listCacheHas$1(key) {\n return assocIndexOf$1(this.__data__, key) > -1;\n}\nvar _listCacheHas = listCacheHas$1;\nvar assocIndexOf = _assocIndexOf;\nfunction listCacheSet$1(key, value) {\n var data2 = this.__data__, index2 = assocIndexOf(data2, key);\n if (index2 < 0) {\n ++this.size;\n data2.push([key, value]);\n } else {\n data2[index2][1] = value;\n }\n return this;\n}\nvar _listCacheSet = listCacheSet$1;\nvar listCacheClear = _listCacheClear, listCacheDelete = _listCacheDelete, listCacheGet = _listCacheGet, listCacheHas = _listCacheHas, listCacheSet = _listCacheSet;\nfunction ListCache$4(entries) {\n var index2 = -1, length = entries == null ? 0 : entries.length;\n this.clear();\n while (++index2 < length) {\n var entry = entries[index2];\n this.set(entry[0], entry[1]);\n }\n}\nListCache$4.prototype.clear = listCacheClear;\nListCache$4.prototype[\"delete\"] = listCacheDelete;\nListCache$4.prototype.get = listCacheGet;\nListCache$4.prototype.has = listCacheHas;\nListCache$4.prototype.set = listCacheSet;\nvar _ListCache = ListCache$4;\nvar getNative$5 = _getNative, root$5 = _root;\nvar Map$3 = getNative$5(root$5, \"Map\");\nvar _Map = Map$3;\nvar Hash = _Hash, ListCache$3 = _ListCache, Map$2 = _Map;\nfunction mapCacheClear$1() {\n this.size = 0;\n this.__data__ = {\n \"hash\": new Hash(),\n \"map\": new (Map$2 || ListCache$3)(),\n \"string\": new Hash()\n };\n}\nvar _mapCacheClear = mapCacheClear$1;\nfunction isKeyable$1(value) {\n var type = typeof value;\n return type == \"string\" || type == \"number\" || type == \"symbol\" || type == \"boolean\" ? value !== \"__proto__\" : value === null;\n}\nvar _isKeyable = isKeyable$1;\nvar isKeyable = _isKeyable;\nfunction getMapData$4(map, key) {\n var data2 = map.__data__;\n return isKeyable(key) ? data2[typeof key == \"string\" ? \"string\" : \"hash\"] : data2.map;\n}\nvar _getMapData = getMapData$4;\nvar getMapData$3 = _getMapData;\nfunction mapCacheDelete$1(key) {\n var result = getMapData$3(this, key)[\"delete\"](key);\n this.size -= result ? 1 : 0;\n return result;\n}\nvar _mapCacheDelete = mapCacheDelete$1;\nvar getMapData$2 = _getMapData;\nfunction mapCacheGet$1(key) {\n return getMapData$2(this, key).get(key);\n}\nvar _mapCacheGet = mapCacheGet$1;\nvar getMapData$1 = _getMapData;\nfunction mapCacheHas$1(key) {\n return getMapData$1(this, key).has(key);\n}\nvar _mapCacheHas = mapCacheHas$1;\nvar getMapData = _getMapData;\nfunction mapCacheSet$1(key, value) {\n var data2 = getMapData(this, key), size = data2.size;\n data2.set(key, value);\n this.size += data2.size == size ? 0 : 1;\n return this;\n}\nvar _mapCacheSet = mapCacheSet$1;\nvar mapCacheClear = _mapCacheClear, mapCacheDelete = _mapCacheDelete, mapCacheGet = _mapCacheGet, mapCacheHas = _mapCacheHas, mapCacheSet = _mapCacheSet;\nfunction MapCache$3(entries) {\n var index2 = -1, length = entries == null ? 0 : entries.length;\n this.clear();\n while (++index2 < length) {\n var entry = entries[index2];\n this.set(entry[0], entry[1]);\n }\n}\nMapCache$3.prototype.clear = mapCacheClear;\nMapCache$3.prototype[\"delete\"] = mapCacheDelete;\nMapCache$3.prototype.get = mapCacheGet;\nMapCache$3.prototype.has = mapCacheHas;\nMapCache$3.prototype.set = mapCacheSet;\nvar _MapCache = MapCache$3;\nvar MapCache$2 = _MapCache;\nvar FUNC_ERROR_TEXT = \"Expected a function\";\nfunction memoize$1(func, resolver) {\n if (typeof func != \"function\" || resolver != null && typeof resolver != \"function\") {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments, key = resolver ? resolver.apply(this, args) : args[0], cache = memoized.cache;\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize$1.Cache || MapCache$2)();\n return memoized;\n}\nmemoize$1.Cache = MapCache$2;\nvar memoize_1 = memoize$1;\nvar memoize = memoize_1;\nvar MAX_MEMOIZE_SIZE = 500;\nfunction memoizeCapped$1(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n var cache = result.cache;\n return result;\n}\nvar _memoizeCapped = memoizeCapped$1;\nvar memoizeCapped = _memoizeCapped;\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g;\nvar stringToPath$1 = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46) {\n result.push(\"\");\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, \"$1\") : number || match);\n });\n return result;\n});\nvar _stringToPath = stringToPath$1;\nfunction arrayMap$1(array, iteratee) {\n var index2 = -1, length = array == null ? 0 : array.length, result = Array(length);\n while (++index2 < length) {\n result[index2] = iteratee(array[index2], index2, array);\n }\n return result;\n}\nvar _arrayMap = arrayMap$1;\nvar Symbol$2 = _Symbol, arrayMap = _arrayMap, isArray$a = isArray_1, isSymbol$1 = isSymbol_1;\nvar INFINITY$1 = 1 / 0;\nvar symbolProto$1 = Symbol$2 ? Symbol$2.prototype : void 0, symbolToString = symbolProto$1 ? symbolProto$1.toString : void 0;\nfunction baseToString$1(value) {\n if (typeof value == \"string\") {\n return value;\n }\n if (isArray$a(value)) {\n return arrayMap(value, baseToString$1) + \"\";\n }\n if (isSymbol$1(value)) {\n return symbolToString ? symbolToString.call(value) : \"\";\n }\n var result = value + \"\";\n return result == \"0\" && 1 / value == -INFINITY$1 ? \"-0\" : result;\n}\nvar _baseToString = baseToString$1;\nvar baseToString = _baseToString;\nfunction toString$1(value) {\n return value == null ? \"\" : baseToString(value);\n}\nvar toString_1 = toString$1;\nvar isArray$9 = isArray_1, isKey$2 = _isKey, stringToPath = _stringToPath, toString = toString_1;\nfunction castPath$2(value, object) {\n if (isArray$9(value)) {\n return value;\n }\n return isKey$2(value, object) ? [value] : stringToPath(toString(value));\n}\nvar _castPath = castPath$2;\nvar baseGetTag$7 = _baseGetTag, isObjectLike$9 = isObjectLike_1;\nvar argsTag$2 = \"[object Arguments]\";\nfunction baseIsArguments$1(value) {\n return isObjectLike$9(value) && baseGetTag$7(value) == argsTag$2;\n}\nvar _baseIsArguments = baseIsArguments$1;\nvar baseIsArguments = _baseIsArguments, isObjectLike$8 = isObjectLike_1;\nvar objectProto$a = Object.prototype;\nvar hasOwnProperty$8 = objectProto$a.hasOwnProperty;\nvar propertyIsEnumerable$1 = objectProto$a.propertyIsEnumerable;\nvar isArguments$3 = baseIsArguments(function() {\n return arguments;\n}()) ? baseIsArguments : function(value) {\n return isObjectLike$8(value) && hasOwnProperty$8.call(value, \"callee\") && !propertyIsEnumerable$1.call(value, \"callee\");\n};\nvar isArguments_1 = isArguments$3;\nvar MAX_SAFE_INTEGER$1 = 9007199254740991;\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\nfunction isIndex$3(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER$1 : length;\n return !!length && (type == \"number\" || type != \"symbol\" && reIsUint.test(value)) && (value > -1 && value % 1 == 0 && value < length);\n}\nvar _isIndex = isIndex$3;\nvar MAX_SAFE_INTEGER = 9007199254740991;\nfunction isLength$3(value) {\n return typeof value == \"number\" && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\nvar isLength_1 = isLength$3;\nvar isSymbol = isSymbol_1;\nvar INFINITY = 1 / 0;\nfunction toKey$4(value) {\n if (typeof value == \"string\" || isSymbol(value)) {\n return value;\n }\n var result = value + \"\";\n return result == \"0\" && 1 / value == -INFINITY ? \"-0\" : result;\n}\nvar _toKey = toKey$4;\nvar castPath$1 = _castPath, isArguments$2 = isArguments_1, isArray$8 = isArray_1, isIndex$2 = _isIndex, isLength$2 = isLength_1, toKey$3 = _toKey;\nfunction hasPath$2(object, path, hasFunc) {\n path = castPath$1(path, object);\n var index2 = -1, length = path.length, result = false;\n while (++index2 < length) {\n var key = toKey$3(path[index2]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index2 != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength$2(length) && isIndex$2(key, length) && (isArray$8(object) || isArguments$2(object));\n}\nvar _hasPath = hasPath$2;\nvar baseHas = _baseHas, hasPath$1 = _hasPath;\nfunction has$1(object, path) {\n return object != null && hasPath$1(object, path, baseHas);\n}\nvar has_1 = has$1;\nvar baseGetTag$6 = _baseGetTag, isObjectLike$7 = isObjectLike_1;\nvar dateTag$2 = \"[object Date]\";\nfunction baseIsDate$1(value) {\n return isObjectLike$7(value) && baseGetTag$6(value) == dateTag$2;\n}\nvar _baseIsDate = baseIsDate$1;\nfunction baseUnary$2(func) {\n return function(value) {\n return func(value);\n };\n}\nvar _baseUnary = baseUnary$2;\nvar _nodeUtilExports = {};\nvar _nodeUtil = {\n get exports() {\n return _nodeUtilExports;\n },\n set exports(v) {\n _nodeUtilExports = v;\n }\n};\n(function(module, exports) {\n var freeGlobal2 = _freeGlobal;\n var freeExports = exports && !exports.nodeType && exports;\n var freeModule = freeExports && true && module && !module.nodeType && module;\n var moduleExports = freeModule && freeModule.exports === freeExports;\n var freeProcess = moduleExports && freeGlobal2.process;\n var nodeUtil2 = function() {\n try {\n var types = freeModule && freeModule.require && freeModule.require(\"util\").types;\n if (types) {\n return types;\n }\n return freeProcess && freeProcess.binding && freeProcess.binding(\"util\");\n } catch (e) {\n }\n }();\n module.exports = nodeUtil2;\n})(_nodeUtil, _nodeUtilExports);\nvar baseIsDate = _baseIsDate, baseUnary$1 = _baseUnary, nodeUtil$1 = _nodeUtilExports;\nvar nodeIsDate = nodeUtil$1 && nodeUtil$1.isDate;\nvar isDate$1 = nodeIsDate ? baseUnary$1(nodeIsDate) : baseIsDate;\nvar isDate_1 = isDate$1;\nvar baseGetTag$5 = _baseGetTag, isArray$7 = isArray_1, isObjectLike$6 = isObjectLike_1;\nvar stringTag$2 = \"[object String]\";\nfunction isString(value) {\n return typeof value == \"string\" || !isArray$7(value) && isObjectLike$6(value) && baseGetTag$5(value) == stringTag$2;\n}\nvar isString_1 = isString;\nfunction arraySome$2(array, predicate) {\n var index2 = -1, length = array == null ? 0 : array.length;\n while (++index2 < length) {\n if (predicate(array[index2], index2, array)) {\n return true;\n }\n }\n return false;\n}\nvar _arraySome = arraySome$2;\nvar ListCache$2 = _ListCache;\nfunction stackClear$1() {\n this.__data__ = new ListCache$2();\n this.size = 0;\n}\nvar _stackClear = stackClear$1;\nfunction stackDelete$1(key) {\n var data2 = this.__data__, result = data2[\"delete\"](key);\n this.size = data2.size;\n return result;\n}\nvar _stackDelete = stackDelete$1;\nfunction stackGet$1(key) {\n return this.__data__.get(key);\n}\nvar _stackGet = stackGet$1;\nfunction stackHas$1(key) {\n return this.__data__.has(key);\n}\nvar _stackHas = stackHas$1;\nvar ListCache$1 = _ListCache, Map$1 = _Map, MapCache$1 = _MapCache;\nvar LARGE_ARRAY_SIZE = 200;\nfunction stackSet$1(key, value) {\n var data2 = this.__data__;\n if (data2 instanceof ListCache$1) {\n var pairs = data2.__data__;\n if (!Map$1 || pairs.length < LARGE_ARRAY_SIZE - 1) {\n pairs.push([key, value]);\n this.size = ++data2.size;\n return this;\n }\n data2 = this.__data__ = new MapCache$1(pairs);\n }\n data2.set(key, value);\n this.size = data2.size;\n return this;\n}\nvar _stackSet = stackSet$1;\nvar ListCache = _ListCache, stackClear = _stackClear, stackDelete = _stackDelete, stackGet = _stackGet, stackHas = _stackHas, stackSet = _stackSet;\nfunction Stack$3(entries) {\n var data2 = this.__data__ = new ListCache(entries);\n this.size = data2.size;\n}\nStack$3.prototype.clear = stackClear;\nStack$3.prototype[\"delete\"] = stackDelete;\nStack$3.prototype.get = stackGet;\nStack$3.prototype.has = stackHas;\nStack$3.prototype.set = stackSet;\nvar _Stack = Stack$3;\nvar HASH_UNDEFINED = \"__lodash_hash_undefined__\";\nfunction setCacheAdd$1(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\nvar _setCacheAdd = setCacheAdd$1;\nfunction setCacheHas$1(value) {\n return this.__data__.has(value);\n}\nvar _setCacheHas = setCacheHas$1;\nvar MapCache = _MapCache, setCacheAdd = _setCacheAdd, setCacheHas = _setCacheHas;\nfunction SetCache$1(values) {\n var index2 = -1, length = values == null ? 0 : values.length;\n this.__data__ = new MapCache();\n while (++index2 < length) {\n this.add(values[index2]);\n }\n}\nSetCache$1.prototype.add = SetCache$1.prototype.push = setCacheAdd;\nSetCache$1.prototype.has = setCacheHas;\nvar _SetCache = SetCache$1;\nfunction cacheHas$1(cache, key) {\n return cache.has(key);\n}\nvar _cacheHas = cacheHas$1;\nvar SetCache = _SetCache, arraySome$1 = _arraySome, cacheHas = _cacheHas;\nvar COMPARE_PARTIAL_FLAG$5 = 1, COMPARE_UNORDERED_FLAG$3 = 2;\nfunction equalArrays$2(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG$5, arrLength = array.length, othLength = other.length;\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index2 = -1, result = true, seen = bitmask & COMPARE_UNORDERED_FLAG$3 ? new SetCache() : void 0;\n stack.set(array, other);\n stack.set(other, array);\n while (++index2 < arrLength) {\n var arrValue = array[index2], othValue = other[index2];\n if (customizer) {\n var compared = isPartial ? customizer(othValue, arrValue, index2, other, array, stack) : customizer(arrValue, othValue, index2, array, other, stack);\n }\n if (compared !== void 0) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n if (seen) {\n if (!arraySome$1(other, function(othValue2, othIndex) {\n if (!cacheHas(seen, othIndex) && (arrValue === othValue2 || equalFunc(arrValue, othValue2, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n result = false;\n break;\n }\n }\n stack[\"delete\"](array);\n stack[\"delete\"](other);\n return result;\n}\nvar _equalArrays = equalArrays$2;\nvar root$4 = _root;\nvar Uint8Array$2 = root$4.Uint8Array;\nvar _Uint8Array = Uint8Array$2;\nfunction mapToArray$1(map) {\n var index2 = -1, result = Array(map.size);\n map.forEach(function(value, key) {\n result[++index2] = [key, value];\n });\n return result;\n}\nvar _mapToArray = mapToArray$1;\nfunction setToArray$1(set) {\n var index2 = -1, result = Array(set.size);\n set.forEach(function(value) {\n result[++index2] = value;\n });\n return result;\n}\nvar _setToArray = setToArray$1;\nvar Symbol$1 = _Symbol, Uint8Array$1 = _Uint8Array, eq$4 = eq_1, equalArrays$1 = _equalArrays, mapToArray = _mapToArray, setToArray = _setToArray;\nvar COMPARE_PARTIAL_FLAG$4 = 1, COMPARE_UNORDERED_FLAG$2 = 2;\nvar boolTag$2 = \"[object Boolean]\", dateTag$1 = \"[object Date]\", errorTag$1 = \"[object Error]\", mapTag$2 = \"[object Map]\", numberTag$2 = \"[object Number]\", regexpTag$1 = \"[object RegExp]\", setTag$2 = \"[object Set]\", stringTag$1 = \"[object String]\", symbolTag = \"[object Symbol]\";\nvar arrayBufferTag$1 = \"[object ArrayBuffer]\", dataViewTag$2 = \"[object DataView]\";\nvar symbolProto = Symbol$1 ? Symbol$1.prototype : void 0, symbolValueOf = symbolProto ? symbolProto.valueOf : void 0;\nfunction equalByTag$1(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag$2:\n if (object.byteLength != other.byteLength || object.byteOffset != other.byteOffset) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n case arrayBufferTag$1:\n if (object.byteLength != other.byteLength || !equalFunc(new Uint8Array$1(object), new Uint8Array$1(other))) {\n return false;\n }\n return true;\n case boolTag$2:\n case dateTag$1:\n case numberTag$2:\n return eq$4(+object, +other);\n case errorTag$1:\n return object.name == other.name && object.message == other.message;\n case regexpTag$1:\n case stringTag$1:\n return object == other + \"\";\n case mapTag$2:\n var convert = mapToArray;\n case setTag$2:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG$4;\n convert || (convert = setToArray);\n if (object.size != other.size && !isPartial) {\n return false;\n }\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG$2;\n stack.set(object, other);\n var result = equalArrays$1(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack[\"delete\"](object);\n return result;\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\nvar _equalByTag = equalByTag$1;\nfunction arrayPush$1(array, values) {\n var index2 = -1, length = values.length, offset = array.length;\n while (++index2 < length) {\n array[offset + index2] = values[index2];\n }\n return array;\n}\nvar _arrayPush = arrayPush$1;\nvar arrayPush = _arrayPush, isArray$6 = isArray_1;\nfunction baseGetAllKeys$1(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray$6(object) ? result : arrayPush(result, symbolsFunc(object));\n}\nvar _baseGetAllKeys = baseGetAllKeys$1;\nfunction arrayFilter$1(array, predicate) {\n var index2 = -1, length = array == null ? 0 : array.length, resIndex = 0, result = [];\n while (++index2 < length) {\n var value = array[index2];\n if (predicate(value, index2, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\nvar _arrayFilter = arrayFilter$1;\nfunction stubArray$1() {\n return [];\n}\nvar stubArray_1 = stubArray$1;\nvar arrayFilter = _arrayFilter, stubArray = stubArray_1;\nvar objectProto$9 = Object.prototype;\nvar propertyIsEnumerable = objectProto$9.propertyIsEnumerable;\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\nvar getSymbols$1 = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\nvar _getSymbols = getSymbols$1;\nfunction baseTimes$1(n, iteratee) {\n var index2 = -1, result = Array(n);\n while (++index2 < n) {\n result[index2] = iteratee(index2);\n }\n return result;\n}\nvar _baseTimes = baseTimes$1;\nvar isBufferExports = {};\nvar isBuffer$3 = {\n get exports() {\n return isBufferExports;\n },\n set exports(v) {\n isBufferExports = v;\n }\n};\nfunction stubFalse() {\n return false;\n}\nvar stubFalse_1 = stubFalse;\n(function(module, exports) {\n var root2 = _root, stubFalse2 = stubFalse_1;\n var freeExports = exports && !exports.nodeType && exports;\n var freeModule = freeExports && true && module && !module.nodeType && module;\n var moduleExports = freeModule && freeModule.exports === freeExports;\n var Buffer2 = moduleExports ? root2.Buffer : void 0;\n var nativeIsBuffer = Buffer2 ? Buffer2.isBuffer : void 0;\n var isBuffer2 = nativeIsBuffer || stubFalse2;\n module.exports = isBuffer2;\n})(isBuffer$3, isBufferExports);\nvar baseGetTag$4 = _baseGetTag, isLength$1 = isLength_1, isObjectLike$5 = isObjectLike_1;\nvar argsTag$1 = \"[object Arguments]\", arrayTag$1 = \"[object Array]\", boolTag$1 = \"[object Boolean]\", dateTag = \"[object Date]\", errorTag = \"[object Error]\", funcTag = \"[object Function]\", mapTag$1 = \"[object Map]\", numberTag$1 = \"[object Number]\", objectTag$3 = \"[object Object]\", regexpTag = \"[object RegExp]\", setTag$1 = \"[object Set]\", stringTag = \"[object String]\", weakMapTag$1 = \"[object WeakMap]\";\nvar arrayBufferTag = \"[object ArrayBuffer]\", dataViewTag$1 = \"[object DataView]\", float32Tag = \"[object Float32Array]\", float64Tag = \"[object Float64Array]\", int8Tag = \"[object Int8Array]\", int16Tag = \"[object Int16Array]\", int32Tag = \"[object Int32Array]\", uint8Tag = \"[object Uint8Array]\", uint8ClampedTag = \"[object Uint8ClampedArray]\", uint16Tag = \"[object Uint16Array]\", uint32Tag = \"[object Uint32Array]\";\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag$1] = typedArrayTags[arrayTag$1] = typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag$1] = typedArrayTags[dataViewTag$1] = typedArrayTags[dateTag] = typedArrayTags[errorTag] = typedArrayTags[funcTag] = typedArrayTags[mapTag$1] = typedArrayTags[numberTag$1] = typedArrayTags[objectTag$3] = typedArrayTags[regexpTag] = typedArrayTags[setTag$1] = typedArrayTags[stringTag] = typedArrayTags[weakMapTag$1] = false;\nfunction baseIsTypedArray$1(value) {\n return isObjectLike$5(value) && isLength$1(value.length) && !!typedArrayTags[baseGetTag$4(value)];\n}\nvar _baseIsTypedArray = baseIsTypedArray$1;\nvar baseIsTypedArray = _baseIsTypedArray, baseUnary = _baseUnary, nodeUtil = _nodeUtilExports;\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\nvar isTypedArray$3 = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\nvar isTypedArray_1 = isTypedArray$3;\nvar baseTimes = _baseTimes, isArguments$1 = isArguments_1, isArray$5 = isArray_1, isBuffer$2 = isBufferExports, isIndex$1 = _isIndex, isTypedArray$2 = isTypedArray_1;\nvar objectProto$8 = Object.prototype;\nvar hasOwnProperty$7 = objectProto$8.hasOwnProperty;\nfunction arrayLikeKeys$2(value, inherited) {\n var isArr = isArray$5(value), isArg = !isArr && isArguments$1(value), isBuff = !isArr && !isArg && isBuffer$2(value), isType = !isArr && !isArg && !isBuff && isTypedArray$2(value), skipIndexes = isArr || isArg || isBuff || isType, result = skipIndexes ? baseTimes(value.length, String) : [], length = result.length;\n for (var key in value) {\n if ((inherited || hasOwnProperty$7.call(value, key)) && !(skipIndexes && // Safari 9 has enumerable `arguments.length` in strict mode.\n (key == \"length\" || // Node.js 0.10 has enumerable non-index properties on buffers.\n isBuff && (key == \"offset\" || key == \"parent\") || // PhantomJS 2 has enumerable non-index properties on typed arrays.\n isType && (key == \"buffer\" || key == \"byteLength\" || key == \"byteOffset\") || // Skip index properties.\n isIndex$1(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\nvar _arrayLikeKeys = arrayLikeKeys$2;\nvar objectProto$7 = Object.prototype;\nfunction isPrototype$3(value) {\n var Ctor = value && value.constructor, proto = typeof Ctor == \"function\" && Ctor.prototype || objectProto$7;\n return value === proto;\n}\nvar _isPrototype = isPrototype$3;\nfunction overArg$2(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\nvar _overArg = overArg$2;\nvar overArg$1 = _overArg;\nvar nativeKeys$1 = overArg$1(Object.keys, Object);\nvar _nativeKeys = nativeKeys$1;\nvar isPrototype$2 = _isPrototype, nativeKeys = _nativeKeys;\nvar objectProto$6 = Object.prototype;\nvar hasOwnProperty$6 = objectProto$6.hasOwnProperty;\nfunction baseKeys$1(object) {\n if (!isPrototype$2(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty$6.call(object, key) && key != \"constructor\") {\n result.push(key);\n }\n }\n return result;\n}\nvar _baseKeys = baseKeys$1;\nvar isFunction$1 = isFunction_1, isLength = isLength_1;\nfunction isArrayLike$5(value) {\n return value != null && isLength(value.length) && !isFunction$1(value);\n}\nvar isArrayLike_1 = isArrayLike$5;\nvar arrayLikeKeys$1 = _arrayLikeKeys, baseKeys = _baseKeys, isArrayLike$4 = isArrayLike_1;\nfunction keys$3(object) {\n return isArrayLike$4(object) ? arrayLikeKeys$1(object) : baseKeys(object);\n}\nvar keys_1 = keys$3;\nvar baseGetAllKeys = _baseGetAllKeys, getSymbols = _getSymbols, keys$2 = keys_1;\nfunction getAllKeys$1(object) {\n return baseGetAllKeys(object, keys$2, getSymbols);\n}\nvar _getAllKeys = getAllKeys$1;\nvar getAllKeys = _getAllKeys;\nvar COMPARE_PARTIAL_FLAG$3 = 1;\nvar objectProto$5 = Object.prototype;\nvar hasOwnProperty$5 = objectProto$5.hasOwnProperty;\nfunction equalObjects$1(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG$3, objProps = getAllKeys(object), objLength = objProps.length, othProps = getAllKeys(other), othLength = othProps.length;\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index2 = objLength;\n while (index2--) {\n var key = objProps[index2];\n if (!(isPartial ? key in other : hasOwnProperty$5.call(other, key))) {\n return false;\n }\n }\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n var skipCtor = isPartial;\n while (++index2 < objLength) {\n key = objProps[index2];\n var objValue = object[key], othValue = other[key];\n if (customizer) {\n var compared = isPartial ? customizer(othValue, objValue, key, other, object, stack) : customizer(objValue, othValue, key, object, other, stack);\n }\n if (!(compared === void 0 ? objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack) : compared)) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == \"constructor\");\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor, othCtor = other.constructor;\n if (objCtor != othCtor && (\"constructor\" in object && \"constructor\" in other) && !(typeof objCtor == \"function\" && objCtor instanceof objCtor && typeof othCtor == \"function\" && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack[\"delete\"](object);\n stack[\"delete\"](other);\n return result;\n}\nvar _equalObjects = equalObjects$1;\nvar getNative$4 = _getNative, root$3 = _root;\nvar DataView$1 = getNative$4(root$3, \"DataView\");\nvar _DataView = DataView$1;\nvar getNative$3 = _getNative, root$2 = _root;\nvar Promise$2 = getNative$3(root$2, \"Promise\");\nvar _Promise = Promise$2;\nvar getNative$2 = _getNative, root$1 = _root;\nvar Set$1 = getNative$2(root$1, \"Set\");\nvar _Set = Set$1;\nvar getNative$1 = _getNative, root = _root;\nvar WeakMap$1 = getNative$1(root, \"WeakMap\");\nvar _WeakMap = WeakMap$1;\nvar DataView = _DataView, Map = _Map, Promise$1 = _Promise, Set = _Set, WeakMap = _WeakMap, baseGetTag$3 = _baseGetTag, toSource = _toSource;\nvar mapTag = \"[object Map]\", objectTag$2 = \"[object Object]\", promiseTag = \"[object Promise]\", setTag = \"[object Set]\", weakMapTag = \"[object WeakMap]\";\nvar dataViewTag = \"[object DataView]\";\nvar dataViewCtorString = toSource(DataView), mapCtorString = toSource(Map), promiseCtorString = toSource(Promise$1), setCtorString = toSource(Set), weakMapCtorString = toSource(WeakMap);\nvar getTag$1 = baseGetTag$3;\nif (DataView && getTag$1(new DataView(new ArrayBuffer(1))) != dataViewTag || Map && getTag$1(new Map()) != mapTag || Promise$1 && getTag$1(Promise$1.resolve()) != promiseTag || Set && getTag$1(new Set()) != setTag || WeakMap && getTag$1(new WeakMap()) != weakMapTag) {\n getTag$1 = function(value) {\n var result = baseGetTag$3(value), Ctor = result == objectTag$2 ? value.constructor : void 0, ctorString = Ctor ? toSource(Ctor) : \"\";\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString:\n return dataViewTag;\n case mapCtorString:\n return mapTag;\n case promiseCtorString:\n return promiseTag;\n case setCtorString:\n return setTag;\n case weakMapCtorString:\n return weakMapTag;\n }\n }\n return result;\n };\n}\nvar _getTag = getTag$1;\nvar Stack$2 = _Stack, equalArrays = _equalArrays, equalByTag = _equalByTag, equalObjects = _equalObjects, getTag = _getTag, isArray$4 = isArray_1, isBuffer$1 = isBufferExports, isTypedArray$1 = isTypedArray_1;\nvar COMPARE_PARTIAL_FLAG$2 = 1;\nvar argsTag = \"[object Arguments]\", arrayTag = \"[object Array]\", objectTag$1 = \"[object Object]\";\nvar objectProto$4 = Object.prototype;\nvar hasOwnProperty$4 = objectProto$4.hasOwnProperty;\nfunction baseIsEqualDeep$1(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray$4(object), othIsArr = isArray$4(other), objTag = objIsArr ? arrayTag : getTag(object), othTag = othIsArr ? arrayTag : getTag(other);\n objTag = objTag == argsTag ? objectTag$1 : objTag;\n othTag = othTag == argsTag ? objectTag$1 : othTag;\n var objIsObj = objTag == objectTag$1, othIsObj = othTag == objectTag$1, isSameTag = objTag == othTag;\n if (isSameTag && isBuffer$1(object)) {\n if (!isBuffer$1(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack$2());\n return objIsArr || isTypedArray$1(object) ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG$2)) {\n var objIsWrapped = objIsObj && hasOwnProperty$4.call(object, \"__wrapped__\"), othIsWrapped = othIsObj && hasOwnProperty$4.call(other, \"__wrapped__\");\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object, othUnwrapped = othIsWrapped ? other.value() : other;\n stack || (stack = new Stack$2());\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack$2());\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\nvar _baseIsEqualDeep = baseIsEqualDeep$1;\nvar baseIsEqualDeep = _baseIsEqualDeep, isObjectLike$4 = isObjectLike_1;\nfunction baseIsEqual$2(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || !isObjectLike$4(value) && !isObjectLike$4(other)) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual$2, stack);\n}\nvar _baseIsEqual = baseIsEqual$2;\nvar Stack$1 = _Stack, baseIsEqual$1 = _baseIsEqual;\nvar COMPARE_PARTIAL_FLAG$1 = 1, COMPARE_UNORDERED_FLAG$1 = 2;\nfunction baseIsMatch$1(object, source, matchData, customizer) {\n var index2 = matchData.length, length = index2, noCustomizer = !customizer;\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index2--) {\n var data2 = matchData[index2];\n if (noCustomizer && data2[2] ? data2[1] !== object[data2[0]] : !(data2[0] in object)) {\n return false;\n }\n }\n while (++index2 < length) {\n data2 = matchData[index2];\n var key = data2[0], objValue = object[key], srcValue = data2[1];\n if (noCustomizer && data2[2]) {\n if (objValue === void 0 && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack$1();\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === void 0 ? baseIsEqual$1(srcValue, objValue, COMPARE_PARTIAL_FLAG$1 | COMPARE_UNORDERED_FLAG$1, customizer, stack) : result)) {\n return false;\n }\n }\n }\n return true;\n}\nvar _baseIsMatch = baseIsMatch$1;\nvar isObject$7 = isObject_1;\nfunction isStrictComparable$2(value) {\n return value === value && !isObject$7(value);\n}\nvar _isStrictComparable = isStrictComparable$2;\nvar isStrictComparable$1 = _isStrictComparable, keys$1 = keys_1;\nfunction getMatchData$1(object) {\n var result = keys$1(object), length = result.length;\n while (length--) {\n var key = result[length], value = object[key];\n result[length] = [key, value, isStrictComparable$1(value)];\n }\n return result;\n}\nvar _getMatchData = getMatchData$1;\nfunction matchesStrictComparable$2(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue && (srcValue !== void 0 || key in Object(object));\n };\n}\nvar _matchesStrictComparable = matchesStrictComparable$2;\nvar baseIsMatch = _baseIsMatch, getMatchData = _getMatchData, matchesStrictComparable$1 = _matchesStrictComparable;\nfunction baseMatches$1(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable$1(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\nvar _baseMatches = baseMatches$1;\nvar castPath = _castPath, toKey$2 = _toKey;\nfunction baseGet$2(object, path) {\n path = castPath(path, object);\n var index2 = 0, length = path.length;\n while (object != null && index2 < length) {\n object = object[toKey$2(path[index2++])];\n }\n return index2 && index2 == length ? object : void 0;\n}\nvar _baseGet = baseGet$2;\nvar baseGet$1 = _baseGet;\nfunction get$1(object, path, defaultValue) {\n var result = object == null ? void 0 : baseGet$1(object, path);\n return result === void 0 ? defaultValue : result;\n}\nvar get_1 = get$1;\nfunction baseHasIn$1(object, key) {\n return object != null && key in Object(object);\n}\nvar _baseHasIn = baseHasIn$1;\nvar baseHasIn = _baseHasIn, hasPath = _hasPath;\nfunction hasIn$1(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\nvar hasIn_1 = hasIn$1;\nvar baseIsEqual = _baseIsEqual, get = get_1, hasIn = hasIn_1, isKey$1 = _isKey, isStrictComparable = _isStrictComparable, matchesStrictComparable = _matchesStrictComparable, toKey$1 = _toKey;\nvar COMPARE_PARTIAL_FLAG = 1, COMPARE_UNORDERED_FLAG = 2;\nfunction baseMatchesProperty$1(path, srcValue) {\n if (isKey$1(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey$1(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return objValue === void 0 && objValue === srcValue ? hasIn(object, path) : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\nvar _baseMatchesProperty = baseMatchesProperty$1;\nfunction identity$3(value) {\n return value;\n}\nvar identity_1 = identity$3;\nfunction baseProperty$1(key) {\n return function(object) {\n return object == null ? void 0 : object[key];\n };\n}\nvar _baseProperty = baseProperty$1;\nvar baseGet = _baseGet;\nfunction basePropertyDeep$1(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\nvar _basePropertyDeep = basePropertyDeep$1;\nvar baseProperty = _baseProperty, basePropertyDeep = _basePropertyDeep, isKey = _isKey, toKey = _toKey;\nfunction property$1(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\nvar property_1 = property$1;\nvar baseMatches = _baseMatches, baseMatchesProperty = _baseMatchesProperty, identity$2 = identity_1, isArray$3 = isArray_1, property = property_1;\nfunction baseIteratee$2(value) {\n if (typeof value == \"function\") {\n return value;\n }\n if (value == null) {\n return identity$2;\n }\n if (typeof value == \"object\") {\n return isArray$3(value) ? baseMatchesProperty(value[0], value[1]) : baseMatches(value);\n }\n return property(value);\n}\nvar _baseIteratee = baseIteratee$2;\nfunction createBaseFor$1(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index2 = -1, iterable = Object(object), props = keysFunc(object), length = props.length;\n while (length--) {\n var key = props[fromRight ? length : ++index2];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\nvar _createBaseFor = createBaseFor$1;\nvar createBaseFor = _createBaseFor;\nvar baseFor$2 = createBaseFor();\nvar _baseFor = baseFor$2;\nvar baseFor$1 = _baseFor, keys = keys_1;\nfunction baseForOwn$2(object, iteratee) {\n return object && baseFor$1(object, iteratee, keys);\n}\nvar _baseForOwn = baseForOwn$2;\nvar isArrayLike$3 = isArrayLike_1;\nfunction createBaseEach$1(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike$3(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length, index2 = fromRight ? length : -1, iterable = Object(collection);\n while (fromRight ? index2-- : ++index2 < length) {\n if (iteratee(iterable[index2], index2, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\nvar _createBaseEach = createBaseEach$1;\nvar baseForOwn$1 = _baseForOwn, createBaseEach = _createBaseEach;\nvar baseEach$1 = createBaseEach(baseForOwn$1);\nvar _baseEach = baseEach$1;\nvar baseEach = _baseEach;\nfunction baseSome$1(collection, predicate) {\n var result;\n baseEach(collection, function(value, index2, collection2) {\n result = predicate(value, index2, collection2);\n return !result;\n });\n return !!result;\n}\nvar _baseSome = baseSome$1;\nvar eq$3 = eq_1, isArrayLike$2 = isArrayLike_1, isIndex = _isIndex, isObject$6 = isObject_1;\nfunction isIterateeCall$3(value, index2, object) {\n if (!isObject$6(object)) {\n return false;\n }\n var type = typeof index2;\n if (type == \"number\" ? isArrayLike$2(object) && isIndex(index2, object.length) : type == \"string\" && index2 in object) {\n return eq$3(object[index2], value);\n }\n return false;\n}\nvar _isIterateeCall = isIterateeCall$3;\nvar arraySome = _arraySome, baseIteratee$1 = _baseIteratee, baseSome = _baseSome, isArray$2 = isArray_1, isIterateeCall$2 = _isIterateeCall;\nfunction some(collection, predicate, guard) {\n var func = isArray$2(collection) ? arraySome : baseSome;\n if (guard && isIterateeCall$2(collection, predicate, guard)) {\n predicate = void 0;\n }\n return func(collection, baseIteratee$1(predicate));\n}\nvar some_1 = some;\nvar baseGetTag$2 = _baseGetTag, isObjectLike$3 = isObjectLike_1;\nvar boolTag = \"[object Boolean]\";\nfunction isBoolean(value) {\n return value === true || value === false || isObjectLike$3(value) && baseGetTag$2(value) == boolTag;\n}\nvar isBoolean_1 = isBoolean;\nvar baseGetTag$1 = _baseGetTag, isObjectLike$2 = isObjectLike_1;\nvar numberTag = \"[object Number]\";\nfunction isNumber(value) {\n return typeof value == \"number\" || isObjectLike$2(value) && baseGetTag$1(value) == numberTag;\n}\nvar isNumber_1 = isNumber;\nvar getNative = _getNative;\nvar defineProperty$2 = function() {\n try {\n var func = getNative(Object, \"defineProperty\");\n func({}, \"\", {});\n return func;\n } catch (e) {\n }\n}();\nvar _defineProperty = defineProperty$2;\nvar defineProperty$1 = _defineProperty;\nfunction baseAssignValue$4(object, key, value) {\n if (key == \"__proto__\" && defineProperty$1) {\n defineProperty$1(object, key, {\n \"configurable\": true,\n \"enumerable\": true,\n \"value\": value,\n \"writable\": true\n });\n } else {\n object[key] = value;\n }\n}\nvar _baseAssignValue = baseAssignValue$4;\nvar baseAssignValue$3 = _baseAssignValue, eq$2 = eq_1;\nvar objectProto$3 = Object.prototype;\nvar hasOwnProperty$3 = objectProto$3.hasOwnProperty;\nfunction assignValue$1(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty$3.call(object, key) && eq$2(objValue, value)) || value === void 0 && !(key in object)) {\n baseAssignValue$3(object, key, value);\n }\n}\nvar _assignValue = assignValue$1;\nvar baseAssignValue$2 = _baseAssignValue, baseForOwn = _baseForOwn, baseIteratee = _baseIteratee;\nfunction mapValues(object, iteratee) {\n var result = {};\n iteratee = baseIteratee(iteratee);\n baseForOwn(object, function(value, key, object2) {\n baseAssignValue$2(result, key, iteratee(value, key, object2));\n });\n return result;\n}\nvar mapValues_1 = mapValues;\nfunction apply$2(func, thisArg, args) {\n switch (args.length) {\n case 0:\n return func.call(thisArg);\n case 1:\n return func.call(thisArg, args[0]);\n case 2:\n return func.call(thisArg, args[0], args[1]);\n case 3:\n return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\nvar _apply = apply$2;\nvar apply$1 = _apply;\nvar nativeMax = Math.max;\nfunction overRest$1(func, start, transform) {\n start = nativeMax(start === void 0 ? func.length - 1 : start, 0);\n return function() {\n var args = arguments, index2 = -1, length = nativeMax(args.length - start, 0), array = Array(length);\n while (++index2 < length) {\n array[index2] = args[start + index2];\n }\n index2 = -1;\n var otherArgs = Array(start + 1);\n while (++index2 < start) {\n otherArgs[index2] = args[index2];\n }\n otherArgs[start] = transform(array);\n return apply$1(func, this, otherArgs);\n };\n}\nvar _overRest = overRest$1;\nfunction constant$1(value) {\n return function() {\n return value;\n };\n}\nvar constant_1 = constant$1;\nvar constant = constant_1, defineProperty = _defineProperty, identity$1 = identity_1;\nvar baseSetToString$1 = !defineProperty ? identity$1 : function(func, string) {\n return defineProperty(func, \"toString\", {\n \"configurable\": true,\n \"enumerable\": false,\n \"value\": constant(string),\n \"writable\": true\n });\n};\nvar _baseSetToString = baseSetToString$1;\nvar HOT_COUNT = 800, HOT_SPAN = 16;\nvar nativeNow = Date.now;\nfunction shortOut$1(func) {\n var count = 0, lastCalled = 0;\n return function() {\n var stamp = nativeNow(), remaining = HOT_SPAN - (stamp - lastCalled);\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(void 0, arguments);\n };\n}\nvar _shortOut = shortOut$1;\nvar baseSetToString = _baseSetToString, shortOut = _shortOut;\nvar setToString$1 = shortOut(baseSetToString);\nvar _setToString = setToString$1;\nvar identity = identity_1, overRest = _overRest, setToString = _setToString;\nfunction baseRest$3(func, start) {\n return setToString(overRest(func, start, identity), func + \"\");\n}\nvar _baseRest = baseRest$3;\nfunction nativeKeysIn$1(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\nvar _nativeKeysIn = nativeKeysIn$1;\nvar isObject$5 = isObject_1, isPrototype$1 = _isPrototype, nativeKeysIn = _nativeKeysIn;\nvar objectProto$2 = Object.prototype;\nvar hasOwnProperty$2 = objectProto$2.hasOwnProperty;\nfunction baseKeysIn$1(object) {\n if (!isObject$5(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype$1(object), result = [];\n for (var key in object) {\n if (!(key == \"constructor\" && (isProto || !hasOwnProperty$2.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\nvar _baseKeysIn = baseKeysIn$1;\nvar arrayLikeKeys = _arrayLikeKeys, baseKeysIn = _baseKeysIn, isArrayLike$1 = isArrayLike_1;\nfunction keysIn$3(object) {\n return isArrayLike$1(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\nvar keysIn_1 = keysIn$3;\nvar baseRest$2 = _baseRest, eq$1 = eq_1, isIterateeCall$1 = _isIterateeCall, keysIn$2 = keysIn_1;\nvar objectProto$1 = Object.prototype;\nvar hasOwnProperty$1 = objectProto$1.hasOwnProperty;\nvar defaults = baseRest$2(function(object, sources) {\n object = Object(object);\n var index2 = -1;\n var length = sources.length;\n var guard = length > 2 ? sources[2] : void 0;\n if (guard && isIterateeCall$1(sources[0], sources[1], guard)) {\n length = 1;\n }\n while (++index2 < length) {\n var source = sources[index2];\n var props = keysIn$2(source);\n var propsIndex = -1;\n var propsLength = props.length;\n while (++propsIndex < propsLength) {\n var key = props[propsIndex];\n var value = object[key];\n if (value === void 0 || eq$1(value, objectProto$1[key]) && !hasOwnProperty$1.call(object, key)) {\n object[key] = source[key];\n }\n }\n }\n return object;\n});\nvar defaults_1 = defaults;\nvar baseAssignValue$1 = _baseAssignValue, eq = eq_1;\nfunction assignMergeValue$2(object, key, value) {\n if (value !== void 0 && !eq(object[key], value) || value === void 0 && !(key in object)) {\n baseAssignValue$1(object, key, value);\n }\n}\nvar _assignMergeValue = assignMergeValue$2;\nvar _cloneBufferExports = {};\nvar _cloneBuffer = {\n get exports() {\n return _cloneBufferExports;\n },\n set exports(v) {\n _cloneBufferExports = v;\n }\n};\n(function(module, exports) {\n var root2 = _root;\n var freeExports = exports && !exports.nodeType && exports;\n var freeModule = freeExports && true && module && !module.nodeType && module;\n var moduleExports = freeModule && freeModule.exports === freeExports;\n var Buffer2 = moduleExports ? root2.Buffer : void 0, allocUnsafe = Buffer2 ? Buffer2.allocUnsafe : void 0;\n function cloneBuffer2(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length, result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n buffer.copy(result);\n return result;\n }\n module.exports = cloneBuffer2;\n})(_cloneBuffer, _cloneBufferExports);\nvar Uint8Array2 = _Uint8Array;\nfunction cloneArrayBuffer$1(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array2(result).set(new Uint8Array2(arrayBuffer));\n return result;\n}\nvar _cloneArrayBuffer = cloneArrayBuffer$1;\nvar cloneArrayBuffer = _cloneArrayBuffer;\nfunction cloneTypedArray$1(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\nvar _cloneTypedArray = cloneTypedArray$1;\nfunction copyArray$1(source, array) {\n var index2 = -1, length = source.length;\n array || (array = Array(length));\n while (++index2 < length) {\n array[index2] = source[index2];\n }\n return array;\n}\nvar _copyArray = copyArray$1;\nvar isObject$4 = isObject_1;\nvar objectCreate = Object.create;\nvar baseCreate$1 = function() {\n function object() {\n }\n return function(proto) {\n if (!isObject$4(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object();\n object.prototype = void 0;\n return result;\n };\n}();\nvar _baseCreate = baseCreate$1;\nvar overArg = _overArg;\nvar getPrototype$2 = overArg(Object.getPrototypeOf, Object);\nvar _getPrototype = getPrototype$2;\nvar baseCreate = _baseCreate, getPrototype$1 = _getPrototype, isPrototype = _isPrototype;\nfunction initCloneObject$1(object) {\n return typeof object.constructor == \"function\" && !isPrototype(object) ? baseCreate(getPrototype$1(object)) : {};\n}\nvar _initCloneObject = initCloneObject$1;\nvar isArrayLike = isArrayLike_1, isObjectLike$1 = isObjectLike_1;\nfunction isArrayLikeObject$1(value) {\n return isObjectLike$1(value) && isArrayLike(value);\n}\nvar isArrayLikeObject_1 = isArrayLikeObject$1;\nvar baseGetTag = _baseGetTag, getPrototype = _getPrototype, isObjectLike = isObjectLike_1;\nvar objectTag = \"[object Object]\";\nvar funcProto = Function.prototype, objectProto = Object.prototype;\nvar funcToString = funcProto.toString;\nvar hasOwnProperty = objectProto.hasOwnProperty;\nvar objectCtorString = funcToString.call(Object);\nfunction isPlainObject$1(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, \"constructor\") && proto.constructor;\n return typeof Ctor == \"function\" && Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString;\n}\nvar isPlainObject_1 = isPlainObject$1;\nfunction safeGet$2(object, key) {\n if (key === \"constructor\" && typeof object[key] === \"function\") {\n return;\n }\n if (key == \"__proto__\") {\n return;\n }\n return object[key];\n}\nvar _safeGet = safeGet$2;\nvar assignValue = _assignValue, baseAssignValue = _baseAssignValue;\nfunction copyObject$1(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n var index2 = -1, length = props.length;\n while (++index2 < length) {\n var key = props[index2];\n var newValue = customizer ? customizer(object[key], source[key], key, object, source) : void 0;\n if (newValue === void 0) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\nvar _copyObject = copyObject$1;\nvar copyObject = _copyObject, keysIn$1 = keysIn_1;\nfunction toPlainObject$1(value) {\n return copyObject(value, keysIn$1(value));\n}\nvar toPlainObject_1 = toPlainObject$1;\nvar assignMergeValue$1 = _assignMergeValue, cloneBuffer = _cloneBufferExports, cloneTypedArray = _cloneTypedArray, copyArray = _copyArray, initCloneObject = _initCloneObject, isArguments = isArguments_1, isArray$1 = isArray_1, isArrayLikeObject = isArrayLikeObject_1, isBuffer = isBufferExports, isFunction = isFunction_1, isObject$3 = isObject_1, isPlainObject = isPlainObject_1, isTypedArray = isTypedArray_1, safeGet$1 = _safeGet, toPlainObject = toPlainObject_1;\nfunction baseMergeDeep$1(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet$1(object, key), srcValue = safeGet$1(source, key), stacked = stack.get(srcValue);\n if (stacked) {\n assignMergeValue$1(object, key, stacked);\n return;\n }\n var newValue = customizer ? customizer(objValue, srcValue, key + \"\", object, source, stack) : void 0;\n var isCommon = newValue === void 0;\n if (isCommon) {\n var isArr = isArray$1(srcValue), isBuff = !isArr && isBuffer(srcValue), isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray$1(objValue)) {\n newValue = objValue;\n } else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n } else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n } else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n } else {\n newValue = [];\n }\n } else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n } else if (!isObject$3(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n } else {\n isCommon = false;\n }\n }\n if (isCommon) {\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack[\"delete\"](srcValue);\n }\n assignMergeValue$1(object, key, newValue);\n}\nvar _baseMergeDeep = baseMergeDeep$1;\nvar Stack = _Stack, assignMergeValue = _assignMergeValue, baseFor = _baseFor, baseMergeDeep = _baseMergeDeep, isObject$2 = isObject_1, keysIn = keysIn_1, safeGet = _safeGet;\nfunction baseMerge$2(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack());\n if (isObject$2(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge$2, customizer, stack);\n } else {\n var newValue = customizer ? customizer(safeGet(object, key), srcValue, key + \"\", object, source, stack) : void 0;\n if (newValue === void 0) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\nvar _baseMerge = baseMerge$2;\nvar baseMerge$1 = _baseMerge, isObject$1 = isObject_1;\nfunction customDefaultsMerge$1(objValue, srcValue, key, object, source, stack) {\n if (isObject$1(objValue) && isObject$1(srcValue)) {\n stack.set(srcValue, objValue);\n baseMerge$1(objValue, srcValue, void 0, customDefaultsMerge$1, stack);\n stack[\"delete\"](srcValue);\n }\n return objValue;\n}\nvar _customDefaultsMerge = customDefaultsMerge$1;\nvar baseRest$1 = _baseRest, isIterateeCall = _isIterateeCall;\nfunction createAssigner$1(assigner) {\n return baseRest$1(function(object, sources) {\n var index2 = -1, length = sources.length, customizer = length > 1 ? sources[length - 1] : void 0, guard = length > 2 ? sources[2] : void 0;\n customizer = assigner.length > 3 && typeof customizer == \"function\" ? (length--, customizer) : void 0;\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? void 0 : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index2 < length) {\n var source = sources[index2];\n if (source) {\n assigner(object, source, index2, customizer);\n }\n }\n return object;\n });\n}\nvar _createAssigner = createAssigner$1;\nvar baseMerge = _baseMerge, createAssigner = _createAssigner;\nvar mergeWith$1 = createAssigner(function(object, source, srcIndex, customizer) {\n baseMerge(object, source, srcIndex, customizer);\n});\nvar mergeWith_1 = mergeWith$1;\nvar apply = _apply, baseRest = _baseRest, customDefaultsMerge = _customDefaultsMerge, mergeWith = mergeWith_1;\nvar defaultsDeep = baseRest(function(args) {\n args.push(void 0, customDefaultsMerge);\n return apply(mergeWith, void 0, args);\n});\nvar defaultsDeep_1 = defaultsDeep;\nfunction head(array) {\n return array && array.length ? array[0] : void 0;\n}\nvar head_1 = head;\nfunction last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : void 0;\n}\nvar last_1 = last;\nconst getType = (value) => Object.prototype.toString.call(value).slice(8, -1);\nconst isDate = (value) => isDate_1(value) && !isNaN(value.getTime());\nconst isObject = (value) => getType(value) === \"Object\";\nconst has = has_1;\nconst hasAny = (obj, props) => some_1(props, (p) => has_1(obj, p));\nconst pad = (val, len, char = \"0\") => {\n val = val !== null && val !== void 0 ? String(val) : \"\";\n len = len || 2;\n while (val.length < len) {\n val = `${char}${val}`;\n }\n return val;\n};\nconst isArray = (val) => Array.isArray(val);\nconst arrayHasItems = (array) => isArray(array) && array.length > 0;\nconst resolveEl = (target) => {\n if (target == null)\n return null;\n if (document && isString_1(target))\n return document.querySelector(target);\n return target.$el ?? target;\n};\nconst off = (element, event, handler, opts = void 0) => {\n element.removeEventListener(event, handler, opts);\n};\nconst on = (element, event, handler, opts = void 0) => {\n element.addEventListener(event, handler, opts);\n return () => off(element, event, handler, opts);\n};\nconst elementContains = (element, child) => !!element && !!child && (element === child || element.contains(child));\nconst onSpaceOrEnter = (event, handler) => {\n if (event.key === \" \" || event.key === \"Enter\") {\n handler(event);\n event.preventDefault();\n }\n};\nconst omit = (obj, ...keys2) => {\n const ret = {};\n let key;\n for (key in obj) {\n if (!keys2.includes(key)) {\n ret[key] = obj[key];\n }\n }\n return ret;\n};\nconst pick = (obj, keys2) => {\n const ret = {};\n keys2.forEach((key) => {\n if (key in obj)\n ret[key] = obj[key];\n });\n return ret;\n};\nfunction clamp(num, min, max) {\n return Math.min(Math.max(num, min), max);\n}\nvar toIntegerExports = {};\nvar toInteger$2 = {\n get exports() {\n return toIntegerExports;\n },\n set exports(v) {\n toIntegerExports = v;\n }\n};\n(function(module, exports) {\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.default = toInteger2;\n function toInteger2(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n var number = Number(dirtyNumber);\n if (isNaN(number)) {\n return number;\n }\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n }\n module.exports = exports.default;\n})(toInteger$2, toIntegerExports);\nconst toInteger$1 = /* @__PURE__ */ getDefaultExportFromCjs(toIntegerExports);\nvar getTimezoneOffsetInMillisecondsExports = {};\nvar getTimezoneOffsetInMilliseconds$2 = {\n get exports() {\n return getTimezoneOffsetInMillisecondsExports;\n },\n set exports(v) {\n getTimezoneOffsetInMillisecondsExports = v;\n }\n};\n(function(module, exports) {\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.default = getTimezoneOffsetInMilliseconds2;\n function getTimezoneOffsetInMilliseconds2(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n }\n module.exports = exports.default;\n})(getTimezoneOffsetInMilliseconds$2, getTimezoneOffsetInMillisecondsExports);\nconst getTimezoneOffsetInMilliseconds$1 = /* @__PURE__ */ getDefaultExportFromCjs(getTimezoneOffsetInMillisecondsExports);\nfunction tzTokenizeDate(date, timeZone) {\n var dtf = getDateTimeFormat(timeZone);\n return dtf.formatToParts ? partsOffset(dtf, date) : hackyOffset(dtf, date);\n}\nvar typeToPos = {\n year: 0,\n month: 1,\n day: 2,\n hour: 3,\n minute: 4,\n second: 5\n};\nfunction partsOffset(dtf, date) {\n try {\n var formatted = dtf.formatToParts(date);\n var filled = [];\n for (var i = 0; i < formatted.length; i++) {\n var pos = typeToPos[formatted[i].type];\n if (pos >= 0) {\n filled[pos] = parseInt(formatted[i].value, 10);\n }\n }\n return filled;\n } catch (error) {\n if (error instanceof RangeError) {\n return [NaN];\n }\n throw error;\n }\n}\nfunction hackyOffset(dtf, date) {\n var formatted = dtf.format(date).replace(/\\u200E/g, \"\");\n var parsed = /(\\d+)\\/(\\d+)\\/(\\d+),? (\\d+):(\\d+):(\\d+)/.exec(formatted);\n return [parsed[3], parsed[1], parsed[2], parsed[4], parsed[5], parsed[6]];\n}\nvar dtfCache = {};\nfunction getDateTimeFormat(timeZone) {\n if (!dtfCache[timeZone]) {\n var testDateFormatted = new Intl.DateTimeFormat(\"en-US\", {\n hour12: false,\n timeZone: \"America/New_York\",\n year: \"numeric\",\n month: \"numeric\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\"\n }).format(/* @__PURE__ */ new Date(\"2014-06-25T04:00:00.123Z\"));\n var hourCycleSupported = testDateFormatted === \"06/25/2014, 00:00:00\" || testDateFormatted === \"‎06‎/‎25‎/‎2014‎ ‎00‎:‎00‎:‎00\";\n dtfCache[timeZone] = hourCycleSupported ? new Intl.DateTimeFormat(\"en-US\", {\n hour12: false,\n timeZone,\n year: \"numeric\",\n month: \"numeric\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\"\n }) : new Intl.DateTimeFormat(\"en-US\", {\n hourCycle: \"h23\",\n timeZone,\n year: \"numeric\",\n month: \"numeric\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\"\n });\n }\n return dtfCache[timeZone];\n}\nfunction newDateUTC(fullYear, month, day, hour, minute, second, millisecond) {\n var utcDate = /* @__PURE__ */ new Date(0);\n utcDate.setUTCFullYear(fullYear, month, day);\n utcDate.setUTCHours(hour, minute, second, millisecond);\n return utcDate;\n}\nvar MILLISECONDS_IN_HOUR$1 = 36e5;\nvar MILLISECONDS_IN_MINUTE$1 = 6e4;\nvar patterns$1 = {\n timezone: /([Z+-].*)$/,\n timezoneZ: /^(Z)$/,\n timezoneHH: /^([+-]\\d{2})$/,\n timezoneHHMM: /^([+-]\\d{2}):?(\\d{2})$/\n};\nfunction tzParseTimezone(timezoneString, date, isUtcDate) {\n var token2;\n var absoluteOffset;\n if (!timezoneString) {\n return 0;\n }\n token2 = patterns$1.timezoneZ.exec(timezoneString);\n if (token2) {\n return 0;\n }\n var hours2;\n token2 = patterns$1.timezoneHH.exec(timezoneString);\n if (token2) {\n hours2 = parseInt(token2[1], 10);\n if (!validateTimezone(hours2)) {\n return NaN;\n }\n return -(hours2 * MILLISECONDS_IN_HOUR$1);\n }\n token2 = patterns$1.timezoneHHMM.exec(timezoneString);\n if (token2) {\n hours2 = parseInt(token2[1], 10);\n var minutes = parseInt(token2[2], 10);\n if (!validateTimezone(hours2, minutes)) {\n return NaN;\n }\n absoluteOffset = Math.abs(hours2) * MILLISECONDS_IN_HOUR$1 + minutes * MILLISECONDS_IN_MINUTE$1;\n return hours2 > 0 ? -absoluteOffset : absoluteOffset;\n }\n if (isValidTimezoneIANAString(timezoneString)) {\n date = new Date(date || Date.now());\n var utcDate = isUtcDate ? date : toUtcDate(date);\n var offset = calcOffset(utcDate, timezoneString);\n var fixedOffset = isUtcDate ? offset : fixOffset(date, offset, timezoneString);\n return -fixedOffset;\n }\n return NaN;\n}\nfunction toUtcDate(date) {\n return newDateUTC(\n date.getFullYear(),\n date.getMonth(),\n date.getDate(),\n date.getHours(),\n date.getMinutes(),\n date.getSeconds(),\n date.getMilliseconds()\n );\n}\nfunction calcOffset(date, timezoneString) {\n var tokens = tzTokenizeDate(date, timezoneString);\n var asUTC = newDateUTC(\n tokens[0],\n tokens[1] - 1,\n tokens[2],\n tokens[3] % 24,\n tokens[4],\n tokens[5],\n 0\n ).getTime();\n var asTS = date.getTime();\n var over = asTS % 1e3;\n asTS -= over >= 0 ? over : 1e3 + over;\n return asUTC - asTS;\n}\nfunction fixOffset(date, offset, timezoneString) {\n var localTS = date.getTime();\n var utcGuess = localTS - offset;\n var o2 = calcOffset(new Date(utcGuess), timezoneString);\n if (offset === o2) {\n return offset;\n }\n utcGuess -= o2 - offset;\n var o3 = calcOffset(new Date(utcGuess), timezoneString);\n if (o2 === o3) {\n return o2;\n }\n return Math.max(o2, o3);\n}\nfunction validateTimezone(hours2, minutes) {\n return -23 <= hours2 && hours2 <= 23 && (minutes == null || 0 <= minutes && minutes <= 59);\n}\nvar validIANATimezoneCache = {};\nfunction isValidTimezoneIANAString(timeZoneString) {\n if (validIANATimezoneCache[timeZoneString])\n return true;\n try {\n new Intl.DateTimeFormat(void 0, { timeZone: timeZoneString });\n validIANATimezoneCache[timeZoneString] = true;\n return true;\n } catch (error) {\n return false;\n }\n}\nvar tzPattern = /(Z|[+-]\\d{2}(?::?\\d{2})?| UTC| [a-zA-Z]+\\/[a-zA-Z_]+(?:\\/[a-zA-Z_]+)?)$/;\nconst tzPattern$1 = tzPattern;\nvar MILLISECONDS_IN_HOUR = 36e5;\nvar MILLISECONDS_IN_MINUTE = 6e4;\nvar DEFAULT_ADDITIONAL_DIGITS = 2;\nvar patterns = {\n dateTimePattern: /^([0-9W+-]+)(T| )(.*)/,\n datePattern: /^([0-9W+-]+)(.*)/,\n plainTime: /:/,\n // year tokens\n YY: /^(\\d{2})$/,\n YYY: [\n /^([+-]\\d{2})$/,\n // 0 additional digits\n /^([+-]\\d{3})$/,\n // 1 additional digit\n /^([+-]\\d{4})$/\n // 2 additional digits\n ],\n YYYY: /^(\\d{4})/,\n YYYYY: [\n /^([+-]\\d{4})/,\n // 0 additional digits\n /^([+-]\\d{5})/,\n // 1 additional digit\n /^([+-]\\d{6})/\n // 2 additional digits\n ],\n // date tokens\n MM: /^-(\\d{2})$/,\n DDD: /^-?(\\d{3})$/,\n MMDD: /^-?(\\d{2})-?(\\d{2})$/,\n Www: /^-?W(\\d{2})$/,\n WwwD: /^-?W(\\d{2})-?(\\d{1})$/,\n HH: /^(\\d{2}([.,]\\d*)?)$/,\n HHMM: /^(\\d{2}):?(\\d{2}([.,]\\d*)?)$/,\n HHMMSS: /^(\\d{2}):?(\\d{2}):?(\\d{2}([.,]\\d*)?)$/,\n // time zone tokens (to identify the presence of a tz)\n timeZone: tzPattern$1\n};\nfunction toDate$1(argument, dirtyOptions) {\n if (arguments.length < 1) {\n throw new TypeError(\"1 argument required, but only \" + arguments.length + \" present\");\n }\n if (argument === null) {\n return /* @__PURE__ */ new Date(NaN);\n }\n var options = dirtyOptions || {};\n var additionalDigits = options.additionalDigits == null ? DEFAULT_ADDITIONAL_DIGITS : toInteger$1(options.additionalDigits);\n if (additionalDigits !== 2 && additionalDigits !== 1 && additionalDigits !== 0) {\n throw new RangeError(\"additionalDigits must be 0, 1 or 2\");\n }\n if (argument instanceof Date || typeof argument === \"object\" && Object.prototype.toString.call(argument) === \"[object Date]\") {\n return new Date(argument.getTime());\n } else if (typeof argument === \"number\" || Object.prototype.toString.call(argument) === \"[object Number]\") {\n return new Date(argument);\n } else if (!(typeof argument === \"string\" || Object.prototype.toString.call(argument) === \"[object String]\")) {\n return /* @__PURE__ */ new Date(NaN);\n }\n var dateStrings = splitDateString(argument);\n var parseYearResult = parseYear(dateStrings.date, additionalDigits);\n var year = parseYearResult.year;\n var restDateString = parseYearResult.restDateString;\n var date = parseDate$1(restDateString, year);\n if (isNaN(date)) {\n return /* @__PURE__ */ new Date(NaN);\n }\n if (date) {\n var timestamp = date.getTime();\n var time = 0;\n var offset;\n if (dateStrings.time) {\n time = parseTime(dateStrings.time);\n if (isNaN(time)) {\n return /* @__PURE__ */ new Date(NaN);\n }\n }\n if (dateStrings.timeZone || options.timeZone) {\n offset = tzParseTimezone(dateStrings.timeZone || options.timeZone, new Date(timestamp + time));\n if (isNaN(offset)) {\n return /* @__PURE__ */ new Date(NaN);\n }\n } else {\n offset = getTimezoneOffsetInMilliseconds$1(new Date(timestamp + time));\n offset = getTimezoneOffsetInMilliseconds$1(new Date(timestamp + time + offset));\n }\n return new Date(timestamp + time + offset);\n } else {\n return /* @__PURE__ */ new Date(NaN);\n }\n}\nfunction splitDateString(dateString) {\n var dateStrings = {};\n var parts = patterns.dateTimePattern.exec(dateString);\n var timeString;\n if (!parts) {\n parts = patterns.datePattern.exec(dateString);\n if (parts) {\n dateStrings.date = parts[1];\n timeString = parts[2];\n } else {\n dateStrings.date = null;\n timeString = dateString;\n }\n } else {\n dateStrings.date = parts[1];\n timeString = parts[3];\n }\n if (timeString) {\n var token2 = patterns.timeZone.exec(timeString);\n if (token2) {\n dateStrings.time = timeString.replace(token2[1], \"\");\n dateStrings.timeZone = token2[1].trim();\n } else {\n dateStrings.time = timeString;\n }\n }\n return dateStrings;\n}\nfunction parseYear(dateString, additionalDigits) {\n var patternYYY = patterns.YYY[additionalDigits];\n var patternYYYYY = patterns.YYYYY[additionalDigits];\n var token2;\n token2 = patterns.YYYY.exec(dateString) || patternYYYYY.exec(dateString);\n if (token2) {\n var yearString = token2[1];\n return {\n year: parseInt(yearString, 10),\n restDateString: dateString.slice(yearString.length)\n };\n }\n token2 = patterns.YY.exec(dateString) || patternYYY.exec(dateString);\n if (token2) {\n var centuryString = token2[1];\n return {\n year: parseInt(centuryString, 10) * 100,\n restDateString: dateString.slice(centuryString.length)\n };\n }\n return {\n year: null\n };\n}\nfunction parseDate$1(dateString, year) {\n if (year === null) {\n return null;\n }\n var token2;\n var date;\n var month;\n var week;\n if (dateString.length === 0) {\n date = /* @__PURE__ */ new Date(0);\n date.setUTCFullYear(year);\n return date;\n }\n token2 = patterns.MM.exec(dateString);\n if (token2) {\n date = /* @__PURE__ */ new Date(0);\n month = parseInt(token2[1], 10) - 1;\n if (!validateDate(year, month)) {\n return /* @__PURE__ */ new Date(NaN);\n }\n date.setUTCFullYear(year, month);\n return date;\n }\n token2 = patterns.DDD.exec(dateString);\n if (token2) {\n date = /* @__PURE__ */ new Date(0);\n var dayOfYear = parseInt(token2[1], 10);\n if (!validateDayOfYearDate(year, dayOfYear)) {\n return /* @__PURE__ */ new Date(NaN);\n }\n date.setUTCFullYear(year, 0, dayOfYear);\n return date;\n }\n token2 = patterns.MMDD.exec(dateString);\n if (token2) {\n date = /* @__PURE__ */ new Date(0);\n month = parseInt(token2[1], 10) - 1;\n var day = parseInt(token2[2], 10);\n if (!validateDate(year, month, day)) {\n return /* @__PURE__ */ new Date(NaN);\n }\n date.setUTCFullYear(year, month, day);\n return date;\n }\n token2 = patterns.Www.exec(dateString);\n if (token2) {\n week = parseInt(token2[1], 10) - 1;\n if (!validateWeekDate(year, week)) {\n return /* @__PURE__ */ new Date(NaN);\n }\n return dayOfISOWeekYear(year, week);\n }\n token2 = patterns.WwwD.exec(dateString);\n if (token2) {\n week = parseInt(token2[1], 10) - 1;\n var dayOfWeek = parseInt(token2[2], 10) - 1;\n if (!validateWeekDate(year, week, dayOfWeek)) {\n return /* @__PURE__ */ new Date(NaN);\n }\n return dayOfISOWeekYear(year, week, dayOfWeek);\n }\n return null;\n}\nfunction parseTime(timeString) {\n var token2;\n var hours2;\n var minutes;\n token2 = patterns.HH.exec(timeString);\n if (token2) {\n hours2 = parseFloat(token2[1].replace(\",\", \".\"));\n if (!validateTime(hours2)) {\n return NaN;\n }\n return hours2 % 24 * MILLISECONDS_IN_HOUR;\n }\n token2 = patterns.HHMM.exec(timeString);\n if (token2) {\n hours2 = parseInt(token2[1], 10);\n minutes = parseFloat(token2[2].replace(\",\", \".\"));\n if (!validateTime(hours2, minutes)) {\n return NaN;\n }\n return hours2 % 24 * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE;\n }\n token2 = patterns.HHMMSS.exec(timeString);\n if (token2) {\n hours2 = parseInt(token2[1], 10);\n minutes = parseInt(token2[2], 10);\n var seconds = parseFloat(token2[3].replace(\",\", \".\"));\n if (!validateTime(hours2, minutes, seconds)) {\n return NaN;\n }\n return hours2 % 24 * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE + seconds * 1e3;\n }\n return null;\n}\nfunction dayOfISOWeekYear(isoWeekYear, week, day) {\n week = week || 0;\n day = day || 0;\n var date = /* @__PURE__ */ new Date(0);\n date.setUTCFullYear(isoWeekYear, 0, 4);\n var fourthOfJanuaryDay = date.getUTCDay() || 7;\n var diff = week * 7 + day + 1 - fourthOfJanuaryDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}\nvar DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nvar DAYS_IN_MONTH_LEAP_YEAR = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\n}\nfunction validateDate(year, month, date) {\n if (month < 0 || month > 11) {\n return false;\n }\n if (date != null) {\n if (date < 1) {\n return false;\n }\n var isLeapYear = isLeapYearIndex(year);\n if (isLeapYear && date > DAYS_IN_MONTH_LEAP_YEAR[month]) {\n return false;\n }\n if (!isLeapYear && date > DAYS_IN_MONTH[month]) {\n return false;\n }\n }\n return true;\n}\nfunction validateDayOfYearDate(year, dayOfYear) {\n if (dayOfYear < 1) {\n return false;\n }\n var isLeapYear = isLeapYearIndex(year);\n if (isLeapYear && dayOfYear > 366) {\n return false;\n }\n if (!isLeapYear && dayOfYear > 365) {\n return false;\n }\n return true;\n}\nfunction validateWeekDate(year, week, day) {\n if (week < 0 || week > 52) {\n return false;\n }\n if (day != null && (day < 0 || day > 6)) {\n return false;\n }\n return true;\n}\nfunction validateTime(hours2, minutes, seconds) {\n if (hours2 != null && (hours2 < 0 || hours2 >= 25)) {\n return false;\n }\n if (minutes != null && (minutes < 0 || minutes >= 60)) {\n return false;\n }\n if (seconds != null && (seconds < 0 || seconds >= 60)) {\n return false;\n }\n return true;\n}\nfunction requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + \" argument\" + (required > 1 ? \"s\" : \"\") + \" required, but only \" + args.length + \" present\");\n }\n}\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof2(obj2) {\n return typeof obj2;\n };\n } else {\n _typeof = function _typeof2(obj2) {\n return obj2 && typeof Symbol === \"function\" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? \"symbol\" : typeof obj2;\n };\n }\n return _typeof(obj);\n}\nfunction toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument);\n if (argument instanceof Date || _typeof(argument) === \"object\" && argStr === \"[object Date]\") {\n return new Date(argument.getTime());\n } else if (typeof argument === \"number\" || argStr === \"[object Number]\") {\n return new Date(argument);\n } else {\n if ((typeof argument === \"string\" || argStr === \"[object String]\") && typeof console !== \"undefined\") {\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments\");\n console.warn(new Error().stack);\n }\n return /* @__PURE__ */ new Date(NaN);\n }\n}\nfunction toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n var number = Number(dirtyNumber);\n if (isNaN(number)) {\n return number;\n }\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}\nvar defaultOptions = {};\nfunction getDefaultOptions() {\n return defaultOptions;\n}\nfunction startOfWeek$1(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions2 = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions2.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions2.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError(\"weekStartsOn must be between 0 and 6 inclusively\");\n }\n var date = toDate(dirtyDate);\n var day = date.getDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setDate(date.getDate() - diff);\n date.setHours(0, 0, 0, 0);\n return date;\n}\nfunction getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}\nvar MILLISECONDS_IN_WEEK$2 = 6048e5;\nfunction differenceInCalendarWeeks(dirtyDateLeft, dirtyDateRight, options) {\n requiredArgs(2, arguments);\n var startOfWeekLeft = startOfWeek$1(dirtyDateLeft, options);\n var startOfWeekRight = startOfWeek$1(dirtyDateRight, options);\n var timestampLeft = startOfWeekLeft.getTime() - getTimezoneOffsetInMilliseconds(startOfWeekLeft);\n var timestampRight = startOfWeekRight.getTime() - getTimezoneOffsetInMilliseconds(startOfWeekRight);\n return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_WEEK$2);\n}\nfunction lastDayOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var month = date.getMonth();\n date.setFullYear(date.getFullYear(), month + 1, 0);\n date.setHours(0, 0, 0, 0);\n return date;\n}\nfunction startOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n return date;\n}\nfunction getWeeksInMonth(date, options) {\n requiredArgs(1, arguments);\n return differenceInCalendarWeeks(lastDayOfMonth(date), startOfMonth(date), options) + 1;\n}\nfunction getWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n var defaultOptions2 = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions2.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError(\"firstWeekContainsDate must be between 1 and 7 inclusively\");\n }\n var firstWeekOfNextYear = /* @__PURE__ */ new Date(0);\n firstWeekOfNextYear.setFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setHours(0, 0, 0, 0);\n var startOfNextYear = startOfWeek$1(firstWeekOfNextYear, options);\n var firstWeekOfThisYear = /* @__PURE__ */ new Date(0);\n firstWeekOfThisYear.setFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setHours(0, 0, 0, 0);\n var startOfThisYear = startOfWeek$1(firstWeekOfThisYear, options);\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}\nfunction startOfWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions2 = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions2.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n var year = getWeekYear(dirtyDate, options);\n var firstWeek = /* @__PURE__ */ new Date(0);\n firstWeek.setFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setHours(0, 0, 0, 0);\n var date = startOfWeek$1(firstWeek, options);\n return date;\n}\nvar MILLISECONDS_IN_WEEK$1 = 6048e5;\nfunction getWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfWeek$1(date, options).getTime() - startOfWeekYear(date, options).getTime();\n return Math.round(diff / MILLISECONDS_IN_WEEK$1) + 1;\n}\nfunction startOfISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n return startOfWeek$1(dirtyDate, {\n weekStartsOn: 1\n });\n}\nfunction getISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n var fourthOfJanuaryOfNextYear = /* @__PURE__ */ new Date(0);\n fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0);\n var startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = /* @__PURE__ */ new Date(0);\n fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0);\n var startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear);\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}\nfunction startOfISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getISOWeekYear(dirtyDate);\n var fourthOfJanuary = /* @__PURE__ */ new Date(0);\n fourthOfJanuary.setFullYear(year, 0, 4);\n fourthOfJanuary.setHours(0, 0, 0, 0);\n var date = startOfISOWeek(fourthOfJanuary);\n return date;\n}\nvar MILLISECONDS_IN_WEEK = 6048e5;\nfunction getISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfISOWeek(date).getTime() - startOfISOWeekYear(date).getTime();\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}\nfunction addDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n if (isNaN(amount)) {\n return /* @__PURE__ */ new Date(NaN);\n }\n if (!amount) {\n return date;\n }\n date.setDate(date.getDate() + amount);\n return date;\n}\nfunction addMonths(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n if (isNaN(amount)) {\n return /* @__PURE__ */ new Date(NaN);\n }\n if (!amount) {\n return date;\n }\n var dayOfMonth = date.getDate();\n var endOfDesiredMonth = new Date(date.getTime());\n endOfDesiredMonth.setMonth(date.getMonth() + amount + 1, 0);\n var daysInMonth = endOfDesiredMonth.getDate();\n if (dayOfMonth >= daysInMonth) {\n return endOfDesiredMonth;\n } else {\n date.setFullYear(endOfDesiredMonth.getFullYear(), endOfDesiredMonth.getMonth(), dayOfMonth);\n return date;\n }\n}\nfunction addYears(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMonths(dirtyDate, amount * 12);\n}\nconst viewAddressKeys = {\n daily: [\"year\", \"month\", \"day\"],\n weekly: [\"year\", \"month\", \"week\"],\n monthly: [\"year\", \"month\"]\n};\nfunction getDays({\n monthComps,\n prevMonthComps,\n nextMonthComps\n}, locale) {\n const days = [];\n const {\n firstDayOfWeek,\n firstWeekday,\n isoWeeknumbers,\n weeknumbers,\n numDays,\n numWeeks\n } = monthComps;\n const prevMonthDaysToShow = firstWeekday + (firstWeekday < firstDayOfWeek ? daysInWeek : 0) - firstDayOfWeek;\n let prevMonth = true;\n let thisMonth = false;\n let nextMonth = false;\n let position = 0;\n const formatter = new Intl.DateTimeFormat(locale.id, {\n weekday: \"long\",\n year: \"numeric\",\n month: \"short\",\n day: \"numeric\"\n });\n let day = prevMonthComps.numDays - prevMonthDaysToShow + 1;\n let dayFromEnd = prevMonthComps.numDays - day + 1;\n let weekdayOrdinal = Math.floor((day - 1) / daysInWeek + 1);\n let weekdayOrdinalFromEnd = 1;\n let week = prevMonthComps.numWeeks;\n let weekFromEnd = 1;\n let month = prevMonthComps.month;\n let year = prevMonthComps.year;\n const today = /* @__PURE__ */ new Date();\n const todayDay = today.getDate();\n const todayMonth = today.getMonth() + 1;\n const todayYear = today.getFullYear();\n for (let w = 1; w <= weeksInMonth; w++) {\n for (let i = 1, weekday = firstDayOfWeek; i <= daysInWeek; i++, weekday += weekday === daysInWeek ? 1 - daysInWeek : 1) {\n if (prevMonth && weekday === firstWeekday) {\n day = 1;\n dayFromEnd = monthComps.numDays;\n weekdayOrdinal = Math.floor((day - 1) / daysInWeek + 1);\n weekdayOrdinalFromEnd = Math.floor((numDays - day) / daysInWeek + 1);\n week = 1;\n weekFromEnd = numWeeks;\n month = monthComps.month;\n year = monthComps.year;\n prevMonth = false;\n thisMonth = true;\n }\n const startDate = locale.getDateFromParams(year, month, day, 0, 0, 0, 0);\n const noonDate = locale.getDateFromParams(year, month, day, 12, 0, 0, 0);\n const endDate = locale.getDateFromParams(\n year,\n month,\n day,\n 23,\n 59,\n 59,\n 999\n );\n const date = startDate;\n const id = `${pad(year, 4)}-${pad(month, 2)}-${pad(day, 2)}`;\n const weekdayPosition = i;\n const weekdayPositionFromEnd = daysInWeek - i;\n const weeknumber = weeknumbers[w - 1];\n const isoWeeknumber = isoWeeknumbers[w - 1];\n const isToday = day === todayDay && month === todayMonth && year === todayYear;\n const isFirstDay = thisMonth && day === 1;\n const isLastDay = thisMonth && day === numDays;\n const onTop = w === 1;\n const onBottom = w === numWeeks;\n const onLeft = i === 1;\n const onRight = i === daysInWeek;\n const dayIndex = getDayIndex(year, month, day);\n days.push({\n locale,\n id,\n position: ++position,\n label: day.toString(),\n ariaLabel: formatter.format(new Date(year, month - 1, day)),\n day,\n dayFromEnd,\n weekday,\n weekdayPosition,\n weekdayPositionFromEnd,\n weekdayOrdinal,\n weekdayOrdinalFromEnd,\n week,\n weekFromEnd,\n weekPosition: w,\n weeknumber,\n isoWeeknumber,\n month,\n year,\n date,\n startDate,\n endDate,\n noonDate,\n dayIndex,\n isToday,\n isFirstDay,\n isLastDay,\n isDisabled: !thisMonth,\n isFocusable: !thisMonth,\n isFocused: false,\n inMonth: thisMonth,\n inPrevMonth: prevMonth,\n inNextMonth: nextMonth,\n onTop,\n onBottom,\n onLeft,\n onRight,\n classes: [\n `id-${id}`,\n `day-${day}`,\n `day-from-end-${dayFromEnd}`,\n `weekday-${weekday}`,\n `weekday-position-${weekdayPosition}`,\n `weekday-ordinal-${weekdayOrdinal}`,\n `weekday-ordinal-from-end-${weekdayOrdinalFromEnd}`,\n `week-${week}`,\n `week-from-end-${weekFromEnd}`,\n {\n \"is-today\": isToday,\n \"is-first-day\": isFirstDay,\n \"is-last-day\": isLastDay,\n \"in-month\": thisMonth,\n \"in-prev-month\": prevMonth,\n \"in-next-month\": nextMonth,\n \"on-top\": onTop,\n \"on-bottom\": onBottom,\n \"on-left\": onLeft,\n \"on-right\": onRight\n }\n ]\n });\n if (thisMonth && isLastDay) {\n thisMonth = false;\n nextMonth = true;\n day = 1;\n dayFromEnd = numDays;\n weekdayOrdinal = 1;\n weekdayOrdinalFromEnd = Math.floor((numDays - day) / daysInWeek + 1);\n week = 1;\n weekFromEnd = nextMonthComps.numWeeks;\n month = nextMonthComps.month;\n year = nextMonthComps.year;\n } else {\n day++;\n dayFromEnd--;\n weekdayOrdinal = Math.floor((day - 1) / daysInWeek + 1);\n weekdayOrdinalFromEnd = Math.floor((numDays - day) / daysInWeek + 1);\n }\n }\n week++;\n weekFromEnd--;\n }\n return days;\n}\nfunction getWeeks(days, showWeeknumbers, showIsoWeeknumbers, locale) {\n const result = days.reduce((result2, day, i) => {\n const weekIndex = Math.floor(i / 7);\n let week = result2[weekIndex];\n if (!week) {\n week = {\n id: `week-${weekIndex + 1}`,\n title: \"\",\n week: day.week,\n weekPosition: day.weekPosition,\n weeknumber: day.weeknumber,\n isoWeeknumber: day.isoWeeknumber,\n weeknumberDisplay: showWeeknumbers ? day.weeknumber : showIsoWeeknumbers ? day.isoWeeknumber : void 0,\n days: []\n };\n result2[weekIndex] = week;\n }\n week.days.push(day);\n return result2;\n }, Array(days.length / daysInWeek));\n result.forEach((week) => {\n const fromDay = week.days[0];\n const toDay = week.days[week.days.length - 1];\n if (fromDay.month === toDay.month) {\n week.title = `${locale.formatDate(fromDay.date, \"MMMM YYYY\")}`;\n } else if (fromDay.year === toDay.year) {\n week.title = `${locale.formatDate(\n fromDay.date,\n \"MMM\"\n )} - ${locale.formatDate(toDay.date, \"MMM YYYY\")}`;\n } else {\n week.title = `${locale.formatDate(\n fromDay.date,\n \"MMM YYYY\"\n )} - ${locale.formatDate(toDay.date, \"MMM YYYY\")}`;\n }\n });\n return result;\n}\nfunction getWeekdays(week, locale) {\n return week.days.map((day) => ({\n label: locale.formatDate(day.date, locale.masks.weekdays),\n weekday: day.weekday\n }));\n}\nfunction getPageId(month, year) {\n return `${year}.${pad(month, 2)}`;\n}\nfunction getPageAddressForDate(date, view, locale) {\n return pick(\n locale.getDateParts(locale.toDate(date)),\n viewAddressKeys[view]\n );\n}\nfunction addPages({ day, week, month, year }, count, view, locale) {\n if (view === \"daily\" && day) {\n const date = new Date(year, month - 1, day);\n const newDate = addDays(date, count);\n return {\n day: newDate.getDate(),\n month: newDate.getMonth() + 1,\n year: newDate.getFullYear()\n };\n } else if (view === \"weekly\" && week) {\n const comps = locale.getMonthParts(month, year);\n const date = comps.firstDayOfMonth;\n const newDate = addDays(date, (week - 1 + count) * 7);\n const parts = locale.getDateParts(newDate);\n return {\n week: parts.week,\n month: parts.month,\n year: parts.year\n };\n } else {\n const date = new Date(year, month - 1, 1);\n const newDate = addMonths(date, count);\n return {\n month: newDate.getMonth() + 1,\n year: newDate.getFullYear()\n };\n }\n}\nfunction pageIsValid(page) {\n return page != null && page.month != null && page.year != null;\n}\nfunction pageIsBeforePage(page, comparePage) {\n if (!pageIsValid(page) || !pageIsValid(comparePage))\n return false;\n page = page;\n comparePage = comparePage;\n if (page.year !== comparePage.year)\n return page.year < comparePage.year;\n if (page.month && comparePage.month && page.month !== comparePage.month)\n return page.month < comparePage.month;\n if (page.week && comparePage.week && page.week !== comparePage.week) {\n return page.week < comparePage.week;\n }\n if (page.day && comparePage.day && page.day !== comparePage.day) {\n return page.day < comparePage.day;\n }\n return false;\n}\nfunction pageIsAfterPage(page, comparePage) {\n if (!pageIsValid(page) || !pageIsValid(comparePage))\n return false;\n page = page;\n comparePage = comparePage;\n if (page.year !== comparePage.year) {\n return page.year > comparePage.year;\n }\n if (page.month && comparePage.month && page.month !== comparePage.month) {\n return page.month > comparePage.month;\n }\n if (page.week && comparePage.week && page.week !== comparePage.week) {\n return page.week > comparePage.week;\n }\n if (page.day && comparePage.day && page.day !== comparePage.day) {\n return page.day > comparePage.day;\n }\n return false;\n}\nfunction pageIsBetweenPages(page, fromPage, toPage) {\n return (page || false) && !pageIsBeforePage(page, fromPage) && !pageIsAfterPage(page, toPage);\n}\nfunction pageIsEqualToPage(aPage, bPage) {\n if (!aPage && bPage)\n return false;\n if (aPage && !bPage)\n return false;\n if (!aPage && !bPage)\n return true;\n aPage = aPage;\n bPage = bPage;\n return aPage.year === bPage.year && aPage.month === bPage.month && aPage.week === bPage.week && aPage.day === bPage.day;\n}\nfunction pageRangeToArray(from, to, view, locale) {\n if (!pageIsValid(from) || !pageIsValid(to))\n return [];\n const result = [];\n while (!pageIsAfterPage(from, to)) {\n result.push(from);\n from = addPages(from, 1, view, locale);\n }\n return result;\n}\nfunction getPageKey(config) {\n const { day, week, month, year } = config;\n let id = `${year}-${pad(month, 2)}`;\n if (week)\n id = `${id}-w${week}`;\n if (day)\n id = `${id}-${pad(day, 2)}`;\n return id;\n}\nfunction getCachedPage(config, locale) {\n const { month, year, showWeeknumbers, showIsoWeeknumbers } = config;\n const date = new Date(year, month - 1, 15);\n const monthComps = locale.getMonthParts(month, year);\n const prevMonthComps = locale.getPrevMonthParts(month, year);\n const nextMonthComps = locale.getNextMonthParts(month, year);\n const days = getDays({ monthComps, prevMonthComps, nextMonthComps }, locale);\n const weeks = getWeeks(days, showWeeknumbers, showIsoWeeknumbers, locale);\n const weekdays2 = getWeekdays(weeks[0], locale);\n return {\n id: getPageKey(config),\n month,\n year,\n monthTitle: locale.formatDate(date, locale.masks.title),\n shortMonthLabel: locale.formatDate(date, \"MMM\"),\n monthLabel: locale.formatDate(date, \"MMMM\"),\n shortYearLabel: year.toString().substring(2),\n yearLabel: year.toString(),\n monthComps,\n prevMonthComps,\n nextMonthComps,\n days,\n weeks,\n weekdays: weekdays2\n };\n}\nfunction getPage(config, cachedPage) {\n const { day, week, view, trimWeeks } = config;\n const page = {\n ...cachedPage,\n ...config,\n title: \"\",\n viewDays: [],\n viewWeeks: []\n };\n switch (view) {\n case \"daily\": {\n let dayObj = page.days.find((d) => d.inMonth);\n if (day) {\n dayObj = page.days.find((d) => d.day === day && d.inMonth) || dayObj;\n } else if (week) {\n dayObj = page.days.find((d) => d.week === week && d.inMonth);\n }\n const weekObj = page.weeks[dayObj.week - 1];\n page.viewWeeks = [weekObj];\n page.viewDays = [dayObj];\n page.week = dayObj.week;\n page.weekTitle = weekObj.title;\n page.day = dayObj.day;\n page.dayTitle = dayObj.ariaLabel;\n page.title = page.dayTitle;\n break;\n }\n case \"weekly\": {\n page.week = week || 1;\n const weekObj = page.weeks[page.week - 1];\n page.viewWeeks = [weekObj];\n page.viewDays = weekObj.days;\n page.weekTitle = weekObj.title;\n page.title = page.weekTitle;\n break;\n }\n default: {\n page.title = page.monthTitle;\n page.viewWeeks = page.weeks.slice(\n 0,\n trimWeeks ? page.monthComps.numWeeks : void 0\n );\n page.viewDays = page.days;\n break;\n }\n }\n return page;\n}\nclass Cache {\n constructor(size, createKey, createItem) {\n __publicField(this, \"keys\", []);\n __publicField(this, \"store\", {});\n this.size = size;\n this.createKey = createKey;\n this.createItem = createItem;\n }\n get(...args) {\n const key = this.createKey(...args);\n return this.store[key];\n }\n getOrSet(...args) {\n const key = this.createKey(...args);\n if (this.store[key])\n return this.store[key];\n const item = this.createItem(...args);\n if (this.keys.length >= this.size) {\n const removeKey = this.keys.shift();\n if (removeKey != null) {\n delete this.store[removeKey];\n }\n }\n this.keys.push(key);\n this.store[key] = item;\n return item;\n }\n}\nclass DateRange {\n constructor(config, locale = new Locale()) {\n __publicField(this, \"order\");\n __publicField(this, \"locale\");\n __publicField(this, \"start\", null);\n __publicField(this, \"end\", null);\n __publicField(this, \"repeat\", null);\n var _a;\n this.locale = locale;\n const { start, end, span, order, repeat } = config;\n if (isDate(start)) {\n this.start = locale.getDateParts(start);\n }\n if (isDate(end)) {\n this.end = locale.getDateParts(end);\n } else if (this.start != null && span) {\n this.end = locale.getDateParts(addDays(this.start.date, span - 1));\n }\n this.order = order ?? 0;\n if (repeat) {\n this.repeat = new DateRepeat(\n {\n from: (_a = this.start) == null ? void 0 : _a.date,\n ...repeat\n },\n {\n locale: this.locale\n }\n );\n }\n }\n static fromMany(ranges, locale) {\n return (isArray(ranges) ? ranges : [ranges]).filter((d) => d).map((d) => DateRange.from(d, locale));\n }\n static from(source, locale) {\n if (source instanceof DateRange)\n return source;\n const config = {\n start: null,\n end: null\n };\n if (source != null) {\n if (isArray(source)) {\n config.start = source[0] ?? null;\n config.end = source[1] ?? null;\n } else if (isObject(source)) {\n Object.assign(config, source);\n } else {\n config.start = source;\n config.end = source;\n }\n }\n if (config.start != null)\n config.start = new Date(config.start);\n if (config.end != null)\n config.end = new Date(config.end);\n return new DateRange(config, locale);\n }\n get opts() {\n const { order, locale } = this;\n return { order, locale };\n }\n get hasRepeat() {\n return !!this.repeat;\n }\n get isSingleDay() {\n const { start, end } = this;\n return start && end && start.year === end.year && start.month === end.month && start.day === end.day;\n }\n get isMultiDay() {\n return !this.isSingleDay;\n }\n get daySpan() {\n if (this.start == null || this.end == null) {\n if (this.hasRepeat)\n return 1;\n return Infinity;\n }\n return this.end.dayIndex - this.start.dayIndex;\n }\n startsOnDay(dayParts) {\n var _a, _b;\n return ((_a = this.start) == null ? void 0 : _a.dayIndex) === dayParts.dayIndex || !!((_b = this.repeat) == null ? void 0 : _b.passes(dayParts));\n }\n intersectsDay(dayIndex) {\n return this.intersectsDayRange(dayIndex, dayIndex);\n }\n intersectsRange(range) {\n var _a, _b;\n return this.intersectsDayRange(\n ((_a = range.start) == null ? void 0 : _a.dayIndex) ?? -Infinity,\n ((_b = range.end) == null ? void 0 : _b.dayIndex) ?? Infinity\n );\n }\n intersectsDayRange(startDayIndex, endDayIndex) {\n if (this.start && this.start.dayIndex > endDayIndex)\n return false;\n if (this.end && this.end.dayIndex < startDayIndex)\n return false;\n return true;\n }\n}\nclass DateRangeContext {\n constructor() {\n __publicField(this, \"records\", {});\n }\n render(data2, range, days) {\n var _a, _b, _c, _d;\n let result = null;\n const startDayIndex = days[0].dayIndex;\n const endDayIndex = days[days.length - 1].dayIndex;\n if (range.hasRepeat) {\n days.forEach((day) => {\n var _a2, _b2;\n if (range.startsOnDay(day)) {\n const span = range.daySpan < Infinity ? range.daySpan : 1;\n result = {\n startDay: day.dayIndex,\n startTime: ((_a2 = range.start) == null ? void 0 : _a2.time) ?? 0,\n endDay: day.dayIndex + span - 1,\n endTime: ((_b2 = range.end) == null ? void 0 : _b2.time) ?? MS_PER_DAY\n };\n this.getRangeRecords(data2).push(result);\n }\n });\n } else if (range.intersectsDayRange(startDayIndex, endDayIndex)) {\n result = {\n startDay: ((_a = range.start) == null ? void 0 : _a.dayIndex) ?? -Infinity,\n startTime: ((_b = range.start) == null ? void 0 : _b.time) ?? -Infinity,\n endDay: ((_c = range.end) == null ? void 0 : _c.dayIndex) ?? Infinity,\n endTime: ((_d = range.end) == null ? void 0 : _d.time) ?? Infinity\n };\n this.getRangeRecords(data2).push(result);\n }\n return result;\n }\n getRangeRecords(data2) {\n let record = this.records[data2.key];\n if (!record) {\n record = {\n ranges: [],\n data: data2\n };\n this.records[data2.key] = record;\n }\n return record.ranges;\n }\n getCell(key, day) {\n const cells = this.getCells(day);\n const result = cells.find((cell) => cell.data.key === key);\n return result;\n }\n cellExists(key, dayIndex) {\n const records = this.records[key];\n if (records == null)\n return false;\n return records.ranges.some(\n (r) => r.startDay <= dayIndex && r.endDay >= dayIndex\n );\n }\n getCells(day) {\n const records = Object.values(this.records);\n const result = [];\n const { dayIndex } = day;\n records.forEach(({ data: data2, ranges }) => {\n ranges.filter((r) => r.startDay <= dayIndex && r.endDay >= dayIndex).forEach((range) => {\n const onStart = dayIndex === range.startDay;\n const onEnd = dayIndex === range.endDay;\n const startTime = onStart ? range.startTime : 0;\n const startDate = new Date(day.startDate.getTime() + startTime);\n const endTime = onEnd ? range.endTime : MS_PER_DAY;\n const endDate = new Date(day.endDate.getTime() + endTime);\n const allDay = startTime === 0 && endTime === MS_PER_DAY;\n const order = data2.order || 0;\n result.push({\n ...range,\n data: data2,\n onStart,\n onEnd,\n startTime,\n startDate,\n endTime,\n endDate,\n allDay,\n order\n });\n });\n });\n result.sort((a, b) => a.order - b.order);\n return result;\n }\n}\nconst locales = {\n // Arabic\n ar: { dow: 7, L: \"D/‏M/‏YYYY\" },\n // Bulgarian\n bg: { dow: 2, L: \"D.MM.YYYY\" },\n // Catalan\n ca: { dow: 2, L: \"DD/MM/YYYY\" },\n // Chinese (China)\n \"zh-CN\": { dow: 2, L: \"YYYY/MM/DD\" },\n // Chinese (Taiwan)\n \"zh-TW\": { dow: 1, L: \"YYYY/MM/DD\" },\n // Croatian\n hr: { dow: 2, L: \"DD.MM.YYYY\" },\n // Czech\n cs: { dow: 2, L: \"DD.MM.YYYY\" },\n // Danish\n da: { dow: 2, L: \"DD.MM.YYYY\" },\n // Dutch\n nl: { dow: 2, L: \"DD-MM-YYYY\" },\n // English (US)\n \"en-US\": { dow: 1, L: \"MM/DD/YYYY\" },\n // English (Australia)\n \"en-AU\": { dow: 2, L: \"DD/MM/YYYY\" },\n // English (Canada)\n \"en-CA\": { dow: 1, L: \"YYYY-MM-DD\" },\n // English (Great Britain)\n \"en-GB\": { dow: 2, L: \"DD/MM/YYYY\" },\n // English (Ireland)\n \"en-IE\": { dow: 2, L: \"DD-MM-YYYY\" },\n // English (New Zealand)\n \"en-NZ\": { dow: 2, L: \"DD/MM/YYYY\" },\n // English (South Africa)\n \"en-ZA\": { dow: 1, L: \"YYYY/MM/DD\" },\n // Esperanto\n eo: { dow: 2, L: \"YYYY-MM-DD\" },\n // Estonian\n et: { dow: 2, L: \"DD.MM.YYYY\" },\n // Finnish\n fi: { dow: 2, L: \"DD.MM.YYYY\" },\n // French\n fr: { dow: 2, L: \"DD/MM/YYYY\" },\n // French (Canada)\n \"fr-CA\": { dow: 1, L: \"YYYY-MM-DD\" },\n // French (Switzerland)\n \"fr-CH\": { dow: 2, L: \"DD.MM.YYYY\" },\n // German\n de: { dow: 2, L: \"DD.MM.YYYY\" },\n // Hebrew\n he: { dow: 1, L: \"DD.MM.YYYY\" },\n // Indonesian\n id: { dow: 2, L: \"DD/MM/YYYY\" },\n // Italian\n it: { dow: 2, L: \"DD/MM/YYYY\" },\n // Japanese\n ja: { dow: 1, L: \"YYYY年M月D日\" },\n // Korean\n ko: { dow: 1, L: \"YYYY.MM.DD\" },\n // Latvian\n lv: { dow: 2, L: \"DD.MM.YYYY\" },\n // Lithuanian\n lt: { dow: 2, L: \"DD.MM.YYYY\" },\n // Macedonian\n mk: { dow: 2, L: \"D.MM.YYYY\" },\n // Norwegian\n nb: { dow: 2, L: \"D. MMMM YYYY\" },\n nn: { dow: 2, L: \"D. MMMM YYYY\" },\n // Polish\n pl: { dow: 2, L: \"DD.MM.YYYY\" },\n // Portuguese\n pt: { dow: 2, L: \"DD/MM/YYYY\" },\n // Romanian\n ro: { dow: 2, L: \"DD.MM.YYYY\" },\n // Russian\n ru: { dow: 2, L: \"DD.MM.YYYY\" },\n // Slovak\n sk: { dow: 2, L: \"DD.MM.YYYY\" },\n // Spanish (Spain)\n \"es-ES\": { dow: 2, L: \"DD/MM/YYYY\" },\n // Spanish (Mexico)\n \"es-MX\": { dow: 2, L: \"DD/MM/YYYY\" },\n // Swedish\n sv: { dow: 2, L: \"YYYY-MM-DD\" },\n // Thai\n th: { dow: 1, L: \"DD/MM/YYYY\" },\n // Turkish\n tr: { dow: 2, L: \"DD.MM.YYYY\" },\n // Ukrainian\n uk: { dow: 2, L: \"DD.MM.YYYY\" },\n // Vietnam\n vi: { dow: 2, L: \"DD/MM/YYYY\" }\n};\nlocales.en = locales[\"en-US\"];\nlocales.es = locales[\"es-ES\"];\nlocales.no = locales.nb;\nlocales.zh = locales[\"zh-CN\"];\nconst localeSettings = Object.entries(locales).reduce(\n (res, [id, { dow, L }]) => {\n res[id] = {\n id,\n firstDayOfWeek: dow,\n masks: { L }\n };\n return res;\n },\n {}\n);\nconst title = \"MMMM YYYY\";\nconst weekdays = \"W\";\nconst navMonths = \"MMM\";\nconst hours = \"h A\";\nconst input = [\n \"L\",\n \"YYYY-MM-DD\",\n \"YYYY/MM/DD\"\n];\nconst inputDateTime = [\n \"L h:mm A\",\n \"YYYY-MM-DD h:mm A\",\n \"YYYY/MM/DD h:mm A\"\n];\nconst inputDateTime24hr = [\n \"L HH:mm\",\n \"YYYY-MM-DD HH:mm\",\n \"YYYY/MM/DD HH:mm\"\n];\nconst inputTime = [\n \"h:mm A\"\n];\nconst inputTime24hr = [\n \"HH:mm\"\n];\nconst dayPopover = \"WWW, MMM D, YYYY\";\nconst data = [\n \"L\",\n \"YYYY-MM-DD\",\n \"YYYY/MM/DD\"\n];\nconst model = \"iso\";\nconst iso = \"YYYY-MM-DDTHH:mm:ss.SSSZ\";\nconst masks = {\n title,\n weekdays,\n navMonths,\n hours,\n input,\n inputDateTime,\n inputDateTime24hr,\n inputTime,\n inputTime24hr,\n dayPopover,\n data,\n model,\n iso\n};\nconst maxSwipeTime = 300;\nconst minHorizontalSwipeDistance = 60;\nconst maxVerticalSwipeDistance = 80;\nconst touch = {\n maxSwipeTime,\n minHorizontalSwipeDistance,\n maxVerticalSwipeDistance\n};\nconst defaultConfig = {\n componentPrefix: \"V\",\n color: \"blue\",\n isDark: false,\n navVisibility: \"click\",\n titlePosition: \"center\",\n transition: \"slide-h\",\n touch,\n masks,\n locales: localeSettings,\n datePicker: {\n updateOnInput: true,\n inputDebounce: 1e3,\n popover: {\n visibility: \"hover-focus\",\n placement: \"bottom-start\",\n isInteractive: true\n }\n }\n};\nconst state = reactive(defaultConfig);\nconst defaultLocales = computed(() => {\n return mapValues_1(state.locales, (l) => {\n l.masks = defaultsDeep_1(l.masks, state.masks);\n return l;\n });\n});\nconst getDefault = (path) => {\n if (typeof window !== \"undefined\" && has(window.__vcalendar__, path)) {\n return get_1(window.__vcalendar__, path);\n }\n return get_1(state, path);\n};\nconst setupDefaults = (app, userDefaults) => {\n app.config.globalProperties.$VCalendar = state;\n return Object.assign(state, defaultsDeep_1(userDefaults, state));\n};\nconst DEFAULT_MONTH_CACHE_SIZE = 12;\nconst DEFAULT_PAGE_CACHE_SIZE = 5;\nfunction resolveConfig(config, locales2) {\n const detLocale = new Intl.DateTimeFormat().resolvedOptions().locale;\n let id;\n if (isString_1(config)) {\n id = config;\n } else if (has(config, \"id\")) {\n id = config.id;\n }\n id = (id || detLocale).toLowerCase();\n const localeKeys = Object.keys(locales2);\n const validKey = (k) => localeKeys.find((lk) => lk.toLowerCase() === k);\n id = validKey(id) || validKey(id.substring(0, 2)) || detLocale;\n const defLocale = {\n ...locales2[\"en-IE\"],\n ...locales2[id],\n id,\n monthCacheSize: DEFAULT_MONTH_CACHE_SIZE,\n pageCacheSize: DEFAULT_PAGE_CACHE_SIZE\n };\n const result = isObject(config) ? defaultsDeep_1(config, defLocale) : defLocale;\n return result;\n}\nclass Locale {\n constructor(config = void 0, timezone) {\n __publicField(this, \"id\");\n __publicField(this, \"daysInWeek\");\n __publicField(this, \"firstDayOfWeek\");\n __publicField(this, \"masks\");\n __publicField(this, \"timezone\");\n __publicField(this, \"hourLabels\");\n __publicField(this, \"dayNames\");\n __publicField(this, \"dayNamesShort\");\n __publicField(this, \"dayNamesShorter\");\n __publicField(this, \"dayNamesNarrow\");\n __publicField(this, \"monthNames\");\n __publicField(this, \"monthNamesShort\");\n __publicField(this, \"relativeTimeNames\");\n __publicField(this, \"amPm\", [\"am\", \"pm\"]);\n __publicField(this, \"monthCache\");\n __publicField(this, \"pageCache\");\n const { id, firstDayOfWeek, masks: masks2, monthCacheSize, pageCacheSize } = resolveConfig(config, defaultLocales.value);\n this.monthCache = new Cache(\n monthCacheSize,\n getMonthPartsKey,\n getMonthParts\n );\n this.pageCache = new Cache(pageCacheSize, getPageKey, getCachedPage);\n this.id = id;\n this.daysInWeek = daysInWeek;\n this.firstDayOfWeek = clamp(firstDayOfWeek, 1, daysInWeek);\n this.masks = masks2;\n this.timezone = timezone || void 0;\n this.hourLabels = this.getHourLabels();\n this.dayNames = getDayNames(\"long\", this.id);\n this.dayNamesShort = getDayNames(\"short\", this.id);\n this.dayNamesShorter = this.dayNamesShort.map((s) => s.substring(0, 2));\n this.dayNamesNarrow = getDayNames(\"narrow\", this.id);\n this.monthNames = getMonthNames(\"long\", this.id);\n this.monthNamesShort = getMonthNames(\"short\", this.id);\n this.relativeTimeNames = getRelativeTimeNames(this.id);\n }\n formatDate(date, masks2) {\n return formatDate(date, masks2, this);\n }\n parseDate(dateString, mask) {\n return parseDate(dateString, mask, this);\n }\n toDate(d, opts = {}) {\n const nullDate = /* @__PURE__ */ new Date(NaN);\n let result = nullDate;\n const { fillDate, mask, patch, rules } = opts;\n if (isNumber_1(d)) {\n opts.type = \"number\";\n result = /* @__PURE__ */ new Date(+d);\n } else if (isString_1(d)) {\n opts.type = \"string\";\n result = d ? parseDate(d, mask || \"iso\", this) : nullDate;\n } else if (isDate(d)) {\n opts.type = \"date\";\n result = new Date(d.getTime());\n } else if (isDateParts(d)) {\n opts.type = \"object\";\n result = this.getDateFromParts(d);\n }\n if (result && (patch || rules)) {\n let parts = this.getDateParts(result);\n if (patch && fillDate != null) {\n const fillParts = this.getDateParts(this.toDate(fillDate));\n parts = this.getDateParts(\n this.toDate({ ...fillParts, ...pick(parts, DatePatchKeys[patch]) })\n );\n }\n if (rules) {\n parts = applyRulesForDateParts(parts, rules);\n }\n result = this.getDateFromParts(parts);\n }\n return result || nullDate;\n }\n toDateOrNull(d, opts = {}) {\n const dte = this.toDate(d, opts);\n return isNaN(dte.getTime()) ? null : dte;\n }\n fromDate(date, { type, mask } = {}) {\n switch (type) {\n case \"number\":\n return date ? date.getTime() : NaN;\n case \"string\":\n return date ? this.formatDate(date, mask || \"iso\") : \"\";\n case \"object\":\n return date ? this.getDateParts(date) : null;\n default:\n return date ? new Date(date) : null;\n }\n }\n range(source) {\n return DateRange.from(source, this);\n }\n ranges(ranges) {\n return DateRange.fromMany(ranges, this);\n }\n getDateParts(date) {\n return getDateParts(date, this);\n }\n getDateFromParts(parts) {\n return getDateFromParts(parts, this.timezone);\n }\n getDateFromParams(year, month, day, hours2, minutes, seconds, milliseconds) {\n return this.getDateFromParts({\n year,\n month,\n day,\n hours: hours2,\n minutes,\n seconds,\n milliseconds\n });\n }\n getPage(config) {\n const cachedPage = this.pageCache.getOrSet(config, this);\n return getPage(config, cachedPage);\n }\n getMonthParts(month, year) {\n const { firstDayOfWeek } = this;\n return this.monthCache.getOrSet(month, year, firstDayOfWeek);\n }\n getThisMonthParts() {\n const date = /* @__PURE__ */ new Date();\n return this.getMonthParts(\n date.getMonth() + 1,\n date.getFullYear()\n );\n }\n getPrevMonthParts(month, year) {\n if (month === 1)\n return this.getMonthParts(12, year - 1);\n return this.getMonthParts(month - 1, year);\n }\n getNextMonthParts(month, year) {\n if (month === 12)\n return this.getMonthParts(1, year + 1);\n return this.getMonthParts(month + 1, year);\n }\n getHourLabels() {\n return getHourDates().map((d) => {\n return this.formatDate(d, this.masks.hours);\n });\n }\n getDayId(date) {\n return this.formatDate(date, \"YYYY-MM-DD\");\n }\n}\nvar GroupRuleType = /* @__PURE__ */ ((GroupRuleType2) => {\n GroupRuleType2[\"Any\"] = \"any\";\n GroupRuleType2[\"All\"] = \"all\";\n return GroupRuleType2;\n})(GroupRuleType || {});\nvar IntervalRuleType = /* @__PURE__ */ ((IntervalRuleType2) => {\n IntervalRuleType2[\"Days\"] = \"days\";\n IntervalRuleType2[\"Weeks\"] = \"weeks\";\n IntervalRuleType2[\"Months\"] = \"months\";\n IntervalRuleType2[\"Years\"] = \"years\";\n return IntervalRuleType2;\n})(IntervalRuleType || {});\nvar ComponentRuleType = /* @__PURE__ */ ((ComponentRuleType2) => {\n ComponentRuleType2[\"Days\"] = \"days\";\n ComponentRuleType2[\"Weekdays\"] = \"weekdays\";\n ComponentRuleType2[\"Weeks\"] = \"weeks\";\n ComponentRuleType2[\"Months\"] = \"months\";\n ComponentRuleType2[\"Years\"] = \"years\";\n return ComponentRuleType2;\n})(ComponentRuleType || {});\nvar OrdinalComponentRuleType = /* @__PURE__ */ ((OrdinalComponentRuleType2) => {\n OrdinalComponentRuleType2[\"OrdinalWeekdays\"] = \"ordinalWeekdays\";\n return OrdinalComponentRuleType2;\n})(OrdinalComponentRuleType || {});\nclass IntervalRule {\n constructor(type, interval, from) {\n __publicField(this, \"validated\", true);\n this.type = type;\n this.interval = interval;\n this.from = from;\n if (!this.from) {\n console.error(\n `A valid \"from\" date is required for date interval rule. This rule will be skipped.`\n );\n this.validated = false;\n }\n }\n passes(dateParts) {\n if (!this.validated)\n return true;\n const { date } = dateParts;\n switch (this.type) {\n case \"days\": {\n return diffInDays(this.from.date, date) % this.interval === 0;\n }\n case \"weeks\": {\n return diffInWeeks(this.from.date, date) % this.interval === 0;\n }\n case \"months\": {\n return diffInMonths(this.from.date, date) % this.interval === 0;\n }\n case \"years\": {\n return diffInYears(this.from.date, date) % this.interval === 0;\n }\n default: {\n return false;\n }\n }\n }\n}\nclass ComponentRule {\n constructor(type, components2, validator, getter) {\n __publicField(this, \"components\", []);\n this.type = type;\n this.validator = validator;\n this.getter = getter;\n this.components = this.normalizeComponents(components2);\n }\n static create(type, config) {\n switch (type) {\n case \"days\":\n return new DaysRule(config);\n case \"weekdays\":\n return new WeekdaysRule(config);\n case \"weeks\":\n return new WeeksRule(config);\n case \"months\":\n return new MonthsRule(config);\n case \"years\":\n return new YearsRule(config);\n }\n }\n normalizeComponents(components2) {\n if (this.validator(components2))\n return [components2];\n if (!isArray(components2))\n return [];\n const result = [];\n components2.forEach((component) => {\n if (!this.validator(component)) {\n console.error(\n `Component value ${component} in invalid for \"${this.type}\" rule. This rule will be skipped.`\n );\n return;\n }\n result.push(component);\n });\n return result;\n }\n passes(dayParts) {\n const comps = this.getter(dayParts);\n const result = comps.some((comp) => this.components.includes(comp));\n return result;\n }\n}\nclass DaysRule extends ComponentRule {\n constructor(components2) {\n super(\n \"days\",\n components2,\n isDayInMonth,\n ({ day, dayFromEnd }) => [day, -dayFromEnd]\n );\n }\n}\nclass WeekdaysRule extends ComponentRule {\n constructor(components2) {\n super(\n \"weekdays\",\n components2,\n isDayOfWeek,\n ({ weekday }) => [weekday]\n );\n }\n}\nclass WeeksRule extends ComponentRule {\n constructor(components2) {\n super(\n \"weeks\",\n components2,\n isWeekInMonth,\n ({ week, weekFromEnd }) => [week, -weekFromEnd]\n );\n }\n}\nclass MonthsRule extends ComponentRule {\n constructor(components2) {\n super(\"months\", components2, isMonthInYear, ({ month }) => [\n month\n ]);\n }\n}\nclass YearsRule extends ComponentRule {\n constructor(components2) {\n super(\"years\", components2, isNumber_1, ({ year }) => [year]);\n }\n}\nclass OrdinalComponentRule {\n constructor(type, components2) {\n __publicField(this, \"components\");\n this.type = type;\n this.components = this.normalizeComponents(components2);\n }\n normalizeArrayConfig(config) {\n const result = [];\n config.forEach((numOrArray, i) => {\n if (isNumber_1(numOrArray)) {\n if (i === 0)\n return;\n if (!isOrdinalWeekInMonth(config[0])) {\n console.error(\n `Ordinal range for \"${this.type}\" rule is from -5 to -1 or 1 to 5. This rule will be skipped.`\n );\n return;\n }\n if (!isDayOfWeek(numOrArray)) {\n console.error(\n `Acceptable range for \"${this.type}\" rule is from 1 to 5. This rule will be skipped`\n );\n return;\n }\n result.push([config[0], numOrArray]);\n } else if (isArray(numOrArray)) {\n result.push(...this.normalizeArrayConfig(numOrArray));\n }\n });\n return result;\n }\n normalizeComponents(config) {\n const result = [];\n config.forEach((numOrArray, i) => {\n if (isNumber_1(numOrArray)) {\n if (i === 0)\n return;\n if (!isOrdinalWeekInMonth(config[0])) {\n console.error(\n `Ordinal range for \"${this.type}\" rule is from -5 to -1 or 1 to 5. This rule will be skipped.`\n );\n return;\n }\n if (!isDayOfWeek(numOrArray)) {\n console.error(\n `Acceptable range for \"${this.type}\" rule is from 1 to 5. This rule will be skipped`\n );\n return;\n }\n result.push([config[0], numOrArray]);\n } else if (isArray(numOrArray)) {\n result.push(...this.normalizeArrayConfig(numOrArray));\n }\n });\n return result;\n }\n passes(dayParts) {\n const { weekday, weekdayOrdinal, weekdayOrdinalFromEnd } = dayParts;\n return this.components.some(\n ([ordinalWeek, ordinalWeekday]) => (ordinalWeek === weekdayOrdinal || ordinalWeek === -weekdayOrdinalFromEnd) && weekday === ordinalWeekday\n );\n }\n}\nclass FunctionRule {\n constructor(fn) {\n __publicField(this, \"type\", \"function\");\n __publicField(this, \"validated\", true);\n this.fn = fn;\n if (!isFunction_1(fn)) {\n console.error(\n `The function rule requires a valid function. This rule will be skipped.`\n );\n this.validated = false;\n }\n }\n passes(dayParts) {\n if (!this.validated)\n return true;\n return this.fn(dayParts);\n }\n}\nclass DateRepeat {\n constructor(config, options = {}, parent) {\n __publicField(this, \"validated\", true);\n __publicField(this, \"config\");\n __publicField(this, \"type\", GroupRuleType.Any);\n __publicField(this, \"from\");\n __publicField(this, \"until\");\n __publicField(this, \"rules\", []);\n __publicField(this, \"locale\", new Locale());\n this.parent = parent;\n if (options.locale)\n this.locale = options.locale;\n this.config = config;\n if (isFunction_1(config)) {\n this.type = GroupRuleType.All;\n this.rules = [new FunctionRule(config)];\n } else if (isArray(config)) {\n this.type = GroupRuleType.Any;\n this.rules = config.map((c) => new DateRepeat(c, options, this));\n } else if (isObject(config)) {\n this.type = GroupRuleType.All;\n this.from = config.from ? this.locale.getDateParts(config.from) : parent == null ? void 0 : parent.from;\n this.until = config.until ? this.locale.getDateParts(config.until) : parent == null ? void 0 : parent.until;\n this.rules = this.getObjectRules(config);\n } else {\n console.error(\"Rule group configuration must be an object or an array.\");\n this.validated = false;\n }\n }\n getObjectRules(config) {\n const rules = [];\n if (config.every) {\n if (isString_1(config.every)) {\n config.every = [1, `${config.every}s`];\n }\n if (isArray(config.every)) {\n const [interval = 1, type = IntervalRuleType.Days] = config.every;\n rules.push(new IntervalRule(type, interval, this.from));\n }\n }\n Object.values(ComponentRuleType).forEach((type) => {\n if (!(type in config))\n return;\n rules.push(ComponentRule.create(type, config[type]));\n });\n Object.values(OrdinalComponentRuleType).forEach((type) => {\n if (!(type in config))\n return;\n rules.push(new OrdinalComponentRule(type, config[type]));\n });\n if (config.on != null) {\n if (!isArray(config.on))\n config.on = [config.on];\n rules.push(\n new DateRepeat(config.on, { locale: this.locale }, this.parent)\n );\n }\n return rules;\n }\n passes(dayParts) {\n if (!this.validated)\n return true;\n if (this.from && dayParts.dayIndex <= this.from.dayIndex)\n return false;\n if (this.until && dayParts.dayIndex >= this.until.dayIndex)\n return false;\n if (this.type === GroupRuleType.Any) {\n return this.rules.some((r) => r.passes(dayParts));\n }\n return this.rules.every((r) => r.passes(dayParts));\n }\n}\nfunction isDayInMonth(dayInMonth) {\n if (!isNumber_1(dayInMonth))\n return false;\n return dayInMonth >= 1 && dayInMonth <= 31;\n}\nfunction isDayOfWeek(dayOfWeek) {\n if (!isNumber_1(dayOfWeek))\n return false;\n return dayOfWeek >= 1 && dayOfWeek <= 7;\n}\nfunction isWeekInMonth(weekInMonth) {\n if (!isNumber_1(weekInMonth))\n return false;\n return weekInMonth >= -6 && weekInMonth <= -1 || weekInMonth >= 1 && weekInMonth <= 6;\n}\nfunction isMonthInYear(monthInYear) {\n if (!isNumber_1(monthInYear))\n return false;\n return monthInYear >= 1 && monthInYear <= 12;\n}\nfunction isOrdinalWeekInMonth(weekInMonth) {\n if (!isNumber_1(weekInMonth))\n return false;\n if (weekInMonth < -5 || weekInMonth > 5 || weekInMonth === 0)\n return false;\n return true;\n}\nconst DatePatchKeys = {\n dateTime: [\n \"year\",\n \"month\",\n \"day\",\n \"hours\",\n \"minutes\",\n \"seconds\",\n \"milliseconds\"\n ],\n date: [\"year\", \"month\", \"day\"],\n time: [\"hours\", \"minutes\", \"seconds\", \"milliseconds\"]\n};\nconst daysInWeek = 7;\nconst weeksInMonth = 6;\nconst MS_PER_SECOND = 1e3;\nconst MS_PER_MINUTE = MS_PER_SECOND * 60;\nconst MS_PER_HOUR = MS_PER_MINUTE * 60;\nconst MS_PER_DAY = MS_PER_HOUR * 24;\nconst daysInMonths = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nconst maskMacros = [\"L\", \"iso\"];\nconst DATE_PART_RANGES = {\n milliseconds: [0, 999, 3],\n seconds: [0, 59, 2],\n minutes: [0, 59, 2],\n hours: [0, 23, 2]\n};\nconst token = /d{1,2}|W{1,4}|M{1,4}|YY(?:YY)?|S{1,3}|Do|Z{1,4}|([HhMsDm])\\1?|[aA]|\"[^\"]*\"|'[^']*'/g;\nconst literal = /\\[([^]*?)\\]/gm;\nconst formatFlags = {\n D(d) {\n return d.day;\n },\n DD(d) {\n return pad(d.day, 2);\n },\n // Do(d: DateParts, l: Locale) {\n // return l.DoFn(d.day);\n // },\n d(d) {\n return d.weekday - 1;\n },\n dd(d) {\n return pad(d.weekday - 1, 2);\n },\n W(d, l) {\n return l.dayNamesNarrow[d.weekday - 1];\n },\n WW(d, l) {\n return l.dayNamesShorter[d.weekday - 1];\n },\n WWW(d, l) {\n return l.dayNamesShort[d.weekday - 1];\n },\n WWWW(d, l) {\n return l.dayNames[d.weekday - 1];\n },\n M(d) {\n return d.month;\n },\n MM(d) {\n return pad(d.month, 2);\n },\n MMM(d, l) {\n return l.monthNamesShort[d.month - 1];\n },\n MMMM(d, l) {\n return l.monthNames[d.month - 1];\n },\n YY(d) {\n return String(d.year).substr(2);\n },\n YYYY(d) {\n return pad(d.year, 4);\n },\n h(d) {\n return d.hours % 12 || 12;\n },\n hh(d) {\n return pad(d.hours % 12 || 12, 2);\n },\n H(d) {\n return d.hours;\n },\n HH(d) {\n return pad(d.hours, 2);\n },\n m(d) {\n return d.minutes;\n },\n mm(d) {\n return pad(d.minutes, 2);\n },\n s(d) {\n return d.seconds;\n },\n ss(d) {\n return pad(d.seconds, 2);\n },\n S(d) {\n return Math.round(d.milliseconds / 100);\n },\n SS(d) {\n return pad(Math.round(d.milliseconds / 10), 2);\n },\n SSS(d) {\n return pad(d.milliseconds, 3);\n },\n a(d, l) {\n return d.hours < 12 ? l.amPm[0] : l.amPm[1];\n },\n A(d, l) {\n return d.hours < 12 ? l.amPm[0].toUpperCase() : l.amPm[1].toUpperCase();\n },\n Z() {\n return \"Z\";\n },\n ZZ(d) {\n const o = d.timezoneOffset;\n return `${o > 0 ? \"-\" : \"+\"}${pad(Math.floor(Math.abs(o) / 60), 2)}`;\n },\n ZZZ(d) {\n const o = d.timezoneOffset;\n return `${o > 0 ? \"-\" : \"+\"}${pad(\n Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60,\n 4\n )}`;\n },\n ZZZZ(d) {\n const o = d.timezoneOffset;\n return `${o > 0 ? \"-\" : \"+\"}${pad(Math.floor(Math.abs(o) / 60), 2)}:${pad(\n Math.abs(o) % 60,\n 2\n )}`;\n }\n};\nconst twoDigits = /\\d\\d?/;\nconst threeDigits = /\\d{3}/;\nconst fourDigits = /\\d{4}/;\nconst word = /[0-9]*['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]+|[\\u0600-\\u06FF/]+(\\s*?[\\u0600-\\u06FF]+){1,2}/i;\nconst noop = () => {\n};\nconst monthUpdate = (arrName) => (d, v, l) => {\n const index2 = l[arrName].indexOf(\n v.charAt(0).toUpperCase() + v.substr(1).toLowerCase()\n );\n if (~index2) {\n d.month = index2;\n }\n};\nconst parseFlags = {\n D: [\n twoDigits,\n (d, v) => {\n d.day = v;\n }\n ],\n Do: [\n new RegExp(twoDigits.source + word.source),\n (d, v) => {\n d.day = parseInt(v, 10);\n }\n ],\n d: [twoDigits, noop],\n W: [word, noop],\n M: [\n twoDigits,\n (d, v) => {\n d.month = v - 1;\n }\n ],\n MMM: [word, monthUpdate(\"monthNamesShort\")],\n MMMM: [word, monthUpdate(\"monthNames\")],\n YY: [\n twoDigits,\n (d, v) => {\n const da = /* @__PURE__ */ new Date();\n const cent = +da.getFullYear().toString().substr(0, 2);\n d.year = +`${v > 68 ? cent - 1 : cent}${v}`;\n }\n ],\n YYYY: [\n fourDigits,\n (d, v) => {\n d.year = v;\n }\n ],\n S: [\n /\\d/,\n (d, v) => {\n d.milliseconds = v * 100;\n }\n ],\n SS: [\n /\\d{2}/,\n (d, v) => {\n d.milliseconds = v * 10;\n }\n ],\n SSS: [\n threeDigits,\n (d, v) => {\n d.milliseconds = v;\n }\n ],\n h: [\n twoDigits,\n (d, v) => {\n d.hours = v;\n }\n ],\n m: [\n twoDigits,\n (d, v) => {\n d.minutes = v;\n }\n ],\n s: [\n twoDigits,\n (d, v) => {\n d.seconds = v;\n }\n ],\n a: [\n word,\n (d, v, l) => {\n const val = v.toLowerCase();\n if (val === l.amPm[0]) {\n d.isPm = false;\n } else if (val === l.amPm[1]) {\n d.isPm = true;\n }\n }\n ],\n Z: [\n /[^\\s]*?[+-]\\d\\d:?\\d\\d|[^\\s]*?Z?/,\n (d, v) => {\n if (v === \"Z\")\n v = \"+00:00\";\n const parts = `${v}`.match(/([+-]|\\d\\d)/gi);\n if (parts) {\n const minutes = +parts[1] * 60 + parseInt(parts[2], 10);\n d.timezoneOffset = parts[0] === \"+\" ? minutes : -minutes;\n }\n }\n ]\n};\nparseFlags.DD = parseFlags.D;\nparseFlags.dd = parseFlags.d;\nparseFlags.WWWW = parseFlags.WWW = parseFlags.WW = parseFlags.W;\nparseFlags.MM = parseFlags.M;\nparseFlags.mm = parseFlags.m;\nparseFlags.hh = parseFlags.H = parseFlags.HH = parseFlags.h;\nparseFlags.ss = parseFlags.s;\nparseFlags.A = parseFlags.a;\nparseFlags.ZZZZ = parseFlags.ZZZ = parseFlags.ZZ = parseFlags.Z;\nfunction normalizeMasks(masks2, locale) {\n return (arrayHasItems(masks2) && masks2 || [\n isString_1(masks2) && masks2 || \"YYYY-MM-DD\"\n ]).map(\n (m) => maskMacros.reduce(\n (prev, curr) => prev.replace(curr, locale.masks[curr] || \"\"),\n m\n )\n );\n}\nfunction isDateParts(parts) {\n return isObject(parts) && \"year\" in parts && \"month\" in parts && \"day\" in parts;\n}\nfunction startOfWeek(date, firstDayOfWeek = 1) {\n const day = date.getDay() + 1;\n const daysToAdd = day >= firstDayOfWeek ? firstDayOfWeek - day : -(7 - (firstDayOfWeek - day));\n return addDays(date, daysToAdd);\n}\nfunction getDayIndex(year, month, day) {\n const utcDate = Date.UTC(year, month - 1, day);\n return diffInDays(/* @__PURE__ */ new Date(0), new Date(utcDate));\n}\nfunction diffInDays(d1, d2) {\n return Math.round((d2.getTime() - d1.getTime()) / MS_PER_DAY);\n}\nfunction diffInWeeks(d1, d2) {\n return Math.ceil(diffInDays(startOfWeek(d1), startOfWeek(d2)) / 7);\n}\nfunction diffInYears(d1, d2) {\n return d2.getUTCFullYear() - d1.getUTCFullYear();\n}\nfunction diffInMonths(d1, d2) {\n return diffInYears(d1, d2) * 12 + (d2.getMonth() - d1.getMonth());\n}\nfunction getDateFromParts(parts, timezone = \"\") {\n const d = /* @__PURE__ */ new Date();\n const {\n year = d.getFullYear(),\n month = d.getMonth() + 1,\n day = d.getDate(),\n hours: hrs = 0,\n minutes: min = 0,\n seconds: sec = 0,\n milliseconds: ms = 0\n } = parts;\n if (timezone) {\n const dateString = `${pad(year, 4)}-${pad(month, 2)}-${pad(day, 2)}T${pad(\n hrs,\n 2\n )}:${pad(min, 2)}:${pad(sec, 2)}.${pad(ms, 3)}`;\n return toDate$1(dateString, { timeZone: timezone });\n }\n return new Date(year, month - 1, day, hrs, min, sec, ms);\n}\nfunction getDateParts(date, locale) {\n let tzDate = new Date(date.getTime());\n if (locale.timezone) {\n tzDate = new Date(\n date.toLocaleString(\"en-US\", { timeZone: locale.timezone })\n );\n tzDate.setMilliseconds(date.getMilliseconds());\n }\n const milliseconds = tzDate.getMilliseconds();\n const seconds = tzDate.getSeconds();\n const minutes = tzDate.getMinutes();\n const hours2 = tzDate.getHours();\n const time = milliseconds + seconds * MS_PER_SECOND + minutes * MS_PER_MINUTE + hours2 * MS_PER_HOUR;\n const month = tzDate.getMonth() + 1;\n const year = tzDate.getFullYear();\n const monthParts = locale.getMonthParts(month, year);\n const day = tzDate.getDate();\n const dayFromEnd = monthParts.numDays - day + 1;\n const weekday = tzDate.getDay() + 1;\n const weekdayOrdinal = Math.floor((day - 1) / 7 + 1);\n const weekdayOrdinalFromEnd = Math.floor((monthParts.numDays - day) / 7 + 1);\n const week = Math.ceil(\n (day + Math.abs(monthParts.firstWeekday - monthParts.firstDayOfWeek)) / 7\n );\n const weekFromEnd = monthParts.numWeeks - week + 1;\n const weeknumber = monthParts.weeknumbers[week];\n const dayIndex = getDayIndex(year, month, day);\n const parts = {\n milliseconds,\n seconds,\n minutes,\n hours: hours2,\n time,\n day,\n dayFromEnd,\n weekday,\n weekdayOrdinal,\n weekdayOrdinalFromEnd,\n week,\n weekFromEnd,\n weeknumber,\n month,\n year,\n date: tzDate,\n dateTime: tzDate.getTime(),\n dayIndex,\n timezoneOffset: 0,\n isValid: true\n };\n return parts;\n}\nfunction getMonthPartsKey(month, year, firstDayOfWeek) {\n return `${year}-${month}-${firstDayOfWeek}`;\n}\nfunction getMonthParts(month, year, firstDayOfWeek) {\n const inLeapYear = year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;\n const firstDayOfMonth = new Date(year, month - 1, 1);\n const firstWeekday = firstDayOfMonth.getDay() + 1;\n const numDays = month === 2 && inLeapYear ? 29 : daysInMonths[month - 1];\n const weekStartsOn = firstDayOfWeek - 1;\n const numWeeks = getWeeksInMonth(firstDayOfMonth, {\n weekStartsOn\n });\n const weeknumbers = [];\n const isoWeeknumbers = [];\n for (let i = 0; i < numWeeks; i++) {\n const date = addDays(firstDayOfMonth, i * 7);\n weeknumbers.push(getWeek(date, { weekStartsOn }));\n isoWeeknumbers.push(getISOWeek(date));\n }\n return {\n firstDayOfWeek,\n firstDayOfMonth,\n inLeapYear,\n firstWeekday,\n numDays,\n numWeeks,\n month,\n year,\n weeknumbers,\n isoWeeknumbers\n };\n}\nfunction getWeekdayDates() {\n const dates = [];\n const year = 2020;\n const month = 1;\n const day = 5;\n for (let i = 0; i < daysInWeek; i++) {\n dates.push(\n getDateFromParts({\n year,\n month,\n day: day + i,\n hours: 12\n })\n );\n }\n return dates;\n}\nfunction getDayNames(length, localeId = void 0) {\n const dtf = new Intl.DateTimeFormat(localeId, {\n weekday: length\n });\n return getWeekdayDates().map((d) => dtf.format(d));\n}\nfunction getHourDates() {\n const dates = [];\n for (let i = 0; i <= 24; i++) {\n dates.push(new Date(2e3, 0, 1, i));\n }\n return dates;\n}\nfunction getRelativeTimeNames(localeId = void 0) {\n const units = [\n \"second\",\n \"minute\",\n \"hour\",\n \"day\",\n \"week\",\n \"month\",\n \"quarter\",\n \"year\"\n ];\n const rtf = new Intl.RelativeTimeFormat(localeId);\n return units.reduce((names, unit) => {\n const parts = rtf.formatToParts(100, unit);\n names[unit] = parts[1].unit;\n return names;\n }, {});\n}\nfunction getMonthDates() {\n const dates = [];\n for (let i = 0; i < 12; i++) {\n dates.push(new Date(2e3, i, 15));\n }\n return dates;\n}\nfunction getMonthNames(length, localeId = void 0) {\n const dtf = new Intl.DateTimeFormat(localeId, {\n month: length,\n timeZone: \"UTC\"\n });\n return getMonthDates().map((d) => dtf.format(d));\n}\nfunction datePartIsValid(part, rule, parts) {\n if (isNumber_1(rule))\n return rule === part;\n if (isArray(rule))\n return rule.includes(part);\n if (isFunction_1(rule))\n return rule(part, parts);\n if (rule.min != null && rule.min > part)\n return false;\n if (rule.max != null && rule.max < part)\n return false;\n if (rule.interval != null && part % rule.interval !== 0)\n return false;\n return true;\n}\nfunction getDatePartOptions(parts, range, rule) {\n const options = [];\n const [min, max, padding] = range;\n for (let i = min; i <= max; i++) {\n if (rule == null || datePartIsValid(i, rule, parts)) {\n options.push({\n value: i,\n label: pad(i, padding)\n });\n }\n }\n return options;\n}\nfunction getDatePartsOptions(parts, rules) {\n return {\n milliseconds: getDatePartOptions(\n parts,\n DATE_PART_RANGES.milliseconds,\n rules.milliseconds\n ),\n seconds: getDatePartOptions(parts, DATE_PART_RANGES.seconds, rules.seconds),\n minutes: getDatePartOptions(parts, DATE_PART_RANGES.minutes, rules.minutes),\n hours: getDatePartOptions(parts, DATE_PART_RANGES.hours, rules.hours)\n };\n}\nfunction getNearestDatePart(parts, range, value, rule) {\n const options = getDatePartOptions(parts, range, rule);\n const result = options.reduce((prev, opt) => {\n if (opt.disabled)\n return prev;\n if (isNaN(prev))\n return opt.value;\n const diffPrev = Math.abs(prev - value);\n const diffCurr = Math.abs(opt.value - value);\n return diffCurr < diffPrev ? opt.value : prev;\n }, NaN);\n return isNaN(result) ? value : result;\n}\nfunction applyRulesForDateParts(dateParts, rules) {\n const result = { ...dateParts };\n Object.entries(rules).forEach(([key, rule]) => {\n const range = DATE_PART_RANGES[key];\n const value = dateParts[key];\n result[key] = getNearestDatePart(\n dateParts,\n range,\n value,\n rule\n );\n });\n return result;\n}\nfunction parseDate(dateString, mask, locale) {\n const masks2 = normalizeMasks(mask, locale);\n return masks2.map((m) => {\n if (typeof m !== \"string\") {\n throw new Error(\"Invalid mask\");\n }\n let str = dateString;\n if (str.length > 1e3) {\n return false;\n }\n let isValid = true;\n const dp = {};\n m.replace(token, ($0) => {\n if (parseFlags[$0]) {\n const info = parseFlags[$0];\n const index2 = str.search(info[0]);\n if (!~index2) {\n isValid = false;\n } else {\n str.replace(info[0], (result) => {\n info[1](dp, result, locale);\n str = str.substr(index2 + result.length);\n return result;\n });\n }\n }\n return parseFlags[$0] ? \"\" : $0.slice(1, $0.length - 1);\n });\n if (!isValid) {\n return false;\n }\n const today = /* @__PURE__ */ new Date();\n if (dp.hours != null) {\n if (dp.isPm === true && +dp.hours !== 12) {\n dp.hours = +dp.hours + 12;\n } else if (dp.isPm === false && +dp.hours === 12) {\n dp.hours = 0;\n }\n }\n let date;\n if (dp.timezoneOffset != null) {\n dp.minutes = +(dp.minutes || 0) - +dp.timezoneOffset;\n date = new Date(\n Date.UTC(\n dp.year || today.getFullYear(),\n dp.month || 0,\n dp.day || 1,\n dp.hours || 0,\n dp.minutes || 0,\n dp.seconds || 0,\n dp.milliseconds || 0\n )\n );\n } else {\n date = locale.getDateFromParts({\n year: dp.year || today.getFullYear(),\n month: (dp.month || 0) + 1,\n day: dp.day || 1,\n hours: dp.hours || 0,\n minutes: dp.minutes || 0,\n seconds: dp.seconds || 0,\n milliseconds: dp.milliseconds || 0\n });\n }\n return date;\n }).find((d) => d) || new Date(dateString);\n}\nfunction formatDate(date, masks2, locale) {\n if (date == null)\n return \"\";\n let mask = normalizeMasks(masks2, locale)[0];\n if (/Z$/.test(mask))\n locale.timezone = \"utc\";\n const literals = [];\n mask = mask.replace(literal, ($0, $1) => {\n literals.push($1);\n return \"??\";\n });\n const dateParts = locale.getDateParts(date);\n mask = mask.replace(\n token,\n ($0) => $0 in formatFlags ? formatFlags[$0](dateParts, locale) : $0.slice(1, $0.length - 1)\n );\n return mask.replace(/\\?\\?/g, () => literals.shift());\n}\nlet attrKey = 0;\nclass Attribute {\n constructor(config, theme, locale) {\n __publicField(this, \"key\", \"\");\n __publicField(this, \"hashcode\", \"\");\n __publicField(this, \"highlight\", null);\n __publicField(this, \"content\", null);\n __publicField(this, \"dot\", null);\n __publicField(this, \"bar\", null);\n __publicField(this, \"event\", null);\n __publicField(this, \"popover\", null);\n __publicField(this, \"customData\", null);\n __publicField(this, \"ranges\");\n __publicField(this, \"hasRanges\", false);\n __publicField(this, \"order\", 0);\n __publicField(this, \"pinPage\", false);\n __publicField(this, \"maxRepeatSpan\", 0);\n __publicField(this, \"locale\");\n const { dates } = Object.assign(\n this,\n { hashcode: \"\", order: 0, pinPage: false },\n config\n );\n this.key || (this.key = ++attrKey);\n this.locale = locale;\n theme.normalizeGlyphs(this);\n this.ranges = locale.ranges(dates ?? []);\n this.hasRanges = !!arrayHasItems(this.ranges);\n this.maxRepeatSpan = this.ranges.filter((r) => r.hasRepeat).map((r) => r.daySpan).reduce((res, curr) => Math.max(res, curr), 0);\n }\n intersectsRange({ start, end }) {\n if (start == null || end == null)\n return false;\n const simpleRanges = this.ranges.filter((r) => !r.hasRepeat);\n for (const range of simpleRanges) {\n if (range.intersectsDayRange(start.dayIndex, end.dayIndex)) {\n return true;\n }\n }\n const repeatRanges = this.ranges.filter((r) => r.hasRepeat);\n if (!repeatRanges.length)\n return false;\n let day = start;\n if (this.maxRepeatSpan > 1) {\n day = this.locale.getDateParts(addDays(day.date, -this.maxRepeatSpan));\n }\n while (day.dayIndex <= end.dayIndex) {\n for (const range of repeatRanges) {\n if (range.startsOnDay(day))\n return true;\n }\n day = this.locale.getDateParts(addDays(day.date, 1));\n }\n return false;\n }\n}\nfunction showPopover(opts) {\n if (document) {\n document.dispatchEvent(\n new CustomEvent(\"show-popover\", {\n detail: opts\n })\n );\n }\n}\nfunction hidePopover(opts) {\n if (document) {\n document.dispatchEvent(\n new CustomEvent(\"hide-popover\", {\n detail: opts\n })\n );\n }\n}\nfunction togglePopover(opts) {\n if (document) {\n document.dispatchEvent(\n new CustomEvent(\"toggle-popover\", {\n detail: opts\n })\n );\n }\n}\nfunction getPopoverEventHandlers(opts) {\n const { visibility } = opts;\n const click = visibility === \"click\";\n const hover = visibility === \"hover\";\n const hoverFocus = visibility === \"hover-focus\";\n const focus = visibility === \"focus\";\n opts.autoHide = !click;\n let hovered = false;\n let focused = false;\n const clickHandler = (e) => {\n if (click) {\n togglePopover({\n ...opts,\n target: opts.target || e.currentTarget\n });\n e.stopPropagation();\n }\n };\n const mouseMoveHandler = (e) => {\n if (!hovered) {\n hovered = true;\n if (hover || hoverFocus) {\n showPopover({\n ...opts,\n target: opts.target || e.currentTarget\n });\n }\n }\n };\n const mouseLeaveHandler = () => {\n if (hovered) {\n hovered = false;\n if (hover || hoverFocus && !focused) {\n hidePopover(opts);\n }\n }\n };\n const focusInHandler = (e) => {\n if (!focused) {\n focused = true;\n if (focus || hoverFocus) {\n showPopover({\n ...opts,\n target: opts.target || e.currentTarget\n });\n }\n }\n };\n const focusOutHandler = (e) => {\n if (focused && !elementContains(e.currentTarget, e.relatedTarget)) {\n focused = false;\n if (focus || hoverFocus && !hovered) {\n hidePopover(opts);\n }\n }\n };\n const handlers = {};\n switch (opts.visibility) {\n case \"click\":\n handlers.click = clickHandler;\n break;\n case \"hover\":\n handlers.mousemove = mouseMoveHandler;\n handlers.mouseleave = mouseLeaveHandler;\n break;\n case \"focus\":\n handlers.focusin = focusInHandler;\n handlers.focusout = focusOutHandler;\n break;\n case \"hover-focus\":\n handlers.mousemove = mouseMoveHandler;\n handlers.mouseleave = mouseLeaveHandler;\n handlers.focusin = focusInHandler;\n handlers.focusout = focusOutHandler;\n break;\n }\n return handlers;\n}\nconst removeHandlers = (target) => {\n const el = resolveEl(target);\n if (el == null)\n return;\n const handlers = el.popoverHandlers;\n if (!handlers || !handlers.length)\n return;\n handlers.forEach((handler) => handler());\n delete el.popoverHandlers;\n};\nconst addHandlers = (target, opts) => {\n const el = resolveEl(target);\n if (el == null)\n return;\n const remove = [];\n const handlers = getPopoverEventHandlers(opts);\n Object.entries(handlers).forEach(([event, handler]) => {\n remove.push(on(el, event, handler));\n });\n el.popoverHandlers = remove;\n};\nconst popoverDirective = {\n mounted(el, binding) {\n const { value } = binding;\n if (!value)\n return;\n addHandlers(el, value);\n },\n updated(el, binding) {\n const { oldValue, value } = binding;\n const oldVisibility = oldValue == null ? void 0 : oldValue.visibility;\n const newVisibility = value == null ? void 0 : value.visibility;\n if (oldVisibility !== newVisibility) {\n if (oldVisibility) {\n removeHandlers(el);\n if (!newVisibility)\n hidePopover(oldValue);\n }\n if (newVisibility) {\n addHandlers(el, value);\n }\n }\n },\n unmounted(el) {\n removeHandlers(el);\n }\n};\nconst addHorizontalSwipeHandler = (element, handler, {\n maxSwipeTime: maxSwipeTime2,\n minHorizontalSwipeDistance: minHorizontalSwipeDistance2,\n maxVerticalSwipeDistance: maxVerticalSwipeDistance2\n}) => {\n if (!element || !element.addEventListener || !isFunction_1(handler)) {\n return null;\n }\n let startX = 0;\n let startY = 0;\n let startTime = null;\n let isSwiping = false;\n function touchStart(e) {\n const t = e.changedTouches[0];\n startX = t.screenX;\n startY = t.screenY;\n startTime = (/* @__PURE__ */ new Date()).getTime();\n isSwiping = true;\n }\n function touchEnd(e) {\n if (!isSwiping || !startTime)\n return;\n isSwiping = false;\n const t = e.changedTouches[0];\n const deltaX = t.screenX - startX;\n const deltaY = t.screenY - startY;\n const deltaTime = (/* @__PURE__ */ new Date()).getTime() - startTime;\n if (deltaTime < maxSwipeTime2) {\n if (Math.abs(deltaX) >= minHorizontalSwipeDistance2 && Math.abs(deltaY) <= maxVerticalSwipeDistance2) {\n const arg = { toLeft: false, toRight: false };\n if (deltaX < 0) {\n arg.toLeft = true;\n } else {\n arg.toRight = true;\n }\n handler(arg);\n }\n }\n }\n on(element, \"touchstart\", touchStart, { passive: true });\n on(element, \"touchend\", touchEnd, { passive: true });\n return () => {\n off(element, \"touchstart\", touchStart);\n off(element, \"touchend\", touchEnd);\n };\n};\nconst watchSkippers = {};\nconst skipWatcher = (watcher, durationMs = 10) => {\n watchSkippers[watcher] = Date.now() + durationMs;\n};\nconst handleWatcher = (watcher, handler) => {\n if (watcher in watchSkippers) {\n const dateTime = watchSkippers[watcher];\n if (Date.now() < dateTime)\n return;\n delete watchSkippers[watcher];\n }\n handler();\n};\nfunction windowExists() {\n return typeof window !== \"undefined\";\n}\nfunction windowHasFeature(feature) {\n return windowExists() && feature in window;\n}\nfunction useDarkMode(config) {\n const isDark = ref(false);\n const displayMode = computed(() => isDark.value ? \"dark\" : \"light\");\n let mediaQuery;\n let mutationObserver;\n function mqListener(ev) {\n isDark.value = ev.matches;\n }\n function setupSystem() {\n if (windowHasFeature(\"matchMedia\")) {\n mediaQuery = window.matchMedia(\"(prefers-color-scheme: dark)\");\n mediaQuery.addEventListener(\"change\", mqListener);\n isDark.value = mediaQuery.matches;\n }\n }\n function moListener() {\n const { selector = \":root\", darkClass = \"dark\" } = config.value;\n const el = document.querySelector(selector);\n isDark.value = el.classList.contains(darkClass);\n }\n function setupClass(config2) {\n const { selector = \":root\", darkClass = \"dark\" } = config2;\n if (windowExists() && selector && darkClass) {\n const el = document.querySelector(selector);\n if (el) {\n mutationObserver = new MutationObserver(moListener);\n mutationObserver.observe(el, {\n attributes: true,\n attributeFilter: [\"class\"]\n });\n isDark.value = el.classList.contains(darkClass);\n }\n }\n }\n function setup() {\n stopObservers();\n const type = typeof config.value;\n if (type === \"string\" && config.value.toLowerCase() === \"system\") {\n setupSystem();\n } else if (type === \"object\") {\n setupClass(config.value);\n } else {\n isDark.value = !!config.value;\n }\n }\n const stopWatch = watch(() => config.value, () => setup(), {\n immediate: true\n });\n function stopObservers() {\n if (mediaQuery) {\n mediaQuery.removeEventListener(\"change\", mqListener);\n mediaQuery = void 0;\n }\n if (mutationObserver) {\n mutationObserver.disconnect();\n mutationObserver = void 0;\n }\n }\n function cleanup() {\n stopObservers();\n stopWatch();\n }\n onUnmounted(() => cleanup());\n return {\n isDark,\n displayMode,\n cleanup\n };\n}\nconst targetProps = [\"base\", \"start\", \"end\", \"startEnd\"];\nconst displayProps = [\n \"class\",\n \"wrapperClass\",\n \"contentClass\",\n \"style\",\n \"contentStyle\",\n \"color\",\n \"fillMode\"\n];\nconst _defaultProfile = { base: {}, start: {}, end: {} };\nfunction normalizeConfig(color, config, defaultProfile = _defaultProfile) {\n let rootColor = color;\n let root2 = {};\n if (config === true || isString_1(config)) {\n rootColor = isString_1(config) ? config : rootColor;\n root2 = { ...defaultProfile };\n } else if (isObject(config)) {\n if (hasAny(config, targetProps)) {\n root2 = { ...config };\n } else {\n root2 = {\n base: { ...config },\n start: { ...config },\n end: { ...config }\n };\n }\n }\n const result = defaultsDeep_1(\n root2,\n { start: root2.startEnd, end: root2.startEnd },\n defaultProfile\n );\n Object.entries(result).forEach(([targetType, targetConfig]) => {\n let targetColor = rootColor;\n if (targetConfig === true || isString_1(targetConfig)) {\n targetColor = isString_1(targetConfig) ? targetConfig : targetColor;\n result[targetType] = { color: targetColor };\n } else if (isObject(targetConfig)) {\n if (hasAny(targetConfig, displayProps)) {\n result[targetType] = { ...targetConfig };\n } else {\n result[targetType] = {};\n }\n }\n defaultsDeep_1(result[targetType], { color: targetColor });\n });\n return result;\n}\nclass HighlightRenderer {\n constructor() {\n __publicField(this, \"type\", \"highlight\");\n }\n normalizeConfig(color, config) {\n return normalizeConfig(color, config, {\n base: { fillMode: \"light\" },\n start: { fillMode: \"solid\" },\n end: { fillMode: \"solid\" }\n });\n }\n prepareRender(glyphs) {\n glyphs.highlights = [];\n if (!glyphs.content)\n glyphs.content = [];\n }\n render({ data: data2, onStart, onEnd }, glyphs) {\n const { key, highlight } = data2;\n if (!highlight)\n return;\n const { highlights } = glyphs;\n const { base, start, end } = highlight;\n if (onStart && onEnd) {\n highlights.push({\n ...start,\n key,\n wrapperClass: `vc-day-layer vc-day-box-center-center vc-attr vc-${start.color}`,\n class: [`vc-highlight vc-highlight-bg-${start.fillMode}`, start.class],\n contentClass: [\n `vc-attr vc-highlight-content-${start.fillMode} vc-${start.color}`,\n start.contentClass\n ]\n });\n } else if (onStart) {\n highlights.push({\n ...base,\n key: `${key}-base`,\n wrapperClass: `vc-day-layer vc-day-box-right-center vc-attr vc-${base.color}`,\n class: [\n `vc-highlight vc-highlight-base-start vc-highlight-bg-${base.fillMode}`,\n base.class\n ]\n });\n highlights.push({\n ...start,\n key,\n wrapperClass: `vc-day-layer vc-day-box-center-center vc-attr vc-${start.color}`,\n class: [`vc-highlight vc-highlight-bg-${start.fillMode}`, start.class],\n contentClass: [\n `vc-attr vc-highlight-content-${start.fillMode} vc-${start.color}`,\n start.contentClass\n ]\n });\n } else if (onEnd) {\n highlights.push({\n ...base,\n key: `${key}-base`,\n wrapperClass: `vc-day-layer vc-day-box-left-center vc-attr vc-${base.color}`,\n class: [\n `vc-highlight vc-highlight-base-end vc-highlight-bg-${base.fillMode}`,\n base.class\n ]\n });\n highlights.push({\n ...end,\n key,\n wrapperClass: `vc-day-layer vc-day-box-center-center vc-attr vc-${end.color}`,\n class: [`vc-highlight vc-highlight-bg-${end.fillMode}`, end.class],\n contentClass: [\n `vc-attr vc-highlight-content-${end.fillMode} vc-${end.color}`,\n end.contentClass\n ]\n });\n } else {\n highlights.push({\n ...base,\n key: `${key}-middle`,\n wrapperClass: `vc-day-layer vc-day-box-center-center vc-attr vc-${base.color}`,\n class: [\n `vc-highlight vc-highlight-base-middle vc-highlight-bg-${base.fillMode}`,\n base.class\n ],\n contentClass: [\n `vc-attr vc-highlight-content-${base.fillMode} vc-${base.color}`,\n base.contentClass\n ]\n });\n }\n }\n}\nclass BaseRenderer {\n constructor(type, collectionType) {\n __publicField(this, \"type\", \"\");\n __publicField(this, \"collectionType\", \"\");\n this.type = type;\n this.collectionType = collectionType;\n }\n normalizeConfig(color, config) {\n return normalizeConfig(color, config);\n }\n prepareRender(glyphs) {\n glyphs[this.collectionType] = [];\n }\n render({ data: data2, onStart, onEnd }, glyphs) {\n const { key } = data2;\n const item = data2[this.type];\n if (!key || !item) {\n return;\n }\n const collection = glyphs[this.collectionType];\n const { base, start, end } = item;\n if (onStart) {\n collection.push({\n ...start,\n key,\n class: [\n `vc-${this.type} vc-${this.type}-start vc-${start.color} vc-attr`,\n start.class\n ]\n });\n } else if (onEnd) {\n collection.push({\n ...end,\n key,\n class: [\n `vc-${this.type} vc-${this.type}-end vc-${end.color} vc-attr`,\n end.class\n ]\n });\n } else {\n collection.push({\n ...base,\n key,\n class: [\n `vc-${this.type} vc-${this.type}-base vc-${base.color} vc-attr`,\n base.class\n ]\n });\n }\n }\n}\nclass ContentRenderer extends BaseRenderer {\n constructor() {\n super(\"content\", \"content\");\n }\n normalizeConfig(_, config) {\n return normalizeConfig(\"base\", config);\n }\n}\nclass DotRenderer extends BaseRenderer {\n constructor() {\n super(\"dot\", \"dots\");\n }\n}\nclass BarRenderer extends BaseRenderer {\n constructor() {\n super(\"bar\", \"bars\");\n }\n}\nclass Theme {\n constructor(color) {\n __publicField(this, \"color\");\n __publicField(this, \"renderers\", [\n new ContentRenderer(),\n new HighlightRenderer(),\n new DotRenderer(),\n new BarRenderer()\n ]);\n this.color = color;\n }\n normalizeGlyphs(attr) {\n this.renderers.forEach((renderer) => {\n const type = renderer.type;\n if (attr[type] != null) {\n attr[type] = renderer.normalizeConfig(this.color, attr[type]);\n }\n });\n }\n prepareRender(glyphs = {}) {\n this.renderers.forEach((renderer) => {\n renderer.prepareRender(glyphs);\n });\n return glyphs;\n }\n render(cell, glyphs) {\n this.renderers.forEach((renderer) => {\n renderer.render(cell, glyphs);\n });\n }\n}\nconst contextKey$4 = Symbol(\"__vc_base_context__\");\nconst propsDef$2 = {\n color: {\n type: String,\n default: () => getDefault(\"color\")\n },\n isDark: {\n type: [Boolean, String, Object],\n default: () => getDefault(\"isDark\")\n },\n firstDayOfWeek: Number,\n masks: Object,\n locale: [String, Object],\n timezone: String,\n minDate: null,\n maxDate: null,\n disabledDates: null\n};\nfunction createBase(props) {\n const color = computed(() => props.color ?? \"\");\n const isDark = computed(() => props.isDark ?? false);\n const { displayMode } = useDarkMode(isDark);\n const theme = computed(() => new Theme(color.value));\n const locale = computed(() => {\n if (props.locale instanceof Locale)\n return props.locale;\n const config = isObject(props.locale) ? props.locale : {\n id: props.locale,\n firstDayOfWeek: props.firstDayOfWeek,\n masks: props.masks\n };\n return new Locale(config, props.timezone);\n });\n const masks2 = computed(() => locale.value.masks);\n const minDate = computed(() => props.minDate);\n const maxDate = computed(() => props.maxDate);\n const disabledDates = computed(() => {\n const dates = props.disabledDates ? [...props.disabledDates] : [];\n if (minDate.value != null) {\n dates.push({\n start: null,\n end: addDays(locale.value.toDate(minDate.value), -1)\n });\n }\n if (maxDate.value != null) {\n dates.push({\n start: addDays(locale.value.toDate(maxDate.value), 1),\n end: null\n });\n }\n return locale.value.ranges(dates);\n });\n const disabledAttribute = computed(() => {\n return new Attribute(\n {\n key: \"disabled\",\n dates: disabledDates.value,\n order: 100\n },\n theme.value,\n locale.value\n );\n });\n const context = {\n color,\n isDark,\n displayMode,\n theme,\n locale,\n masks: masks2,\n minDate,\n maxDate,\n disabledDates,\n disabledAttribute\n };\n provide(contextKey$4, context);\n return context;\n}\nfunction useOrCreateBase(props) {\n return inject(contextKey$4, () => createBase(props), true);\n}\nfunction contextKey$3(slotKey) {\n return `__vc_slot_${slotKey}__`;\n}\nfunction provideSlots(slots, remap = {}) {\n Object.keys(slots).forEach((slotKey) => {\n provide(contextKey$3(remap[slotKey] ?? slotKey), slots[slotKey]);\n });\n}\nfunction useSlot(slotKey) {\n return inject(contextKey$3(slotKey), null);\n}\nconst propsDef$1 = {\n ...propsDef$2,\n view: {\n type: String,\n default: \"monthly\",\n validator(value) {\n return [\"daily\", \"weekly\", \"monthly\"].includes(value);\n }\n },\n rows: {\n type: Number,\n default: 1\n },\n columns: {\n type: Number,\n default: 1\n },\n step: Number,\n titlePosition: {\n type: String,\n default: () => getDefault(\"titlePosition\")\n },\n navVisibility: {\n type: String,\n default: () => getDefault(\"navVisibility\")\n },\n showWeeknumbers: [Boolean, String],\n showIsoWeeknumbers: [Boolean, String],\n expanded: Boolean,\n borderless: Boolean,\n transparent: Boolean,\n initialPage: Object,\n initialPagePosition: { type: Number, default: 1 },\n minPage: Object,\n maxPage: Object,\n transition: String,\n attributes: Array,\n trimWeeks: Boolean,\n disablePageSwipe: Boolean\n};\nconst emitsDef = [\n \"dayclick\",\n \"daymouseenter\",\n \"daymouseleave\",\n \"dayfocusin\",\n \"dayfocusout\",\n \"daykeydown\",\n \"weeknumberclick\",\n \"transition-start\",\n \"transition-end\",\n \"did-move\",\n \"update:view\",\n \"update:pages\"\n];\nconst contextKey$2 = Symbol(\"__vc_calendar_context__\");\nfunction createCalendar(props, { slots, emit }) {\n const containerRef = ref(null);\n const focusedDay = ref(null);\n const focusableDay = ref((/* @__PURE__ */ new Date()).getDate());\n const inTransition = ref(false);\n const navPopoverId = ref(Symbol());\n const dayPopoverId = ref(Symbol());\n const _view = ref(props.view);\n const _pages = ref([]);\n const transitionName = ref(\"\");\n let transitionPromise = null;\n let removeHandlers2 = null;\n provideSlots(slots);\n const {\n theme,\n color,\n displayMode,\n locale,\n masks: masks2,\n minDate,\n maxDate,\n disabledAttribute,\n disabledDates\n } = useOrCreateBase(props);\n const count = computed(() => props.rows * props.columns);\n const step = computed(() => props.step || count.value);\n const firstPage = computed(() => head_1(_pages.value) ?? null);\n const lastPage = computed(() => last_1(_pages.value) ?? null);\n const minPage = computed(\n () => props.minPage || (minDate.value ? getDateAddress(minDate.value) : null)\n );\n const maxPage = computed(\n () => props.maxPage || (maxDate.value ? getDateAddress(maxDate.value) : null)\n );\n const navVisibility = computed(() => props.navVisibility);\n const showWeeknumbers = computed(() => !!props.showWeeknumbers);\n const showIsoWeeknumbers = computed(() => !!props.showIsoWeeknumbers);\n const isMonthly = computed(() => _view.value === \"monthly\");\n const isWeekly = computed(() => _view.value === \"weekly\");\n const isDaily = computed(() => _view.value === \"daily\");\n const onTransitionBeforeEnter = () => {\n inTransition.value = true;\n emit(\"transition-start\");\n };\n const onTransitionAfterEnter = () => {\n inTransition.value = false;\n emit(\"transition-end\");\n if (transitionPromise) {\n transitionPromise.resolve(true);\n transitionPromise = null;\n }\n };\n const addPages$1 = (address, count2, view = _view.value) => {\n return addPages(address, count2, view, locale.value);\n };\n const getDateAddress = (date) => {\n return getPageAddressForDate(date, _view.value, locale.value);\n };\n const refreshDisabled = (day) => {\n if (!disabledAttribute.value || !attributeContext.value)\n return;\n day.isDisabled = attributeContext.value.cellExists(\n disabledAttribute.value.key,\n day.dayIndex\n );\n };\n const refreshFocusable = (day) => {\n day.isFocusable = day.inMonth && day.day === focusableDay.value;\n };\n const forDays = (pages, fn) => {\n for (const page of pages) {\n for (const day of page.days) {\n if (fn(day) === false)\n return;\n }\n }\n };\n const days = computed(\n () => _pages.value.reduce((result, page) => {\n result.push(...page.viewDays);\n return result;\n }, [])\n );\n const attributes = computed(() => {\n const result = [];\n (props.attributes || []).forEach((attr, i) => {\n if (!attr || !attr.dates)\n return;\n result.push(\n new Attribute(\n {\n ...attr,\n order: attr.order || 0\n },\n theme.value,\n locale.value\n )\n );\n });\n if (disabledAttribute.value) {\n result.push(disabledAttribute.value);\n }\n return result;\n });\n const hasAttributes = computed(() => arrayHasItems(attributes.value));\n const attributeContext = computed(() => {\n const ctx = new DateRangeContext();\n attributes.value.forEach((attr) => {\n attr.ranges.forEach((range) => {\n ctx.render(attr, range, days.value);\n });\n });\n return ctx;\n });\n const dayCells = computed(() => {\n return days.value.reduce((result, day) => {\n result[day.dayIndex] = { day, cells: [] };\n result[day.dayIndex].cells.push(...attributeContext.value.getCells(day));\n return result;\n }, {});\n });\n const getWeeknumberPosition = (column, columnFromEnd) => {\n const showWeeknumbers2 = props.showWeeknumbers || props.showIsoWeeknumbers;\n if (showWeeknumbers2 == null)\n return \"\";\n if (isBoolean_1(showWeeknumbers2)) {\n return showWeeknumbers2 ? \"left\" : \"\";\n }\n if (showWeeknumbers2.startsWith(\"right\")) {\n return columnFromEnd > 1 ? \"right\" : showWeeknumbers2;\n }\n return column > 1 ? \"left\" : showWeeknumbers2;\n };\n const getPageForAttributes = () => {\n var _a, _b;\n if (!hasAttributes.value)\n return null;\n const attr = attributes.value.find((attr2) => attr2.pinPage) || attributes.value[0];\n if (!attr || !attr.hasRanges)\n return null;\n const [range] = attr.ranges;\n const date = ((_a = range.start) == null ? void 0 : _a.date) || ((_b = range.end) == null ? void 0 : _b.date);\n return date ? getDateAddress(date) : null;\n };\n const getDefaultInitialPage = () => {\n if (pageIsValid(firstPage.value))\n return firstPage.value;\n const page = getPageForAttributes();\n if (pageIsValid(page))\n return page;\n return getDateAddress(/* @__PURE__ */ new Date());\n };\n const getTargetPageRange = (page, opts = {}) => {\n const { view = _view.value, position = 1, force } = opts;\n const pagesToAdd = position > 0 ? 1 - position : -(count.value + position);\n let fromPage = addPages$1(page, pagesToAdd, view);\n let toPage = addPages$1(fromPage, count.value - 1, view);\n if (!force) {\n if (pageIsBeforePage(fromPage, minPage.value)) {\n fromPage = minPage.value;\n } else if (pageIsAfterPage(toPage, maxPage.value)) {\n fromPage = addPages$1(maxPage.value, 1 - count.value);\n }\n toPage = addPages$1(fromPage, count.value - 1);\n }\n return { fromPage, toPage };\n };\n const getPageTransition = (oldPage, newPage, defaultTransition = \"\") => {\n if (defaultTransition === \"none\" || defaultTransition === \"fade\")\n return defaultTransition;\n if ((oldPage == null ? void 0 : oldPage.view) !== (newPage == null ? void 0 : newPage.view))\n return \"fade\";\n const moveNext2 = pageIsAfterPage(newPage, oldPage);\n const movePrev2 = pageIsBeforePage(newPage, oldPage);\n if (!moveNext2 && !movePrev2) {\n return \"fade\";\n }\n if (defaultTransition === \"slide-v\") {\n return movePrev2 ? \"slide-down\" : \"slide-up\";\n }\n return movePrev2 ? \"slide-right\" : \"slide-left\";\n };\n const refreshPages = (opts = {}) => {\n return new Promise((resolve, reject) => {\n const { position = 1, force = false, transition } = opts;\n const page = pageIsValid(opts.page) ? opts.page : getDefaultInitialPage();\n const { fromPage } = getTargetPageRange(page, {\n position,\n force\n });\n const pages = [];\n for (let i = 0; i < count.value; i++) {\n const newPage = addPages$1(fromPage, i);\n const position2 = i + 1;\n const row = Math.ceil(position2 / props.columns);\n const rowFromEnd = props.rows - row + 1;\n const column = position2 % props.columns || props.columns;\n const columnFromEnd = props.columns - column + 1;\n const weeknumberPosition = getWeeknumberPosition(column, columnFromEnd);\n pages.push(\n locale.value.getPage({\n ...newPage,\n view: _view.value,\n titlePosition: props.titlePosition,\n trimWeeks: props.trimWeeks,\n position: position2,\n row,\n rowFromEnd,\n column,\n columnFromEnd,\n showWeeknumbers: showWeeknumbers.value,\n showIsoWeeknumbers: showIsoWeeknumbers.value,\n weeknumberPosition\n })\n );\n }\n transitionName.value = getPageTransition(\n _pages.value[0],\n pages[0],\n transition\n );\n _pages.value = pages;\n if (transitionName.value && transitionName.value !== \"none\") {\n transitionPromise = {\n resolve,\n reject\n };\n } else {\n resolve(true);\n }\n });\n };\n const targetBy = (pages) => {\n const fromPage = firstPage.value ?? getDateAddress(/* @__PURE__ */ new Date());\n return addPages$1(fromPage, pages);\n };\n const canMove = (target, opts = {}) => {\n const page = pageIsValid(target) ? target : getDateAddress(target);\n Object.assign(\n opts,\n getTargetPageRange(page, {\n ...opts,\n force: true\n })\n );\n const pagesInRange = pageRangeToArray(\n opts.fromPage,\n opts.toPage,\n _view.value,\n locale.value\n ).map((p) => pageIsBetweenPages(p, minPage.value, maxPage.value));\n return pagesInRange.some((val) => val);\n };\n const canMoveBy = (pages, opts = {}) => {\n return canMove(targetBy(pages), opts);\n };\n const canMovePrev = computed(() => canMoveBy(-step.value));\n const canMoveNext = computed(() => canMoveBy(step.value));\n const move = async (target, opts = {}) => {\n if (!opts.force && !canMove(target, opts))\n return false;\n if (opts.fromPage && !pageIsEqualToPage(opts.fromPage, firstPage.value)) {\n hidePopover({ id: navPopoverId.value, hideDelay: 0 });\n if (opts.view) {\n skipWatcher(\"view\", 10);\n _view.value = opts.view;\n }\n await refreshPages({\n ...opts,\n page: opts.fromPage,\n position: 1,\n force: true\n });\n emit(\"did-move\", _pages.value);\n }\n return true;\n };\n const moveBy = (pages, opts = {}) => {\n return move(targetBy(pages), opts);\n };\n const movePrev = () => {\n return moveBy(-step.value);\n };\n const moveNext = () => {\n return moveBy(step.value);\n };\n const tryFocusDate = (date) => {\n const inMonth = isMonthly.value ? \".in-month\" : \"\";\n const daySelector = `.id-${locale.value.getDayId(date)}${inMonth}`;\n const selector = `${daySelector}.vc-focusable, ${daySelector} .vc-focusable`;\n const el = containerRef.value;\n if (el) {\n const focusableEl = el.querySelector(selector);\n if (focusableEl) {\n focusableEl.focus();\n return true;\n }\n }\n return false;\n };\n const focusDate = async (date, opts = {}) => {\n if (tryFocusDate(date))\n return true;\n await move(date, opts);\n return tryFocusDate(date);\n };\n const onDayClick = (day, event) => {\n focusableDay.value = day.day;\n emit(\"dayclick\", day, event);\n };\n const onDayMouseenter = (day, event) => {\n emit(\"daymouseenter\", day, event);\n };\n const onDayMouseleave = (day, event) => {\n emit(\"daymouseleave\", day, event);\n };\n const onDayFocusin = (day, event) => {\n focusableDay.value = day.day;\n focusedDay.value = day;\n day.isFocused = true;\n emit(\"dayfocusin\", day, event);\n };\n const onDayFocusout = (day, event) => {\n focusedDay.value = null;\n day.isFocused = false;\n emit(\"dayfocusout\", day, event);\n };\n const onDayKeydown = (day, event) => {\n emit(\"daykeydown\", day, event);\n const date = day.noonDate;\n let newDate = null;\n switch (event.key) {\n case \"ArrowLeft\": {\n newDate = addDays(date, -1);\n break;\n }\n case \"ArrowRight\": {\n newDate = addDays(date, 1);\n break;\n }\n case \"ArrowUp\": {\n newDate = addDays(date, -7);\n break;\n }\n case \"ArrowDown\": {\n newDate = addDays(date, 7);\n break;\n }\n case \"Home\": {\n newDate = addDays(date, -day.weekdayPosition + 1);\n break;\n }\n case \"End\": {\n newDate = addDays(date, day.weekdayPositionFromEnd);\n break;\n }\n case \"PageUp\": {\n if (event.altKey) {\n newDate = addYears(date, -1);\n } else {\n newDate = addMonths(date, -1);\n }\n break;\n }\n case \"PageDown\": {\n if (event.altKey) {\n newDate = addYears(date, 1);\n } else {\n newDate = addMonths(date, 1);\n }\n break;\n }\n }\n if (newDate) {\n event.preventDefault();\n focusDate(newDate).catch();\n }\n };\n const onKeydown = (event) => {\n const day = focusedDay.value;\n if (day != null) {\n onDayKeydown(day, event);\n }\n };\n const onWeeknumberClick = (week, event) => {\n emit(\"weeknumberclick\", week, event);\n };\n refreshPages({\n page: props.initialPage,\n position: props.initialPagePosition\n });\n onMounted(() => {\n if (!props.disablePageSwipe && containerRef.value) {\n removeHandlers2 = addHorizontalSwipeHandler(\n containerRef.value,\n ({ toLeft = false, toRight = false }) => {\n if (toLeft) {\n moveNext();\n } else if (toRight) {\n movePrev();\n }\n },\n getDefault(\"touch\")\n );\n }\n });\n onUnmounted(() => {\n _pages.value = [];\n if (removeHandlers2)\n removeHandlers2();\n });\n watch(\n () => locale.value,\n () => {\n refreshPages();\n }\n );\n watch(\n () => count.value,\n () => refreshPages()\n );\n watch(\n () => props.view,\n () => _view.value = props.view\n );\n watch(\n () => _view.value,\n () => {\n handleWatcher(\"view\", () => {\n refreshPages();\n });\n emit(\"update:view\", _view.value);\n }\n );\n watch(\n () => focusableDay.value,\n () => {\n forDays(_pages.value, (day) => refreshFocusable(day));\n }\n );\n watchEffect(() => {\n emit(\"update:pages\", _pages.value);\n forDays(_pages.value, (day) => {\n refreshDisabled(day);\n refreshFocusable(day);\n });\n });\n const context = {\n emit,\n containerRef,\n focusedDay,\n inTransition,\n navPopoverId,\n dayPopoverId,\n view: _view,\n pages: _pages,\n transitionName,\n theme,\n color,\n displayMode,\n locale,\n masks: masks2,\n attributes,\n disabledAttribute,\n disabledDates,\n attributeContext,\n days,\n dayCells,\n count,\n step,\n firstPage,\n lastPage,\n canMovePrev,\n canMoveNext,\n minPage,\n maxPage,\n isMonthly,\n isWeekly,\n isDaily,\n navVisibility,\n showWeeknumbers,\n showIsoWeeknumbers,\n getDateAddress,\n canMove,\n canMoveBy,\n move,\n moveBy,\n movePrev,\n moveNext,\n onTransitionBeforeEnter,\n onTransitionAfterEnter,\n tryFocusDate,\n focusDate,\n onKeydown,\n onDayKeydown,\n onDayClick,\n onDayMouseenter,\n onDayMouseleave,\n onDayFocusin,\n onDayFocusout,\n onWeeknumberClick\n };\n provide(contextKey$2, context);\n return context;\n}\nfunction useCalendar() {\n const context = inject(contextKey$2);\n if (context)\n return context;\n throw new Error(\n \"Calendar context missing. Please verify this component is nested within a valid context provider.\"\n );\n}\nconst _sfc_main$k = defineComponent({\n inheritAttrs: false,\n emits: [\"before-show\", \"after-show\", \"before-hide\", \"after-hide\"],\n props: {\n id: { type: [Number, String, Symbol], required: true },\n showDelay: { type: Number, default: 0 },\n hideDelay: { type: Number, default: 110 },\n boundarySelector: { type: String }\n },\n setup(props, { emit }) {\n let timeout = void 0;\n const popoverRef = ref();\n let resizeObserver = null;\n let popper = null;\n const state2 = reactive({\n isVisible: false,\n target: null,\n data: null,\n transition: \"slide-fade\",\n placement: \"bottom\",\n direction: \"\",\n positionFixed: false,\n modifiers: [],\n isInteractive: true,\n visibility: \"click\",\n isHovered: false,\n isFocused: false,\n autoHide: false,\n force: false\n });\n function updateDirection(placement) {\n if (placement)\n state2.direction = placement.split(\"-\")[0];\n }\n function onPopperUpdate({ placement, options }) {\n updateDirection(placement || (options == null ? void 0 : options.placement));\n }\n const popperOptions = computed(() => {\n return {\n placement: state2.placement,\n strategy: state2.positionFixed ? \"fixed\" : \"absolute\",\n boundary: \"\",\n modifiers: [\n {\n name: \"onUpdate\",\n enabled: true,\n phase: \"afterWrite\",\n fn: onPopperUpdate\n },\n ...state2.modifiers || []\n ],\n onFirstUpdate: onPopperUpdate\n };\n });\n const alignment = computed(() => {\n const isLeftRight = state2.direction === \"left\" || state2.direction === \"right\";\n let alignment2 = \"\";\n if (state2.placement) {\n const parts = state2.placement.split(\"-\");\n if (parts.length > 1)\n alignment2 = parts[1];\n }\n if ([\"start\", \"top\", \"left\"].includes(alignment2)) {\n return isLeftRight ? \"top\" : \"left\";\n }\n if ([\"end\", \"bottom\", \"right\"].includes(alignment2)) {\n return isLeftRight ? \"bottom\" : \"right\";\n }\n return isLeftRight ? \"middle\" : \"center\";\n });\n function destroyPopper() {\n if (popper) {\n popper.destroy();\n popper = null;\n }\n }\n function setupPopper() {\n nextTick(() => {\n const el = resolveEl(state2.target);\n if (!el || !popoverRef.value)\n return;\n if (popper && popper.state.elements.reference !== el) {\n destroyPopper();\n }\n if (!popper) {\n popper = createPopper(\n el,\n popoverRef.value,\n popperOptions.value\n );\n } else {\n popper.update();\n }\n });\n }\n function updateState(newState) {\n Object.assign(state2, omit(newState, \"force\"));\n }\n function setTimer(delay, fn) {\n clearTimeout(timeout);\n if (delay > 0) {\n timeout = setTimeout(fn, delay);\n } else {\n fn();\n }\n }\n function isCurrentTarget(target) {\n if (!target || !popper)\n return false;\n const el = resolveEl(target);\n return el === popper.state.elements.reference;\n }\n async function show(opts = {}) {\n if (state2.force)\n return;\n if (opts.force)\n state2.force = true;\n setTimer(opts.showDelay ?? props.showDelay, () => {\n if (state2.isVisible) {\n state2.force = false;\n }\n updateState({\n ...opts,\n isVisible: true\n });\n setupPopper();\n });\n }\n function hide(opts = {}) {\n if (!popper)\n return;\n if (opts.target && !isCurrentTarget(opts.target))\n return;\n if (state2.force)\n return;\n if (opts.force)\n state2.force = true;\n setTimer(opts.hideDelay ?? props.hideDelay, () => {\n if (!state2.isVisible)\n state2.force = false;\n state2.isVisible = false;\n });\n }\n function toggle(opts = {}) {\n if (opts.target == null)\n return;\n if (state2.isVisible && isCurrentTarget(opts.target)) {\n hide(opts);\n } else {\n show(opts);\n }\n }\n function onDocumentClick(e) {\n if (!popper)\n return;\n const popperRef = popper.state.elements.reference;\n if (!popoverRef.value || !popperRef) {\n return;\n }\n const target = e.target;\n if (elementContains(popoverRef.value, target) || elementContains(popperRef, target)) {\n return;\n }\n hide({ force: true });\n }\n function onDocumentKeydown(e) {\n if (e.key === \"Esc\" || e.key === \"Escape\") {\n hide();\n }\n }\n function onDocumentShowPopover({ detail }) {\n if (!detail.id || detail.id !== props.id)\n return;\n show(detail);\n }\n function onDocumentHidePopover({ detail }) {\n if (!detail.id || detail.id !== props.id)\n return;\n hide(detail);\n }\n function onDocumentTogglePopover({ detail }) {\n if (!detail.id || detail.id !== props.id)\n return;\n toggle(detail);\n }\n function addEvents() {\n on(document, \"keydown\", onDocumentKeydown);\n on(document, \"click\", onDocumentClick);\n on(document, \"show-popover\", onDocumentShowPopover);\n on(document, \"hide-popover\", onDocumentHidePopover);\n on(document, \"toggle-popover\", onDocumentTogglePopover);\n }\n function removeEvents() {\n off(document, \"keydown\", onDocumentKeydown);\n off(document, \"click\", onDocumentClick);\n off(document, \"show-popover\", onDocumentShowPopover);\n off(document, \"hide-popover\", onDocumentHidePopover);\n off(document, \"toggle-popover\", onDocumentTogglePopover);\n }\n function beforeEnter(el) {\n emit(\"before-show\", el);\n }\n function afterEnter(el) {\n state2.force = false;\n emit(\"after-show\", el);\n }\n function beforeLeave(el) {\n emit(\"before-hide\", el);\n }\n function afterLeave(el) {\n state2.force = false;\n destroyPopper();\n emit(\"after-hide\", el);\n }\n function onClick(e) {\n e.stopPropagation();\n }\n function onMouseOver() {\n state2.isHovered = true;\n if (state2.isInteractive && [\"hover\", \"hover-focus\"].includes(state2.visibility)) {\n show();\n }\n }\n function onMouseLeave() {\n state2.isHovered = false;\n if (!popper)\n return;\n const popperRef = popper.state.elements.reference;\n if (state2.autoHide && !state2.isFocused && (!popperRef || popperRef !== document.activeElement) && [\"hover\", \"hover-focus\"].includes(state2.visibility)) {\n hide();\n }\n }\n function onFocusIn() {\n state2.isFocused = true;\n if (state2.isInteractive && [\"focus\", \"hover-focus\"].includes(state2.visibility)) {\n show();\n }\n }\n function onFocusOut(e) {\n if ([\"focus\", \"hover-focus\"].includes(state2.visibility) && (!e.relatedTarget || !elementContains(popoverRef.value, e.relatedTarget))) {\n state2.isFocused = false;\n if (!state2.isHovered && state2.autoHide)\n hide();\n }\n }\n function cleanupRO() {\n if (resizeObserver != null) {\n resizeObserver.disconnect();\n resizeObserver = null;\n }\n }\n watch(\n () => popoverRef.value,\n (val) => {\n cleanupRO();\n if (!val)\n return;\n resizeObserver = new ResizeObserver(() => {\n if (popper)\n popper.update();\n });\n resizeObserver.observe(val);\n }\n );\n watch(() => state2.placement, updateDirection, {\n immediate: true\n });\n onMounted(() => {\n addEvents();\n });\n onUnmounted(() => {\n destroyPopper();\n cleanupRO();\n removeEvents();\n });\n return {\n ...toRefs(state2),\n popoverRef,\n alignment,\n hide,\n setupPopper,\n beforeEnter,\n afterEnter,\n beforeLeave,\n afterLeave,\n onClick,\n onMouseOver,\n onMouseLeave,\n onFocusIn,\n onFocusOut\n };\n }\n});\nconst Popover_vue_vue_type_style_index_0_lang = \"\";\nconst _export_sfc = (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n};\nfunction _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"vc-popover-content-wrapper\", { \"is-interactive\": _ctx.isInteractive }]),\n ref: \"popoverRef\",\n onClick: _cache[0] || (_cache[0] = (...args) => _ctx.onClick && _ctx.onClick(...args)),\n onMouseover: _cache[1] || (_cache[1] = (...args) => _ctx.onMouseOver && _ctx.onMouseOver(...args)),\n onMouseleave: _cache[2] || (_cache[2] = (...args) => _ctx.onMouseLeave && _ctx.onMouseLeave(...args)),\n onFocusin: _cache[3] || (_cache[3] = (...args) => _ctx.onFocusIn && _ctx.onFocusIn(...args)),\n onFocusout: _cache[4] || (_cache[4] = (...args) => _ctx.onFocusOut && _ctx.onFocusOut(...args))\n }, [\n createVNode(Transition, {\n name: `vc-${_ctx.transition}`,\n appear: \"\",\n onBeforeEnter: _ctx.beforeEnter,\n onAfterEnter: _ctx.afterEnter,\n onBeforeLeave: _ctx.beforeLeave,\n onAfterLeave: _ctx.afterLeave\n }, {\n default: withCtx(() => [\n _ctx.isVisible ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n tabindex: \"-1\",\n class: `vc-popover-content direction-${_ctx.direction}`\n }, _ctx.$attrs), [\n renderSlot(_ctx.$slots, \"default\", {\n direction: _ctx.direction,\n alignment: _ctx.alignment,\n data: _ctx.data,\n hide: _ctx.hide\n }, () => [\n createTextVNode(toDisplayString(_ctx.data), 1)\n ]),\n createElementVNode(\"span\", {\n class: normalizeClass([\n \"vc-popover-caret\",\n `direction-${_ctx.direction}`,\n `align-${_ctx.alignment}`\n ])\n }, null, 2)\n ], 16)) : createCommentVNode(\"\", true)\n ]),\n _: 3\n }, 8, [\"name\", \"onBeforeEnter\", \"onAfterEnter\", \"onBeforeLeave\", \"onAfterLeave\"])\n ], 34);\n}\nconst Popover = /* @__PURE__ */ _export_sfc(_sfc_main$k, [[\"render\", _sfc_render$7]]);\nconst _hoisted_1$c = { class: \"vc-day-popover-row\" };\nconst _hoisted_2$b = {\n key: 0,\n class: \"vc-day-popover-row-indicator\"\n};\nconst _hoisted_3$9 = { class: \"vc-day-popover-row-label\" };\nconst _sfc_main$j = /* @__PURE__ */ defineComponent({\n __name: \"PopoverRow\",\n props: {\n attribute: null\n },\n setup(__props) {\n const props = __props;\n const indicator = computed(() => {\n const { content, highlight, dot, bar, popover } = props.attribute;\n if (popover && popover.hideIndicator)\n return null;\n if (content) {\n return {\n class: `vc-bar vc-day-popover-row-bar vc-attr vc-${content.base.color}`\n };\n }\n if (highlight) {\n return {\n class: `vc-highlight-bg-solid vc-day-popover-row-highlight vc-attr vc-${highlight.base.color}`\n };\n }\n if (dot) {\n return {\n class: `vc-dot vc-attr vc-${dot.base.color}`\n };\n }\n if (bar) {\n return {\n class: `vc-bar vc-day-popover-row-bar vc-attr vc-${bar.base.color}`\n };\n }\n return null;\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", _hoisted_1$c, [\n unref(indicator) ? (openBlock(), createElementBlock(\"div\", _hoisted_2$b, [\n createElementVNode(\"span\", {\n class: normalizeClass(unref(indicator).class)\n }, null, 2)\n ])) : createCommentVNode(\"\", true),\n createElementVNode(\"div\", _hoisted_3$9, [\n renderSlot(_ctx.$slots, \"default\", {}, () => [\n createTextVNode(toDisplayString(__props.attribute.popover ? __props.attribute.popover.label : \"No content provided\"), 1)\n ])\n ])\n ]);\n };\n }\n});\nconst PopoverRow_vue_vue_type_style_index_0_lang = \"\";\nconst __default__$3 = {\n inheritAttrs: false\n};\nconst _sfc_main$i = /* @__PURE__ */ defineComponent({\n ...__default__$3,\n __name: \"CalendarSlot\",\n props: {\n name: null\n },\n setup(__props) {\n const props = __props;\n const slot = useSlot(props.name);\n return (_ctx, _cache) => {\n return unref(slot) ? (openBlock(), createBlock(resolveDynamicComponent(unref(slot)), normalizeProps(mergeProps({ key: 0 }, _ctx.$attrs)), null, 16)) : renderSlot(_ctx.$slots, \"default\", { key: 1 });\n };\n }\n});\nconst _hoisted_1$b = { class: \"vc-day-popover-container\" };\nconst _hoisted_2$a = {\n key: 0,\n class: \"vc-day-popover-header\"\n};\nconst _sfc_main$h = /* @__PURE__ */ defineComponent({\n __name: \"CalendarDayPopover\",\n setup(__props) {\n const { dayPopoverId, displayMode, color, masks: masks2, locale } = useCalendar();\n function format(date, mask) {\n return locale.value.formatDate(date, mask);\n }\n function dayTitle(day) {\n return locale.value.formatDate(day.date, masks2.value.dayPopover);\n }\n return (_ctx, _cache) => {\n return openBlock(), createBlock(Popover, {\n id: unref(dayPopoverId),\n class: normalizeClass([`vc-${unref(color)}`, `vc-${unref(displayMode)}`])\n }, {\n default: withCtx(({ data: { day, attributes }, hide }) => [\n createVNode(_sfc_main$i, {\n name: \"day-popover\",\n day,\n \"day-title\": dayTitle(day),\n attributes,\n format,\n masks: unref(masks2),\n hide\n }, {\n default: withCtx(() => [\n createElementVNode(\"div\", _hoisted_1$b, [\n unref(masks2).dayPopover ? (openBlock(), createElementBlock(\"div\", _hoisted_2$a, toDisplayString(dayTitle(day)), 1)) : createCommentVNode(\"\", true),\n (openBlock(true), createElementBlock(Fragment, null, renderList(attributes, (attribute) => {\n return openBlock(), createBlock(_sfc_main$j, {\n key: attribute.key,\n attribute\n }, null, 8, [\"attribute\"]);\n }), 128))\n ])\n ]),\n _: 2\n }, 1032, [\"day\", \"day-title\", \"attributes\", \"masks\", \"hide\"])\n ]),\n _: 1\n }, 8, [\"id\", \"class\"]);\n };\n }\n});\nconst _sfc_main$g = {};\nconst _hoisted_1$a = {\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n viewBox: \"0 0 24 24\"\n};\nconst _hoisted_2$9 = /* @__PURE__ */ createElementVNode(\"polyline\", { points: \"9 18 15 12 9 6\" }, null, -1);\nconst _hoisted_3$8 = [\n _hoisted_2$9\n];\nfunction _sfc_render$6(_ctx, _cache) {\n return openBlock(), createElementBlock(\"svg\", _hoisted_1$a, _hoisted_3$8);\n}\nconst IconChevronRight = /* @__PURE__ */ _export_sfc(_sfc_main$g, [[\"render\", _sfc_render$6]]);\nconst _sfc_main$f = {};\nconst _hoisted_1$9 = {\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n viewBox: \"0 0 24 24\"\n};\nconst _hoisted_2$8 = /* @__PURE__ */ createElementVNode(\"polyline\", { points: \"15 18 9 12 15 6\" }, null, -1);\nconst _hoisted_3$7 = [\n _hoisted_2$8\n];\nfunction _sfc_render$5(_ctx, _cache) {\n return openBlock(), createElementBlock(\"svg\", _hoisted_1$9, _hoisted_3$7);\n}\nconst IconChevronLeft = /* @__PURE__ */ _export_sfc(_sfc_main$f, [[\"render\", _sfc_render$5]]);\nconst _sfc_main$e = {};\nconst _hoisted_1$8 = {\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n viewBox: \"0 0 24 24\"\n};\nconst _hoisted_2$7 = /* @__PURE__ */ createElementVNode(\"polyline\", { points: \"6 9 12 15 18 9\" }, null, -1);\nconst _hoisted_3$6 = [\n _hoisted_2$7\n];\nfunction _sfc_render$4(_ctx, _cache) {\n return openBlock(), createElementBlock(\"svg\", _hoisted_1$8, _hoisted_3$6);\n}\nconst IconChevronDown = /* @__PURE__ */ _export_sfc(_sfc_main$e, [[\"render\", _sfc_render$4]]);\nconst _sfc_main$d = {};\nconst _hoisted_1$7 = {\n fill: \"none\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n \"stroke-width\": \"2\",\n viewBox: \"0 0 24 24\"\n};\nconst _hoisted_2$6 = /* @__PURE__ */ createElementVNode(\"path\", { d: \"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z\" }, null, -1);\nconst _hoisted_3$5 = [\n _hoisted_2$6\n];\nfunction _sfc_render$3(_ctx, _cache) {\n return openBlock(), createElementBlock(\"svg\", _hoisted_1$7, _hoisted_3$5);\n}\nconst IconClock = /* @__PURE__ */ _export_sfc(_sfc_main$d, [[\"render\", _sfc_render$3]]);\nconst icons = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n IconChevronDown,\n IconChevronLeft,\n IconChevronRight,\n IconClock\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst _sfc_main$c = /* @__PURE__ */ defineComponent({\n __name: \"BaseIcon\",\n props: {\n name: { type: String, required: true },\n width: { type: String },\n height: { type: String },\n size: { type: String, default: \"26\" },\n viewBox: { type: String }\n },\n setup(__props) {\n const props = __props;\n const width = computed(() => props.width || props.size);\n const height = computed(() => props.height || props.size);\n const icon = computed(() => icons[`Icon${props.name}`]);\n return (_ctx, _cache) => {\n return openBlock(), createBlock(resolveDynamicComponent(unref(icon)), {\n width: unref(width),\n height: unref(height),\n class: \"vc-base-icon\"\n }, null, 8, [\"width\", \"height\"]);\n };\n }\n});\nconst BaseIcon_vue_vue_type_style_index_0_lang = \"\";\nconst _hoisted_1$6 = [\"disabled\"];\nconst _hoisted_2$5 = {\n key: 1,\n class: \"vc-title-wrapper\"\n};\nconst _hoisted_3$4 = {\n type: \"button\",\n class: \"vc-title\"\n};\nconst _hoisted_4$3 = [\"disabled\"];\nconst _sfc_main$b = /* @__PURE__ */ defineComponent({\n __name: \"CalendarHeader\",\n props: {\n page: null,\n layout: null,\n isLg: { type: Boolean },\n isXl: { type: Boolean },\n is2xl: { type: Boolean },\n hideTitle: { type: Boolean },\n hideArrows: { type: Boolean }\n },\n setup(__props) {\n const props = __props;\n const {\n navPopoverId,\n navVisibility,\n canMovePrev,\n movePrev,\n canMoveNext,\n moveNext\n } = useCalendar();\n const navPlacement = computed(() => {\n switch (props.page.titlePosition) {\n case \"left\":\n return \"bottom-start\";\n case \"right\":\n return \"bottom-end\";\n default:\n return \"bottom\";\n }\n });\n const navPopoverOptions = computed(() => {\n const { page } = props;\n return {\n id: navPopoverId.value,\n visibility: navVisibility.value,\n placement: navPlacement.value,\n modifiers: [{ name: \"flip\", options: { fallbackPlacements: [\"bottom\"] } }],\n data: { page },\n isInteractive: true\n };\n });\n const titleLeft = computed(() => props.page.titlePosition.includes(\"left\"));\n const titleRight = computed(() => props.page.titlePosition.includes(\"right\"));\n const layout_ = computed(() => {\n if (props.layout)\n return props.layout;\n if (titleLeft.value)\n return \"tu-pn\";\n if (titleRight.value)\n return \"pn-tu\";\n return \"p-tu-n;\";\n });\n const show = computed(() => {\n return {\n prev: layout_.value.includes(\"p\") && !props.hideArrows,\n title: layout_.value.includes(\"t\") && !props.hideTitle,\n next: layout_.value.includes(\"n\") && !props.hideArrows\n };\n });\n const gridStyle = computed(() => {\n const gridTemplateColumns = layout_.value.split(\"\").map((l) => {\n switch (l) {\n case \"p\":\n return \"[prev] auto\";\n case \"n\":\n return \"[next] auto\";\n case \"t\":\n return \"[title] auto\";\n case \"-\":\n return \"1fr\";\n default:\n return \"\";\n }\n }).join(\" \");\n return { gridTemplateColumns };\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"vc-header\", { \"is-lg\": __props.isLg, \"is-xl\": __props.isXl, \"is-2xl\": __props.is2xl }]),\n style: normalizeStyle(unref(gridStyle))\n }, [\n unref(show).prev ? (openBlock(), createElementBlock(\"button\", {\n key: 0,\n type: \"button\",\n class: \"vc-arrow vc-prev vc-focus\",\n disabled: !unref(canMovePrev),\n onClick: _cache[0] || (_cache[0] = //@ts-ignore\n (...args) => unref(movePrev) && unref(movePrev)(...args)),\n onKeydown: _cache[1] || (_cache[1] = withKeys(\n //@ts-ignore\n (...args) => unref(movePrev) && unref(movePrev)(...args),\n [\"space\", \"enter\"]\n ))\n }, [\n createVNode(_sfc_main$i, {\n name: \"header-prev-button\",\n disabled: !unref(canMovePrev)\n }, {\n default: withCtx(() => [\n createVNode(_sfc_main$c, {\n name: \"ChevronLeft\",\n size: \"24\"\n })\n ]),\n _: 1\n }, 8, [\"disabled\"])\n ], 40, _hoisted_1$6)) : createCommentVNode(\"\", true),\n unref(show).title ? (openBlock(), createElementBlock(\"div\", _hoisted_2$5, [\n createVNode(_sfc_main$i, { name: \"header-title-wrapper\" }, {\n default: withCtx(() => [\n withDirectives((openBlock(), createElementBlock(\"button\", _hoisted_3$4, [\n createVNode(_sfc_main$i, {\n name: \"header-title\",\n title: __props.page.title\n }, {\n default: withCtx(() => [\n createElementVNode(\"span\", null, toDisplayString(__props.page.title), 1)\n ]),\n _: 1\n }, 8, [\"title\"])\n ])), [\n [unref(popoverDirective), unref(navPopoverOptions)]\n ])\n ]),\n _: 1\n })\n ])) : createCommentVNode(\"\", true),\n unref(show).next ? (openBlock(), createElementBlock(\"button\", {\n key: 2,\n type: \"button\",\n class: \"vc-arrow vc-next vc-focus\",\n disabled: !unref(canMoveNext),\n onClick: _cache[2] || (_cache[2] = //@ts-ignore\n (...args) => unref(moveNext) && unref(moveNext)(...args)),\n onKeydown: _cache[3] || (_cache[3] = withKeys(\n //@ts-ignore\n (...args) => unref(moveNext) && unref(moveNext)(...args),\n [\"space\", \"enter\"]\n ))\n }, [\n createVNode(_sfc_main$i, {\n name: \"header-next-button\",\n disabled: !unref(canMoveNext)\n }, {\n default: withCtx(() => [\n createVNode(_sfc_main$c, {\n name: \"ChevronRight\",\n size: \"24\"\n })\n ]),\n _: 1\n }, 8, [\"disabled\"])\n ], 40, _hoisted_4$3)) : createCommentVNode(\"\", true)\n ], 6);\n };\n }\n});\nconst CalendarHeader_vue_vue_type_style_index_0_lang = \"\";\nconst contextKey$1 = Symbol(\"__vc_page_context__\");\nfunction createPage(page) {\n const { locale, getDateAddress, canMove } = useCalendar();\n function getMonthItems(year, mask) {\n const { month: thisMonth, year: thisYear } = getDateAddress(/* @__PURE__ */ new Date());\n return getMonthDates().map((d, i) => {\n const month = i + 1;\n return {\n month,\n year,\n id: getPageId(month, year),\n label: locale.value.formatDate(d, mask),\n ariaLabel: locale.value.formatDate(d, \"MMMM\"),\n isActive: month === page.value.month && year === page.value.year,\n isCurrent: month === thisMonth && year === thisYear,\n isDisabled: !canMove(\n { month, year },\n { position: page.value.position }\n )\n };\n });\n }\n function getYearItems(startYear, endYear) {\n const { year: thisYear } = getDateAddress(/* @__PURE__ */ new Date());\n const { position } = page.value;\n const items = [];\n for (let year = startYear; year <= endYear; year += 1) {\n const enabled = [...Array(12).keys()].some(\n (m) => canMove({ month: m + 1, year }, { position })\n );\n items.push({\n year,\n id: year.toString(),\n label: year.toString(),\n ariaLabel: year.toString(),\n isActive: year === page.value.year,\n isCurrent: year === thisYear,\n isDisabled: !enabled\n });\n }\n return items;\n }\n const context = { page, getMonthItems, getYearItems };\n provide(contextKey$1, context);\n return context;\n}\nfunction usePage() {\n const context = inject(contextKey$1);\n if (context)\n return context;\n throw new Error(\n \"Page context missing. Please verify this component is nested within a valid context provider.\"\n );\n}\nconst _hoisted_1$5 = { class: \"vc-nav-header\" };\nconst _hoisted_2$4 = [\"disabled\"];\nconst _hoisted_3$3 = [\"disabled\"];\nconst _hoisted_4$2 = { class: \"vc-nav-items\" };\nconst _hoisted_5$2 = [\"data-id\", \"aria-label\", \"disabled\", \"onClick\", \"onKeydown\"];\nconst _sfc_main$a = /* @__PURE__ */ defineComponent({\n __name: \"CalendarNav\",\n setup(__props) {\n const { masks: masks2, move } = useCalendar();\n const { page, getMonthItems, getYearItems } = usePage();\n const monthMode = ref(true);\n const yearGroupCount = 12;\n const selectedYear = ref(page.value.year);\n const selectedYearGroup = ref(getYearGroupIndex(page.value.year));\n const navContainer = ref(null);\n function focusFirstItem() {\n setTimeout(() => {\n if (navContainer.value == null)\n return;\n const focusableEl = navContainer.value.querySelector(\n \".vc-nav-item:not(:disabled)\"\n );\n if (focusableEl) {\n focusableEl.focus();\n }\n }, 10);\n }\n function getYearGroupIndex(year) {\n return Math.floor(year / yearGroupCount);\n }\n function toggleMode() {\n monthMode.value = !monthMode.value;\n }\n function getStartYear(groupIndex) {\n return groupIndex * yearGroupCount;\n }\n function getEndYear(groupIndex) {\n return yearGroupCount * (groupIndex + 1) - 1;\n }\n function movePrev() {\n if (!prevItemsEnabled.value)\n return;\n if (monthMode.value) {\n movePrevYear();\n }\n movePrevYearGroup();\n }\n function moveNext() {\n if (!nextItemsEnabled.value)\n return;\n if (monthMode.value) {\n moveNextYear();\n }\n moveNextYearGroup();\n }\n function movePrevYear() {\n selectedYear.value--;\n }\n function moveNextYear() {\n selectedYear.value++;\n }\n function movePrevYearGroup() {\n selectedYearGroup.value--;\n }\n function moveNextYearGroup() {\n selectedYearGroup.value++;\n }\n const monthItems = computed(\n () => getMonthItems(selectedYear.value, masks2.value.navMonths).map((item) => ({\n ...item,\n click: () => move(\n { month: item.month, year: item.year },\n { position: page.value.position }\n )\n }))\n );\n const prevMonthItems = computed(\n () => getMonthItems(selectedYear.value - 1, masks2.value.navMonths)\n );\n const prevMonthItemsEnabled = computed(\n () => prevMonthItems.value.some((i) => !i.isDisabled)\n );\n const nextMonthItems = computed(\n () => getMonthItems(selectedYear.value + 1, masks2.value.navMonths)\n );\n const nextMonthItemsEnabled = computed(\n () => nextMonthItems.value.some((i) => !i.isDisabled)\n );\n const yearItems = computed(\n () => getYearItems(\n getStartYear(selectedYearGroup.value),\n getEndYear(selectedYearGroup.value)\n ).map((item) => {\n return {\n ...item,\n click: () => {\n selectedYear.value = item.year;\n monthMode.value = true;\n focusFirstItem();\n }\n };\n })\n );\n const prevYearItems = computed(\n () => getYearItems(\n getStartYear(selectedYearGroup.value - 1),\n getEndYear(selectedYearGroup.value - 1)\n )\n );\n const prevYearItemsEnabled = computed(\n () => prevYearItems.value.some((i) => !i.isDisabled)\n );\n const nextYearItems = computed(\n () => getYearItems(\n getStartYear(selectedYearGroup.value + 1),\n getEndYear(selectedYearGroup.value + 1)\n )\n );\n const nextYearItemsEnabled = computed(\n () => nextYearItems.value.some((i) => !i.isDisabled)\n );\n const activeItems = computed(\n () => monthMode.value ? monthItems.value : yearItems.value\n );\n const prevItemsEnabled = computed(\n () => monthMode.value ? prevMonthItemsEnabled.value : prevYearItemsEnabled.value\n );\n const nextItemsEnabled = computed(\n () => monthMode.value ? nextMonthItemsEnabled.value : nextYearItemsEnabled.value\n );\n const firstYear = computed(() => head_1(yearItems.value.map((i) => i.year)));\n const lastYear = computed(() => last_1(yearItems.value.map((i) => i.year)));\n const title2 = computed(() => {\n return monthMode.value ? selectedYear.value : `${firstYear.value} - ${lastYear.value}`;\n });\n watchEffect(() => {\n selectedYear.value = page.value.year;\n focusFirstItem();\n });\n watch(\n () => selectedYear.value,\n (val) => selectedYearGroup.value = getYearGroupIndex(val)\n );\n onMounted(() => focusFirstItem());\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: \"vc-nav-container\",\n ref_key: \"navContainer\",\n ref: navContainer\n }, [\n createElementVNode(\"div\", _hoisted_1$5, [\n createElementVNode(\"button\", {\n type: \"button\",\n class: \"vc-nav-arrow is-left vc-focus\",\n disabled: !unref(prevItemsEnabled),\n onClick: movePrev,\n onKeydown: _cache[0] || (_cache[0] = (e) => unref(onSpaceOrEnter)(e, movePrev))\n }, [\n createVNode(_sfc_main$i, {\n name: \"nav-prev-button\",\n move: movePrev,\n disabled: !unref(prevItemsEnabled)\n }, {\n default: withCtx(() => [\n createVNode(_sfc_main$c, {\n name: \"ChevronLeft\",\n width: \"22px\",\n height: \"24px\"\n })\n ]),\n _: 1\n }, 8, [\"disabled\"])\n ], 40, _hoisted_2$4),\n createElementVNode(\"button\", {\n type: \"button\",\n class: \"vc-nav-title vc-focus\",\n onClick: toggleMode,\n onKeydown: _cache[1] || (_cache[1] = (e) => unref(onSpaceOrEnter)(e, toggleMode))\n }, toDisplayString(unref(title2)), 33),\n createElementVNode(\"button\", {\n type: \"button\",\n class: \"vc-nav-arrow is-right vc-focus\",\n disabled: !unref(nextItemsEnabled),\n onClick: moveNext,\n onKeydown: _cache[2] || (_cache[2] = (e) => unref(onSpaceOrEnter)(e, moveNext))\n }, [\n createVNode(_sfc_main$i, {\n name: \"nav-next-button\",\n move: moveNext,\n disabled: !unref(nextItemsEnabled)\n }, {\n default: withCtx(() => [\n createVNode(_sfc_main$c, {\n name: \"ChevronRight\",\n width: \"22px\",\n height: \"24px\"\n })\n ]),\n _: 1\n }, 8, [\"disabled\"])\n ], 40, _hoisted_3$3)\n ]),\n createElementVNode(\"div\", _hoisted_4$2, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(unref(activeItems), (item) => {\n return openBlock(), createElementBlock(\"button\", {\n key: item.label,\n type: \"button\",\n \"data-id\": item.id,\n \"aria-label\": item.ariaLabel,\n class: normalizeClass([\"vc-nav-item vc-focus\", [\n item.isActive ? \"is-active\" : item.isCurrent ? \"is-current\" : \"\"\n ]]),\n disabled: item.isDisabled,\n onClick: item.click,\n onKeydown: (e) => unref(onSpaceOrEnter)(e, item.click)\n }, toDisplayString(item.label), 43, _hoisted_5$2);\n }), 128))\n ])\n ], 512);\n };\n }\n});\nconst CalendarNav_vue_vue_type_style_index_0_lang = \"\";\nconst _sfc_main$9 = /* @__PURE__ */ defineComponent({\n __name: \"CalendarPageProvider\",\n props: {\n page: null\n },\n setup(__props) {\n const props = __props;\n createPage(toRef(props, \"page\"));\n return (_ctx, _cache) => {\n return renderSlot(_ctx.$slots, \"default\");\n };\n }\n});\nconst _sfc_main$8 = /* @__PURE__ */ defineComponent({\n __name: \"CalendarNavPopover\",\n setup(__props) {\n const { navPopoverId, color, displayMode } = useCalendar();\n return (_ctx, _cache) => {\n return openBlock(), createBlock(Popover, {\n id: unref(navPopoverId),\n class: normalizeClass([\"vc-nav-popover-container\", `vc-${unref(color)}`, `vc-${unref(displayMode)}`])\n }, {\n default: withCtx(({ data: data2 }) => [\n createVNode(_sfc_main$9, {\n page: data2.page\n }, {\n default: withCtx(() => [\n createVNode(_sfc_main$i, { name: \"nav\" }, {\n default: withCtx(() => [\n createVNode(_sfc_main$a)\n ]),\n _: 1\n })\n ]),\n _: 2\n }, 1032, [\"page\"])\n ]),\n _: 1\n }, 8, [\"id\", \"class\"]);\n };\n }\n});\nconst _sfc_main$7 = defineComponent({\n directives: { popover: popoverDirective },\n components: { CalendarSlot: _sfc_main$i },\n props: {\n day: { type: Object, required: true }\n },\n setup(props) {\n const {\n locale,\n theme,\n attributeContext,\n dayPopoverId,\n onDayClick,\n onDayMouseenter,\n onDayMouseleave,\n onDayFocusin,\n onDayFocusout,\n onDayKeydown\n } = useCalendar();\n const day = computed(() => props.day);\n const attributeCells = computed(() => {\n return attributeContext.value.getCells(day.value);\n });\n const attributes = computed(\n () => attributeCells.value.map((cell) => cell.data)\n );\n const attributedDay = computed(() => {\n return {\n ...day.value,\n attributes: attributes.value,\n attributeCells: attributeCells.value\n };\n });\n function processPopover({ data: attribute }, { popovers: popovers2 }) {\n const { key, customData, popover } = attribute;\n if (!popover)\n return;\n const resolvedPopover = defaults_1(\n {\n key,\n customData,\n attribute\n },\n { ...popover },\n {\n visibility: popover.label ? \"hover\" : \"click\",\n placement: \"bottom\",\n isInteractive: !popover.label\n }\n );\n popovers2.splice(0, 0, resolvedPopover);\n }\n const glyphs = computed(() => {\n const result = {\n ...theme.value.prepareRender({}),\n popovers: []\n };\n attributeCells.value.forEach((cell) => {\n theme.value.render(cell, result);\n processPopover(cell, result);\n });\n return result;\n });\n const highlights = computed(() => glyphs.value.highlights);\n const hasHighlights = computed(() => !!arrayHasItems(highlights.value));\n const content = computed(() => glyphs.value.content);\n const dots = computed(() => glyphs.value.dots);\n const hasDots = computed(() => !!arrayHasItems(dots.value));\n const bars = computed(() => glyphs.value.bars);\n const hasBars = computed(() => !!arrayHasItems(bars.value));\n const popovers = computed(() => glyphs.value.popovers);\n const popoverAttrs = computed(\n () => popovers.value.map((p) => p.attribute)\n );\n const dayContentSlot = useSlot(\"day-content\");\n const dayClasses = computed(() => {\n return [\n \"vc-day\",\n ...day.value.classes,\n { \"vc-day-box-center-center\": !dayContentSlot },\n { \"is-not-in-month\": !props.day.inMonth }\n ];\n });\n const dayContentProps = computed(() => {\n let tabindex;\n if (day.value.isFocusable) {\n tabindex = \"0\";\n } else {\n tabindex = \"-1\";\n }\n const classes = [\n \"vc-day-content vc-focusable vc-focus vc-attr\",\n { \"vc-disabled\": day.value.isDisabled },\n get_1(last_1(highlights.value), \"contentClass\"),\n get_1(last_1(content.value), \"class\") || \"\"\n ];\n const style = {\n ...get_1(last_1(highlights.value), \"contentStyle\"),\n ...get_1(last_1(content.value), \"style\")\n };\n return {\n class: classes,\n style,\n tabindex,\n \"aria-label\": day.value.ariaLabel,\n \"aria-disabled\": day.value.isDisabled ? true : false,\n role: \"button\"\n };\n });\n const dayContentEvents = computed(() => {\n return {\n click(event) {\n onDayClick(attributedDay.value, event);\n },\n mouseenter(event) {\n onDayMouseenter(attributedDay.value, event);\n },\n mouseleave(event) {\n onDayMouseleave(attributedDay.value, event);\n },\n focusin(event) {\n onDayFocusin(attributedDay.value, event);\n },\n focusout(event) {\n onDayFocusout(attributedDay.value, event);\n },\n keydown(event) {\n onDayKeydown(attributedDay.value, event);\n }\n };\n });\n const dayPopover2 = computed(() => {\n if (!arrayHasItems(popovers.value))\n return null;\n return defaults_1(\n {\n id: dayPopoverId.value,\n data: { day, attributes: popoverAttrs.value }\n },\n ...popovers.value\n );\n });\n return {\n attributes,\n attributeCells,\n bars,\n dayClasses,\n dayContentProps,\n dayContentEvents,\n dayPopover: dayPopover2,\n glyphs,\n dots,\n hasDots,\n hasBars,\n highlights,\n hasHighlights,\n locale,\n popovers\n };\n }\n});\nconst CalendarDay_vue_vue_type_style_index_0_lang = \"\";\nconst _hoisted_1$4 = {\n key: 0,\n class: \"vc-highlights vc-day-layer\"\n};\nconst _hoisted_2$3 = {\n key: 1,\n class: \"vc-day-layer vc-day-box-center-bottom\"\n};\nconst _hoisted_3$2 = { class: \"vc-dots\" };\nconst _hoisted_4$1 = {\n key: 2,\n class: \"vc-day-layer vc-day-box-center-bottom\"\n};\nconst _hoisted_5$1 = { class: \"vc-bars\" };\nfunction _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_CalendarSlot = resolveComponent(\"CalendarSlot\");\n const _directive_popover = resolveDirective(\"popover\");\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass(_ctx.dayClasses)\n }, [\n _ctx.hasHighlights ? (openBlock(), createElementBlock(\"div\", _hoisted_1$4, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.highlights, ({ key, wrapperClass, class: bgClass, style }) => {\n return openBlock(), createElementBlock(\"div\", {\n key,\n class: normalizeClass(wrapperClass)\n }, [\n createElementVNode(\"div\", {\n class: normalizeClass(bgClass),\n style: normalizeStyle(style)\n }, null, 6)\n ], 2);\n }), 128))\n ])) : createCommentVNode(\"\", true),\n createVNode(_component_CalendarSlot, {\n name: \"day-content\",\n day: _ctx.day,\n attributes: _ctx.attributes,\n \"attribute-cells\": _ctx.attributeCells,\n dayProps: _ctx.dayContentProps,\n dayEvents: _ctx.dayContentEvents,\n locale: _ctx.locale\n }, {\n default: withCtx(() => [\n withDirectives((openBlock(), createElementBlock(\"div\", mergeProps(_ctx.dayContentProps, toHandlers(_ctx.dayContentEvents, true)), [\n createTextVNode(toDisplayString(_ctx.day.label), 1)\n ], 16)), [\n [_directive_popover, _ctx.dayPopover]\n ])\n ]),\n _: 1\n }, 8, [\"day\", \"attributes\", \"attribute-cells\", \"dayProps\", \"dayEvents\", \"locale\"]),\n _ctx.hasDots ? (openBlock(), createElementBlock(\"div\", _hoisted_2$3, [\n createElementVNode(\"div\", _hoisted_3$2, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.dots, ({ key, class: bgClass, style }) => {\n return openBlock(), createElementBlock(\"span\", {\n key,\n class: normalizeClass(bgClass),\n style: normalizeStyle(style)\n }, null, 6);\n }), 128))\n ])\n ])) : createCommentVNode(\"\", true),\n _ctx.hasBars ? (openBlock(), createElementBlock(\"div\", _hoisted_4$1, [\n createElementVNode(\"div\", _hoisted_5$1, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.bars, ({ key, class: bgClass, style }) => {\n return openBlock(), createElementBlock(\"span\", {\n key,\n class: normalizeClass(bgClass),\n style: normalizeStyle(style)\n }, null, 6);\n }), 128))\n ])\n ])) : createCommentVNode(\"\", true)\n ], 2);\n}\nconst CalendarDay = /* @__PURE__ */ _export_sfc(_sfc_main$7, [[\"render\", _sfc_render$2]]);\nconst _hoisted_1$3 = { class: \"vc-weekdays\" };\nconst _hoisted_2$2 = [\"onClick\"];\nconst __default__$2 = {\n inheritAttrs: false\n};\nconst _sfc_main$6 = /* @__PURE__ */ defineComponent({\n ...__default__$2,\n __name: \"CalendarPage\",\n setup(__props) {\n const { page } = usePage();\n const { onWeeknumberClick } = useCalendar();\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\n \"vc-pane\",\n `row-${unref(page).row}`,\n `row-from-end-${unref(page).rowFromEnd}`,\n `column-${unref(page).column}`,\n `column-from-end-${unref(page).columnFromEnd}`\n ]),\n ref: \"pane\"\n }, [\n createVNode(_sfc_main$b, {\n page: unref(page),\n \"is-lg\": \"\",\n \"hide-arrows\": \"\"\n }, null, 8, [\"page\"]),\n createElementVNode(\"div\", {\n class: normalizeClass([\"vc-weeks\", {\n [`vc-show-weeknumbers-${unref(page).weeknumberPosition}`]: unref(page).weeknumberPosition\n }])\n }, [\n createElementVNode(\"div\", _hoisted_1$3, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(unref(page).weekdays, ({ weekday, label }, i) => {\n return openBlock(), createElementBlock(\"div\", {\n key: i,\n class: normalizeClass(`vc-weekday vc-weekday-${weekday}`)\n }, toDisplayString(label), 3);\n }), 128))\n ]),\n (openBlock(true), createElementBlock(Fragment, null, renderList(unref(page).viewWeeks, (week) => {\n return openBlock(), createElementBlock(\"div\", {\n key: `weeknumber-${week.weeknumber}`,\n class: \"vc-week\"\n }, [\n unref(page).weeknumberPosition ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass([\"vc-weeknumber\", `is-${unref(page).weeknumberPosition}`])\n }, [\n createElementVNode(\"span\", {\n class: normalizeClass([\"vc-weeknumber-content\"]),\n onClick: ($event) => unref(onWeeknumberClick)(week, $event)\n }, toDisplayString(week.weeknumberDisplay), 9, _hoisted_2$2)\n ], 2)) : createCommentVNode(\"\", true),\n (openBlock(true), createElementBlock(Fragment, null, renderList(week.days, (day) => {\n return openBlock(), createBlock(CalendarDay, {\n key: day.id,\n day\n }, null, 8, [\"day\"]);\n }), 128))\n ]);\n }), 128))\n ], 2)\n ], 2);\n };\n }\n});\nconst CalendarPage_vue_vue_type_style_index_0_lang = \"\";\nconst _sfc_main$5 = defineComponent({\n components: {\n CalendarHeader: _sfc_main$b,\n CalendarPage: _sfc_main$6,\n CalendarNavPopover: _sfc_main$8,\n CalendarDayPopover: _sfc_main$h,\n CalendarPageProvider: _sfc_main$9,\n CalendarSlot: _sfc_main$i\n },\n props: propsDef$1,\n emit: emitsDef,\n setup(props, { emit, slots }) {\n return createCalendar(props, { emit, slots });\n }\n});\nconst Calendar_vue_vue_type_style_index_0_lang = \"\";\nconst _hoisted_1$2 = { class: \"vc-pane-header-wrapper\" };\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_CalendarHeader = resolveComponent(\"CalendarHeader\");\n const _component_CalendarPage = resolveComponent(\"CalendarPage\");\n const _component_CalendarSlot = resolveComponent(\"CalendarSlot\");\n const _component_CalendarPageProvider = resolveComponent(\"CalendarPageProvider\");\n const _component_CalendarDayPopover = resolveComponent(\"CalendarDayPopover\");\n const _component_CalendarNavPopover = resolveComponent(\"CalendarNavPopover\");\n return openBlock(), createElementBlock(Fragment, null, [\n createElementVNode(\"div\", mergeProps({ \"data-helptext\": \"Press the arrow keys to navigate by day, Home and End to navigate to week ends, PageUp and PageDown to navigate by month, Alt+PageUp and Alt+PageDown to navigate by year\" }, _ctx.$attrs, {\n class: [\n \"vc-container\",\n `vc-${_ctx.view}`,\n `vc-${_ctx.color}`,\n `vc-${_ctx.displayMode}`,\n {\n \"vc-expanded\": _ctx.expanded,\n \"vc-bordered\": !_ctx.borderless,\n \"vc-transparent\": _ctx.transparent\n }\n ],\n onMouseup: _cache[0] || (_cache[0] = withModifiers(() => {\n }, [\"prevent\"])),\n ref: \"containerRef\"\n }), [\n createElementVNode(\"div\", {\n class: normalizeClass([\"vc-pane-container\", { \"in-transition\": _ctx.inTransition }])\n }, [\n createElementVNode(\"div\", _hoisted_1$2, [\n _ctx.firstPage ? (openBlock(), createBlock(_component_CalendarHeader, {\n key: 0,\n page: _ctx.firstPage,\n \"is-lg\": \"\",\n \"hide-title\": \"\"\n }, null, 8, [\"page\"])) : createCommentVNode(\"\", true)\n ]),\n createVNode(Transition, {\n name: `vc-${_ctx.transitionName}`,\n onBeforeEnter: _ctx.onTransitionBeforeEnter,\n onAfterEnter: _ctx.onTransitionAfterEnter\n }, {\n default: withCtx(() => [\n (openBlock(), createElementBlock(\"div\", {\n key: _ctx.pages[0].id,\n class: \"vc-pane-layout\",\n style: normalizeStyle({\n gridTemplateColumns: `repeat(${_ctx.columns}, 1fr)`\n })\n }, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.pages, (page) => {\n return openBlock(), createBlock(_component_CalendarPageProvider, {\n key: page.id,\n page\n }, {\n default: withCtx(() => [\n createVNode(_component_CalendarSlot, {\n name: \"page\",\n page\n }, {\n default: withCtx(() => [\n createVNode(_component_CalendarPage)\n ]),\n _: 2\n }, 1032, [\"page\"])\n ]),\n _: 2\n }, 1032, [\"page\"]);\n }), 128))\n ], 4))\n ]),\n _: 1\n }, 8, [\"name\", \"onBeforeEnter\", \"onAfterEnter\"]),\n createVNode(_component_CalendarSlot, { name: \"footer\" })\n ], 2)\n ], 16),\n createVNode(_component_CalendarDayPopover),\n createVNode(_component_CalendarNavPopover)\n ], 64);\n}\nconst Calendar = /* @__PURE__ */ _export_sfc(_sfc_main$5, [[\"render\", _sfc_render$1]]);\nconst contextKey = Symbol(\"__vc_date_picker_context__\");\nconst propsDef = {\n ...propsDef$2,\n mode: { type: String, default: \"date\" },\n modelValue: {\n type: [Number, String, Date, Object]\n },\n modelModifiers: {\n type: Object,\n default: () => ({})\n },\n rules: [String, Object],\n is24hr: Boolean,\n hideTimeHeader: Boolean,\n timeAccuracy: { type: Number, default: 2 },\n isRequired: Boolean,\n isRange: Boolean,\n updateOnInput: {\n type: Boolean,\n default: () => getDefault(\"datePicker.updateOnInput\")\n },\n inputDebounce: {\n type: Number,\n default: () => getDefault(\"datePicker.inputDebounce\")\n },\n popover: {\n type: [Boolean, Object],\n default: true\n },\n dragAttribute: Object,\n selectAttribute: Object,\n attributes: [Object, Array]\n};\nconst emits = [\n \"update:modelValue\",\n \"drag\",\n \"dayclick\",\n \"daykeydown\",\n \"popover-will-show\",\n \"popover-did-show\",\n \"popover-will-hide\",\n \"popover-did-hide\"\n];\nfunction createDatePicker(props, { emit, slots }) {\n provideSlots(slots, { footer: \"dp-footer\" });\n const baseCtx = createBase(props);\n const { locale, masks: masks2, disabledAttribute } = baseCtx;\n const showCalendar = ref(false);\n const datePickerPopoverId = ref(Symbol());\n const dateValue = ref(null);\n const dragValue = ref(null);\n const inputValues = ref([\"\", \"\"]);\n const popoverRef = ref(null);\n const calendarRef = ref(null);\n let updateTimeout = void 0;\n let dragTrackingValue;\n let watchValue = true;\n const isRange = computed(() => {\n return props.isRange || props.modelModifiers.range === true;\n });\n const valueStart = computed(\n () => isRange.value && dateValue.value != null ? dateValue.value.start : null\n );\n const valueEnd = computed(\n () => isRange.value && dateValue.value != null ? dateValue.value.end : null\n );\n const isDateMode = computed(() => props.mode.toLowerCase() === \"date\");\n const isDateTimeMode = computed(\n () => props.mode.toLowerCase() === \"datetime\"\n );\n const isTimeMode = computed(() => props.mode.toLowerCase() === \"time\");\n const isDragging = computed(() => !!dragValue.value);\n const modelConfig = computed(() => {\n let type = \"date\";\n if (props.modelModifiers.number)\n type = \"number\";\n if (props.modelModifiers.string)\n type = \"string\";\n const mask = masks2.value.modelValue || \"iso\";\n return normalizeConfig2({ type, mask });\n });\n const dateParts = computed(\n () => getDateParts2(dragValue.value ?? dateValue.value)\n );\n const inputMask = computed(() => {\n if (isTimeMode.value) {\n return props.is24hr ? masks2.value.inputTime24hr : masks2.value.inputTime;\n }\n if (isDateTimeMode.value) {\n return props.is24hr ? masks2.value.inputDateTime24hr : masks2.value.inputDateTime;\n }\n return masks2.value.input;\n });\n const inputMaskHasTime = computed(() => /[Hh]/g.test(inputMask.value));\n const inputMaskHasDate = computed(\n () => /[dD]{1,2}|Do|W{1,4}|M{1,4}|YY(?:YY)?/g.test(inputMask.value)\n );\n const inputMaskPatch = computed(() => {\n if (inputMaskHasTime.value && inputMaskHasDate.value) {\n return \"dateTime\";\n }\n if (inputMaskHasDate.value)\n return \"date\";\n if (inputMaskHasTime.value)\n return \"time\";\n return void 0;\n });\n const popover = computed(() => {\n var _a;\n const target = ((_a = popoverRef.value) == null ? void 0 : _a.$el.previousElementSibling) ?? void 0;\n return defaultsDeep_1({}, props.popover, getDefault(\"datePicker.popover\"), {\n target\n });\n });\n const popoverEvents = computed(\n () => getPopoverEventHandlers({\n ...popover.value,\n id: datePickerPopoverId.value\n })\n );\n const inputValue = computed(() => {\n return isRange.value ? {\n start: inputValues.value[0],\n end: inputValues.value[1]\n } : inputValues.value[0];\n });\n const inputEvents = computed(() => {\n const events = [\"start\", \"end\"].map((target) => ({\n input: onInputInput(target),\n change: onInputChange(target),\n keyup: onInputKeyup,\n ...props.popover && popoverEvents.value\n }));\n return isRange.value ? {\n start: events[0],\n end: events[1]\n } : events[0];\n });\n const selectAttribute = computed(() => {\n if (!hasValue(dateValue.value))\n return null;\n const attribute = {\n key: \"select-drag\",\n ...props.selectAttribute,\n dates: dateValue.value,\n pinPage: true\n };\n const { dot, bar, highlight, content } = attribute;\n if (!dot && !bar && !highlight && !content) {\n attribute.highlight = true;\n }\n return attribute;\n });\n const dragAttribute = computed(() => {\n if (!isRange.value || !hasValue(dragValue.value)) {\n return null;\n }\n const attribute = {\n key: \"select-drag\",\n ...props.dragAttribute,\n dates: dragValue.value\n };\n const { dot, bar, highlight, content } = attribute;\n if (!dot && !bar && !highlight && !content) {\n attribute.highlight = {\n startEnd: {\n fillMode: \"outline\"\n }\n };\n }\n return attribute;\n });\n const attributes = computed(() => {\n const attrs = isArray(props.attributes) ? [...props.attributes] : [];\n if (dragAttribute.value) {\n attrs.unshift(dragAttribute.value);\n } else if (selectAttribute.value) {\n attrs.unshift(selectAttribute.value);\n }\n return attrs;\n });\n const rules = computed(() => {\n return normalizeConfig2(\n props.rules === \"auto\" ? getAutoRules() : props.rules ?? {}\n );\n });\n function getAutoRules() {\n const _rules = {\n ms: [0, 999],\n sec: [0, 59],\n min: [0, 59],\n hr: [0, 23]\n };\n const accuracy = isDateMode.value ? 0 : props.timeAccuracy;\n return [0, 1].map((i) => {\n switch (accuracy) {\n case 0:\n return {\n hours: _rules.hr[i],\n minutes: _rules.min[i],\n seconds: _rules.sec[i],\n milliseconds: _rules.ms[i]\n };\n case 1:\n return {\n minutes: _rules.min[i],\n seconds: _rules.sec[i],\n milliseconds: _rules.ms[i]\n };\n case 3:\n return { milliseconds: _rules.ms[i] };\n case 4:\n return {};\n default:\n return { seconds: _rules.sec[i], milliseconds: _rules.ms[i] };\n }\n });\n }\n function normalizeConfig2(config2) {\n if (isArray(config2)) {\n if (config2.length === 1)\n return [config2[0], config2[0]];\n return config2;\n }\n return [config2, config2];\n }\n function normalizeDateConfig(config2) {\n return normalizeConfig2(config2).map(\n (c, i) => ({\n ...c,\n rules: rules.value[i]\n })\n );\n }\n function hasDateValue(value) {\n if (value == null)\n return false;\n if (isNumber_1(value))\n return !isNaN(value);\n if (isDate(value))\n return !isNaN(value.getTime());\n if (isString_1(value))\n return value !== \"\";\n return isDateParts(value);\n }\n function hasRangeValue(value) {\n return isObject(value) && \"start\" in value && \"end\" in value && hasDateValue(value.start ?? null) && hasDateValue(value.end ?? null);\n }\n function hasValue(value) {\n return hasRangeValue(value) || hasDateValue(value);\n }\n function valuesAreEqual(a, b) {\n if (a == null && b == null)\n return true;\n if (a == null || b == null)\n return false;\n const aIsDate = isDate(a);\n const bIsDate = isDate(b);\n if (aIsDate && bIsDate)\n return a.getTime() === b.getTime();\n if (aIsDate || bIsDate)\n return false;\n return valuesAreEqual(a.start, b.start) && valuesAreEqual(a.end, b.end);\n }\n function valueIsDisabled(value) {\n if (!hasValue(value) || !disabledAttribute.value)\n return false;\n return disabledAttribute.value.intersectsRange(locale.value.range(value));\n }\n function normalizeValue(value, config2, patch, targetPriority) {\n if (!hasValue(value))\n return null;\n if (hasRangeValue(value)) {\n const start = locale.value.toDate(value.start, {\n ...config2[0],\n fillDate: valueStart.value ?? void 0,\n patch\n });\n const end = locale.value.toDate(value.end, {\n ...config2[1],\n fillDate: valueEnd.value ?? void 0,\n patch\n });\n return sortRange({ start, end }, targetPriority);\n }\n return locale.value.toDateOrNull(value, {\n ...config2[0],\n fillDate: dateValue.value,\n patch\n });\n }\n function denormalizeValue(value, config2) {\n if (hasRangeValue(value)) {\n return {\n start: locale.value.fromDate(value.start, config2[0]),\n end: locale.value.fromDate(value.end, config2[1])\n };\n }\n if (isRange.value) {\n return null;\n }\n return locale.value.fromDate(value, config2[0]);\n }\n function updateValue(value, opts = {}) {\n clearTimeout(updateTimeout);\n return new Promise((resolve) => {\n const { debounce = 0, ...args } = opts;\n if (debounce > 0) {\n updateTimeout = window.setTimeout(() => {\n resolve(forceUpdateValue(value, args));\n }, debounce);\n } else {\n resolve(forceUpdateValue(value, args));\n }\n });\n }\n function forceUpdateValue(value, {\n config: config2 = modelConfig.value,\n patch = \"dateTime\",\n clearIfEqual = false,\n formatInput: fInput = true,\n hidePopover: hPopover = false,\n dragging = isDragging.value,\n targetPriority,\n moveToValue: mValue = false\n } = {}) {\n const normalizedConfig = normalizeDateConfig(config2);\n let normalizedValue = normalizeValue(\n value,\n normalizedConfig,\n patch,\n targetPriority\n );\n const isDisabled = valueIsDisabled(normalizedValue);\n if (isDisabled) {\n if (dragging)\n return null;\n normalizedValue = dateValue.value;\n hPopover = false;\n } else if (normalizedValue == null && props.isRequired) {\n normalizedValue = dateValue.value;\n } else if (\n // Clear value if same value was passed\n normalizedValue != null && valuesAreEqual(dateValue.value, normalizedValue) && clearIfEqual\n ) {\n normalizedValue = null;\n }\n const valueRef = dragging ? dragValue : dateValue;\n const notify = !valuesAreEqual(valueRef.value, normalizedValue);\n valueRef.value = normalizedValue;\n if (!dragging)\n dragValue.value = null;\n const denormalizedValue = denormalizeValue(\n normalizedValue,\n modelConfig.value\n );\n if (notify) {\n watchValue = false;\n emit(dragging ? \"drag\" : \"update:modelValue\", denormalizedValue);\n nextTick(() => watchValue = true);\n }\n if (hPopover && !dragging)\n hidePopover$1();\n if (fInput)\n formatInput();\n if (mValue) {\n nextTick(() => moveToValue(targetPriority ?? \"start\"));\n }\n return denormalizedValue;\n }\n function formatInput() {\n nextTick(() => {\n const config2 = normalizeDateConfig({\n type: \"string\",\n mask: inputMask.value\n });\n const value = denormalizeValue(\n dragValue.value ?? dateValue.value,\n config2\n );\n if (isRange.value) {\n inputValues.value = [value && value.start, value && value.end];\n } else {\n inputValues.value = [value, \"\"];\n }\n });\n }\n function onInputUpdate(inputValue2, target, opts) {\n inputValues.value.splice(target === \"start\" ? 0 : 1, 1, inputValue2);\n const value = isRange.value ? {\n start: inputValues.value[0],\n end: inputValues.value[1] || inputValues.value[0]\n } : inputValue2;\n const config2 = {\n type: \"string\",\n mask: inputMask.value\n };\n updateValue(value, {\n ...opts,\n config: config2,\n patch: inputMaskPatch.value,\n targetPriority: target,\n moveToValue: true\n });\n }\n function onInputInput(target) {\n return (e) => {\n if (!props.updateOnInput)\n return;\n onInputUpdate(e.currentTarget.value, target, {\n formatInput: false,\n hidePopover: false,\n debounce: props.inputDebounce\n });\n };\n }\n function onInputChange(target) {\n return (e) => {\n onInputUpdate(e.currentTarget.value, target, {\n formatInput: true,\n hidePopover: false\n });\n };\n }\n function onInputKeyup(e) {\n if (e.key !== \"Escape\")\n return;\n updateValue(dateValue.value, {\n formatInput: true,\n hidePopover: true\n });\n }\n function getDateParts2(value) {\n if (isRange.value) {\n return [\n value && value.start ? locale.value.getDateParts(value.start) : null,\n value && value.end ? locale.value.getDateParts(value.end) : null\n ];\n }\n return [value ? locale.value.getDateParts(value) : null];\n }\n function cancelDrag() {\n dragValue.value = null;\n formatInput();\n }\n function onPopoverBeforeShow(el) {\n emit(\"popover-will-show\", el);\n }\n function onPopoverAfterShow(el) {\n emit(\"popover-did-show\", el);\n }\n function onPopoverBeforeHide(el) {\n cancelDrag();\n emit(\"popover-will-hide\", el);\n }\n function onPopoverAfterHide(el) {\n emit(\"popover-did-hide\", el);\n }\n function handleDayClick(day) {\n const opts = {\n patch: \"date\",\n formatInput: true,\n hidePopover: true\n };\n if (isRange.value) {\n const dragging = !isDragging.value;\n if (dragging) {\n dragTrackingValue = { start: day.startDate, end: day.endDate };\n } else if (dragTrackingValue != null) {\n dragTrackingValue.end = day.date;\n }\n updateValue(dragTrackingValue, {\n ...opts,\n dragging\n });\n } else {\n updateValue(day.date, {\n ...opts,\n clearIfEqual: !props.isRequired\n });\n }\n }\n function onDayClick(day, event) {\n handleDayClick(day);\n emit(\"dayclick\", day, event);\n }\n function onDayKeydown(day, event) {\n switch (event.key) {\n case \" \":\n case \"Enter\": {\n handleDayClick(day);\n event.preventDefault();\n break;\n }\n case \"Escape\": {\n hidePopover$1();\n }\n }\n emit(\"daykeydown\", day, event);\n }\n function onDayMouseEnter(day, event) {\n if (!isDragging.value || dragTrackingValue == null)\n return;\n dragTrackingValue.end = day.date;\n updateValue(sortRange(dragTrackingValue), {\n patch: \"date\",\n formatInput: true\n });\n }\n function showPopover$1(opts = {}) {\n showPopover({\n ...popover.value,\n ...opts,\n isInteractive: true,\n id: datePickerPopoverId.value\n });\n }\n function hidePopover$1(opts = {}) {\n hidePopover({\n hideDelay: 10,\n force: true,\n ...popover.value,\n ...opts,\n id: datePickerPopoverId.value\n });\n }\n function togglePopover$1(opts) {\n togglePopover({\n ...popover.value,\n ...opts,\n isInteractive: true,\n id: datePickerPopoverId.value\n });\n }\n function sortRange(range, priority) {\n const { start, end } = range;\n if (start > end) {\n switch (priority) {\n case \"start\":\n return { start, end: start };\n case \"end\":\n return { start: end, end };\n default:\n return { start: end, end: start };\n }\n }\n return { start, end };\n }\n async function move(target, opts = {}) {\n if (calendarRef.value == null)\n return false;\n return calendarRef.value.move(target, opts);\n }\n async function moveBy(pages, opts = {}) {\n if (calendarRef.value == null)\n return false;\n return calendarRef.value.moveBy(pages, opts);\n }\n async function moveToValue(target, opts = {}) {\n const dValue = dateValue.value;\n if (calendarRef.value == null || !hasValue(dValue))\n return false;\n const start = target !== \"end\";\n const position = start ? 1 : -1;\n const date = hasRangeValue(dValue) ? start ? dValue.start : dValue.end : dValue;\n const page = getPageAddressForDate(date, \"monthly\", locale.value);\n return calendarRef.value.move(page, { position, ...opts });\n }\n watch(\n () => props.isRange,\n (val) => {\n if (val) {\n console.warn(\n \"The `is-range` prop will be deprecated in future releases. Please use the `range` modifier.\"\n );\n }\n },\n { immediate: true }\n );\n watch(\n () => isRange.value,\n () => {\n forceUpdateValue(null, { formatInput: true });\n }\n );\n watch(\n () => inputMask.value,\n () => formatInput()\n );\n watch(\n () => props.modelValue,\n (val) => {\n if (!watchValue)\n return;\n forceUpdateValue(val, {\n formatInput: true,\n hidePopover: false\n });\n }\n );\n watch(\n () => rules.value,\n () => {\n if (isObject(props.rules)) {\n forceUpdateValue(props.modelValue, {\n formatInput: true,\n hidePopover: false\n });\n }\n }\n );\n watch(\n () => props.timezone,\n () => {\n forceUpdateValue(dateValue.value, { formatInput: true });\n }\n );\n const config = normalizeConfig2(modelConfig.value);\n dateValue.value = normalizeValue(\n props.modelValue ?? null,\n config,\n \"dateTime\"\n );\n onMounted(() => {\n forceUpdateValue(props.modelValue, {\n formatInput: true,\n hidePopover: false\n });\n });\n nextTick(() => showCalendar.value = true);\n const context = {\n ...baseCtx,\n showCalendar,\n datePickerPopoverId,\n popoverRef,\n popoverEvents,\n calendarRef,\n isRange,\n isTimeMode,\n isDateTimeMode,\n is24hr: toRef(props, \"is24hr\"),\n hideTimeHeader: toRef(props, \"hideTimeHeader\"),\n timeAccuracy: toRef(props, \"timeAccuracy\"),\n isDragging,\n inputValue,\n inputEvents,\n dateParts,\n attributes,\n rules,\n move,\n moveBy,\n moveToValue,\n updateValue,\n showPopover: showPopover$1,\n hidePopover: hidePopover$1,\n togglePopover: togglePopover$1,\n onDayClick,\n onDayKeydown,\n onDayMouseEnter,\n onPopoverBeforeShow,\n onPopoverAfterShow,\n onPopoverBeforeHide,\n onPopoverAfterHide\n };\n provide(contextKey, context);\n return context;\n}\nfunction useDatePicker() {\n const context = inject(contextKey);\n if (context)\n return context;\n throw new Error(\n \"DatePicker context missing. Please verify this component is nested within a valid context provider.\"\n );\n}\nconst _amOptions = [\n { value: 0, label: \"12\" },\n { value: 1, label: \"1\" },\n { value: 2, label: \"2\" },\n { value: 3, label: \"3\" },\n { value: 4, label: \"4\" },\n { value: 5, label: \"5\" },\n { value: 6, label: \"6\" },\n { value: 7, label: \"7\" },\n { value: 8, label: \"8\" },\n { value: 9, label: \"9\" },\n { value: 10, label: \"10\" },\n { value: 11, label: \"11\" }\n];\nconst _pmOptions = [\n { value: 12, label: \"12\" },\n { value: 13, label: \"1\" },\n { value: 14, label: \"2\" },\n { value: 15, label: \"3\" },\n { value: 16, label: \"4\" },\n { value: 17, label: \"5\" },\n { value: 18, label: \"6\" },\n { value: 19, label: \"7\" },\n { value: 20, label: \"8\" },\n { value: 21, label: \"9\" },\n { value: 22, label: \"10\" },\n { value: 23, label: \"11\" }\n];\nfunction createTimePicker(props) {\n const ctx = useDatePicker();\n const {\n locale,\n isRange,\n isTimeMode,\n dateParts,\n rules,\n is24hr,\n hideTimeHeader,\n timeAccuracy,\n updateValue: updateDpValue\n } = ctx;\n function updateParts(newParts) {\n newParts = Object.assign(parts.value, newParts);\n let newValue = null;\n if (isRange.value) {\n const start = isStart.value ? newParts : dateParts.value[0];\n const end = isStart.value ? dateParts.value[1] : newParts;\n newValue = { start, end };\n } else {\n newValue = newParts;\n }\n updateDpValue(newValue, {\n patch: \"time\",\n targetPriority: isStart.value ? \"start\" : \"end\",\n moveToValue: true\n });\n }\n const isStart = computed(() => props.position === 0);\n const parts = computed(\n () => dateParts.value[props.position] || { isValid: false }\n );\n const partsValid = computed(() => isDateParts(parts.value));\n const isValid = computed(() => !!parts.value.isValid);\n const showHeader = computed(() => {\n return !hideTimeHeader.value && isValid.value;\n });\n const date = computed(() => {\n if (!partsValid.value)\n return null;\n let date2 = locale.value.toDate(parts.value);\n if (parts.value.hours === 24) {\n date2 = new Date(date2.getTime() - 1);\n }\n return date2;\n });\n const hours2 = computed({\n get() {\n return parts.value.hours;\n },\n set(val) {\n updateParts({ hours: val });\n }\n });\n const minutes = computed({\n get() {\n return parts.value.minutes;\n },\n set(val) {\n updateParts({ minutes: val });\n }\n });\n const seconds = computed({\n get() {\n return parts.value.seconds;\n },\n set(val) {\n updateParts({ seconds: val });\n }\n });\n const milliseconds = computed({\n get() {\n return parts.value.milliseconds;\n },\n set(val) {\n updateParts({ milliseconds: val });\n }\n });\n const isAM = computed({\n get() {\n return parts.value.hours < 12;\n },\n set(value) {\n value = String(value).toLowerCase() == \"true\";\n let hValue = hours2.value;\n if (value && hValue >= 12) {\n hValue -= 12;\n } else if (!value && hValue < 12) {\n hValue += 12;\n }\n updateParts({ hours: hValue });\n }\n });\n const options = computed(\n () => getDatePartsOptions(parts.value, rules.value[props.position])\n );\n const amHourOptions = computed(() => {\n return _amOptions.filter(\n (opt) => options.value.hours.some((ho) => ho.value === opt.value)\n );\n });\n const pmHourOptions = computed(() => {\n return _pmOptions.filter(\n (opt) => options.value.hours.some((ho) => ho.value === opt.value)\n );\n });\n const hourOptions = computed(() => {\n if (is24hr.value)\n return options.value.hours;\n if (isAM.value)\n return amHourOptions.value;\n return pmHourOptions.value;\n });\n const isAMOptions = computed(() => {\n const result = [];\n if (arrayHasItems(amHourOptions.value))\n result.push({ value: true, label: \"AM\" });\n if (arrayHasItems(pmHourOptions.value))\n result.push({ value: false, label: \"PM\" });\n return result;\n });\n return {\n ...ctx,\n showHeader,\n timeAccuracy,\n parts,\n isValid,\n date,\n hours: hours2,\n minutes,\n seconds,\n milliseconds,\n options,\n hourOptions,\n isAM,\n isAMOptions,\n is24hr\n };\n}\nconst _hoisted_1$1 = [\"value\"];\nconst _hoisted_2$1 = [\"value\", \"disabled\"];\nconst _hoisted_3$1 = {\n key: 1,\n class: \"vc-base-sizer\",\n \"aria-hidden\": \"true\"\n};\nconst __default__$1 = {\n inheritAttrs: false\n};\nconst _sfc_main$4 = /* @__PURE__ */ defineComponent({\n ...__default__$1,\n __name: \"BaseSelect\",\n props: {\n options: null,\n modelValue: null,\n alignRight: { type: Boolean },\n alignLeft: { type: Boolean },\n showIcon: { type: Boolean },\n fitContent: { type: Boolean }\n },\n emits: [\"update:modelValue\"],\n setup(__props) {\n const props = __props;\n const selectedLabel = computed(() => {\n const option = props.options.find((opt) => opt.value === props.modelValue);\n return option == null ? void 0 : option.label;\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"vc-base-select\", {\n \"vc-fit-content\": __props.fitContent,\n \"vc-has-icon\": __props.showIcon\n }])\n }, [\n createElementVNode(\"select\", mergeProps(_ctx.$attrs, {\n value: __props.modelValue,\n class: [\"vc-focus\", {\n \"vc-align-right\": __props.alignRight,\n \"vc-align-left\": __props.alignLeft\n }],\n onChange: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"update:modelValue\", $event.target.value))\n }), [\n (openBlock(true), createElementBlock(Fragment, null, renderList(__props.options, (option) => {\n return openBlock(), createElementBlock(\"option\", {\n key: option.value,\n value: option.value,\n disabled: option.disabled\n }, toDisplayString(option.label), 9, _hoisted_2$1);\n }), 128))\n ], 16, _hoisted_1$1),\n __props.showIcon ? (openBlock(), createBlock(_sfc_main$c, {\n key: 0,\n name: \"ChevronDown\",\n size: \"18\"\n })) : createCommentVNode(\"\", true),\n __props.fitContent ? (openBlock(), createElementBlock(\"div\", _hoisted_3$1, toDisplayString(unref(selectedLabel)), 1)) : createCommentVNode(\"\", true)\n ], 2);\n };\n }\n});\nconst BaseSelect_vue_vue_type_style_index_0_lang = \"\";\nconst _hoisted_1 = {\n key: 0,\n class: \"vc-time-header\"\n};\nconst _hoisted_2 = { class: \"vc-time-weekday\" };\nconst _hoisted_3 = { class: \"vc-time-month\" };\nconst _hoisted_4 = { class: \"vc-time-day\" };\nconst _hoisted_5 = { class: \"vc-time-year\" };\nconst _hoisted_6 = { class: \"vc-time-select-group\" };\nconst _hoisted_7 = /* @__PURE__ */ createElementVNode(\"span\", { class: \"vc-time-colon\" }, \":\", -1);\nconst _hoisted_8 = /* @__PURE__ */ createElementVNode(\"span\", { class: \"vc-time-colon\" }, \":\", -1);\nconst _hoisted_9 = /* @__PURE__ */ createElementVNode(\"span\", { class: \"vc-time-decimal\" }, \".\", -1);\nconst _sfc_main$3 = /* @__PURE__ */ defineComponent({\n __name: \"TimePicker\",\n props: {\n position: null\n },\n setup(__props, { expose }) {\n const props = __props;\n const timePicker = createTimePicker(props);\n expose(timePicker);\n const {\n locale,\n isValid,\n date,\n hours: hours2,\n minutes,\n seconds,\n milliseconds,\n options,\n hourOptions,\n isTimeMode,\n isAM,\n isAMOptions,\n is24hr,\n showHeader,\n timeAccuracy\n } = timePicker;\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"vc-time-picker\", [{ \"vc-invalid\": !unref(isValid), \"vc-attached\": !unref(isTimeMode) }]])\n }, [\n createVNode(_sfc_main$i, { name: \"time-header\" }, {\n default: withCtx(() => [\n unref(showHeader) && unref(date) ? (openBlock(), createElementBlock(\"div\", _hoisted_1, [\n createElementVNode(\"span\", _hoisted_2, toDisplayString(unref(locale).formatDate(unref(date), \"WWW\")), 1),\n createElementVNode(\"span\", _hoisted_3, toDisplayString(unref(locale).formatDate(unref(date), \"MMM\")), 1),\n createElementVNode(\"span\", _hoisted_4, toDisplayString(unref(locale).formatDate(unref(date), \"D\")), 1),\n createElementVNode(\"span\", _hoisted_5, toDisplayString(unref(locale).formatDate(unref(date), \"YYYY\")), 1)\n ])) : createCommentVNode(\"\", true)\n ]),\n _: 1\n }),\n createElementVNode(\"div\", _hoisted_6, [\n createVNode(_sfc_main$c, {\n name: \"Clock\",\n size: \"17\"\n }),\n createVNode(_sfc_main$4, {\n modelValue: unref(hours2),\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => isRef(hours2) ? hours2.value = $event : null),\n modelModifiers: { number: true },\n options: unref(hourOptions),\n class: \"vc-time-select-hours\",\n \"align-right\": \"\"\n }, null, 8, [\"modelValue\", \"options\"]),\n unref(timeAccuracy) > 1 ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [\n _hoisted_7,\n createVNode(_sfc_main$4, {\n modelValue: unref(minutes),\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event) => isRef(minutes) ? minutes.value = $event : null),\n modelModifiers: { number: true },\n options: unref(options).minutes,\n class: \"vc-time-select-minutes\",\n \"align-left\": unref(timeAccuracy) === 2\n }, null, 8, [\"modelValue\", \"options\", \"align-left\"])\n ], 64)) : createCommentVNode(\"\", true),\n unref(timeAccuracy) > 2 ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [\n _hoisted_8,\n createVNode(_sfc_main$4, {\n modelValue: unref(seconds),\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event) => isRef(seconds) ? seconds.value = $event : null),\n modelModifiers: { number: true },\n options: unref(options).seconds,\n class: \"vc-time-select-seconds\",\n \"align-left\": unref(timeAccuracy) === 3\n }, null, 8, [\"modelValue\", \"options\", \"align-left\"])\n ], 64)) : createCommentVNode(\"\", true),\n unref(timeAccuracy) > 3 ? (openBlock(), createElementBlock(Fragment, { key: 2 }, [\n _hoisted_9,\n createVNode(_sfc_main$4, {\n modelValue: unref(milliseconds),\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event) => isRef(milliseconds) ? milliseconds.value = $event : null),\n modelModifiers: { number: true },\n options: unref(options).milliseconds,\n class: \"vc-time-select-milliseconds\",\n \"align-left\": \"\"\n }, null, 8, [\"modelValue\", \"options\"])\n ], 64)) : createCommentVNode(\"\", true),\n !unref(is24hr) ? (openBlock(), createBlock(_sfc_main$4, {\n key: 3,\n modelValue: unref(isAM),\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event) => isRef(isAM) ? isAM.value = $event : null),\n options: unref(isAMOptions)\n }, null, 8, [\"modelValue\", \"options\"])) : createCommentVNode(\"\", true)\n ])\n ], 2);\n };\n }\n});\nconst TimePicker_vue_vue_type_style_index_0_lang = \"\";\nconst _sfc_main$2 = /* @__PURE__ */ defineComponent({\n __name: \"DatePickerBase\",\n setup(__props) {\n const {\n attributes,\n calendarRef,\n color,\n displayMode,\n isDateTimeMode,\n isTimeMode,\n isRange,\n onDayClick,\n onDayMouseEnter,\n onDayKeydown\n } = useDatePicker();\n const positions = isRange.value ? [0, 1] : [0];\n return (_ctx, _cache) => {\n return unref(isTimeMode) ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass(`vc-container vc-bordered vc-${unref(color)} vc-${unref(displayMode)}`)\n }, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(unref(positions), (position) => {\n return openBlock(), createBlock(_sfc_main$3, {\n key: position,\n position\n }, null, 8, [\"position\"]);\n }), 128))\n ], 2)) : (openBlock(), createBlock(Calendar, {\n key: 1,\n attributes: unref(attributes),\n ref_key: \"calendarRef\",\n ref: calendarRef,\n onDayclick: unref(onDayClick),\n onDaymouseenter: unref(onDayMouseEnter),\n onDaykeydown: unref(onDayKeydown)\n }, {\n footer: withCtx(() => [\n unref(isDateTimeMode) ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(unref(positions), (position) => {\n return openBlock(), createBlock(_sfc_main$3, {\n key: position,\n position\n }, null, 8, [\"position\"]);\n }), 128)) : createCommentVNode(\"\", true),\n createVNode(_sfc_main$i, { name: \"dp-footer\" })\n ]),\n _: 1\n }, 8, [\"attributes\", \"onDayclick\", \"onDaymouseenter\", \"onDaykeydown\"]));\n };\n }\n});\nconst __default__ = {\n inheritAttrs: false\n};\nconst _sfc_main$1 = /* @__PURE__ */ defineComponent({\n ...__default__,\n __name: \"DatePickerPopover\",\n setup(__props) {\n const {\n datePickerPopoverId,\n color,\n displayMode,\n popoverRef,\n onPopoverBeforeShow,\n onPopoverAfterShow,\n onPopoverBeforeHide,\n onPopoverAfterHide\n } = useDatePicker();\n return (_ctx, _cache) => {\n return openBlock(), createBlock(Popover, {\n id: unref(datePickerPopoverId),\n placement: \"bottom-start\",\n class: normalizeClass(`vc-date-picker-content vc-${unref(color)} vc-${unref(displayMode)}`),\n ref_key: \"popoverRef\",\n ref: popoverRef,\n onBeforeShow: unref(onPopoverBeforeShow),\n onAfterShow: unref(onPopoverAfterShow),\n onBeforeHide: unref(onPopoverBeforeHide),\n onAfterHide: unref(onPopoverAfterHide)\n }, {\n default: withCtx(() => [\n createVNode(_sfc_main$2, normalizeProps(guardReactiveProps(_ctx.$attrs)), null, 16)\n ]),\n _: 1\n }, 8, [\"id\", \"class\", \"onBeforeShow\", \"onAfterShow\", \"onBeforeHide\", \"onAfterHide\"]);\n };\n }\n});\nconst _sfc_main = defineComponent({\n inheritAttrs: false,\n emits,\n props: propsDef,\n components: { DatePickerBase: _sfc_main$2, DatePickerPopover: _sfc_main$1 },\n setup(props, ctx) {\n const datePicker = createDatePicker(props, ctx);\n const slotCtx = reactive(omit(datePicker, \"calendarRef\", \"popoverRef\"));\n return { ...datePicker, slotCtx };\n }\n});\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_DatePickerPopover = resolveComponent(\"DatePickerPopover\");\n const _component_DatePickerBase = resolveComponent(\"DatePickerBase\");\n return _ctx.$slots.default ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [\n renderSlot(_ctx.$slots, \"default\", normalizeProps(guardReactiveProps(_ctx.slotCtx))),\n createVNode(_component_DatePickerPopover, normalizeProps(guardReactiveProps(_ctx.$attrs)), null, 16)\n ], 64)) : (openBlock(), createBlock(_component_DatePickerBase, normalizeProps(mergeProps({ key: 1 }, _ctx.$attrs)), null, 16));\n}\nconst DatePicker = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\nconst components = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n Calendar,\n DatePicker,\n Popover,\n PopoverRow: _sfc_main$j\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst index$1 = \"\";\nconst install = (app, defaults2 = {}) => {\n app.use(setupDefaults, defaults2);\n const prefix = app.config.globalProperties.$VCalendar.componentPrefix;\n for (const componentKey in components) {\n const component = components[componentKey];\n app.component(`${prefix}${componentKey}`, component);\n }\n};\nconst index = { install };\nexport {\n Calendar,\n DatePicker,\n Popover,\n _sfc_main$j as PopoverRow,\n createCalendar,\n createDatePicker,\n index as default,\n popoverDirective,\n setupDefaults as setupCalendar,\n useCalendar,\n useDatePicker\n};\n//# sourceMappingURL=index.js.map\n","<script lang=\"ts\">\n export * from './DatePicker.types';\n</script>\n\n<script setup lang=\"ts\">\n // TODO: fix the wide array of types we have representing a date in this and related files\n\n /**\n * As of v3.0.0-alpha.7, all installation methods require manual import of component styles.\n * This is due to Vite build restrictions in libary mode.\n * @see: https://vcalendar.io/getting-started/installation.html#use-plugin\n */\n import 'v-calendar/dist/style.css';\n import { endOfDay, isAfter, isBefore, isMatch as isFormatMatch, isValid, parse, startOfDay } from 'date-fns';\n import merge from 'lodash-es/merge';\n import unionBy from 'lodash-es/unionBy';\n import uniqueId from 'lodash-es/uniqueId';\n import { DatePicker as VCalendarDatePicker } from 'v-calendar';\n import type { CalendarDay } from 'v-calendar/dist/types/src/utils/page.js';\n import { computed, ref, useSlots, useTemplateRef, watch } from 'vue';\n\n import { DATE_FORMATS } from '../../constants';\n import { t } from '../../locale';\n import createValidDate from '../../utils/createValidDate';\n import formatDateTime from '../../utils/formatDateTime';\n import normalizeDate from '../../utils/normalizeDate';\n import Button from '../Button/Button.vue';\n import Icon from '../Icon/Icon.vue';\n import Input from '../Input/Input.vue';\n import { DatePickerPopoverOptions, DatePickerProps } from './DatePicker.types';\n\n interface OnInputUpdateParams {\n /**\n * Value from the input field of the datepicker\n */\n dateString: string | number | null;\n\n /**\n * Manage update:model-value emission, as having @change in the input slot triggers double model updates.\n */\n shouldEmit?: boolean;\n\n /**\n * The v-calendar callback to synchronize the input field and internal value\n */\n inputChangeCb?: (e: { currentTarget: { value: null | string } }) => void;\n }\n\n const props = withDefaults(defineProps<DatePickerProps>(), {\n availableDates: undefined,\n addBottomSpace: false,\n disabled: false,\n disabledDates: undefined,\n errorText: '',\n format: DATE_FORMATS.YYYY_MM_DD_DATE_FNS,\n hideClearButton: false,\n hintText: '',\n id: '',\n isInputReadonly: false,\n label: '',\n maxDate: undefined,\n maxPage: undefined,\n minDate: undefined,\n minPage: undefined,\n mode: 'date',\n modelValue: '',\n name: '',\n placeholder: undefined,\n enableTeleport: false,\n timeZone: 'UTC',\n });\n\n const slots = useSlots();\n\n const emit = defineEmits<{\n (e: 'update:model-value', date: string | number | Date): void;\n (e: 'blur'): void;\n }>();\n\n /**\n * @see https://vcalendar.io/attributes.html\n */\n const attributes = ref([\n {\n key: 'today',\n content: 'blue',\n dates: new Date(),\n },\n ]);\n\n /**\n * @see https://vcalendar.io/datepicker.html#date\n */\n const dateValue = ref<Date | null | undefined>(createValidDate(props.modelValue));\n const masks = {\n input: props.format?.toUpperCase(),\n weekdays: 'W',\n inputDateTime: ['YYYY-MM-DD h:mm A'],\n };\n\n const isTimeInput = computed(() => props.mode === 'time');\n\n const dateFormat = computed(() => {\n if (isTimeInput.value) {\n return DATE_FORMATS.TIME_DATE_FNS;\n }\n if (props.mode === 'dateTime') {\n return DATE_FORMATS.YYYY_MM_DD_TIME_DATE_FNS;\n }\n return props.format || DATE_FORMATS.YYYY_MM_DD_DATE_FNS;\n });\n\n /**\n * For aria-describedby\n */\n const formatDescriptionId = uniqueId('format-description-');\n\n const formattedDate = computed(() => {\n if (!dateValue.value || (!isValid(normalizeDate(dateValue.value)) && !isTimeInput.value)) {\n return '';\n }\n\n return formatDateTime(dateValue.value, { format: dateFormat.value, timeZone: props.timeZone });\n });\n\n const mergedPopoverOptions = computed(() => {\n if (props.enableTeleport) {\n /* This object is used to configure the popper.js inside of the v-calendar.\n * Documentation can be found here https://popper.js.org/docs/v2/modifiers/\n */\n const teleportModifiers = [\n // Keep event listeners enabled so popper repositions on scroll/resize\n {\n name: 'eventListeners',\n options: { scroll: true, resize: true },\n },\n ];\n\n const userModifiers = props.popoverOptions?.modifiers;\n /**\n * Union the teleport modifiers with the user modifiers by the name of the modifier to avoid duplicating the modifiers.\n * Teleport modifiers take precedence over user modifiers when there are conflicts.\n * @example\n * // User modifiers\n * [\n * { name: 'offset', options: { offset: [0, 10] } },\n * { name: 'eventListeners', options: { scroll: false } }\n * ]\n *\n * // Teleport modifiers\n * [\n * { name: 'eventListeners', options: { scroll: true } }\n * ]\n *\n * // Result: teleport's eventListeners wins, user's offset is kept\n * [\n * { name: 'eventListeners', options: { scroll: true } },\n * { name: 'offset', options: { offset: [0, 10] } }\n * ]\n * @see https://lodash.com/docs/4.17.15#unionBy\n */\n const mergedModifiers = !userModifiers?.length\n ? teleportModifiers\n : unionBy(teleportModifiers, userModifiers, 'name');\n\n const teleportPopoverOptions: DatePickerPopoverOptions = {\n positionFixed: true,\n modifiers: mergedModifiers,\n };\n\n // remove modifiers from the popover options to avoid duplicating the modifiers in the merge function below\n const { modifiers: _, ...userOptionsWithoutModifiers } = props.popoverOptions || {};\n\n return merge({ visibility: 'focus' }, userOptionsWithoutModifiers, teleportPopoverOptions);\n }\n return merge({ visibility: 'focus' }, props.popoverOptions);\n });\n\n const calendarRef = useTemplateRef('calendar');\n\n const placeholderText = computed(() => props.placeholder || props.format?.toUpperCase());\n\n function moveToToday() {\n const today = new Date();\n\n calendarRef.value?.calendarRef?.focusDate(today);\n }\n\n function onDatePickerUpdate(value: Date | null, shouldEmit = false) {\n if (props.maxDate && value && isAfter(value, endOfDay(normalizeDate(props.maxDate)))) {\n return;\n }\n\n if (props.minDate && value && isBefore(value, startOfDay(normalizeDate(props.minDate)))) {\n return;\n }\n\n dateValue.value = value;\n\n if (shouldEmit) {\n emit('update:model-value', formattedDate.value);\n }\n }\n\n /**\n * Change event handler for the input field\n */\n function onInputUpdate({ dateString, shouldEmit = false, inputChangeCb }: OnInputUpdateParams) {\n const format = dateFormat.value;\n\n if (typeof dateString === 'number') {\n throw new Error('Date provided was type \"number\". Use \"string\" or \"null\"');\n }\n\n if (!dateString) {\n onDatePickerUpdate(null);\n inputChangeCb?.({ currentTarget: { value: null } });\n return;\n }\n\n if (!isFormatMatch(dateString, format)) {\n dateValue.value = null;\n inputChangeCb?.({ currentTarget: { value: null } });\n emit('update:model-value', formattedDate.value);\n return;\n }\n\n if (props.mode === 'date') {\n const normalizedDate = normalizeDate(dateString);\n\n if (!isValid(normalizedDate)) {\n return;\n }\n\n onDatePickerUpdate(normalizedDate, shouldEmit);\n } else {\n onDatePickerUpdate(parse(dateString, format, new Date()), shouldEmit);\n }\n }\n\n watch(\n () => props.modelValue,\n () => {\n onInputUpdate({ dateString: props.modelValue });\n },\n );\n\n function onDayClick(_: CalendarDay, event: MouseEvent) {\n // Hack to avoid a Vue 3.5+ reactivity issue when clicking a day in the VCalendar component\n // Important: this reduces 90% of the related errors on Sentry, but not all of them. Some situations like selecting a day over and over, may still throw the error.\n // See https://github.com/nathanreyes/v-calendar/issues/1498#issuecomment-2376294504\n (event.target as HTMLElement)?.blur();\n }\n</script>\n\n<template>\n <div class=\"tw-relative\" :class=\"$style['vc-overrides']\">\n <VCalendarDatePicker\n ref=\"calendar\"\n trim-weeks\n :attributes=\"attributes\"\n :available-dates=\"availableDates\"\n :disabled-dates=\"disabledDates\"\n :masks=\"masks\"\n :max-date=\"maxDate\"\n :min-date=\"minDate\"\n :max-page=\"maxPage\"\n :min-page=\"minPage\"\n :mode=\"mode\"\n :model-value=\"dateValue\"\n :popover=\"mergedPopoverOptions\"\n :hide-time-header=\"isTimeInput\"\n @dayclick=\"onDayClick\"\n @update:model-value=\"(value) => onDatePickerUpdate(value, true)\"\n >\n <template #header-left-button>\n <Icon class=\"icon rotate-180\" name=\"chevron-right\" />\n </template>\n <template #header-right-button>\n <Icon class=\"icon\" name=\"chevron-right\" />\n </template>\n\n <template #default=\"{ togglePopover, inputValue, inputEvents: { keyup, focusin, focusout, change } }\">\n <span :id=\"formatDescriptionId\" class=\"tw-sr-only\">\n {{ t('ll.datePicker.dateFormat') }}: {{ format?.toUpperCase() }}\n </span>\n <Input\n :id=\"props.id\"\n :aria-describedby=\"formatDescriptionId\"\n :add-bottom-space=\"props.addBottomSpace\"\n :class=\"$style.input\"\n :disabled=\"disabled\"\n :error-text=\"props.errorText\"\n :hint-text=\"props.hintText\"\n :label=\"label\"\n :model-value=\"inputValue\"\n :name=\"name\"\n :placeholder=\"placeholderText\"\n :is-read-only=\"isInputReadonly\"\n v-on=\"{ keyup, focusin, focusout }\"\n @blur=\"emit('blur')\"\n @change=\"(dateString) => onInputUpdate({ dateString, inputChangeCb: change })\"\n >\n <template #append>\n <Button\n v-if=\"!isTimeInput && dateValue && !hideClearButton && !disabled\"\n icon\n :class=\"$style['close-button']\"\n @click.stop=\"dateValue = undefined\"\n >\n <Icon name=\"close\" />\n </Button>\n <Icon\n v-else\n :class=\"[$style['calendar-icon'], { 'tw-cursor-pointer': !disabled }]\"\n :name=\"isTimeInput ? 'recent' : 'calendar'\"\n @click=\"!disabled && togglePopover()\"\n />\n </template>\n <template v-if=\"slots.hint\" #hint>\n <slot name=\"hint\"></slot>\n </template>\n </Input>\n </template>\n\n <template #footer>\n <div class=\"tw-pt-1.5 tw-text-right\">\n <Button inline class=\"tw-mx-3 tw-my-1.5\" :class=\"[$style['button-today']]\" @click=\"moveToToday\">\n {{ t('ll.datePicker.today') }}\n </Button>\n </div>\n </template>\n </VCalendarDatePicker>\n </div>\n</template>\n\n<style module>\n .vc-overrides {\n :global(.vc-pane-container) {\n padding: theme('spacing.3');\n }\n\n :global(.vc-pane-header-wrapper) {\n width: calc(100% - theme('spacing.3') * 2);\n }\n\n :global(.vc-popover-caret) {\n display: none !important;\n }\n\n :global(.vc-popover-content) {\n border-radius: theme('borderRadius.DEFAULT');\n border-color: var(--color-blue-500);\n margin-top: theme('spacing[1.5]');\n }\n\n :global(.vc-header) {\n opacity: 1;\n background-color: var(--color-white);\n border-top-left-radius: theme('borderRadius.DEFAULT');\n border-top-right-radius: theme('borderRadius.DEFAULT');\n height: 50px;\n\n :global(.vc-title-wrapper) {\n z-index: 1;\n\n :global(.vc-title) {\n background-color: var(--color-white);\n color: var(--color-ice-700);\n font-family: Sofia, sans-serif;\n font-size: theme('fontSize.base');\n font-weight: theme('fontWeight.medium');\n line-height: theme('lineHeight.base');\n padding-bottom: 0.5rem; /* 8px */\n padding-top: 0;\n }\n }\n }\n\n :global(.vc-arrows-container) {\n padding: theme('spacing.3') 0 0 0;\n width: calc(100% - (theme('spacing.3') * 2));\n\n :global(.vc-arrow) {\n color: var(--color-ice-700);\n height: 48px;\n margin: 0.15rem;\n width: 48px;\n }\n }\n\n :global(.vc-weeks) {\n font-family: Sofia, sans-serif;\n gap: theme('spacing[1.5]') 0;\n padding: 0;\n }\n\n :global(.vc-weekday) {\n background-color: var(--color-white);\n color: var(--color-ice-700);\n font-size: theme('fontSize.sm');\n font-weight: 200;\n height: 48px;\n margin-bottom: calc(theme('spacing[1.5]') * -1);\n padding: 18px 0; /* to vertically center the text */\n text-transform: capitalize;\n width: 48px;\n }\n\n :global(.vc-day) {\n color: var(--color-ice-900);\n height: 48px;\n width: 48px;\n\n &:global(.is-not-in-month) * {\n opacity: 1;\n color: var(--color-ice-500);\n }\n }\n\n :global(.vc-day-content) {\n border-radius: theme('borderRadius.DEFAULT');\n font-size: theme('fontSize.sm');\n font-weight: theme('fontWeight.medium') !important;\n height: 100%;\n width: 100%;\n\n &:focus {\n outline: #0072f026 solid 3px;\n }\n }\n\n :global(.vc-content) {\n color: var(--color-blue-500) !important;\n }\n\n :global(.vc-content.vc-highlight-content-solid) {\n color: var(--color-white) !important;\n }\n\n :global(.vc-highlight) {\n background-color: var(--color-blue-500) !important;\n border-radius: theme('borderRadius.DEFAULT') !important;\n height: 100%;\n width: 100%;\n }\n\n :global(.vc-time-select-group select) {\n border: 0;\n }\n }\n\n .close-button {\n padding: 0;\n height: theme('spacing.6');\n width: theme('spacing.6');\n }\n\n .button-today {\n border: none;\n box-shadow: none;\n color: var(--color-blue-500);\n font-family: Sofia, sans-serif;\n font-size: theme('fontSize.sm');\n font-weight: theme('fontWeight.normal');\n line-height: theme('lineHeight.body');\n text-decoration: none;\n\n &:focus {\n outline: #0072f026 solid 3px;\n }\n\n &:focus,\n &:hover {\n text-decoration: none;\n }\n }\n\n /* Override default read-only styling */\n .input input:read-only:not(:disabled) {\n border-color: var(--color-ice-500);\n background-color: var(--color-white) !important;\n cursor: default;\n pointer-events: initial;\n padding: 0 theme('spacing.3');\n }\n\n .calendar-icon {\n bottom: 0.3125rem; /* 5px */\n right: 0.3125rem; /* 5px */\n }\n</style>\n"],"names":["addDays","date","amount","_date","toDate","constructFrom","endOfDay","getDefaultOptions","getInternalDefaultOptions","getISODay","day","isAfter","dateToCompare","_dateToCompare","isBefore","transpose","fromDate","constructor","TIMEZONE_UNIT_PRIORITY","Setter","__publicField","_utcDate","_options","ValueSetter","value","validateValue","setValue","priority","subPriority","options","flags","DateToSystemTimezoneSetter","Parser","dateString","token","match","result","_value","EraParser","numericPatterns","timezonePatterns","mapValue","parseFnResult","mapFn","parseNumericPattern","pattern","matchResult","parseTimezonePattern","sign","hours","minutes","seconds","millisecondsInHour","millisecondsInMinute","millisecondsInSecond","parseAnyDigitsSigned","parseNDigits","n","parseNDigitsSigned","dayPeriodEnumToHours","dayPeriod","normalizeTwoDigitYear","twoDigitYear","currentYear","isCommonEra","absCurrentYear","rangeEnd","rangeEndCentury","isPreviousCentury","isLeapYearIndex","year","YearParser","valueCallback","normalizedTwoDigitYear","LocalWeekYearParser","getWeekYear","startOfWeek","ISOWeekYearParser","_flags","firstWeekOfYear","startOfISOWeek","ExtendedYearParser","QuarterParser","StandAloneQuarterParser","MonthParser","StandAloneMonthParser","setWeek","week","diff","getWeek","LocalWeekParser","setISOWeek","getISOWeek","ISOWeekParser","DAYS_IN_MONTH","DAYS_IN_MONTH_LEAP_YEAR","DateParser","isLeapYear","month","DayOfYearParser","setDay","defaultOptions","weekStartsOn","_b","_a","_d","_c","currentDay","dayIndex","delta","DayParser","LocalDayParser","wholeWeekDays","StandAloneLocalDayParser","setISODay","ISODayParser","AMPMParser","AMPMMidnightParser","DayPeriodParser","Hour1to12Parser","isPM","Hour0to23Parser","Hour0To11Parser","Hour1To24Parser","MinuteParser","SecondParser","FractionOfSecondParser","ISOTimezoneWithZParser","getTimezoneOffsetInMilliseconds","ISOTimezoneParser","TimestampSecondsParser","TimestampMillisecondsParser","parsers","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","notWhitespaceRegExp","unescapedLatinCharacterRegExp","parse","dateStr","formatStr","referenceDate","locale","defaultLocale","firstWeekContainsDate","subFnOptions","setters","tokens","substring","firstCharacter","longFormatters","longFormatter","usedTokens","isProtectedWeekYearToken","warnOrThrowProtectedError","isProtectedDayOfYearToken","parser","incompatibleTokens","incompatibleToken","usedToken","parseResult","cleanEscapedString","uniquePrioritySetters","setter","a","b","index","array","setterArray","input","isMatch","isValid","top","bottom","right","left","auto","basePlacements","start","end","clippingParents","viewport","popper","reference","variationPlacements","acc","placement","placements","beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite","modifierPhases","getNodeName","element","getWindow","node","ownerDocument","isElement","OwnElement","isHTMLElement","isShadowRoot","applyStyles","_ref","state","name","style","attributes","effect","_ref2","initialStyles","styleProperties","property","attribute","applyStyles$1","getBasePlacement","max","min","round","getUAString","uaData","item","isLayoutViewport","getBoundingClientRect","includeScale","isFixedStrategy","clientRect","scaleX","scaleY","visualViewport","addVisualOffsets","x","y","width","height","getLayoutRect","contains","parent","child","rootNode","next","getComputedStyle","isTableElement","getDocumentElement","getParentNode","getTrueOffsetParent","getContainingBlock","isFirefox","isIE","elementCss","currentNode","css","getOffsetParent","window","offsetParent","getMainAxisFromPlacement","within","mathMax","mathMin","withinMaxClamp","v","getFreshSideObject","mergePaddingObject","paddingObject","expandToHashMap","keys","hashMap","key","toPaddingObject","padding","arrow","_state$modifiersData$","arrowElement","popperOffsets","basePlacement","axis","isVertical","len","arrowRect","minProp","maxProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","center","offset","axisProp","_options$element","arrow$1","getVariation","unsetSides","roundOffsetsByDPR","win","dpr","mapToStyles","_Object$assign2","popperRect","variation","offsets","position","gpuAcceleration","adaptive","roundOffsets","isFixed","_offsets$x","_offsets$y","_ref3","hasX","hasY","sideX","sideY","heightProp","widthProp","offsetY","offsetX","commonStyles","_ref4","_Object$assign","computeStyles","_ref5","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","computeStyles$1","passive","instance","_options$scroll","scroll","_options$resize","resize","scrollParents","scrollParent","eventListeners","hash","getOppositePlacement","matched","getOppositeVariationPlacement","getWindowScroll","scrollLeft","scrollTop","getWindowScrollBarX","getViewportRect","strategy","html","layoutViewport","getDocumentRect","_element$ownerDocumen","winScroll","body","isScrollParent","_getComputedStyle","overflow","overflowX","overflowY","getScrollParent","listScrollParents","list","isBody","target","updatedList","rectToClientRect","rect","getInnerBoundingClientRect","getClientRectFromMixedType","clippingParent","getClippingParents","canEscapeClipping","clipperElement","getClippingRect","boundary","rootBoundary","mainClippingParents","firstClippingParent","clippingRect","accRect","computeOffsets","commonX","commonY","mainAxis","detectOverflow","_options$placement","_options$strategy","_options$boundary","_options$rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","altContext","clippingClientRect","referenceClientRect","popperClientRect","elementClientRect","overflowOffsets","offsetData","multiply","computeAutoPlacement","flipVariations","_options$allowedAutoP","allowedAutoPlacements","allPlacements","allowedPlacements","overflows","getExpandedFallbackPlacements","oppositePlacement","flip","_options$mainAxis","checkMainAxis","_options$altAxis","checkAltAxis","specifiedFallbackPlacements","_options$flipVariatio","preferredPlacement","isBasePlacement","fallbackPlacements","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","i","_basePlacement","isStartVariation","mainVariationSide","altVariationSide","checks","check","numberOfChecks","_loop","_i","fittingPlacement","_ret","flip$1","getSideOffsets","preventedOffsets","isAnySideFullyClipped","side","hide","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","hide$1","distanceAndSkiddingToXY","rects","invertDistance","skidding","distance","_options$offset","data","_data$state$placement","offset$1","popperOffsets$1","getAltAxis","preventOverflow","_options$tether","tether","_options$tetherOffset","tetherOffset","altAxis","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","_offsetModifierState$","mainSide","altSide","additive","minLen","maxLen","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","clientOffset","offsetModifierValue","tetherMin","tetherMax","preventedOffset","_offsetModifierState$2","_mainSide","_altSide","_offset","_len","_min","_max","isOriginSide","_offsetModifierValue","_tetherMin","_tetherMax","_preventedOffset","preventOverflow$1","getHTMLElementScroll","getNodeScroll","isElementScaled","getCompositeRect","elementOrVirtualElement","isOffsetParentAnElement","offsetParentIsScaled","documentElement","order","modifiers","map","visited","modifier","sort","requires","dep","depModifier","orderModifiers","orderedModifiers","phase","debounce","fn","pending","resolve","mergeByName","merged","current","existing","DEFAULT_OPTIONS","areValidElements","args","_key","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","effectCleanupFns","isDestroyed","setOptionsAction","cleanupModifierEffects","m","runModifierEffects","_state$elements","_state$orderedModifie","_state$orderedModifie2","_ref$options","cleanupFn","noopFn","createPopper","__defProp","__defNormalProp","obj","commonjsGlobal","getDefaultExportFromCjs","objectProto$g","hasOwnProperty$d","baseHas$1","object","_baseHas","isArray$c","isArray_1","freeGlobal$1","_freeGlobal","freeGlobal","freeSelf","root$8","_root","root$7","Symbol$5","_Symbol","Symbol$4","objectProto$f","hasOwnProperty$c","nativeObjectToString$1","symToStringTag$1","getRawTag$1","isOwn","tag","unmasked","_getRawTag","objectProto$e","nativeObjectToString","objectToString$1","_objectToString","Symbol$3","getRawTag","objectToString","nullTag","undefinedTag","symToStringTag","baseGetTag$a","_baseGetTag","isObjectLike$b","isObjectLike_1","baseGetTag$9","isObjectLike$a","symbolTag$1","isSymbol$3","isSymbol_1","isArray$b","isSymbol$2","reIsDeepProp","reIsPlainProp","isKey$3","type","_isKey","isObject$a","isObject_1","baseGetTag$8","isObject$9","asyncTag","funcTag$1","genTag","proxyTag","isFunction$3","isFunction_1","root$6","coreJsData$1","_coreJsData","coreJsData","maskSrcKey","uid","isMasked$1","func","_isMasked","funcProto$2","funcToString$2","toSource$2","_toSource","isFunction$2","isMasked","isObject$8","toSource$1","reRegExpChar","reIsHostCtor","funcProto$1","objectProto$d","funcToString$1","hasOwnProperty$b","reIsNative","baseIsNative$1","_baseIsNative","getValue$1","_getValue","baseIsNative","getValue","getNative$7","_getNative","getNative$6","nativeCreate$4","_nativeCreate","nativeCreate$3","hashClear$1","_hashClear","hashDelete$1","_hashDelete","nativeCreate$2","HASH_UNDEFINED$2","objectProto$c","hasOwnProperty$a","hashGet$1","data2","_hashGet","nativeCreate$1","objectProto$b","hasOwnProperty$9","hashHas$1","_hashHas","nativeCreate","HASH_UNDEFINED$1","hashSet$1","_hashSet","hashClear","hashDelete","hashGet","hashHas","hashSet","Hash$1","entries","index2","length","entry","_Hash","listCacheClear$1","_listCacheClear","eq$6","other","eq_1","eq$5","assocIndexOf$4","_assocIndexOf","assocIndexOf$3","arrayProto","splice","listCacheDelete$1","lastIndex","_listCacheDelete","assocIndexOf$2","listCacheGet$1","_listCacheGet","assocIndexOf$1","listCacheHas$1","_listCacheHas","assocIndexOf","listCacheSet$1","_listCacheSet","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache$4","_ListCache","getNative$5","root$5","Map$3","_Map","Hash","ListCache$3","Map$2","mapCacheClear$1","_mapCacheClear","isKeyable$1","_isKeyable","isKeyable","getMapData$4","_getMapData","getMapData$3","mapCacheDelete$1","_mapCacheDelete","getMapData$2","mapCacheGet$1","_mapCacheGet","getMapData$1","mapCacheHas$1","_mapCacheHas","getMapData","mapCacheSet$1","size","_mapCacheSet","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache$3","_MapCache","MapCache$2","FUNC_ERROR_TEXT","memoize$1","resolver","memoized","cache","memoize_1","memoize","MAX_MEMOIZE_SIZE","memoizeCapped$1","_memoizeCapped","memoizeCapped","rePropName","reEscapeChar","stringToPath$1","string","number","quote","subString","_stringToPath","arrayMap$1","iteratee","_arrayMap","Symbol$2","arrayMap","isArray$a","isSymbol$1","symbolProto$1","symbolToString","baseToString$1","_baseToString","baseToString","toString$1","toString_1","isArray$9","isKey$2","stringToPath","toString","castPath$2","_castPath","baseGetTag$7","isObjectLike$9","argsTag$2","baseIsArguments$1","_baseIsArguments","baseIsArguments","isObjectLike$8","objectProto$a","hasOwnProperty$8","propertyIsEnumerable$1","isArguments$3","isArguments_1","MAX_SAFE_INTEGER$1","reIsUint","isIndex$3","_isIndex","MAX_SAFE_INTEGER","isLength$3","isLength_1","isSymbol","toKey$4","_toKey","castPath$1","isArguments$2","isArray$8","isIndex$2","isLength$2","toKey$3","hasPath$2","path","hasFunc","_hasPath","baseHas","hasPath$1","has$1","has_1","baseGetTag$6","isObjectLike$7","dateTag$2","baseIsDate$1","_baseIsDate","baseUnary$2","_baseUnary","_nodeUtilExports","_nodeUtil","module","exports","freeGlobal2","freeExports","freeModule","moduleExports","freeProcess","nodeUtil2","types","baseIsDate","baseUnary$1","nodeUtil$1","nodeIsDate","isDate$1","isDate_1","baseGetTag$5","isArray$7","isObjectLike$6","stringTag$2","isString","isString_1","arraySome$2","predicate","_arraySome","ListCache$2","stackClear$1","_stackClear","stackDelete$1","_stackDelete","stackGet$1","_stackGet","stackHas$1","_stackHas","ListCache$1","Map$1","MapCache$1","LARGE_ARRAY_SIZE","stackSet$1","pairs","_stackSet","ListCache","stackClear","stackDelete","stackGet","stackHas","stackSet","Stack$3","_Stack","HASH_UNDEFINED","setCacheAdd$1","_setCacheAdd","setCacheHas$1","_setCacheHas","MapCache","setCacheAdd","setCacheHas","SetCache$1","values","_SetCache","cacheHas$1","_cacheHas","SetCache","arraySome$1","cacheHas","COMPARE_PARTIAL_FLAG$5","COMPARE_UNORDERED_FLAG$3","equalArrays$2","bitmask","customizer","equalFunc","stack","isPartial","arrLength","othLength","arrStacked","othStacked","seen","arrValue","othValue","compared","othValue2","othIndex","_equalArrays","root$4","Uint8Array$2","_Uint8Array","mapToArray$1","_mapToArray","setToArray$1","set","_setToArray","Symbol$1","Uint8Array$1","eq$4","equalArrays$1","mapToArray","setToArray","COMPARE_PARTIAL_FLAG$4","COMPARE_UNORDERED_FLAG$2","boolTag$2","dateTag$1","errorTag$1","mapTag$2","numberTag$2","regexpTag$1","setTag$2","stringTag$1","symbolTag","arrayBufferTag$1","dataViewTag$2","symbolProto","symbolValueOf","equalByTag$1","convert","stacked","_equalByTag","arrayPush$1","_arrayPush","arrayPush","isArray$6","baseGetAllKeys$1","keysFunc","symbolsFunc","_baseGetAllKeys","arrayFilter$1","resIndex","_arrayFilter","stubArray$1","stubArray_1","arrayFilter","stubArray","objectProto$9","propertyIsEnumerable","nativeGetSymbols","getSymbols$1","symbol","_getSymbols","baseTimes$1","_baseTimes","isBufferExports","isBuffer$3","stubFalse","stubFalse_1","root2","stubFalse2","Buffer2","nativeIsBuffer","isBuffer2","baseGetTag$4","isLength$1","isObjectLike$5","argsTag$1","arrayTag$1","boolTag$1","dateTag","errorTag","funcTag","mapTag$1","numberTag$1","objectTag$3","regexpTag","setTag$1","stringTag","weakMapTag$1","arrayBufferTag","dataViewTag$1","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","typedArrayTags","baseIsTypedArray$1","_baseIsTypedArray","baseIsTypedArray","baseUnary","nodeUtil","nodeIsTypedArray","isTypedArray$3","isTypedArray_1","baseTimes","isArguments$1","isArray$5","isBuffer$2","isIndex$1","isTypedArray$2","objectProto$8","hasOwnProperty$7","arrayLikeKeys$2","inherited","isArr","isArg","isBuff","isType","skipIndexes","_arrayLikeKeys","objectProto$7","isPrototype$3","Ctor","proto","_isPrototype","overArg$2","transform","arg","_overArg","overArg$1","nativeKeys$1","_nativeKeys","isPrototype$2","nativeKeys","objectProto$6","hasOwnProperty$6","baseKeys$1","_baseKeys","isFunction$1","isLength","isArrayLike$5","isArrayLike_1","arrayLikeKeys$1","baseKeys","isArrayLike$4","keys$3","keys_1","baseGetAllKeys","getSymbols","keys$2","getAllKeys$1","_getAllKeys","getAllKeys","COMPARE_PARTIAL_FLAG$3","objectProto$5","hasOwnProperty$5","equalObjects$1","objProps","objLength","othProps","objStacked","skipCtor","objValue","objCtor","othCtor","_equalObjects","getNative$4","root$3","DataView$1","_DataView","getNative$3","root$2","Promise$2","_Promise","getNative$2","root$1","Set$1","_Set","getNative$1","root","WeakMap$1","_WeakMap","DataView","Map","Promise$1","Set","WeakMap","baseGetTag$3","toSource","mapTag","objectTag$2","promiseTag","setTag","weakMapTag","dataViewTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","getTag$1","ctorString","_getTag","Stack$2","equalArrays","equalByTag","equalObjects","getTag","isArray$4","isBuffer$1","isTypedArray$1","COMPARE_PARTIAL_FLAG$2","argsTag","arrayTag","objectTag$1","objectProto$4","hasOwnProperty$4","baseIsEqualDeep$1","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","_baseIsEqualDeep","baseIsEqualDeep","isObjectLike$4","baseIsEqual$2","_baseIsEqual","Stack$1","baseIsEqual$1","COMPARE_PARTIAL_FLAG$1","COMPARE_UNORDERED_FLAG$1","baseIsMatch$1","source","matchData","noCustomizer","srcValue","_baseIsMatch","isObject$7","isStrictComparable$2","_isStrictComparable","isStrictComparable$1","keys$1","getMatchData$1","_getMatchData","matchesStrictComparable$2","_matchesStrictComparable","baseIsMatch","getMatchData","matchesStrictComparable$1","baseMatches$1","_baseMatches","castPath","toKey$2","baseGet$2","_baseGet","baseGet$1","get$1","defaultValue","get_1","baseHasIn$1","_baseHasIn","baseHasIn","hasPath","hasIn$1","hasIn_1","baseIsEqual","get","hasIn","isKey$1","isStrictComparable","matchesStrictComparable","toKey$1","COMPARE_PARTIAL_FLAG","COMPARE_UNORDERED_FLAG","baseMatchesProperty$1","_baseMatchesProperty","identity$3","identity_1","baseProperty$1","_baseProperty","baseGet","basePropertyDeep$1","_basePropertyDeep","baseProperty","basePropertyDeep","isKey","toKey","property$1","property_1","baseMatches","baseMatchesProperty","identity$2","isArray$3","baseIteratee$2","_baseIteratee","createBaseFor$1","fromRight","iterable","props","_createBaseFor","createBaseFor","baseFor$2","_baseFor","baseFor$1","baseForOwn$2","_baseForOwn","isArrayLike$3","createBaseEach$1","eachFunc","collection","_createBaseEach","baseForOwn$1","createBaseEach","baseEach$1","_baseEach","baseEach","baseSome$1","collection2","_baseSome","eq$3","isArrayLike$2","isIndex","isObject$6","isIterateeCall$3","_isIterateeCall","arraySome","baseIteratee$1","baseSome","isArray$2","isIterateeCall$2","some","guard","some_1","baseGetTag$2","isObjectLike$3","boolTag","isBoolean","isBoolean_1","baseGetTag$1","isObjectLike$2","numberTag","isNumber","isNumber_1","getNative","defineProperty$2","_defineProperty","defineProperty$1","baseAssignValue$4","_baseAssignValue","baseAssignValue$3","eq$2","objectProto$3","hasOwnProperty$3","assignValue$1","_assignValue","baseAssignValue$2","baseForOwn","baseIteratee","mapValues","object2","mapValues_1","apply$2","thisArg","_apply","apply$1","nativeMax","overRest$1","otherArgs","_overRest","constant$1","constant_1","constant","defineProperty","identity$1","baseSetToString$1","_baseSetToString","HOT_COUNT","HOT_SPAN","nativeNow","shortOut$1","count","lastCalled","stamp","remaining","_shortOut","baseSetToString","shortOut","setToString$1","_setToString","identity","overRest","setToString","baseRest$3","_baseRest","nativeKeysIn$1","_nativeKeysIn","isObject$5","isPrototype$1","nativeKeysIn","objectProto$2","hasOwnProperty$2","baseKeysIn$1","isProto","_baseKeysIn","arrayLikeKeys","baseKeysIn","isArrayLike$1","keysIn$3","keysIn_1","baseRest$2","eq$1","isIterateeCall$1","keysIn$2","objectProto$1","hasOwnProperty$1","defaults","sources","propsIndex","propsLength","defaults_1","baseAssignValue$1","eq","assignMergeValue$2","_assignMergeValue","_cloneBufferExports","_cloneBuffer","allocUnsafe","cloneBuffer2","buffer","isDeep","Uint8Array2","cloneArrayBuffer$1","arrayBuffer","_cloneArrayBuffer","cloneArrayBuffer","cloneTypedArray$1","typedArray","_cloneTypedArray","copyArray$1","_copyArray","isObject$4","objectCreate","baseCreate$1","_baseCreate","overArg","getPrototype$2","_getPrototype","baseCreate","getPrototype$1","isPrototype","initCloneObject$1","_initCloneObject","isArrayLike","isObjectLike$1","isArrayLikeObject$1","isArrayLikeObject_1","baseGetTag","getPrototype","isObjectLike","objectTag","funcProto","objectProto","funcToString","hasOwnProperty","objectCtorString","isPlainObject$1","isPlainObject_1","safeGet$2","_safeGet","assignValue","baseAssignValue","copyObject$1","isNew","newValue","_copyObject","copyObject","keysIn$1","toPlainObject$1","toPlainObject_1","assignMergeValue$1","cloneBuffer","cloneTypedArray","copyArray","initCloneObject","isArguments","isArray$1","isArrayLikeObject","isBuffer","isFunction","isObject$3","isPlainObject","isTypedArray","safeGet$1","toPlainObject","baseMergeDeep$1","srcIndex","mergeFunc","isCommon","isTyped","_baseMergeDeep","Stack","assignMergeValue","baseFor","baseMergeDeep","isObject$2","keysIn","safeGet","baseMerge$2","_baseMerge","baseMerge$1","isObject$1","customDefaultsMerge$1","_customDefaultsMerge","baseRest$1","isIterateeCall","createAssigner$1","assigner","_createAssigner","baseMerge","createAssigner","mergeWith$1","mergeWith_1","apply","baseRest","customDefaultsMerge","mergeWith","defaultsDeep","defaultsDeep_1","head","head_1","last","last_1","getType","isDate","isObject","has","hasAny","p","pad","val","char","isArray","arrayHasItems","resolveEl","off","event","handler","opts","on","elementContains","onSpaceOrEnter","omit","keys2","ret","pick","clamp","num","toIntegerExports","toInteger$2","toInteger2","dirtyNumber","toInteger$1","getTimezoneOffsetInMillisecondsExports","getTimezoneOffsetInMilliseconds$2","getTimezoneOffsetInMilliseconds2","utcDate","getTimezoneOffsetInMilliseconds$1","tzTokenizeDate","timeZone","dtf","getDateTimeFormat","partsOffset","hackyOffset","typeToPos","formatted","filled","pos","error","parsed","dtfCache","testDateFormatted","hourCycleSupported","newDateUTC","fullYear","hour","minute","second","millisecond","MILLISECONDS_IN_HOUR$1","MILLISECONDS_IN_MINUTE$1","patterns$1","tzParseTimezone","timezoneString","isUtcDate","token2","absoluteOffset","hours2","validateTimezone","isValidTimezoneIANAString","toUtcDate","calcOffset","fixedOffset","fixOffset","asUTC","asTS","over","localTS","utcGuess","o2","o3","validIANATimezoneCache","timeZoneString","tzPattern","tzPattern$1","MILLISECONDS_IN_HOUR","MILLISECONDS_IN_MINUTE","DEFAULT_ADDITIONAL_DIGITS","patterns","toDate$1","argument","dirtyOptions","additionalDigits","dateStrings","splitDateString","parseYearResult","parseYear","restDateString","parseDate$1","timestamp","time","parseTime","parts","timeString","patternYYY","patternYYYYY","yearString","centuryString","validateDate","dayOfYear","validateDayOfYearDate","validateWeekDate","dayOfISOWeekYear","dayOfWeek","validateTime","isoWeekYear","fourthOfJanuaryDay","requiredArgs","required","_typeof","obj2","argStr","toInteger","startOfWeek$1","dirtyDate","_options$weekStartsOn","_options$locale","_options$locale$optio","_defaultOptions$local","_defaultOptions$local2","defaultOptions2","MILLISECONDS_IN_WEEK$2","differenceInCalendarWeeks","dirtyDateLeft","dirtyDateRight","startOfWeekLeft","startOfWeekRight","timestampLeft","timestampRight","lastDayOfMonth","startOfMonth","getWeeksInMonth","_options$firstWeekCon","firstWeekOfNextYear","startOfNextYear","firstWeekOfThisYear","startOfThisYear","startOfWeekYear","firstWeek","MILLISECONDS_IN_WEEK$1","getISOWeekYear","fourthOfJanuaryOfNextYear","fourthOfJanuaryOfThisYear","startOfISOWeekYear","fourthOfJanuary","MILLISECONDS_IN_WEEK","dirtyAmount","addMonths","dayOfMonth","endOfDesiredMonth","daysInMonth","addYears","viewAddressKeys","getDays","monthComps","prevMonthComps","nextMonthComps","days","firstDayOfWeek","firstWeekday","isoWeeknumbers","weeknumbers","numDays","numWeeks","prevMonthDaysToShow","daysInWeek","prevMonth","thisMonth","nextMonth","formatter","dayFromEnd","weekdayOrdinal","weekdayOrdinalFromEnd","weekFromEnd","today","todayDay","todayMonth","todayYear","w","weeksInMonth","weekday","startDate","noonDate","endDate","id","weekdayPosition","weekdayPositionFromEnd","weeknumber","isoWeeknumber","isToday","isFirstDay","isLastDay","onTop","onBottom","onLeft","onRight","getDayIndex","getWeeks","showWeeknumbers","showIsoWeeknumbers","result2","weekIndex","fromDay","toDay","getWeekdays","getPageId","getPageAddressForDate","view","addPages","newDate","pageIsValid","page","pageIsBeforePage","comparePage","pageIsAfterPage","pageIsBetweenPages","fromPage","toPage","pageIsEqualToPage","aPage","bPage","pageRangeToArray","from","to","getPageKey","config","getCachedPage","weeks","weekdays2","getPage","cachedPage","trimWeeks","dayObj","d","weekObj","Cache","createKey","createItem","removeKey","DateRange","Locale","span","repeat","DateRepeat","ranges","dayParts","range","startDayIndex","endDayIndex","DateRangeContext","_a2","_b2","MS_PER_DAY","record","cell","records","r","onStart","onEnd","startTime","endTime","allDay","locales","localeSettings","res","dow","L","title","weekdays","navMonths","inputDateTime","inputDateTime24hr","inputTime","inputTime24hr","dayPopover","model","iso","masks","maxSwipeTime","minHorizontalSwipeDistance","maxVerticalSwipeDistance","touch","defaultConfig","reactive","defaultLocales","computed","l","getDefault","DEFAULT_MONTH_CACHE_SIZE","DEFAULT_PAGE_CACHE_SIZE","resolveConfig","locales2","detLocale","localeKeys","validKey","k","lk","defLocale","timezone","masks2","monthCacheSize","pageCacheSize","getMonthPartsKey","getMonthParts","getDayNames","s","getMonthNames","getRelativeTimeNames","formatDate","mask","parseDate","nullDate","fillDate","patch","rules","isDateParts","fillParts","DatePatchKeys","applyRulesForDateParts","dte","getDateParts","getDateFromParts","milliseconds","getHourDates","GroupRuleType","GroupRuleType2","IntervalRuleType","IntervalRuleType2","ComponentRuleType","ComponentRuleType2","OrdinalComponentRuleType","OrdinalComponentRuleType2","IntervalRule","interval","dateParts","diffInDays","diffInWeeks","diffInMonths","diffInYears","ComponentRule","components2","validator","getter","DaysRule","WeekdaysRule","WeeksRule","MonthsRule","YearsRule","component","comp","isDayInMonth","isDayOfWeek","isWeekInMonth","isMonthInYear","OrdinalComponentRule","numOrArray","isOrdinalWeekInMonth","ordinalWeek","ordinalWeekday","FunctionRule","c","dayInMonth","weekInMonth","monthInYear","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","daysInMonths","maskMacros","DATE_PART_RANGES","literal","formatFlags","o","twoDigits","threeDigits","fourDigits","word","noop","monthUpdate","arrName","parseFlags","cent","normalizeMasks","prev","curr","daysToAdd","d1","d2","hrs","sec","ms","tzDate","monthParts","inLeapYear","firstDayOfMonth","getWeekdayDates","dates","localeId","units","rtf","names","unit","getMonthDates","datePartIsValid","part","rule","getDatePartOptions","getDatePartsOptions","getNearestDatePart","opt","diffPrev","str","dp","$0","info","literals","$1","attrKey","Attribute","theme","simpleRanges","repeatRanges","showPopover","hidePopover","togglePopover","getPopoverEventHandlers","visibility","click","hover","hoverFocus","focus","hovered","focused","clickHandler","e","mouseMoveHandler","mouseLeaveHandler","focusInHandler","focusOutHandler","handlers","removeHandlers","el","addHandlers","remove","popoverDirective","binding","oldValue","oldVisibility","newVisibility","addHorizontalSwipeHandler","maxSwipeTime2","minHorizontalSwipeDistance2","maxVerticalSwipeDistance2","startX","startY","isSwiping","touchStart","t","touchEnd","deltaX","deltaY","watchSkippers","skipWatcher","watcher","durationMs","handleWatcher","dateTime","windowExists","windowHasFeature","feature","useDarkMode","isDark","ref","displayMode","mediaQuery","mutationObserver","mqListener","ev","setupSystem","moListener","selector","darkClass","setupClass","config2","setup","stopObservers","stopWatch","watch","cleanup","onUnmounted","targetProps","displayProps","_defaultProfile","normalizeConfig","color","defaultProfile","rootColor","targetType","targetConfig","targetColor","HighlightRenderer","glyphs","highlight","highlights","base","BaseRenderer","collectionType","ContentRenderer","_","DotRenderer","BarRenderer","Theme","attr","renderer","contextKey$4","propsDef$2","createBase","minDate","maxDate","disabledDates","disabledAttribute","context","provide","useOrCreateBase","inject","contextKey$3","slotKey","provideSlots","slots","remap","useSlot","propsDef$1","emitsDef","contextKey$2","createCalendar","emit","containerRef","focusedDay","focusableDay","inTransition","navPopoverId","dayPopoverId","_view","_pages","transitionName","transitionPromise","removeHandlers2","step","firstPage","lastPage","minPage","getDateAddress","maxPage","navVisibility","isMonthly","isWeekly","isDaily","onTransitionBeforeEnter","onTransitionAfterEnter","addPages$1","address","count2","refreshDisabled","attributeContext","refreshFocusable","forDays","pages","hasAttributes","ctx","dayCells","getWeeknumberPosition","column","columnFromEnd","showWeeknumbers2","getPageForAttributes","attr2","getDefaultInitialPage","getTargetPageRange","force","pagesToAdd","getPageTransition","oldPage","newPage","defaultTransition","moveNext2","movePrev2","refreshPages","reject","transition","position2","row","rowFromEnd","weeknumberPosition","targetBy","canMove","canMoveBy","canMovePrev","canMoveNext","move","moveBy","movePrev","moveNext","tryFocusDate","inMonth","daySelector","focusableEl","focusDate","onDayClick","onDayMouseenter","onDayMouseleave","onDayFocusin","onDayFocusout","onDayKeydown","onKeydown","onWeeknumberClick","onMounted","toLeft","toRight","watchEffect","useCalendar","_sfc_main$k","defineComponent","timeout","popoverRef","resizeObserver","state2","updateDirection","onPopperUpdate","popperOptions","alignment","isLeftRight","alignment2","destroyPopper","setupPopper","nextTick","updateState","newState","setTimer","delay","isCurrentTarget","show","toggle","onDocumentClick","popperRef","onDocumentKeydown","onDocumentShowPopover","detail","onDocumentHidePopover","onDocumentTogglePopover","addEvents","removeEvents","beforeEnter","afterEnter","beforeLeave","afterLeave","onClick","onMouseOver","onMouseLeave","onFocusIn","onFocusOut","cleanupRO","toRefs","_export_sfc","sfc","_sfc_render$7","_ctx","_cache","$props","$setup","$data","$options","openBlock","createElementBlock","normalizeClass","createVNode","Transition","withCtx","mergeProps","renderSlot","createTextVNode","toDisplayString","createElementVNode","createCommentVNode","Popover","_hoisted_1$c","_hoisted_2$b","_hoisted_3$9","_sfc_main$j","__props","indicator","content","dot","bar","popover","unref","__default__$3","_sfc_main$i","slot","createBlock","resolveDynamicComponent","normalizeProps","_hoisted_1$b","_hoisted_2$a","_sfc_main$h","format","dayTitle","Fragment","renderList","_sfc_main$g","_hoisted_1$a","_hoisted_2$9","_hoisted_3$8","_sfc_render$6","IconChevronRight","_sfc_main$f","_hoisted_1$9","_hoisted_2$8","_hoisted_3$7","_sfc_render$5","IconChevronLeft","_sfc_main$e","_hoisted_1$8","_hoisted_2$7","_hoisted_3$6","_sfc_render$4","IconChevronDown","_sfc_main$d","_hoisted_1$7","_hoisted_2$6","_hoisted_3$5","_sfc_render$3","IconClock","icons","_sfc_main$c","icon","_hoisted_1$6","_hoisted_2$5","_hoisted_3$4","_hoisted_4$3","_sfc_main$b","navPlacement","navPopoverOptions","titleLeft","titleRight","layout_","gridStyle","normalizeStyle","withKeys","withDirectives","contextKey$1","createPage","getMonthItems","thisYear","getYearItems","startYear","endYear","items","enabled","usePage","_hoisted_1$5","_hoisted_2$4","_hoisted_3$3","_hoisted_4$2","_hoisted_5$2","_sfc_main$a","monthMode","yearGroupCount","selectedYear","selectedYearGroup","getYearGroupIndex","navContainer","focusFirstItem","toggleMode","getStartYear","groupIndex","getEndYear","prevItemsEnabled","movePrevYear","movePrevYearGroup","nextItemsEnabled","moveNextYear","moveNextYearGroup","monthItems","prevMonthItems","prevMonthItemsEnabled","nextMonthItems","nextMonthItemsEnabled","yearItems","prevYearItems","prevYearItemsEnabled","nextYearItems","nextYearItemsEnabled","activeItems","firstYear","lastYear","title2","_sfc_main$9","toRef","_sfc_main$8","_sfc_main$7","attributeCells","attributedDay","processPopover","popovers2","customData","resolvedPopover","hasHighlights","dots","hasDots","bars","hasBars","popovers","popoverAttrs","dayContentSlot","dayClasses","dayContentProps","tabindex","classes","dayContentEvents","dayPopover2","_hoisted_1$4","_hoisted_2$3","_hoisted_3$2","_hoisted_4$1","_hoisted_5$1","_sfc_render$2","_component_CalendarSlot","resolveComponent","_directive_popover","resolveDirective","wrapperClass","bgClass","toHandlers","CalendarDay","_hoisted_1$3","_hoisted_2$2","__default__$2","_sfc_main$6","label","$event","_sfc_main$5","_hoisted_1$2","_sfc_render$1","_component_CalendarHeader","_component_CalendarPage","_component_CalendarPageProvider","_component_CalendarDayPopover","_component_CalendarNavPopover","withModifiers","Calendar","contextKey","propsDef","emits","createDatePicker","baseCtx","showCalendar","datePickerPopoverId","dateValue","dragValue","inputValues","calendarRef","updateTimeout","dragTrackingValue","watchValue","isRange","valueStart","valueEnd","isDateMode","isDateTimeMode","isTimeMode","isDragging","modelConfig","normalizeConfig2","getDateParts2","inputMask","inputMaskHasTime","inputMaskHasDate","inputMaskPatch","popoverEvents","inputValue","inputEvents","events","onInputInput","onInputChange","onInputKeyup","selectAttribute","hasValue","dragAttribute","attrs","getAutoRules","_rules","accuracy","normalizeDateConfig","hasDateValue","hasRangeValue","valuesAreEqual","aIsDate","bIsDate","valueIsDisabled","normalizeValue","targetPriority","sortRange","denormalizeValue","updateValue","forceUpdateValue","clearIfEqual","fInput","hPopover","dragging","mValue","normalizedConfig","normalizedValue","valueRef","notify","denormalizedValue","hidePopover$1","formatInput","moveToValue","onInputUpdate","inputValue2","cancelDrag","onPopoverBeforeShow","onPopoverAfterShow","onPopoverBeforeHide","onPopoverAfterHide","handleDayClick","onDayMouseEnter","showPopover$1","togglePopover$1","dValue","useDatePicker","_amOptions","_pmOptions","createTimePicker","is24hr","hideTimeHeader","timeAccuracy","updateDpValue","updateParts","newParts","isStart","partsValid","showHeader","date2","isAM","hValue","amHourOptions","ho","pmHourOptions","hourOptions","isAMOptions","_hoisted_1$1","_hoisted_2$1","_hoisted_3$1","__default__$1","_sfc_main$4","selectedLabel","option","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_sfc_main$3","expose","timePicker","isRef","_sfc_main$2","positions","__default__","_sfc_main$1","guardReactiveProps","_sfc_main","datePicker","slotCtx","_sfc_render","_component_DatePickerPopover","_component_DatePickerBase","DatePicker","useSlots","__emit","createValidDate","isTimeInput","dateFormat","DATE_FORMATS","formatDescriptionId","uniqueId","formattedDate","normalizeDate","formatDateTime","mergedPopoverOptions","teleportModifiers","userModifiers","teleportPopoverOptions","unionBy","userOptionsWithoutModifiers","merge","useTemplateRef","placeholderText","moveToToday","onDatePickerUpdate","shouldEmit","startOfDay","inputChangeCb","isFormatMatch","normalizedDate"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103]}
1
+ {"version":3,"file":"DatePicker.js","sources":["../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/addDays.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/endOfDay.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/getDefaultOptions.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/getISODay.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/isAfter.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/isBefore.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/transpose.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/Setter.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/Parser.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers/EraParser.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/constants.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/utils.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers/YearParser.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers/LocalWeekYearParser.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers/ISOWeekYearParser.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers/ExtendedYearParser.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers/QuarterParser.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers/StandAloneQuarterParser.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers/MonthParser.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers/StandAloneMonthParser.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/setWeek.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers/LocalWeekParser.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/setISOWeek.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers/ISOWeekParser.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers/DateParser.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers/DayOfYearParser.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/setDay.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers/DayParser.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers/LocalDayParser.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers/StandAloneLocalDayParser.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/setISODay.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers/ISODayParser.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers/AMPMParser.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers/AMPMMidnightParser.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers/DayPeriodParser.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers/Hour1to12Parser.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers/Hour0to23Parser.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers/Hour0To11Parser.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers/Hour1To24Parser.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers/MinuteParser.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers/SecondParser.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers/FractionOfSecondParser.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneWithZParser.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneParser.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers/TimestampSecondsParser.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers/TimestampMillisecondsParser.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse/_lib/parsers.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/parse.mjs","../node_modules/.pnpm/date-fns@3.6.0/node_modules/date-fns/isMatch.mjs","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/enums.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/applyStyles.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/math.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/userAgent.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/contains.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/within.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/arrow.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getVariation.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/computeOffsets.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/detectOverflow.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/flip.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/hide.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/offset.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getAltAxis.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/orderModifiers.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/debounce.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/mergeByName.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/createPopper.js","../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/popper.js","../node_modules/.pnpm/v-calendar@3.1.2_@popperjs+core@2.11.8_vue@3.5.13_typescript@5.4.2_/node_modules/v-calendar/dist/es/index.js","../src/components/DatePicker/DatePicker.vue"],"sourcesContent":["import { toDate } from \"./toDate.mjs\";\nimport { constructFrom } from \"./constructFrom.mjs\";\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 *\n * @param date - The date to be changed\n * @param amount - The amount of days to be added.\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) {\n const _date = toDate(date);\n if (isNaN(amount)) return constructFrom(date, NaN);\n if (!amount) {\n // If 0 days, no-op to avoid changing times in the hour before end of DST\n return _date;\n }\n _date.setDate(_date.getDate() + amount);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default addDays;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name endOfDay\n * @category Day Helpers\n * @summary Return the end of a day for the given date.\n *\n * @description\n * Return the end of a day for the given date.\n * The result will be in the local timezone.\n *\n * @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 original date\n *\n * @returns The end of a day\n *\n * @example\n * // The end of a day for 2 September 2014 11:55:00:\n * const result = endOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 23:59:59.999\n */\nexport function endOfDay(date) {\n const _date = toDate(date);\n _date.setHours(23, 59, 59, 999);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default endOfDay;\n","import { getDefaultOptions as getInternalDefaultOptions } from \"./_lib/defaultOptions.mjs\";\n\n/**\n * @name getDefaultOptions\n * @category Common Helpers\n * @summary Get default options.\n * @pure false\n *\n * @description\n * Returns an object that contains defaults for\n * `options.locale`, `options.weekStartsOn` and `options.firstWeekContainsDate`\n * arguments for all functions.\n *\n * You can change these with [setDefaultOptions](https://date-fns.org/docs/setDefaultOptions).\n *\n * @returns The default options\n *\n * @example\n * const result = getDefaultOptions()\n * //=> {}\n *\n * @example\n * setDefaultOptions({ weekStarsOn: 1, firstWeekContainsDate: 4 })\n * const result = getDefaultOptions()\n * //=> { weekStarsOn: 1, firstWeekContainsDate: 4 }\n */\nexport function getDefaultOptions() {\n return Object.assign({}, getInternalDefaultOptions());\n}\n\n// Fallback for modularized imports:\nexport default getDefaultOptions;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name getISODay\n * @category Weekday Helpers\n * @summary Get the day of the ISO week of the given date.\n *\n * @description\n * Get the day of the ISO week of the given date,\n * which is 7 for Sunday, 1 for Monday etc.\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 *\n * @param date - The given date\n *\n * @returns The day of ISO week\n *\n * @example\n * // Which day of the ISO week is 26 February 2012?\n * const result = getISODay(new Date(2012, 1, 26))\n * //=> 7\n */\nexport function getISODay(date) {\n const _date = toDate(date);\n let day = _date.getDay();\n\n if (day === 0) {\n day = 7;\n }\n\n return day;\n}\n\n// Fallback for modularized imports:\nexport default getISODay;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name isAfter\n * @category Common Helpers\n * @summary Is the first date after the second one?\n *\n * @description\n * Is the first date after the second one?\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 date that should be after the other one to return true\n * @param dateToCompare - The date to compare with\n *\n * @returns The first date is after the second date\n *\n * @example\n * // Is 10 July 1989 after 11 February 1987?\n * const result = isAfter(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> true\n */\nexport function isAfter(date, dateToCompare) {\n const _date = toDate(date);\n const _dateToCompare = toDate(dateToCompare);\n return _date.getTime() > _dateToCompare.getTime();\n}\n\n// Fallback for modularized imports:\nexport default isAfter;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name isBefore\n * @category Common Helpers\n * @summary Is the first date before the second one?\n *\n * @description\n * Is the first date before the second one?\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 date that should be before the other one to return true\n * @param dateToCompare - The date to compare with\n *\n * @returns The first date is before the second date\n *\n * @example\n * // Is 10 July 1989 before 11 February 1987?\n * const result = isBefore(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> false\n */\nexport function isBefore(date, dateToCompare) {\n const _date = toDate(date);\n const _dateToCompare = toDate(dateToCompare);\n return +_date < +_dateToCompare;\n}\n\n// Fallback for modularized imports:\nexport default isBefore;\n","import { constructFrom } from \"./constructFrom.mjs\";\n\n/**\n * @name transpose\n * @category Generic Helpers\n * @summary Transpose the date to the given constructor.\n *\n * @description\n * The function transposes the date to the given constructor. It helps you\n * to transpose the date in the system time zone to say `UTCDate` or any other\n * date extension.\n *\n * @typeParam DateInputType - The input `Date` type derived from the passed argument.\n * @typeParam DateOutputType - The output `Date` type derived from the passed constructor.\n *\n * @param fromDate - The date to use values from\n * @param constructor - The date constructor to use\n *\n * @returns Date transposed to the given constructor\n *\n * @example\n * // Create July 10, 2022 00:00 in locale time zone\n * const date = new Date(2022, 6, 10)\n * //=> 'Sun Jul 10 2022 00:00:00 GMT+0800 (Singapore Standard Time)'\n *\n * @example\n * // Transpose the date to July 10, 2022 00:00 in UTC\n * transpose(date, UTCDate)\n * //=> 'Sun Jul 10 2022 00:00:00 GMT+0000 (Coordinated Universal Time)'\n */\nexport function transpose(fromDate, constructor) {\n const date =\n constructor instanceof Date\n ? constructFrom(constructor, 0)\n : new constructor(0);\n date.setFullYear(\n fromDate.getFullYear(),\n fromDate.getMonth(),\n fromDate.getDate(),\n );\n date.setHours(\n fromDate.getHours(),\n fromDate.getMinutes(),\n fromDate.getSeconds(),\n fromDate.getMilliseconds(),\n );\n return date;\n}\n\n// Fallback for modularized imports:\nexport default transpose;\n","import { transpose } from \"../../transpose.mjs\";\nimport { constructFrom } from \"../../constructFrom.mjs\";\n\nconst TIMEZONE_UNIT_PRIORITY = 10;\n\nexport class Setter {\n subPriority = 0;\n\n validate(_utcDate, _options) {\n return true;\n }\n}\n\nexport class ValueSetter extends Setter {\n constructor(\n value,\n\n validateValue,\n\n setValue,\n\n priority,\n subPriority,\n ) {\n super();\n this.value = value;\n this.validateValue = validateValue;\n this.setValue = setValue;\n this.priority = priority;\n if (subPriority) {\n this.subPriority = subPriority;\n }\n }\n\n validate(date, options) {\n return this.validateValue(date, this.value, options);\n }\n\n set(date, flags, options) {\n return this.setValue(date, flags, this.value, options);\n }\n}\n\nexport class DateToSystemTimezoneSetter extends Setter {\n priority = TIMEZONE_UNIT_PRIORITY;\n subPriority = -1;\n set(date, flags) {\n if (flags.timestampIsSet) return date;\n return constructFrom(date, transpose(date, Date));\n }\n}\n","import { ValueSetter } from \"./Setter.mjs\";\n\nexport class Parser {\n run(dateString, token, match, options) {\n const result = this.parse(dateString, token, match, options);\n if (!result) {\n return null;\n }\n\n return {\n setter: new ValueSetter(\n result.value,\n this.validate,\n this.set,\n this.priority,\n this.subPriority,\n ),\n rest: result.rest,\n };\n }\n\n validate(_utcDate, _value, _options) {\n return true;\n }\n}\n","import { Parser } from \"../Parser.mjs\";\n\nexport class EraParser extends Parser {\n priority = 140;\n\n parse(dateString, token, match) {\n switch (token) {\n // AD, BC\n case \"G\":\n case \"GG\":\n case \"GGG\":\n return (\n match.era(dateString, { width: \"abbreviated\" }) ||\n match.era(dateString, { width: \"narrow\" })\n );\n\n // A, B\n case \"GGGGG\":\n return match.era(dateString, { width: \"narrow\" });\n // Anno Domini, Before Christ\n case \"GGGG\":\n default:\n return (\n match.era(dateString, { width: \"wide\" }) ||\n match.era(dateString, { width: \"abbreviated\" }) ||\n match.era(dateString, { width: \"narrow\" })\n );\n }\n }\n\n set(date, flags, value) {\n flags.era = value;\n date.setFullYear(value, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"R\", \"u\", \"t\", \"T\"];\n}\n","export const numericPatterns = {\n month: /^(1[0-2]|0?\\d)/, // 0 to 12\n date: /^(3[0-1]|[0-2]?\\d)/, // 0 to 31\n dayOfYear: /^(36[0-6]|3[0-5]\\d|[0-2]?\\d?\\d)/, // 0 to 366\n week: /^(5[0-3]|[0-4]?\\d)/, // 0 to 53\n hour23h: /^(2[0-3]|[0-1]?\\d)/, // 0 to 23\n hour24h: /^(2[0-4]|[0-1]?\\d)/, // 0 to 24\n hour11h: /^(1[0-1]|0?\\d)/, // 0 to 11\n hour12h: /^(1[0-2]|0?\\d)/, // 0 to 12\n minute: /^[0-5]?\\d/, // 0 to 59\n second: /^[0-5]?\\d/, // 0 to 59\n\n singleDigit: /^\\d/, // 0 to 9\n twoDigits: /^\\d{1,2}/, // 0 to 99\n threeDigits: /^\\d{1,3}/, // 0 to 999\n fourDigits: /^\\d{1,4}/, // 0 to 9999\n\n anyDigitsSigned: /^-?\\d+/,\n singleDigitSigned: /^-?\\d/, // 0 to 9, -0 to -9\n twoDigitsSigned: /^-?\\d{1,2}/, // 0 to 99, -0 to -99\n threeDigitsSigned: /^-?\\d{1,3}/, // 0 to 999, -0 to -999\n fourDigitsSigned: /^-?\\d{1,4}/, // 0 to 9999, -0 to -9999\n};\n\nexport const timezonePatterns = {\n basicOptionalMinutes: /^([+-])(\\d{2})(\\d{2})?|Z/,\n basic: /^([+-])(\\d{2})(\\d{2})|Z/,\n basicOptionalSeconds: /^([+-])(\\d{2})(\\d{2})((\\d{2}))?|Z/,\n extended: /^([+-])(\\d{2}):(\\d{2})|Z/,\n extendedOptionalSeconds: /^([+-])(\\d{2}):(\\d{2})(:(\\d{2}))?|Z/,\n};\n","import {\n millisecondsInHour,\n millisecondsInMinute,\n millisecondsInSecond,\n} from \"../../constants.mjs\";\nimport { numericPatterns } from \"./constants.mjs\";\n\nexport function mapValue(parseFnResult, mapFn) {\n if (!parseFnResult) {\n return parseFnResult;\n }\n\n return {\n value: mapFn(parseFnResult.value),\n rest: parseFnResult.rest,\n };\n}\n\nexport function parseNumericPattern(pattern, dateString) {\n const matchResult = dateString.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n return {\n value: parseInt(matchResult[0], 10),\n rest: dateString.slice(matchResult[0].length),\n };\n}\n\nexport function parseTimezonePattern(pattern, dateString) {\n const matchResult = dateString.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n // Input is 'Z'\n if (matchResult[0] === \"Z\") {\n return {\n value: 0,\n rest: dateString.slice(1),\n };\n }\n\n const sign = matchResult[1] === \"+\" ? 1 : -1;\n const hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0;\n const minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0;\n const seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0;\n\n return {\n value:\n sign *\n (hours * millisecondsInHour +\n minutes * millisecondsInMinute +\n seconds * millisecondsInSecond),\n rest: dateString.slice(matchResult[0].length),\n };\n}\n\nexport function parseAnyDigitsSigned(dateString) {\n return parseNumericPattern(numericPatterns.anyDigitsSigned, dateString);\n}\n\nexport function parseNDigits(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigit, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigits, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigits, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigits, dateString);\n default:\n return parseNumericPattern(new RegExp(\"^\\\\d{1,\" + n + \"}\"), dateString);\n }\n}\n\nexport function parseNDigitsSigned(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigitSigned, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigitsSigned, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigitsSigned, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigitsSigned, dateString);\n default:\n return parseNumericPattern(new RegExp(\"^-?\\\\d{1,\" + n + \"}\"), dateString);\n }\n}\n\nexport function dayPeriodEnumToHours(dayPeriod) {\n switch (dayPeriod) {\n case \"morning\":\n return 4;\n case \"evening\":\n return 17;\n case \"pm\":\n case \"noon\":\n case \"afternoon\":\n return 12;\n case \"am\":\n case \"midnight\":\n case \"night\":\n default:\n return 0;\n }\n}\n\nexport function normalizeTwoDigitYear(twoDigitYear, currentYear) {\n const isCommonEra = currentYear > 0;\n // Absolute number of the current year:\n // 1 -> 1 AC\n // 0 -> 1 BC\n // -1 -> 2 BC\n const absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;\n\n let result;\n if (absCurrentYear <= 50) {\n result = twoDigitYear || 100;\n } else {\n const rangeEnd = absCurrentYear + 50;\n const rangeEndCentury = Math.trunc(rangeEnd / 100) * 100;\n const isPreviousCentury = twoDigitYear >= rangeEnd % 100;\n result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0);\n }\n\n return isCommonEra ? result : 1 - result;\n}\n\nexport function isLeapYearIndex(year) {\n return year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0);\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { mapValue, normalizeTwoDigitYear, parseNDigits } from \"../utils.mjs\";\n\n// From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns\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 |\nexport class YearParser extends Parser {\n priority = 130;\n incompatibleTokens = [\"Y\", \"R\", \"u\", \"w\", \"I\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n\n parse(dateString, token, match) {\n const valueCallback = (year) => ({\n year,\n isTwoDigitYear: token === \"yy\",\n });\n\n switch (token) {\n case \"y\":\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case \"yo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"year\",\n }),\n valueCallback,\n );\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n\n validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n\n set(date, flags, value) {\n const currentYear = date.getFullYear();\n\n if (value.isTwoDigitYear) {\n const normalizedTwoDigitYear = normalizeTwoDigitYear(\n value.year,\n currentYear,\n );\n date.setFullYear(normalizedTwoDigitYear, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n const year =\n !(\"era\" in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setFullYear(year, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n}\n","import { getWeekYear } from \"../../../getWeekYear.mjs\";\nimport { startOfWeek } from \"../../../startOfWeek.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { mapValue, normalizeTwoDigitYear, parseNDigits } from \"../utils.mjs\";\n\n// Local week-numbering year\nexport class LocalWeekYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token, match) {\n const valueCallback = (year) => ({\n year,\n isTwoDigitYear: token === \"YY\",\n });\n\n switch (token) {\n case \"Y\":\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case \"Yo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"year\",\n }),\n valueCallback,\n );\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n\n validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n\n set(date, flags, value, options) {\n const currentYear = getWeekYear(date, options);\n\n if (value.isTwoDigitYear) {\n const normalizedTwoDigitYear = normalizeTwoDigitYear(\n value.year,\n currentYear,\n );\n date.setFullYear(\n normalizedTwoDigitYear,\n 0,\n options.firstWeekContainsDate,\n );\n date.setHours(0, 0, 0, 0);\n return startOfWeek(date, options);\n }\n\n const year =\n !(\"era\" in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setFullYear(year, 0, options.firstWeekContainsDate);\n date.setHours(0, 0, 0, 0);\n return startOfWeek(date, options);\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"Q\",\n \"q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"t\",\n \"T\",\n ];\n}\n","import { startOfISOWeek } from \"../../../startOfISOWeek.mjs\";\nimport { constructFrom } from \"../../../constructFrom.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigitsSigned } from \"../utils.mjs\";\n\n// ISO week-numbering year\nexport class ISOWeekYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token) {\n if (token === \"R\") {\n return parseNDigitsSigned(4, dateString);\n }\n\n return parseNDigitsSigned(token.length, dateString);\n }\n\n set(date, _flags, value) {\n const firstWeekOfYear = constructFrom(date, 0);\n firstWeekOfYear.setFullYear(value, 0, 4);\n firstWeekOfYear.setHours(0, 0, 0, 0);\n return startOfISOWeek(firstWeekOfYear);\n }\n\n incompatibleTokens = [\n \"G\",\n \"y\",\n \"Y\",\n \"u\",\n \"Q\",\n \"q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { parseNDigitsSigned } from \"../utils.mjs\";\n\nexport class ExtendedYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token) {\n if (token === \"u\") {\n return parseNDigitsSigned(4, dateString);\n }\n\n return parseNDigitsSigned(token.length, dateString);\n }\n\n set(date, _flags, value) {\n date.setFullYear(value, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"G\", \"y\", \"Y\", \"R\", \"w\", \"I\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { parseNDigits } from \"../utils.mjs\";\n\nexport class QuarterParser extends Parser {\n priority = 120;\n\n parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case \"Q\":\n case \"QQ\": // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case \"Qo\":\n return match.ordinalNumber(dateString, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"QQQ\":\n return (\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"QQQQQ\":\n return match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"QQQQ\":\n default:\n return (\n match.quarter(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n\n set(date, _flags, value) {\n date.setMonth((value - 1) * 3, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { parseNDigits } from \"../utils.mjs\";\n\nexport class StandAloneQuarterParser extends Parser {\n priority = 120;\n\n parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case \"q\":\n case \"qq\": // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case \"qo\":\n return match.ordinalNumber(dateString, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"qqq\":\n return (\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n })\n );\n\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"qqqqq\":\n return match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"qqqq\":\n default:\n return (\n match.quarter(dateString, {\n width: \"wide\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n\n set(date, _flags, value) {\n date.setMonth((value - 1) * 3, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { mapValue, parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class MonthParser extends Parser {\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"L\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n\n priority = 110;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => value - 1;\n\n switch (token) {\n // 1, 2, ..., 12\n case \"M\":\n return mapValue(\n parseNumericPattern(numericPatterns.month, dateString),\n valueCallback,\n );\n // 01, 02, ..., 12\n case \"MM\":\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case \"Mo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"month\",\n }),\n valueCallback,\n );\n // Jan, Feb, ..., Dec\n case \"MMM\":\n return (\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // J, F, ..., D\n case \"MMMMM\":\n return match.month(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // January, February, ..., December\n case \"MMMM\":\n default:\n return (\n match.month(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n date.setMonth(value, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { mapValue, parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class StandAloneMonthParser extends Parser {\n priority = 110;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => value - 1;\n\n switch (token) {\n // 1, 2, ..., 12\n case \"L\":\n return mapValue(\n parseNumericPattern(numericPatterns.month, dateString),\n valueCallback,\n );\n // 01, 02, ..., 12\n case \"LL\":\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case \"Lo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"month\",\n }),\n valueCallback,\n );\n // Jan, Feb, ..., Dec\n case \"LLL\":\n return (\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // J, F, ..., D\n case \"LLLLL\":\n return match.month(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // January, February, ..., December\n case \"LLLL\":\n default:\n return (\n match.month(dateString, { width: \"wide\", context: \"standalone\" }) ||\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n date.setMonth(value, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"M\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { getWeek } from \"./getWeek.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * The {@link setWeek} function options.\n */\n\n/**\n * @name setWeek\n * @category Week Helpers\n * @summary Set the local week to the given date.\n *\n * @description\n * Set the local week to the given date, saving the weekday number.\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 *\n * @param date - The date to be changed\n * @param week - The week of the new date\n * @param options - An object with options\n *\n * @returns The new date with the local week set\n *\n * @example\n * // Set the 1st week to 2 January 2005 with default options:\n * const result = setWeek(new Date(2005, 0, 2), 1)\n * //=> Sun Dec 26 2004 00:00:00\n *\n * @example\n * // Set the 1st week to 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 = setWeek(new Date(2005, 0, 2), 1, {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> Sun Jan 4 2004 00:00:00\n */\nexport function setWeek(date, week, options) {\n const _date = toDate(date);\n const diff = getWeek(_date, options) - week;\n _date.setDate(_date.getDate() - diff * 7);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default setWeek;\n","import { setWeek } from \"../../../setWeek.mjs\";\nimport { startOfWeek } from \"../../../startOfWeek.mjs\";\nimport { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\n// Local week of year\nexport class LocalWeekParser extends Parser {\n priority = 100;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"w\":\n return parseNumericPattern(numericPatterns.week, dateString);\n case \"wo\":\n return match.ordinalNumber(dateString, { unit: \"week\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n\n set(date, _flags, value, options) {\n return startOfWeek(setWeek(date, value, options), options);\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"t\",\n \"T\",\n ];\n}\n","import { getISOWeek } from \"./getISOWeek.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name setISOWeek\n * @category ISO Week Helpers\n * @summary Set the ISO week to the given date.\n *\n * @description\n * Set the ISO week to the given date, saving the weekday number.\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 *\n * @param date - The date to be changed\n * @param week - The ISO week of the new date\n *\n * @returns The new date with the ISO week set\n *\n * @example\n * // Set the 53rd ISO week to 7 August 2004:\n * const result = setISOWeek(new Date(2004, 7, 7), 53)\n * //=> Sat Jan 01 2005 00:00:00\n */\nexport function setISOWeek(date, week) {\n const _date = toDate(date);\n const diff = getISOWeek(_date) - week;\n _date.setDate(_date.getDate() - diff * 7);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default setISOWeek;\n","import { setISOWeek } from \"../../../setISOWeek.mjs\";\nimport { startOfISOWeek } from \"../../../startOfISOWeek.mjs\";\nimport { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\n// ISO week of year\nexport class ISOWeekParser extends Parser {\n priority = 100;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"I\":\n return parseNumericPattern(numericPatterns.week, dateString);\n case \"Io\":\n return match.ordinalNumber(dateString, { unit: \"week\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n\n set(date, _flags, value) {\n return startOfISOWeek(setISOWeek(date, value));\n }\n\n incompatibleTokens = [\n \"y\",\n \"Y\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport {\n isLeapYearIndex,\n parseNDigits,\n parseNumericPattern,\n} from \"../utils.mjs\";\n\nconst DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nconst DAYS_IN_MONTH_LEAP_YEAR = [\n 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31,\n];\n\n// Day of the month\nexport class DateParser extends Parser {\n priority = 90;\n subPriority = 1;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"d\":\n return parseNumericPattern(numericPatterns.date, dateString);\n case \"do\":\n return match.ordinalNumber(dateString, { unit: \"date\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(date, value) {\n const year = date.getFullYear();\n const isLeapYear = isLeapYearIndex(year);\n const month = date.getMonth();\n if (isLeapYear) {\n return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month];\n } else {\n return value >= 1 && value <= DAYS_IN_MONTH[month];\n }\n }\n\n set(date, _flags, value) {\n date.setDate(value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport {\n isLeapYearIndex,\n parseNDigits,\n parseNumericPattern,\n} from \"../utils.mjs\";\n\nexport class DayOfYearParser extends Parser {\n priority = 90;\n\n subpriority = 1;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"D\":\n case \"DD\":\n return parseNumericPattern(numericPatterns.dayOfYear, dateString);\n case \"Do\":\n return match.ordinalNumber(dateString, { unit: \"date\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(date, value) {\n const year = date.getFullYear();\n const isLeapYear = isLeapYearIndex(year);\n if (isLeapYear) {\n return value >= 1 && value <= 366;\n } else {\n return value >= 1 && value <= 365;\n }\n }\n\n set(date, _flags, value) {\n date.setMonth(0, value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"E\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { addDays } from \"./addDays.mjs\";\nimport { toDate } from \"./toDate.mjs\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.mjs\";\n\n/**\n * The {@link setDay} function options.\n */\n\n/**\n * @name setDay\n * @category Weekday Helpers\n * @summary Set the day of the week to the given date.\n *\n * @description\n * Set the day of the week 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 *\n * @param date - The date to be changed\n * @param day - The day of the week of the new date\n * @param options - An object with options.\n *\n * @returns The new date with the day of the week set\n *\n * @example\n * // Set week day to Sunday, with the default weekStartsOn of Sunday:\n * const result = setDay(new Date(2014, 8, 1), 0)\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // Set week day to Sunday, with a weekStartsOn of Monday:\n * const result = setDay(new Date(2014, 8, 1), 0, { weekStartsOn: 1 })\n * //=> Sun Sep 07 2014 00:00:00\n */\nexport function setDay(date, day, 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);\n const currentDay = _date.getDay();\n\n const remainder = day % 7;\n const dayIndex = (remainder + 7) % 7;\n\n const delta = 7 - weekStartsOn;\n const diff =\n day < 0 || day > 6\n ? day - ((currentDay + delta) % 7)\n : ((dayIndex + delta) % 7) - ((currentDay + delta) % 7);\n return addDays(_date, diff);\n}\n\n// Fallback for modularized imports:\nexport default setDay;\n","import { setDay } from \"../../../setDay.mjs\";\nimport { Parser } from \"../Parser.mjs\";\n\n// Day of week\nexport class DayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match) {\n switch (token) {\n // Tue\n case \"E\":\n case \"EE\":\n case \"EEE\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // T\n case \"EEEEE\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"EEEEEE\":\n return (\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // Tuesday\n case \"EEEE\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"D\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n}\n","import { setDay } from \"../../../setDay.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { mapValue, parseNDigits } from \"../utils.mjs\";\n\n// Local day of week\nexport class LocalDayParser extends Parser {\n priority = 90;\n parse(dateString, token, match, options) {\n const valueCallback = (value) => {\n // We want here floor instead of trunc, so we get -7 for value 0 instead of 0\n const wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return ((value + options.weekStartsOn + 6) % 7) + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case \"e\":\n case \"ee\": // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case \"eo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"day\",\n }),\n valueCallback,\n );\n // Tue\n case \"eee\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // T\n case \"eeeee\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"eeeeee\":\n return (\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // Tuesday\n case \"eeee\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"E\",\n \"i\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { setDay } from \"../../../setDay.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { mapValue, parseNDigits } from \"../utils.mjs\";\n\n// Stand-alone local day of week\nexport class StandAloneLocalDayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match, options) {\n const valueCallback = (value) => {\n // We want here floor instead of trunc, so we get -7 for value 0 instead of 0\n const wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return ((value + options.weekStartsOn + 6) % 7) + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case \"c\":\n case \"cc\": // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case \"co\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"day\",\n }),\n valueCallback,\n );\n // Tue\n case \"ccc\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // T\n case \"ccccc\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // Tu\n case \"cccccc\":\n return (\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // Tuesday\n case \"cccc\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"standalone\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"E\",\n \"i\",\n \"e\",\n \"t\",\n \"T\",\n ];\n}\n","import { addDays } from \"./addDays.mjs\";\nimport { getISODay } from \"./getISODay.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name setISODay\n * @category Weekday Helpers\n * @summary Set the day of the ISO week to the given date.\n *\n * @description\n * Set the day of the ISO week to the given date.\n * ISO week starts with Monday.\n * 7 is the index of Sunday, 1 is the index of Monday etc.\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 date to be changed\n * @param day - The day of the ISO week of the new date\n *\n * @returns The new date with the day of the ISO week set\n *\n * @example\n * // Set Sunday to 1 September 2014:\n * const result = setISODay(new Date(2014, 8, 1), 7)\n * //=> Sun Sep 07 2014 00:00:00\n */\nexport function setISODay(date, day) {\n const _date = toDate(date);\n const currentDay = getISODay(_date);\n const diff = day - currentDay;\n return addDays(_date, diff);\n}\n\n// Fallback for modularized imports:\nexport default setISODay;\n","import { setISODay } from \"../../../setISODay.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { mapValue, parseNDigits } from \"../utils.mjs\";\n\n// ISO day of week\nexport class ISODayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => {\n if (value === 0) {\n return 7;\n }\n return value;\n };\n\n switch (token) {\n // 2\n case \"i\":\n case \"ii\": // 02\n return parseNDigits(token.length, dateString);\n // 2nd\n case \"io\":\n return match.ordinalNumber(dateString, { unit: \"day\" });\n // Tue\n case \"iii\":\n return mapValue(\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // T\n case \"iiiii\":\n return mapValue(\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // Tu\n case \"iiiiii\":\n return mapValue(\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // Tuesday\n case \"iiii\":\n default:\n return mapValue(\n match.day(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 7;\n }\n\n set(date, _flags, value) {\n date = setISODay(date, value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"Y\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"E\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { dayPeriodEnumToHours } from \"../utils.mjs\";\n\nexport class AMPMParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"a\":\n case \"aa\":\n case \"aaa\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"aaaaa\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"aaaa\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"b\", \"B\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { dayPeriodEnumToHours } from \"../utils.mjs\";\n\nexport class AMPMMidnightParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"b\":\n case \"bb\":\n case \"bbb\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"bbbbb\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"bbbb\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"B\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { dayPeriodEnumToHours } from \"../utils.mjs\";\n\n// in the morning, in the afternoon, in the evening, at night\nexport class DayPeriodParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"B\":\n case \"BB\":\n case \"BBB\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"BBBBB\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"BBBB\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class Hour1to12Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"h\":\n return parseNumericPattern(numericPatterns.hour12h, dateString);\n case \"ho\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 12;\n }\n\n set(date, _flags, value) {\n const isPM = date.getHours() >= 12;\n if (isPM && value < 12) {\n date.setHours(value + 12, 0, 0, 0);\n } else if (!isPM && value === 12) {\n date.setHours(0, 0, 0, 0);\n } else {\n date.setHours(value, 0, 0, 0);\n }\n return date;\n }\n\n incompatibleTokens = [\"H\", \"K\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class Hour0to23Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"H\":\n return parseNumericPattern(numericPatterns.hour23h, dateString);\n case \"Ho\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 23;\n }\n\n set(date, _flags, value) {\n date.setHours(value, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"h\", \"K\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class Hour0To11Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"K\":\n return parseNumericPattern(numericPatterns.hour11h, dateString);\n case \"Ko\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n const isPM = date.getHours() >= 12;\n if (isPM && value < 12) {\n date.setHours(value + 12, 0, 0, 0);\n } else {\n date.setHours(value, 0, 0, 0);\n }\n return date;\n }\n\n incompatibleTokens = [\"h\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class Hour1To24Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"k\":\n return parseNumericPattern(numericPatterns.hour24h, dateString);\n case \"ko\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 24;\n }\n\n set(date, _flags, value) {\n const hours = value <= 24 ? value % 24 : value;\n date.setHours(hours, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"h\", \"H\", \"K\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class MinuteParser extends Parser {\n priority = 60;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"m\":\n return parseNumericPattern(numericPatterns.minute, dateString);\n case \"mo\":\n return match.ordinalNumber(dateString, { unit: \"minute\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n\n set(date, _flags, value) {\n date.setMinutes(value, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseNDigits, parseNumericPattern } from \"../utils.mjs\";\n\nexport class SecondParser extends Parser {\n priority = 50;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"s\":\n return parseNumericPattern(numericPatterns.second, dateString);\n case \"so\":\n return match.ordinalNumber(dateString, { unit: \"second\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n\n set(date, _flags, value) {\n date.setSeconds(value, 0);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.mjs\";\nimport { mapValue, parseNDigits } from \"../utils.mjs\";\n\nexport class FractionOfSecondParser extends Parser {\n priority = 30;\n\n parse(dateString, token) {\n const valueCallback = (value) =>\n Math.trunc(value * Math.pow(10, -token.length + 3));\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n\n set(date, _flags, value) {\n date.setMilliseconds(value);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { constructFrom } from \"../../../constructFrom.mjs\";\nimport { getTimezoneOffsetInMilliseconds } from \"../../../_lib/getTimezoneOffsetInMilliseconds.mjs\";\nimport { timezonePatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseTimezonePattern } from \"../utils.mjs\";\n\n// Timezone (ISO-8601. +00:00 is `'Z'`)\nexport class ISOTimezoneWithZParser extends Parser {\n priority = 10;\n\n parse(dateString, token) {\n switch (token) {\n case \"X\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalMinutes,\n dateString,\n );\n case \"XX\":\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case \"XXXX\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalSeconds,\n dateString,\n );\n case \"XXXXX\":\n return parseTimezonePattern(\n timezonePatterns.extendedOptionalSeconds,\n dateString,\n );\n case \"XXX\":\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n\n set(date, flags, value) {\n if (flags.timestampIsSet) return date;\n return constructFrom(\n date,\n date.getTime() - getTimezoneOffsetInMilliseconds(date) - value,\n );\n }\n\n incompatibleTokens = [\"t\", \"T\", \"x\"];\n}\n","import { constructFrom } from \"../../../constructFrom.mjs\";\nimport { getTimezoneOffsetInMilliseconds } from \"../../../_lib/getTimezoneOffsetInMilliseconds.mjs\";\nimport { timezonePatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseTimezonePattern } from \"../utils.mjs\";\n\n// Timezone (ISO-8601)\nexport class ISOTimezoneParser extends Parser {\n priority = 10;\n\n parse(dateString, token) {\n switch (token) {\n case \"x\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalMinutes,\n dateString,\n );\n case \"xx\":\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case \"xxxx\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalSeconds,\n dateString,\n );\n case \"xxxxx\":\n return parseTimezonePattern(\n timezonePatterns.extendedOptionalSeconds,\n dateString,\n );\n case \"xxx\":\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n\n set(date, flags, value) {\n if (flags.timestampIsSet) return date;\n return constructFrom(\n date,\n date.getTime() - getTimezoneOffsetInMilliseconds(date) - value,\n );\n }\n\n incompatibleTokens = [\"t\", \"T\", \"X\"];\n}\n","import { constructFrom } from \"../../../constructFrom.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseAnyDigitsSigned } from \"../utils.mjs\";\n\nexport class TimestampSecondsParser extends Parser {\n priority = 40;\n\n parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n\n set(date, _flags, value) {\n return [constructFrom(date, value * 1000), { timestampIsSet: true }];\n }\n\n incompatibleTokens = \"*\";\n}\n","import { constructFrom } from \"../../../constructFrom.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { parseAnyDigitsSigned } from \"../utils.mjs\";\n\nexport class TimestampMillisecondsParser extends Parser {\n priority = 20;\n\n parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n\n set(date, _flags, value) {\n return [constructFrom(date, value), { timestampIsSet: true }];\n }\n\n incompatibleTokens = \"*\";\n}\n","import { EraParser } from \"./parsers/EraParser.mjs\";\nimport { YearParser } from \"./parsers/YearParser.mjs\";\nimport { LocalWeekYearParser } from \"./parsers/LocalWeekYearParser.mjs\";\nimport { ISOWeekYearParser } from \"./parsers/ISOWeekYearParser.mjs\";\nimport { ExtendedYearParser } from \"./parsers/ExtendedYearParser.mjs\";\nimport { QuarterParser } from \"./parsers/QuarterParser.mjs\";\nimport { StandAloneQuarterParser } from \"./parsers/StandAloneQuarterParser.mjs\";\nimport { MonthParser } from \"./parsers/MonthParser.mjs\";\nimport { StandAloneMonthParser } from \"./parsers/StandAloneMonthParser.mjs\";\nimport { LocalWeekParser } from \"./parsers/LocalWeekParser.mjs\";\nimport { ISOWeekParser } from \"./parsers/ISOWeekParser.mjs\";\nimport { DateParser } from \"./parsers/DateParser.mjs\";\nimport { DayOfYearParser } from \"./parsers/DayOfYearParser.mjs\";\nimport { DayParser } from \"./parsers/DayParser.mjs\";\nimport { LocalDayParser } from \"./parsers/LocalDayParser.mjs\";\nimport { StandAloneLocalDayParser } from \"./parsers/StandAloneLocalDayParser.mjs\";\nimport { ISODayParser } from \"./parsers/ISODayParser.mjs\";\nimport { AMPMParser } from \"./parsers/AMPMParser.mjs\";\nimport { AMPMMidnightParser } from \"./parsers/AMPMMidnightParser.mjs\";\nimport { DayPeriodParser } from \"./parsers/DayPeriodParser.mjs\";\nimport { Hour1to12Parser } from \"./parsers/Hour1to12Parser.mjs\";\nimport { Hour0to23Parser } from \"./parsers/Hour0to23Parser.mjs\";\nimport { Hour0To11Parser } from \"./parsers/Hour0To11Parser.mjs\";\nimport { Hour1To24Parser } from \"./parsers/Hour1To24Parser.mjs\";\nimport { MinuteParser } from \"./parsers/MinuteParser.mjs\";\nimport { SecondParser } from \"./parsers/SecondParser.mjs\";\nimport { FractionOfSecondParser } from \"./parsers/FractionOfSecondParser.mjs\";\nimport { ISOTimezoneWithZParser } from \"./parsers/ISOTimezoneWithZParser.mjs\";\nimport { ISOTimezoneParser } from \"./parsers/ISOTimezoneParser.mjs\";\nimport { TimestampSecondsParser } from \"./parsers/TimestampSecondsParser.mjs\";\nimport { TimestampMillisecondsParser } from \"./parsers/TimestampMillisecondsParser.mjs\";\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 | | P | |\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 `parse` 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 */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any -- It's ok, we want any here\nexport const parsers = {\n G: new EraParser(),\n y: new YearParser(),\n Y: new LocalWeekYearParser(),\n R: new ISOWeekYearParser(),\n u: new ExtendedYearParser(),\n Q: new QuarterParser(),\n q: new StandAloneQuarterParser(),\n M: new MonthParser(),\n L: new StandAloneMonthParser(),\n w: new LocalWeekParser(),\n I: new ISOWeekParser(),\n d: new DateParser(),\n D: new DayOfYearParser(),\n E: new DayParser(),\n e: new LocalDayParser(),\n c: new StandAloneLocalDayParser(),\n i: new ISODayParser(),\n a: new AMPMParser(),\n b: new AMPMMidnightParser(),\n B: new DayPeriodParser(),\n h: new Hour1to12Parser(),\n H: new Hour0to23Parser(),\n K: new Hour0To11Parser(),\n k: new Hour1To24Parser(),\n m: new MinuteParser(),\n s: new SecondParser(),\n S: new FractionOfSecondParser(),\n X: new ISOTimezoneWithZParser(),\n x: new ISOTimezoneParser(),\n t: new TimestampSecondsParser(),\n T: new TimestampMillisecondsParser(),\n};\n","import { constructFrom } from \"./constructFrom.mjs\";\nimport { getDefaultOptions } from \"./getDefaultOptions.mjs\";\nimport { defaultLocale } from \"./_lib/defaultLocale.mjs\";\nimport { toDate } from \"./toDate.mjs\";\nimport { longFormatters } from \"./_lib/format/longFormatters.mjs\";\nimport {\n isProtectedDayOfYearToken,\n isProtectedWeekYearToken,\n warnOrThrowProtectedError,\n} from \"./_lib/protectedTokens.mjs\";\nimport { parsers } from \"./parse/_lib/parsers.mjs\";\nimport { DateToSystemTimezoneSetter } from \"./parse/_lib/Setter.mjs\";\n\n// Rexports of internal for libraries to use.\n// See: https://github.com/date-fns/date-fns/issues/3638#issuecomment-1877082874\nexport { longFormatters, parsers };\n\n/**\n * The {@link parse} function options.\n */\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;\n\nconst notWhitespaceRegExp = /\\S/;\nconst unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name parse\n * @category Common Helpers\n * @summary Parse the date.\n *\n * @description\n * Return the date parsed from string using the given format string.\n *\n * > ⚠️ 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 in the format string 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 *\n * Format of the format 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 5 below the table).\n *\n * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited\n * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception:\n *\n * ```javascript\n * parse('23 AM', 'HH a', new Date())\n * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time\n * ```\n *\n * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true\n *\n * Accepted format string patterns:\n * | Unit |Prior| Pattern | Result examples | Notes |\n * |---------------------------------|-----|---------|-----------------------------------|-------|\n * | Era | 140 | G..GGG | AD, BC | |\n * | | | GGGG | Anno Domini, Before Christ | 2 |\n * | | | GGGGG | A, B | |\n * | Calendar year | 130 | y | 44, 1, 1900, 2017, 9999 | 4 |\n * | | | yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | yy | 44, 01, 00, 17 | 4 |\n * | | | yyy | 044, 001, 123, 999 | 4 |\n * | | | yyyy | 0044, 0001, 1900, 2017 | 4 |\n * | | | yyyyy | ... | 2,4 |\n * | Local week-numbering year | 130 | Y | 44, 1, 1900, 2017, 9000 | 4 |\n * | | | Yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | YY | 44, 01, 00, 17 | 4,6 |\n * | | | YYY | 044, 001, 123, 999 | 4 |\n * | | | YYYY | 0044, 0001, 1900, 2017 | 4,6 |\n * | | | YYYYY | ... | 2,4 |\n * | ISO week-numbering year | 130 | R | -43, 1, 1900, 2017, 9999, -9999 | 4,5 |\n * | | | RR | -43, 01, 00, 17 | 4,5 |\n * | | | RRR | -043, 001, 123, 999, -999 | 4,5 |\n * | | | RRRR | -0043, 0001, 2017, 9999, -9999 | 4,5 |\n * | | | RRRRR | ... | 2,4,5 |\n * | Extended year | 130 | u | -43, 1, 1900, 2017, 9999, -999 | 4 |\n * | | | uu | -43, 01, 99, -99 | 4 |\n * | | | uuu | -043, 001, 123, 999, -999 | 4 |\n * | | | uuuu | -0043, 0001, 2017, 9999, -9999 | 4 |\n * | | | uuuuu | ... | 2,4 |\n * | Quarter (formatting) | 120 | Q | 1, 2, 3, 4 | |\n * | | | Qo | 1st, 2nd, 3rd, 4th | 5 |\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) | 120 | q | 1, 2, 3, 4 | |\n * | | | qo | 1st, 2nd, 3rd, 4th | 5 |\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 | 3 |\n * | Month (formatting) | 110 | M | 1, 2, ..., 12 | |\n * | | | Mo | 1st, 2nd, ..., 12th | 5 |\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) | 110 | L | 1, 2, ..., 12 | |\n * | | | Lo | 1st, 2nd, ..., 12th | 5 |\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 | 100 | w | 1, 2, ..., 53 | |\n * | | | wo | 1st, 2nd, ..., 53th | 5 |\n * | | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | 100 | I | 1, 2, ..., 53 | 5 |\n * | | | Io | 1st, 2nd, ..., 53th | 5 |\n * | | | II | 01, 02, ..., 53 | 5 |\n * | Day of month | 90 | d | 1, 2, ..., 31 | |\n * | | | do | 1st, 2nd, ..., 31st | 5 |\n * | | | dd | 01, 02, ..., 31 | |\n * | Day of year | 90 | D | 1, 2, ..., 365, 366 | 7 |\n * | | | Do | 1st, 2nd, ..., 365th, 366th | 5 |\n * | | | DD | 01, 02, ..., 365, 366 | 7 |\n * | | | DDD | 001, 002, ..., 365, 366 | |\n * | | | DDDD | ... | 2 |\n * | Day of week (formatting) | 90 | 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) | 90 | i | 1, 2, 3, ..., 7 | 5 |\n * | | | io | 1st, 2nd, ..., 7th | 5 |\n * | | | ii | 01, 02, ..., 07 | 5 |\n * | | | iii | Mon, Tue, Wed, ..., Sun | 5 |\n * | | | iiii | Monday, Tuesday, ..., Sunday | 2,5 |\n * | | | iiiii | M, T, W, T, F, S, S | 5 |\n * | | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 5 |\n * | Local day of week (formatting) | 90 | e | 2, 3, 4, ..., 1 | |\n * | | | eo | 2nd, 3rd, ..., 1st | 5 |\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) | 90 | c | 2, 3, 4, ..., 1 | |\n * | | | co | 2nd, 3rd, ..., 1st | 5 |\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 | 80 | a..aaa | AM, PM | |\n * | | | aaaa | a.m., p.m. | 2 |\n * | | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | 80 | b..bbb | AM, PM, noon, midnight | |\n * | | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | | bbbbb | a, p, n, mi | |\n * | Flexible day period | 80 | 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] | 70 | h | 1, 2, ..., 11, 12 | |\n * | | | ho | 1st, 2nd, ..., 11th, 12th | 5 |\n * | | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | 70 | H | 0, 1, 2, ..., 23 | |\n * | | | Ho | 0th, 1st, 2nd, ..., 23rd | 5 |\n * | | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | 70 | K | 1, 2, ..., 11, 0 | |\n * | | | Ko | 1st, 2nd, ..., 11th, 0th | 5 |\n * | | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | 70 | k | 24, 1, 2, ..., 23 | |\n * | | | ko | 24th, 1st, 2nd, ..., 23rd | 5 |\n * | | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | 60 | m | 0, 1, ..., 59 | |\n * | | | mo | 0th, 1st, ..., 59th | 5 |\n * | | | mm | 00, 01, ..., 59 | |\n * | Second | 50 | s | 0, 1, ..., 59 | |\n * | | | so | 0th, 1st, ..., 59th | 5 |\n * | | | ss | 00, 01, ..., 59 | |\n * | Seconds timestamp | 40 | t | 512969520 | |\n * | | | tt | ... | 2 |\n * | Fraction of second | 30 | S | 0, 1, ..., 9 | |\n * | | | SS | 00, 01, ..., 99 | |\n * | | | SSS | 000, 001, ..., 999 | |\n * | | | SSSS | ... | 2 |\n * | Milliseconds timestamp | 20 | T | 512969520900 | |\n * | | | TT | ... | 2 |\n * | Timezone (ISO-8601 w/ Z) | 10 | 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) | 10 | 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 * | Long localized date | NA | P | 05/29/1453 | 5,8 |\n * | | | PP | May 29, 1453 | |\n * | | | PPP | May 29th, 1453 | |\n * | | | PPPP | Sunday, May 29th, 1453 | 2,5,8 |\n * | Long localized time | NA | p | 12:00 AM | 5,8 |\n * | | | pp | 12:00:00 AM | |\n * | Combination of date and time | NA | Pp | 05/29/1453, 12:00 AM | |\n * | | | PPpp | May 29, 1453, 12:00:00 AM | |\n * | | | PPPpp | May 29th, 1453 at ... | |\n * | | | PPPPpp | Sunday, May 29th, 1453 at ... | 2,5,8 |\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 * In `format` function, they will produce different result:\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 * `parse` will try to match both formatting and stand-alone units interchangably.\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:\n * - for numerical units (`yyyyyyyy`) `parse` will try to match a number\n * as wide as the sequence\n * - for text units (`MMMMMMMM`) `parse` will try to match the widest variation of the unit.\n * These variations are marked with \"2\" in the last column of the table.\n *\n * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 4. 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` will try to guess the century of two digit year by proximity with `referenceDate`:\n *\n * `parse('50', 'yy', new Date(2018, 0, 1)) //=> Sat Jan 01 2050 00:00:00`\n *\n * `parse('75', 'yy', new Date(2018, 0, 1)) //=> Wed Jan 01 1975 00:00:00`\n *\n * while `uu` will just assign the year as is:\n *\n * `parse('50', 'uu', new Date(2018, 0, 1)) //=> Sat Jan 01 0050 00:00:00`\n *\n * `parse('75', 'uu', new Date(2018, 0, 1)) //=> Tue Jan 01 0075 00:00:00`\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 [setISOWeekYear](https://date-fns.org/docs/setISOWeekYear)\n * and [setWeekYear](https://date-fns.org/docs/setWeekYear)).\n *\n * 5. 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 * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 6. `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 * 7. `D` and `DD` tokens represent days of the year but they are ofthen 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 * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based\n * on the given locale.\n *\n * using `en-US` locale: `P` => `MM/dd/yyyy`\n * using `en-US` locale: `p` => `hh:mm a`\n * using `pt-BR` locale: `P` => `dd/MM/yyyy`\n * using `pt-BR` locale: `p` => `HH:mm`\n *\n * Values will be assigned to the date in the descending order of its unit's priority.\n * Units of an equal priority overwrite each other in the order of appearance.\n *\n * If no values of higher priority are parsed (e.g. when parsing string 'January 1st' without a year),\n * the values will be taken from 3rd argument `referenceDate` which works as a context of parsing.\n *\n * `referenceDate` must be passed for correct work of the function.\n * If you're not sure which `referenceDate` to supply, create a new instance of Date:\n * `parse('02/11/2014', 'MM/dd/yyyy', new Date())`\n * In this case parsing will be done in the context of the current date.\n * If `referenceDate` is `Invalid Date` or a value not convertible to valid `Date`,\n * then `Invalid Date` will be returned.\n *\n * The result may vary by locale.\n *\n * If `formatString` matches with `dateString` but does not provides tokens, `referenceDate` will be returned.\n *\n * If parsing failed, `Invalid Date` will be returned.\n * Invalid Date is a Date, whose time value is NaN.\n * Time value of Date: http://es5.github.io/#x15.9.1.1\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 dateStr - The string to parse\n * @param formatStr - The string of tokens\n * @param referenceDate - defines values missing from the parsed dateString\n * @param options - An object with options.\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @returns The parsed date\n *\n * @throws `options.locale` must contain `match` 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 * // Parse 11 February 2014 from middle-endian format:\n * var result = parse('02/11/2014', 'MM/dd/yyyy', new Date())\n * //=> Tue Feb 11 2014 00:00:00\n *\n * @example\n * // Parse 28th of February in Esperanto locale in the context of 2010 year:\n * import eo from 'date-fns/locale/eo'\n * var result = parse('28-a de februaro', \"do 'de' MMMM\", new Date(2010, 0, 1), {\n * locale: eo\n * })\n * //=> Sun Feb 28 2010 00:00:00\n */\nexport function parse(dateStr, formatStr, referenceDate, 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 if (formatStr === \"\") {\n if (dateStr === \"\") {\n return toDate(referenceDate);\n } else {\n return constructFrom(referenceDate, NaN);\n }\n }\n\n const subFnOptions = {\n firstWeekContainsDate,\n weekStartsOn,\n locale,\n };\n\n // If timezone isn't specified, it will be set to the system timezone\n const setters = [new DateToSystemTimezoneSetter()];\n\n const tokens = formatStr\n .match(longFormattingTokensRegExp)\n .map((substring) => {\n const firstCharacter = substring[0];\n if (firstCharacter in longFormatters) {\n const longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n })\n .join(\"\")\n .match(formattingTokensRegExp);\n\n const usedTokens = [];\n\n for (let token of tokens) {\n if (\n !options?.useAdditionalWeekYearTokens &&\n isProtectedWeekYearToken(token)\n ) {\n warnOrThrowProtectedError(token, formatStr, dateStr);\n }\n if (\n !options?.useAdditionalDayOfYearTokens &&\n isProtectedDayOfYearToken(token)\n ) {\n warnOrThrowProtectedError(token, formatStr, dateStr);\n }\n\n const firstCharacter = token[0];\n const parser = parsers[firstCharacter];\n if (parser) {\n const { incompatibleTokens } = parser;\n if (Array.isArray(incompatibleTokens)) {\n const incompatibleToken = usedTokens.find(\n (usedToken) =>\n incompatibleTokens.includes(usedToken.token) ||\n usedToken.token === firstCharacter,\n );\n if (incompatibleToken) {\n throw new RangeError(\n `The format string mustn't contain \\`${incompatibleToken.fullToken}\\` and \\`${token}\\` at the same time`,\n );\n }\n } else if (parser.incompatibleTokens === \"*\" && usedTokens.length > 0) {\n throw new RangeError(\n `The format string mustn't contain \\`${token}\\` and any other token at the same time`,\n );\n }\n\n usedTokens.push({ token: firstCharacter, fullToken: token });\n\n const parseResult = parser.run(\n dateStr,\n token,\n locale.match,\n subFnOptions,\n );\n\n if (!parseResult) {\n return constructFrom(referenceDate, NaN);\n }\n\n setters.push(parseResult.setter);\n\n dateStr = parseResult.rest;\n } else {\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 // Replace two single quote characters with one single quote character\n if (token === \"''\") {\n token = \"'\";\n } else if (firstCharacter === \"'\") {\n token = cleanEscapedString(token);\n }\n\n // Cut token from string, or, if string doesn't match the token, return Invalid Date\n if (dateStr.indexOf(token) === 0) {\n dateStr = dateStr.slice(token.length);\n } else {\n return constructFrom(referenceDate, NaN);\n }\n }\n }\n\n // Check if the remaining input contains something other than whitespace\n if (dateStr.length > 0 && notWhitespaceRegExp.test(dateStr)) {\n return constructFrom(referenceDate, NaN);\n }\n\n const uniquePrioritySetters = setters\n .map((setter) => setter.priority)\n .sort((a, b) => b - a)\n .filter((priority, index, array) => array.indexOf(priority) === index)\n .map((priority) =>\n setters\n .filter((setter) => setter.priority === priority)\n .sort((a, b) => b.subPriority - a.subPriority),\n )\n .map((setterArray) => setterArray[0]);\n\n let date = toDate(referenceDate);\n\n if (isNaN(date.getTime())) {\n return constructFrom(referenceDate, NaN);\n }\n\n const flags = {};\n for (const setter of uniquePrioritySetters) {\n if (!setter.validate(date, subFnOptions)) {\n return constructFrom(referenceDate, NaN);\n }\n\n const result = setter.set(date, flags, subFnOptions);\n // Result is tuple (date, flags)\n if (Array.isArray(result)) {\n date = result[0];\n Object.assign(flags, result[1]);\n // Result is date\n } else {\n date = result;\n }\n }\n\n return constructFrom(referenceDate, date);\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}\n\n// Fallback for modularized imports:\nexport default parse;\n","import { isValid } from \"./isValid.mjs\";\nimport { parse } from \"./parse.mjs\";\n\n/**\n * The {@link isMatch} function options.\n */\n\n/**\n * @name isMatch\n * @category Common Helpers\n * @summary validates the date string against given formats\n *\n * @description\n * Return the true if given date is string correct against the given format else\n * will return false.\n *\n * > ⚠️ 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 in the format string 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 *\n * Format of the format 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 5 below the table).\n *\n * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited\n * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception:\n *\n * ```javascript\n * isMatch('23 AM', 'HH a')\n * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time\n * ```\n *\n * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true\n *\n * Accepted format string patterns:\n * | Unit |Prior| Pattern | Result examples | Notes |\n * |---------------------------------|-----|---------|-----------------------------------|-------|\n * | Era | 140 | G..GGG | AD, BC | |\n * | | | GGGG | Anno Domini, Before Christ | 2 |\n * | | | GGGGG | A, B | |\n * | Calendar year | 130 | y | 44, 1, 1900, 2017, 9999 | 4 |\n * | | | yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | yy | 44, 01, 00, 17 | 4 |\n * | | | yyy | 044, 001, 123, 999 | 4 |\n * | | | yyyy | 0044, 0001, 1900, 2017 | 4 |\n * | | | yyyyy | ... | 2,4 |\n * | Local week-numbering year | 130 | Y | 44, 1, 1900, 2017, 9000 | 4 |\n * | | | Yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | YY | 44, 01, 00, 17 | 4,6 |\n * | | | YYY | 044, 001, 123, 999 | 4 |\n * | | | YYYY | 0044, 0001, 1900, 2017 | 4,6 |\n * | | | YYYYY | ... | 2,4 |\n * | ISO week-numbering year | 130 | R | -43, 1, 1900, 2017, 9999, -9999 | 4,5 |\n * | | | RR | -43, 01, 00, 17 | 4,5 |\n * | | | RRR | -043, 001, 123, 999, -999 | 4,5 |\n * | | | RRRR | -0043, 0001, 2017, 9999, -9999 | 4,5 |\n * | | | RRRRR | ... | 2,4,5 |\n * | Extended year | 130 | u | -43, 1, 1900, 2017, 9999, -999 | 4 |\n * | | | uu | -43, 01, 99, -99 | 4 |\n * | | | uuu | -043, 001, 123, 999, -999 | 4 |\n * | | | uuuu | -0043, 0001, 2017, 9999, -9999 | 4 |\n * | | | uuuuu | ... | 2,4 |\n * | Quarter (formatting) | 120 | Q | 1, 2, 3, 4 | |\n * | | | Qo | 1st, 2nd, 3rd, 4th | 5 |\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) | 120 | q | 1, 2, 3, 4 | |\n * | | | qo | 1st, 2nd, 3rd, 4th | 5 |\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 | 3 |\n * | Month (formatting) | 110 | M | 1, 2, ..., 12 | |\n * | | | Mo | 1st, 2nd, ..., 12th | 5 |\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) | 110 | L | 1, 2, ..., 12 | |\n * | | | Lo | 1st, 2nd, ..., 12th | 5 |\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 | 100 | w | 1, 2, ..., 53 | |\n * | | | wo | 1st, 2nd, ..., 53th | 5 |\n * | | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | 100 | I | 1, 2, ..., 53 | 5 |\n * | | | Io | 1st, 2nd, ..., 53th | 5 |\n * | | | II | 01, 02, ..., 53 | 5 |\n * | Day of month | 90 | d | 1, 2, ..., 31 | |\n * | | | do | 1st, 2nd, ..., 31st | 5 |\n * | | | dd | 01, 02, ..., 31 | |\n * | Day of year | 90 | D | 1, 2, ..., 365, 366 | 7 |\n * | | | Do | 1st, 2nd, ..., 365th, 366th | 5 |\n * | | | DD | 01, 02, ..., 365, 366 | 7 |\n * | | | DDD | 001, 002, ..., 365, 366 | |\n * | | | DDDD | ... | 2 |\n * | Day of week (formatting) | 90 | E..EEE | Mon, Tue, Wed, ..., Su | |\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) | 90 | i | 1, 2, 3, ..., 7 | 5 |\n * | | | io | 1st, 2nd, ..., 7th | 5 |\n * | | | ii | 01, 02, ..., 07 | 5 |\n * | | | iii | Mon, Tue, Wed, ..., Su | 5 |\n * | | | iiii | Monday, Tuesday, ..., Sunday | 2,5 |\n * | | | iiiii | M, T, W, T, F, S, S | 5 |\n * | | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 5 |\n * | Local day of week (formatting) | 90 | e | 2, 3, 4, ..., 1 | |\n * | | | eo | 2nd, 3rd, ..., 1st | 5 |\n * | | | ee | 02, 03, ..., 01 | |\n * | | | eee | Mon, Tue, Wed, ..., Su | |\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) | 90 | c | 2, 3, 4, ..., 1 | |\n * | | | co | 2nd, 3rd, ..., 1st | 5 |\n * | | | cc | 02, 03, ..., 01 | |\n * | | | ccc | Mon, Tue, Wed, ..., Su | |\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 | 80 | a..aaa | AM, PM | |\n * | | | aaaa | a.m., p.m. | 2 |\n * | | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | 80 | b..bbb | AM, PM, noon, midnight | |\n * | | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | | bbbbb | a, p, n, mi | |\n * | Flexible day period | 80 | 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] | 70 | h | 1, 2, ..., 11, 12 | |\n * | | | ho | 1st, 2nd, ..., 11th, 12th | 5 |\n * | | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | 70 | H | 0, 1, 2, ..., 23 | |\n * | | | Ho | 0th, 1st, 2nd, ..., 23rd | 5 |\n * | | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | 70 | K | 1, 2, ..., 11, 0 | |\n * | | | Ko | 1st, 2nd, ..., 11th, 0th | 5 |\n * | | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | 70 | k | 24, 1, 2, ..., 23 | |\n * | | | ko | 24th, 1st, 2nd, ..., 23rd | 5 |\n * | | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | 60 | m | 0, 1, ..., 59 | |\n * | | | mo | 0th, 1st, ..., 59th | 5 |\n * | | | mm | 00, 01, ..., 59 | |\n * | Second | 50 | s | 0, 1, ..., 59 | |\n * | | | so | 0th, 1st, ..., 59th | 5 |\n * | | | ss | 00, 01, ..., 59 | |\n * | Seconds timestamp | 40 | t | 512969520 | |\n * | | | tt | ... | 2 |\n * | Fraction of second | 30 | S | 0, 1, ..., 9 | |\n * | | | SS | 00, 01, ..., 99 | |\n * | | | SSS | 000, 001, ..., 999 | |\n * | | | SSSS | ... | 2 |\n * | Milliseconds timestamp | 20 | T | 512969520900 | |\n * | | | TT | ... | 2 |\n * | Timezone (ISO-8601 w/ Z) | 10 | 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) | 10 | 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 * | Long localized date | NA | P | 05/29/1453 | 5,8 |\n * | | | PP | May 29, 1453 | |\n * | | | PPP | May 29th, 1453 | |\n * | | | PPPP | Sunday, May 29th, 1453 | 2,5,8 |\n * | Long localized time | NA | p | 12:00 AM | 5,8 |\n * | | | pp | 12:00:00 AM | |\n * | Combination of date and time | NA | Pp | 05/29/1453, 12:00 AM | |\n * | | | PPpp | May 29, 1453, 12:00:00 AM | |\n * | | | PPPpp | May 29th, 1453 at ... | |\n * | | | PPPPpp | Sunday, May 29th, 1453 at ... | 2,5,8 |\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 * In `format` function, they will produce different result:\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 * `isMatch` will try to match both formatting and stand-alone units interchangably.\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:\n * - for numerical units (`yyyyyyyy`) `isMatch` will try to match a number\n * as wide as the sequence\n * - for text units (`MMMMMMMM`) `isMatch` will try to match the widest variation of the unit.\n * These variations are marked with \"2\" in the last column of the table.\n *\n * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 4. 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` will try to guess the century of two digit year by proximity with `referenceDate`:\n *\n * `isMatch('50', 'yy') //=> true`\n *\n * `isMatch('75', 'yy') //=> true`\n *\n * while `uu` will use the year as is:\n *\n * `isMatch('50', 'uu') //=> true`\n *\n * `isMatch('75', 'uu') //=> true`\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 [setISOWeekYear](https://date-fns.org/docs/setISOWeekYear)\n * and [setWeekYear](https://date-fns.org/docs/setWeekYear)).\n *\n * 5. 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 * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 6. `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 * 7. `D` and `DD` tokens represent days of the year but they are ofthen 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 * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based\n * on the given locale.\n *\n * using `en-US` locale: `P` => `MM/dd/yyyy`\n * using `en-US` locale: `p` => `hh:mm a`\n * using `pt-BR` locale: `P` => `dd/MM/yyyy`\n * using `pt-BR` locale: `p` => `HH:mm`\n *\n * Values will be checked in the descending order of its unit's priority.\n * Units of an equal priority overwrite each other in the order of appearance.\n *\n * If no values of higher priority are matched (e.g. when matching string 'January 1st' without a year),\n * the values will be taken from today's using `new Date()` date which works as a context of parsing.\n *\n * The result may vary by locale.\n *\n * If `formatString` matches with `dateString` but does not provides tokens, `referenceDate` will be returned.\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 dateStr - The date string to verify\n * @param format - The string of tokens\n * @param options - An object with options.\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @returns Is format string a match for date string?\n *\n * @throws `options.locale` must contain `match` property\n * @throws use `yyyy` instead of `YYYY` for formatting years; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `yy` instead of `YY` for formatting years; 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; 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; 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 * // Match 11 February 2014 from middle-endian format:\n * const result = isMatch('02/11/2014', 'MM/dd/yyyy')\n * //=> true\n *\n * @example\n * // Match 28th of February in Esperanto locale in the context of 2010 year:\n * import eo from 'date-fns/locale/eo'\n * const result = isMatch('28-a de februaro', \"do 'de' MMMM\", {\n * locale: eo\n * })\n * //=> true\n */\nexport function isMatch(dateStr, formatStr, options) {\n return isValid(parse(dateStr, formatStr, new Date(), options));\n}\n\n// Fallback for modularized imports:\nexport default isMatch;\n","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","export default function getUAString() {\n var uaData = navigator.userAgentData;\n\n if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) {\n return uaData.brands.map(function (item) {\n return item.brand + \"/\" + item.version;\n }).join(' ');\n }\n\n return navigator.userAgent;\n}","import getUAString from \"../utils/userAgent.js\";\nexport default function isLayoutViewport() {\n return !/^((?!chrome|android).)*safari/i.test(getUAString());\n}","import { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nimport getWindow from \"./getWindow.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getBoundingClientRect(element, includeScale, isFixedStrategy) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n\n var clientRect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;\n scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;\n }\n\n var _ref = isElement(element) ? getWindow(element) : window,\n visualViewport = _ref.visualViewport;\n\n var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;\n var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;\n var width = clientRect.width / scaleX;\n var height = clientRect.height / scaleY;\n return {\n width: width,\n height: height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x: x,\n y: y\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement, isShadowRoot } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getUAString from \"../utils/userAgent.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = /firefox/i.test(getUAString());\n var isIE = /Trident/i.test(getUAString());\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref, win) {\n var x = _ref.x,\n y = _ref.y;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x,\n x = _offsets$x === void 0 ? 0 : _offsets$x,\n _offsets$y = offsets.y,\n y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x: x,\n y: y\n }, getWindow(popper)) : {\n x: x,\n y: y\n };\n\n x = _ref4.x;\n y = _ref4.y;\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n var state = _ref5.state,\n options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on <html>\n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getViewportRect(element, strategy) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n var layoutViewport = isLayoutViewport();\n\n if (layoutViewport || !layoutViewport && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element, strategy) {\n var rect = getBoundingClientRect(element, false, strategy === 'fixed');\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent, strategy) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary, strategy) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent, strategy));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$strategy = _options.strategy,\n strategy = _options$strategy === void 0 ? state.strategy : _options$strategy,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport { within, withinMaxClamp } from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { min as mathMin, max as mathMax } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = offset + overflow[mainSide];\n var max = offset - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n });\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref) {\n var name = _ref.name,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options,\n effect = _ref.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";","var __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};\nimport { reactive, computed, ref, watch, onUnmounted, provide, inject, onMounted, watchEffect, defineComponent, toRefs, nextTick, openBlock, createElementBlock, normalizeClass, createVNode, Transition, withCtx, mergeProps, renderSlot, createTextVNode, toDisplayString, createElementVNode, createCommentVNode, unref, createBlock, resolveDynamicComponent, normalizeProps, Fragment, renderList, normalizeStyle, withKeys, withDirectives, toRef, resolveComponent, resolveDirective, toHandlers, withModifiers, isRef, guardReactiveProps } from \"vue\";\nimport { createPopper } from \"@popperjs/core\";\nvar commonjsGlobal = typeof globalThis !== \"undefined\" ? globalThis : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : {};\nfunction getDefaultExportFromCjs(x) {\n return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, \"default\") ? x[\"default\"] : x;\n}\nvar objectProto$g = Object.prototype;\nvar hasOwnProperty$d = objectProto$g.hasOwnProperty;\nfunction baseHas$1(object, key) {\n return object != null && hasOwnProperty$d.call(object, key);\n}\nvar _baseHas = baseHas$1;\nvar isArray$c = Array.isArray;\nvar isArray_1 = isArray$c;\nvar freeGlobal$1 = typeof commonjsGlobal == \"object\" && commonjsGlobal && commonjsGlobal.Object === Object && commonjsGlobal;\nvar _freeGlobal = freeGlobal$1;\nvar freeGlobal = _freeGlobal;\nvar freeSelf = typeof self == \"object\" && self && self.Object === Object && self;\nvar root$8 = freeGlobal || freeSelf || Function(\"return this\")();\nvar _root = root$8;\nvar root$7 = _root;\nvar Symbol$5 = root$7.Symbol;\nvar _Symbol = Symbol$5;\nvar Symbol$4 = _Symbol;\nvar objectProto$f = Object.prototype;\nvar hasOwnProperty$c = objectProto$f.hasOwnProperty;\nvar nativeObjectToString$1 = objectProto$f.toString;\nvar symToStringTag$1 = Symbol$4 ? Symbol$4.toStringTag : void 0;\nfunction getRawTag$1(value) {\n var isOwn = hasOwnProperty$c.call(value, symToStringTag$1), tag = value[symToStringTag$1];\n try {\n value[symToStringTag$1] = void 0;\n var unmasked = true;\n } catch (e) {\n }\n var result = nativeObjectToString$1.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag$1] = tag;\n } else {\n delete value[symToStringTag$1];\n }\n }\n return result;\n}\nvar _getRawTag = getRawTag$1;\nvar objectProto$e = Object.prototype;\nvar nativeObjectToString = objectProto$e.toString;\nfunction objectToString$1(value) {\n return nativeObjectToString.call(value);\n}\nvar _objectToString = objectToString$1;\nvar Symbol$3 = _Symbol, getRawTag = _getRawTag, objectToString = _objectToString;\nvar nullTag = \"[object Null]\", undefinedTag = \"[object Undefined]\";\nvar symToStringTag = Symbol$3 ? Symbol$3.toStringTag : void 0;\nfunction baseGetTag$a(value) {\n if (value == null) {\n return value === void 0 ? undefinedTag : nullTag;\n }\n return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value);\n}\nvar _baseGetTag = baseGetTag$a;\nfunction isObjectLike$b(value) {\n return value != null && typeof value == \"object\";\n}\nvar isObjectLike_1 = isObjectLike$b;\nvar baseGetTag$9 = _baseGetTag, isObjectLike$a = isObjectLike_1;\nvar symbolTag$1 = \"[object Symbol]\";\nfunction isSymbol$3(value) {\n return typeof value == \"symbol\" || isObjectLike$a(value) && baseGetTag$9(value) == symbolTag$1;\n}\nvar isSymbol_1 = isSymbol$3;\nvar isArray$b = isArray_1, isSymbol$2 = isSymbol_1;\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/, reIsPlainProp = /^\\w*$/;\nfunction isKey$3(value, object) {\n if (isArray$b(value)) {\n return false;\n }\n var type = typeof value;\n if (type == \"number\" || type == \"symbol\" || type == \"boolean\" || value == null || isSymbol$2(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || object != null && value in Object(object);\n}\nvar _isKey = isKey$3;\nfunction isObject$a(value) {\n var type = typeof value;\n return value != null && (type == \"object\" || type == \"function\");\n}\nvar isObject_1 = isObject$a;\nvar baseGetTag$8 = _baseGetTag, isObject$9 = isObject_1;\nvar asyncTag = \"[object AsyncFunction]\", funcTag$1 = \"[object Function]\", genTag = \"[object GeneratorFunction]\", proxyTag = \"[object Proxy]\";\nfunction isFunction$3(value) {\n if (!isObject$9(value)) {\n return false;\n }\n var tag = baseGetTag$8(value);\n return tag == funcTag$1 || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\nvar isFunction_1 = isFunction$3;\nvar root$6 = _root;\nvar coreJsData$1 = root$6[\"__core-js_shared__\"];\nvar _coreJsData = coreJsData$1;\nvar coreJsData = _coreJsData;\nvar maskSrcKey = function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || \"\");\n return uid ? \"Symbol(src)_1.\" + uid : \"\";\n}();\nfunction isMasked$1(func) {\n return !!maskSrcKey && maskSrcKey in func;\n}\nvar _isMasked = isMasked$1;\nvar funcProto$2 = Function.prototype;\nvar funcToString$2 = funcProto$2.toString;\nfunction toSource$2(func) {\n if (func != null) {\n try {\n return funcToString$2.call(func);\n } catch (e) {\n }\n try {\n return func + \"\";\n } catch (e) {\n }\n }\n return \"\";\n}\nvar _toSource = toSource$2;\nvar isFunction$2 = isFunction_1, isMasked = _isMasked, isObject$8 = isObject_1, toSource$1 = _toSource;\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\nvar funcProto$1 = Function.prototype, objectProto$d = Object.prototype;\nvar funcToString$1 = funcProto$1.toString;\nvar hasOwnProperty$b = objectProto$d.hasOwnProperty;\nvar reIsNative = RegExp(\n \"^\" + funcToString$1.call(hasOwnProperty$b).replace(reRegExpChar, \"\\\\$&\").replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, \"$1.*?\") + \"$\"\n);\nfunction baseIsNative$1(value) {\n if (!isObject$8(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction$2(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource$1(value));\n}\nvar _baseIsNative = baseIsNative$1;\nfunction getValue$1(object, key) {\n return object == null ? void 0 : object[key];\n}\nvar _getValue = getValue$1;\nvar baseIsNative = _baseIsNative, getValue = _getValue;\nfunction getNative$7(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : void 0;\n}\nvar _getNative = getNative$7;\nvar getNative$6 = _getNative;\nvar nativeCreate$4 = getNative$6(Object, \"create\");\nvar _nativeCreate = nativeCreate$4;\nvar nativeCreate$3 = _nativeCreate;\nfunction hashClear$1() {\n this.__data__ = nativeCreate$3 ? nativeCreate$3(null) : {};\n this.size = 0;\n}\nvar _hashClear = hashClear$1;\nfunction hashDelete$1(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\nvar _hashDelete = hashDelete$1;\nvar nativeCreate$2 = _nativeCreate;\nvar HASH_UNDEFINED$2 = \"__lodash_hash_undefined__\";\nvar objectProto$c = Object.prototype;\nvar hasOwnProperty$a = objectProto$c.hasOwnProperty;\nfunction hashGet$1(key) {\n var data2 = this.__data__;\n if (nativeCreate$2) {\n var result = data2[key];\n return result === HASH_UNDEFINED$2 ? void 0 : result;\n }\n return hasOwnProperty$a.call(data2, key) ? data2[key] : void 0;\n}\nvar _hashGet = hashGet$1;\nvar nativeCreate$1 = _nativeCreate;\nvar objectProto$b = Object.prototype;\nvar hasOwnProperty$9 = objectProto$b.hasOwnProperty;\nfunction hashHas$1(key) {\n var data2 = this.__data__;\n return nativeCreate$1 ? data2[key] !== void 0 : hasOwnProperty$9.call(data2, key);\n}\nvar _hashHas = hashHas$1;\nvar nativeCreate = _nativeCreate;\nvar HASH_UNDEFINED$1 = \"__lodash_hash_undefined__\";\nfunction hashSet$1(key, value) {\n var data2 = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data2[key] = nativeCreate && value === void 0 ? HASH_UNDEFINED$1 : value;\n return this;\n}\nvar _hashSet = hashSet$1;\nvar hashClear = _hashClear, hashDelete = _hashDelete, hashGet = _hashGet, hashHas = _hashHas, hashSet = _hashSet;\nfunction Hash$1(entries) {\n var index2 = -1, length = entries == null ? 0 : entries.length;\n this.clear();\n while (++index2 < length) {\n var entry = entries[index2];\n this.set(entry[0], entry[1]);\n }\n}\nHash$1.prototype.clear = hashClear;\nHash$1.prototype[\"delete\"] = hashDelete;\nHash$1.prototype.get = hashGet;\nHash$1.prototype.has = hashHas;\nHash$1.prototype.set = hashSet;\nvar _Hash = Hash$1;\nfunction listCacheClear$1() {\n this.__data__ = [];\n this.size = 0;\n}\nvar _listCacheClear = listCacheClear$1;\nfunction eq$6(value, other) {\n return value === other || value !== value && other !== other;\n}\nvar eq_1 = eq$6;\nvar eq$5 = eq_1;\nfunction assocIndexOf$4(array, key) {\n var length = array.length;\n while (length--) {\n if (eq$5(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\nvar _assocIndexOf = assocIndexOf$4;\nvar assocIndexOf$3 = _assocIndexOf;\nvar arrayProto = Array.prototype;\nvar splice = arrayProto.splice;\nfunction listCacheDelete$1(key) {\n var data2 = this.__data__, index2 = assocIndexOf$3(data2, key);\n if (index2 < 0) {\n return false;\n }\n var lastIndex = data2.length - 1;\n if (index2 == lastIndex) {\n data2.pop();\n } else {\n splice.call(data2, index2, 1);\n }\n --this.size;\n return true;\n}\nvar _listCacheDelete = listCacheDelete$1;\nvar assocIndexOf$2 = _assocIndexOf;\nfunction listCacheGet$1(key) {\n var data2 = this.__data__, index2 = assocIndexOf$2(data2, key);\n return index2 < 0 ? void 0 : data2[index2][1];\n}\nvar _listCacheGet = listCacheGet$1;\nvar assocIndexOf$1 = _assocIndexOf;\nfunction listCacheHas$1(key) {\n return assocIndexOf$1(this.__data__, key) > -1;\n}\nvar _listCacheHas = listCacheHas$1;\nvar assocIndexOf = _assocIndexOf;\nfunction listCacheSet$1(key, value) {\n var data2 = this.__data__, index2 = assocIndexOf(data2, key);\n if (index2 < 0) {\n ++this.size;\n data2.push([key, value]);\n } else {\n data2[index2][1] = value;\n }\n return this;\n}\nvar _listCacheSet = listCacheSet$1;\nvar listCacheClear = _listCacheClear, listCacheDelete = _listCacheDelete, listCacheGet = _listCacheGet, listCacheHas = _listCacheHas, listCacheSet = _listCacheSet;\nfunction ListCache$4(entries) {\n var index2 = -1, length = entries == null ? 0 : entries.length;\n this.clear();\n while (++index2 < length) {\n var entry = entries[index2];\n this.set(entry[0], entry[1]);\n }\n}\nListCache$4.prototype.clear = listCacheClear;\nListCache$4.prototype[\"delete\"] = listCacheDelete;\nListCache$4.prototype.get = listCacheGet;\nListCache$4.prototype.has = listCacheHas;\nListCache$4.prototype.set = listCacheSet;\nvar _ListCache = ListCache$4;\nvar getNative$5 = _getNative, root$5 = _root;\nvar Map$3 = getNative$5(root$5, \"Map\");\nvar _Map = Map$3;\nvar Hash = _Hash, ListCache$3 = _ListCache, Map$2 = _Map;\nfunction mapCacheClear$1() {\n this.size = 0;\n this.__data__ = {\n \"hash\": new Hash(),\n \"map\": new (Map$2 || ListCache$3)(),\n \"string\": new Hash()\n };\n}\nvar _mapCacheClear = mapCacheClear$1;\nfunction isKeyable$1(value) {\n var type = typeof value;\n return type == \"string\" || type == \"number\" || type == \"symbol\" || type == \"boolean\" ? value !== \"__proto__\" : value === null;\n}\nvar _isKeyable = isKeyable$1;\nvar isKeyable = _isKeyable;\nfunction getMapData$4(map, key) {\n var data2 = map.__data__;\n return isKeyable(key) ? data2[typeof key == \"string\" ? \"string\" : \"hash\"] : data2.map;\n}\nvar _getMapData = getMapData$4;\nvar getMapData$3 = _getMapData;\nfunction mapCacheDelete$1(key) {\n var result = getMapData$3(this, key)[\"delete\"](key);\n this.size -= result ? 1 : 0;\n return result;\n}\nvar _mapCacheDelete = mapCacheDelete$1;\nvar getMapData$2 = _getMapData;\nfunction mapCacheGet$1(key) {\n return getMapData$2(this, key).get(key);\n}\nvar _mapCacheGet = mapCacheGet$1;\nvar getMapData$1 = _getMapData;\nfunction mapCacheHas$1(key) {\n return getMapData$1(this, key).has(key);\n}\nvar _mapCacheHas = mapCacheHas$1;\nvar getMapData = _getMapData;\nfunction mapCacheSet$1(key, value) {\n var data2 = getMapData(this, key), size = data2.size;\n data2.set(key, value);\n this.size += data2.size == size ? 0 : 1;\n return this;\n}\nvar _mapCacheSet = mapCacheSet$1;\nvar mapCacheClear = _mapCacheClear, mapCacheDelete = _mapCacheDelete, mapCacheGet = _mapCacheGet, mapCacheHas = _mapCacheHas, mapCacheSet = _mapCacheSet;\nfunction MapCache$3(entries) {\n var index2 = -1, length = entries == null ? 0 : entries.length;\n this.clear();\n while (++index2 < length) {\n var entry = entries[index2];\n this.set(entry[0], entry[1]);\n }\n}\nMapCache$3.prototype.clear = mapCacheClear;\nMapCache$3.prototype[\"delete\"] = mapCacheDelete;\nMapCache$3.prototype.get = mapCacheGet;\nMapCache$3.prototype.has = mapCacheHas;\nMapCache$3.prototype.set = mapCacheSet;\nvar _MapCache = MapCache$3;\nvar MapCache$2 = _MapCache;\nvar FUNC_ERROR_TEXT = \"Expected a function\";\nfunction memoize$1(func, resolver) {\n if (typeof func != \"function\" || resolver != null && typeof resolver != \"function\") {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments, key = resolver ? resolver.apply(this, args) : args[0], cache = memoized.cache;\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize$1.Cache || MapCache$2)();\n return memoized;\n}\nmemoize$1.Cache = MapCache$2;\nvar memoize_1 = memoize$1;\nvar memoize = memoize_1;\nvar MAX_MEMOIZE_SIZE = 500;\nfunction memoizeCapped$1(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n var cache = result.cache;\n return result;\n}\nvar _memoizeCapped = memoizeCapped$1;\nvar memoizeCapped = _memoizeCapped;\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g;\nvar stringToPath$1 = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46) {\n result.push(\"\");\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, \"$1\") : number || match);\n });\n return result;\n});\nvar _stringToPath = stringToPath$1;\nfunction arrayMap$1(array, iteratee) {\n var index2 = -1, length = array == null ? 0 : array.length, result = Array(length);\n while (++index2 < length) {\n result[index2] = iteratee(array[index2], index2, array);\n }\n return result;\n}\nvar _arrayMap = arrayMap$1;\nvar Symbol$2 = _Symbol, arrayMap = _arrayMap, isArray$a = isArray_1, isSymbol$1 = isSymbol_1;\nvar INFINITY$1 = 1 / 0;\nvar symbolProto$1 = Symbol$2 ? Symbol$2.prototype : void 0, symbolToString = symbolProto$1 ? symbolProto$1.toString : void 0;\nfunction baseToString$1(value) {\n if (typeof value == \"string\") {\n return value;\n }\n if (isArray$a(value)) {\n return arrayMap(value, baseToString$1) + \"\";\n }\n if (isSymbol$1(value)) {\n return symbolToString ? symbolToString.call(value) : \"\";\n }\n var result = value + \"\";\n return result == \"0\" && 1 / value == -INFINITY$1 ? \"-0\" : result;\n}\nvar _baseToString = baseToString$1;\nvar baseToString = _baseToString;\nfunction toString$1(value) {\n return value == null ? \"\" : baseToString(value);\n}\nvar toString_1 = toString$1;\nvar isArray$9 = isArray_1, isKey$2 = _isKey, stringToPath = _stringToPath, toString = toString_1;\nfunction castPath$2(value, object) {\n if (isArray$9(value)) {\n return value;\n }\n return isKey$2(value, object) ? [value] : stringToPath(toString(value));\n}\nvar _castPath = castPath$2;\nvar baseGetTag$7 = _baseGetTag, isObjectLike$9 = isObjectLike_1;\nvar argsTag$2 = \"[object Arguments]\";\nfunction baseIsArguments$1(value) {\n return isObjectLike$9(value) && baseGetTag$7(value) == argsTag$2;\n}\nvar _baseIsArguments = baseIsArguments$1;\nvar baseIsArguments = _baseIsArguments, isObjectLike$8 = isObjectLike_1;\nvar objectProto$a = Object.prototype;\nvar hasOwnProperty$8 = objectProto$a.hasOwnProperty;\nvar propertyIsEnumerable$1 = objectProto$a.propertyIsEnumerable;\nvar isArguments$3 = baseIsArguments(function() {\n return arguments;\n}()) ? baseIsArguments : function(value) {\n return isObjectLike$8(value) && hasOwnProperty$8.call(value, \"callee\") && !propertyIsEnumerable$1.call(value, \"callee\");\n};\nvar isArguments_1 = isArguments$3;\nvar MAX_SAFE_INTEGER$1 = 9007199254740991;\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\nfunction isIndex$3(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER$1 : length;\n return !!length && (type == \"number\" || type != \"symbol\" && reIsUint.test(value)) && (value > -1 && value % 1 == 0 && value < length);\n}\nvar _isIndex = isIndex$3;\nvar MAX_SAFE_INTEGER = 9007199254740991;\nfunction isLength$3(value) {\n return typeof value == \"number\" && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\nvar isLength_1 = isLength$3;\nvar isSymbol = isSymbol_1;\nvar INFINITY = 1 / 0;\nfunction toKey$4(value) {\n if (typeof value == \"string\" || isSymbol(value)) {\n return value;\n }\n var result = value + \"\";\n return result == \"0\" && 1 / value == -INFINITY ? \"-0\" : result;\n}\nvar _toKey = toKey$4;\nvar castPath$1 = _castPath, isArguments$2 = isArguments_1, isArray$8 = isArray_1, isIndex$2 = _isIndex, isLength$2 = isLength_1, toKey$3 = _toKey;\nfunction hasPath$2(object, path, hasFunc) {\n path = castPath$1(path, object);\n var index2 = -1, length = path.length, result = false;\n while (++index2 < length) {\n var key = toKey$3(path[index2]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index2 != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength$2(length) && isIndex$2(key, length) && (isArray$8(object) || isArguments$2(object));\n}\nvar _hasPath = hasPath$2;\nvar baseHas = _baseHas, hasPath$1 = _hasPath;\nfunction has$1(object, path) {\n return object != null && hasPath$1(object, path, baseHas);\n}\nvar has_1 = has$1;\nvar baseGetTag$6 = _baseGetTag, isObjectLike$7 = isObjectLike_1;\nvar dateTag$2 = \"[object Date]\";\nfunction baseIsDate$1(value) {\n return isObjectLike$7(value) && baseGetTag$6(value) == dateTag$2;\n}\nvar _baseIsDate = baseIsDate$1;\nfunction baseUnary$2(func) {\n return function(value) {\n return func(value);\n };\n}\nvar _baseUnary = baseUnary$2;\nvar _nodeUtilExports = {};\nvar _nodeUtil = {\n get exports() {\n return _nodeUtilExports;\n },\n set exports(v) {\n _nodeUtilExports = v;\n }\n};\n(function(module, exports) {\n var freeGlobal2 = _freeGlobal;\n var freeExports = exports && !exports.nodeType && exports;\n var freeModule = freeExports && true && module && !module.nodeType && module;\n var moduleExports = freeModule && freeModule.exports === freeExports;\n var freeProcess = moduleExports && freeGlobal2.process;\n var nodeUtil2 = function() {\n try {\n var types = freeModule && freeModule.require && freeModule.require(\"util\").types;\n if (types) {\n return types;\n }\n return freeProcess && freeProcess.binding && freeProcess.binding(\"util\");\n } catch (e) {\n }\n }();\n module.exports = nodeUtil2;\n})(_nodeUtil, _nodeUtilExports);\nvar baseIsDate = _baseIsDate, baseUnary$1 = _baseUnary, nodeUtil$1 = _nodeUtilExports;\nvar nodeIsDate = nodeUtil$1 && nodeUtil$1.isDate;\nvar isDate$1 = nodeIsDate ? baseUnary$1(nodeIsDate) : baseIsDate;\nvar isDate_1 = isDate$1;\nvar baseGetTag$5 = _baseGetTag, isArray$7 = isArray_1, isObjectLike$6 = isObjectLike_1;\nvar stringTag$2 = \"[object String]\";\nfunction isString(value) {\n return typeof value == \"string\" || !isArray$7(value) && isObjectLike$6(value) && baseGetTag$5(value) == stringTag$2;\n}\nvar isString_1 = isString;\nfunction arraySome$2(array, predicate) {\n var index2 = -1, length = array == null ? 0 : array.length;\n while (++index2 < length) {\n if (predicate(array[index2], index2, array)) {\n return true;\n }\n }\n return false;\n}\nvar _arraySome = arraySome$2;\nvar ListCache$2 = _ListCache;\nfunction stackClear$1() {\n this.__data__ = new ListCache$2();\n this.size = 0;\n}\nvar _stackClear = stackClear$1;\nfunction stackDelete$1(key) {\n var data2 = this.__data__, result = data2[\"delete\"](key);\n this.size = data2.size;\n return result;\n}\nvar _stackDelete = stackDelete$1;\nfunction stackGet$1(key) {\n return this.__data__.get(key);\n}\nvar _stackGet = stackGet$1;\nfunction stackHas$1(key) {\n return this.__data__.has(key);\n}\nvar _stackHas = stackHas$1;\nvar ListCache$1 = _ListCache, Map$1 = _Map, MapCache$1 = _MapCache;\nvar LARGE_ARRAY_SIZE = 200;\nfunction stackSet$1(key, value) {\n var data2 = this.__data__;\n if (data2 instanceof ListCache$1) {\n var pairs = data2.__data__;\n if (!Map$1 || pairs.length < LARGE_ARRAY_SIZE - 1) {\n pairs.push([key, value]);\n this.size = ++data2.size;\n return this;\n }\n data2 = this.__data__ = new MapCache$1(pairs);\n }\n data2.set(key, value);\n this.size = data2.size;\n return this;\n}\nvar _stackSet = stackSet$1;\nvar ListCache = _ListCache, stackClear = _stackClear, stackDelete = _stackDelete, stackGet = _stackGet, stackHas = _stackHas, stackSet = _stackSet;\nfunction Stack$3(entries) {\n var data2 = this.__data__ = new ListCache(entries);\n this.size = data2.size;\n}\nStack$3.prototype.clear = stackClear;\nStack$3.prototype[\"delete\"] = stackDelete;\nStack$3.prototype.get = stackGet;\nStack$3.prototype.has = stackHas;\nStack$3.prototype.set = stackSet;\nvar _Stack = Stack$3;\nvar HASH_UNDEFINED = \"__lodash_hash_undefined__\";\nfunction setCacheAdd$1(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\nvar _setCacheAdd = setCacheAdd$1;\nfunction setCacheHas$1(value) {\n return this.__data__.has(value);\n}\nvar _setCacheHas = setCacheHas$1;\nvar MapCache = _MapCache, setCacheAdd = _setCacheAdd, setCacheHas = _setCacheHas;\nfunction SetCache$1(values) {\n var index2 = -1, length = values == null ? 0 : values.length;\n this.__data__ = new MapCache();\n while (++index2 < length) {\n this.add(values[index2]);\n }\n}\nSetCache$1.prototype.add = SetCache$1.prototype.push = setCacheAdd;\nSetCache$1.prototype.has = setCacheHas;\nvar _SetCache = SetCache$1;\nfunction cacheHas$1(cache, key) {\n return cache.has(key);\n}\nvar _cacheHas = cacheHas$1;\nvar SetCache = _SetCache, arraySome$1 = _arraySome, cacheHas = _cacheHas;\nvar COMPARE_PARTIAL_FLAG$5 = 1, COMPARE_UNORDERED_FLAG$3 = 2;\nfunction equalArrays$2(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG$5, arrLength = array.length, othLength = other.length;\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index2 = -1, result = true, seen = bitmask & COMPARE_UNORDERED_FLAG$3 ? new SetCache() : void 0;\n stack.set(array, other);\n stack.set(other, array);\n while (++index2 < arrLength) {\n var arrValue = array[index2], othValue = other[index2];\n if (customizer) {\n var compared = isPartial ? customizer(othValue, arrValue, index2, other, array, stack) : customizer(arrValue, othValue, index2, array, other, stack);\n }\n if (compared !== void 0) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n if (seen) {\n if (!arraySome$1(other, function(othValue2, othIndex) {\n if (!cacheHas(seen, othIndex) && (arrValue === othValue2 || equalFunc(arrValue, othValue2, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n result = false;\n break;\n }\n }\n stack[\"delete\"](array);\n stack[\"delete\"](other);\n return result;\n}\nvar _equalArrays = equalArrays$2;\nvar root$4 = _root;\nvar Uint8Array$2 = root$4.Uint8Array;\nvar _Uint8Array = Uint8Array$2;\nfunction mapToArray$1(map) {\n var index2 = -1, result = Array(map.size);\n map.forEach(function(value, key) {\n result[++index2] = [key, value];\n });\n return result;\n}\nvar _mapToArray = mapToArray$1;\nfunction setToArray$1(set) {\n var index2 = -1, result = Array(set.size);\n set.forEach(function(value) {\n result[++index2] = value;\n });\n return result;\n}\nvar _setToArray = setToArray$1;\nvar Symbol$1 = _Symbol, Uint8Array$1 = _Uint8Array, eq$4 = eq_1, equalArrays$1 = _equalArrays, mapToArray = _mapToArray, setToArray = _setToArray;\nvar COMPARE_PARTIAL_FLAG$4 = 1, COMPARE_UNORDERED_FLAG$2 = 2;\nvar boolTag$2 = \"[object Boolean]\", dateTag$1 = \"[object Date]\", errorTag$1 = \"[object Error]\", mapTag$2 = \"[object Map]\", numberTag$2 = \"[object Number]\", regexpTag$1 = \"[object RegExp]\", setTag$2 = \"[object Set]\", stringTag$1 = \"[object String]\", symbolTag = \"[object Symbol]\";\nvar arrayBufferTag$1 = \"[object ArrayBuffer]\", dataViewTag$2 = \"[object DataView]\";\nvar symbolProto = Symbol$1 ? Symbol$1.prototype : void 0, symbolValueOf = symbolProto ? symbolProto.valueOf : void 0;\nfunction equalByTag$1(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag$2:\n if (object.byteLength != other.byteLength || object.byteOffset != other.byteOffset) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n case arrayBufferTag$1:\n if (object.byteLength != other.byteLength || !equalFunc(new Uint8Array$1(object), new Uint8Array$1(other))) {\n return false;\n }\n return true;\n case boolTag$2:\n case dateTag$1:\n case numberTag$2:\n return eq$4(+object, +other);\n case errorTag$1:\n return object.name == other.name && object.message == other.message;\n case regexpTag$1:\n case stringTag$1:\n return object == other + \"\";\n case mapTag$2:\n var convert = mapToArray;\n case setTag$2:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG$4;\n convert || (convert = setToArray);\n if (object.size != other.size && !isPartial) {\n return false;\n }\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG$2;\n stack.set(object, other);\n var result = equalArrays$1(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack[\"delete\"](object);\n return result;\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\nvar _equalByTag = equalByTag$1;\nfunction arrayPush$1(array, values) {\n var index2 = -1, length = values.length, offset = array.length;\n while (++index2 < length) {\n array[offset + index2] = values[index2];\n }\n return array;\n}\nvar _arrayPush = arrayPush$1;\nvar arrayPush = _arrayPush, isArray$6 = isArray_1;\nfunction baseGetAllKeys$1(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray$6(object) ? result : arrayPush(result, symbolsFunc(object));\n}\nvar _baseGetAllKeys = baseGetAllKeys$1;\nfunction arrayFilter$1(array, predicate) {\n var index2 = -1, length = array == null ? 0 : array.length, resIndex = 0, result = [];\n while (++index2 < length) {\n var value = array[index2];\n if (predicate(value, index2, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\nvar _arrayFilter = arrayFilter$1;\nfunction stubArray$1() {\n return [];\n}\nvar stubArray_1 = stubArray$1;\nvar arrayFilter = _arrayFilter, stubArray = stubArray_1;\nvar objectProto$9 = Object.prototype;\nvar propertyIsEnumerable = objectProto$9.propertyIsEnumerable;\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\nvar getSymbols$1 = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\nvar _getSymbols = getSymbols$1;\nfunction baseTimes$1(n, iteratee) {\n var index2 = -1, result = Array(n);\n while (++index2 < n) {\n result[index2] = iteratee(index2);\n }\n return result;\n}\nvar _baseTimes = baseTimes$1;\nvar isBufferExports = {};\nvar isBuffer$3 = {\n get exports() {\n return isBufferExports;\n },\n set exports(v) {\n isBufferExports = v;\n }\n};\nfunction stubFalse() {\n return false;\n}\nvar stubFalse_1 = stubFalse;\n(function(module, exports) {\n var root2 = _root, stubFalse2 = stubFalse_1;\n var freeExports = exports && !exports.nodeType && exports;\n var freeModule = freeExports && true && module && !module.nodeType && module;\n var moduleExports = freeModule && freeModule.exports === freeExports;\n var Buffer2 = moduleExports ? root2.Buffer : void 0;\n var nativeIsBuffer = Buffer2 ? Buffer2.isBuffer : void 0;\n var isBuffer2 = nativeIsBuffer || stubFalse2;\n module.exports = isBuffer2;\n})(isBuffer$3, isBufferExports);\nvar baseGetTag$4 = _baseGetTag, isLength$1 = isLength_1, isObjectLike$5 = isObjectLike_1;\nvar argsTag$1 = \"[object Arguments]\", arrayTag$1 = \"[object Array]\", boolTag$1 = \"[object Boolean]\", dateTag = \"[object Date]\", errorTag = \"[object Error]\", funcTag = \"[object Function]\", mapTag$1 = \"[object Map]\", numberTag$1 = \"[object Number]\", objectTag$3 = \"[object Object]\", regexpTag = \"[object RegExp]\", setTag$1 = \"[object Set]\", stringTag = \"[object String]\", weakMapTag$1 = \"[object WeakMap]\";\nvar arrayBufferTag = \"[object ArrayBuffer]\", dataViewTag$1 = \"[object DataView]\", float32Tag = \"[object Float32Array]\", float64Tag = \"[object Float64Array]\", int8Tag = \"[object Int8Array]\", int16Tag = \"[object Int16Array]\", int32Tag = \"[object Int32Array]\", uint8Tag = \"[object Uint8Array]\", uint8ClampedTag = \"[object Uint8ClampedArray]\", uint16Tag = \"[object Uint16Array]\", uint32Tag = \"[object Uint32Array]\";\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag$1] = typedArrayTags[arrayTag$1] = typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag$1] = typedArrayTags[dataViewTag$1] = typedArrayTags[dateTag] = typedArrayTags[errorTag] = typedArrayTags[funcTag] = typedArrayTags[mapTag$1] = typedArrayTags[numberTag$1] = typedArrayTags[objectTag$3] = typedArrayTags[regexpTag] = typedArrayTags[setTag$1] = typedArrayTags[stringTag] = typedArrayTags[weakMapTag$1] = false;\nfunction baseIsTypedArray$1(value) {\n return isObjectLike$5(value) && isLength$1(value.length) && !!typedArrayTags[baseGetTag$4(value)];\n}\nvar _baseIsTypedArray = baseIsTypedArray$1;\nvar baseIsTypedArray = _baseIsTypedArray, baseUnary = _baseUnary, nodeUtil = _nodeUtilExports;\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\nvar isTypedArray$3 = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\nvar isTypedArray_1 = isTypedArray$3;\nvar baseTimes = _baseTimes, isArguments$1 = isArguments_1, isArray$5 = isArray_1, isBuffer$2 = isBufferExports, isIndex$1 = _isIndex, isTypedArray$2 = isTypedArray_1;\nvar objectProto$8 = Object.prototype;\nvar hasOwnProperty$7 = objectProto$8.hasOwnProperty;\nfunction arrayLikeKeys$2(value, inherited) {\n var isArr = isArray$5(value), isArg = !isArr && isArguments$1(value), isBuff = !isArr && !isArg && isBuffer$2(value), isType = !isArr && !isArg && !isBuff && isTypedArray$2(value), skipIndexes = isArr || isArg || isBuff || isType, result = skipIndexes ? baseTimes(value.length, String) : [], length = result.length;\n for (var key in value) {\n if ((inherited || hasOwnProperty$7.call(value, key)) && !(skipIndexes && // Safari 9 has enumerable `arguments.length` in strict mode.\n (key == \"length\" || // Node.js 0.10 has enumerable non-index properties on buffers.\n isBuff && (key == \"offset\" || key == \"parent\") || // PhantomJS 2 has enumerable non-index properties on typed arrays.\n isType && (key == \"buffer\" || key == \"byteLength\" || key == \"byteOffset\") || // Skip index properties.\n isIndex$1(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\nvar _arrayLikeKeys = arrayLikeKeys$2;\nvar objectProto$7 = Object.prototype;\nfunction isPrototype$3(value) {\n var Ctor = value && value.constructor, proto = typeof Ctor == \"function\" && Ctor.prototype || objectProto$7;\n return value === proto;\n}\nvar _isPrototype = isPrototype$3;\nfunction overArg$2(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\nvar _overArg = overArg$2;\nvar overArg$1 = _overArg;\nvar nativeKeys$1 = overArg$1(Object.keys, Object);\nvar _nativeKeys = nativeKeys$1;\nvar isPrototype$2 = _isPrototype, nativeKeys = _nativeKeys;\nvar objectProto$6 = Object.prototype;\nvar hasOwnProperty$6 = objectProto$6.hasOwnProperty;\nfunction baseKeys$1(object) {\n if (!isPrototype$2(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty$6.call(object, key) && key != \"constructor\") {\n result.push(key);\n }\n }\n return result;\n}\nvar _baseKeys = baseKeys$1;\nvar isFunction$1 = isFunction_1, isLength = isLength_1;\nfunction isArrayLike$5(value) {\n return value != null && isLength(value.length) && !isFunction$1(value);\n}\nvar isArrayLike_1 = isArrayLike$5;\nvar arrayLikeKeys$1 = _arrayLikeKeys, baseKeys = _baseKeys, isArrayLike$4 = isArrayLike_1;\nfunction keys$3(object) {\n return isArrayLike$4(object) ? arrayLikeKeys$1(object) : baseKeys(object);\n}\nvar keys_1 = keys$3;\nvar baseGetAllKeys = _baseGetAllKeys, getSymbols = _getSymbols, keys$2 = keys_1;\nfunction getAllKeys$1(object) {\n return baseGetAllKeys(object, keys$2, getSymbols);\n}\nvar _getAllKeys = getAllKeys$1;\nvar getAllKeys = _getAllKeys;\nvar COMPARE_PARTIAL_FLAG$3 = 1;\nvar objectProto$5 = Object.prototype;\nvar hasOwnProperty$5 = objectProto$5.hasOwnProperty;\nfunction equalObjects$1(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG$3, objProps = getAllKeys(object), objLength = objProps.length, othProps = getAllKeys(other), othLength = othProps.length;\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index2 = objLength;\n while (index2--) {\n var key = objProps[index2];\n if (!(isPartial ? key in other : hasOwnProperty$5.call(other, key))) {\n return false;\n }\n }\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n var skipCtor = isPartial;\n while (++index2 < objLength) {\n key = objProps[index2];\n var objValue = object[key], othValue = other[key];\n if (customizer) {\n var compared = isPartial ? customizer(othValue, objValue, key, other, object, stack) : customizer(objValue, othValue, key, object, other, stack);\n }\n if (!(compared === void 0 ? objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack) : compared)) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == \"constructor\");\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor, othCtor = other.constructor;\n if (objCtor != othCtor && (\"constructor\" in object && \"constructor\" in other) && !(typeof objCtor == \"function\" && objCtor instanceof objCtor && typeof othCtor == \"function\" && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack[\"delete\"](object);\n stack[\"delete\"](other);\n return result;\n}\nvar _equalObjects = equalObjects$1;\nvar getNative$4 = _getNative, root$3 = _root;\nvar DataView$1 = getNative$4(root$3, \"DataView\");\nvar _DataView = DataView$1;\nvar getNative$3 = _getNative, root$2 = _root;\nvar Promise$2 = getNative$3(root$2, \"Promise\");\nvar _Promise = Promise$2;\nvar getNative$2 = _getNative, root$1 = _root;\nvar Set$1 = getNative$2(root$1, \"Set\");\nvar _Set = Set$1;\nvar getNative$1 = _getNative, root = _root;\nvar WeakMap$1 = getNative$1(root, \"WeakMap\");\nvar _WeakMap = WeakMap$1;\nvar DataView = _DataView, Map = _Map, Promise$1 = _Promise, Set = _Set, WeakMap = _WeakMap, baseGetTag$3 = _baseGetTag, toSource = _toSource;\nvar mapTag = \"[object Map]\", objectTag$2 = \"[object Object]\", promiseTag = \"[object Promise]\", setTag = \"[object Set]\", weakMapTag = \"[object WeakMap]\";\nvar dataViewTag = \"[object DataView]\";\nvar dataViewCtorString = toSource(DataView), mapCtorString = toSource(Map), promiseCtorString = toSource(Promise$1), setCtorString = toSource(Set), weakMapCtorString = toSource(WeakMap);\nvar getTag$1 = baseGetTag$3;\nif (DataView && getTag$1(new DataView(new ArrayBuffer(1))) != dataViewTag || Map && getTag$1(new Map()) != mapTag || Promise$1 && getTag$1(Promise$1.resolve()) != promiseTag || Set && getTag$1(new Set()) != setTag || WeakMap && getTag$1(new WeakMap()) != weakMapTag) {\n getTag$1 = function(value) {\n var result = baseGetTag$3(value), Ctor = result == objectTag$2 ? value.constructor : void 0, ctorString = Ctor ? toSource(Ctor) : \"\";\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString:\n return dataViewTag;\n case mapCtorString:\n return mapTag;\n case promiseCtorString:\n return promiseTag;\n case setCtorString:\n return setTag;\n case weakMapCtorString:\n return weakMapTag;\n }\n }\n return result;\n };\n}\nvar _getTag = getTag$1;\nvar Stack$2 = _Stack, equalArrays = _equalArrays, equalByTag = _equalByTag, equalObjects = _equalObjects, getTag = _getTag, isArray$4 = isArray_1, isBuffer$1 = isBufferExports, isTypedArray$1 = isTypedArray_1;\nvar COMPARE_PARTIAL_FLAG$2 = 1;\nvar argsTag = \"[object Arguments]\", arrayTag = \"[object Array]\", objectTag$1 = \"[object Object]\";\nvar objectProto$4 = Object.prototype;\nvar hasOwnProperty$4 = objectProto$4.hasOwnProperty;\nfunction baseIsEqualDeep$1(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray$4(object), othIsArr = isArray$4(other), objTag = objIsArr ? arrayTag : getTag(object), othTag = othIsArr ? arrayTag : getTag(other);\n objTag = objTag == argsTag ? objectTag$1 : objTag;\n othTag = othTag == argsTag ? objectTag$1 : othTag;\n var objIsObj = objTag == objectTag$1, othIsObj = othTag == objectTag$1, isSameTag = objTag == othTag;\n if (isSameTag && isBuffer$1(object)) {\n if (!isBuffer$1(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack$2());\n return objIsArr || isTypedArray$1(object) ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG$2)) {\n var objIsWrapped = objIsObj && hasOwnProperty$4.call(object, \"__wrapped__\"), othIsWrapped = othIsObj && hasOwnProperty$4.call(other, \"__wrapped__\");\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object, othUnwrapped = othIsWrapped ? other.value() : other;\n stack || (stack = new Stack$2());\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack$2());\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\nvar _baseIsEqualDeep = baseIsEqualDeep$1;\nvar baseIsEqualDeep = _baseIsEqualDeep, isObjectLike$4 = isObjectLike_1;\nfunction baseIsEqual$2(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || !isObjectLike$4(value) && !isObjectLike$4(other)) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual$2, stack);\n}\nvar _baseIsEqual = baseIsEqual$2;\nvar Stack$1 = _Stack, baseIsEqual$1 = _baseIsEqual;\nvar COMPARE_PARTIAL_FLAG$1 = 1, COMPARE_UNORDERED_FLAG$1 = 2;\nfunction baseIsMatch$1(object, source, matchData, customizer) {\n var index2 = matchData.length, length = index2, noCustomizer = !customizer;\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index2--) {\n var data2 = matchData[index2];\n if (noCustomizer && data2[2] ? data2[1] !== object[data2[0]] : !(data2[0] in object)) {\n return false;\n }\n }\n while (++index2 < length) {\n data2 = matchData[index2];\n var key = data2[0], objValue = object[key], srcValue = data2[1];\n if (noCustomizer && data2[2]) {\n if (objValue === void 0 && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack$1();\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === void 0 ? baseIsEqual$1(srcValue, objValue, COMPARE_PARTIAL_FLAG$1 | COMPARE_UNORDERED_FLAG$1, customizer, stack) : result)) {\n return false;\n }\n }\n }\n return true;\n}\nvar _baseIsMatch = baseIsMatch$1;\nvar isObject$7 = isObject_1;\nfunction isStrictComparable$2(value) {\n return value === value && !isObject$7(value);\n}\nvar _isStrictComparable = isStrictComparable$2;\nvar isStrictComparable$1 = _isStrictComparable, keys$1 = keys_1;\nfunction getMatchData$1(object) {\n var result = keys$1(object), length = result.length;\n while (length--) {\n var key = result[length], value = object[key];\n result[length] = [key, value, isStrictComparable$1(value)];\n }\n return result;\n}\nvar _getMatchData = getMatchData$1;\nfunction matchesStrictComparable$2(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue && (srcValue !== void 0 || key in Object(object));\n };\n}\nvar _matchesStrictComparable = matchesStrictComparable$2;\nvar baseIsMatch = _baseIsMatch, getMatchData = _getMatchData, matchesStrictComparable$1 = _matchesStrictComparable;\nfunction baseMatches$1(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable$1(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\nvar _baseMatches = baseMatches$1;\nvar castPath = _castPath, toKey$2 = _toKey;\nfunction baseGet$2(object, path) {\n path = castPath(path, object);\n var index2 = 0, length = path.length;\n while (object != null && index2 < length) {\n object = object[toKey$2(path[index2++])];\n }\n return index2 && index2 == length ? object : void 0;\n}\nvar _baseGet = baseGet$2;\nvar baseGet$1 = _baseGet;\nfunction get$1(object, path, defaultValue) {\n var result = object == null ? void 0 : baseGet$1(object, path);\n return result === void 0 ? defaultValue : result;\n}\nvar get_1 = get$1;\nfunction baseHasIn$1(object, key) {\n return object != null && key in Object(object);\n}\nvar _baseHasIn = baseHasIn$1;\nvar baseHasIn = _baseHasIn, hasPath = _hasPath;\nfunction hasIn$1(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\nvar hasIn_1 = hasIn$1;\nvar baseIsEqual = _baseIsEqual, get = get_1, hasIn = hasIn_1, isKey$1 = _isKey, isStrictComparable = _isStrictComparable, matchesStrictComparable = _matchesStrictComparable, toKey$1 = _toKey;\nvar COMPARE_PARTIAL_FLAG = 1, COMPARE_UNORDERED_FLAG = 2;\nfunction baseMatchesProperty$1(path, srcValue) {\n if (isKey$1(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey$1(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return objValue === void 0 && objValue === srcValue ? hasIn(object, path) : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\nvar _baseMatchesProperty = baseMatchesProperty$1;\nfunction identity$3(value) {\n return value;\n}\nvar identity_1 = identity$3;\nfunction baseProperty$1(key) {\n return function(object) {\n return object == null ? void 0 : object[key];\n };\n}\nvar _baseProperty = baseProperty$1;\nvar baseGet = _baseGet;\nfunction basePropertyDeep$1(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\nvar _basePropertyDeep = basePropertyDeep$1;\nvar baseProperty = _baseProperty, basePropertyDeep = _basePropertyDeep, isKey = _isKey, toKey = _toKey;\nfunction property$1(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\nvar property_1 = property$1;\nvar baseMatches = _baseMatches, baseMatchesProperty = _baseMatchesProperty, identity$2 = identity_1, isArray$3 = isArray_1, property = property_1;\nfunction baseIteratee$2(value) {\n if (typeof value == \"function\") {\n return value;\n }\n if (value == null) {\n return identity$2;\n }\n if (typeof value == \"object\") {\n return isArray$3(value) ? baseMatchesProperty(value[0], value[1]) : baseMatches(value);\n }\n return property(value);\n}\nvar _baseIteratee = baseIteratee$2;\nfunction createBaseFor$1(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index2 = -1, iterable = Object(object), props = keysFunc(object), length = props.length;\n while (length--) {\n var key = props[fromRight ? length : ++index2];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\nvar _createBaseFor = createBaseFor$1;\nvar createBaseFor = _createBaseFor;\nvar baseFor$2 = createBaseFor();\nvar _baseFor = baseFor$2;\nvar baseFor$1 = _baseFor, keys = keys_1;\nfunction baseForOwn$2(object, iteratee) {\n return object && baseFor$1(object, iteratee, keys);\n}\nvar _baseForOwn = baseForOwn$2;\nvar isArrayLike$3 = isArrayLike_1;\nfunction createBaseEach$1(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike$3(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length, index2 = fromRight ? length : -1, iterable = Object(collection);\n while (fromRight ? index2-- : ++index2 < length) {\n if (iteratee(iterable[index2], index2, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\nvar _createBaseEach = createBaseEach$1;\nvar baseForOwn$1 = _baseForOwn, createBaseEach = _createBaseEach;\nvar baseEach$1 = createBaseEach(baseForOwn$1);\nvar _baseEach = baseEach$1;\nvar baseEach = _baseEach;\nfunction baseSome$1(collection, predicate) {\n var result;\n baseEach(collection, function(value, index2, collection2) {\n result = predicate(value, index2, collection2);\n return !result;\n });\n return !!result;\n}\nvar _baseSome = baseSome$1;\nvar eq$3 = eq_1, isArrayLike$2 = isArrayLike_1, isIndex = _isIndex, isObject$6 = isObject_1;\nfunction isIterateeCall$3(value, index2, object) {\n if (!isObject$6(object)) {\n return false;\n }\n var type = typeof index2;\n if (type == \"number\" ? isArrayLike$2(object) && isIndex(index2, object.length) : type == \"string\" && index2 in object) {\n return eq$3(object[index2], value);\n }\n return false;\n}\nvar _isIterateeCall = isIterateeCall$3;\nvar arraySome = _arraySome, baseIteratee$1 = _baseIteratee, baseSome = _baseSome, isArray$2 = isArray_1, isIterateeCall$2 = _isIterateeCall;\nfunction some(collection, predicate, guard) {\n var func = isArray$2(collection) ? arraySome : baseSome;\n if (guard && isIterateeCall$2(collection, predicate, guard)) {\n predicate = void 0;\n }\n return func(collection, baseIteratee$1(predicate));\n}\nvar some_1 = some;\nvar baseGetTag$2 = _baseGetTag, isObjectLike$3 = isObjectLike_1;\nvar boolTag = \"[object Boolean]\";\nfunction isBoolean(value) {\n return value === true || value === false || isObjectLike$3(value) && baseGetTag$2(value) == boolTag;\n}\nvar isBoolean_1 = isBoolean;\nvar baseGetTag$1 = _baseGetTag, isObjectLike$2 = isObjectLike_1;\nvar numberTag = \"[object Number]\";\nfunction isNumber(value) {\n return typeof value == \"number\" || isObjectLike$2(value) && baseGetTag$1(value) == numberTag;\n}\nvar isNumber_1 = isNumber;\nvar getNative = _getNative;\nvar defineProperty$2 = function() {\n try {\n var func = getNative(Object, \"defineProperty\");\n func({}, \"\", {});\n return func;\n } catch (e) {\n }\n}();\nvar _defineProperty = defineProperty$2;\nvar defineProperty$1 = _defineProperty;\nfunction baseAssignValue$4(object, key, value) {\n if (key == \"__proto__\" && defineProperty$1) {\n defineProperty$1(object, key, {\n \"configurable\": true,\n \"enumerable\": true,\n \"value\": value,\n \"writable\": true\n });\n } else {\n object[key] = value;\n }\n}\nvar _baseAssignValue = baseAssignValue$4;\nvar baseAssignValue$3 = _baseAssignValue, eq$2 = eq_1;\nvar objectProto$3 = Object.prototype;\nvar hasOwnProperty$3 = objectProto$3.hasOwnProperty;\nfunction assignValue$1(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty$3.call(object, key) && eq$2(objValue, value)) || value === void 0 && !(key in object)) {\n baseAssignValue$3(object, key, value);\n }\n}\nvar _assignValue = assignValue$1;\nvar baseAssignValue$2 = _baseAssignValue, baseForOwn = _baseForOwn, baseIteratee = _baseIteratee;\nfunction mapValues(object, iteratee) {\n var result = {};\n iteratee = baseIteratee(iteratee);\n baseForOwn(object, function(value, key, object2) {\n baseAssignValue$2(result, key, iteratee(value, key, object2));\n });\n return result;\n}\nvar mapValues_1 = mapValues;\nfunction apply$2(func, thisArg, args) {\n switch (args.length) {\n case 0:\n return func.call(thisArg);\n case 1:\n return func.call(thisArg, args[0]);\n case 2:\n return func.call(thisArg, args[0], args[1]);\n case 3:\n return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\nvar _apply = apply$2;\nvar apply$1 = _apply;\nvar nativeMax = Math.max;\nfunction overRest$1(func, start, transform) {\n start = nativeMax(start === void 0 ? func.length - 1 : start, 0);\n return function() {\n var args = arguments, index2 = -1, length = nativeMax(args.length - start, 0), array = Array(length);\n while (++index2 < length) {\n array[index2] = args[start + index2];\n }\n index2 = -1;\n var otherArgs = Array(start + 1);\n while (++index2 < start) {\n otherArgs[index2] = args[index2];\n }\n otherArgs[start] = transform(array);\n return apply$1(func, this, otherArgs);\n };\n}\nvar _overRest = overRest$1;\nfunction constant$1(value) {\n return function() {\n return value;\n };\n}\nvar constant_1 = constant$1;\nvar constant = constant_1, defineProperty = _defineProperty, identity$1 = identity_1;\nvar baseSetToString$1 = !defineProperty ? identity$1 : function(func, string) {\n return defineProperty(func, \"toString\", {\n \"configurable\": true,\n \"enumerable\": false,\n \"value\": constant(string),\n \"writable\": true\n });\n};\nvar _baseSetToString = baseSetToString$1;\nvar HOT_COUNT = 800, HOT_SPAN = 16;\nvar nativeNow = Date.now;\nfunction shortOut$1(func) {\n var count = 0, lastCalled = 0;\n return function() {\n var stamp = nativeNow(), remaining = HOT_SPAN - (stamp - lastCalled);\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(void 0, arguments);\n };\n}\nvar _shortOut = shortOut$1;\nvar baseSetToString = _baseSetToString, shortOut = _shortOut;\nvar setToString$1 = shortOut(baseSetToString);\nvar _setToString = setToString$1;\nvar identity = identity_1, overRest = _overRest, setToString = _setToString;\nfunction baseRest$3(func, start) {\n return setToString(overRest(func, start, identity), func + \"\");\n}\nvar _baseRest = baseRest$3;\nfunction nativeKeysIn$1(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\nvar _nativeKeysIn = nativeKeysIn$1;\nvar isObject$5 = isObject_1, isPrototype$1 = _isPrototype, nativeKeysIn = _nativeKeysIn;\nvar objectProto$2 = Object.prototype;\nvar hasOwnProperty$2 = objectProto$2.hasOwnProperty;\nfunction baseKeysIn$1(object) {\n if (!isObject$5(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype$1(object), result = [];\n for (var key in object) {\n if (!(key == \"constructor\" && (isProto || !hasOwnProperty$2.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\nvar _baseKeysIn = baseKeysIn$1;\nvar arrayLikeKeys = _arrayLikeKeys, baseKeysIn = _baseKeysIn, isArrayLike$1 = isArrayLike_1;\nfunction keysIn$3(object) {\n return isArrayLike$1(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\nvar keysIn_1 = keysIn$3;\nvar baseRest$2 = _baseRest, eq$1 = eq_1, isIterateeCall$1 = _isIterateeCall, keysIn$2 = keysIn_1;\nvar objectProto$1 = Object.prototype;\nvar hasOwnProperty$1 = objectProto$1.hasOwnProperty;\nvar defaults = baseRest$2(function(object, sources) {\n object = Object(object);\n var index2 = -1;\n var length = sources.length;\n var guard = length > 2 ? sources[2] : void 0;\n if (guard && isIterateeCall$1(sources[0], sources[1], guard)) {\n length = 1;\n }\n while (++index2 < length) {\n var source = sources[index2];\n var props = keysIn$2(source);\n var propsIndex = -1;\n var propsLength = props.length;\n while (++propsIndex < propsLength) {\n var key = props[propsIndex];\n var value = object[key];\n if (value === void 0 || eq$1(value, objectProto$1[key]) && !hasOwnProperty$1.call(object, key)) {\n object[key] = source[key];\n }\n }\n }\n return object;\n});\nvar defaults_1 = defaults;\nvar baseAssignValue$1 = _baseAssignValue, eq = eq_1;\nfunction assignMergeValue$2(object, key, value) {\n if (value !== void 0 && !eq(object[key], value) || value === void 0 && !(key in object)) {\n baseAssignValue$1(object, key, value);\n }\n}\nvar _assignMergeValue = assignMergeValue$2;\nvar _cloneBufferExports = {};\nvar _cloneBuffer = {\n get exports() {\n return _cloneBufferExports;\n },\n set exports(v) {\n _cloneBufferExports = v;\n }\n};\n(function(module, exports) {\n var root2 = _root;\n var freeExports = exports && !exports.nodeType && exports;\n var freeModule = freeExports && true && module && !module.nodeType && module;\n var moduleExports = freeModule && freeModule.exports === freeExports;\n var Buffer2 = moduleExports ? root2.Buffer : void 0, allocUnsafe = Buffer2 ? Buffer2.allocUnsafe : void 0;\n function cloneBuffer2(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length, result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n buffer.copy(result);\n return result;\n }\n module.exports = cloneBuffer2;\n})(_cloneBuffer, _cloneBufferExports);\nvar Uint8Array2 = _Uint8Array;\nfunction cloneArrayBuffer$1(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array2(result).set(new Uint8Array2(arrayBuffer));\n return result;\n}\nvar _cloneArrayBuffer = cloneArrayBuffer$1;\nvar cloneArrayBuffer = _cloneArrayBuffer;\nfunction cloneTypedArray$1(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\nvar _cloneTypedArray = cloneTypedArray$1;\nfunction copyArray$1(source, array) {\n var index2 = -1, length = source.length;\n array || (array = Array(length));\n while (++index2 < length) {\n array[index2] = source[index2];\n }\n return array;\n}\nvar _copyArray = copyArray$1;\nvar isObject$4 = isObject_1;\nvar objectCreate = Object.create;\nvar baseCreate$1 = function() {\n function object() {\n }\n return function(proto) {\n if (!isObject$4(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object();\n object.prototype = void 0;\n return result;\n };\n}();\nvar _baseCreate = baseCreate$1;\nvar overArg = _overArg;\nvar getPrototype$2 = overArg(Object.getPrototypeOf, Object);\nvar _getPrototype = getPrototype$2;\nvar baseCreate = _baseCreate, getPrototype$1 = _getPrototype, isPrototype = _isPrototype;\nfunction initCloneObject$1(object) {\n return typeof object.constructor == \"function\" && !isPrototype(object) ? baseCreate(getPrototype$1(object)) : {};\n}\nvar _initCloneObject = initCloneObject$1;\nvar isArrayLike = isArrayLike_1, isObjectLike$1 = isObjectLike_1;\nfunction isArrayLikeObject$1(value) {\n return isObjectLike$1(value) && isArrayLike(value);\n}\nvar isArrayLikeObject_1 = isArrayLikeObject$1;\nvar baseGetTag = _baseGetTag, getPrototype = _getPrototype, isObjectLike = isObjectLike_1;\nvar objectTag = \"[object Object]\";\nvar funcProto = Function.prototype, objectProto = Object.prototype;\nvar funcToString = funcProto.toString;\nvar hasOwnProperty = objectProto.hasOwnProperty;\nvar objectCtorString = funcToString.call(Object);\nfunction isPlainObject$1(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, \"constructor\") && proto.constructor;\n return typeof Ctor == \"function\" && Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString;\n}\nvar isPlainObject_1 = isPlainObject$1;\nfunction safeGet$2(object, key) {\n if (key === \"constructor\" && typeof object[key] === \"function\") {\n return;\n }\n if (key == \"__proto__\") {\n return;\n }\n return object[key];\n}\nvar _safeGet = safeGet$2;\nvar assignValue = _assignValue, baseAssignValue = _baseAssignValue;\nfunction copyObject$1(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n var index2 = -1, length = props.length;\n while (++index2 < length) {\n var key = props[index2];\n var newValue = customizer ? customizer(object[key], source[key], key, object, source) : void 0;\n if (newValue === void 0) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\nvar _copyObject = copyObject$1;\nvar copyObject = _copyObject, keysIn$1 = keysIn_1;\nfunction toPlainObject$1(value) {\n return copyObject(value, keysIn$1(value));\n}\nvar toPlainObject_1 = toPlainObject$1;\nvar assignMergeValue$1 = _assignMergeValue, cloneBuffer = _cloneBufferExports, cloneTypedArray = _cloneTypedArray, copyArray = _copyArray, initCloneObject = _initCloneObject, isArguments = isArguments_1, isArray$1 = isArray_1, isArrayLikeObject = isArrayLikeObject_1, isBuffer = isBufferExports, isFunction = isFunction_1, isObject$3 = isObject_1, isPlainObject = isPlainObject_1, isTypedArray = isTypedArray_1, safeGet$1 = _safeGet, toPlainObject = toPlainObject_1;\nfunction baseMergeDeep$1(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet$1(object, key), srcValue = safeGet$1(source, key), stacked = stack.get(srcValue);\n if (stacked) {\n assignMergeValue$1(object, key, stacked);\n return;\n }\n var newValue = customizer ? customizer(objValue, srcValue, key + \"\", object, source, stack) : void 0;\n var isCommon = newValue === void 0;\n if (isCommon) {\n var isArr = isArray$1(srcValue), isBuff = !isArr && isBuffer(srcValue), isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray$1(objValue)) {\n newValue = objValue;\n } else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n } else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n } else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n } else {\n newValue = [];\n }\n } else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n } else if (!isObject$3(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n } else {\n isCommon = false;\n }\n }\n if (isCommon) {\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack[\"delete\"](srcValue);\n }\n assignMergeValue$1(object, key, newValue);\n}\nvar _baseMergeDeep = baseMergeDeep$1;\nvar Stack = _Stack, assignMergeValue = _assignMergeValue, baseFor = _baseFor, baseMergeDeep = _baseMergeDeep, isObject$2 = isObject_1, keysIn = keysIn_1, safeGet = _safeGet;\nfunction baseMerge$2(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack());\n if (isObject$2(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge$2, customizer, stack);\n } else {\n var newValue = customizer ? customizer(safeGet(object, key), srcValue, key + \"\", object, source, stack) : void 0;\n if (newValue === void 0) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\nvar _baseMerge = baseMerge$2;\nvar baseMerge$1 = _baseMerge, isObject$1 = isObject_1;\nfunction customDefaultsMerge$1(objValue, srcValue, key, object, source, stack) {\n if (isObject$1(objValue) && isObject$1(srcValue)) {\n stack.set(srcValue, objValue);\n baseMerge$1(objValue, srcValue, void 0, customDefaultsMerge$1, stack);\n stack[\"delete\"](srcValue);\n }\n return objValue;\n}\nvar _customDefaultsMerge = customDefaultsMerge$1;\nvar baseRest$1 = _baseRest, isIterateeCall = _isIterateeCall;\nfunction createAssigner$1(assigner) {\n return baseRest$1(function(object, sources) {\n var index2 = -1, length = sources.length, customizer = length > 1 ? sources[length - 1] : void 0, guard = length > 2 ? sources[2] : void 0;\n customizer = assigner.length > 3 && typeof customizer == \"function\" ? (length--, customizer) : void 0;\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? void 0 : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index2 < length) {\n var source = sources[index2];\n if (source) {\n assigner(object, source, index2, customizer);\n }\n }\n return object;\n });\n}\nvar _createAssigner = createAssigner$1;\nvar baseMerge = _baseMerge, createAssigner = _createAssigner;\nvar mergeWith$1 = createAssigner(function(object, source, srcIndex, customizer) {\n baseMerge(object, source, srcIndex, customizer);\n});\nvar mergeWith_1 = mergeWith$1;\nvar apply = _apply, baseRest = _baseRest, customDefaultsMerge = _customDefaultsMerge, mergeWith = mergeWith_1;\nvar defaultsDeep = baseRest(function(args) {\n args.push(void 0, customDefaultsMerge);\n return apply(mergeWith, void 0, args);\n});\nvar defaultsDeep_1 = defaultsDeep;\nfunction head(array) {\n return array && array.length ? array[0] : void 0;\n}\nvar head_1 = head;\nfunction last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : void 0;\n}\nvar last_1 = last;\nconst getType = (value) => Object.prototype.toString.call(value).slice(8, -1);\nconst isDate = (value) => isDate_1(value) && !isNaN(value.getTime());\nconst isObject = (value) => getType(value) === \"Object\";\nconst has = has_1;\nconst hasAny = (obj, props) => some_1(props, (p) => has_1(obj, p));\nconst pad = (val, len, char = \"0\") => {\n val = val !== null && val !== void 0 ? String(val) : \"\";\n len = len || 2;\n while (val.length < len) {\n val = `${char}${val}`;\n }\n return val;\n};\nconst isArray = (val) => Array.isArray(val);\nconst arrayHasItems = (array) => isArray(array) && array.length > 0;\nconst resolveEl = (target) => {\n if (target == null)\n return null;\n if (document && isString_1(target))\n return document.querySelector(target);\n return target.$el ?? target;\n};\nconst off = (element, event, handler, opts = void 0) => {\n element.removeEventListener(event, handler, opts);\n};\nconst on = (element, event, handler, opts = void 0) => {\n element.addEventListener(event, handler, opts);\n return () => off(element, event, handler, opts);\n};\nconst elementContains = (element, child) => !!element && !!child && (element === child || element.contains(child));\nconst onSpaceOrEnter = (event, handler) => {\n if (event.key === \" \" || event.key === \"Enter\") {\n handler(event);\n event.preventDefault();\n }\n};\nconst omit = (obj, ...keys2) => {\n const ret = {};\n let key;\n for (key in obj) {\n if (!keys2.includes(key)) {\n ret[key] = obj[key];\n }\n }\n return ret;\n};\nconst pick = (obj, keys2) => {\n const ret = {};\n keys2.forEach((key) => {\n if (key in obj)\n ret[key] = obj[key];\n });\n return ret;\n};\nfunction clamp(num, min, max) {\n return Math.min(Math.max(num, min), max);\n}\nvar toIntegerExports = {};\nvar toInteger$2 = {\n get exports() {\n return toIntegerExports;\n },\n set exports(v) {\n toIntegerExports = v;\n }\n};\n(function(module, exports) {\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.default = toInteger2;\n function toInteger2(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n var number = Number(dirtyNumber);\n if (isNaN(number)) {\n return number;\n }\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n }\n module.exports = exports.default;\n})(toInteger$2, toIntegerExports);\nconst toInteger$1 = /* @__PURE__ */ getDefaultExportFromCjs(toIntegerExports);\nvar getTimezoneOffsetInMillisecondsExports = {};\nvar getTimezoneOffsetInMilliseconds$2 = {\n get exports() {\n return getTimezoneOffsetInMillisecondsExports;\n },\n set exports(v) {\n getTimezoneOffsetInMillisecondsExports = v;\n }\n};\n(function(module, exports) {\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.default = getTimezoneOffsetInMilliseconds2;\n function getTimezoneOffsetInMilliseconds2(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n }\n module.exports = exports.default;\n})(getTimezoneOffsetInMilliseconds$2, getTimezoneOffsetInMillisecondsExports);\nconst getTimezoneOffsetInMilliseconds$1 = /* @__PURE__ */ getDefaultExportFromCjs(getTimezoneOffsetInMillisecondsExports);\nfunction tzTokenizeDate(date, timeZone) {\n var dtf = getDateTimeFormat(timeZone);\n return dtf.formatToParts ? partsOffset(dtf, date) : hackyOffset(dtf, date);\n}\nvar typeToPos = {\n year: 0,\n month: 1,\n day: 2,\n hour: 3,\n minute: 4,\n second: 5\n};\nfunction partsOffset(dtf, date) {\n try {\n var formatted = dtf.formatToParts(date);\n var filled = [];\n for (var i = 0; i < formatted.length; i++) {\n var pos = typeToPos[formatted[i].type];\n if (pos >= 0) {\n filled[pos] = parseInt(formatted[i].value, 10);\n }\n }\n return filled;\n } catch (error) {\n if (error instanceof RangeError) {\n return [NaN];\n }\n throw error;\n }\n}\nfunction hackyOffset(dtf, date) {\n var formatted = dtf.format(date).replace(/\\u200E/g, \"\");\n var parsed = /(\\d+)\\/(\\d+)\\/(\\d+),? (\\d+):(\\d+):(\\d+)/.exec(formatted);\n return [parsed[3], parsed[1], parsed[2], parsed[4], parsed[5], parsed[6]];\n}\nvar dtfCache = {};\nfunction getDateTimeFormat(timeZone) {\n if (!dtfCache[timeZone]) {\n var testDateFormatted = new Intl.DateTimeFormat(\"en-US\", {\n hour12: false,\n timeZone: \"America/New_York\",\n year: \"numeric\",\n month: \"numeric\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\"\n }).format(/* @__PURE__ */ new Date(\"2014-06-25T04:00:00.123Z\"));\n var hourCycleSupported = testDateFormatted === \"06/25/2014, 00:00:00\" || testDateFormatted === \"‎06‎/‎25‎/‎2014‎ ‎00‎:‎00‎:‎00\";\n dtfCache[timeZone] = hourCycleSupported ? new Intl.DateTimeFormat(\"en-US\", {\n hour12: false,\n timeZone,\n year: \"numeric\",\n month: \"numeric\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\"\n }) : new Intl.DateTimeFormat(\"en-US\", {\n hourCycle: \"h23\",\n timeZone,\n year: \"numeric\",\n month: \"numeric\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\"\n });\n }\n return dtfCache[timeZone];\n}\nfunction newDateUTC(fullYear, month, day, hour, minute, second, millisecond) {\n var utcDate = /* @__PURE__ */ new Date(0);\n utcDate.setUTCFullYear(fullYear, month, day);\n utcDate.setUTCHours(hour, minute, second, millisecond);\n return utcDate;\n}\nvar MILLISECONDS_IN_HOUR$1 = 36e5;\nvar MILLISECONDS_IN_MINUTE$1 = 6e4;\nvar patterns$1 = {\n timezone: /([Z+-].*)$/,\n timezoneZ: /^(Z)$/,\n timezoneHH: /^([+-]\\d{2})$/,\n timezoneHHMM: /^([+-]\\d{2}):?(\\d{2})$/\n};\nfunction tzParseTimezone(timezoneString, date, isUtcDate) {\n var token2;\n var absoluteOffset;\n if (!timezoneString) {\n return 0;\n }\n token2 = patterns$1.timezoneZ.exec(timezoneString);\n if (token2) {\n return 0;\n }\n var hours2;\n token2 = patterns$1.timezoneHH.exec(timezoneString);\n if (token2) {\n hours2 = parseInt(token2[1], 10);\n if (!validateTimezone(hours2)) {\n return NaN;\n }\n return -(hours2 * MILLISECONDS_IN_HOUR$1);\n }\n token2 = patterns$1.timezoneHHMM.exec(timezoneString);\n if (token2) {\n hours2 = parseInt(token2[1], 10);\n var minutes = parseInt(token2[2], 10);\n if (!validateTimezone(hours2, minutes)) {\n return NaN;\n }\n absoluteOffset = Math.abs(hours2) * MILLISECONDS_IN_HOUR$1 + minutes * MILLISECONDS_IN_MINUTE$1;\n return hours2 > 0 ? -absoluteOffset : absoluteOffset;\n }\n if (isValidTimezoneIANAString(timezoneString)) {\n date = new Date(date || Date.now());\n var utcDate = isUtcDate ? date : toUtcDate(date);\n var offset = calcOffset(utcDate, timezoneString);\n var fixedOffset = isUtcDate ? offset : fixOffset(date, offset, timezoneString);\n return -fixedOffset;\n }\n return NaN;\n}\nfunction toUtcDate(date) {\n return newDateUTC(\n date.getFullYear(),\n date.getMonth(),\n date.getDate(),\n date.getHours(),\n date.getMinutes(),\n date.getSeconds(),\n date.getMilliseconds()\n );\n}\nfunction calcOffset(date, timezoneString) {\n var tokens = tzTokenizeDate(date, timezoneString);\n var asUTC = newDateUTC(\n tokens[0],\n tokens[1] - 1,\n tokens[2],\n tokens[3] % 24,\n tokens[4],\n tokens[5],\n 0\n ).getTime();\n var asTS = date.getTime();\n var over = asTS % 1e3;\n asTS -= over >= 0 ? over : 1e3 + over;\n return asUTC - asTS;\n}\nfunction fixOffset(date, offset, timezoneString) {\n var localTS = date.getTime();\n var utcGuess = localTS - offset;\n var o2 = calcOffset(new Date(utcGuess), timezoneString);\n if (offset === o2) {\n return offset;\n }\n utcGuess -= o2 - offset;\n var o3 = calcOffset(new Date(utcGuess), timezoneString);\n if (o2 === o3) {\n return o2;\n }\n return Math.max(o2, o3);\n}\nfunction validateTimezone(hours2, minutes) {\n return -23 <= hours2 && hours2 <= 23 && (minutes == null || 0 <= minutes && minutes <= 59);\n}\nvar validIANATimezoneCache = {};\nfunction isValidTimezoneIANAString(timeZoneString) {\n if (validIANATimezoneCache[timeZoneString])\n return true;\n try {\n new Intl.DateTimeFormat(void 0, { timeZone: timeZoneString });\n validIANATimezoneCache[timeZoneString] = true;\n return true;\n } catch (error) {\n return false;\n }\n}\nvar tzPattern = /(Z|[+-]\\d{2}(?::?\\d{2})?| UTC| [a-zA-Z]+\\/[a-zA-Z_]+(?:\\/[a-zA-Z_]+)?)$/;\nconst tzPattern$1 = tzPattern;\nvar MILLISECONDS_IN_HOUR = 36e5;\nvar MILLISECONDS_IN_MINUTE = 6e4;\nvar DEFAULT_ADDITIONAL_DIGITS = 2;\nvar patterns = {\n dateTimePattern: /^([0-9W+-]+)(T| )(.*)/,\n datePattern: /^([0-9W+-]+)(.*)/,\n plainTime: /:/,\n // year tokens\n YY: /^(\\d{2})$/,\n YYY: [\n /^([+-]\\d{2})$/,\n // 0 additional digits\n /^([+-]\\d{3})$/,\n // 1 additional digit\n /^([+-]\\d{4})$/\n // 2 additional digits\n ],\n YYYY: /^(\\d{4})/,\n YYYYY: [\n /^([+-]\\d{4})/,\n // 0 additional digits\n /^([+-]\\d{5})/,\n // 1 additional digit\n /^([+-]\\d{6})/\n // 2 additional digits\n ],\n // date tokens\n MM: /^-(\\d{2})$/,\n DDD: /^-?(\\d{3})$/,\n MMDD: /^-?(\\d{2})-?(\\d{2})$/,\n Www: /^-?W(\\d{2})$/,\n WwwD: /^-?W(\\d{2})-?(\\d{1})$/,\n HH: /^(\\d{2}([.,]\\d*)?)$/,\n HHMM: /^(\\d{2}):?(\\d{2}([.,]\\d*)?)$/,\n HHMMSS: /^(\\d{2}):?(\\d{2}):?(\\d{2}([.,]\\d*)?)$/,\n // time zone tokens (to identify the presence of a tz)\n timeZone: tzPattern$1\n};\nfunction toDate$1(argument, dirtyOptions) {\n if (arguments.length < 1) {\n throw new TypeError(\"1 argument required, but only \" + arguments.length + \" present\");\n }\n if (argument === null) {\n return /* @__PURE__ */ new Date(NaN);\n }\n var options = dirtyOptions || {};\n var additionalDigits = options.additionalDigits == null ? DEFAULT_ADDITIONAL_DIGITS : toInteger$1(options.additionalDigits);\n if (additionalDigits !== 2 && additionalDigits !== 1 && additionalDigits !== 0) {\n throw new RangeError(\"additionalDigits must be 0, 1 or 2\");\n }\n if (argument instanceof Date || typeof argument === \"object\" && Object.prototype.toString.call(argument) === \"[object Date]\") {\n return new Date(argument.getTime());\n } else if (typeof argument === \"number\" || Object.prototype.toString.call(argument) === \"[object Number]\") {\n return new Date(argument);\n } else if (!(typeof argument === \"string\" || Object.prototype.toString.call(argument) === \"[object String]\")) {\n return /* @__PURE__ */ new Date(NaN);\n }\n var dateStrings = splitDateString(argument);\n var parseYearResult = parseYear(dateStrings.date, additionalDigits);\n var year = parseYearResult.year;\n var restDateString = parseYearResult.restDateString;\n var date = parseDate$1(restDateString, year);\n if (isNaN(date)) {\n return /* @__PURE__ */ new Date(NaN);\n }\n if (date) {\n var timestamp = date.getTime();\n var time = 0;\n var offset;\n if (dateStrings.time) {\n time = parseTime(dateStrings.time);\n if (isNaN(time)) {\n return /* @__PURE__ */ new Date(NaN);\n }\n }\n if (dateStrings.timeZone || options.timeZone) {\n offset = tzParseTimezone(dateStrings.timeZone || options.timeZone, new Date(timestamp + time));\n if (isNaN(offset)) {\n return /* @__PURE__ */ new Date(NaN);\n }\n } else {\n offset = getTimezoneOffsetInMilliseconds$1(new Date(timestamp + time));\n offset = getTimezoneOffsetInMilliseconds$1(new Date(timestamp + time + offset));\n }\n return new Date(timestamp + time + offset);\n } else {\n return /* @__PURE__ */ new Date(NaN);\n }\n}\nfunction splitDateString(dateString) {\n var dateStrings = {};\n var parts = patterns.dateTimePattern.exec(dateString);\n var timeString;\n if (!parts) {\n parts = patterns.datePattern.exec(dateString);\n if (parts) {\n dateStrings.date = parts[1];\n timeString = parts[2];\n } else {\n dateStrings.date = null;\n timeString = dateString;\n }\n } else {\n dateStrings.date = parts[1];\n timeString = parts[3];\n }\n if (timeString) {\n var token2 = patterns.timeZone.exec(timeString);\n if (token2) {\n dateStrings.time = timeString.replace(token2[1], \"\");\n dateStrings.timeZone = token2[1].trim();\n } else {\n dateStrings.time = timeString;\n }\n }\n return dateStrings;\n}\nfunction parseYear(dateString, additionalDigits) {\n var patternYYY = patterns.YYY[additionalDigits];\n var patternYYYYY = patterns.YYYYY[additionalDigits];\n var token2;\n token2 = patterns.YYYY.exec(dateString) || patternYYYYY.exec(dateString);\n if (token2) {\n var yearString = token2[1];\n return {\n year: parseInt(yearString, 10),\n restDateString: dateString.slice(yearString.length)\n };\n }\n token2 = patterns.YY.exec(dateString) || patternYYY.exec(dateString);\n if (token2) {\n var centuryString = token2[1];\n return {\n year: parseInt(centuryString, 10) * 100,\n restDateString: dateString.slice(centuryString.length)\n };\n }\n return {\n year: null\n };\n}\nfunction parseDate$1(dateString, year) {\n if (year === null) {\n return null;\n }\n var token2;\n var date;\n var month;\n var week;\n if (dateString.length === 0) {\n date = /* @__PURE__ */ new Date(0);\n date.setUTCFullYear(year);\n return date;\n }\n token2 = patterns.MM.exec(dateString);\n if (token2) {\n date = /* @__PURE__ */ new Date(0);\n month = parseInt(token2[1], 10) - 1;\n if (!validateDate(year, month)) {\n return /* @__PURE__ */ new Date(NaN);\n }\n date.setUTCFullYear(year, month);\n return date;\n }\n token2 = patterns.DDD.exec(dateString);\n if (token2) {\n date = /* @__PURE__ */ new Date(0);\n var dayOfYear = parseInt(token2[1], 10);\n if (!validateDayOfYearDate(year, dayOfYear)) {\n return /* @__PURE__ */ new Date(NaN);\n }\n date.setUTCFullYear(year, 0, dayOfYear);\n return date;\n }\n token2 = patterns.MMDD.exec(dateString);\n if (token2) {\n date = /* @__PURE__ */ new Date(0);\n month = parseInt(token2[1], 10) - 1;\n var day = parseInt(token2[2], 10);\n if (!validateDate(year, month, day)) {\n return /* @__PURE__ */ new Date(NaN);\n }\n date.setUTCFullYear(year, month, day);\n return date;\n }\n token2 = patterns.Www.exec(dateString);\n if (token2) {\n week = parseInt(token2[1], 10) - 1;\n if (!validateWeekDate(year, week)) {\n return /* @__PURE__ */ new Date(NaN);\n }\n return dayOfISOWeekYear(year, week);\n }\n token2 = patterns.WwwD.exec(dateString);\n if (token2) {\n week = parseInt(token2[1], 10) - 1;\n var dayOfWeek = parseInt(token2[2], 10) - 1;\n if (!validateWeekDate(year, week, dayOfWeek)) {\n return /* @__PURE__ */ new Date(NaN);\n }\n return dayOfISOWeekYear(year, week, dayOfWeek);\n }\n return null;\n}\nfunction parseTime(timeString) {\n var token2;\n var hours2;\n var minutes;\n token2 = patterns.HH.exec(timeString);\n if (token2) {\n hours2 = parseFloat(token2[1].replace(\",\", \".\"));\n if (!validateTime(hours2)) {\n return NaN;\n }\n return hours2 % 24 * MILLISECONDS_IN_HOUR;\n }\n token2 = patterns.HHMM.exec(timeString);\n if (token2) {\n hours2 = parseInt(token2[1], 10);\n minutes = parseFloat(token2[2].replace(\",\", \".\"));\n if (!validateTime(hours2, minutes)) {\n return NaN;\n }\n return hours2 % 24 * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE;\n }\n token2 = patterns.HHMMSS.exec(timeString);\n if (token2) {\n hours2 = parseInt(token2[1], 10);\n minutes = parseInt(token2[2], 10);\n var seconds = parseFloat(token2[3].replace(\",\", \".\"));\n if (!validateTime(hours2, minutes, seconds)) {\n return NaN;\n }\n return hours2 % 24 * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE + seconds * 1e3;\n }\n return null;\n}\nfunction dayOfISOWeekYear(isoWeekYear, week, day) {\n week = week || 0;\n day = day || 0;\n var date = /* @__PURE__ */ new Date(0);\n date.setUTCFullYear(isoWeekYear, 0, 4);\n var fourthOfJanuaryDay = date.getUTCDay() || 7;\n var diff = week * 7 + day + 1 - fourthOfJanuaryDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}\nvar DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nvar DAYS_IN_MONTH_LEAP_YEAR = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\n}\nfunction validateDate(year, month, date) {\n if (month < 0 || month > 11) {\n return false;\n }\n if (date != null) {\n if (date < 1) {\n return false;\n }\n var isLeapYear = isLeapYearIndex(year);\n if (isLeapYear && date > DAYS_IN_MONTH_LEAP_YEAR[month]) {\n return false;\n }\n if (!isLeapYear && date > DAYS_IN_MONTH[month]) {\n return false;\n }\n }\n return true;\n}\nfunction validateDayOfYearDate(year, dayOfYear) {\n if (dayOfYear < 1) {\n return false;\n }\n var isLeapYear = isLeapYearIndex(year);\n if (isLeapYear && dayOfYear > 366) {\n return false;\n }\n if (!isLeapYear && dayOfYear > 365) {\n return false;\n }\n return true;\n}\nfunction validateWeekDate(year, week, day) {\n if (week < 0 || week > 52) {\n return false;\n }\n if (day != null && (day < 0 || day > 6)) {\n return false;\n }\n return true;\n}\nfunction validateTime(hours2, minutes, seconds) {\n if (hours2 != null && (hours2 < 0 || hours2 >= 25)) {\n return false;\n }\n if (minutes != null && (minutes < 0 || minutes >= 60)) {\n return false;\n }\n if (seconds != null && (seconds < 0 || seconds >= 60)) {\n return false;\n }\n return true;\n}\nfunction requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + \" argument\" + (required > 1 ? \"s\" : \"\") + \" required, but only \" + args.length + \" present\");\n }\n}\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof2(obj2) {\n return typeof obj2;\n };\n } else {\n _typeof = function _typeof2(obj2) {\n return obj2 && typeof Symbol === \"function\" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? \"symbol\" : typeof obj2;\n };\n }\n return _typeof(obj);\n}\nfunction toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument);\n if (argument instanceof Date || _typeof(argument) === \"object\" && argStr === \"[object Date]\") {\n return new Date(argument.getTime());\n } else if (typeof argument === \"number\" || argStr === \"[object Number]\") {\n return new Date(argument);\n } else {\n if ((typeof argument === \"string\" || argStr === \"[object String]\") && typeof console !== \"undefined\") {\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments\");\n console.warn(new Error().stack);\n }\n return /* @__PURE__ */ new Date(NaN);\n }\n}\nfunction toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n var number = Number(dirtyNumber);\n if (isNaN(number)) {\n return number;\n }\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}\nvar defaultOptions = {};\nfunction getDefaultOptions() {\n return defaultOptions;\n}\nfunction startOfWeek$1(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions2 = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions2.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions2.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError(\"weekStartsOn must be between 0 and 6 inclusively\");\n }\n var date = toDate(dirtyDate);\n var day = date.getDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setDate(date.getDate() - diff);\n date.setHours(0, 0, 0, 0);\n return date;\n}\nfunction getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}\nvar MILLISECONDS_IN_WEEK$2 = 6048e5;\nfunction differenceInCalendarWeeks(dirtyDateLeft, dirtyDateRight, options) {\n requiredArgs(2, arguments);\n var startOfWeekLeft = startOfWeek$1(dirtyDateLeft, options);\n var startOfWeekRight = startOfWeek$1(dirtyDateRight, options);\n var timestampLeft = startOfWeekLeft.getTime() - getTimezoneOffsetInMilliseconds(startOfWeekLeft);\n var timestampRight = startOfWeekRight.getTime() - getTimezoneOffsetInMilliseconds(startOfWeekRight);\n return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_WEEK$2);\n}\nfunction lastDayOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var month = date.getMonth();\n date.setFullYear(date.getFullYear(), month + 1, 0);\n date.setHours(0, 0, 0, 0);\n return date;\n}\nfunction startOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n return date;\n}\nfunction getWeeksInMonth(date, options) {\n requiredArgs(1, arguments);\n return differenceInCalendarWeeks(lastDayOfMonth(date), startOfMonth(date), options) + 1;\n}\nfunction getWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n var defaultOptions2 = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions2.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError(\"firstWeekContainsDate must be between 1 and 7 inclusively\");\n }\n var firstWeekOfNextYear = /* @__PURE__ */ new Date(0);\n firstWeekOfNextYear.setFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setHours(0, 0, 0, 0);\n var startOfNextYear = startOfWeek$1(firstWeekOfNextYear, options);\n var firstWeekOfThisYear = /* @__PURE__ */ new Date(0);\n firstWeekOfThisYear.setFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setHours(0, 0, 0, 0);\n var startOfThisYear = startOfWeek$1(firstWeekOfThisYear, options);\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}\nfunction startOfWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions2 = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions2.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n var year = getWeekYear(dirtyDate, options);\n var firstWeek = /* @__PURE__ */ new Date(0);\n firstWeek.setFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setHours(0, 0, 0, 0);\n var date = startOfWeek$1(firstWeek, options);\n return date;\n}\nvar MILLISECONDS_IN_WEEK$1 = 6048e5;\nfunction getWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfWeek$1(date, options).getTime() - startOfWeekYear(date, options).getTime();\n return Math.round(diff / MILLISECONDS_IN_WEEK$1) + 1;\n}\nfunction startOfISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n return startOfWeek$1(dirtyDate, {\n weekStartsOn: 1\n });\n}\nfunction getISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n var fourthOfJanuaryOfNextYear = /* @__PURE__ */ new Date(0);\n fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0);\n var startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = /* @__PURE__ */ new Date(0);\n fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0);\n var startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear);\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}\nfunction startOfISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getISOWeekYear(dirtyDate);\n var fourthOfJanuary = /* @__PURE__ */ new Date(0);\n fourthOfJanuary.setFullYear(year, 0, 4);\n fourthOfJanuary.setHours(0, 0, 0, 0);\n var date = startOfISOWeek(fourthOfJanuary);\n return date;\n}\nvar MILLISECONDS_IN_WEEK = 6048e5;\nfunction getISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfISOWeek(date).getTime() - startOfISOWeekYear(date).getTime();\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}\nfunction addDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n if (isNaN(amount)) {\n return /* @__PURE__ */ new Date(NaN);\n }\n if (!amount) {\n return date;\n }\n date.setDate(date.getDate() + amount);\n return date;\n}\nfunction addMonths(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n if (isNaN(amount)) {\n return /* @__PURE__ */ new Date(NaN);\n }\n if (!amount) {\n return date;\n }\n var dayOfMonth = date.getDate();\n var endOfDesiredMonth = new Date(date.getTime());\n endOfDesiredMonth.setMonth(date.getMonth() + amount + 1, 0);\n var daysInMonth = endOfDesiredMonth.getDate();\n if (dayOfMonth >= daysInMonth) {\n return endOfDesiredMonth;\n } else {\n date.setFullYear(endOfDesiredMonth.getFullYear(), endOfDesiredMonth.getMonth(), dayOfMonth);\n return date;\n }\n}\nfunction addYears(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMonths(dirtyDate, amount * 12);\n}\nconst viewAddressKeys = {\n daily: [\"year\", \"month\", \"day\"],\n weekly: [\"year\", \"month\", \"week\"],\n monthly: [\"year\", \"month\"]\n};\nfunction getDays({\n monthComps,\n prevMonthComps,\n nextMonthComps\n}, locale) {\n const days = [];\n const {\n firstDayOfWeek,\n firstWeekday,\n isoWeeknumbers,\n weeknumbers,\n numDays,\n numWeeks\n } = monthComps;\n const prevMonthDaysToShow = firstWeekday + (firstWeekday < firstDayOfWeek ? daysInWeek : 0) - firstDayOfWeek;\n let prevMonth = true;\n let thisMonth = false;\n let nextMonth = false;\n let position = 0;\n const formatter = new Intl.DateTimeFormat(locale.id, {\n weekday: \"long\",\n year: \"numeric\",\n month: \"short\",\n day: \"numeric\"\n });\n let day = prevMonthComps.numDays - prevMonthDaysToShow + 1;\n let dayFromEnd = prevMonthComps.numDays - day + 1;\n let weekdayOrdinal = Math.floor((day - 1) / daysInWeek + 1);\n let weekdayOrdinalFromEnd = 1;\n let week = prevMonthComps.numWeeks;\n let weekFromEnd = 1;\n let month = prevMonthComps.month;\n let year = prevMonthComps.year;\n const today = /* @__PURE__ */ new Date();\n const todayDay = today.getDate();\n const todayMonth = today.getMonth() + 1;\n const todayYear = today.getFullYear();\n for (let w = 1; w <= weeksInMonth; w++) {\n for (let i = 1, weekday = firstDayOfWeek; i <= daysInWeek; i++, weekday += weekday === daysInWeek ? 1 - daysInWeek : 1) {\n if (prevMonth && weekday === firstWeekday) {\n day = 1;\n dayFromEnd = monthComps.numDays;\n weekdayOrdinal = Math.floor((day - 1) / daysInWeek + 1);\n weekdayOrdinalFromEnd = Math.floor((numDays - day) / daysInWeek + 1);\n week = 1;\n weekFromEnd = numWeeks;\n month = monthComps.month;\n year = monthComps.year;\n prevMonth = false;\n thisMonth = true;\n }\n const startDate = locale.getDateFromParams(year, month, day, 0, 0, 0, 0);\n const noonDate = locale.getDateFromParams(year, month, day, 12, 0, 0, 0);\n const endDate = locale.getDateFromParams(\n year,\n month,\n day,\n 23,\n 59,\n 59,\n 999\n );\n const date = startDate;\n const id = `${pad(year, 4)}-${pad(month, 2)}-${pad(day, 2)}`;\n const weekdayPosition = i;\n const weekdayPositionFromEnd = daysInWeek - i;\n const weeknumber = weeknumbers[w - 1];\n const isoWeeknumber = isoWeeknumbers[w - 1];\n const isToday = day === todayDay && month === todayMonth && year === todayYear;\n const isFirstDay = thisMonth && day === 1;\n const isLastDay = thisMonth && day === numDays;\n const onTop = w === 1;\n const onBottom = w === numWeeks;\n const onLeft = i === 1;\n const onRight = i === daysInWeek;\n const dayIndex = getDayIndex(year, month, day);\n days.push({\n locale,\n id,\n position: ++position,\n label: day.toString(),\n ariaLabel: formatter.format(new Date(year, month - 1, day)),\n day,\n dayFromEnd,\n weekday,\n weekdayPosition,\n weekdayPositionFromEnd,\n weekdayOrdinal,\n weekdayOrdinalFromEnd,\n week,\n weekFromEnd,\n weekPosition: w,\n weeknumber,\n isoWeeknumber,\n month,\n year,\n date,\n startDate,\n endDate,\n noonDate,\n dayIndex,\n isToday,\n isFirstDay,\n isLastDay,\n isDisabled: !thisMonth,\n isFocusable: !thisMonth,\n isFocused: false,\n inMonth: thisMonth,\n inPrevMonth: prevMonth,\n inNextMonth: nextMonth,\n onTop,\n onBottom,\n onLeft,\n onRight,\n classes: [\n `id-${id}`,\n `day-${day}`,\n `day-from-end-${dayFromEnd}`,\n `weekday-${weekday}`,\n `weekday-position-${weekdayPosition}`,\n `weekday-ordinal-${weekdayOrdinal}`,\n `weekday-ordinal-from-end-${weekdayOrdinalFromEnd}`,\n `week-${week}`,\n `week-from-end-${weekFromEnd}`,\n {\n \"is-today\": isToday,\n \"is-first-day\": isFirstDay,\n \"is-last-day\": isLastDay,\n \"in-month\": thisMonth,\n \"in-prev-month\": prevMonth,\n \"in-next-month\": nextMonth,\n \"on-top\": onTop,\n \"on-bottom\": onBottom,\n \"on-left\": onLeft,\n \"on-right\": onRight\n }\n ]\n });\n if (thisMonth && isLastDay) {\n thisMonth = false;\n nextMonth = true;\n day = 1;\n dayFromEnd = numDays;\n weekdayOrdinal = 1;\n weekdayOrdinalFromEnd = Math.floor((numDays - day) / daysInWeek + 1);\n week = 1;\n weekFromEnd = nextMonthComps.numWeeks;\n month = nextMonthComps.month;\n year = nextMonthComps.year;\n } else {\n day++;\n dayFromEnd--;\n weekdayOrdinal = Math.floor((day - 1) / daysInWeek + 1);\n weekdayOrdinalFromEnd = Math.floor((numDays - day) / daysInWeek + 1);\n }\n }\n week++;\n weekFromEnd--;\n }\n return days;\n}\nfunction getWeeks(days, showWeeknumbers, showIsoWeeknumbers, locale) {\n const result = days.reduce((result2, day, i) => {\n const weekIndex = Math.floor(i / 7);\n let week = result2[weekIndex];\n if (!week) {\n week = {\n id: `week-${weekIndex + 1}`,\n title: \"\",\n week: day.week,\n weekPosition: day.weekPosition,\n weeknumber: day.weeknumber,\n isoWeeknumber: day.isoWeeknumber,\n weeknumberDisplay: showWeeknumbers ? day.weeknumber : showIsoWeeknumbers ? day.isoWeeknumber : void 0,\n days: []\n };\n result2[weekIndex] = week;\n }\n week.days.push(day);\n return result2;\n }, Array(days.length / daysInWeek));\n result.forEach((week) => {\n const fromDay = week.days[0];\n const toDay = week.days[week.days.length - 1];\n if (fromDay.month === toDay.month) {\n week.title = `${locale.formatDate(fromDay.date, \"MMMM YYYY\")}`;\n } else if (fromDay.year === toDay.year) {\n week.title = `${locale.formatDate(\n fromDay.date,\n \"MMM\"\n )} - ${locale.formatDate(toDay.date, \"MMM YYYY\")}`;\n } else {\n week.title = `${locale.formatDate(\n fromDay.date,\n \"MMM YYYY\"\n )} - ${locale.formatDate(toDay.date, \"MMM YYYY\")}`;\n }\n });\n return result;\n}\nfunction getWeekdays(week, locale) {\n return week.days.map((day) => ({\n label: locale.formatDate(day.date, locale.masks.weekdays),\n weekday: day.weekday\n }));\n}\nfunction getPageId(month, year) {\n return `${year}.${pad(month, 2)}`;\n}\nfunction getPageAddressForDate(date, view, locale) {\n return pick(\n locale.getDateParts(locale.toDate(date)),\n viewAddressKeys[view]\n );\n}\nfunction addPages({ day, week, month, year }, count, view, locale) {\n if (view === \"daily\" && day) {\n const date = new Date(year, month - 1, day);\n const newDate = addDays(date, count);\n return {\n day: newDate.getDate(),\n month: newDate.getMonth() + 1,\n year: newDate.getFullYear()\n };\n } else if (view === \"weekly\" && week) {\n const comps = locale.getMonthParts(month, year);\n const date = comps.firstDayOfMonth;\n const newDate = addDays(date, (week - 1 + count) * 7);\n const parts = locale.getDateParts(newDate);\n return {\n week: parts.week,\n month: parts.month,\n year: parts.year\n };\n } else {\n const date = new Date(year, month - 1, 1);\n const newDate = addMonths(date, count);\n return {\n month: newDate.getMonth() + 1,\n year: newDate.getFullYear()\n };\n }\n}\nfunction pageIsValid(page) {\n return page != null && page.month != null && page.year != null;\n}\nfunction pageIsBeforePage(page, comparePage) {\n if (!pageIsValid(page) || !pageIsValid(comparePage))\n return false;\n page = page;\n comparePage = comparePage;\n if (page.year !== comparePage.year)\n return page.year < comparePage.year;\n if (page.month && comparePage.month && page.month !== comparePage.month)\n return page.month < comparePage.month;\n if (page.week && comparePage.week && page.week !== comparePage.week) {\n return page.week < comparePage.week;\n }\n if (page.day && comparePage.day && page.day !== comparePage.day) {\n return page.day < comparePage.day;\n }\n return false;\n}\nfunction pageIsAfterPage(page, comparePage) {\n if (!pageIsValid(page) || !pageIsValid(comparePage))\n return false;\n page = page;\n comparePage = comparePage;\n if (page.year !== comparePage.year) {\n return page.year > comparePage.year;\n }\n if (page.month && comparePage.month && page.month !== comparePage.month) {\n return page.month > comparePage.month;\n }\n if (page.week && comparePage.week && page.week !== comparePage.week) {\n return page.week > comparePage.week;\n }\n if (page.day && comparePage.day && page.day !== comparePage.day) {\n return page.day > comparePage.day;\n }\n return false;\n}\nfunction pageIsBetweenPages(page, fromPage, toPage) {\n return (page || false) && !pageIsBeforePage(page, fromPage) && !pageIsAfterPage(page, toPage);\n}\nfunction pageIsEqualToPage(aPage, bPage) {\n if (!aPage && bPage)\n return false;\n if (aPage && !bPage)\n return false;\n if (!aPage && !bPage)\n return true;\n aPage = aPage;\n bPage = bPage;\n return aPage.year === bPage.year && aPage.month === bPage.month && aPage.week === bPage.week && aPage.day === bPage.day;\n}\nfunction pageRangeToArray(from, to, view, locale) {\n if (!pageIsValid(from) || !pageIsValid(to))\n return [];\n const result = [];\n while (!pageIsAfterPage(from, to)) {\n result.push(from);\n from = addPages(from, 1, view, locale);\n }\n return result;\n}\nfunction getPageKey(config) {\n const { day, week, month, year } = config;\n let id = `${year}-${pad(month, 2)}`;\n if (week)\n id = `${id}-w${week}`;\n if (day)\n id = `${id}-${pad(day, 2)}`;\n return id;\n}\nfunction getCachedPage(config, locale) {\n const { month, year, showWeeknumbers, showIsoWeeknumbers } = config;\n const date = new Date(year, month - 1, 15);\n const monthComps = locale.getMonthParts(month, year);\n const prevMonthComps = locale.getPrevMonthParts(month, year);\n const nextMonthComps = locale.getNextMonthParts(month, year);\n const days = getDays({ monthComps, prevMonthComps, nextMonthComps }, locale);\n const weeks = getWeeks(days, showWeeknumbers, showIsoWeeknumbers, locale);\n const weekdays2 = getWeekdays(weeks[0], locale);\n return {\n id: getPageKey(config),\n month,\n year,\n monthTitle: locale.formatDate(date, locale.masks.title),\n shortMonthLabel: locale.formatDate(date, \"MMM\"),\n monthLabel: locale.formatDate(date, \"MMMM\"),\n shortYearLabel: year.toString().substring(2),\n yearLabel: year.toString(),\n monthComps,\n prevMonthComps,\n nextMonthComps,\n days,\n weeks,\n weekdays: weekdays2\n };\n}\nfunction getPage(config, cachedPage) {\n const { day, week, view, trimWeeks } = config;\n const page = {\n ...cachedPage,\n ...config,\n title: \"\",\n viewDays: [],\n viewWeeks: []\n };\n switch (view) {\n case \"daily\": {\n let dayObj = page.days.find((d) => d.inMonth);\n if (day) {\n dayObj = page.days.find((d) => d.day === day && d.inMonth) || dayObj;\n } else if (week) {\n dayObj = page.days.find((d) => d.week === week && d.inMonth);\n }\n const weekObj = page.weeks[dayObj.week - 1];\n page.viewWeeks = [weekObj];\n page.viewDays = [dayObj];\n page.week = dayObj.week;\n page.weekTitle = weekObj.title;\n page.day = dayObj.day;\n page.dayTitle = dayObj.ariaLabel;\n page.title = page.dayTitle;\n break;\n }\n case \"weekly\": {\n page.week = week || 1;\n const weekObj = page.weeks[page.week - 1];\n page.viewWeeks = [weekObj];\n page.viewDays = weekObj.days;\n page.weekTitle = weekObj.title;\n page.title = page.weekTitle;\n break;\n }\n default: {\n page.title = page.monthTitle;\n page.viewWeeks = page.weeks.slice(\n 0,\n trimWeeks ? page.monthComps.numWeeks : void 0\n );\n page.viewDays = page.days;\n break;\n }\n }\n return page;\n}\nclass Cache {\n constructor(size, createKey, createItem) {\n __publicField(this, \"keys\", []);\n __publicField(this, \"store\", {});\n this.size = size;\n this.createKey = createKey;\n this.createItem = createItem;\n }\n get(...args) {\n const key = this.createKey(...args);\n return this.store[key];\n }\n getOrSet(...args) {\n const key = this.createKey(...args);\n if (this.store[key])\n return this.store[key];\n const item = this.createItem(...args);\n if (this.keys.length >= this.size) {\n const removeKey = this.keys.shift();\n if (removeKey != null) {\n delete this.store[removeKey];\n }\n }\n this.keys.push(key);\n this.store[key] = item;\n return item;\n }\n}\nclass DateRange {\n constructor(config, locale = new Locale()) {\n __publicField(this, \"order\");\n __publicField(this, \"locale\");\n __publicField(this, \"start\", null);\n __publicField(this, \"end\", null);\n __publicField(this, \"repeat\", null);\n var _a;\n this.locale = locale;\n const { start, end, span, order, repeat } = config;\n if (isDate(start)) {\n this.start = locale.getDateParts(start);\n }\n if (isDate(end)) {\n this.end = locale.getDateParts(end);\n } else if (this.start != null && span) {\n this.end = locale.getDateParts(addDays(this.start.date, span - 1));\n }\n this.order = order ?? 0;\n if (repeat) {\n this.repeat = new DateRepeat(\n {\n from: (_a = this.start) == null ? void 0 : _a.date,\n ...repeat\n },\n {\n locale: this.locale\n }\n );\n }\n }\n static fromMany(ranges, locale) {\n return (isArray(ranges) ? ranges : [ranges]).filter((d) => d).map((d) => DateRange.from(d, locale));\n }\n static from(source, locale) {\n if (source instanceof DateRange)\n return source;\n const config = {\n start: null,\n end: null\n };\n if (source != null) {\n if (isArray(source)) {\n config.start = source[0] ?? null;\n config.end = source[1] ?? null;\n } else if (isObject(source)) {\n Object.assign(config, source);\n } else {\n config.start = source;\n config.end = source;\n }\n }\n if (config.start != null)\n config.start = new Date(config.start);\n if (config.end != null)\n config.end = new Date(config.end);\n return new DateRange(config, locale);\n }\n get opts() {\n const { order, locale } = this;\n return { order, locale };\n }\n get hasRepeat() {\n return !!this.repeat;\n }\n get isSingleDay() {\n const { start, end } = this;\n return start && end && start.year === end.year && start.month === end.month && start.day === end.day;\n }\n get isMultiDay() {\n return !this.isSingleDay;\n }\n get daySpan() {\n if (this.start == null || this.end == null) {\n if (this.hasRepeat)\n return 1;\n return Infinity;\n }\n return this.end.dayIndex - this.start.dayIndex;\n }\n startsOnDay(dayParts) {\n var _a, _b;\n return ((_a = this.start) == null ? void 0 : _a.dayIndex) === dayParts.dayIndex || !!((_b = this.repeat) == null ? void 0 : _b.passes(dayParts));\n }\n intersectsDay(dayIndex) {\n return this.intersectsDayRange(dayIndex, dayIndex);\n }\n intersectsRange(range) {\n var _a, _b;\n return this.intersectsDayRange(\n ((_a = range.start) == null ? void 0 : _a.dayIndex) ?? -Infinity,\n ((_b = range.end) == null ? void 0 : _b.dayIndex) ?? Infinity\n );\n }\n intersectsDayRange(startDayIndex, endDayIndex) {\n if (this.start && this.start.dayIndex > endDayIndex)\n return false;\n if (this.end && this.end.dayIndex < startDayIndex)\n return false;\n return true;\n }\n}\nclass DateRangeContext {\n constructor() {\n __publicField(this, \"records\", {});\n }\n render(data2, range, days) {\n var _a, _b, _c, _d;\n let result = null;\n const startDayIndex = days[0].dayIndex;\n const endDayIndex = days[days.length - 1].dayIndex;\n if (range.hasRepeat) {\n days.forEach((day) => {\n var _a2, _b2;\n if (range.startsOnDay(day)) {\n const span = range.daySpan < Infinity ? range.daySpan : 1;\n result = {\n startDay: day.dayIndex,\n startTime: ((_a2 = range.start) == null ? void 0 : _a2.time) ?? 0,\n endDay: day.dayIndex + span - 1,\n endTime: ((_b2 = range.end) == null ? void 0 : _b2.time) ?? MS_PER_DAY\n };\n this.getRangeRecords(data2).push(result);\n }\n });\n } else if (range.intersectsDayRange(startDayIndex, endDayIndex)) {\n result = {\n startDay: ((_a = range.start) == null ? void 0 : _a.dayIndex) ?? -Infinity,\n startTime: ((_b = range.start) == null ? void 0 : _b.time) ?? -Infinity,\n endDay: ((_c = range.end) == null ? void 0 : _c.dayIndex) ?? Infinity,\n endTime: ((_d = range.end) == null ? void 0 : _d.time) ?? Infinity\n };\n this.getRangeRecords(data2).push(result);\n }\n return result;\n }\n getRangeRecords(data2) {\n let record = this.records[data2.key];\n if (!record) {\n record = {\n ranges: [],\n data: data2\n };\n this.records[data2.key] = record;\n }\n return record.ranges;\n }\n getCell(key, day) {\n const cells = this.getCells(day);\n const result = cells.find((cell) => cell.data.key === key);\n return result;\n }\n cellExists(key, dayIndex) {\n const records = this.records[key];\n if (records == null)\n return false;\n return records.ranges.some(\n (r) => r.startDay <= dayIndex && r.endDay >= dayIndex\n );\n }\n getCells(day) {\n const records = Object.values(this.records);\n const result = [];\n const { dayIndex } = day;\n records.forEach(({ data: data2, ranges }) => {\n ranges.filter((r) => r.startDay <= dayIndex && r.endDay >= dayIndex).forEach((range) => {\n const onStart = dayIndex === range.startDay;\n const onEnd = dayIndex === range.endDay;\n const startTime = onStart ? range.startTime : 0;\n const startDate = new Date(day.startDate.getTime() + startTime);\n const endTime = onEnd ? range.endTime : MS_PER_DAY;\n const endDate = new Date(day.endDate.getTime() + endTime);\n const allDay = startTime === 0 && endTime === MS_PER_DAY;\n const order = data2.order || 0;\n result.push({\n ...range,\n data: data2,\n onStart,\n onEnd,\n startTime,\n startDate,\n endTime,\n endDate,\n allDay,\n order\n });\n });\n });\n result.sort((a, b) => a.order - b.order);\n return result;\n }\n}\nconst locales = {\n // Arabic\n ar: { dow: 7, L: \"D/‏M/‏YYYY\" },\n // Bulgarian\n bg: { dow: 2, L: \"D.MM.YYYY\" },\n // Catalan\n ca: { dow: 2, L: \"DD/MM/YYYY\" },\n // Chinese (China)\n \"zh-CN\": { dow: 2, L: \"YYYY/MM/DD\" },\n // Chinese (Taiwan)\n \"zh-TW\": { dow: 1, L: \"YYYY/MM/DD\" },\n // Croatian\n hr: { dow: 2, L: \"DD.MM.YYYY\" },\n // Czech\n cs: { dow: 2, L: \"DD.MM.YYYY\" },\n // Danish\n da: { dow: 2, L: \"DD.MM.YYYY\" },\n // Dutch\n nl: { dow: 2, L: \"DD-MM-YYYY\" },\n // English (US)\n \"en-US\": { dow: 1, L: \"MM/DD/YYYY\" },\n // English (Australia)\n \"en-AU\": { dow: 2, L: \"DD/MM/YYYY\" },\n // English (Canada)\n \"en-CA\": { dow: 1, L: \"YYYY-MM-DD\" },\n // English (Great Britain)\n \"en-GB\": { dow: 2, L: \"DD/MM/YYYY\" },\n // English (Ireland)\n \"en-IE\": { dow: 2, L: \"DD-MM-YYYY\" },\n // English (New Zealand)\n \"en-NZ\": { dow: 2, L: \"DD/MM/YYYY\" },\n // English (South Africa)\n \"en-ZA\": { dow: 1, L: \"YYYY/MM/DD\" },\n // Esperanto\n eo: { dow: 2, L: \"YYYY-MM-DD\" },\n // Estonian\n et: { dow: 2, L: \"DD.MM.YYYY\" },\n // Finnish\n fi: { dow: 2, L: \"DD.MM.YYYY\" },\n // French\n fr: { dow: 2, L: \"DD/MM/YYYY\" },\n // French (Canada)\n \"fr-CA\": { dow: 1, L: \"YYYY-MM-DD\" },\n // French (Switzerland)\n \"fr-CH\": { dow: 2, L: \"DD.MM.YYYY\" },\n // German\n de: { dow: 2, L: \"DD.MM.YYYY\" },\n // Hebrew\n he: { dow: 1, L: \"DD.MM.YYYY\" },\n // Indonesian\n id: { dow: 2, L: \"DD/MM/YYYY\" },\n // Italian\n it: { dow: 2, L: \"DD/MM/YYYY\" },\n // Japanese\n ja: { dow: 1, L: \"YYYY年M月D日\" },\n // Korean\n ko: { dow: 1, L: \"YYYY.MM.DD\" },\n // Latvian\n lv: { dow: 2, L: \"DD.MM.YYYY\" },\n // Lithuanian\n lt: { dow: 2, L: \"DD.MM.YYYY\" },\n // Macedonian\n mk: { dow: 2, L: \"D.MM.YYYY\" },\n // Norwegian\n nb: { dow: 2, L: \"D. MMMM YYYY\" },\n nn: { dow: 2, L: \"D. MMMM YYYY\" },\n // Polish\n pl: { dow: 2, L: \"DD.MM.YYYY\" },\n // Portuguese\n pt: { dow: 2, L: \"DD/MM/YYYY\" },\n // Romanian\n ro: { dow: 2, L: \"DD.MM.YYYY\" },\n // Russian\n ru: { dow: 2, L: \"DD.MM.YYYY\" },\n // Slovak\n sk: { dow: 2, L: \"DD.MM.YYYY\" },\n // Spanish (Spain)\n \"es-ES\": { dow: 2, L: \"DD/MM/YYYY\" },\n // Spanish (Mexico)\n \"es-MX\": { dow: 2, L: \"DD/MM/YYYY\" },\n // Swedish\n sv: { dow: 2, L: \"YYYY-MM-DD\" },\n // Thai\n th: { dow: 1, L: \"DD/MM/YYYY\" },\n // Turkish\n tr: { dow: 2, L: \"DD.MM.YYYY\" },\n // Ukrainian\n uk: { dow: 2, L: \"DD.MM.YYYY\" },\n // Vietnam\n vi: { dow: 2, L: \"DD/MM/YYYY\" }\n};\nlocales.en = locales[\"en-US\"];\nlocales.es = locales[\"es-ES\"];\nlocales.no = locales.nb;\nlocales.zh = locales[\"zh-CN\"];\nconst localeSettings = Object.entries(locales).reduce(\n (res, [id, { dow, L }]) => {\n res[id] = {\n id,\n firstDayOfWeek: dow,\n masks: { L }\n };\n return res;\n },\n {}\n);\nconst title = \"MMMM YYYY\";\nconst weekdays = \"W\";\nconst navMonths = \"MMM\";\nconst hours = \"h A\";\nconst input = [\n \"L\",\n \"YYYY-MM-DD\",\n \"YYYY/MM/DD\"\n];\nconst inputDateTime = [\n \"L h:mm A\",\n \"YYYY-MM-DD h:mm A\",\n \"YYYY/MM/DD h:mm A\"\n];\nconst inputDateTime24hr = [\n \"L HH:mm\",\n \"YYYY-MM-DD HH:mm\",\n \"YYYY/MM/DD HH:mm\"\n];\nconst inputTime = [\n \"h:mm A\"\n];\nconst inputTime24hr = [\n \"HH:mm\"\n];\nconst dayPopover = \"WWW, MMM D, YYYY\";\nconst data = [\n \"L\",\n \"YYYY-MM-DD\",\n \"YYYY/MM/DD\"\n];\nconst model = \"iso\";\nconst iso = \"YYYY-MM-DDTHH:mm:ss.SSSZ\";\nconst masks = {\n title,\n weekdays,\n navMonths,\n hours,\n input,\n inputDateTime,\n inputDateTime24hr,\n inputTime,\n inputTime24hr,\n dayPopover,\n data,\n model,\n iso\n};\nconst maxSwipeTime = 300;\nconst minHorizontalSwipeDistance = 60;\nconst maxVerticalSwipeDistance = 80;\nconst touch = {\n maxSwipeTime,\n minHorizontalSwipeDistance,\n maxVerticalSwipeDistance\n};\nconst defaultConfig = {\n componentPrefix: \"V\",\n color: \"blue\",\n isDark: false,\n navVisibility: \"click\",\n titlePosition: \"center\",\n transition: \"slide-h\",\n touch,\n masks,\n locales: localeSettings,\n datePicker: {\n updateOnInput: true,\n inputDebounce: 1e3,\n popover: {\n visibility: \"hover-focus\",\n placement: \"bottom-start\",\n isInteractive: true\n }\n }\n};\nconst state = reactive(defaultConfig);\nconst defaultLocales = computed(() => {\n return mapValues_1(state.locales, (l) => {\n l.masks = defaultsDeep_1(l.masks, state.masks);\n return l;\n });\n});\nconst getDefault = (path) => {\n if (typeof window !== \"undefined\" && has(window.__vcalendar__, path)) {\n return get_1(window.__vcalendar__, path);\n }\n return get_1(state, path);\n};\nconst setupDefaults = (app, userDefaults) => {\n app.config.globalProperties.$VCalendar = state;\n return Object.assign(state, defaultsDeep_1(userDefaults, state));\n};\nconst DEFAULT_MONTH_CACHE_SIZE = 12;\nconst DEFAULT_PAGE_CACHE_SIZE = 5;\nfunction resolveConfig(config, locales2) {\n const detLocale = new Intl.DateTimeFormat().resolvedOptions().locale;\n let id;\n if (isString_1(config)) {\n id = config;\n } else if (has(config, \"id\")) {\n id = config.id;\n }\n id = (id || detLocale).toLowerCase();\n const localeKeys = Object.keys(locales2);\n const validKey = (k) => localeKeys.find((lk) => lk.toLowerCase() === k);\n id = validKey(id) || validKey(id.substring(0, 2)) || detLocale;\n const defLocale = {\n ...locales2[\"en-IE\"],\n ...locales2[id],\n id,\n monthCacheSize: DEFAULT_MONTH_CACHE_SIZE,\n pageCacheSize: DEFAULT_PAGE_CACHE_SIZE\n };\n const result = isObject(config) ? defaultsDeep_1(config, defLocale) : defLocale;\n return result;\n}\nclass Locale {\n constructor(config = void 0, timezone) {\n __publicField(this, \"id\");\n __publicField(this, \"daysInWeek\");\n __publicField(this, \"firstDayOfWeek\");\n __publicField(this, \"masks\");\n __publicField(this, \"timezone\");\n __publicField(this, \"hourLabels\");\n __publicField(this, \"dayNames\");\n __publicField(this, \"dayNamesShort\");\n __publicField(this, \"dayNamesShorter\");\n __publicField(this, \"dayNamesNarrow\");\n __publicField(this, \"monthNames\");\n __publicField(this, \"monthNamesShort\");\n __publicField(this, \"relativeTimeNames\");\n __publicField(this, \"amPm\", [\"am\", \"pm\"]);\n __publicField(this, \"monthCache\");\n __publicField(this, \"pageCache\");\n const { id, firstDayOfWeek, masks: masks2, monthCacheSize, pageCacheSize } = resolveConfig(config, defaultLocales.value);\n this.monthCache = new Cache(\n monthCacheSize,\n getMonthPartsKey,\n getMonthParts\n );\n this.pageCache = new Cache(pageCacheSize, getPageKey, getCachedPage);\n this.id = id;\n this.daysInWeek = daysInWeek;\n this.firstDayOfWeek = clamp(firstDayOfWeek, 1, daysInWeek);\n this.masks = masks2;\n this.timezone = timezone || void 0;\n this.hourLabels = this.getHourLabels();\n this.dayNames = getDayNames(\"long\", this.id);\n this.dayNamesShort = getDayNames(\"short\", this.id);\n this.dayNamesShorter = this.dayNamesShort.map((s) => s.substring(0, 2));\n this.dayNamesNarrow = getDayNames(\"narrow\", this.id);\n this.monthNames = getMonthNames(\"long\", this.id);\n this.monthNamesShort = getMonthNames(\"short\", this.id);\n this.relativeTimeNames = getRelativeTimeNames(this.id);\n }\n formatDate(date, masks2) {\n return formatDate(date, masks2, this);\n }\n parseDate(dateString, mask) {\n return parseDate(dateString, mask, this);\n }\n toDate(d, opts = {}) {\n const nullDate = /* @__PURE__ */ new Date(NaN);\n let result = nullDate;\n const { fillDate, mask, patch, rules } = opts;\n if (isNumber_1(d)) {\n opts.type = \"number\";\n result = /* @__PURE__ */ new Date(+d);\n } else if (isString_1(d)) {\n opts.type = \"string\";\n result = d ? parseDate(d, mask || \"iso\", this) : nullDate;\n } else if (isDate(d)) {\n opts.type = \"date\";\n result = new Date(d.getTime());\n } else if (isDateParts(d)) {\n opts.type = \"object\";\n result = this.getDateFromParts(d);\n }\n if (result && (patch || rules)) {\n let parts = this.getDateParts(result);\n if (patch && fillDate != null) {\n const fillParts = this.getDateParts(this.toDate(fillDate));\n parts = this.getDateParts(\n this.toDate({ ...fillParts, ...pick(parts, DatePatchKeys[patch]) })\n );\n }\n if (rules) {\n parts = applyRulesForDateParts(parts, rules);\n }\n result = this.getDateFromParts(parts);\n }\n return result || nullDate;\n }\n toDateOrNull(d, opts = {}) {\n const dte = this.toDate(d, opts);\n return isNaN(dte.getTime()) ? null : dte;\n }\n fromDate(date, { type, mask } = {}) {\n switch (type) {\n case \"number\":\n return date ? date.getTime() : NaN;\n case \"string\":\n return date ? this.formatDate(date, mask || \"iso\") : \"\";\n case \"object\":\n return date ? this.getDateParts(date) : null;\n default:\n return date ? new Date(date) : null;\n }\n }\n range(source) {\n return DateRange.from(source, this);\n }\n ranges(ranges) {\n return DateRange.fromMany(ranges, this);\n }\n getDateParts(date) {\n return getDateParts(date, this);\n }\n getDateFromParts(parts) {\n return getDateFromParts(parts, this.timezone);\n }\n getDateFromParams(year, month, day, hours2, minutes, seconds, milliseconds) {\n return this.getDateFromParts({\n year,\n month,\n day,\n hours: hours2,\n minutes,\n seconds,\n milliseconds\n });\n }\n getPage(config) {\n const cachedPage = this.pageCache.getOrSet(config, this);\n return getPage(config, cachedPage);\n }\n getMonthParts(month, year) {\n const { firstDayOfWeek } = this;\n return this.monthCache.getOrSet(month, year, firstDayOfWeek);\n }\n getThisMonthParts() {\n const date = /* @__PURE__ */ new Date();\n return this.getMonthParts(\n date.getMonth() + 1,\n date.getFullYear()\n );\n }\n getPrevMonthParts(month, year) {\n if (month === 1)\n return this.getMonthParts(12, year - 1);\n return this.getMonthParts(month - 1, year);\n }\n getNextMonthParts(month, year) {\n if (month === 12)\n return this.getMonthParts(1, year + 1);\n return this.getMonthParts(month + 1, year);\n }\n getHourLabels() {\n return getHourDates().map((d) => {\n return this.formatDate(d, this.masks.hours);\n });\n }\n getDayId(date) {\n return this.formatDate(date, \"YYYY-MM-DD\");\n }\n}\nvar GroupRuleType = /* @__PURE__ */ ((GroupRuleType2) => {\n GroupRuleType2[\"Any\"] = \"any\";\n GroupRuleType2[\"All\"] = \"all\";\n return GroupRuleType2;\n})(GroupRuleType || {});\nvar IntervalRuleType = /* @__PURE__ */ ((IntervalRuleType2) => {\n IntervalRuleType2[\"Days\"] = \"days\";\n IntervalRuleType2[\"Weeks\"] = \"weeks\";\n IntervalRuleType2[\"Months\"] = \"months\";\n IntervalRuleType2[\"Years\"] = \"years\";\n return IntervalRuleType2;\n})(IntervalRuleType || {});\nvar ComponentRuleType = /* @__PURE__ */ ((ComponentRuleType2) => {\n ComponentRuleType2[\"Days\"] = \"days\";\n ComponentRuleType2[\"Weekdays\"] = \"weekdays\";\n ComponentRuleType2[\"Weeks\"] = \"weeks\";\n ComponentRuleType2[\"Months\"] = \"months\";\n ComponentRuleType2[\"Years\"] = \"years\";\n return ComponentRuleType2;\n})(ComponentRuleType || {});\nvar OrdinalComponentRuleType = /* @__PURE__ */ ((OrdinalComponentRuleType2) => {\n OrdinalComponentRuleType2[\"OrdinalWeekdays\"] = \"ordinalWeekdays\";\n return OrdinalComponentRuleType2;\n})(OrdinalComponentRuleType || {});\nclass IntervalRule {\n constructor(type, interval, from) {\n __publicField(this, \"validated\", true);\n this.type = type;\n this.interval = interval;\n this.from = from;\n if (!this.from) {\n console.error(\n `A valid \"from\" date is required for date interval rule. This rule will be skipped.`\n );\n this.validated = false;\n }\n }\n passes(dateParts) {\n if (!this.validated)\n return true;\n const { date } = dateParts;\n switch (this.type) {\n case \"days\": {\n return diffInDays(this.from.date, date) % this.interval === 0;\n }\n case \"weeks\": {\n return diffInWeeks(this.from.date, date) % this.interval === 0;\n }\n case \"months\": {\n return diffInMonths(this.from.date, date) % this.interval === 0;\n }\n case \"years\": {\n return diffInYears(this.from.date, date) % this.interval === 0;\n }\n default: {\n return false;\n }\n }\n }\n}\nclass ComponentRule {\n constructor(type, components2, validator, getter) {\n __publicField(this, \"components\", []);\n this.type = type;\n this.validator = validator;\n this.getter = getter;\n this.components = this.normalizeComponents(components2);\n }\n static create(type, config) {\n switch (type) {\n case \"days\":\n return new DaysRule(config);\n case \"weekdays\":\n return new WeekdaysRule(config);\n case \"weeks\":\n return new WeeksRule(config);\n case \"months\":\n return new MonthsRule(config);\n case \"years\":\n return new YearsRule(config);\n }\n }\n normalizeComponents(components2) {\n if (this.validator(components2))\n return [components2];\n if (!isArray(components2))\n return [];\n const result = [];\n components2.forEach((component) => {\n if (!this.validator(component)) {\n console.error(\n `Component value ${component} in invalid for \"${this.type}\" rule. This rule will be skipped.`\n );\n return;\n }\n result.push(component);\n });\n return result;\n }\n passes(dayParts) {\n const comps = this.getter(dayParts);\n const result = comps.some((comp) => this.components.includes(comp));\n return result;\n }\n}\nclass DaysRule extends ComponentRule {\n constructor(components2) {\n super(\n \"days\",\n components2,\n isDayInMonth,\n ({ day, dayFromEnd }) => [day, -dayFromEnd]\n );\n }\n}\nclass WeekdaysRule extends ComponentRule {\n constructor(components2) {\n super(\n \"weekdays\",\n components2,\n isDayOfWeek,\n ({ weekday }) => [weekday]\n );\n }\n}\nclass WeeksRule extends ComponentRule {\n constructor(components2) {\n super(\n \"weeks\",\n components2,\n isWeekInMonth,\n ({ week, weekFromEnd }) => [week, -weekFromEnd]\n );\n }\n}\nclass MonthsRule extends ComponentRule {\n constructor(components2) {\n super(\"months\", components2, isMonthInYear, ({ month }) => [\n month\n ]);\n }\n}\nclass YearsRule extends ComponentRule {\n constructor(components2) {\n super(\"years\", components2, isNumber_1, ({ year }) => [year]);\n }\n}\nclass OrdinalComponentRule {\n constructor(type, components2) {\n __publicField(this, \"components\");\n this.type = type;\n this.components = this.normalizeComponents(components2);\n }\n normalizeArrayConfig(config) {\n const result = [];\n config.forEach((numOrArray, i) => {\n if (isNumber_1(numOrArray)) {\n if (i === 0)\n return;\n if (!isOrdinalWeekInMonth(config[0])) {\n console.error(\n `Ordinal range for \"${this.type}\" rule is from -5 to -1 or 1 to 5. This rule will be skipped.`\n );\n return;\n }\n if (!isDayOfWeek(numOrArray)) {\n console.error(\n `Acceptable range for \"${this.type}\" rule is from 1 to 5. This rule will be skipped`\n );\n return;\n }\n result.push([config[0], numOrArray]);\n } else if (isArray(numOrArray)) {\n result.push(...this.normalizeArrayConfig(numOrArray));\n }\n });\n return result;\n }\n normalizeComponents(config) {\n const result = [];\n config.forEach((numOrArray, i) => {\n if (isNumber_1(numOrArray)) {\n if (i === 0)\n return;\n if (!isOrdinalWeekInMonth(config[0])) {\n console.error(\n `Ordinal range for \"${this.type}\" rule is from -5 to -1 or 1 to 5. This rule will be skipped.`\n );\n return;\n }\n if (!isDayOfWeek(numOrArray)) {\n console.error(\n `Acceptable range for \"${this.type}\" rule is from 1 to 5. This rule will be skipped`\n );\n return;\n }\n result.push([config[0], numOrArray]);\n } else if (isArray(numOrArray)) {\n result.push(...this.normalizeArrayConfig(numOrArray));\n }\n });\n return result;\n }\n passes(dayParts) {\n const { weekday, weekdayOrdinal, weekdayOrdinalFromEnd } = dayParts;\n return this.components.some(\n ([ordinalWeek, ordinalWeekday]) => (ordinalWeek === weekdayOrdinal || ordinalWeek === -weekdayOrdinalFromEnd) && weekday === ordinalWeekday\n );\n }\n}\nclass FunctionRule {\n constructor(fn) {\n __publicField(this, \"type\", \"function\");\n __publicField(this, \"validated\", true);\n this.fn = fn;\n if (!isFunction_1(fn)) {\n console.error(\n `The function rule requires a valid function. This rule will be skipped.`\n );\n this.validated = false;\n }\n }\n passes(dayParts) {\n if (!this.validated)\n return true;\n return this.fn(dayParts);\n }\n}\nclass DateRepeat {\n constructor(config, options = {}, parent) {\n __publicField(this, \"validated\", true);\n __publicField(this, \"config\");\n __publicField(this, \"type\", GroupRuleType.Any);\n __publicField(this, \"from\");\n __publicField(this, \"until\");\n __publicField(this, \"rules\", []);\n __publicField(this, \"locale\", new Locale());\n this.parent = parent;\n if (options.locale)\n this.locale = options.locale;\n this.config = config;\n if (isFunction_1(config)) {\n this.type = GroupRuleType.All;\n this.rules = [new FunctionRule(config)];\n } else if (isArray(config)) {\n this.type = GroupRuleType.Any;\n this.rules = config.map((c) => new DateRepeat(c, options, this));\n } else if (isObject(config)) {\n this.type = GroupRuleType.All;\n this.from = config.from ? this.locale.getDateParts(config.from) : parent == null ? void 0 : parent.from;\n this.until = config.until ? this.locale.getDateParts(config.until) : parent == null ? void 0 : parent.until;\n this.rules = this.getObjectRules(config);\n } else {\n console.error(\"Rule group configuration must be an object or an array.\");\n this.validated = false;\n }\n }\n getObjectRules(config) {\n const rules = [];\n if (config.every) {\n if (isString_1(config.every)) {\n config.every = [1, `${config.every}s`];\n }\n if (isArray(config.every)) {\n const [interval = 1, type = IntervalRuleType.Days] = config.every;\n rules.push(new IntervalRule(type, interval, this.from));\n }\n }\n Object.values(ComponentRuleType).forEach((type) => {\n if (!(type in config))\n return;\n rules.push(ComponentRule.create(type, config[type]));\n });\n Object.values(OrdinalComponentRuleType).forEach((type) => {\n if (!(type in config))\n return;\n rules.push(new OrdinalComponentRule(type, config[type]));\n });\n if (config.on != null) {\n if (!isArray(config.on))\n config.on = [config.on];\n rules.push(\n new DateRepeat(config.on, { locale: this.locale }, this.parent)\n );\n }\n return rules;\n }\n passes(dayParts) {\n if (!this.validated)\n return true;\n if (this.from && dayParts.dayIndex <= this.from.dayIndex)\n return false;\n if (this.until && dayParts.dayIndex >= this.until.dayIndex)\n return false;\n if (this.type === GroupRuleType.Any) {\n return this.rules.some((r) => r.passes(dayParts));\n }\n return this.rules.every((r) => r.passes(dayParts));\n }\n}\nfunction isDayInMonth(dayInMonth) {\n if (!isNumber_1(dayInMonth))\n return false;\n return dayInMonth >= 1 && dayInMonth <= 31;\n}\nfunction isDayOfWeek(dayOfWeek) {\n if (!isNumber_1(dayOfWeek))\n return false;\n return dayOfWeek >= 1 && dayOfWeek <= 7;\n}\nfunction isWeekInMonth(weekInMonth) {\n if (!isNumber_1(weekInMonth))\n return false;\n return weekInMonth >= -6 && weekInMonth <= -1 || weekInMonth >= 1 && weekInMonth <= 6;\n}\nfunction isMonthInYear(monthInYear) {\n if (!isNumber_1(monthInYear))\n return false;\n return monthInYear >= 1 && monthInYear <= 12;\n}\nfunction isOrdinalWeekInMonth(weekInMonth) {\n if (!isNumber_1(weekInMonth))\n return false;\n if (weekInMonth < -5 || weekInMonth > 5 || weekInMonth === 0)\n return false;\n return true;\n}\nconst DatePatchKeys = {\n dateTime: [\n \"year\",\n \"month\",\n \"day\",\n \"hours\",\n \"minutes\",\n \"seconds\",\n \"milliseconds\"\n ],\n date: [\"year\", \"month\", \"day\"],\n time: [\"hours\", \"minutes\", \"seconds\", \"milliseconds\"]\n};\nconst daysInWeek = 7;\nconst weeksInMonth = 6;\nconst MS_PER_SECOND = 1e3;\nconst MS_PER_MINUTE = MS_PER_SECOND * 60;\nconst MS_PER_HOUR = MS_PER_MINUTE * 60;\nconst MS_PER_DAY = MS_PER_HOUR * 24;\nconst daysInMonths = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nconst maskMacros = [\"L\", \"iso\"];\nconst DATE_PART_RANGES = {\n milliseconds: [0, 999, 3],\n seconds: [0, 59, 2],\n minutes: [0, 59, 2],\n hours: [0, 23, 2]\n};\nconst token = /d{1,2}|W{1,4}|M{1,4}|YY(?:YY)?|S{1,3}|Do|Z{1,4}|([HhMsDm])\\1?|[aA]|\"[^\"]*\"|'[^']*'/g;\nconst literal = /\\[([^]*?)\\]/gm;\nconst formatFlags = {\n D(d) {\n return d.day;\n },\n DD(d) {\n return pad(d.day, 2);\n },\n // Do(d: DateParts, l: Locale) {\n // return l.DoFn(d.day);\n // },\n d(d) {\n return d.weekday - 1;\n },\n dd(d) {\n return pad(d.weekday - 1, 2);\n },\n W(d, l) {\n return l.dayNamesNarrow[d.weekday - 1];\n },\n WW(d, l) {\n return l.dayNamesShorter[d.weekday - 1];\n },\n WWW(d, l) {\n return l.dayNamesShort[d.weekday - 1];\n },\n WWWW(d, l) {\n return l.dayNames[d.weekday - 1];\n },\n M(d) {\n return d.month;\n },\n MM(d) {\n return pad(d.month, 2);\n },\n MMM(d, l) {\n return l.monthNamesShort[d.month - 1];\n },\n MMMM(d, l) {\n return l.monthNames[d.month - 1];\n },\n YY(d) {\n return String(d.year).substr(2);\n },\n YYYY(d) {\n return pad(d.year, 4);\n },\n h(d) {\n return d.hours % 12 || 12;\n },\n hh(d) {\n return pad(d.hours % 12 || 12, 2);\n },\n H(d) {\n return d.hours;\n },\n HH(d) {\n return pad(d.hours, 2);\n },\n m(d) {\n return d.minutes;\n },\n mm(d) {\n return pad(d.minutes, 2);\n },\n s(d) {\n return d.seconds;\n },\n ss(d) {\n return pad(d.seconds, 2);\n },\n S(d) {\n return Math.round(d.milliseconds / 100);\n },\n SS(d) {\n return pad(Math.round(d.milliseconds / 10), 2);\n },\n SSS(d) {\n return pad(d.milliseconds, 3);\n },\n a(d, l) {\n return d.hours < 12 ? l.amPm[0] : l.amPm[1];\n },\n A(d, l) {\n return d.hours < 12 ? l.amPm[0].toUpperCase() : l.amPm[1].toUpperCase();\n },\n Z() {\n return \"Z\";\n },\n ZZ(d) {\n const o = d.timezoneOffset;\n return `${o > 0 ? \"-\" : \"+\"}${pad(Math.floor(Math.abs(o) / 60), 2)}`;\n },\n ZZZ(d) {\n const o = d.timezoneOffset;\n return `${o > 0 ? \"-\" : \"+\"}${pad(\n Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60,\n 4\n )}`;\n },\n ZZZZ(d) {\n const o = d.timezoneOffset;\n return `${o > 0 ? \"-\" : \"+\"}${pad(Math.floor(Math.abs(o) / 60), 2)}:${pad(\n Math.abs(o) % 60,\n 2\n )}`;\n }\n};\nconst twoDigits = /\\d\\d?/;\nconst threeDigits = /\\d{3}/;\nconst fourDigits = /\\d{4}/;\nconst word = /[0-9]*['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]+|[\\u0600-\\u06FF/]+(\\s*?[\\u0600-\\u06FF]+){1,2}/i;\nconst noop = () => {\n};\nconst monthUpdate = (arrName) => (d, v, l) => {\n const index2 = l[arrName].indexOf(\n v.charAt(0).toUpperCase() + v.substr(1).toLowerCase()\n );\n if (~index2) {\n d.month = index2;\n }\n};\nconst parseFlags = {\n D: [\n twoDigits,\n (d, v) => {\n d.day = v;\n }\n ],\n Do: [\n new RegExp(twoDigits.source + word.source),\n (d, v) => {\n d.day = parseInt(v, 10);\n }\n ],\n d: [twoDigits, noop],\n W: [word, noop],\n M: [\n twoDigits,\n (d, v) => {\n d.month = v - 1;\n }\n ],\n MMM: [word, monthUpdate(\"monthNamesShort\")],\n MMMM: [word, monthUpdate(\"monthNames\")],\n YY: [\n twoDigits,\n (d, v) => {\n const da = /* @__PURE__ */ new Date();\n const cent = +da.getFullYear().toString().substr(0, 2);\n d.year = +`${v > 68 ? cent - 1 : cent}${v}`;\n }\n ],\n YYYY: [\n fourDigits,\n (d, v) => {\n d.year = v;\n }\n ],\n S: [\n /\\d/,\n (d, v) => {\n d.milliseconds = v * 100;\n }\n ],\n SS: [\n /\\d{2}/,\n (d, v) => {\n d.milliseconds = v * 10;\n }\n ],\n SSS: [\n threeDigits,\n (d, v) => {\n d.milliseconds = v;\n }\n ],\n h: [\n twoDigits,\n (d, v) => {\n d.hours = v;\n }\n ],\n m: [\n twoDigits,\n (d, v) => {\n d.minutes = v;\n }\n ],\n s: [\n twoDigits,\n (d, v) => {\n d.seconds = v;\n }\n ],\n a: [\n word,\n (d, v, l) => {\n const val = v.toLowerCase();\n if (val === l.amPm[0]) {\n d.isPm = false;\n } else if (val === l.amPm[1]) {\n d.isPm = true;\n }\n }\n ],\n Z: [\n /[^\\s]*?[+-]\\d\\d:?\\d\\d|[^\\s]*?Z?/,\n (d, v) => {\n if (v === \"Z\")\n v = \"+00:00\";\n const parts = `${v}`.match(/([+-]|\\d\\d)/gi);\n if (parts) {\n const minutes = +parts[1] * 60 + parseInt(parts[2], 10);\n d.timezoneOffset = parts[0] === \"+\" ? minutes : -minutes;\n }\n }\n ]\n};\nparseFlags.DD = parseFlags.D;\nparseFlags.dd = parseFlags.d;\nparseFlags.WWWW = parseFlags.WWW = parseFlags.WW = parseFlags.W;\nparseFlags.MM = parseFlags.M;\nparseFlags.mm = parseFlags.m;\nparseFlags.hh = parseFlags.H = parseFlags.HH = parseFlags.h;\nparseFlags.ss = parseFlags.s;\nparseFlags.A = parseFlags.a;\nparseFlags.ZZZZ = parseFlags.ZZZ = parseFlags.ZZ = parseFlags.Z;\nfunction normalizeMasks(masks2, locale) {\n return (arrayHasItems(masks2) && masks2 || [\n isString_1(masks2) && masks2 || \"YYYY-MM-DD\"\n ]).map(\n (m) => maskMacros.reduce(\n (prev, curr) => prev.replace(curr, locale.masks[curr] || \"\"),\n m\n )\n );\n}\nfunction isDateParts(parts) {\n return isObject(parts) && \"year\" in parts && \"month\" in parts && \"day\" in parts;\n}\nfunction startOfWeek(date, firstDayOfWeek = 1) {\n const day = date.getDay() + 1;\n const daysToAdd = day >= firstDayOfWeek ? firstDayOfWeek - day : -(7 - (firstDayOfWeek - day));\n return addDays(date, daysToAdd);\n}\nfunction getDayIndex(year, month, day) {\n const utcDate = Date.UTC(year, month - 1, day);\n return diffInDays(/* @__PURE__ */ new Date(0), new Date(utcDate));\n}\nfunction diffInDays(d1, d2) {\n return Math.round((d2.getTime() - d1.getTime()) / MS_PER_DAY);\n}\nfunction diffInWeeks(d1, d2) {\n return Math.ceil(diffInDays(startOfWeek(d1), startOfWeek(d2)) / 7);\n}\nfunction diffInYears(d1, d2) {\n return d2.getUTCFullYear() - d1.getUTCFullYear();\n}\nfunction diffInMonths(d1, d2) {\n return diffInYears(d1, d2) * 12 + (d2.getMonth() - d1.getMonth());\n}\nfunction getDateFromParts(parts, timezone = \"\") {\n const d = /* @__PURE__ */ new Date();\n const {\n year = d.getFullYear(),\n month = d.getMonth() + 1,\n day = d.getDate(),\n hours: hrs = 0,\n minutes: min = 0,\n seconds: sec = 0,\n milliseconds: ms = 0\n } = parts;\n if (timezone) {\n const dateString = `${pad(year, 4)}-${pad(month, 2)}-${pad(day, 2)}T${pad(\n hrs,\n 2\n )}:${pad(min, 2)}:${pad(sec, 2)}.${pad(ms, 3)}`;\n return toDate$1(dateString, { timeZone: timezone });\n }\n return new Date(year, month - 1, day, hrs, min, sec, ms);\n}\nfunction getDateParts(date, locale) {\n let tzDate = new Date(date.getTime());\n if (locale.timezone) {\n tzDate = new Date(\n date.toLocaleString(\"en-US\", { timeZone: locale.timezone })\n );\n tzDate.setMilliseconds(date.getMilliseconds());\n }\n const milliseconds = tzDate.getMilliseconds();\n const seconds = tzDate.getSeconds();\n const minutes = tzDate.getMinutes();\n const hours2 = tzDate.getHours();\n const time = milliseconds + seconds * MS_PER_SECOND + minutes * MS_PER_MINUTE + hours2 * MS_PER_HOUR;\n const month = tzDate.getMonth() + 1;\n const year = tzDate.getFullYear();\n const monthParts = locale.getMonthParts(month, year);\n const day = tzDate.getDate();\n const dayFromEnd = monthParts.numDays - day + 1;\n const weekday = tzDate.getDay() + 1;\n const weekdayOrdinal = Math.floor((day - 1) / 7 + 1);\n const weekdayOrdinalFromEnd = Math.floor((monthParts.numDays - day) / 7 + 1);\n const week = Math.ceil(\n (day + Math.abs(monthParts.firstWeekday - monthParts.firstDayOfWeek)) / 7\n );\n const weekFromEnd = monthParts.numWeeks - week + 1;\n const weeknumber = monthParts.weeknumbers[week];\n const dayIndex = getDayIndex(year, month, day);\n const parts = {\n milliseconds,\n seconds,\n minutes,\n hours: hours2,\n time,\n day,\n dayFromEnd,\n weekday,\n weekdayOrdinal,\n weekdayOrdinalFromEnd,\n week,\n weekFromEnd,\n weeknumber,\n month,\n year,\n date: tzDate,\n dateTime: tzDate.getTime(),\n dayIndex,\n timezoneOffset: 0,\n isValid: true\n };\n return parts;\n}\nfunction getMonthPartsKey(month, year, firstDayOfWeek) {\n return `${year}-${month}-${firstDayOfWeek}`;\n}\nfunction getMonthParts(month, year, firstDayOfWeek) {\n const inLeapYear = year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;\n const firstDayOfMonth = new Date(year, month - 1, 1);\n const firstWeekday = firstDayOfMonth.getDay() + 1;\n const numDays = month === 2 && inLeapYear ? 29 : daysInMonths[month - 1];\n const weekStartsOn = firstDayOfWeek - 1;\n const numWeeks = getWeeksInMonth(firstDayOfMonth, {\n weekStartsOn\n });\n const weeknumbers = [];\n const isoWeeknumbers = [];\n for (let i = 0; i < numWeeks; i++) {\n const date = addDays(firstDayOfMonth, i * 7);\n weeknumbers.push(getWeek(date, { weekStartsOn }));\n isoWeeknumbers.push(getISOWeek(date));\n }\n return {\n firstDayOfWeek,\n firstDayOfMonth,\n inLeapYear,\n firstWeekday,\n numDays,\n numWeeks,\n month,\n year,\n weeknumbers,\n isoWeeknumbers\n };\n}\nfunction getWeekdayDates() {\n const dates = [];\n const year = 2020;\n const month = 1;\n const day = 5;\n for (let i = 0; i < daysInWeek; i++) {\n dates.push(\n getDateFromParts({\n year,\n month,\n day: day + i,\n hours: 12\n })\n );\n }\n return dates;\n}\nfunction getDayNames(length, localeId = void 0) {\n const dtf = new Intl.DateTimeFormat(localeId, {\n weekday: length\n });\n return getWeekdayDates().map((d) => dtf.format(d));\n}\nfunction getHourDates() {\n const dates = [];\n for (let i = 0; i <= 24; i++) {\n dates.push(new Date(2e3, 0, 1, i));\n }\n return dates;\n}\nfunction getRelativeTimeNames(localeId = void 0) {\n const units = [\n \"second\",\n \"minute\",\n \"hour\",\n \"day\",\n \"week\",\n \"month\",\n \"quarter\",\n \"year\"\n ];\n const rtf = new Intl.RelativeTimeFormat(localeId);\n return units.reduce((names, unit) => {\n const parts = rtf.formatToParts(100, unit);\n names[unit] = parts[1].unit;\n return names;\n }, {});\n}\nfunction getMonthDates() {\n const dates = [];\n for (let i = 0; i < 12; i++) {\n dates.push(new Date(2e3, i, 15));\n }\n return dates;\n}\nfunction getMonthNames(length, localeId = void 0) {\n const dtf = new Intl.DateTimeFormat(localeId, {\n month: length,\n timeZone: \"UTC\"\n });\n return getMonthDates().map((d) => dtf.format(d));\n}\nfunction datePartIsValid(part, rule, parts) {\n if (isNumber_1(rule))\n return rule === part;\n if (isArray(rule))\n return rule.includes(part);\n if (isFunction_1(rule))\n return rule(part, parts);\n if (rule.min != null && rule.min > part)\n return false;\n if (rule.max != null && rule.max < part)\n return false;\n if (rule.interval != null && part % rule.interval !== 0)\n return false;\n return true;\n}\nfunction getDatePartOptions(parts, range, rule) {\n const options = [];\n const [min, max, padding] = range;\n for (let i = min; i <= max; i++) {\n if (rule == null || datePartIsValid(i, rule, parts)) {\n options.push({\n value: i,\n label: pad(i, padding)\n });\n }\n }\n return options;\n}\nfunction getDatePartsOptions(parts, rules) {\n return {\n milliseconds: getDatePartOptions(\n parts,\n DATE_PART_RANGES.milliseconds,\n rules.milliseconds\n ),\n seconds: getDatePartOptions(parts, DATE_PART_RANGES.seconds, rules.seconds),\n minutes: getDatePartOptions(parts, DATE_PART_RANGES.minutes, rules.minutes),\n hours: getDatePartOptions(parts, DATE_PART_RANGES.hours, rules.hours)\n };\n}\nfunction getNearestDatePart(parts, range, value, rule) {\n const options = getDatePartOptions(parts, range, rule);\n const result = options.reduce((prev, opt) => {\n if (opt.disabled)\n return prev;\n if (isNaN(prev))\n return opt.value;\n const diffPrev = Math.abs(prev - value);\n const diffCurr = Math.abs(opt.value - value);\n return diffCurr < diffPrev ? opt.value : prev;\n }, NaN);\n return isNaN(result) ? value : result;\n}\nfunction applyRulesForDateParts(dateParts, rules) {\n const result = { ...dateParts };\n Object.entries(rules).forEach(([key, rule]) => {\n const range = DATE_PART_RANGES[key];\n const value = dateParts[key];\n result[key] = getNearestDatePart(\n dateParts,\n range,\n value,\n rule\n );\n });\n return result;\n}\nfunction parseDate(dateString, mask, locale) {\n const masks2 = normalizeMasks(mask, locale);\n return masks2.map((m) => {\n if (typeof m !== \"string\") {\n throw new Error(\"Invalid mask\");\n }\n let str = dateString;\n if (str.length > 1e3) {\n return false;\n }\n let isValid = true;\n const dp = {};\n m.replace(token, ($0) => {\n if (parseFlags[$0]) {\n const info = parseFlags[$0];\n const index2 = str.search(info[0]);\n if (!~index2) {\n isValid = false;\n } else {\n str.replace(info[0], (result) => {\n info[1](dp, result, locale);\n str = str.substr(index2 + result.length);\n return result;\n });\n }\n }\n return parseFlags[$0] ? \"\" : $0.slice(1, $0.length - 1);\n });\n if (!isValid) {\n return false;\n }\n const today = /* @__PURE__ */ new Date();\n if (dp.hours != null) {\n if (dp.isPm === true && +dp.hours !== 12) {\n dp.hours = +dp.hours + 12;\n } else if (dp.isPm === false && +dp.hours === 12) {\n dp.hours = 0;\n }\n }\n let date;\n if (dp.timezoneOffset != null) {\n dp.minutes = +(dp.minutes || 0) - +dp.timezoneOffset;\n date = new Date(\n Date.UTC(\n dp.year || today.getFullYear(),\n dp.month || 0,\n dp.day || 1,\n dp.hours || 0,\n dp.minutes || 0,\n dp.seconds || 0,\n dp.milliseconds || 0\n )\n );\n } else {\n date = locale.getDateFromParts({\n year: dp.year || today.getFullYear(),\n month: (dp.month || 0) + 1,\n day: dp.day || 1,\n hours: dp.hours || 0,\n minutes: dp.minutes || 0,\n seconds: dp.seconds || 0,\n milliseconds: dp.milliseconds || 0\n });\n }\n return date;\n }).find((d) => d) || new Date(dateString);\n}\nfunction formatDate(date, masks2, locale) {\n if (date == null)\n return \"\";\n let mask = normalizeMasks(masks2, locale)[0];\n if (/Z$/.test(mask))\n locale.timezone = \"utc\";\n const literals = [];\n mask = mask.replace(literal, ($0, $1) => {\n literals.push($1);\n return \"??\";\n });\n const dateParts = locale.getDateParts(date);\n mask = mask.replace(\n token,\n ($0) => $0 in formatFlags ? formatFlags[$0](dateParts, locale) : $0.slice(1, $0.length - 1)\n );\n return mask.replace(/\\?\\?/g, () => literals.shift());\n}\nlet attrKey = 0;\nclass Attribute {\n constructor(config, theme, locale) {\n __publicField(this, \"key\", \"\");\n __publicField(this, \"hashcode\", \"\");\n __publicField(this, \"highlight\", null);\n __publicField(this, \"content\", null);\n __publicField(this, \"dot\", null);\n __publicField(this, \"bar\", null);\n __publicField(this, \"event\", null);\n __publicField(this, \"popover\", null);\n __publicField(this, \"customData\", null);\n __publicField(this, \"ranges\");\n __publicField(this, \"hasRanges\", false);\n __publicField(this, \"order\", 0);\n __publicField(this, \"pinPage\", false);\n __publicField(this, \"maxRepeatSpan\", 0);\n __publicField(this, \"locale\");\n const { dates } = Object.assign(\n this,\n { hashcode: \"\", order: 0, pinPage: false },\n config\n );\n this.key || (this.key = ++attrKey);\n this.locale = locale;\n theme.normalizeGlyphs(this);\n this.ranges = locale.ranges(dates ?? []);\n this.hasRanges = !!arrayHasItems(this.ranges);\n this.maxRepeatSpan = this.ranges.filter((r) => r.hasRepeat).map((r) => r.daySpan).reduce((res, curr) => Math.max(res, curr), 0);\n }\n intersectsRange({ start, end }) {\n if (start == null || end == null)\n return false;\n const simpleRanges = this.ranges.filter((r) => !r.hasRepeat);\n for (const range of simpleRanges) {\n if (range.intersectsDayRange(start.dayIndex, end.dayIndex)) {\n return true;\n }\n }\n const repeatRanges = this.ranges.filter((r) => r.hasRepeat);\n if (!repeatRanges.length)\n return false;\n let day = start;\n if (this.maxRepeatSpan > 1) {\n day = this.locale.getDateParts(addDays(day.date, -this.maxRepeatSpan));\n }\n while (day.dayIndex <= end.dayIndex) {\n for (const range of repeatRanges) {\n if (range.startsOnDay(day))\n return true;\n }\n day = this.locale.getDateParts(addDays(day.date, 1));\n }\n return false;\n }\n}\nfunction showPopover(opts) {\n if (document) {\n document.dispatchEvent(\n new CustomEvent(\"show-popover\", {\n detail: opts\n })\n );\n }\n}\nfunction hidePopover(opts) {\n if (document) {\n document.dispatchEvent(\n new CustomEvent(\"hide-popover\", {\n detail: opts\n })\n );\n }\n}\nfunction togglePopover(opts) {\n if (document) {\n document.dispatchEvent(\n new CustomEvent(\"toggle-popover\", {\n detail: opts\n })\n );\n }\n}\nfunction getPopoverEventHandlers(opts) {\n const { visibility } = opts;\n const click = visibility === \"click\";\n const hover = visibility === \"hover\";\n const hoverFocus = visibility === \"hover-focus\";\n const focus = visibility === \"focus\";\n opts.autoHide = !click;\n let hovered = false;\n let focused = false;\n const clickHandler = (e) => {\n if (click) {\n togglePopover({\n ...opts,\n target: opts.target || e.currentTarget\n });\n e.stopPropagation();\n }\n };\n const mouseMoveHandler = (e) => {\n if (!hovered) {\n hovered = true;\n if (hover || hoverFocus) {\n showPopover({\n ...opts,\n target: opts.target || e.currentTarget\n });\n }\n }\n };\n const mouseLeaveHandler = () => {\n if (hovered) {\n hovered = false;\n if (hover || hoverFocus && !focused) {\n hidePopover(opts);\n }\n }\n };\n const focusInHandler = (e) => {\n if (!focused) {\n focused = true;\n if (focus || hoverFocus) {\n showPopover({\n ...opts,\n target: opts.target || e.currentTarget\n });\n }\n }\n };\n const focusOutHandler = (e) => {\n if (focused && !elementContains(e.currentTarget, e.relatedTarget)) {\n focused = false;\n if (focus || hoverFocus && !hovered) {\n hidePopover(opts);\n }\n }\n };\n const handlers = {};\n switch (opts.visibility) {\n case \"click\":\n handlers.click = clickHandler;\n break;\n case \"hover\":\n handlers.mousemove = mouseMoveHandler;\n handlers.mouseleave = mouseLeaveHandler;\n break;\n case \"focus\":\n handlers.focusin = focusInHandler;\n handlers.focusout = focusOutHandler;\n break;\n case \"hover-focus\":\n handlers.mousemove = mouseMoveHandler;\n handlers.mouseleave = mouseLeaveHandler;\n handlers.focusin = focusInHandler;\n handlers.focusout = focusOutHandler;\n break;\n }\n return handlers;\n}\nconst removeHandlers = (target) => {\n const el = resolveEl(target);\n if (el == null)\n return;\n const handlers = el.popoverHandlers;\n if (!handlers || !handlers.length)\n return;\n handlers.forEach((handler) => handler());\n delete el.popoverHandlers;\n};\nconst addHandlers = (target, opts) => {\n const el = resolveEl(target);\n if (el == null)\n return;\n const remove = [];\n const handlers = getPopoverEventHandlers(opts);\n Object.entries(handlers).forEach(([event, handler]) => {\n remove.push(on(el, event, handler));\n });\n el.popoverHandlers = remove;\n};\nconst popoverDirective = {\n mounted(el, binding) {\n const { value } = binding;\n if (!value)\n return;\n addHandlers(el, value);\n },\n updated(el, binding) {\n const { oldValue, value } = binding;\n const oldVisibility = oldValue == null ? void 0 : oldValue.visibility;\n const newVisibility = value == null ? void 0 : value.visibility;\n if (oldVisibility !== newVisibility) {\n if (oldVisibility) {\n removeHandlers(el);\n if (!newVisibility)\n hidePopover(oldValue);\n }\n if (newVisibility) {\n addHandlers(el, value);\n }\n }\n },\n unmounted(el) {\n removeHandlers(el);\n }\n};\nconst addHorizontalSwipeHandler = (element, handler, {\n maxSwipeTime: maxSwipeTime2,\n minHorizontalSwipeDistance: minHorizontalSwipeDistance2,\n maxVerticalSwipeDistance: maxVerticalSwipeDistance2\n}) => {\n if (!element || !element.addEventListener || !isFunction_1(handler)) {\n return null;\n }\n let startX = 0;\n let startY = 0;\n let startTime = null;\n let isSwiping = false;\n function touchStart(e) {\n const t = e.changedTouches[0];\n startX = t.screenX;\n startY = t.screenY;\n startTime = (/* @__PURE__ */ new Date()).getTime();\n isSwiping = true;\n }\n function touchEnd(e) {\n if (!isSwiping || !startTime)\n return;\n isSwiping = false;\n const t = e.changedTouches[0];\n const deltaX = t.screenX - startX;\n const deltaY = t.screenY - startY;\n const deltaTime = (/* @__PURE__ */ new Date()).getTime() - startTime;\n if (deltaTime < maxSwipeTime2) {\n if (Math.abs(deltaX) >= minHorizontalSwipeDistance2 && Math.abs(deltaY) <= maxVerticalSwipeDistance2) {\n const arg = { toLeft: false, toRight: false };\n if (deltaX < 0) {\n arg.toLeft = true;\n } else {\n arg.toRight = true;\n }\n handler(arg);\n }\n }\n }\n on(element, \"touchstart\", touchStart, { passive: true });\n on(element, \"touchend\", touchEnd, { passive: true });\n return () => {\n off(element, \"touchstart\", touchStart);\n off(element, \"touchend\", touchEnd);\n };\n};\nconst watchSkippers = {};\nconst skipWatcher = (watcher, durationMs = 10) => {\n watchSkippers[watcher] = Date.now() + durationMs;\n};\nconst handleWatcher = (watcher, handler) => {\n if (watcher in watchSkippers) {\n const dateTime = watchSkippers[watcher];\n if (Date.now() < dateTime)\n return;\n delete watchSkippers[watcher];\n }\n handler();\n};\nfunction windowExists() {\n return typeof window !== \"undefined\";\n}\nfunction windowHasFeature(feature) {\n return windowExists() && feature in window;\n}\nfunction useDarkMode(config) {\n const isDark = ref(false);\n const displayMode = computed(() => isDark.value ? \"dark\" : \"light\");\n let mediaQuery;\n let mutationObserver;\n function mqListener(ev) {\n isDark.value = ev.matches;\n }\n function setupSystem() {\n if (windowHasFeature(\"matchMedia\")) {\n mediaQuery = window.matchMedia(\"(prefers-color-scheme: dark)\");\n mediaQuery.addEventListener(\"change\", mqListener);\n isDark.value = mediaQuery.matches;\n }\n }\n function moListener() {\n const { selector = \":root\", darkClass = \"dark\" } = config.value;\n const el = document.querySelector(selector);\n isDark.value = el.classList.contains(darkClass);\n }\n function setupClass(config2) {\n const { selector = \":root\", darkClass = \"dark\" } = config2;\n if (windowExists() && selector && darkClass) {\n const el = document.querySelector(selector);\n if (el) {\n mutationObserver = new MutationObserver(moListener);\n mutationObserver.observe(el, {\n attributes: true,\n attributeFilter: [\"class\"]\n });\n isDark.value = el.classList.contains(darkClass);\n }\n }\n }\n function setup() {\n stopObservers();\n const type = typeof config.value;\n if (type === \"string\" && config.value.toLowerCase() === \"system\") {\n setupSystem();\n } else if (type === \"object\") {\n setupClass(config.value);\n } else {\n isDark.value = !!config.value;\n }\n }\n const stopWatch = watch(() => config.value, () => setup(), {\n immediate: true\n });\n function stopObservers() {\n if (mediaQuery) {\n mediaQuery.removeEventListener(\"change\", mqListener);\n mediaQuery = void 0;\n }\n if (mutationObserver) {\n mutationObserver.disconnect();\n mutationObserver = void 0;\n }\n }\n function cleanup() {\n stopObservers();\n stopWatch();\n }\n onUnmounted(() => cleanup());\n return {\n isDark,\n displayMode,\n cleanup\n };\n}\nconst targetProps = [\"base\", \"start\", \"end\", \"startEnd\"];\nconst displayProps = [\n \"class\",\n \"wrapperClass\",\n \"contentClass\",\n \"style\",\n \"contentStyle\",\n \"color\",\n \"fillMode\"\n];\nconst _defaultProfile = { base: {}, start: {}, end: {} };\nfunction normalizeConfig(color, config, defaultProfile = _defaultProfile) {\n let rootColor = color;\n let root2 = {};\n if (config === true || isString_1(config)) {\n rootColor = isString_1(config) ? config : rootColor;\n root2 = { ...defaultProfile };\n } else if (isObject(config)) {\n if (hasAny(config, targetProps)) {\n root2 = { ...config };\n } else {\n root2 = {\n base: { ...config },\n start: { ...config },\n end: { ...config }\n };\n }\n }\n const result = defaultsDeep_1(\n root2,\n { start: root2.startEnd, end: root2.startEnd },\n defaultProfile\n );\n Object.entries(result).forEach(([targetType, targetConfig]) => {\n let targetColor = rootColor;\n if (targetConfig === true || isString_1(targetConfig)) {\n targetColor = isString_1(targetConfig) ? targetConfig : targetColor;\n result[targetType] = { color: targetColor };\n } else if (isObject(targetConfig)) {\n if (hasAny(targetConfig, displayProps)) {\n result[targetType] = { ...targetConfig };\n } else {\n result[targetType] = {};\n }\n }\n defaultsDeep_1(result[targetType], { color: targetColor });\n });\n return result;\n}\nclass HighlightRenderer {\n constructor() {\n __publicField(this, \"type\", \"highlight\");\n }\n normalizeConfig(color, config) {\n return normalizeConfig(color, config, {\n base: { fillMode: \"light\" },\n start: { fillMode: \"solid\" },\n end: { fillMode: \"solid\" }\n });\n }\n prepareRender(glyphs) {\n glyphs.highlights = [];\n if (!glyphs.content)\n glyphs.content = [];\n }\n render({ data: data2, onStart, onEnd }, glyphs) {\n const { key, highlight } = data2;\n if (!highlight)\n return;\n const { highlights } = glyphs;\n const { base, start, end } = highlight;\n if (onStart && onEnd) {\n highlights.push({\n ...start,\n key,\n wrapperClass: `vc-day-layer vc-day-box-center-center vc-attr vc-${start.color}`,\n class: [`vc-highlight vc-highlight-bg-${start.fillMode}`, start.class],\n contentClass: [\n `vc-attr vc-highlight-content-${start.fillMode} vc-${start.color}`,\n start.contentClass\n ]\n });\n } else if (onStart) {\n highlights.push({\n ...base,\n key: `${key}-base`,\n wrapperClass: `vc-day-layer vc-day-box-right-center vc-attr vc-${base.color}`,\n class: [\n `vc-highlight vc-highlight-base-start vc-highlight-bg-${base.fillMode}`,\n base.class\n ]\n });\n highlights.push({\n ...start,\n key,\n wrapperClass: `vc-day-layer vc-day-box-center-center vc-attr vc-${start.color}`,\n class: [`vc-highlight vc-highlight-bg-${start.fillMode}`, start.class],\n contentClass: [\n `vc-attr vc-highlight-content-${start.fillMode} vc-${start.color}`,\n start.contentClass\n ]\n });\n } else if (onEnd) {\n highlights.push({\n ...base,\n key: `${key}-base`,\n wrapperClass: `vc-day-layer vc-day-box-left-center vc-attr vc-${base.color}`,\n class: [\n `vc-highlight vc-highlight-base-end vc-highlight-bg-${base.fillMode}`,\n base.class\n ]\n });\n highlights.push({\n ...end,\n key,\n wrapperClass: `vc-day-layer vc-day-box-center-center vc-attr vc-${end.color}`,\n class: [`vc-highlight vc-highlight-bg-${end.fillMode}`, end.class],\n contentClass: [\n `vc-attr vc-highlight-content-${end.fillMode} vc-${end.color}`,\n end.contentClass\n ]\n });\n } else {\n highlights.push({\n ...base,\n key: `${key}-middle`,\n wrapperClass: `vc-day-layer vc-day-box-center-center vc-attr vc-${base.color}`,\n class: [\n `vc-highlight vc-highlight-base-middle vc-highlight-bg-${base.fillMode}`,\n base.class\n ],\n contentClass: [\n `vc-attr vc-highlight-content-${base.fillMode} vc-${base.color}`,\n base.contentClass\n ]\n });\n }\n }\n}\nclass BaseRenderer {\n constructor(type, collectionType) {\n __publicField(this, \"type\", \"\");\n __publicField(this, \"collectionType\", \"\");\n this.type = type;\n this.collectionType = collectionType;\n }\n normalizeConfig(color, config) {\n return normalizeConfig(color, config);\n }\n prepareRender(glyphs) {\n glyphs[this.collectionType] = [];\n }\n render({ data: data2, onStart, onEnd }, glyphs) {\n const { key } = data2;\n const item = data2[this.type];\n if (!key || !item) {\n return;\n }\n const collection = glyphs[this.collectionType];\n const { base, start, end } = item;\n if (onStart) {\n collection.push({\n ...start,\n key,\n class: [\n `vc-${this.type} vc-${this.type}-start vc-${start.color} vc-attr`,\n start.class\n ]\n });\n } else if (onEnd) {\n collection.push({\n ...end,\n key,\n class: [\n `vc-${this.type} vc-${this.type}-end vc-${end.color} vc-attr`,\n end.class\n ]\n });\n } else {\n collection.push({\n ...base,\n key,\n class: [\n `vc-${this.type} vc-${this.type}-base vc-${base.color} vc-attr`,\n base.class\n ]\n });\n }\n }\n}\nclass ContentRenderer extends BaseRenderer {\n constructor() {\n super(\"content\", \"content\");\n }\n normalizeConfig(_, config) {\n return normalizeConfig(\"base\", config);\n }\n}\nclass DotRenderer extends BaseRenderer {\n constructor() {\n super(\"dot\", \"dots\");\n }\n}\nclass BarRenderer extends BaseRenderer {\n constructor() {\n super(\"bar\", \"bars\");\n }\n}\nclass Theme {\n constructor(color) {\n __publicField(this, \"color\");\n __publicField(this, \"renderers\", [\n new ContentRenderer(),\n new HighlightRenderer(),\n new DotRenderer(),\n new BarRenderer()\n ]);\n this.color = color;\n }\n normalizeGlyphs(attr) {\n this.renderers.forEach((renderer) => {\n const type = renderer.type;\n if (attr[type] != null) {\n attr[type] = renderer.normalizeConfig(this.color, attr[type]);\n }\n });\n }\n prepareRender(glyphs = {}) {\n this.renderers.forEach((renderer) => {\n renderer.prepareRender(glyphs);\n });\n return glyphs;\n }\n render(cell, glyphs) {\n this.renderers.forEach((renderer) => {\n renderer.render(cell, glyphs);\n });\n }\n}\nconst contextKey$4 = Symbol(\"__vc_base_context__\");\nconst propsDef$2 = {\n color: {\n type: String,\n default: () => getDefault(\"color\")\n },\n isDark: {\n type: [Boolean, String, Object],\n default: () => getDefault(\"isDark\")\n },\n firstDayOfWeek: Number,\n masks: Object,\n locale: [String, Object],\n timezone: String,\n minDate: null,\n maxDate: null,\n disabledDates: null\n};\nfunction createBase(props) {\n const color = computed(() => props.color ?? \"\");\n const isDark = computed(() => props.isDark ?? false);\n const { displayMode } = useDarkMode(isDark);\n const theme = computed(() => new Theme(color.value));\n const locale = computed(() => {\n if (props.locale instanceof Locale)\n return props.locale;\n const config = isObject(props.locale) ? props.locale : {\n id: props.locale,\n firstDayOfWeek: props.firstDayOfWeek,\n masks: props.masks\n };\n return new Locale(config, props.timezone);\n });\n const masks2 = computed(() => locale.value.masks);\n const minDate = computed(() => props.minDate);\n const maxDate = computed(() => props.maxDate);\n const disabledDates = computed(() => {\n const dates = props.disabledDates ? [...props.disabledDates] : [];\n if (minDate.value != null) {\n dates.push({\n start: null,\n end: addDays(locale.value.toDate(minDate.value), -1)\n });\n }\n if (maxDate.value != null) {\n dates.push({\n start: addDays(locale.value.toDate(maxDate.value), 1),\n end: null\n });\n }\n return locale.value.ranges(dates);\n });\n const disabledAttribute = computed(() => {\n return new Attribute(\n {\n key: \"disabled\",\n dates: disabledDates.value,\n order: 100\n },\n theme.value,\n locale.value\n );\n });\n const context = {\n color,\n isDark,\n displayMode,\n theme,\n locale,\n masks: masks2,\n minDate,\n maxDate,\n disabledDates,\n disabledAttribute\n };\n provide(contextKey$4, context);\n return context;\n}\nfunction useOrCreateBase(props) {\n return inject(contextKey$4, () => createBase(props), true);\n}\nfunction contextKey$3(slotKey) {\n return `__vc_slot_${slotKey}__`;\n}\nfunction provideSlots(slots, remap = {}) {\n Object.keys(slots).forEach((slotKey) => {\n provide(contextKey$3(remap[slotKey] ?? slotKey), slots[slotKey]);\n });\n}\nfunction useSlot(slotKey) {\n return inject(contextKey$3(slotKey), null);\n}\nconst propsDef$1 = {\n ...propsDef$2,\n view: {\n type: String,\n default: \"monthly\",\n validator(value) {\n return [\"daily\", \"weekly\", \"monthly\"].includes(value);\n }\n },\n rows: {\n type: Number,\n default: 1\n },\n columns: {\n type: Number,\n default: 1\n },\n step: Number,\n titlePosition: {\n type: String,\n default: () => getDefault(\"titlePosition\")\n },\n navVisibility: {\n type: String,\n default: () => getDefault(\"navVisibility\")\n },\n showWeeknumbers: [Boolean, String],\n showIsoWeeknumbers: [Boolean, String],\n expanded: Boolean,\n borderless: Boolean,\n transparent: Boolean,\n initialPage: Object,\n initialPagePosition: { type: Number, default: 1 },\n minPage: Object,\n maxPage: Object,\n transition: String,\n attributes: Array,\n trimWeeks: Boolean,\n disablePageSwipe: Boolean\n};\nconst emitsDef = [\n \"dayclick\",\n \"daymouseenter\",\n \"daymouseleave\",\n \"dayfocusin\",\n \"dayfocusout\",\n \"daykeydown\",\n \"weeknumberclick\",\n \"transition-start\",\n \"transition-end\",\n \"did-move\",\n \"update:view\",\n \"update:pages\"\n];\nconst contextKey$2 = Symbol(\"__vc_calendar_context__\");\nfunction createCalendar(props, { slots, emit }) {\n const containerRef = ref(null);\n const focusedDay = ref(null);\n const focusableDay = ref((/* @__PURE__ */ new Date()).getDate());\n const inTransition = ref(false);\n const navPopoverId = ref(Symbol());\n const dayPopoverId = ref(Symbol());\n const _view = ref(props.view);\n const _pages = ref([]);\n const transitionName = ref(\"\");\n let transitionPromise = null;\n let removeHandlers2 = null;\n provideSlots(slots);\n const {\n theme,\n color,\n displayMode,\n locale,\n masks: masks2,\n minDate,\n maxDate,\n disabledAttribute,\n disabledDates\n } = useOrCreateBase(props);\n const count = computed(() => props.rows * props.columns);\n const step = computed(() => props.step || count.value);\n const firstPage = computed(() => head_1(_pages.value) ?? null);\n const lastPage = computed(() => last_1(_pages.value) ?? null);\n const minPage = computed(\n () => props.minPage || (minDate.value ? getDateAddress(minDate.value) : null)\n );\n const maxPage = computed(\n () => props.maxPage || (maxDate.value ? getDateAddress(maxDate.value) : null)\n );\n const navVisibility = computed(() => props.navVisibility);\n const showWeeknumbers = computed(() => !!props.showWeeknumbers);\n const showIsoWeeknumbers = computed(() => !!props.showIsoWeeknumbers);\n const isMonthly = computed(() => _view.value === \"monthly\");\n const isWeekly = computed(() => _view.value === \"weekly\");\n const isDaily = computed(() => _view.value === \"daily\");\n const onTransitionBeforeEnter = () => {\n inTransition.value = true;\n emit(\"transition-start\");\n };\n const onTransitionAfterEnter = () => {\n inTransition.value = false;\n emit(\"transition-end\");\n if (transitionPromise) {\n transitionPromise.resolve(true);\n transitionPromise = null;\n }\n };\n const addPages$1 = (address, count2, view = _view.value) => {\n return addPages(address, count2, view, locale.value);\n };\n const getDateAddress = (date) => {\n return getPageAddressForDate(date, _view.value, locale.value);\n };\n const refreshDisabled = (day) => {\n if (!disabledAttribute.value || !attributeContext.value)\n return;\n day.isDisabled = attributeContext.value.cellExists(\n disabledAttribute.value.key,\n day.dayIndex\n );\n };\n const refreshFocusable = (day) => {\n day.isFocusable = day.inMonth && day.day === focusableDay.value;\n };\n const forDays = (pages, fn) => {\n for (const page of pages) {\n for (const day of page.days) {\n if (fn(day) === false)\n return;\n }\n }\n };\n const days = computed(\n () => _pages.value.reduce((result, page) => {\n result.push(...page.viewDays);\n return result;\n }, [])\n );\n const attributes = computed(() => {\n const result = [];\n (props.attributes || []).forEach((attr, i) => {\n if (!attr || !attr.dates)\n return;\n result.push(\n new Attribute(\n {\n ...attr,\n order: attr.order || 0\n },\n theme.value,\n locale.value\n )\n );\n });\n if (disabledAttribute.value) {\n result.push(disabledAttribute.value);\n }\n return result;\n });\n const hasAttributes = computed(() => arrayHasItems(attributes.value));\n const attributeContext = computed(() => {\n const ctx = new DateRangeContext();\n attributes.value.forEach((attr) => {\n attr.ranges.forEach((range) => {\n ctx.render(attr, range, days.value);\n });\n });\n return ctx;\n });\n const dayCells = computed(() => {\n return days.value.reduce((result, day) => {\n result[day.dayIndex] = { day, cells: [] };\n result[day.dayIndex].cells.push(...attributeContext.value.getCells(day));\n return result;\n }, {});\n });\n const getWeeknumberPosition = (column, columnFromEnd) => {\n const showWeeknumbers2 = props.showWeeknumbers || props.showIsoWeeknumbers;\n if (showWeeknumbers2 == null)\n return \"\";\n if (isBoolean_1(showWeeknumbers2)) {\n return showWeeknumbers2 ? \"left\" : \"\";\n }\n if (showWeeknumbers2.startsWith(\"right\")) {\n return columnFromEnd > 1 ? \"right\" : showWeeknumbers2;\n }\n return column > 1 ? \"left\" : showWeeknumbers2;\n };\n const getPageForAttributes = () => {\n var _a, _b;\n if (!hasAttributes.value)\n return null;\n const attr = attributes.value.find((attr2) => attr2.pinPage) || attributes.value[0];\n if (!attr || !attr.hasRanges)\n return null;\n const [range] = attr.ranges;\n const date = ((_a = range.start) == null ? void 0 : _a.date) || ((_b = range.end) == null ? void 0 : _b.date);\n return date ? getDateAddress(date) : null;\n };\n const getDefaultInitialPage = () => {\n if (pageIsValid(firstPage.value))\n return firstPage.value;\n const page = getPageForAttributes();\n if (pageIsValid(page))\n return page;\n return getDateAddress(/* @__PURE__ */ new Date());\n };\n const getTargetPageRange = (page, opts = {}) => {\n const { view = _view.value, position = 1, force } = opts;\n const pagesToAdd = position > 0 ? 1 - position : -(count.value + position);\n let fromPage = addPages$1(page, pagesToAdd, view);\n let toPage = addPages$1(fromPage, count.value - 1, view);\n if (!force) {\n if (pageIsBeforePage(fromPage, minPage.value)) {\n fromPage = minPage.value;\n } else if (pageIsAfterPage(toPage, maxPage.value)) {\n fromPage = addPages$1(maxPage.value, 1 - count.value);\n }\n toPage = addPages$1(fromPage, count.value - 1);\n }\n return { fromPage, toPage };\n };\n const getPageTransition = (oldPage, newPage, defaultTransition = \"\") => {\n if (defaultTransition === \"none\" || defaultTransition === \"fade\")\n return defaultTransition;\n if ((oldPage == null ? void 0 : oldPage.view) !== (newPage == null ? void 0 : newPage.view))\n return \"fade\";\n const moveNext2 = pageIsAfterPage(newPage, oldPage);\n const movePrev2 = pageIsBeforePage(newPage, oldPage);\n if (!moveNext2 && !movePrev2) {\n return \"fade\";\n }\n if (defaultTransition === \"slide-v\") {\n return movePrev2 ? \"slide-down\" : \"slide-up\";\n }\n return movePrev2 ? \"slide-right\" : \"slide-left\";\n };\n const refreshPages = (opts = {}) => {\n return new Promise((resolve, reject) => {\n const { position = 1, force = false, transition } = opts;\n const page = pageIsValid(opts.page) ? opts.page : getDefaultInitialPage();\n const { fromPage } = getTargetPageRange(page, {\n position,\n force\n });\n const pages = [];\n for (let i = 0; i < count.value; i++) {\n const newPage = addPages$1(fromPage, i);\n const position2 = i + 1;\n const row = Math.ceil(position2 / props.columns);\n const rowFromEnd = props.rows - row + 1;\n const column = position2 % props.columns || props.columns;\n const columnFromEnd = props.columns - column + 1;\n const weeknumberPosition = getWeeknumberPosition(column, columnFromEnd);\n pages.push(\n locale.value.getPage({\n ...newPage,\n view: _view.value,\n titlePosition: props.titlePosition,\n trimWeeks: props.trimWeeks,\n position: position2,\n row,\n rowFromEnd,\n column,\n columnFromEnd,\n showWeeknumbers: showWeeknumbers.value,\n showIsoWeeknumbers: showIsoWeeknumbers.value,\n weeknumberPosition\n })\n );\n }\n transitionName.value = getPageTransition(\n _pages.value[0],\n pages[0],\n transition\n );\n _pages.value = pages;\n if (transitionName.value && transitionName.value !== \"none\") {\n transitionPromise = {\n resolve,\n reject\n };\n } else {\n resolve(true);\n }\n });\n };\n const targetBy = (pages) => {\n const fromPage = firstPage.value ?? getDateAddress(/* @__PURE__ */ new Date());\n return addPages$1(fromPage, pages);\n };\n const canMove = (target, opts = {}) => {\n const page = pageIsValid(target) ? target : getDateAddress(target);\n Object.assign(\n opts,\n getTargetPageRange(page, {\n ...opts,\n force: true\n })\n );\n const pagesInRange = pageRangeToArray(\n opts.fromPage,\n opts.toPage,\n _view.value,\n locale.value\n ).map((p) => pageIsBetweenPages(p, minPage.value, maxPage.value));\n return pagesInRange.some((val) => val);\n };\n const canMoveBy = (pages, opts = {}) => {\n return canMove(targetBy(pages), opts);\n };\n const canMovePrev = computed(() => canMoveBy(-step.value));\n const canMoveNext = computed(() => canMoveBy(step.value));\n const move = async (target, opts = {}) => {\n if (!opts.force && !canMove(target, opts))\n return false;\n if (opts.fromPage && !pageIsEqualToPage(opts.fromPage, firstPage.value)) {\n hidePopover({ id: navPopoverId.value, hideDelay: 0 });\n if (opts.view) {\n skipWatcher(\"view\", 10);\n _view.value = opts.view;\n }\n await refreshPages({\n ...opts,\n page: opts.fromPage,\n position: 1,\n force: true\n });\n emit(\"did-move\", _pages.value);\n }\n return true;\n };\n const moveBy = (pages, opts = {}) => {\n return move(targetBy(pages), opts);\n };\n const movePrev = () => {\n return moveBy(-step.value);\n };\n const moveNext = () => {\n return moveBy(step.value);\n };\n const tryFocusDate = (date) => {\n const inMonth = isMonthly.value ? \".in-month\" : \"\";\n const daySelector = `.id-${locale.value.getDayId(date)}${inMonth}`;\n const selector = `${daySelector}.vc-focusable, ${daySelector} .vc-focusable`;\n const el = containerRef.value;\n if (el) {\n const focusableEl = el.querySelector(selector);\n if (focusableEl) {\n focusableEl.focus();\n return true;\n }\n }\n return false;\n };\n const focusDate = async (date, opts = {}) => {\n if (tryFocusDate(date))\n return true;\n await move(date, opts);\n return tryFocusDate(date);\n };\n const onDayClick = (day, event) => {\n focusableDay.value = day.day;\n emit(\"dayclick\", day, event);\n };\n const onDayMouseenter = (day, event) => {\n emit(\"daymouseenter\", day, event);\n };\n const onDayMouseleave = (day, event) => {\n emit(\"daymouseleave\", day, event);\n };\n const onDayFocusin = (day, event) => {\n focusableDay.value = day.day;\n focusedDay.value = day;\n day.isFocused = true;\n emit(\"dayfocusin\", day, event);\n };\n const onDayFocusout = (day, event) => {\n focusedDay.value = null;\n day.isFocused = false;\n emit(\"dayfocusout\", day, event);\n };\n const onDayKeydown = (day, event) => {\n emit(\"daykeydown\", day, event);\n const date = day.noonDate;\n let newDate = null;\n switch (event.key) {\n case \"ArrowLeft\": {\n newDate = addDays(date, -1);\n break;\n }\n case \"ArrowRight\": {\n newDate = addDays(date, 1);\n break;\n }\n case \"ArrowUp\": {\n newDate = addDays(date, -7);\n break;\n }\n case \"ArrowDown\": {\n newDate = addDays(date, 7);\n break;\n }\n case \"Home\": {\n newDate = addDays(date, -day.weekdayPosition + 1);\n break;\n }\n case \"End\": {\n newDate = addDays(date, day.weekdayPositionFromEnd);\n break;\n }\n case \"PageUp\": {\n if (event.altKey) {\n newDate = addYears(date, -1);\n } else {\n newDate = addMonths(date, -1);\n }\n break;\n }\n case \"PageDown\": {\n if (event.altKey) {\n newDate = addYears(date, 1);\n } else {\n newDate = addMonths(date, 1);\n }\n break;\n }\n }\n if (newDate) {\n event.preventDefault();\n focusDate(newDate).catch();\n }\n };\n const onKeydown = (event) => {\n const day = focusedDay.value;\n if (day != null) {\n onDayKeydown(day, event);\n }\n };\n const onWeeknumberClick = (week, event) => {\n emit(\"weeknumberclick\", week, event);\n };\n refreshPages({\n page: props.initialPage,\n position: props.initialPagePosition\n });\n onMounted(() => {\n if (!props.disablePageSwipe && containerRef.value) {\n removeHandlers2 = addHorizontalSwipeHandler(\n containerRef.value,\n ({ toLeft = false, toRight = false }) => {\n if (toLeft) {\n moveNext();\n } else if (toRight) {\n movePrev();\n }\n },\n getDefault(\"touch\")\n );\n }\n });\n onUnmounted(() => {\n _pages.value = [];\n if (removeHandlers2)\n removeHandlers2();\n });\n watch(\n () => locale.value,\n () => {\n refreshPages();\n }\n );\n watch(\n () => count.value,\n () => refreshPages()\n );\n watch(\n () => props.view,\n () => _view.value = props.view\n );\n watch(\n () => _view.value,\n () => {\n handleWatcher(\"view\", () => {\n refreshPages();\n });\n emit(\"update:view\", _view.value);\n }\n );\n watch(\n () => focusableDay.value,\n () => {\n forDays(_pages.value, (day) => refreshFocusable(day));\n }\n );\n watchEffect(() => {\n emit(\"update:pages\", _pages.value);\n forDays(_pages.value, (day) => {\n refreshDisabled(day);\n refreshFocusable(day);\n });\n });\n const context = {\n emit,\n containerRef,\n focusedDay,\n inTransition,\n navPopoverId,\n dayPopoverId,\n view: _view,\n pages: _pages,\n transitionName,\n theme,\n color,\n displayMode,\n locale,\n masks: masks2,\n attributes,\n disabledAttribute,\n disabledDates,\n attributeContext,\n days,\n dayCells,\n count,\n step,\n firstPage,\n lastPage,\n canMovePrev,\n canMoveNext,\n minPage,\n maxPage,\n isMonthly,\n isWeekly,\n isDaily,\n navVisibility,\n showWeeknumbers,\n showIsoWeeknumbers,\n getDateAddress,\n canMove,\n canMoveBy,\n move,\n moveBy,\n movePrev,\n moveNext,\n onTransitionBeforeEnter,\n onTransitionAfterEnter,\n tryFocusDate,\n focusDate,\n onKeydown,\n onDayKeydown,\n onDayClick,\n onDayMouseenter,\n onDayMouseleave,\n onDayFocusin,\n onDayFocusout,\n onWeeknumberClick\n };\n provide(contextKey$2, context);\n return context;\n}\nfunction useCalendar() {\n const context = inject(contextKey$2);\n if (context)\n return context;\n throw new Error(\n \"Calendar context missing. Please verify this component is nested within a valid context provider.\"\n );\n}\nconst _sfc_main$k = defineComponent({\n inheritAttrs: false,\n emits: [\"before-show\", \"after-show\", \"before-hide\", \"after-hide\"],\n props: {\n id: { type: [Number, String, Symbol], required: true },\n showDelay: { type: Number, default: 0 },\n hideDelay: { type: Number, default: 110 },\n boundarySelector: { type: String }\n },\n setup(props, { emit }) {\n let timeout = void 0;\n const popoverRef = ref();\n let resizeObserver = null;\n let popper = null;\n const state2 = reactive({\n isVisible: false,\n target: null,\n data: null,\n transition: \"slide-fade\",\n placement: \"bottom\",\n direction: \"\",\n positionFixed: false,\n modifiers: [],\n isInteractive: true,\n visibility: \"click\",\n isHovered: false,\n isFocused: false,\n autoHide: false,\n force: false\n });\n function updateDirection(placement) {\n if (placement)\n state2.direction = placement.split(\"-\")[0];\n }\n function onPopperUpdate({ placement, options }) {\n updateDirection(placement || (options == null ? void 0 : options.placement));\n }\n const popperOptions = computed(() => {\n return {\n placement: state2.placement,\n strategy: state2.positionFixed ? \"fixed\" : \"absolute\",\n boundary: \"\",\n modifiers: [\n {\n name: \"onUpdate\",\n enabled: true,\n phase: \"afterWrite\",\n fn: onPopperUpdate\n },\n ...state2.modifiers || []\n ],\n onFirstUpdate: onPopperUpdate\n };\n });\n const alignment = computed(() => {\n const isLeftRight = state2.direction === \"left\" || state2.direction === \"right\";\n let alignment2 = \"\";\n if (state2.placement) {\n const parts = state2.placement.split(\"-\");\n if (parts.length > 1)\n alignment2 = parts[1];\n }\n if ([\"start\", \"top\", \"left\"].includes(alignment2)) {\n return isLeftRight ? \"top\" : \"left\";\n }\n if ([\"end\", \"bottom\", \"right\"].includes(alignment2)) {\n return isLeftRight ? \"bottom\" : \"right\";\n }\n return isLeftRight ? \"middle\" : \"center\";\n });\n function destroyPopper() {\n if (popper) {\n popper.destroy();\n popper = null;\n }\n }\n function setupPopper() {\n nextTick(() => {\n const el = resolveEl(state2.target);\n if (!el || !popoverRef.value)\n return;\n if (popper && popper.state.elements.reference !== el) {\n destroyPopper();\n }\n if (!popper) {\n popper = createPopper(\n el,\n popoverRef.value,\n popperOptions.value\n );\n } else {\n popper.update();\n }\n });\n }\n function updateState(newState) {\n Object.assign(state2, omit(newState, \"force\"));\n }\n function setTimer(delay, fn) {\n clearTimeout(timeout);\n if (delay > 0) {\n timeout = setTimeout(fn, delay);\n } else {\n fn();\n }\n }\n function isCurrentTarget(target) {\n if (!target || !popper)\n return false;\n const el = resolveEl(target);\n return el === popper.state.elements.reference;\n }\n async function show(opts = {}) {\n if (state2.force)\n return;\n if (opts.force)\n state2.force = true;\n setTimer(opts.showDelay ?? props.showDelay, () => {\n if (state2.isVisible) {\n state2.force = false;\n }\n updateState({\n ...opts,\n isVisible: true\n });\n setupPopper();\n });\n }\n function hide(opts = {}) {\n if (!popper)\n return;\n if (opts.target && !isCurrentTarget(opts.target))\n return;\n if (state2.force)\n return;\n if (opts.force)\n state2.force = true;\n setTimer(opts.hideDelay ?? props.hideDelay, () => {\n if (!state2.isVisible)\n state2.force = false;\n state2.isVisible = false;\n });\n }\n function toggle(opts = {}) {\n if (opts.target == null)\n return;\n if (state2.isVisible && isCurrentTarget(opts.target)) {\n hide(opts);\n } else {\n show(opts);\n }\n }\n function onDocumentClick(e) {\n if (!popper)\n return;\n const popperRef = popper.state.elements.reference;\n if (!popoverRef.value || !popperRef) {\n return;\n }\n const target = e.target;\n if (elementContains(popoverRef.value, target) || elementContains(popperRef, target)) {\n return;\n }\n hide({ force: true });\n }\n function onDocumentKeydown(e) {\n if (e.key === \"Esc\" || e.key === \"Escape\") {\n hide();\n }\n }\n function onDocumentShowPopover({ detail }) {\n if (!detail.id || detail.id !== props.id)\n return;\n show(detail);\n }\n function onDocumentHidePopover({ detail }) {\n if (!detail.id || detail.id !== props.id)\n return;\n hide(detail);\n }\n function onDocumentTogglePopover({ detail }) {\n if (!detail.id || detail.id !== props.id)\n return;\n toggle(detail);\n }\n function addEvents() {\n on(document, \"keydown\", onDocumentKeydown);\n on(document, \"click\", onDocumentClick);\n on(document, \"show-popover\", onDocumentShowPopover);\n on(document, \"hide-popover\", onDocumentHidePopover);\n on(document, \"toggle-popover\", onDocumentTogglePopover);\n }\n function removeEvents() {\n off(document, \"keydown\", onDocumentKeydown);\n off(document, \"click\", onDocumentClick);\n off(document, \"show-popover\", onDocumentShowPopover);\n off(document, \"hide-popover\", onDocumentHidePopover);\n off(document, \"toggle-popover\", onDocumentTogglePopover);\n }\n function beforeEnter(el) {\n emit(\"before-show\", el);\n }\n function afterEnter(el) {\n state2.force = false;\n emit(\"after-show\", el);\n }\n function beforeLeave(el) {\n emit(\"before-hide\", el);\n }\n function afterLeave(el) {\n state2.force = false;\n destroyPopper();\n emit(\"after-hide\", el);\n }\n function onClick(e) {\n e.stopPropagation();\n }\n function onMouseOver() {\n state2.isHovered = true;\n if (state2.isInteractive && [\"hover\", \"hover-focus\"].includes(state2.visibility)) {\n show();\n }\n }\n function onMouseLeave() {\n state2.isHovered = false;\n if (!popper)\n return;\n const popperRef = popper.state.elements.reference;\n if (state2.autoHide && !state2.isFocused && (!popperRef || popperRef !== document.activeElement) && [\"hover\", \"hover-focus\"].includes(state2.visibility)) {\n hide();\n }\n }\n function onFocusIn() {\n state2.isFocused = true;\n if (state2.isInteractive && [\"focus\", \"hover-focus\"].includes(state2.visibility)) {\n show();\n }\n }\n function onFocusOut(e) {\n if ([\"focus\", \"hover-focus\"].includes(state2.visibility) && (!e.relatedTarget || !elementContains(popoverRef.value, e.relatedTarget))) {\n state2.isFocused = false;\n if (!state2.isHovered && state2.autoHide)\n hide();\n }\n }\n function cleanupRO() {\n if (resizeObserver != null) {\n resizeObserver.disconnect();\n resizeObserver = null;\n }\n }\n watch(\n () => popoverRef.value,\n (val) => {\n cleanupRO();\n if (!val)\n return;\n resizeObserver = new ResizeObserver(() => {\n if (popper)\n popper.update();\n });\n resizeObserver.observe(val);\n }\n );\n watch(() => state2.placement, updateDirection, {\n immediate: true\n });\n onMounted(() => {\n addEvents();\n });\n onUnmounted(() => {\n destroyPopper();\n cleanupRO();\n removeEvents();\n });\n return {\n ...toRefs(state2),\n popoverRef,\n alignment,\n hide,\n setupPopper,\n beforeEnter,\n afterEnter,\n beforeLeave,\n afterLeave,\n onClick,\n onMouseOver,\n onMouseLeave,\n onFocusIn,\n onFocusOut\n };\n }\n});\nconst Popover_vue_vue_type_style_index_0_lang = \"\";\nconst _export_sfc = (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n};\nfunction _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"vc-popover-content-wrapper\", { \"is-interactive\": _ctx.isInteractive }]),\n ref: \"popoverRef\",\n onClick: _cache[0] || (_cache[0] = (...args) => _ctx.onClick && _ctx.onClick(...args)),\n onMouseover: _cache[1] || (_cache[1] = (...args) => _ctx.onMouseOver && _ctx.onMouseOver(...args)),\n onMouseleave: _cache[2] || (_cache[2] = (...args) => _ctx.onMouseLeave && _ctx.onMouseLeave(...args)),\n onFocusin: _cache[3] || (_cache[3] = (...args) => _ctx.onFocusIn && _ctx.onFocusIn(...args)),\n onFocusout: _cache[4] || (_cache[4] = (...args) => _ctx.onFocusOut && _ctx.onFocusOut(...args))\n }, [\n createVNode(Transition, {\n name: `vc-${_ctx.transition}`,\n appear: \"\",\n onBeforeEnter: _ctx.beforeEnter,\n onAfterEnter: _ctx.afterEnter,\n onBeforeLeave: _ctx.beforeLeave,\n onAfterLeave: _ctx.afterLeave\n }, {\n default: withCtx(() => [\n _ctx.isVisible ? (openBlock(), createElementBlock(\"div\", mergeProps({\n key: 0,\n tabindex: \"-1\",\n class: `vc-popover-content direction-${_ctx.direction}`\n }, _ctx.$attrs), [\n renderSlot(_ctx.$slots, \"default\", {\n direction: _ctx.direction,\n alignment: _ctx.alignment,\n data: _ctx.data,\n hide: _ctx.hide\n }, () => [\n createTextVNode(toDisplayString(_ctx.data), 1)\n ]),\n createElementVNode(\"span\", {\n class: normalizeClass([\n \"vc-popover-caret\",\n `direction-${_ctx.direction}`,\n `align-${_ctx.alignment}`\n ])\n }, null, 2)\n ], 16)) : createCommentVNode(\"\", true)\n ]),\n _: 3\n }, 8, [\"name\", \"onBeforeEnter\", \"onAfterEnter\", \"onBeforeLeave\", \"onAfterLeave\"])\n ], 34);\n}\nconst Popover = /* @__PURE__ */ _export_sfc(_sfc_main$k, [[\"render\", _sfc_render$7]]);\nconst _hoisted_1$c = { class: \"vc-day-popover-row\" };\nconst _hoisted_2$b = {\n key: 0,\n class: \"vc-day-popover-row-indicator\"\n};\nconst _hoisted_3$9 = { class: \"vc-day-popover-row-label\" };\nconst _sfc_main$j = /* @__PURE__ */ defineComponent({\n __name: \"PopoverRow\",\n props: {\n attribute: null\n },\n setup(__props) {\n const props = __props;\n const indicator = computed(() => {\n const { content, highlight, dot, bar, popover } = props.attribute;\n if (popover && popover.hideIndicator)\n return null;\n if (content) {\n return {\n class: `vc-bar vc-day-popover-row-bar vc-attr vc-${content.base.color}`\n };\n }\n if (highlight) {\n return {\n class: `vc-highlight-bg-solid vc-day-popover-row-highlight vc-attr vc-${highlight.base.color}`\n };\n }\n if (dot) {\n return {\n class: `vc-dot vc-attr vc-${dot.base.color}`\n };\n }\n if (bar) {\n return {\n class: `vc-bar vc-day-popover-row-bar vc-attr vc-${bar.base.color}`\n };\n }\n return null;\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", _hoisted_1$c, [\n unref(indicator) ? (openBlock(), createElementBlock(\"div\", _hoisted_2$b, [\n createElementVNode(\"span\", {\n class: normalizeClass(unref(indicator).class)\n }, null, 2)\n ])) : createCommentVNode(\"\", true),\n createElementVNode(\"div\", _hoisted_3$9, [\n renderSlot(_ctx.$slots, \"default\", {}, () => [\n createTextVNode(toDisplayString(__props.attribute.popover ? __props.attribute.popover.label : \"No content provided\"), 1)\n ])\n ])\n ]);\n };\n }\n});\nconst PopoverRow_vue_vue_type_style_index_0_lang = \"\";\nconst __default__$3 = {\n inheritAttrs: false\n};\nconst _sfc_main$i = /* @__PURE__ */ defineComponent({\n ...__default__$3,\n __name: \"CalendarSlot\",\n props: {\n name: null\n },\n setup(__props) {\n const props = __props;\n const slot = useSlot(props.name);\n return (_ctx, _cache) => {\n return unref(slot) ? (openBlock(), createBlock(resolveDynamicComponent(unref(slot)), normalizeProps(mergeProps({ key: 0 }, _ctx.$attrs)), null, 16)) : renderSlot(_ctx.$slots, \"default\", { key: 1 });\n };\n }\n});\nconst _hoisted_1$b = { class: \"vc-day-popover-container\" };\nconst _hoisted_2$a = {\n key: 0,\n class: \"vc-day-popover-header\"\n};\nconst _sfc_main$h = /* @__PURE__ */ defineComponent({\n __name: \"CalendarDayPopover\",\n setup(__props) {\n const { dayPopoverId, displayMode, color, masks: masks2, locale } = useCalendar();\n function format(date, mask) {\n return locale.value.formatDate(date, mask);\n }\n function dayTitle(day) {\n return locale.value.formatDate(day.date, masks2.value.dayPopover);\n }\n return (_ctx, _cache) => {\n return openBlock(), createBlock(Popover, {\n id: unref(dayPopoverId),\n class: normalizeClass([`vc-${unref(color)}`, `vc-${unref(displayMode)}`])\n }, {\n default: withCtx(({ data: { day, attributes }, hide }) => [\n createVNode(_sfc_main$i, {\n name: \"day-popover\",\n day,\n \"day-title\": dayTitle(day),\n attributes,\n format,\n masks: unref(masks2),\n hide\n }, {\n default: withCtx(() => [\n createElementVNode(\"div\", _hoisted_1$b, [\n unref(masks2).dayPopover ? (openBlock(), createElementBlock(\"div\", _hoisted_2$a, toDisplayString(dayTitle(day)), 1)) : createCommentVNode(\"\", true),\n (openBlock(true), createElementBlock(Fragment, null, renderList(attributes, (attribute) => {\n return openBlock(), createBlock(_sfc_main$j, {\n key: attribute.key,\n attribute\n }, null, 8, [\"attribute\"]);\n }), 128))\n ])\n ]),\n _: 2\n }, 1032, [\"day\", \"day-title\", \"attributes\", \"masks\", \"hide\"])\n ]),\n _: 1\n }, 8, [\"id\", \"class\"]);\n };\n }\n});\nconst _sfc_main$g = {};\nconst _hoisted_1$a = {\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n viewBox: \"0 0 24 24\"\n};\nconst _hoisted_2$9 = /* @__PURE__ */ createElementVNode(\"polyline\", { points: \"9 18 15 12 9 6\" }, null, -1);\nconst _hoisted_3$8 = [\n _hoisted_2$9\n];\nfunction _sfc_render$6(_ctx, _cache) {\n return openBlock(), createElementBlock(\"svg\", _hoisted_1$a, _hoisted_3$8);\n}\nconst IconChevronRight = /* @__PURE__ */ _export_sfc(_sfc_main$g, [[\"render\", _sfc_render$6]]);\nconst _sfc_main$f = {};\nconst _hoisted_1$9 = {\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n viewBox: \"0 0 24 24\"\n};\nconst _hoisted_2$8 = /* @__PURE__ */ createElementVNode(\"polyline\", { points: \"15 18 9 12 15 6\" }, null, -1);\nconst _hoisted_3$7 = [\n _hoisted_2$8\n];\nfunction _sfc_render$5(_ctx, _cache) {\n return openBlock(), createElementBlock(\"svg\", _hoisted_1$9, _hoisted_3$7);\n}\nconst IconChevronLeft = /* @__PURE__ */ _export_sfc(_sfc_main$f, [[\"render\", _sfc_render$5]]);\nconst _sfc_main$e = {};\nconst _hoisted_1$8 = {\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n viewBox: \"0 0 24 24\"\n};\nconst _hoisted_2$7 = /* @__PURE__ */ createElementVNode(\"polyline\", { points: \"6 9 12 15 18 9\" }, null, -1);\nconst _hoisted_3$6 = [\n _hoisted_2$7\n];\nfunction _sfc_render$4(_ctx, _cache) {\n return openBlock(), createElementBlock(\"svg\", _hoisted_1$8, _hoisted_3$6);\n}\nconst IconChevronDown = /* @__PURE__ */ _export_sfc(_sfc_main$e, [[\"render\", _sfc_render$4]]);\nconst _sfc_main$d = {};\nconst _hoisted_1$7 = {\n fill: \"none\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n \"stroke-width\": \"2\",\n viewBox: \"0 0 24 24\"\n};\nconst _hoisted_2$6 = /* @__PURE__ */ createElementVNode(\"path\", { d: \"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z\" }, null, -1);\nconst _hoisted_3$5 = [\n _hoisted_2$6\n];\nfunction _sfc_render$3(_ctx, _cache) {\n return openBlock(), createElementBlock(\"svg\", _hoisted_1$7, _hoisted_3$5);\n}\nconst IconClock = /* @__PURE__ */ _export_sfc(_sfc_main$d, [[\"render\", _sfc_render$3]]);\nconst icons = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n IconChevronDown,\n IconChevronLeft,\n IconChevronRight,\n IconClock\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst _sfc_main$c = /* @__PURE__ */ defineComponent({\n __name: \"BaseIcon\",\n props: {\n name: { type: String, required: true },\n width: { type: String },\n height: { type: String },\n size: { type: String, default: \"26\" },\n viewBox: { type: String }\n },\n setup(__props) {\n const props = __props;\n const width = computed(() => props.width || props.size);\n const height = computed(() => props.height || props.size);\n const icon = computed(() => icons[`Icon${props.name}`]);\n return (_ctx, _cache) => {\n return openBlock(), createBlock(resolveDynamicComponent(unref(icon)), {\n width: unref(width),\n height: unref(height),\n class: \"vc-base-icon\"\n }, null, 8, [\"width\", \"height\"]);\n };\n }\n});\nconst BaseIcon_vue_vue_type_style_index_0_lang = \"\";\nconst _hoisted_1$6 = [\"disabled\"];\nconst _hoisted_2$5 = {\n key: 1,\n class: \"vc-title-wrapper\"\n};\nconst _hoisted_3$4 = {\n type: \"button\",\n class: \"vc-title\"\n};\nconst _hoisted_4$3 = [\"disabled\"];\nconst _sfc_main$b = /* @__PURE__ */ defineComponent({\n __name: \"CalendarHeader\",\n props: {\n page: null,\n layout: null,\n isLg: { type: Boolean },\n isXl: { type: Boolean },\n is2xl: { type: Boolean },\n hideTitle: { type: Boolean },\n hideArrows: { type: Boolean }\n },\n setup(__props) {\n const props = __props;\n const {\n navPopoverId,\n navVisibility,\n canMovePrev,\n movePrev,\n canMoveNext,\n moveNext\n } = useCalendar();\n const navPlacement = computed(() => {\n switch (props.page.titlePosition) {\n case \"left\":\n return \"bottom-start\";\n case \"right\":\n return \"bottom-end\";\n default:\n return \"bottom\";\n }\n });\n const navPopoverOptions = computed(() => {\n const { page } = props;\n return {\n id: navPopoverId.value,\n visibility: navVisibility.value,\n placement: navPlacement.value,\n modifiers: [{ name: \"flip\", options: { fallbackPlacements: [\"bottom\"] } }],\n data: { page },\n isInteractive: true\n };\n });\n const titleLeft = computed(() => props.page.titlePosition.includes(\"left\"));\n const titleRight = computed(() => props.page.titlePosition.includes(\"right\"));\n const layout_ = computed(() => {\n if (props.layout)\n return props.layout;\n if (titleLeft.value)\n return \"tu-pn\";\n if (titleRight.value)\n return \"pn-tu\";\n return \"p-tu-n;\";\n });\n const show = computed(() => {\n return {\n prev: layout_.value.includes(\"p\") && !props.hideArrows,\n title: layout_.value.includes(\"t\") && !props.hideTitle,\n next: layout_.value.includes(\"n\") && !props.hideArrows\n };\n });\n const gridStyle = computed(() => {\n const gridTemplateColumns = layout_.value.split(\"\").map((l) => {\n switch (l) {\n case \"p\":\n return \"[prev] auto\";\n case \"n\":\n return \"[next] auto\";\n case \"t\":\n return \"[title] auto\";\n case \"-\":\n return \"1fr\";\n default:\n return \"\";\n }\n }).join(\" \");\n return { gridTemplateColumns };\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"vc-header\", { \"is-lg\": __props.isLg, \"is-xl\": __props.isXl, \"is-2xl\": __props.is2xl }]),\n style: normalizeStyle(unref(gridStyle))\n }, [\n unref(show).prev ? (openBlock(), createElementBlock(\"button\", {\n key: 0,\n type: \"button\",\n class: \"vc-arrow vc-prev vc-focus\",\n disabled: !unref(canMovePrev),\n onClick: _cache[0] || (_cache[0] = //@ts-ignore\n (...args) => unref(movePrev) && unref(movePrev)(...args)),\n onKeydown: _cache[1] || (_cache[1] = withKeys(\n //@ts-ignore\n (...args) => unref(movePrev) && unref(movePrev)(...args),\n [\"space\", \"enter\"]\n ))\n }, [\n createVNode(_sfc_main$i, {\n name: \"header-prev-button\",\n disabled: !unref(canMovePrev)\n }, {\n default: withCtx(() => [\n createVNode(_sfc_main$c, {\n name: \"ChevronLeft\",\n size: \"24\"\n })\n ]),\n _: 1\n }, 8, [\"disabled\"])\n ], 40, _hoisted_1$6)) : createCommentVNode(\"\", true),\n unref(show).title ? (openBlock(), createElementBlock(\"div\", _hoisted_2$5, [\n createVNode(_sfc_main$i, { name: \"header-title-wrapper\" }, {\n default: withCtx(() => [\n withDirectives((openBlock(), createElementBlock(\"button\", _hoisted_3$4, [\n createVNode(_sfc_main$i, {\n name: \"header-title\",\n title: __props.page.title\n }, {\n default: withCtx(() => [\n createElementVNode(\"span\", null, toDisplayString(__props.page.title), 1)\n ]),\n _: 1\n }, 8, [\"title\"])\n ])), [\n [unref(popoverDirective), unref(navPopoverOptions)]\n ])\n ]),\n _: 1\n })\n ])) : createCommentVNode(\"\", true),\n unref(show).next ? (openBlock(), createElementBlock(\"button\", {\n key: 2,\n type: \"button\",\n class: \"vc-arrow vc-next vc-focus\",\n disabled: !unref(canMoveNext),\n onClick: _cache[2] || (_cache[2] = //@ts-ignore\n (...args) => unref(moveNext) && unref(moveNext)(...args)),\n onKeydown: _cache[3] || (_cache[3] = withKeys(\n //@ts-ignore\n (...args) => unref(moveNext) && unref(moveNext)(...args),\n [\"space\", \"enter\"]\n ))\n }, [\n createVNode(_sfc_main$i, {\n name: \"header-next-button\",\n disabled: !unref(canMoveNext)\n }, {\n default: withCtx(() => [\n createVNode(_sfc_main$c, {\n name: \"ChevronRight\",\n size: \"24\"\n })\n ]),\n _: 1\n }, 8, [\"disabled\"])\n ], 40, _hoisted_4$3)) : createCommentVNode(\"\", true)\n ], 6);\n };\n }\n});\nconst CalendarHeader_vue_vue_type_style_index_0_lang = \"\";\nconst contextKey$1 = Symbol(\"__vc_page_context__\");\nfunction createPage(page) {\n const { locale, getDateAddress, canMove } = useCalendar();\n function getMonthItems(year, mask) {\n const { month: thisMonth, year: thisYear } = getDateAddress(/* @__PURE__ */ new Date());\n return getMonthDates().map((d, i) => {\n const month = i + 1;\n return {\n month,\n year,\n id: getPageId(month, year),\n label: locale.value.formatDate(d, mask),\n ariaLabel: locale.value.formatDate(d, \"MMMM\"),\n isActive: month === page.value.month && year === page.value.year,\n isCurrent: month === thisMonth && year === thisYear,\n isDisabled: !canMove(\n { month, year },\n { position: page.value.position }\n )\n };\n });\n }\n function getYearItems(startYear, endYear) {\n const { year: thisYear } = getDateAddress(/* @__PURE__ */ new Date());\n const { position } = page.value;\n const items = [];\n for (let year = startYear; year <= endYear; year += 1) {\n const enabled = [...Array(12).keys()].some(\n (m) => canMove({ month: m + 1, year }, { position })\n );\n items.push({\n year,\n id: year.toString(),\n label: year.toString(),\n ariaLabel: year.toString(),\n isActive: year === page.value.year,\n isCurrent: year === thisYear,\n isDisabled: !enabled\n });\n }\n return items;\n }\n const context = { page, getMonthItems, getYearItems };\n provide(contextKey$1, context);\n return context;\n}\nfunction usePage() {\n const context = inject(contextKey$1);\n if (context)\n return context;\n throw new Error(\n \"Page context missing. Please verify this component is nested within a valid context provider.\"\n );\n}\nconst _hoisted_1$5 = { class: \"vc-nav-header\" };\nconst _hoisted_2$4 = [\"disabled\"];\nconst _hoisted_3$3 = [\"disabled\"];\nconst _hoisted_4$2 = { class: \"vc-nav-items\" };\nconst _hoisted_5$2 = [\"data-id\", \"aria-label\", \"disabled\", \"onClick\", \"onKeydown\"];\nconst _sfc_main$a = /* @__PURE__ */ defineComponent({\n __name: \"CalendarNav\",\n setup(__props) {\n const { masks: masks2, move } = useCalendar();\n const { page, getMonthItems, getYearItems } = usePage();\n const monthMode = ref(true);\n const yearGroupCount = 12;\n const selectedYear = ref(page.value.year);\n const selectedYearGroup = ref(getYearGroupIndex(page.value.year));\n const navContainer = ref(null);\n function focusFirstItem() {\n setTimeout(() => {\n if (navContainer.value == null)\n return;\n const focusableEl = navContainer.value.querySelector(\n \".vc-nav-item:not(:disabled)\"\n );\n if (focusableEl) {\n focusableEl.focus();\n }\n }, 10);\n }\n function getYearGroupIndex(year) {\n return Math.floor(year / yearGroupCount);\n }\n function toggleMode() {\n monthMode.value = !monthMode.value;\n }\n function getStartYear(groupIndex) {\n return groupIndex * yearGroupCount;\n }\n function getEndYear(groupIndex) {\n return yearGroupCount * (groupIndex + 1) - 1;\n }\n function movePrev() {\n if (!prevItemsEnabled.value)\n return;\n if (monthMode.value) {\n movePrevYear();\n }\n movePrevYearGroup();\n }\n function moveNext() {\n if (!nextItemsEnabled.value)\n return;\n if (monthMode.value) {\n moveNextYear();\n }\n moveNextYearGroup();\n }\n function movePrevYear() {\n selectedYear.value--;\n }\n function moveNextYear() {\n selectedYear.value++;\n }\n function movePrevYearGroup() {\n selectedYearGroup.value--;\n }\n function moveNextYearGroup() {\n selectedYearGroup.value++;\n }\n const monthItems = computed(\n () => getMonthItems(selectedYear.value, masks2.value.navMonths).map((item) => ({\n ...item,\n click: () => move(\n { month: item.month, year: item.year },\n { position: page.value.position }\n )\n }))\n );\n const prevMonthItems = computed(\n () => getMonthItems(selectedYear.value - 1, masks2.value.navMonths)\n );\n const prevMonthItemsEnabled = computed(\n () => prevMonthItems.value.some((i) => !i.isDisabled)\n );\n const nextMonthItems = computed(\n () => getMonthItems(selectedYear.value + 1, masks2.value.navMonths)\n );\n const nextMonthItemsEnabled = computed(\n () => nextMonthItems.value.some((i) => !i.isDisabled)\n );\n const yearItems = computed(\n () => getYearItems(\n getStartYear(selectedYearGroup.value),\n getEndYear(selectedYearGroup.value)\n ).map((item) => {\n return {\n ...item,\n click: () => {\n selectedYear.value = item.year;\n monthMode.value = true;\n focusFirstItem();\n }\n };\n })\n );\n const prevYearItems = computed(\n () => getYearItems(\n getStartYear(selectedYearGroup.value - 1),\n getEndYear(selectedYearGroup.value - 1)\n )\n );\n const prevYearItemsEnabled = computed(\n () => prevYearItems.value.some((i) => !i.isDisabled)\n );\n const nextYearItems = computed(\n () => getYearItems(\n getStartYear(selectedYearGroup.value + 1),\n getEndYear(selectedYearGroup.value + 1)\n )\n );\n const nextYearItemsEnabled = computed(\n () => nextYearItems.value.some((i) => !i.isDisabled)\n );\n const activeItems = computed(\n () => monthMode.value ? monthItems.value : yearItems.value\n );\n const prevItemsEnabled = computed(\n () => monthMode.value ? prevMonthItemsEnabled.value : prevYearItemsEnabled.value\n );\n const nextItemsEnabled = computed(\n () => monthMode.value ? nextMonthItemsEnabled.value : nextYearItemsEnabled.value\n );\n const firstYear = computed(() => head_1(yearItems.value.map((i) => i.year)));\n const lastYear = computed(() => last_1(yearItems.value.map((i) => i.year)));\n const title2 = computed(() => {\n return monthMode.value ? selectedYear.value : `${firstYear.value} - ${lastYear.value}`;\n });\n watchEffect(() => {\n selectedYear.value = page.value.year;\n focusFirstItem();\n });\n watch(\n () => selectedYear.value,\n (val) => selectedYearGroup.value = getYearGroupIndex(val)\n );\n onMounted(() => focusFirstItem());\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: \"vc-nav-container\",\n ref_key: \"navContainer\",\n ref: navContainer\n }, [\n createElementVNode(\"div\", _hoisted_1$5, [\n createElementVNode(\"button\", {\n type: \"button\",\n class: \"vc-nav-arrow is-left vc-focus\",\n disabled: !unref(prevItemsEnabled),\n onClick: movePrev,\n onKeydown: _cache[0] || (_cache[0] = (e) => unref(onSpaceOrEnter)(e, movePrev))\n }, [\n createVNode(_sfc_main$i, {\n name: \"nav-prev-button\",\n move: movePrev,\n disabled: !unref(prevItemsEnabled)\n }, {\n default: withCtx(() => [\n createVNode(_sfc_main$c, {\n name: \"ChevronLeft\",\n width: \"22px\",\n height: \"24px\"\n })\n ]),\n _: 1\n }, 8, [\"disabled\"])\n ], 40, _hoisted_2$4),\n createElementVNode(\"button\", {\n type: \"button\",\n class: \"vc-nav-title vc-focus\",\n onClick: toggleMode,\n onKeydown: _cache[1] || (_cache[1] = (e) => unref(onSpaceOrEnter)(e, toggleMode))\n }, toDisplayString(unref(title2)), 33),\n createElementVNode(\"button\", {\n type: \"button\",\n class: \"vc-nav-arrow is-right vc-focus\",\n disabled: !unref(nextItemsEnabled),\n onClick: moveNext,\n onKeydown: _cache[2] || (_cache[2] = (e) => unref(onSpaceOrEnter)(e, moveNext))\n }, [\n createVNode(_sfc_main$i, {\n name: \"nav-next-button\",\n move: moveNext,\n disabled: !unref(nextItemsEnabled)\n }, {\n default: withCtx(() => [\n createVNode(_sfc_main$c, {\n name: \"ChevronRight\",\n width: \"22px\",\n height: \"24px\"\n })\n ]),\n _: 1\n }, 8, [\"disabled\"])\n ], 40, _hoisted_3$3)\n ]),\n createElementVNode(\"div\", _hoisted_4$2, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(unref(activeItems), (item) => {\n return openBlock(), createElementBlock(\"button\", {\n key: item.label,\n type: \"button\",\n \"data-id\": item.id,\n \"aria-label\": item.ariaLabel,\n class: normalizeClass([\"vc-nav-item vc-focus\", [\n item.isActive ? \"is-active\" : item.isCurrent ? \"is-current\" : \"\"\n ]]),\n disabled: item.isDisabled,\n onClick: item.click,\n onKeydown: (e) => unref(onSpaceOrEnter)(e, item.click)\n }, toDisplayString(item.label), 43, _hoisted_5$2);\n }), 128))\n ])\n ], 512);\n };\n }\n});\nconst CalendarNav_vue_vue_type_style_index_0_lang = \"\";\nconst _sfc_main$9 = /* @__PURE__ */ defineComponent({\n __name: \"CalendarPageProvider\",\n props: {\n page: null\n },\n setup(__props) {\n const props = __props;\n createPage(toRef(props, \"page\"));\n return (_ctx, _cache) => {\n return renderSlot(_ctx.$slots, \"default\");\n };\n }\n});\nconst _sfc_main$8 = /* @__PURE__ */ defineComponent({\n __name: \"CalendarNavPopover\",\n setup(__props) {\n const { navPopoverId, color, displayMode } = useCalendar();\n return (_ctx, _cache) => {\n return openBlock(), createBlock(Popover, {\n id: unref(navPopoverId),\n class: normalizeClass([\"vc-nav-popover-container\", `vc-${unref(color)}`, `vc-${unref(displayMode)}`])\n }, {\n default: withCtx(({ data: data2 }) => [\n createVNode(_sfc_main$9, {\n page: data2.page\n }, {\n default: withCtx(() => [\n createVNode(_sfc_main$i, { name: \"nav\" }, {\n default: withCtx(() => [\n createVNode(_sfc_main$a)\n ]),\n _: 1\n })\n ]),\n _: 2\n }, 1032, [\"page\"])\n ]),\n _: 1\n }, 8, [\"id\", \"class\"]);\n };\n }\n});\nconst _sfc_main$7 = defineComponent({\n directives: { popover: popoverDirective },\n components: { CalendarSlot: _sfc_main$i },\n props: {\n day: { type: Object, required: true }\n },\n setup(props) {\n const {\n locale,\n theme,\n attributeContext,\n dayPopoverId,\n onDayClick,\n onDayMouseenter,\n onDayMouseleave,\n onDayFocusin,\n onDayFocusout,\n onDayKeydown\n } = useCalendar();\n const day = computed(() => props.day);\n const attributeCells = computed(() => {\n return attributeContext.value.getCells(day.value);\n });\n const attributes = computed(\n () => attributeCells.value.map((cell) => cell.data)\n );\n const attributedDay = computed(() => {\n return {\n ...day.value,\n attributes: attributes.value,\n attributeCells: attributeCells.value\n };\n });\n function processPopover({ data: attribute }, { popovers: popovers2 }) {\n const { key, customData, popover } = attribute;\n if (!popover)\n return;\n const resolvedPopover = defaults_1(\n {\n key,\n customData,\n attribute\n },\n { ...popover },\n {\n visibility: popover.label ? \"hover\" : \"click\",\n placement: \"bottom\",\n isInteractive: !popover.label\n }\n );\n popovers2.splice(0, 0, resolvedPopover);\n }\n const glyphs = computed(() => {\n const result = {\n ...theme.value.prepareRender({}),\n popovers: []\n };\n attributeCells.value.forEach((cell) => {\n theme.value.render(cell, result);\n processPopover(cell, result);\n });\n return result;\n });\n const highlights = computed(() => glyphs.value.highlights);\n const hasHighlights = computed(() => !!arrayHasItems(highlights.value));\n const content = computed(() => glyphs.value.content);\n const dots = computed(() => glyphs.value.dots);\n const hasDots = computed(() => !!arrayHasItems(dots.value));\n const bars = computed(() => glyphs.value.bars);\n const hasBars = computed(() => !!arrayHasItems(bars.value));\n const popovers = computed(() => glyphs.value.popovers);\n const popoverAttrs = computed(\n () => popovers.value.map((p) => p.attribute)\n );\n const dayContentSlot = useSlot(\"day-content\");\n const dayClasses = computed(() => {\n return [\n \"vc-day\",\n ...day.value.classes,\n { \"vc-day-box-center-center\": !dayContentSlot },\n { \"is-not-in-month\": !props.day.inMonth }\n ];\n });\n const dayContentProps = computed(() => {\n let tabindex;\n if (day.value.isFocusable) {\n tabindex = \"0\";\n } else {\n tabindex = \"-1\";\n }\n const classes = [\n \"vc-day-content vc-focusable vc-focus vc-attr\",\n { \"vc-disabled\": day.value.isDisabled },\n get_1(last_1(highlights.value), \"contentClass\"),\n get_1(last_1(content.value), \"class\") || \"\"\n ];\n const style = {\n ...get_1(last_1(highlights.value), \"contentStyle\"),\n ...get_1(last_1(content.value), \"style\")\n };\n return {\n class: classes,\n style,\n tabindex,\n \"aria-label\": day.value.ariaLabel,\n \"aria-disabled\": day.value.isDisabled ? true : false,\n role: \"button\"\n };\n });\n const dayContentEvents = computed(() => {\n return {\n click(event) {\n onDayClick(attributedDay.value, event);\n },\n mouseenter(event) {\n onDayMouseenter(attributedDay.value, event);\n },\n mouseleave(event) {\n onDayMouseleave(attributedDay.value, event);\n },\n focusin(event) {\n onDayFocusin(attributedDay.value, event);\n },\n focusout(event) {\n onDayFocusout(attributedDay.value, event);\n },\n keydown(event) {\n onDayKeydown(attributedDay.value, event);\n }\n };\n });\n const dayPopover2 = computed(() => {\n if (!arrayHasItems(popovers.value))\n return null;\n return defaults_1(\n {\n id: dayPopoverId.value,\n data: { day, attributes: popoverAttrs.value }\n },\n ...popovers.value\n );\n });\n return {\n attributes,\n attributeCells,\n bars,\n dayClasses,\n dayContentProps,\n dayContentEvents,\n dayPopover: dayPopover2,\n glyphs,\n dots,\n hasDots,\n hasBars,\n highlights,\n hasHighlights,\n locale,\n popovers\n };\n }\n});\nconst CalendarDay_vue_vue_type_style_index_0_lang = \"\";\nconst _hoisted_1$4 = {\n key: 0,\n class: \"vc-highlights vc-day-layer\"\n};\nconst _hoisted_2$3 = {\n key: 1,\n class: \"vc-day-layer vc-day-box-center-bottom\"\n};\nconst _hoisted_3$2 = { class: \"vc-dots\" };\nconst _hoisted_4$1 = {\n key: 2,\n class: \"vc-day-layer vc-day-box-center-bottom\"\n};\nconst _hoisted_5$1 = { class: \"vc-bars\" };\nfunction _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_CalendarSlot = resolveComponent(\"CalendarSlot\");\n const _directive_popover = resolveDirective(\"popover\");\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass(_ctx.dayClasses)\n }, [\n _ctx.hasHighlights ? (openBlock(), createElementBlock(\"div\", _hoisted_1$4, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.highlights, ({ key, wrapperClass, class: bgClass, style }) => {\n return openBlock(), createElementBlock(\"div\", {\n key,\n class: normalizeClass(wrapperClass)\n }, [\n createElementVNode(\"div\", {\n class: normalizeClass(bgClass),\n style: normalizeStyle(style)\n }, null, 6)\n ], 2);\n }), 128))\n ])) : createCommentVNode(\"\", true),\n createVNode(_component_CalendarSlot, {\n name: \"day-content\",\n day: _ctx.day,\n attributes: _ctx.attributes,\n \"attribute-cells\": _ctx.attributeCells,\n dayProps: _ctx.dayContentProps,\n dayEvents: _ctx.dayContentEvents,\n locale: _ctx.locale\n }, {\n default: withCtx(() => [\n withDirectives((openBlock(), createElementBlock(\"div\", mergeProps(_ctx.dayContentProps, toHandlers(_ctx.dayContentEvents, true)), [\n createTextVNode(toDisplayString(_ctx.day.label), 1)\n ], 16)), [\n [_directive_popover, _ctx.dayPopover]\n ])\n ]),\n _: 1\n }, 8, [\"day\", \"attributes\", \"attribute-cells\", \"dayProps\", \"dayEvents\", \"locale\"]),\n _ctx.hasDots ? (openBlock(), createElementBlock(\"div\", _hoisted_2$3, [\n createElementVNode(\"div\", _hoisted_3$2, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.dots, ({ key, class: bgClass, style }) => {\n return openBlock(), createElementBlock(\"span\", {\n key,\n class: normalizeClass(bgClass),\n style: normalizeStyle(style)\n }, null, 6);\n }), 128))\n ])\n ])) : createCommentVNode(\"\", true),\n _ctx.hasBars ? (openBlock(), createElementBlock(\"div\", _hoisted_4$1, [\n createElementVNode(\"div\", _hoisted_5$1, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.bars, ({ key, class: bgClass, style }) => {\n return openBlock(), createElementBlock(\"span\", {\n key,\n class: normalizeClass(bgClass),\n style: normalizeStyle(style)\n }, null, 6);\n }), 128))\n ])\n ])) : createCommentVNode(\"\", true)\n ], 2);\n}\nconst CalendarDay = /* @__PURE__ */ _export_sfc(_sfc_main$7, [[\"render\", _sfc_render$2]]);\nconst _hoisted_1$3 = { class: \"vc-weekdays\" };\nconst _hoisted_2$2 = [\"onClick\"];\nconst __default__$2 = {\n inheritAttrs: false\n};\nconst _sfc_main$6 = /* @__PURE__ */ defineComponent({\n ...__default__$2,\n __name: \"CalendarPage\",\n setup(__props) {\n const { page } = usePage();\n const { onWeeknumberClick } = useCalendar();\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\n \"vc-pane\",\n `row-${unref(page).row}`,\n `row-from-end-${unref(page).rowFromEnd}`,\n `column-${unref(page).column}`,\n `column-from-end-${unref(page).columnFromEnd}`\n ]),\n ref: \"pane\"\n }, [\n createVNode(_sfc_main$b, {\n page: unref(page),\n \"is-lg\": \"\",\n \"hide-arrows\": \"\"\n }, null, 8, [\"page\"]),\n createElementVNode(\"div\", {\n class: normalizeClass([\"vc-weeks\", {\n [`vc-show-weeknumbers-${unref(page).weeknumberPosition}`]: unref(page).weeknumberPosition\n }])\n }, [\n createElementVNode(\"div\", _hoisted_1$3, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(unref(page).weekdays, ({ weekday, label }, i) => {\n return openBlock(), createElementBlock(\"div\", {\n key: i,\n class: normalizeClass(`vc-weekday vc-weekday-${weekday}`)\n }, toDisplayString(label), 3);\n }), 128))\n ]),\n (openBlock(true), createElementBlock(Fragment, null, renderList(unref(page).viewWeeks, (week) => {\n return openBlock(), createElementBlock(\"div\", {\n key: `weeknumber-${week.weeknumber}`,\n class: \"vc-week\"\n }, [\n unref(page).weeknumberPosition ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass([\"vc-weeknumber\", `is-${unref(page).weeknumberPosition}`])\n }, [\n createElementVNode(\"span\", {\n class: normalizeClass([\"vc-weeknumber-content\"]),\n onClick: ($event) => unref(onWeeknumberClick)(week, $event)\n }, toDisplayString(week.weeknumberDisplay), 9, _hoisted_2$2)\n ], 2)) : createCommentVNode(\"\", true),\n (openBlock(true), createElementBlock(Fragment, null, renderList(week.days, (day) => {\n return openBlock(), createBlock(CalendarDay, {\n key: day.id,\n day\n }, null, 8, [\"day\"]);\n }), 128))\n ]);\n }), 128))\n ], 2)\n ], 2);\n };\n }\n});\nconst CalendarPage_vue_vue_type_style_index_0_lang = \"\";\nconst _sfc_main$5 = defineComponent({\n components: {\n CalendarHeader: _sfc_main$b,\n CalendarPage: _sfc_main$6,\n CalendarNavPopover: _sfc_main$8,\n CalendarDayPopover: _sfc_main$h,\n CalendarPageProvider: _sfc_main$9,\n CalendarSlot: _sfc_main$i\n },\n props: propsDef$1,\n emit: emitsDef,\n setup(props, { emit, slots }) {\n return createCalendar(props, { emit, slots });\n }\n});\nconst Calendar_vue_vue_type_style_index_0_lang = \"\";\nconst _hoisted_1$2 = { class: \"vc-pane-header-wrapper\" };\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_CalendarHeader = resolveComponent(\"CalendarHeader\");\n const _component_CalendarPage = resolveComponent(\"CalendarPage\");\n const _component_CalendarSlot = resolveComponent(\"CalendarSlot\");\n const _component_CalendarPageProvider = resolveComponent(\"CalendarPageProvider\");\n const _component_CalendarDayPopover = resolveComponent(\"CalendarDayPopover\");\n const _component_CalendarNavPopover = resolveComponent(\"CalendarNavPopover\");\n return openBlock(), createElementBlock(Fragment, null, [\n createElementVNode(\"div\", mergeProps({ \"data-helptext\": \"Press the arrow keys to navigate by day, Home and End to navigate to week ends, PageUp and PageDown to navigate by month, Alt+PageUp and Alt+PageDown to navigate by year\" }, _ctx.$attrs, {\n class: [\n \"vc-container\",\n `vc-${_ctx.view}`,\n `vc-${_ctx.color}`,\n `vc-${_ctx.displayMode}`,\n {\n \"vc-expanded\": _ctx.expanded,\n \"vc-bordered\": !_ctx.borderless,\n \"vc-transparent\": _ctx.transparent\n }\n ],\n onMouseup: _cache[0] || (_cache[0] = withModifiers(() => {\n }, [\"prevent\"])),\n ref: \"containerRef\"\n }), [\n createElementVNode(\"div\", {\n class: normalizeClass([\"vc-pane-container\", { \"in-transition\": _ctx.inTransition }])\n }, [\n createElementVNode(\"div\", _hoisted_1$2, [\n _ctx.firstPage ? (openBlock(), createBlock(_component_CalendarHeader, {\n key: 0,\n page: _ctx.firstPage,\n \"is-lg\": \"\",\n \"hide-title\": \"\"\n }, null, 8, [\"page\"])) : createCommentVNode(\"\", true)\n ]),\n createVNode(Transition, {\n name: `vc-${_ctx.transitionName}`,\n onBeforeEnter: _ctx.onTransitionBeforeEnter,\n onAfterEnter: _ctx.onTransitionAfterEnter\n }, {\n default: withCtx(() => [\n (openBlock(), createElementBlock(\"div\", {\n key: _ctx.pages[0].id,\n class: \"vc-pane-layout\",\n style: normalizeStyle({\n gridTemplateColumns: `repeat(${_ctx.columns}, 1fr)`\n })\n }, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.pages, (page) => {\n return openBlock(), createBlock(_component_CalendarPageProvider, {\n key: page.id,\n page\n }, {\n default: withCtx(() => [\n createVNode(_component_CalendarSlot, {\n name: \"page\",\n page\n }, {\n default: withCtx(() => [\n createVNode(_component_CalendarPage)\n ]),\n _: 2\n }, 1032, [\"page\"])\n ]),\n _: 2\n }, 1032, [\"page\"]);\n }), 128))\n ], 4))\n ]),\n _: 1\n }, 8, [\"name\", \"onBeforeEnter\", \"onAfterEnter\"]),\n createVNode(_component_CalendarSlot, { name: \"footer\" })\n ], 2)\n ], 16),\n createVNode(_component_CalendarDayPopover),\n createVNode(_component_CalendarNavPopover)\n ], 64);\n}\nconst Calendar = /* @__PURE__ */ _export_sfc(_sfc_main$5, [[\"render\", _sfc_render$1]]);\nconst contextKey = Symbol(\"__vc_date_picker_context__\");\nconst propsDef = {\n ...propsDef$2,\n mode: { type: String, default: \"date\" },\n modelValue: {\n type: [Number, String, Date, Object]\n },\n modelModifiers: {\n type: Object,\n default: () => ({})\n },\n rules: [String, Object],\n is24hr: Boolean,\n hideTimeHeader: Boolean,\n timeAccuracy: { type: Number, default: 2 },\n isRequired: Boolean,\n isRange: Boolean,\n updateOnInput: {\n type: Boolean,\n default: () => getDefault(\"datePicker.updateOnInput\")\n },\n inputDebounce: {\n type: Number,\n default: () => getDefault(\"datePicker.inputDebounce\")\n },\n popover: {\n type: [Boolean, Object],\n default: true\n },\n dragAttribute: Object,\n selectAttribute: Object,\n attributes: [Object, Array]\n};\nconst emits = [\n \"update:modelValue\",\n \"drag\",\n \"dayclick\",\n \"daykeydown\",\n \"popover-will-show\",\n \"popover-did-show\",\n \"popover-will-hide\",\n \"popover-did-hide\"\n];\nfunction createDatePicker(props, { emit, slots }) {\n provideSlots(slots, { footer: \"dp-footer\" });\n const baseCtx = createBase(props);\n const { locale, masks: masks2, disabledAttribute } = baseCtx;\n const showCalendar = ref(false);\n const datePickerPopoverId = ref(Symbol());\n const dateValue = ref(null);\n const dragValue = ref(null);\n const inputValues = ref([\"\", \"\"]);\n const popoverRef = ref(null);\n const calendarRef = ref(null);\n let updateTimeout = void 0;\n let dragTrackingValue;\n let watchValue = true;\n const isRange = computed(() => {\n return props.isRange || props.modelModifiers.range === true;\n });\n const valueStart = computed(\n () => isRange.value && dateValue.value != null ? dateValue.value.start : null\n );\n const valueEnd = computed(\n () => isRange.value && dateValue.value != null ? dateValue.value.end : null\n );\n const isDateMode = computed(() => props.mode.toLowerCase() === \"date\");\n const isDateTimeMode = computed(\n () => props.mode.toLowerCase() === \"datetime\"\n );\n const isTimeMode = computed(() => props.mode.toLowerCase() === \"time\");\n const isDragging = computed(() => !!dragValue.value);\n const modelConfig = computed(() => {\n let type = \"date\";\n if (props.modelModifiers.number)\n type = \"number\";\n if (props.modelModifiers.string)\n type = \"string\";\n const mask = masks2.value.modelValue || \"iso\";\n return normalizeConfig2({ type, mask });\n });\n const dateParts = computed(\n () => getDateParts2(dragValue.value ?? dateValue.value)\n );\n const inputMask = computed(() => {\n if (isTimeMode.value) {\n return props.is24hr ? masks2.value.inputTime24hr : masks2.value.inputTime;\n }\n if (isDateTimeMode.value) {\n return props.is24hr ? masks2.value.inputDateTime24hr : masks2.value.inputDateTime;\n }\n return masks2.value.input;\n });\n const inputMaskHasTime = computed(() => /[Hh]/g.test(inputMask.value));\n const inputMaskHasDate = computed(\n () => /[dD]{1,2}|Do|W{1,4}|M{1,4}|YY(?:YY)?/g.test(inputMask.value)\n );\n const inputMaskPatch = computed(() => {\n if (inputMaskHasTime.value && inputMaskHasDate.value) {\n return \"dateTime\";\n }\n if (inputMaskHasDate.value)\n return \"date\";\n if (inputMaskHasTime.value)\n return \"time\";\n return void 0;\n });\n const popover = computed(() => {\n var _a;\n const target = ((_a = popoverRef.value) == null ? void 0 : _a.$el.previousElementSibling) ?? void 0;\n return defaultsDeep_1({}, props.popover, getDefault(\"datePicker.popover\"), {\n target\n });\n });\n const popoverEvents = computed(\n () => getPopoverEventHandlers({\n ...popover.value,\n id: datePickerPopoverId.value\n })\n );\n const inputValue = computed(() => {\n return isRange.value ? {\n start: inputValues.value[0],\n end: inputValues.value[1]\n } : inputValues.value[0];\n });\n const inputEvents = computed(() => {\n const events = [\"start\", \"end\"].map((target) => ({\n input: onInputInput(target),\n change: onInputChange(target),\n keyup: onInputKeyup,\n ...props.popover && popoverEvents.value\n }));\n return isRange.value ? {\n start: events[0],\n end: events[1]\n } : events[0];\n });\n const selectAttribute = computed(() => {\n if (!hasValue(dateValue.value))\n return null;\n const attribute = {\n key: \"select-drag\",\n ...props.selectAttribute,\n dates: dateValue.value,\n pinPage: true\n };\n const { dot, bar, highlight, content } = attribute;\n if (!dot && !bar && !highlight && !content) {\n attribute.highlight = true;\n }\n return attribute;\n });\n const dragAttribute = computed(() => {\n if (!isRange.value || !hasValue(dragValue.value)) {\n return null;\n }\n const attribute = {\n key: \"select-drag\",\n ...props.dragAttribute,\n dates: dragValue.value\n };\n const { dot, bar, highlight, content } = attribute;\n if (!dot && !bar && !highlight && !content) {\n attribute.highlight = {\n startEnd: {\n fillMode: \"outline\"\n }\n };\n }\n return attribute;\n });\n const attributes = computed(() => {\n const attrs = isArray(props.attributes) ? [...props.attributes] : [];\n if (dragAttribute.value) {\n attrs.unshift(dragAttribute.value);\n } else if (selectAttribute.value) {\n attrs.unshift(selectAttribute.value);\n }\n return attrs;\n });\n const rules = computed(() => {\n return normalizeConfig2(\n props.rules === \"auto\" ? getAutoRules() : props.rules ?? {}\n );\n });\n function getAutoRules() {\n const _rules = {\n ms: [0, 999],\n sec: [0, 59],\n min: [0, 59],\n hr: [0, 23]\n };\n const accuracy = isDateMode.value ? 0 : props.timeAccuracy;\n return [0, 1].map((i) => {\n switch (accuracy) {\n case 0:\n return {\n hours: _rules.hr[i],\n minutes: _rules.min[i],\n seconds: _rules.sec[i],\n milliseconds: _rules.ms[i]\n };\n case 1:\n return {\n minutes: _rules.min[i],\n seconds: _rules.sec[i],\n milliseconds: _rules.ms[i]\n };\n case 3:\n return { milliseconds: _rules.ms[i] };\n case 4:\n return {};\n default:\n return { seconds: _rules.sec[i], milliseconds: _rules.ms[i] };\n }\n });\n }\n function normalizeConfig2(config2) {\n if (isArray(config2)) {\n if (config2.length === 1)\n return [config2[0], config2[0]];\n return config2;\n }\n return [config2, config2];\n }\n function normalizeDateConfig(config2) {\n return normalizeConfig2(config2).map(\n (c, i) => ({\n ...c,\n rules: rules.value[i]\n })\n );\n }\n function hasDateValue(value) {\n if (value == null)\n return false;\n if (isNumber_1(value))\n return !isNaN(value);\n if (isDate(value))\n return !isNaN(value.getTime());\n if (isString_1(value))\n return value !== \"\";\n return isDateParts(value);\n }\n function hasRangeValue(value) {\n return isObject(value) && \"start\" in value && \"end\" in value && hasDateValue(value.start ?? null) && hasDateValue(value.end ?? null);\n }\n function hasValue(value) {\n return hasRangeValue(value) || hasDateValue(value);\n }\n function valuesAreEqual(a, b) {\n if (a == null && b == null)\n return true;\n if (a == null || b == null)\n return false;\n const aIsDate = isDate(a);\n const bIsDate = isDate(b);\n if (aIsDate && bIsDate)\n return a.getTime() === b.getTime();\n if (aIsDate || bIsDate)\n return false;\n return valuesAreEqual(a.start, b.start) && valuesAreEqual(a.end, b.end);\n }\n function valueIsDisabled(value) {\n if (!hasValue(value) || !disabledAttribute.value)\n return false;\n return disabledAttribute.value.intersectsRange(locale.value.range(value));\n }\n function normalizeValue(value, config2, patch, targetPriority) {\n if (!hasValue(value))\n return null;\n if (hasRangeValue(value)) {\n const start = locale.value.toDate(value.start, {\n ...config2[0],\n fillDate: valueStart.value ?? void 0,\n patch\n });\n const end = locale.value.toDate(value.end, {\n ...config2[1],\n fillDate: valueEnd.value ?? void 0,\n patch\n });\n return sortRange({ start, end }, targetPriority);\n }\n return locale.value.toDateOrNull(value, {\n ...config2[0],\n fillDate: dateValue.value,\n patch\n });\n }\n function denormalizeValue(value, config2) {\n if (hasRangeValue(value)) {\n return {\n start: locale.value.fromDate(value.start, config2[0]),\n end: locale.value.fromDate(value.end, config2[1])\n };\n }\n if (isRange.value) {\n return null;\n }\n return locale.value.fromDate(value, config2[0]);\n }\n function updateValue(value, opts = {}) {\n clearTimeout(updateTimeout);\n return new Promise((resolve) => {\n const { debounce = 0, ...args } = opts;\n if (debounce > 0) {\n updateTimeout = window.setTimeout(() => {\n resolve(forceUpdateValue(value, args));\n }, debounce);\n } else {\n resolve(forceUpdateValue(value, args));\n }\n });\n }\n function forceUpdateValue(value, {\n config: config2 = modelConfig.value,\n patch = \"dateTime\",\n clearIfEqual = false,\n formatInput: fInput = true,\n hidePopover: hPopover = false,\n dragging = isDragging.value,\n targetPriority,\n moveToValue: mValue = false\n } = {}) {\n const normalizedConfig = normalizeDateConfig(config2);\n let normalizedValue = normalizeValue(\n value,\n normalizedConfig,\n patch,\n targetPriority\n );\n const isDisabled = valueIsDisabled(normalizedValue);\n if (isDisabled) {\n if (dragging)\n return null;\n normalizedValue = dateValue.value;\n hPopover = false;\n } else if (normalizedValue == null && props.isRequired) {\n normalizedValue = dateValue.value;\n } else if (\n // Clear value if same value was passed\n normalizedValue != null && valuesAreEqual(dateValue.value, normalizedValue) && clearIfEqual\n ) {\n normalizedValue = null;\n }\n const valueRef = dragging ? dragValue : dateValue;\n const notify = !valuesAreEqual(valueRef.value, normalizedValue);\n valueRef.value = normalizedValue;\n if (!dragging)\n dragValue.value = null;\n const denormalizedValue = denormalizeValue(\n normalizedValue,\n modelConfig.value\n );\n if (notify) {\n watchValue = false;\n emit(dragging ? \"drag\" : \"update:modelValue\", denormalizedValue);\n nextTick(() => watchValue = true);\n }\n if (hPopover && !dragging)\n hidePopover$1();\n if (fInput)\n formatInput();\n if (mValue) {\n nextTick(() => moveToValue(targetPriority ?? \"start\"));\n }\n return denormalizedValue;\n }\n function formatInput() {\n nextTick(() => {\n const config2 = normalizeDateConfig({\n type: \"string\",\n mask: inputMask.value\n });\n const value = denormalizeValue(\n dragValue.value ?? dateValue.value,\n config2\n );\n if (isRange.value) {\n inputValues.value = [value && value.start, value && value.end];\n } else {\n inputValues.value = [value, \"\"];\n }\n });\n }\n function onInputUpdate(inputValue2, target, opts) {\n inputValues.value.splice(target === \"start\" ? 0 : 1, 1, inputValue2);\n const value = isRange.value ? {\n start: inputValues.value[0],\n end: inputValues.value[1] || inputValues.value[0]\n } : inputValue2;\n const config2 = {\n type: \"string\",\n mask: inputMask.value\n };\n updateValue(value, {\n ...opts,\n config: config2,\n patch: inputMaskPatch.value,\n targetPriority: target,\n moveToValue: true\n });\n }\n function onInputInput(target) {\n return (e) => {\n if (!props.updateOnInput)\n return;\n onInputUpdate(e.currentTarget.value, target, {\n formatInput: false,\n hidePopover: false,\n debounce: props.inputDebounce\n });\n };\n }\n function onInputChange(target) {\n return (e) => {\n onInputUpdate(e.currentTarget.value, target, {\n formatInput: true,\n hidePopover: false\n });\n };\n }\n function onInputKeyup(e) {\n if (e.key !== \"Escape\")\n return;\n updateValue(dateValue.value, {\n formatInput: true,\n hidePopover: true\n });\n }\n function getDateParts2(value) {\n if (isRange.value) {\n return [\n value && value.start ? locale.value.getDateParts(value.start) : null,\n value && value.end ? locale.value.getDateParts(value.end) : null\n ];\n }\n return [value ? locale.value.getDateParts(value) : null];\n }\n function cancelDrag() {\n dragValue.value = null;\n formatInput();\n }\n function onPopoverBeforeShow(el) {\n emit(\"popover-will-show\", el);\n }\n function onPopoverAfterShow(el) {\n emit(\"popover-did-show\", el);\n }\n function onPopoverBeforeHide(el) {\n cancelDrag();\n emit(\"popover-will-hide\", el);\n }\n function onPopoverAfterHide(el) {\n emit(\"popover-did-hide\", el);\n }\n function handleDayClick(day) {\n const opts = {\n patch: \"date\",\n formatInput: true,\n hidePopover: true\n };\n if (isRange.value) {\n const dragging = !isDragging.value;\n if (dragging) {\n dragTrackingValue = { start: day.startDate, end: day.endDate };\n } else if (dragTrackingValue != null) {\n dragTrackingValue.end = day.date;\n }\n updateValue(dragTrackingValue, {\n ...opts,\n dragging\n });\n } else {\n updateValue(day.date, {\n ...opts,\n clearIfEqual: !props.isRequired\n });\n }\n }\n function onDayClick(day, event) {\n handleDayClick(day);\n emit(\"dayclick\", day, event);\n }\n function onDayKeydown(day, event) {\n switch (event.key) {\n case \" \":\n case \"Enter\": {\n handleDayClick(day);\n event.preventDefault();\n break;\n }\n case \"Escape\": {\n hidePopover$1();\n }\n }\n emit(\"daykeydown\", day, event);\n }\n function onDayMouseEnter(day, event) {\n if (!isDragging.value || dragTrackingValue == null)\n return;\n dragTrackingValue.end = day.date;\n updateValue(sortRange(dragTrackingValue), {\n patch: \"date\",\n formatInput: true\n });\n }\n function showPopover$1(opts = {}) {\n showPopover({\n ...popover.value,\n ...opts,\n isInteractive: true,\n id: datePickerPopoverId.value\n });\n }\n function hidePopover$1(opts = {}) {\n hidePopover({\n hideDelay: 10,\n force: true,\n ...popover.value,\n ...opts,\n id: datePickerPopoverId.value\n });\n }\n function togglePopover$1(opts) {\n togglePopover({\n ...popover.value,\n ...opts,\n isInteractive: true,\n id: datePickerPopoverId.value\n });\n }\n function sortRange(range, priority) {\n const { start, end } = range;\n if (start > end) {\n switch (priority) {\n case \"start\":\n return { start, end: start };\n case \"end\":\n return { start: end, end };\n default:\n return { start: end, end: start };\n }\n }\n return { start, end };\n }\n async function move(target, opts = {}) {\n if (calendarRef.value == null)\n return false;\n return calendarRef.value.move(target, opts);\n }\n async function moveBy(pages, opts = {}) {\n if (calendarRef.value == null)\n return false;\n return calendarRef.value.moveBy(pages, opts);\n }\n async function moveToValue(target, opts = {}) {\n const dValue = dateValue.value;\n if (calendarRef.value == null || !hasValue(dValue))\n return false;\n const start = target !== \"end\";\n const position = start ? 1 : -1;\n const date = hasRangeValue(dValue) ? start ? dValue.start : dValue.end : dValue;\n const page = getPageAddressForDate(date, \"monthly\", locale.value);\n return calendarRef.value.move(page, { position, ...opts });\n }\n watch(\n () => props.isRange,\n (val) => {\n if (val) {\n console.warn(\n \"The `is-range` prop will be deprecated in future releases. Please use the `range` modifier.\"\n );\n }\n },\n { immediate: true }\n );\n watch(\n () => isRange.value,\n () => {\n forceUpdateValue(null, { formatInput: true });\n }\n );\n watch(\n () => inputMask.value,\n () => formatInput()\n );\n watch(\n () => props.modelValue,\n (val) => {\n if (!watchValue)\n return;\n forceUpdateValue(val, {\n formatInput: true,\n hidePopover: false\n });\n }\n );\n watch(\n () => rules.value,\n () => {\n if (isObject(props.rules)) {\n forceUpdateValue(props.modelValue, {\n formatInput: true,\n hidePopover: false\n });\n }\n }\n );\n watch(\n () => props.timezone,\n () => {\n forceUpdateValue(dateValue.value, { formatInput: true });\n }\n );\n const config = normalizeConfig2(modelConfig.value);\n dateValue.value = normalizeValue(\n props.modelValue ?? null,\n config,\n \"dateTime\"\n );\n onMounted(() => {\n forceUpdateValue(props.modelValue, {\n formatInput: true,\n hidePopover: false\n });\n });\n nextTick(() => showCalendar.value = true);\n const context = {\n ...baseCtx,\n showCalendar,\n datePickerPopoverId,\n popoverRef,\n popoverEvents,\n calendarRef,\n isRange,\n isTimeMode,\n isDateTimeMode,\n is24hr: toRef(props, \"is24hr\"),\n hideTimeHeader: toRef(props, \"hideTimeHeader\"),\n timeAccuracy: toRef(props, \"timeAccuracy\"),\n isDragging,\n inputValue,\n inputEvents,\n dateParts,\n attributes,\n rules,\n move,\n moveBy,\n moveToValue,\n updateValue,\n showPopover: showPopover$1,\n hidePopover: hidePopover$1,\n togglePopover: togglePopover$1,\n onDayClick,\n onDayKeydown,\n onDayMouseEnter,\n onPopoverBeforeShow,\n onPopoverAfterShow,\n onPopoverBeforeHide,\n onPopoverAfterHide\n };\n provide(contextKey, context);\n return context;\n}\nfunction useDatePicker() {\n const context = inject(contextKey);\n if (context)\n return context;\n throw new Error(\n \"DatePicker context missing. Please verify this component is nested within a valid context provider.\"\n );\n}\nconst _amOptions = [\n { value: 0, label: \"12\" },\n { value: 1, label: \"1\" },\n { value: 2, label: \"2\" },\n { value: 3, label: \"3\" },\n { value: 4, label: \"4\" },\n { value: 5, label: \"5\" },\n { value: 6, label: \"6\" },\n { value: 7, label: \"7\" },\n { value: 8, label: \"8\" },\n { value: 9, label: \"9\" },\n { value: 10, label: \"10\" },\n { value: 11, label: \"11\" }\n];\nconst _pmOptions = [\n { value: 12, label: \"12\" },\n { value: 13, label: \"1\" },\n { value: 14, label: \"2\" },\n { value: 15, label: \"3\" },\n { value: 16, label: \"4\" },\n { value: 17, label: \"5\" },\n { value: 18, label: \"6\" },\n { value: 19, label: \"7\" },\n { value: 20, label: \"8\" },\n { value: 21, label: \"9\" },\n { value: 22, label: \"10\" },\n { value: 23, label: \"11\" }\n];\nfunction createTimePicker(props) {\n const ctx = useDatePicker();\n const {\n locale,\n isRange,\n isTimeMode,\n dateParts,\n rules,\n is24hr,\n hideTimeHeader,\n timeAccuracy,\n updateValue: updateDpValue\n } = ctx;\n function updateParts(newParts) {\n newParts = Object.assign(parts.value, newParts);\n let newValue = null;\n if (isRange.value) {\n const start = isStart.value ? newParts : dateParts.value[0];\n const end = isStart.value ? dateParts.value[1] : newParts;\n newValue = { start, end };\n } else {\n newValue = newParts;\n }\n updateDpValue(newValue, {\n patch: \"time\",\n targetPriority: isStart.value ? \"start\" : \"end\",\n moveToValue: true\n });\n }\n const isStart = computed(() => props.position === 0);\n const parts = computed(\n () => dateParts.value[props.position] || { isValid: false }\n );\n const partsValid = computed(() => isDateParts(parts.value));\n const isValid = computed(() => !!parts.value.isValid);\n const showHeader = computed(() => {\n return !hideTimeHeader.value && isValid.value;\n });\n const date = computed(() => {\n if (!partsValid.value)\n return null;\n let date2 = locale.value.toDate(parts.value);\n if (parts.value.hours === 24) {\n date2 = new Date(date2.getTime() - 1);\n }\n return date2;\n });\n const hours2 = computed({\n get() {\n return parts.value.hours;\n },\n set(val) {\n updateParts({ hours: val });\n }\n });\n const minutes = computed({\n get() {\n return parts.value.minutes;\n },\n set(val) {\n updateParts({ minutes: val });\n }\n });\n const seconds = computed({\n get() {\n return parts.value.seconds;\n },\n set(val) {\n updateParts({ seconds: val });\n }\n });\n const milliseconds = computed({\n get() {\n return parts.value.milliseconds;\n },\n set(val) {\n updateParts({ milliseconds: val });\n }\n });\n const isAM = computed({\n get() {\n return parts.value.hours < 12;\n },\n set(value) {\n value = String(value).toLowerCase() == \"true\";\n let hValue = hours2.value;\n if (value && hValue >= 12) {\n hValue -= 12;\n } else if (!value && hValue < 12) {\n hValue += 12;\n }\n updateParts({ hours: hValue });\n }\n });\n const options = computed(\n () => getDatePartsOptions(parts.value, rules.value[props.position])\n );\n const amHourOptions = computed(() => {\n return _amOptions.filter(\n (opt) => options.value.hours.some((ho) => ho.value === opt.value)\n );\n });\n const pmHourOptions = computed(() => {\n return _pmOptions.filter(\n (opt) => options.value.hours.some((ho) => ho.value === opt.value)\n );\n });\n const hourOptions = computed(() => {\n if (is24hr.value)\n return options.value.hours;\n if (isAM.value)\n return amHourOptions.value;\n return pmHourOptions.value;\n });\n const isAMOptions = computed(() => {\n const result = [];\n if (arrayHasItems(amHourOptions.value))\n result.push({ value: true, label: \"AM\" });\n if (arrayHasItems(pmHourOptions.value))\n result.push({ value: false, label: \"PM\" });\n return result;\n });\n return {\n ...ctx,\n showHeader,\n timeAccuracy,\n parts,\n isValid,\n date,\n hours: hours2,\n minutes,\n seconds,\n milliseconds,\n options,\n hourOptions,\n isAM,\n isAMOptions,\n is24hr\n };\n}\nconst _hoisted_1$1 = [\"value\"];\nconst _hoisted_2$1 = [\"value\", \"disabled\"];\nconst _hoisted_3$1 = {\n key: 1,\n class: \"vc-base-sizer\",\n \"aria-hidden\": \"true\"\n};\nconst __default__$1 = {\n inheritAttrs: false\n};\nconst _sfc_main$4 = /* @__PURE__ */ defineComponent({\n ...__default__$1,\n __name: \"BaseSelect\",\n props: {\n options: null,\n modelValue: null,\n alignRight: { type: Boolean },\n alignLeft: { type: Boolean },\n showIcon: { type: Boolean },\n fitContent: { type: Boolean }\n },\n emits: [\"update:modelValue\"],\n setup(__props) {\n const props = __props;\n const selectedLabel = computed(() => {\n const option = props.options.find((opt) => opt.value === props.modelValue);\n return option == null ? void 0 : option.label;\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"vc-base-select\", {\n \"vc-fit-content\": __props.fitContent,\n \"vc-has-icon\": __props.showIcon\n }])\n }, [\n createElementVNode(\"select\", mergeProps(_ctx.$attrs, {\n value: __props.modelValue,\n class: [\"vc-focus\", {\n \"vc-align-right\": __props.alignRight,\n \"vc-align-left\": __props.alignLeft\n }],\n onChange: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"update:modelValue\", $event.target.value))\n }), [\n (openBlock(true), createElementBlock(Fragment, null, renderList(__props.options, (option) => {\n return openBlock(), createElementBlock(\"option\", {\n key: option.value,\n value: option.value,\n disabled: option.disabled\n }, toDisplayString(option.label), 9, _hoisted_2$1);\n }), 128))\n ], 16, _hoisted_1$1),\n __props.showIcon ? (openBlock(), createBlock(_sfc_main$c, {\n key: 0,\n name: \"ChevronDown\",\n size: \"18\"\n })) : createCommentVNode(\"\", true),\n __props.fitContent ? (openBlock(), createElementBlock(\"div\", _hoisted_3$1, toDisplayString(unref(selectedLabel)), 1)) : createCommentVNode(\"\", true)\n ], 2);\n };\n }\n});\nconst BaseSelect_vue_vue_type_style_index_0_lang = \"\";\nconst _hoisted_1 = {\n key: 0,\n class: \"vc-time-header\"\n};\nconst _hoisted_2 = { class: \"vc-time-weekday\" };\nconst _hoisted_3 = { class: \"vc-time-month\" };\nconst _hoisted_4 = { class: \"vc-time-day\" };\nconst _hoisted_5 = { class: \"vc-time-year\" };\nconst _hoisted_6 = { class: \"vc-time-select-group\" };\nconst _hoisted_7 = /* @__PURE__ */ createElementVNode(\"span\", { class: \"vc-time-colon\" }, \":\", -1);\nconst _hoisted_8 = /* @__PURE__ */ createElementVNode(\"span\", { class: \"vc-time-colon\" }, \":\", -1);\nconst _hoisted_9 = /* @__PURE__ */ createElementVNode(\"span\", { class: \"vc-time-decimal\" }, \".\", -1);\nconst _sfc_main$3 = /* @__PURE__ */ defineComponent({\n __name: \"TimePicker\",\n props: {\n position: null\n },\n setup(__props, { expose }) {\n const props = __props;\n const timePicker = createTimePicker(props);\n expose(timePicker);\n const {\n locale,\n isValid,\n date,\n hours: hours2,\n minutes,\n seconds,\n milliseconds,\n options,\n hourOptions,\n isTimeMode,\n isAM,\n isAMOptions,\n is24hr,\n showHeader,\n timeAccuracy\n } = timePicker;\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"vc-time-picker\", [{ \"vc-invalid\": !unref(isValid), \"vc-attached\": !unref(isTimeMode) }]])\n }, [\n createVNode(_sfc_main$i, { name: \"time-header\" }, {\n default: withCtx(() => [\n unref(showHeader) && unref(date) ? (openBlock(), createElementBlock(\"div\", _hoisted_1, [\n createElementVNode(\"span\", _hoisted_2, toDisplayString(unref(locale).formatDate(unref(date), \"WWW\")), 1),\n createElementVNode(\"span\", _hoisted_3, toDisplayString(unref(locale).formatDate(unref(date), \"MMM\")), 1),\n createElementVNode(\"span\", _hoisted_4, toDisplayString(unref(locale).formatDate(unref(date), \"D\")), 1),\n createElementVNode(\"span\", _hoisted_5, toDisplayString(unref(locale).formatDate(unref(date), \"YYYY\")), 1)\n ])) : createCommentVNode(\"\", true)\n ]),\n _: 1\n }),\n createElementVNode(\"div\", _hoisted_6, [\n createVNode(_sfc_main$c, {\n name: \"Clock\",\n size: \"17\"\n }),\n createVNode(_sfc_main$4, {\n modelValue: unref(hours2),\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => isRef(hours2) ? hours2.value = $event : null),\n modelModifiers: { number: true },\n options: unref(hourOptions),\n class: \"vc-time-select-hours\",\n \"align-right\": \"\"\n }, null, 8, [\"modelValue\", \"options\"]),\n unref(timeAccuracy) > 1 ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [\n _hoisted_7,\n createVNode(_sfc_main$4, {\n modelValue: unref(minutes),\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event) => isRef(minutes) ? minutes.value = $event : null),\n modelModifiers: { number: true },\n options: unref(options).minutes,\n class: \"vc-time-select-minutes\",\n \"align-left\": unref(timeAccuracy) === 2\n }, null, 8, [\"modelValue\", \"options\", \"align-left\"])\n ], 64)) : createCommentVNode(\"\", true),\n unref(timeAccuracy) > 2 ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [\n _hoisted_8,\n createVNode(_sfc_main$4, {\n modelValue: unref(seconds),\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event) => isRef(seconds) ? seconds.value = $event : null),\n modelModifiers: { number: true },\n options: unref(options).seconds,\n class: \"vc-time-select-seconds\",\n \"align-left\": unref(timeAccuracy) === 3\n }, null, 8, [\"modelValue\", \"options\", \"align-left\"])\n ], 64)) : createCommentVNode(\"\", true),\n unref(timeAccuracy) > 3 ? (openBlock(), createElementBlock(Fragment, { key: 2 }, [\n _hoisted_9,\n createVNode(_sfc_main$4, {\n modelValue: unref(milliseconds),\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event) => isRef(milliseconds) ? milliseconds.value = $event : null),\n modelModifiers: { number: true },\n options: unref(options).milliseconds,\n class: \"vc-time-select-milliseconds\",\n \"align-left\": \"\"\n }, null, 8, [\"modelValue\", \"options\"])\n ], 64)) : createCommentVNode(\"\", true),\n !unref(is24hr) ? (openBlock(), createBlock(_sfc_main$4, {\n key: 3,\n modelValue: unref(isAM),\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event) => isRef(isAM) ? isAM.value = $event : null),\n options: unref(isAMOptions)\n }, null, 8, [\"modelValue\", \"options\"])) : createCommentVNode(\"\", true)\n ])\n ], 2);\n };\n }\n});\nconst TimePicker_vue_vue_type_style_index_0_lang = \"\";\nconst _sfc_main$2 = /* @__PURE__ */ defineComponent({\n __name: \"DatePickerBase\",\n setup(__props) {\n const {\n attributes,\n calendarRef,\n color,\n displayMode,\n isDateTimeMode,\n isTimeMode,\n isRange,\n onDayClick,\n onDayMouseEnter,\n onDayKeydown\n } = useDatePicker();\n const positions = isRange.value ? [0, 1] : [0];\n return (_ctx, _cache) => {\n return unref(isTimeMode) ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass(`vc-container vc-bordered vc-${unref(color)} vc-${unref(displayMode)}`)\n }, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(unref(positions), (position) => {\n return openBlock(), createBlock(_sfc_main$3, {\n key: position,\n position\n }, null, 8, [\"position\"]);\n }), 128))\n ], 2)) : (openBlock(), createBlock(Calendar, {\n key: 1,\n attributes: unref(attributes),\n ref_key: \"calendarRef\",\n ref: calendarRef,\n onDayclick: unref(onDayClick),\n onDaymouseenter: unref(onDayMouseEnter),\n onDaykeydown: unref(onDayKeydown)\n }, {\n footer: withCtx(() => [\n unref(isDateTimeMode) ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(unref(positions), (position) => {\n return openBlock(), createBlock(_sfc_main$3, {\n key: position,\n position\n }, null, 8, [\"position\"]);\n }), 128)) : createCommentVNode(\"\", true),\n createVNode(_sfc_main$i, { name: \"dp-footer\" })\n ]),\n _: 1\n }, 8, [\"attributes\", \"onDayclick\", \"onDaymouseenter\", \"onDaykeydown\"]));\n };\n }\n});\nconst __default__ = {\n inheritAttrs: false\n};\nconst _sfc_main$1 = /* @__PURE__ */ defineComponent({\n ...__default__,\n __name: \"DatePickerPopover\",\n setup(__props) {\n const {\n datePickerPopoverId,\n color,\n displayMode,\n popoverRef,\n onPopoverBeforeShow,\n onPopoverAfterShow,\n onPopoverBeforeHide,\n onPopoverAfterHide\n } = useDatePicker();\n return (_ctx, _cache) => {\n return openBlock(), createBlock(Popover, {\n id: unref(datePickerPopoverId),\n placement: \"bottom-start\",\n class: normalizeClass(`vc-date-picker-content vc-${unref(color)} vc-${unref(displayMode)}`),\n ref_key: \"popoverRef\",\n ref: popoverRef,\n onBeforeShow: unref(onPopoverBeforeShow),\n onAfterShow: unref(onPopoverAfterShow),\n onBeforeHide: unref(onPopoverBeforeHide),\n onAfterHide: unref(onPopoverAfterHide)\n }, {\n default: withCtx(() => [\n createVNode(_sfc_main$2, normalizeProps(guardReactiveProps(_ctx.$attrs)), null, 16)\n ]),\n _: 1\n }, 8, [\"id\", \"class\", \"onBeforeShow\", \"onAfterShow\", \"onBeforeHide\", \"onAfterHide\"]);\n };\n }\n});\nconst _sfc_main = defineComponent({\n inheritAttrs: false,\n emits,\n props: propsDef,\n components: { DatePickerBase: _sfc_main$2, DatePickerPopover: _sfc_main$1 },\n setup(props, ctx) {\n const datePicker = createDatePicker(props, ctx);\n const slotCtx = reactive(omit(datePicker, \"calendarRef\", \"popoverRef\"));\n return { ...datePicker, slotCtx };\n }\n});\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_DatePickerPopover = resolveComponent(\"DatePickerPopover\");\n const _component_DatePickerBase = resolveComponent(\"DatePickerBase\");\n return _ctx.$slots.default ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [\n renderSlot(_ctx.$slots, \"default\", normalizeProps(guardReactiveProps(_ctx.slotCtx))),\n createVNode(_component_DatePickerPopover, normalizeProps(guardReactiveProps(_ctx.$attrs)), null, 16)\n ], 64)) : (openBlock(), createBlock(_component_DatePickerBase, normalizeProps(mergeProps({ key: 1 }, _ctx.$attrs)), null, 16));\n}\nconst DatePicker = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\nconst components = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n Calendar,\n DatePicker,\n Popover,\n PopoverRow: _sfc_main$j\n}, Symbol.toStringTag, { value: \"Module\" }));\nconst index$1 = \"\";\nconst install = (app, defaults2 = {}) => {\n app.use(setupDefaults, defaults2);\n const prefix = app.config.globalProperties.$VCalendar.componentPrefix;\n for (const componentKey in components) {\n const component = components[componentKey];\n app.component(`${prefix}${componentKey}`, component);\n }\n};\nconst index = { install };\nexport {\n Calendar,\n DatePicker,\n Popover,\n _sfc_main$j as PopoverRow,\n createCalendar,\n createDatePicker,\n index as default,\n popoverDirective,\n setupDefaults as setupCalendar,\n useCalendar,\n useDatePicker\n};\n//# sourceMappingURL=index.js.map\n","<script lang=\"ts\">\n export * from './DatePicker.types';\n</script>\n\n<script setup lang=\"ts\">\n // TODO: fix the wide array of types we have representing a date in this and related files\n\n /**\n * As of v3.0.0-alpha.7, all installation methods require manual import of component styles.\n * This is due to Vite build restrictions in libary mode.\n * @see: https://vcalendar.io/getting-started/installation.html#use-plugin\n */\n import 'v-calendar/dist/style.css';\n import { endOfDay, isAfter, isBefore, isMatch as isFormatMatch, isValid, parse, startOfDay } from 'date-fns';\n import merge from 'lodash-es/merge';\n import unionBy from 'lodash-es/unionBy';\n import uniqueId from 'lodash-es/uniqueId';\n import { DatePicker as VCalendarDatePicker } from 'v-calendar';\n import type { CalendarDay } from 'v-calendar/dist/types/src/utils/page.js';\n import { computed, ref, useSlots, useTemplateRef, watch } from 'vue';\n\n import { DATE_FORMATS } from '../../constants';\n import { t } from '../../locale';\n import createValidDate from '../../utils/createValidDate';\n import formatDateTime from '../../utils/formatDateTime';\n import normalizeDate from '../../utils/normalizeDate';\n import Button from '../Button/Button.vue';\n import Icon from '../Icon/Icon.vue';\n import Input from '../Input/Input.vue';\n import { DatePickerPopoverOptions, DatePickerProps } from './DatePicker.types';\n\n interface OnInputUpdateParams {\n /**\n * Value from the input field of the datepicker\n */\n dateString: string | number | null;\n\n /**\n * Manage update:model-value emission, as having @change in the input slot triggers double model updates.\n */\n shouldEmit?: boolean;\n\n /**\n * The v-calendar callback to synchronize the input field and internal value\n */\n inputChangeCb?: (e: { currentTarget: { value: null | string } }) => void;\n }\n\n const props = withDefaults(defineProps<DatePickerProps>(), {\n availableDates: undefined,\n addBottomSpace: false,\n disabled: false,\n disabledDates: undefined,\n errorText: '',\n format: DATE_FORMATS.YYYY_MM_DD_DATE_FNS,\n hideClearButton: false,\n hintText: '',\n id: '',\n isInputReadonly: false,\n label: '',\n maxDate: undefined,\n maxPage: undefined,\n minDate: undefined,\n minPage: undefined,\n mode: 'date',\n modelValue: '',\n name: '',\n placeholder: undefined,\n enableTeleport: false,\n timeZone: 'UTC',\n });\n\n const slots = useSlots();\n\n const emit = defineEmits<{\n (e: 'update:model-value', date: string | number | Date): void;\n (e: 'blur'): void;\n }>();\n\n /**\n * @see https://vcalendar.io/attributes.html\n */\n const attributes = ref([\n {\n key: 'today',\n content: 'blue',\n dates: new Date(),\n },\n ]);\n\n /**\n * @see https://vcalendar.io/datepicker.html#date\n */\n const dateValue = ref<Date | null | undefined>(createValidDate(props.modelValue));\n const masks = {\n input: props.format?.toUpperCase(),\n weekdays: 'W',\n inputDateTime: ['YYYY-MM-DD h:mm A'],\n };\n\n const isTimeInput = computed(() => props.mode === 'time');\n\n const dateFormat = computed(() => {\n if (isTimeInput.value) {\n return DATE_FORMATS.TIME_DATE_FNS;\n }\n if (props.mode === 'dateTime') {\n return DATE_FORMATS.YYYY_MM_DD_TIME_DATE_FNS;\n }\n return props.format || DATE_FORMATS.YYYY_MM_DD_DATE_FNS;\n });\n\n /**\n * For aria-describedby\n */\n const formatDescriptionId = uniqueId('format-description-');\n\n const formattedDate = computed(() => {\n if (!dateValue.value || (!isValid(normalizeDate(dateValue.value)) && !isTimeInput.value)) {\n return '';\n }\n\n return formatDateTime(dateValue.value, { format: dateFormat.value, timeZone: props.timeZone });\n });\n\n const mergedPopoverOptions = computed(() => {\n if (props.enableTeleport) {\n /* This object is used to configure the popper.js inside of the v-calendar.\n * Documentation can be found here https://popper.js.org/docs/v2/modifiers/\n */\n const teleportModifiers = [\n // Keep event listeners enabled so popper repositions on scroll/resize\n {\n name: 'eventListeners',\n options: { scroll: true, resize: true },\n },\n ];\n\n const userModifiers = props.popoverOptions?.modifiers;\n /**\n * Union the teleport modifiers with the user modifiers by the name of the modifier to avoid duplicating the modifiers.\n * Teleport modifiers take precedence over user modifiers when there are conflicts.\n * @example\n * // User modifiers\n * [\n * { name: 'offset', options: { offset: [0, 10] } },\n * { name: 'eventListeners', options: { scroll: false } }\n * ]\n *\n * // Teleport modifiers\n * [\n * { name: 'eventListeners', options: { scroll: true } }\n * ]\n *\n * // Result: teleport's eventListeners wins, user's offset is kept\n * [\n * { name: 'eventListeners', options: { scroll: true } },\n * { name: 'offset', options: { offset: [0, 10] } }\n * ]\n * @see https://lodash.com/docs/4.17.15#unionBy\n */\n const mergedModifiers = !userModifiers?.length\n ? teleportModifiers\n : unionBy(teleportModifiers, userModifiers, 'name');\n\n const teleportPopoverOptions: DatePickerPopoverOptions = {\n positionFixed: true,\n modifiers: mergedModifiers,\n };\n\n // remove modifiers from the popover options to avoid duplicating the modifiers in the merge function below\n const { modifiers: _, ...userOptionsWithoutModifiers } = props.popoverOptions || {};\n\n return merge({ visibility: 'focus' }, userOptionsWithoutModifiers, teleportPopoverOptions);\n }\n return merge({ visibility: 'focus' }, props.popoverOptions);\n });\n\n const calendarRef = useTemplateRef('calendar');\n\n const placeholderText = computed(() => props.placeholder || props.format?.toUpperCase());\n\n function moveToToday() {\n const today = new Date();\n\n calendarRef.value?.calendarRef?.focusDate(today);\n }\n\n function onDatePickerUpdate(value: Date | null, shouldEmit = false) {\n if (props.maxDate && value && isAfter(value, endOfDay(normalizeDate(props.maxDate)))) {\n return;\n }\n\n if (props.minDate && value && isBefore(value, startOfDay(normalizeDate(props.minDate)))) {\n return;\n }\n\n dateValue.value = value;\n\n if (shouldEmit) {\n emit('update:model-value', formattedDate.value);\n }\n }\n\n /**\n * Change event handler for the input field\n */\n function onInputUpdate({ dateString, shouldEmit = false, inputChangeCb }: OnInputUpdateParams) {\n const format = dateFormat.value;\n\n if (typeof dateString === 'number') {\n throw new Error('Date provided was type \"number\". Use \"string\" or \"null\"');\n }\n\n if (!dateString) {\n onDatePickerUpdate(null);\n inputChangeCb?.({ currentTarget: { value: null } });\n return;\n }\n\n if (!isFormatMatch(dateString, format)) {\n dateValue.value = null;\n inputChangeCb?.({ currentTarget: { value: null } });\n emit('update:model-value', formattedDate.value);\n return;\n }\n\n if (props.mode === 'date') {\n const normalizedDate = normalizeDate(dateString);\n\n if (!isValid(normalizedDate)) {\n return;\n }\n\n onDatePickerUpdate(normalizedDate, shouldEmit);\n } else {\n onDatePickerUpdate(parse(dateString, format, new Date()), shouldEmit);\n }\n }\n\n watch(\n () => props.modelValue,\n () => {\n onInputUpdate({ dateString: props.modelValue });\n },\n );\n\n function onDayClick(_: CalendarDay, event: MouseEvent) {\n // Hack to avoid a Vue 3.5+ reactivity issue when clicking a day in the VCalendar component\n // Important: this reduces 90% of the related errors on Sentry, but not all of them. Some situations like selecting a day over and over, may still throw the error.\n // See https://github.com/nathanreyes/v-calendar/issues/1498#issuecomment-2376294504\n (event.target as HTMLElement)?.blur();\n }\n</script>\n\n<template>\n <div class=\"relative\" :class=\"$style['vc-overrides']\">\n <VCalendarDatePicker\n ref=\"calendar\"\n trim-weeks\n :attributes=\"attributes\"\n :available-dates=\"availableDates\"\n :disabled-dates=\"disabledDates\"\n :masks=\"masks\"\n :max-date=\"maxDate\"\n :min-date=\"minDate\"\n :max-page=\"maxPage\"\n :min-page=\"minPage\"\n :mode=\"mode\"\n :model-value=\"dateValue\"\n :popover=\"mergedPopoverOptions\"\n :hide-time-header=\"isTimeInput\"\n @dayclick=\"onDayClick\"\n @update:model-value=\"(value) => onDatePickerUpdate(value, true)\"\n >\n <template #header-left-button>\n <Icon class=\"icon rotate-180\" name=\"chevron-right\" />\n </template>\n <template #header-right-button>\n <Icon class=\"icon\" name=\"chevron-right\" />\n </template>\n\n <template #default=\"{ togglePopover, inputValue, inputEvents: { keyup, focusin, focusout, change } }\">\n <span :id=\"formatDescriptionId\" class=\"sr-only\">\n {{ t('ll.datePicker.dateFormat') }}: {{ format?.toUpperCase() }}\n </span>\n <Input\n :id=\"props.id\"\n :aria-describedby=\"formatDescriptionId\"\n :add-bottom-space=\"props.addBottomSpace\"\n :class=\"$style.input\"\n :disabled=\"disabled\"\n :error-text=\"props.errorText\"\n :hint-text=\"props.hintText\"\n :label=\"label\"\n :model-value=\"inputValue\"\n :name=\"name\"\n :placeholder=\"placeholderText\"\n :is-read-only=\"isInputReadonly\"\n v-on=\"{ keyup, focusin, focusout }\"\n @blur=\"emit('blur')\"\n @change=\"(dateString) => onInputUpdate({ dateString, inputChangeCb: change })\"\n >\n <template #append>\n <Button\n v-if=\"!isTimeInput && dateValue && !hideClearButton && !disabled\"\n icon\n :class=\"$style['close-button']\"\n @click.stop=\"dateValue = undefined\"\n >\n <Icon name=\"close\" />\n </Button>\n <Icon\n v-else\n :class=\"[$style['calendar-icon'], { 'cursor-pointer': !disabled }]\"\n :name=\"isTimeInput ? 'recent' : 'calendar'\"\n @click=\"!disabled && togglePopover()\"\n />\n </template>\n <template v-if=\"slots.hint\" #hint>\n <slot name=\"hint\"></slot>\n </template>\n </Input>\n </template>\n\n <template #footer>\n <div class=\"pt-1.5 text-right\">\n <Button inline class=\"mx-3 my-1.5\" :class=\"[$style['button-today']]\" @click=\"moveToToday\">\n {{ t('ll.datePicker.today') }}\n </Button>\n </div>\n </template>\n </VCalendarDatePicker>\n </div>\n</template>\n\n<style module>\n @reference \"../../../styles/main.css\";\n\n /* These styles are intentionally excluded from the 'utilities' layer in order to override v-calendar's styles, which do not use CSS layers */\n .vc-overrides {\n :global(.vc-pane-container) {\n padding: --spacing(3);\n }\n\n :global(.vc-pane-header-wrapper) {\n width: calc(100% - --spacing(3) * 2);\n }\n\n :global(.vc-popover-caret) {\n display: none !important;\n }\n\n :global(.vc-popover-content) {\n border-radius: var(--radius-sm);\n border-color: var(--color-blue-500);\n margin-top: --spacing(1.5);\n }\n\n :global(.vc-header) {\n opacity: 1;\n background-color: var(--color-white);\n border-top-left-radius: var(--radius-sm);\n border-top-right-radius: var(--radius-sm);\n height: 50px;\n\n :global(.vc-title-wrapper) {\n z-index: 1;\n\n :global(.vc-title) {\n background-color: var(--color-white);\n color: var(--color-ice-700);\n font-family: Sofia, sans-serif;\n font-size: var(--text-base);\n font-weight: var(--font-weight-medium);\n line-height: var(--line-height-base);\n padding-bottom: 0.5rem; /* 8px */\n padding-top: 0;\n }\n }\n }\n\n :global(.vc-arrows-container) {\n padding: --spacing(3) 0 0 0;\n width: calc(100% - (--spacing(3) * 2));\n\n :global(.vc-arrow) {\n color: var(--color-ice-700);\n height: 48px;\n margin: 0.15rem;\n width: 48px;\n }\n }\n\n :global(.vc-weeks) {\n font-family: Sofia, sans-serif;\n gap: --spacing(1.5) 0;\n padding: 0;\n }\n\n :global(.vc-weekday) {\n background-color: var(--color-white);\n color: var(--color-ice-700);\n font-size: var(--text-sm);\n font-weight: 200;\n height: 48px;\n margin-bottom: calc(--spacing(1.5) * -1);\n padding: 18px 0; /* to vertically center the text */\n text-transform: capitalize;\n width: 48px;\n }\n\n :global(.vc-day) {\n color: var(--color-ice-900);\n height: 48px;\n width: 48px;\n\n &:global(.is-not-in-month) * {\n opacity: 1;\n color: var(--color-ice-500);\n }\n }\n\n :global(.vc-day-content) {\n border-radius: var(--radius-sm);\n font-size: var(--text-sm);\n font-weight: var(--font-weight-medium) !important;\n height: 100%;\n width: 100%;\n\n &:focus {\n outline: #0072f026 solid 3px;\n }\n }\n\n :global(.vc-content) {\n color: var(--color-blue-500) !important;\n }\n\n :global(.vc-content.vc-highlight-content-solid) {\n color: var(--color-white) !important;\n }\n\n :global(.vc-highlight) {\n background-color: var(--color-blue-500) !important;\n border-radius: var(--radius-sm) !important;\n height: 100%;\n width: 100%;\n }\n\n :global(.vc-time-select-group select) {\n border: 0;\n }\n }\n\n .close-button {\n padding: 0;\n height: --spacing(6);\n width: --spacing(6);\n }\n\n .button-today {\n border: none;\n box-shadow: none;\n color: var(--color-blue-500);\n font-family: Sofia, sans-serif;\n font-size: var(--text-sm);\n font-weight: var(--font-weight-normal);\n line-height: var(--line-height-body);\n text-decoration: none;\n\n &:focus {\n outline: #0072f026 solid 3px;\n }\n\n &:focus,\n &:hover {\n text-decoration: none;\n }\n }\n\n /* Override default read-only styling */\n .input input:read-only:not(:disabled) {\n border-color: var(--color-ice-500);\n background-color: var(--color-white) !important;\n cursor: default;\n pointer-events: initial;\n padding: 0 --spacing(3);\n }\n\n .calendar-icon {\n bottom: 0.3125rem; /* 5px */\n right: 0.3125rem; /* 5px */\n }\n</style>\n"],"names":["addDays","date","amount","_date","toDate","constructFrom","endOfDay","getDefaultOptions","getInternalDefaultOptions","getISODay","day","isAfter","dateToCompare","_dateToCompare","isBefore","transpose","fromDate","constructor","TIMEZONE_UNIT_PRIORITY","Setter","__publicField","_utcDate","_options","ValueSetter","value","validateValue","setValue","priority","subPriority","options","flags","DateToSystemTimezoneSetter","Parser","dateString","token","match","result","_value","EraParser","numericPatterns","timezonePatterns","mapValue","parseFnResult","mapFn","parseNumericPattern","pattern","matchResult","parseTimezonePattern","sign","hours","minutes","seconds","millisecondsInHour","millisecondsInMinute","millisecondsInSecond","parseAnyDigitsSigned","parseNDigits","n","parseNDigitsSigned","dayPeriodEnumToHours","dayPeriod","normalizeTwoDigitYear","twoDigitYear","currentYear","isCommonEra","absCurrentYear","rangeEnd","rangeEndCentury","isPreviousCentury","isLeapYearIndex","year","YearParser","valueCallback","normalizedTwoDigitYear","LocalWeekYearParser","getWeekYear","startOfWeek","ISOWeekYearParser","_flags","firstWeekOfYear","startOfISOWeek","ExtendedYearParser","QuarterParser","StandAloneQuarterParser","MonthParser","StandAloneMonthParser","setWeek","week","diff","getWeek","LocalWeekParser","setISOWeek","getISOWeek","ISOWeekParser","DAYS_IN_MONTH","DAYS_IN_MONTH_LEAP_YEAR","DateParser","isLeapYear","month","DayOfYearParser","setDay","defaultOptions","weekStartsOn","_b","_a","_d","_c","currentDay","dayIndex","delta","DayParser","LocalDayParser","wholeWeekDays","StandAloneLocalDayParser","setISODay","ISODayParser","AMPMParser","AMPMMidnightParser","DayPeriodParser","Hour1to12Parser","isPM","Hour0to23Parser","Hour0To11Parser","Hour1To24Parser","MinuteParser","SecondParser","FractionOfSecondParser","ISOTimezoneWithZParser","getTimezoneOffsetInMilliseconds","ISOTimezoneParser","TimestampSecondsParser","TimestampMillisecondsParser","parsers","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","notWhitespaceRegExp","unescapedLatinCharacterRegExp","parse","dateStr","formatStr","referenceDate","locale","defaultLocale","firstWeekContainsDate","subFnOptions","setters","tokens","substring","firstCharacter","longFormatters","longFormatter","usedTokens","isProtectedWeekYearToken","warnOrThrowProtectedError","isProtectedDayOfYearToken","parser","incompatibleTokens","incompatibleToken","usedToken","parseResult","cleanEscapedString","uniquePrioritySetters","setter","a","b","index","array","setterArray","input","isMatch","isValid","top","bottom","right","left","auto","basePlacements","start","end","clippingParents","viewport","popper","reference","variationPlacements","acc","placement","placements","beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite","modifierPhases","getNodeName","element","getWindow","node","ownerDocument","isElement","OwnElement","isHTMLElement","isShadowRoot","applyStyles","_ref","state","name","style","attributes","effect","_ref2","initialStyles","styleProperties","property","attribute","applyStyles$1","getBasePlacement","max","min","round","getUAString","uaData","item","isLayoutViewport","getBoundingClientRect","includeScale","isFixedStrategy","clientRect","scaleX","scaleY","visualViewport","addVisualOffsets","x","y","width","height","getLayoutRect","contains","parent","child","rootNode","next","getComputedStyle","isTableElement","getDocumentElement","getParentNode","getTrueOffsetParent","getContainingBlock","isFirefox","isIE","elementCss","currentNode","css","getOffsetParent","window","offsetParent","getMainAxisFromPlacement","within","mathMax","mathMin","withinMaxClamp","v","getFreshSideObject","mergePaddingObject","paddingObject","expandToHashMap","keys","hashMap","key","toPaddingObject","padding","arrow","_state$modifiersData$","arrowElement","popperOffsets","basePlacement","axis","isVertical","len","arrowRect","minProp","maxProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","center","offset","axisProp","_options$element","arrow$1","getVariation","unsetSides","roundOffsetsByDPR","win","dpr","mapToStyles","_Object$assign2","popperRect","variation","offsets","position","gpuAcceleration","adaptive","roundOffsets","isFixed","_offsets$x","_offsets$y","_ref3","hasX","hasY","sideX","sideY","heightProp","widthProp","offsetY","offsetX","commonStyles","_ref4","_Object$assign","computeStyles","_ref5","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","computeStyles$1","passive","instance","_options$scroll","scroll","_options$resize","resize","scrollParents","scrollParent","eventListeners","hash","getOppositePlacement","matched","getOppositeVariationPlacement","getWindowScroll","scrollLeft","scrollTop","getWindowScrollBarX","getViewportRect","strategy","html","layoutViewport","getDocumentRect","_element$ownerDocumen","winScroll","body","isScrollParent","_getComputedStyle","overflow","overflowX","overflowY","getScrollParent","listScrollParents","list","isBody","target","updatedList","rectToClientRect","rect","getInnerBoundingClientRect","getClientRectFromMixedType","clippingParent","getClippingParents","canEscapeClipping","clipperElement","getClippingRect","boundary","rootBoundary","mainClippingParents","firstClippingParent","clippingRect","accRect","computeOffsets","commonX","commonY","mainAxis","detectOverflow","_options$placement","_options$strategy","_options$boundary","_options$rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","altContext","clippingClientRect","referenceClientRect","popperClientRect","elementClientRect","overflowOffsets","offsetData","multiply","computeAutoPlacement","flipVariations","_options$allowedAutoP","allowedAutoPlacements","allPlacements","allowedPlacements","overflows","getExpandedFallbackPlacements","oppositePlacement","flip","_options$mainAxis","checkMainAxis","_options$altAxis","checkAltAxis","specifiedFallbackPlacements","_options$flipVariatio","preferredPlacement","isBasePlacement","fallbackPlacements","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","i","_basePlacement","isStartVariation","mainVariationSide","altVariationSide","checks","check","numberOfChecks","_loop","_i","fittingPlacement","_ret","flip$1","getSideOffsets","preventedOffsets","isAnySideFullyClipped","side","hide","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","hide$1","distanceAndSkiddingToXY","rects","invertDistance","skidding","distance","_options$offset","data","_data$state$placement","offset$1","popperOffsets$1","getAltAxis","preventOverflow","_options$tether","tether","_options$tetherOffset","tetherOffset","altAxis","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","_offsetModifierState$","mainSide","altSide","additive","minLen","maxLen","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","clientOffset","offsetModifierValue","tetherMin","tetherMax","preventedOffset","_offsetModifierState$2","_mainSide","_altSide","_offset","_len","_min","_max","isOriginSide","_offsetModifierValue","_tetherMin","_tetherMax","_preventedOffset","preventOverflow$1","getHTMLElementScroll","getNodeScroll","isElementScaled","getCompositeRect","elementOrVirtualElement","isOffsetParentAnElement","offsetParentIsScaled","documentElement","order","modifiers","map","visited","modifier","sort","requires","dep","depModifier","orderModifiers","orderedModifiers","phase","debounce","fn","pending","resolve","mergeByName","merged","current","existing","DEFAULT_OPTIONS","areValidElements","args","_key","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","effectCleanupFns","isDestroyed","setOptionsAction","cleanupModifierEffects","m","runModifierEffects","_state$elements","_state$orderedModifie","_state$orderedModifie2","_ref$options","cleanupFn","noopFn","createPopper","__defProp","__defNormalProp","obj","commonjsGlobal","getDefaultExportFromCjs","objectProto$g","hasOwnProperty$d","baseHas$1","object","_baseHas","isArray$c","isArray_1","freeGlobal$1","_freeGlobal","freeGlobal","freeSelf","root$8","_root","root$7","Symbol$5","_Symbol","Symbol$4","objectProto$f","hasOwnProperty$c","nativeObjectToString$1","symToStringTag$1","getRawTag$1","isOwn","tag","unmasked","_getRawTag","objectProto$e","nativeObjectToString","objectToString$1","_objectToString","Symbol$3","getRawTag","objectToString","nullTag","undefinedTag","symToStringTag","baseGetTag$a","_baseGetTag","isObjectLike$b","isObjectLike_1","baseGetTag$9","isObjectLike$a","symbolTag$1","isSymbol$3","isSymbol_1","isArray$b","isSymbol$2","reIsDeepProp","reIsPlainProp","isKey$3","type","_isKey","isObject$a","isObject_1","baseGetTag$8","isObject$9","asyncTag","funcTag$1","genTag","proxyTag","isFunction$3","isFunction_1","root$6","coreJsData$1","_coreJsData","coreJsData","maskSrcKey","uid","isMasked$1","func","_isMasked","funcProto$2","funcToString$2","toSource$2","_toSource","isFunction$2","isMasked","isObject$8","toSource$1","reRegExpChar","reIsHostCtor","funcProto$1","objectProto$d","funcToString$1","hasOwnProperty$b","reIsNative","baseIsNative$1","_baseIsNative","getValue$1","_getValue","baseIsNative","getValue","getNative$7","_getNative","getNative$6","nativeCreate$4","_nativeCreate","nativeCreate$3","hashClear$1","_hashClear","hashDelete$1","_hashDelete","nativeCreate$2","HASH_UNDEFINED$2","objectProto$c","hasOwnProperty$a","hashGet$1","data2","_hashGet","nativeCreate$1","objectProto$b","hasOwnProperty$9","hashHas$1","_hashHas","nativeCreate","HASH_UNDEFINED$1","hashSet$1","_hashSet","hashClear","hashDelete","hashGet","hashHas","hashSet","Hash$1","entries","index2","length","entry","_Hash","listCacheClear$1","_listCacheClear","eq$6","other","eq_1","eq$5","assocIndexOf$4","_assocIndexOf","assocIndexOf$3","arrayProto","splice","listCacheDelete$1","lastIndex","_listCacheDelete","assocIndexOf$2","listCacheGet$1","_listCacheGet","assocIndexOf$1","listCacheHas$1","_listCacheHas","assocIndexOf","listCacheSet$1","_listCacheSet","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache$4","_ListCache","getNative$5","root$5","Map$3","_Map","Hash","ListCache$3","Map$2","mapCacheClear$1","_mapCacheClear","isKeyable$1","_isKeyable","isKeyable","getMapData$4","_getMapData","getMapData$3","mapCacheDelete$1","_mapCacheDelete","getMapData$2","mapCacheGet$1","_mapCacheGet","getMapData$1","mapCacheHas$1","_mapCacheHas","getMapData","mapCacheSet$1","size","_mapCacheSet","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache$3","_MapCache","MapCache$2","FUNC_ERROR_TEXT","memoize$1","resolver","memoized","cache","memoize_1","memoize","MAX_MEMOIZE_SIZE","memoizeCapped$1","_memoizeCapped","memoizeCapped","rePropName","reEscapeChar","stringToPath$1","string","number","quote","subString","_stringToPath","arrayMap$1","iteratee","_arrayMap","Symbol$2","arrayMap","isArray$a","isSymbol$1","symbolProto$1","symbolToString","baseToString$1","_baseToString","baseToString","toString$1","toString_1","isArray$9","isKey$2","stringToPath","toString","castPath$2","_castPath","baseGetTag$7","isObjectLike$9","argsTag$2","baseIsArguments$1","_baseIsArguments","baseIsArguments","isObjectLike$8","objectProto$a","hasOwnProperty$8","propertyIsEnumerable$1","isArguments$3","isArguments_1","MAX_SAFE_INTEGER$1","reIsUint","isIndex$3","_isIndex","MAX_SAFE_INTEGER","isLength$3","isLength_1","isSymbol","toKey$4","_toKey","castPath$1","isArguments$2","isArray$8","isIndex$2","isLength$2","toKey$3","hasPath$2","path","hasFunc","_hasPath","baseHas","hasPath$1","has$1","has_1","baseGetTag$6","isObjectLike$7","dateTag$2","baseIsDate$1","_baseIsDate","baseUnary$2","_baseUnary","_nodeUtilExports","_nodeUtil","module","exports","freeGlobal2","freeExports","freeModule","moduleExports","freeProcess","nodeUtil2","types","baseIsDate","baseUnary$1","nodeUtil$1","nodeIsDate","isDate$1","isDate_1","baseGetTag$5","isArray$7","isObjectLike$6","stringTag$2","isString","isString_1","arraySome$2","predicate","_arraySome","ListCache$2","stackClear$1","_stackClear","stackDelete$1","_stackDelete","stackGet$1","_stackGet","stackHas$1","_stackHas","ListCache$1","Map$1","MapCache$1","LARGE_ARRAY_SIZE","stackSet$1","pairs","_stackSet","ListCache","stackClear","stackDelete","stackGet","stackHas","stackSet","Stack$3","_Stack","HASH_UNDEFINED","setCacheAdd$1","_setCacheAdd","setCacheHas$1","_setCacheHas","MapCache","setCacheAdd","setCacheHas","SetCache$1","values","_SetCache","cacheHas$1","_cacheHas","SetCache","arraySome$1","cacheHas","COMPARE_PARTIAL_FLAG$5","COMPARE_UNORDERED_FLAG$3","equalArrays$2","bitmask","customizer","equalFunc","stack","isPartial","arrLength","othLength","arrStacked","othStacked","seen","arrValue","othValue","compared","othValue2","othIndex","_equalArrays","root$4","Uint8Array$2","_Uint8Array","mapToArray$1","_mapToArray","setToArray$1","set","_setToArray","Symbol$1","Uint8Array$1","eq$4","equalArrays$1","mapToArray","setToArray","COMPARE_PARTIAL_FLAG$4","COMPARE_UNORDERED_FLAG$2","boolTag$2","dateTag$1","errorTag$1","mapTag$2","numberTag$2","regexpTag$1","setTag$2","stringTag$1","symbolTag","arrayBufferTag$1","dataViewTag$2","symbolProto","symbolValueOf","equalByTag$1","convert","stacked","_equalByTag","arrayPush$1","_arrayPush","arrayPush","isArray$6","baseGetAllKeys$1","keysFunc","symbolsFunc","_baseGetAllKeys","arrayFilter$1","resIndex","_arrayFilter","stubArray$1","stubArray_1","arrayFilter","stubArray","objectProto$9","propertyIsEnumerable","nativeGetSymbols","getSymbols$1","symbol","_getSymbols","baseTimes$1","_baseTimes","isBufferExports","isBuffer$3","stubFalse","stubFalse_1","root2","stubFalse2","Buffer2","nativeIsBuffer","isBuffer2","baseGetTag$4","isLength$1","isObjectLike$5","argsTag$1","arrayTag$1","boolTag$1","dateTag","errorTag","funcTag","mapTag$1","numberTag$1","objectTag$3","regexpTag","setTag$1","stringTag","weakMapTag$1","arrayBufferTag","dataViewTag$1","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","typedArrayTags","baseIsTypedArray$1","_baseIsTypedArray","baseIsTypedArray","baseUnary","nodeUtil","nodeIsTypedArray","isTypedArray$3","isTypedArray_1","baseTimes","isArguments$1","isArray$5","isBuffer$2","isIndex$1","isTypedArray$2","objectProto$8","hasOwnProperty$7","arrayLikeKeys$2","inherited","isArr","isArg","isBuff","isType","skipIndexes","_arrayLikeKeys","objectProto$7","isPrototype$3","Ctor","proto","_isPrototype","overArg$2","transform","arg","_overArg","overArg$1","nativeKeys$1","_nativeKeys","isPrototype$2","nativeKeys","objectProto$6","hasOwnProperty$6","baseKeys$1","_baseKeys","isFunction$1","isLength","isArrayLike$5","isArrayLike_1","arrayLikeKeys$1","baseKeys","isArrayLike$4","keys$3","keys_1","baseGetAllKeys","getSymbols","keys$2","getAllKeys$1","_getAllKeys","getAllKeys","COMPARE_PARTIAL_FLAG$3","objectProto$5","hasOwnProperty$5","equalObjects$1","objProps","objLength","othProps","objStacked","skipCtor","objValue","objCtor","othCtor","_equalObjects","getNative$4","root$3","DataView$1","_DataView","getNative$3","root$2","Promise$2","_Promise","getNative$2","root$1","Set$1","_Set","getNative$1","root","WeakMap$1","_WeakMap","DataView","Map","Promise$1","Set","WeakMap","baseGetTag$3","toSource","mapTag","objectTag$2","promiseTag","setTag","weakMapTag","dataViewTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","getTag$1","ctorString","_getTag","Stack$2","equalArrays","equalByTag","equalObjects","getTag","isArray$4","isBuffer$1","isTypedArray$1","COMPARE_PARTIAL_FLAG$2","argsTag","arrayTag","objectTag$1","objectProto$4","hasOwnProperty$4","baseIsEqualDeep$1","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","_baseIsEqualDeep","baseIsEqualDeep","isObjectLike$4","baseIsEqual$2","_baseIsEqual","Stack$1","baseIsEqual$1","COMPARE_PARTIAL_FLAG$1","COMPARE_UNORDERED_FLAG$1","baseIsMatch$1","source","matchData","noCustomizer","srcValue","_baseIsMatch","isObject$7","isStrictComparable$2","_isStrictComparable","isStrictComparable$1","keys$1","getMatchData$1","_getMatchData","matchesStrictComparable$2","_matchesStrictComparable","baseIsMatch","getMatchData","matchesStrictComparable$1","baseMatches$1","_baseMatches","castPath","toKey$2","baseGet$2","_baseGet","baseGet$1","get$1","defaultValue","get_1","baseHasIn$1","_baseHasIn","baseHasIn","hasPath","hasIn$1","hasIn_1","baseIsEqual","get","hasIn","isKey$1","isStrictComparable","matchesStrictComparable","toKey$1","COMPARE_PARTIAL_FLAG","COMPARE_UNORDERED_FLAG","baseMatchesProperty$1","_baseMatchesProperty","identity$3","identity_1","baseProperty$1","_baseProperty","baseGet","basePropertyDeep$1","_basePropertyDeep","baseProperty","basePropertyDeep","isKey","toKey","property$1","property_1","baseMatches","baseMatchesProperty","identity$2","isArray$3","baseIteratee$2","_baseIteratee","createBaseFor$1","fromRight","iterable","props","_createBaseFor","createBaseFor","baseFor$2","_baseFor","baseFor$1","baseForOwn$2","_baseForOwn","isArrayLike$3","createBaseEach$1","eachFunc","collection","_createBaseEach","baseForOwn$1","createBaseEach","baseEach$1","_baseEach","baseEach","baseSome$1","collection2","_baseSome","eq$3","isArrayLike$2","isIndex","isObject$6","isIterateeCall$3","_isIterateeCall","arraySome","baseIteratee$1","baseSome","isArray$2","isIterateeCall$2","some","guard","some_1","baseGetTag$2","isObjectLike$3","boolTag","isBoolean","isBoolean_1","baseGetTag$1","isObjectLike$2","numberTag","isNumber","isNumber_1","getNative","defineProperty$2","_defineProperty","defineProperty$1","baseAssignValue$4","_baseAssignValue","baseAssignValue$3","eq$2","objectProto$3","hasOwnProperty$3","assignValue$1","_assignValue","baseAssignValue$2","baseForOwn","baseIteratee","mapValues","object2","mapValues_1","apply$2","thisArg","_apply","apply$1","nativeMax","overRest$1","otherArgs","_overRest","constant$1","constant_1","constant","defineProperty","identity$1","baseSetToString$1","_baseSetToString","HOT_COUNT","HOT_SPAN","nativeNow","shortOut$1","count","lastCalled","stamp","remaining","_shortOut","baseSetToString","shortOut","setToString$1","_setToString","identity","overRest","setToString","baseRest$3","_baseRest","nativeKeysIn$1","_nativeKeysIn","isObject$5","isPrototype$1","nativeKeysIn","objectProto$2","hasOwnProperty$2","baseKeysIn$1","isProto","_baseKeysIn","arrayLikeKeys","baseKeysIn","isArrayLike$1","keysIn$3","keysIn_1","baseRest$2","eq$1","isIterateeCall$1","keysIn$2","objectProto$1","hasOwnProperty$1","defaults","sources","propsIndex","propsLength","defaults_1","baseAssignValue$1","eq","assignMergeValue$2","_assignMergeValue","_cloneBufferExports","_cloneBuffer","allocUnsafe","cloneBuffer2","buffer","isDeep","Uint8Array2","cloneArrayBuffer$1","arrayBuffer","_cloneArrayBuffer","cloneArrayBuffer","cloneTypedArray$1","typedArray","_cloneTypedArray","copyArray$1","_copyArray","isObject$4","objectCreate","baseCreate$1","_baseCreate","overArg","getPrototype$2","_getPrototype","baseCreate","getPrototype$1","isPrototype","initCloneObject$1","_initCloneObject","isArrayLike","isObjectLike$1","isArrayLikeObject$1","isArrayLikeObject_1","baseGetTag","getPrototype","isObjectLike","objectTag","funcProto","objectProto","funcToString","hasOwnProperty","objectCtorString","isPlainObject$1","isPlainObject_1","safeGet$2","_safeGet","assignValue","baseAssignValue","copyObject$1","isNew","newValue","_copyObject","copyObject","keysIn$1","toPlainObject$1","toPlainObject_1","assignMergeValue$1","cloneBuffer","cloneTypedArray","copyArray","initCloneObject","isArguments","isArray$1","isArrayLikeObject","isBuffer","isFunction","isObject$3","isPlainObject","isTypedArray","safeGet$1","toPlainObject","baseMergeDeep$1","srcIndex","mergeFunc","isCommon","isTyped","_baseMergeDeep","Stack","assignMergeValue","baseFor","baseMergeDeep","isObject$2","keysIn","safeGet","baseMerge$2","_baseMerge","baseMerge$1","isObject$1","customDefaultsMerge$1","_customDefaultsMerge","baseRest$1","isIterateeCall","createAssigner$1","assigner","_createAssigner","baseMerge","createAssigner","mergeWith$1","mergeWith_1","apply","baseRest","customDefaultsMerge","mergeWith","defaultsDeep","defaultsDeep_1","head","head_1","last","last_1","getType","isDate","isObject","has","hasAny","p","pad","val","char","isArray","arrayHasItems","resolveEl","off","event","handler","opts","on","elementContains","onSpaceOrEnter","omit","keys2","ret","pick","clamp","num","toIntegerExports","toInteger$2","toInteger2","dirtyNumber","toInteger$1","getTimezoneOffsetInMillisecondsExports","getTimezoneOffsetInMilliseconds$2","getTimezoneOffsetInMilliseconds2","utcDate","getTimezoneOffsetInMilliseconds$1","tzTokenizeDate","timeZone","dtf","getDateTimeFormat","partsOffset","hackyOffset","typeToPos","formatted","filled","pos","error","parsed","dtfCache","testDateFormatted","hourCycleSupported","newDateUTC","fullYear","hour","minute","second","millisecond","MILLISECONDS_IN_HOUR$1","MILLISECONDS_IN_MINUTE$1","patterns$1","tzParseTimezone","timezoneString","isUtcDate","token2","absoluteOffset","hours2","validateTimezone","isValidTimezoneIANAString","toUtcDate","calcOffset","fixedOffset","fixOffset","asUTC","asTS","over","localTS","utcGuess","o2","o3","validIANATimezoneCache","timeZoneString","tzPattern","tzPattern$1","MILLISECONDS_IN_HOUR","MILLISECONDS_IN_MINUTE","DEFAULT_ADDITIONAL_DIGITS","patterns","toDate$1","argument","dirtyOptions","additionalDigits","dateStrings","splitDateString","parseYearResult","parseYear","restDateString","parseDate$1","timestamp","time","parseTime","parts","timeString","patternYYY","patternYYYYY","yearString","centuryString","validateDate","dayOfYear","validateDayOfYearDate","validateWeekDate","dayOfISOWeekYear","dayOfWeek","validateTime","isoWeekYear","fourthOfJanuaryDay","requiredArgs","required","_typeof","obj2","argStr","toInteger","startOfWeek$1","dirtyDate","_options$weekStartsOn","_options$locale","_options$locale$optio","_defaultOptions$local","_defaultOptions$local2","defaultOptions2","MILLISECONDS_IN_WEEK$2","differenceInCalendarWeeks","dirtyDateLeft","dirtyDateRight","startOfWeekLeft","startOfWeekRight","timestampLeft","timestampRight","lastDayOfMonth","startOfMonth","getWeeksInMonth","_options$firstWeekCon","firstWeekOfNextYear","startOfNextYear","firstWeekOfThisYear","startOfThisYear","startOfWeekYear","firstWeek","MILLISECONDS_IN_WEEK$1","getISOWeekYear","fourthOfJanuaryOfNextYear","fourthOfJanuaryOfThisYear","startOfISOWeekYear","fourthOfJanuary","MILLISECONDS_IN_WEEK","dirtyAmount","addMonths","dayOfMonth","endOfDesiredMonth","daysInMonth","addYears","viewAddressKeys","getDays","monthComps","prevMonthComps","nextMonthComps","days","firstDayOfWeek","firstWeekday","isoWeeknumbers","weeknumbers","numDays","numWeeks","prevMonthDaysToShow","daysInWeek","prevMonth","thisMonth","nextMonth","formatter","dayFromEnd","weekdayOrdinal","weekdayOrdinalFromEnd","weekFromEnd","today","todayDay","todayMonth","todayYear","w","weeksInMonth","weekday","startDate","noonDate","endDate","id","weekdayPosition","weekdayPositionFromEnd","weeknumber","isoWeeknumber","isToday","isFirstDay","isLastDay","onTop","onBottom","onLeft","onRight","getDayIndex","getWeeks","showWeeknumbers","showIsoWeeknumbers","result2","weekIndex","fromDay","toDay","getWeekdays","getPageId","getPageAddressForDate","view","addPages","newDate","pageIsValid","page","pageIsBeforePage","comparePage","pageIsAfterPage","pageIsBetweenPages","fromPage","toPage","pageIsEqualToPage","aPage","bPage","pageRangeToArray","from","to","getPageKey","config","getCachedPage","weeks","weekdays2","getPage","cachedPage","trimWeeks","dayObj","d","weekObj","Cache","createKey","createItem","removeKey","DateRange","Locale","span","repeat","DateRepeat","ranges","dayParts","range","startDayIndex","endDayIndex","DateRangeContext","_a2","_b2","MS_PER_DAY","record","cell","records","r","onStart","onEnd","startTime","endTime","allDay","locales","localeSettings","res","dow","L","title","weekdays","navMonths","inputDateTime","inputDateTime24hr","inputTime","inputTime24hr","dayPopover","model","iso","masks","maxSwipeTime","minHorizontalSwipeDistance","maxVerticalSwipeDistance","touch","defaultConfig","reactive","defaultLocales","computed","l","getDefault","DEFAULT_MONTH_CACHE_SIZE","DEFAULT_PAGE_CACHE_SIZE","resolveConfig","locales2","detLocale","localeKeys","validKey","k","lk","defLocale","timezone","masks2","monthCacheSize","pageCacheSize","getMonthPartsKey","getMonthParts","getDayNames","s","getMonthNames","getRelativeTimeNames","formatDate","mask","parseDate","nullDate","fillDate","patch","rules","isDateParts","fillParts","DatePatchKeys","applyRulesForDateParts","dte","getDateParts","getDateFromParts","milliseconds","getHourDates","GroupRuleType","GroupRuleType2","IntervalRuleType","IntervalRuleType2","ComponentRuleType","ComponentRuleType2","OrdinalComponentRuleType","OrdinalComponentRuleType2","IntervalRule","interval","dateParts","diffInDays","diffInWeeks","diffInMonths","diffInYears","ComponentRule","components2","validator","getter","DaysRule","WeekdaysRule","WeeksRule","MonthsRule","YearsRule","component","comp","isDayInMonth","isDayOfWeek","isWeekInMonth","isMonthInYear","OrdinalComponentRule","numOrArray","isOrdinalWeekInMonth","ordinalWeek","ordinalWeekday","FunctionRule","c","dayInMonth","weekInMonth","monthInYear","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","daysInMonths","maskMacros","DATE_PART_RANGES","literal","formatFlags","o","twoDigits","threeDigits","fourDigits","word","noop","monthUpdate","arrName","parseFlags","cent","normalizeMasks","prev","curr","daysToAdd","d1","d2","hrs","sec","ms","tzDate","monthParts","inLeapYear","firstDayOfMonth","getWeekdayDates","dates","localeId","units","rtf","names","unit","getMonthDates","datePartIsValid","part","rule","getDatePartOptions","getDatePartsOptions","getNearestDatePart","opt","diffPrev","str","dp","$0","info","literals","$1","attrKey","Attribute","theme","simpleRanges","repeatRanges","showPopover","hidePopover","togglePopover","getPopoverEventHandlers","visibility","click","hover","hoverFocus","focus","hovered","focused","clickHandler","e","mouseMoveHandler","mouseLeaveHandler","focusInHandler","focusOutHandler","handlers","removeHandlers","el","addHandlers","remove","popoverDirective","binding","oldValue","oldVisibility","newVisibility","addHorizontalSwipeHandler","maxSwipeTime2","minHorizontalSwipeDistance2","maxVerticalSwipeDistance2","startX","startY","isSwiping","touchStart","t","touchEnd","deltaX","deltaY","watchSkippers","skipWatcher","watcher","durationMs","handleWatcher","dateTime","windowExists","windowHasFeature","feature","useDarkMode","isDark","ref","displayMode","mediaQuery","mutationObserver","mqListener","ev","setupSystem","moListener","selector","darkClass","setupClass","config2","setup","stopObservers","stopWatch","watch","cleanup","onUnmounted","targetProps","displayProps","_defaultProfile","normalizeConfig","color","defaultProfile","rootColor","targetType","targetConfig","targetColor","HighlightRenderer","glyphs","highlight","highlights","base","BaseRenderer","collectionType","ContentRenderer","_","DotRenderer","BarRenderer","Theme","attr","renderer","contextKey$4","propsDef$2","createBase","minDate","maxDate","disabledDates","disabledAttribute","context","provide","useOrCreateBase","inject","contextKey$3","slotKey","provideSlots","slots","remap","useSlot","propsDef$1","emitsDef","contextKey$2","createCalendar","emit","containerRef","focusedDay","focusableDay","inTransition","navPopoverId","dayPopoverId","_view","_pages","transitionName","transitionPromise","removeHandlers2","step","firstPage","lastPage","minPage","getDateAddress","maxPage","navVisibility","isMonthly","isWeekly","isDaily","onTransitionBeforeEnter","onTransitionAfterEnter","addPages$1","address","count2","refreshDisabled","attributeContext","refreshFocusable","forDays","pages","hasAttributes","ctx","dayCells","getWeeknumberPosition","column","columnFromEnd","showWeeknumbers2","getPageForAttributes","attr2","getDefaultInitialPage","getTargetPageRange","force","pagesToAdd","getPageTransition","oldPage","newPage","defaultTransition","moveNext2","movePrev2","refreshPages","reject","transition","position2","row","rowFromEnd","weeknumberPosition","targetBy","canMove","canMoveBy","canMovePrev","canMoveNext","move","moveBy","movePrev","moveNext","tryFocusDate","inMonth","daySelector","focusableEl","focusDate","onDayClick","onDayMouseenter","onDayMouseleave","onDayFocusin","onDayFocusout","onDayKeydown","onKeydown","onWeeknumberClick","onMounted","toLeft","toRight","watchEffect","useCalendar","_sfc_main$k","defineComponent","timeout","popoverRef","resizeObserver","state2","updateDirection","onPopperUpdate","popperOptions","alignment","isLeftRight","alignment2","destroyPopper","setupPopper","nextTick","updateState","newState","setTimer","delay","isCurrentTarget","show","toggle","onDocumentClick","popperRef","onDocumentKeydown","onDocumentShowPopover","detail","onDocumentHidePopover","onDocumentTogglePopover","addEvents","removeEvents","beforeEnter","afterEnter","beforeLeave","afterLeave","onClick","onMouseOver","onMouseLeave","onFocusIn","onFocusOut","cleanupRO","toRefs","_export_sfc","sfc","_sfc_render$7","_ctx","_cache","$props","$setup","$data","$options","openBlock","createElementBlock","normalizeClass","createVNode","Transition","withCtx","mergeProps","renderSlot","createTextVNode","toDisplayString","createElementVNode","createCommentVNode","Popover","_hoisted_1$c","_hoisted_2$b","_hoisted_3$9","_sfc_main$j","__props","indicator","content","dot","bar","popover","unref","__default__$3","_sfc_main$i","slot","createBlock","resolveDynamicComponent","normalizeProps","_hoisted_1$b","_hoisted_2$a","_sfc_main$h","format","dayTitle","Fragment","renderList","_sfc_main$g","_hoisted_1$a","_hoisted_2$9","_hoisted_3$8","_sfc_render$6","IconChevronRight","_sfc_main$f","_hoisted_1$9","_hoisted_2$8","_hoisted_3$7","_sfc_render$5","IconChevronLeft","_sfc_main$e","_hoisted_1$8","_hoisted_2$7","_hoisted_3$6","_sfc_render$4","IconChevronDown","_sfc_main$d","_hoisted_1$7","_hoisted_2$6","_hoisted_3$5","_sfc_render$3","IconClock","icons","_sfc_main$c","icon","_hoisted_1$6","_hoisted_2$5","_hoisted_3$4","_hoisted_4$3","_sfc_main$b","navPlacement","navPopoverOptions","titleLeft","titleRight","layout_","gridStyle","normalizeStyle","withKeys","withDirectives","contextKey$1","createPage","getMonthItems","thisYear","getYearItems","startYear","endYear","items","enabled","usePage","_hoisted_1$5","_hoisted_2$4","_hoisted_3$3","_hoisted_4$2","_hoisted_5$2","_sfc_main$a","monthMode","yearGroupCount","selectedYear","selectedYearGroup","getYearGroupIndex","navContainer","focusFirstItem","toggleMode","getStartYear","groupIndex","getEndYear","prevItemsEnabled","movePrevYear","movePrevYearGroup","nextItemsEnabled","moveNextYear","moveNextYearGroup","monthItems","prevMonthItems","prevMonthItemsEnabled","nextMonthItems","nextMonthItemsEnabled","yearItems","prevYearItems","prevYearItemsEnabled","nextYearItems","nextYearItemsEnabled","activeItems","firstYear","lastYear","title2","_sfc_main$9","toRef","_sfc_main$8","_sfc_main$7","attributeCells","attributedDay","processPopover","popovers2","customData","resolvedPopover","hasHighlights","dots","hasDots","bars","hasBars","popovers","popoverAttrs","dayContentSlot","dayClasses","dayContentProps","tabindex","classes","dayContentEvents","dayPopover2","_hoisted_1$4","_hoisted_2$3","_hoisted_3$2","_hoisted_4$1","_hoisted_5$1","_sfc_render$2","_component_CalendarSlot","resolveComponent","_directive_popover","resolveDirective","wrapperClass","bgClass","toHandlers","CalendarDay","_hoisted_1$3","_hoisted_2$2","__default__$2","_sfc_main$6","label","$event","_sfc_main$5","_hoisted_1$2","_sfc_render$1","_component_CalendarHeader","_component_CalendarPage","_component_CalendarPageProvider","_component_CalendarDayPopover","_component_CalendarNavPopover","withModifiers","Calendar","contextKey","propsDef","emits","createDatePicker","baseCtx","showCalendar","datePickerPopoverId","dateValue","dragValue","inputValues","calendarRef","updateTimeout","dragTrackingValue","watchValue","isRange","valueStart","valueEnd","isDateMode","isDateTimeMode","isTimeMode","isDragging","modelConfig","normalizeConfig2","getDateParts2","inputMask","inputMaskHasTime","inputMaskHasDate","inputMaskPatch","popoverEvents","inputValue","inputEvents","events","onInputInput","onInputChange","onInputKeyup","selectAttribute","hasValue","dragAttribute","attrs","getAutoRules","_rules","accuracy","normalizeDateConfig","hasDateValue","hasRangeValue","valuesAreEqual","aIsDate","bIsDate","valueIsDisabled","normalizeValue","targetPriority","sortRange","denormalizeValue","updateValue","forceUpdateValue","clearIfEqual","fInput","hPopover","dragging","mValue","normalizedConfig","normalizedValue","valueRef","notify","denormalizedValue","hidePopover$1","formatInput","moveToValue","onInputUpdate","inputValue2","cancelDrag","onPopoverBeforeShow","onPopoverAfterShow","onPopoverBeforeHide","onPopoverAfterHide","handleDayClick","onDayMouseEnter","showPopover$1","togglePopover$1","dValue","useDatePicker","_amOptions","_pmOptions","createTimePicker","is24hr","hideTimeHeader","timeAccuracy","updateDpValue","updateParts","newParts","isStart","partsValid","showHeader","date2","isAM","hValue","amHourOptions","ho","pmHourOptions","hourOptions","isAMOptions","_hoisted_1$1","_hoisted_2$1","_hoisted_3$1","__default__$1","_sfc_main$4","selectedLabel","option","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_sfc_main$3","expose","timePicker","isRef","_sfc_main$2","positions","__default__","_sfc_main$1","guardReactiveProps","_sfc_main","datePicker","slotCtx","_sfc_render","_component_DatePickerPopover","_component_DatePickerBase","DatePicker","useSlots","__emit","createValidDate","isTimeInput","dateFormat","DATE_FORMATS","formatDescriptionId","uniqueId","formattedDate","normalizeDate","formatDateTime","mergedPopoverOptions","teleportModifiers","userModifiers","teleportPopoverOptions","unionBy","userOptionsWithoutModifiers","merge","useTemplateRef","placeholderText","moveToToday","onDatePickerUpdate","shouldEmit","startOfDay","inputChangeCb","isFormatMatch","normalizedDate"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103]}