@adyen/bento-vue2 0.10.0 → 0.10.1-2

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 (239) hide show
  1. package/dist/@types/components/currency/currency.vue.d.ts +9 -0
  2. package/dist/@types/components/data-grid/data-grid.vue.d.ts +3 -3
  3. package/dist/@types/components/date/date.vue.d.ts +9 -0
  4. package/dist/@types/components/modal/components/base-modal/base-modal.vue.d.ts +10 -0
  5. package/dist/@types/components/modal/components/modal-default/modal-default.vue.d.ts +9 -0
  6. package/dist/@types/components/modal/components/modal-dialog/modal-dialog.vue.d.ts +9 -0
  7. package/dist/@types/components/modal/modal.vue.d.ts +11 -0
  8. package/dist/@types/components/segmented-control/components/segmented-control-button/segmented-control-button.vue.d.ts +1 -1
  9. package/dist/@types/components/segmented-control/index.d.ts +2 -0
  10. package/dist/@types/components/segmented-control/segmented-control.types.d.ts +8 -0
  11. package/dist/@types/components/segmented-control/segmented-control.vue.d.ts +53 -0
  12. package/dist/@types/components.d.ts +2 -4
  13. package/dist/@types/index.d.ts +1 -0
  14. package/dist/accordion.js +206 -0
  15. package/dist/accordion.js.map +1 -0
  16. package/dist/alert.js +103 -0
  17. package/dist/alert.js.map +1 -0
  18. package/dist/assets/base-button.css +1 -0
  19. package/dist/assets/button-actions.css +1 -0
  20. package/dist/assets/button.css +1 -0
  21. package/dist/assets/checkbox.css +1 -0
  22. package/dist/assets/checkmark-circle-fill.css +1 -0
  23. package/dist/assets/checkmark-small.css +1 -0
  24. package/dist/assets/chevron-left.css +1 -0
  25. package/dist/assets/chevron-up.css +1 -0
  26. package/dist/assets/copy.css +1 -0
  27. package/dist/assets/cross-circle-fill.css +1 -0
  28. package/dist/assets/cross-small.css +1 -0
  29. package/dist/assets/cross.css +1 -0
  30. package/dist/assets/dropdown.css +1 -0
  31. package/dist/assets/grid-layout.css +1 -0
  32. package/dist/assets/index.css +1 -0
  33. package/dist/assets/index10.css +1 -0
  34. package/dist/assets/index11.css +1 -0
  35. package/dist/assets/index12.css +1 -0
  36. package/dist/assets/index13.css +1 -0
  37. package/dist/assets/index14.css +1 -0
  38. package/dist/assets/index15.css +1 -0
  39. package/dist/assets/index16.css +1 -0
  40. package/dist/assets/index17.css +1 -0
  41. package/dist/assets/index18.css +1 -0
  42. package/dist/assets/index19.css +1 -0
  43. package/dist/assets/index2.css +1 -0
  44. package/dist/assets/index20.css +1 -0
  45. package/dist/assets/index21.css +1 -0
  46. package/dist/assets/index22.css +1 -0
  47. package/dist/assets/index23.css +1 -0
  48. package/dist/assets/index24.css +1 -0
  49. package/dist/assets/index25.css +1 -0
  50. package/dist/assets/index26.css +1 -0
  51. package/dist/assets/index27.css +1 -0
  52. package/dist/assets/index28.css +1 -0
  53. package/dist/assets/index29.css +1 -0
  54. package/dist/assets/index3.css +1 -0
  55. package/dist/assets/index30.css +1 -0
  56. package/dist/assets/index31.css +1 -0
  57. package/dist/assets/index32.css +1 -0
  58. package/dist/assets/index33.css +1 -0
  59. package/dist/assets/index34.css +1 -0
  60. package/dist/assets/index35.css +1 -0
  61. package/dist/assets/index36.css +1 -0
  62. package/dist/assets/index37.css +1 -0
  63. package/dist/assets/index38.css +1 -0
  64. package/dist/assets/index4.css +1 -0
  65. package/dist/assets/index5.css +1 -0
  66. package/dist/assets/index6.css +1 -0
  67. package/dist/assets/index7.css +1 -0
  68. package/dist/assets/index8.css +1 -0
  69. package/dist/assets/index9.css +1 -0
  70. package/dist/assets/info-filled.css +1 -0
  71. package/dist/assets/listbox-option-tag.css +1 -0
  72. package/dist/assets/listbox.css +1 -0
  73. package/dist/assets/search.css +1 -0
  74. package/dist/assets/tooltip.css +1 -0
  75. package/dist/avatar-image.js +7 -0
  76. package/dist/avatar-image.js.map +1 -0
  77. package/dist/badge.js +57 -0
  78. package/dist/badge.js.map +1 -0
  79. package/dist/button.js +110 -0
  80. package/dist/button.js.map +1 -0
  81. package/dist/card.js +178 -0
  82. package/dist/card.js.map +1 -0
  83. package/dist/checkbox.js +94 -0
  84. package/dist/checkbox.js.map +1 -0
  85. package/dist/chunks/_plugin-vue2_normalizer.71e2aa87.js +33 -0
  86. package/dist/chunks/_plugin-vue2_normalizer.71e2aa87.js.map +1 -0
  87. package/dist/chunks/aria-label.ac9651a5.js +13 -0
  88. package/dist/chunks/aria-label.ac9651a5.js.map +1 -0
  89. package/dist/chunks/base-button.38651156.js +83 -0
  90. package/dist/chunks/base-button.38651156.js.map +1 -0
  91. package/dist/chunks/button-actions.59406268.js +105 -0
  92. package/dist/chunks/button-actions.59406268.js.map +1 -0
  93. package/dist/chunks/button.31b757d1.js +102 -0
  94. package/dist/chunks/button.31b757d1.js.map +1 -0
  95. package/dist/chunks/checkbox.fab16cce.js +138 -0
  96. package/dist/chunks/checkbox.fab16cce.js.map +1 -0
  97. package/dist/chunks/checkmark-circle-fill.d1aa324d.js +26 -0
  98. package/dist/chunks/checkmark-circle-fill.d1aa324d.js.map +1 -0
  99. package/dist/chunks/checkmark-small.1371dd20.js +26 -0
  100. package/dist/chunks/checkmark-small.1371dd20.js.map +1 -0
  101. package/dist/chunks/chevron-left.e3a49e62.js +47 -0
  102. package/dist/chunks/chevron-left.e3a49e62.js.map +1 -0
  103. package/dist/chunks/chevron-up.416431cd.js +47 -0
  104. package/dist/chunks/chevron-up.416431cd.js.map +1 -0
  105. package/dist/chunks/copy.fa9aa27e.js +105 -0
  106. package/dist/chunks/copy.fa9aa27e.js.map +1 -0
  107. package/dist/chunks/cross-circle-fill.0a1d738c.js +26 -0
  108. package/dist/chunks/cross-circle-fill.0a1d738c.js.map +1 -0
  109. package/dist/chunks/cross-small.7ecb1b97.js +26 -0
  110. package/dist/chunks/cross-small.7ecb1b97.js.map +1 -0
  111. package/dist/chunks/cross.db1f9177.js +26 -0
  112. package/dist/chunks/cross.db1f9177.js.map +1 -0
  113. package/dist/chunks/directive.23e35ab0.js +21 -0
  114. package/dist/chunks/directive.23e35ab0.js.map +1 -0
  115. package/dist/chunks/dropdown.0d394d2f.js +771 -0
  116. package/dist/chunks/dropdown.0d394d2f.js.map +1 -0
  117. package/dist/chunks/grid-layout.14423a2e.js +69 -0
  118. package/dist/chunks/grid-layout.14423a2e.js.map +1 -0
  119. package/dist/chunks/hasSlot.dceac207.js +5 -0
  120. package/dist/chunks/hasSlot.dceac207.js.map +1 -0
  121. package/dist/chunks/i18n.8934ef6c.js +1695 -0
  122. package/dist/chunks/i18n.8934ef6c.js.map +1 -0
  123. package/dist/chunks/index.2e54c294.js +801 -0
  124. package/dist/chunks/index.2e54c294.js.map +1 -0
  125. package/dist/chunks/index.34eba2c4.js +107 -0
  126. package/dist/chunks/index.34eba2c4.js.map +1 -0
  127. package/dist/chunks/index.59dc2e3f.js +801 -0
  128. package/dist/chunks/index.59dc2e3f.js.map +1 -0
  129. package/dist/chunks/index.73d7902e.js +29 -0
  130. package/dist/chunks/index.73d7902e.js.map +1 -0
  131. package/dist/chunks/index.8c38e06b.js +441 -0
  132. package/dist/chunks/index.8c38e06b.js.map +1 -0
  133. package/dist/chunks/index.8e9cdc73.js +441 -0
  134. package/dist/chunks/index.8e9cdc73.js.map +1 -0
  135. package/dist/chunks/index.a7a22907.js +929 -0
  136. package/dist/chunks/index.a7a22907.js.map +1 -0
  137. package/dist/chunks/index.ad5e1dbd.js +107 -0
  138. package/dist/chunks/index.ad5e1dbd.js.map +1 -0
  139. package/dist/chunks/index.e2141d95.js +86 -0
  140. package/dist/chunks/index.e2141d95.js.map +1 -0
  141. package/dist/chunks/index.f4582460.js +86 -0
  142. package/dist/chunks/index.f4582460.js.map +1 -0
  143. package/dist/chunks/index.f55fdc32.js +1118 -0
  144. package/dist/chunks/index.f55fdc32.js.map +1 -0
  145. package/dist/chunks/info-filled.9748686e.js +26 -0
  146. package/dist/chunks/info-filled.9748686e.js.map +1 -0
  147. package/dist/chunks/listbox-option-tag.2e5c4012.js +111 -0
  148. package/dist/chunks/listbox-option-tag.2e5c4012.js.map +1 -0
  149. package/dist/chunks/listbox-option-tag.f44b4ee0.js +111 -0
  150. package/dist/chunks/listbox-option-tag.f44b4ee0.js.map +1 -0
  151. package/dist/chunks/listbox.152dab0a.js +485 -0
  152. package/dist/chunks/listbox.152dab0a.js.map +1 -0
  153. package/dist/chunks/on-click-outside.3e0c3e2a.js +91 -0
  154. package/dist/chunks/on-click-outside.3e0c3e2a.js.map +1 -0
  155. package/dist/chunks/search.6be3396b.js +26 -0
  156. package/dist/chunks/search.6be3396b.js.map +1 -0
  157. package/dist/chunks/toastController.b1b08299.js +15 -0
  158. package/dist/chunks/toastController.b1b08299.js.map +1 -0
  159. package/dist/chunks/tooltip.a4625a7b.js +220 -0
  160. package/dist/chunks/tooltip.a4625a7b.js.map +1 -0
  161. package/dist/chunks/unique-id.a2a2b458.js +34 -0
  162. package/dist/chunks/unique-id.a2a2b458.js.map +1 -0
  163. package/dist/chunks/use-default-slot-validator.83d977a1.js +11 -0
  164. package/dist/chunks/use-default-slot-validator.83d977a1.js.map +1 -0
  165. package/dist/chunks/useCountryItems.cbe60557.js +29 -0
  166. package/dist/chunks/useCountryItems.cbe60557.js.map +1 -0
  167. package/dist/click-outside.js +23 -0
  168. package/dist/click-outside.js.map +1 -0
  169. package/dist/controls-group.js +59 -0
  170. package/dist/controls-group.js.map +1 -0
  171. package/dist/country.js +5979 -0
  172. package/dist/country.js.map +1 -0
  173. package/dist/currency.js +119 -0
  174. package/dist/currency.js.map +1 -0
  175. package/dist/data-grid.js +1169 -0
  176. package/dist/data-grid.js.map +1 -0
  177. package/dist/date-picker.js +8 -0
  178. package/dist/date-picker.js.map +1 -0
  179. package/dist/date.js +6 -0
  180. package/dist/date.js.map +1 -0
  181. package/dist/divider.js +35 -0
  182. package/dist/divider.js.map +1 -0
  183. package/dist/dropdown.js +262 -0
  184. package/dist/dropdown.js.map +1 -0
  185. package/dist/filter-bar.js +1735 -0
  186. package/dist/filter-bar.js.map +1 -0
  187. package/dist/focus-trap.js +5 -0
  188. package/dist/focus-trap.js.map +1 -0
  189. package/dist/header.js +205 -0
  190. package/dist/header.js.map +1 -0
  191. package/dist/index.js +335 -21278
  192. package/dist/index.js.map +1 -1
  193. package/dist/info-icon.js +61 -0
  194. package/dist/info-icon.js.map +1 -0
  195. package/dist/input-field.js +168 -0
  196. package/dist/input-field.js.map +1 -0
  197. package/dist/internal.js +13 -0
  198. package/dist/internal.js.map +1 -0
  199. package/dist/link.js +46 -0
  200. package/dist/link.js.map +1 -0
  201. package/dist/loading-indicator.js +51 -0
  202. package/dist/loading-indicator.js.map +1 -0
  203. package/dist/menu.js +474 -0
  204. package/dist/menu.js.map +1 -0
  205. package/dist/modal.js +709 -0
  206. package/dist/modal.js.map +1 -0
  207. package/dist/pagination.js +487 -0
  208. package/dist/pagination.js.map +1 -0
  209. package/dist/payment-method.js +84 -0
  210. package/dist/payment-method.js.map +1 -0
  211. package/dist/popover.js +284 -0
  212. package/dist/popover.js.map +1 -0
  213. package/dist/popper-container.js +225 -0
  214. package/dist/popper-container.js.map +1 -0
  215. package/dist/radio-group.js +192 -0
  216. package/dist/radio-group.js.map +1 -0
  217. package/dist/search-bar.js +106 -0
  218. package/dist/search-bar.js.map +1 -0
  219. package/dist/status.js +47 -0
  220. package/dist/status.js.map +1 -0
  221. package/dist/structured-list.js +98 -0
  222. package/dist/structured-list.js.map +1 -0
  223. package/dist/summary-grid.js +526 -0
  224. package/dist/summary-grid.js.map +1 -0
  225. package/dist/tabs.js +106 -0
  226. package/dist/tabs.js.map +1 -0
  227. package/dist/tag.js +73 -0
  228. package/dist/tag.js.map +1 -0
  229. package/dist/textarea.js +64 -0
  230. package/dist/textarea.js.map +1 -0
  231. package/dist/toast.js +132 -0
  232. package/dist/toast.js.map +1 -0
  233. package/dist/toggle.js +6 -0
  234. package/dist/toggle.js.map +1 -0
  235. package/dist/typography.js +111 -0
  236. package/dist/typography.js.map +1 -0
  237. package/dist/web-types.json +130 -13
  238. package/package.json +6 -4
  239. package/dist/@types/utils/ts/inject-css.d.ts +0 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.59dc2e3f.js","sources":["../../src/types/date-format.ts","../../../../node_modules/date-fns/esm/addDays/index.js","../../../../node_modules/date-fns/esm/addMonths/index.js","../../../../node_modules/date-fns/esm/startOfDay/index.js","../../../../node_modules/date-fns/esm/isSameDay/index.js","../../../../node_modules/date-fns/esm/startOfMonth/index.js","../../../../node_modules/date-fns/esm/subMonths/index.js","../../../../node_modules/date-fns/esm/isAfter/index.js","../../../../node_modules/date-fns/esm/isBefore/index.js","../../../../node_modules/date-fns/esm/isWithinInterval/index.js","../../../../node_modules/date-fns/esm/setDay/index.js","../../src/components/date-picker/components/date-picker-calendar/components/date-picker-calendar-day/date-picker-calendar-day.types.ts","../../src/components/date-picker/components/date-picker-calendar/components/date-picker-calendar-day/date-picker-calendar-day.vue","../../src/components/date-picker/components/date-picker-calendar/date-picker-calendar.types.ts","../../src/components/date-picker/components/date-picker-calendar/date-picker-calendar.vue","../../src/components/date-picker/components/date-picker-calendar-pane/date-picker-calendar-pane.types.ts","../../src/components/date-picker/components/date-picker-calendar-pane/composables/use-single-pane.ts","../../src/components/date-picker/components/date-picker-calendar-pane/composables/use-range-pane.ts","../../src/components/date-picker/components/date-picker-calendar-pane/date-picker-calendar-pane.vue","../../src/components/date-picker/date-picker.types.ts","../../src/components/date-picker/components/date-picker-calendar-range/date-picker-calendar-range.types.ts","../../src/components/date-picker/components/date-picker-calendar-range/date-picker-calendar-range.vue","../../src/components/date-picker/composables/use-date-picker-single-calendar-text.ts","../../src/components/date-picker/composables/use-date-picker-range-calendar-text.ts","../../src/components/date-picker/date-picker.vue"],"sourcesContent":["export enum DateFormat {\n // DAY\n DAY_OF_MONTH = 'd', // 1, 2, ..., 31,\n NUMERIC_DAY = 'dd', // 01, 02, ..., 31,\n\n // WEEK\n SHORT_WEEKDAY = 'EEE', // Fri\n\n // MONTH\n NUMERIC_MONTH = 'MM', // 06\n SHORT_MONTH = 'MMM', // Jun\n LONG_MONTH = 'MMMM', // June\n LONG_MONTH_YEAR = `${LONG_MONTH} yyyy`, // June 2023\n\n // YEAR\n FULL_YEAR = 'yyyy', // 0001, 2023\n\n // DATE\n FULL_DATE = `${DAY_OF_MONTH} ${SHORT_MONTH}, ${FULL_YEAR}`, // 25 Jun, 2023\n FULL_DATE_MONTH_FIRST = `${SHORT_MONTH} ${NUMERIC_DAY}, ${FULL_YEAR}`, // Jun 25, 2023\n NUMERIC_DATE_YEAR_FIRST = `${FULL_YEAR}-${NUMERIC_MONTH}-${NUMERIC_DAY}`, // 2023-06-25\n NUMERIC_DATE_DAY_FIRST = `${FULL_YEAR}-${NUMERIC_MONTH}-${NUMERIC_DAY}`, // 25-06-2023\n}\n","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addDays\n * @category Day Helpers\n * @summary Add the specified number of days to the given date.\n *\n * @description\n * Add the specified number of days to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} - the new date with the days added\n * @throws {TypeError} - 2 arguments required\n *\n * @example\n * // Add 10 days to 1 September 2014:\n * const result = addDays(new Date(2014, 8, 1), 10)\n * //=> Thu Sep 11 2014 00:00:00\n */\n\nexport default function addDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n\n if (isNaN(amount)) {\n return new Date(NaN);\n }\n\n if (!amount) {\n // If 0 days, no-op to avoid changing times in the hour before end of DST\n return date;\n }\n\n date.setDate(date.getDate() + amount);\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMonths\n * @category Month Helpers\n * @summary Add the specified number of months to the given date.\n *\n * @description\n * Add the specified number of months to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of months to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the months added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 5 months to 1 September 2014:\n * const result = addMonths(new Date(2014, 8, 1), 5)\n * //=> Sun Feb 01 2015 00:00:00\n */\n\nexport default function addMonths(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n\n if (isNaN(amount)) {\n return new Date(NaN);\n }\n\n if (!amount) {\n // If 0 months, no-op to avoid changing times in the hour before end of DST\n return date;\n }\n\n var dayOfMonth = date.getDate(); // The JS Date object supports date math by accepting out-of-bounds values for\n // month, day, etc. For example, new Date(2020, 0, 0) returns 31 Dec 2019 and\n // new Date(2020, 13, 1) returns 1 Feb 2021. This is *almost* the behavior we\n // want except that dates will wrap around the end of a month, meaning that\n // new Date(2020, 13, 31) will return 3 Mar 2021 not 28 Feb 2021 as desired. So\n // we'll default to the end of the desired month by adding 1 to the desired\n // month and using a date of 0 to back up one day to the end of the desired\n // month.\n\n var endOfDesiredMonth = new Date(date.getTime());\n endOfDesiredMonth.setMonth(date.getMonth() + amount + 1, 0);\n var daysInMonth = endOfDesiredMonth.getDate();\n\n if (dayOfMonth >= daysInMonth) {\n // If we're already at the end of the month, then this is the correct date\n // and we're done.\n return endOfDesiredMonth;\n } else {\n // Otherwise, we now know that setting the original day-of-month value won't\n // cause an overflow, so set the desired day-of-month. Note that we can't\n // just set the date of `endOfDesiredMonth` because that object may have had\n // its time changed in the unusual case where where a DST transition was on\n // the last day of the month and its local time was in the hour skipped or\n // repeated next to a DST transition. So we use `date` instead which is\n // guaranteed to still have the original time.\n date.setFullYear(endOfDesiredMonth.getFullYear(), endOfDesiredMonth.getMonth(), dayOfMonth);\n return date;\n }\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\n\nexport default function startOfDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import startOfDay from \"../startOfDay/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isSameDay\n * @category Day Helpers\n * @summary Are the given dates in the same day (and year and month)?\n *\n * @description\n * Are the given dates in the same day (and year and month)?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same day (and year and month)\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 4 September 06:00:00 and 4 September 18:00:00 in the same day?\n * var result = isSameDay(new Date(2014, 8, 4, 6, 0), new Date(2014, 8, 4, 18, 0))\n * //=> true\n * \n * @example\n * // Are 4 September and 4 October in the same day?\n * var result = isSameDay(new Date(2014, 8, 4), new Date(2014, 9, 4))\n * //=> false\n * \n * @example\n * // Are 4 September, 2014 and 4 September, 2015 in the same day?\n * var result = isSameDay(new Date(2014, 8, 4), new Date(2015, 8, 4))\n * //=> false\n */\n\nexport default function isSameDay(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeftStartOfDay = startOfDay(dirtyDateLeft);\n var dateRightStartOfDay = startOfDay(dirtyDateRight);\n return dateLeftStartOfDay.getTime() === dateRightStartOfDay.getTime();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfMonth\n * @category Month Helpers\n * @summary Return the start of a month for the given date.\n *\n * @description\n * Return the start of a month for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a month for 2 September 2014 11:55:00:\n * const result = startOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\n\nexport default function 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}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMonths from \"../addMonths/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subMonths\n * @category Month Helpers\n * @summary Subtract the specified number of months from the given date.\n *\n * @description\n * Subtract the specified number of months from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of months to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the months subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 5 months from 1 February 2015:\n * const result = subMonths(new Date(2015, 1, 1), 5)\n * //=> Mon Sep 01 2014 00:00:00\n */\n\nexport default function subMonths(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMonths(dirtyDate, -amount);\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\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 * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date that should be after the other one to return true\n * @param {Date|Number} dateToCompare - the date to compare with\n * @returns {Boolean} the first date is after the second date\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Is 10 July 1989 after 11 February 1987?\n * var result = isAfter(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> true\n */\n\nexport default function isAfter(dirtyDate, dirtyDateToCompare) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var dateToCompare = toDate(dirtyDateToCompare);\n return date.getTime() > dateToCompare.getTime();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\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 * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date that should be before the other one to return true\n * @param {Date|Number} dateToCompare - the date to compare with\n * @returns {Boolean} the first date is before the second date\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Is 10 July 1989 before 11 February 1987?\n * var result = isBefore(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> false\n */\n\nexport default function isBefore(dirtyDate, dirtyDateToCompare) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var dateToCompare = toDate(dirtyDateToCompare);\n return date.getTime() < dateToCompare.getTime();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n\n/**\n * @name isWithinInterval\n * @category Interval Helpers\n * @summary Is the given date within the interval?\n *\n * @description\n * Is the given date within the interval? (Including start and end.)\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `isWithinRange` to `isWithinInterval`.\n * This change was made to mirror the use of the word \"interval\" in standard ISO 8601:2004 terminology:\n *\n * ```\n * 2.1.3\n * time interval\n * part of the time axis limited by two instants\n * ```\n *\n * Also, this function now accepts an object with `start` and `end` properties\n * instead of two arguments as an interval.\n * This function now throws `RangeError` if the start of the interval is after its end\n * or if any date in the interval is `Invalid Date`.\n *\n * ```javascript\n * // Before v2.0.0\n *\n * isWithinRange(\n * new Date(2014, 0, 3),\n * new Date(2014, 0, 1), new Date(2014, 0, 7)\n * )\n *\n * // v2.0.0 onward\n *\n * isWithinInterval(\n * new Date(2014, 0, 3),\n * { start: new Date(2014, 0, 1), end: new Date(2014, 0, 7) }\n * )\n * ```\n *\n * @param {Date|Number} date - the date to check\n * @param {Interval} interval - the interval to check\n * @returns {Boolean} the date is within the interval\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} The start of an interval cannot be after its end\n * @throws {RangeError} Date in interval cannot be `Invalid Date`\n *\n * @example\n * // For the date within the interval:\n * isWithinInterval(new Date(2014, 0, 3), {\n * start: new Date(2014, 0, 1),\n * end: new Date(2014, 0, 7)\n * })\n * //=> true\n *\n * @example\n * // For the date outside of the interval:\n * isWithinInterval(new Date(2014, 0, 10), {\n * start: new Date(2014, 0, 1),\n * end: new Date(2014, 0, 7)\n * })\n * //=> false\n *\n * @example\n * // For date equal to interval start:\n * isWithinInterval(date, { start, end: date }) // => true\n *\n * @example\n * // For date equal to interval end:\n * isWithinInterval(date, { start: date, end }) // => true\n */\nexport default function isWithinInterval(dirtyDate, interval) {\n requiredArgs(2, arguments);\n var time = toDate(dirtyDate).getTime();\n var startTime = toDate(interval.start).getTime();\n var endTime = toDate(interval.end).getTime(); // Throw an exception if start date is after end date or if any date is `Invalid Date`\n\n if (!(startTime <= endTime)) {\n throw new RangeError('Invalid interval');\n }\n\n return time >= startTime && time <= endTime;\n}","import addDays from \"../addDays/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\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 * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} day - the day of the week of the new date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the new date with the day of the week set\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n *\n * @example\n * // Set week day to Sunday, with the default weekStartsOn of Sunday:\n * var 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 * var result = setDay(new Date(2014, 8, 1), 0, { weekStartsOn: 1 })\n * //=> Sun Sep 07 2014 00:00:00\n */\nexport default function setDay(dirtyDate, dirtyDay, dirtyOptions) {\n requiredArgs(2, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = toInteger(dirtyDay);\n var currentDay = date.getDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var delta = 7 - weekStartsOn;\n var diff = day < 0 || day > 6 ? day - (currentDay + delta) % 7 : (dayIndex + delta) % 7 - (currentDay + delta) % 7;\n return addDays(date, diff);\n}","export enum DatePickerCalendarDayVariant {\n SINGLE = 'single',\n MIDDLE = 'middle',\n BEGINNING = 'beginning',\n END = 'end',\n}\n\nexport enum DatePickerCalendarDayClass {\n // Variant\n SINGLE = DatePickerCalendarDayVariant.SINGLE,\n MIDDLE = DatePickerCalendarDayVariant.MIDDLE,\n BEGINNING = DatePickerCalendarDayVariant.BEGINNING,\n END = DatePickerCalendarDayVariant.END,\n\n // Selected\n SELECTED = 'selected',\n UNSELECTED = 'unselected',\n\n // Current day\n CURRENT_DAY = 'current-day',\n\n // Disabled\n DISABLED = 'disabled',\n}\n\nexport enum DatePickerCalendarDayEvent {\n CLICK = 'click',\n MOUSE_OVER = 'mouseover',\n}\n","<template>\n <td\n class=\"b-date-picker-calendar-day\"\n :class=\"conditionalClasses\"\n tabindex=\"-1\"\n @click=\"() => onClick(day)\"\n @mouseover=\"$emit(DatePickerCalendarDayEvent.MOUSE_OVER)\"\n >\n <div class=\"b-date-picker-calendar-day__wrapper\">\n <bento-date class=\"b-date-picker-calendar-day__label\" :date=\"day\" :format=\"BentoDateFormat.DAY_OF_MONTH\" />\n </div>\n </td>\n</template>\n\n<script lang=\"ts\">\n import { computed, defineComponent, PropType } from 'vue';\n import { BentoDate, BentoDateFormat } from '@/components/date';\n import {\n DatePickerCalendarDayClass,\n DatePickerCalendarDayEvent,\n DatePickerCalendarDayVariant,\n } from './date-picker-calendar-day.types';\n\n /**\n * Handles the styles and states of the individual dates of the calendar.\n *\n * @example\n * import { DatePickerCalendarDay } from './date-picker-calendar-day';\n *\n * export default {\n * components: { DatePickerCalendarDay },\n * template: `\n * <table>\n * <tbody>\n * <tr>\n * <date-picker-calendar-day\n * :day=\"new Date()\"\n * :disabled=\"true\"\n * :selected=\"true\"\n * :variant=\"DatePickerCalendarDayVariant.MIDDLE\"\n * />\n * </tr>\n * </tbody>\n * </table>\n * `\n * }\n */\n export default defineComponent({\n name: 'date-picker-calendar-day',\n components: { BentoDate },\n inheritAttrs: true,\n props: {\n /**\n * Date to be displayed as the calendar day. From 1st to 31st (or end of the month defined in the date)\n */\n day: { type: Date, required: true },\n\n /**\n * Indicate if a date should be disabled or not\n */\n disabled: { type: Boolean, default: false },\n\n /**\n * Changes the state of the calendar day to selected.\n */\n selected: { type: Boolean, default: false },\n\n /**\n * When the day is selected, this indicates if the selection is a single date or part of a range.\n * If it's a range it can be at the beginning, middle or end of the selection.\n */\n variant: {\n type: String as PropType<DatePickerCalendarDayVariant>,\n default: DatePickerCalendarDayVariant.SINGLE,\n validator: (value: DatePickerCalendarDayVariant) =>\n Object.values(DatePickerCalendarDayVariant).includes(value),\n },\n },\n emits: [DatePickerCalendarDayEvent.CLICK, DatePickerCalendarDayEvent.MOUSE_OVER],\n setup(props, { emit }) {\n const isCurrentDay = computed(() => {\n const today = new Date();\n return (\n props.day.getDate() === today.getDate() &&\n props.day.getMonth() === today.getMonth() &&\n props.day.getFullYear() === today.getFullYear()\n );\n });\n\n const conditionalClasses = computed(() => ({\n // Variants\n [`b-date-picker-calendar-day--${DatePickerCalendarDayClass.BEGINNING}`]:\n props.variant === DatePickerCalendarDayVariant.BEGINNING,\n [`b-date-picker-calendar-day--${DatePickerCalendarDayClass.MIDDLE}`]:\n props.variant === DatePickerCalendarDayVariant.MIDDLE,\n [`b-date-picker-calendar-day--${DatePickerCalendarDayClass.END}`]:\n props.variant === DatePickerCalendarDayVariant.END,\n [`b-date-picker-calendar-day--${DatePickerCalendarDayClass.SINGLE}`]:\n props.variant === DatePickerCalendarDayVariant.SINGLE,\n\n // Selected\n [`b-date-picker-calendar-day--${DatePickerCalendarDayClass.UNSELECTED}`]: !props.selected,\n [`b-date-picker-calendar-day--${DatePickerCalendarDayClass.SELECTED}`]: props.selected,\n\n // Current Day\n [`b-date-picker-calendar-day--${DatePickerCalendarDayClass.CURRENT_DAY}`]: isCurrentDay.value,\n\n // Disabled\n [`b-date-picker-calendar-day--${DatePickerCalendarDayClass.DISABLED}`]: props.disabled,\n }));\n\n const onClick = (selectedDay: Date) => {\n if (!props.disabled) {\n emit(DatePickerCalendarDayEvent.CLICK, selectedDay, props.day);\n }\n };\n\n return {\n // Values\n conditionalClasses,\n\n // Enums\n BentoDateFormat,\n DatePickerCalendarDayEvent,\n\n // Events\n onClick,\n };\n },\n });\n</script>\n\n<style lang=\"scss\" scoped src=\"./date-picker-calendar-day.scss\" />\n","export enum DatePickerCalendarEvent {\n INPUT = 'input',\n MOUSE_OVER = 'mouseover',\n NEXT_MONTH = 'nextMonth',\n PREVIOUS_MONTH = 'previousMonth',\n}\n\nexport enum DatePickerCalendarPosition {\n FIRST = 'first',\n LAST = 'last',\n MIDDLE = 'middle',\n UNIQUE = 'unique',\n}\n\nexport enum DatePickerCalendarFirstDayOfWeek {\n MONDAY = 1,\n SATURDAY = 6,\n SUNDAY = 0,\n}\n\nexport type DatePickerCalendarIsDateDisabled = (date: Date) => boolean;\n","<template>\n <div class=\"b-date-picker-calendar\">\n <div class=\"b-date-picker-calendar__month-selector\">\n <!-- go to previous month -->\n <div class=\"b-date-picker-calendar__previous\">\n <bento-button\n v-if=\"shouldShowPreviousMonthButton\"\n :variant=\"BentoButtonVariant.TERTIARY\"\n @click=\"showPreviousMonth\"\n >\n <template #iconLeft>\n <chevron-left-icon :svg-title=\"$t('previousMonth')\" />\n </template>\n </bento-button>\n </div>\n\n <!-- month's name -->\n <bento-typography\n :el=\"BentoTypographyElement.H2\"\n :variant=\"BentoTypographyVariant.SUBTITLE\"\n aria-live=\"polite\"\n >\n {{ formattedMonthDate }}\n </bento-typography>\n\n <!-- go to next month -->\n <div class=\"b-date-picker-calendar__next\">\n <bento-button\n v-if=\"shouldShowNextMonthButton\"\n :variant=\"BentoButtonVariant.TERTIARY\"\n @click=\"showNextMonth\"\n >\n <template #iconLeft>\n <chevron-right-icon :svg-title=\"$t('nextMonth')\" />\n </template>\n </bento-button>\n </div>\n </div>\n\n <table class=\"b-date-picker-calendar__month-calendar\">\n <thead>\n <tr class=\"b-date-picker-calendar__week-header\">\n <th\n v-for=\"(dayOfWeekFormatted, index) in daysOfWeek\"\n :key=\"index\"\n class=\"b-date-picker-calendar__day-of-week\"\n >\n <bento-typography\n class=\"b-date-picker-calendar__day-of-week-font\"\n :el=\"BentoTypographyElement.SPAN\"\n :variant=\"BentoTypographyVariant.CAPTION\"\n >\n {{ dayOfWeekFormatted }}\n </bento-typography>\n </th>\n </tr>\n </thead>\n <tbody>\n <tr v-for=\"(week, index) in weeksOfMonth\" :key=\"index\">\n <td v-if=\"index === 0 && week.length < 7\" :colspan=\"7 - week.length\"> </td>\n <date-picker-calendar-day\n v-for=\"(day, dayIndex) in week\"\n :key=\"`data-picker-calendar-day-${dayIndex}`\"\n :day=\"day\"\n :disabled=\"isDateDisabled ? isDateDisabled(day) : undefined\"\n :selected=\"isSelectedDate(day)\"\n :variant=\"dayVariant(day)\"\n @click=\"onDayClicked\"\n @mouseover=\"$emit(DatePickerCalendarEvent.MOUSE_OVER, day)\"\n />\n </tr>\n </tbody>\n </table>\n </div>\n</template>\n\n<script lang=\"ts\">\n import { computed, defineComponent, PropType } from 'vue';\n import { BentoButton, BentoButtonVariant } from '@/components/button';\n import { DatePickerCalendarDay, DatePickerCalendarDayVariant } from './components/date-picker-calendar-day';\n import { BentoTypography, BentoTypographyElement, BentoTypographyVariant } from '@/components/typography';\n import { useI18n } from '@/utils/ts/i18n';\n import { de, enUS, fr } from 'date-fns/locale';\n import {\n DatePickerCalendarEvent,\n DatePickerCalendarFirstDayOfWeek,\n DatePickerCalendarIsDateDisabled,\n DatePickerCalendarPosition,\n } from './date-picker-calendar.types';\n import ChevronLeftIcon from '@adyen/ui-assets-icons-16/vue/chevron-left';\n import ChevronRightIcon from '@adyen/ui-assets-icons-16/vue/chevron-right';\n import setDay from 'date-fns/setDay';\n import startOfMonth from 'date-fns/startOfMonth';\n import startOfDay from 'date-fns/startOfDay';\n import format from 'date-fns/format';\n import isSameDay from 'date-fns/isSameDay';\n import isWithinInterval from 'date-fns/isWithinInterval';\n\n import messages from './messages.json';\n\n /**\n * Date picker calendar that displays all the days of a given month\n * and allows to move back and forth the visible month with the Next\n * and Previous buttons\n *\n * @example\n * import { DatePickerCalendar } from './date-picker-calendar.vue';\n *\n * export default {\n * components: { DatePickerCalendar },\n * template: `\n * <date-picker-calendar\n * :first-day-of-week=\"firstDayOfWeek\"\n * :is-date-disabled=\"isDateDisabled\"\n * :month=\"calculateOffsetMonth(index)\"\n * :position=\"calendarPosition(index)\"\n * :is-range=\"isRange\"\n * :start-date=\"value.startDate\"\n * :end-date=\"value.endDate\"\n * @input=\"onDateInput\"\n * @mouseover=\"onMouseOver\"\n * @nextMonth=\"calculateNextMonths\"\n * @previousMonth=\"calculatePreviousMonths\"\n * />\n * `\n * }\n */\n export default defineComponent({\n i18n: { messages },\n name: 'date-picker-calendar',\n components: {\n BentoButton,\n BentoTypography,\n DatePickerCalendarDay,\n ChevronLeftIcon,\n ChevronRightIcon,\n },\n inheritAttrs: false,\n props: {\n /**\n * end of the selected range\n */\n endDate: { type: Date, default: null },\n\n /**\n * Allows you to set the first day of the week. 0 is sunday, 1 is monday, 6 is saturday\n */\n firstDayOfWeek: {\n type: Number as PropType<DatePickerCalendarFirstDayOfWeek>,\n default: DatePickerCalendarFirstDayOfWeek.MONDAY,\n validator: (value: DatePickerCalendarFirstDayOfWeek) =>\n Object.values(DatePickerCalendarFirstDayOfWeek).includes(value),\n },\n\n /**\n * Indicate if a date should be disabled or not\n */\n isDateDisabled: { type: Function as PropType<DatePickerCalendarIsDateDisabled>, default: undefined },\n\n /**\n * Indicates if the calendar is part of a range date picker or a sigle date picker\n */\n isRange: { type: Boolean, default: false },\n\n /**\n * Month of the year to be displayed in the calendar\n */\n month: { type: Date, required: true },\n\n /**\n * When rendering multiple calendars, this property allows to render the\n * Next and Previous calendar buttons to the right, left or not at all\n * depending on the position: Unique (only 1), First, Middle or Last\n */\n position: {\n type: String as PropType<DatePickerCalendarPosition>,\n default: DatePickerCalendarPosition.UNIQUE,\n validator: (value: DatePickerCalendarPosition) =>\n Object.values(DatePickerCalendarPosition).includes(value),\n },\n\n /**\n * start of the selected range\n */\n startDate: { type: Date, default: null }, // can be undefined, eslint complains without default\n },\n emits: [\n DatePickerCalendarEvent.INPUT,\n DatePickerCalendarEvent.NEXT_MONTH,\n DatePickerCalendarEvent.PREVIOUS_MONTH,\n DatePickerCalendarEvent.MOUSE_OVER,\n ],\n setup(props, { emit }) {\n // Date formatter locale options\n const { locale } = useI18n({ messages });\n const locales = { de, enUS, fr };\n\n /**\n * Default to Monday if the value passed in is not part of the defined Enum\n */\n const fallbackFirstDayOfWeek = computed(() =>\n Object.values(DatePickerCalendarFirstDayOfWeek).includes(props.firstDayOfWeek)\n ? props.firstDayOfWeek\n : DatePickerCalendarFirstDayOfWeek.MONDAY\n );\n\n /**\n * Renders the previous month button if it's Unique or First calendar\n */\n const shouldShowPreviousMonthButton = computed(() =>\n [DatePickerCalendarPosition.FIRST, DatePickerCalendarPosition.UNIQUE].includes(props.position)\n );\n\n /**\n * Renders the next month button if it's Unique or Last calendar\n */\n const shouldShowNextMonthButton = computed(() =>\n [DatePickerCalendarPosition.LAST, DatePickerCalendarPosition.UNIQUE].includes(props.position)\n );\n\n /**\n * Formats the month date to the name of the month and the year\n */\n const formattedMonthDate = computed(() =>\n format(props.month, 'MMMM yyyy', {\n locale: locales[locale.value.substring(0, 2)] || enUS,\n })\n );\n\n /**\n * Formats all the days of the week to their day name\n */\n const daysOfWeek = computed(() =>\n new Array(7).fill(new Date()).map((date, index) => {\n const dayOfWeekDate = setDay(date, fallbackFirstDayOfWeek.value + index);\n\n return format(dayOfWeekDate, 'EEE', {\n locale: locales[locale.value.substring(0, 2)] || enUS,\n });\n })\n );\n\n /**\n * Calculates all the weeks of the current \"props.month\"\n * and adds the respective day number to each column and week\n */\n const weeksOfMonth = computed(() => {\n const weeks = [];\n const date = startOfMonth(props.month);\n let week = weeks[weeks.push([]) - 1];\n\n while (date.getMonth() === props.month.getMonth()) {\n if (date.getDay() - fallbackFirstDayOfWeek.value === 0 && week.length > 0) {\n week = weeks[weeks.push([]) - 1];\n }\n\n week.push(startOfDay(date));\n date.setDate(date.getDate() + 1);\n }\n\n return weeks;\n });\n\n const onDayClicked = (selectedDate: Date) => {\n emit(DatePickerCalendarEvent.INPUT, selectedDate);\n };\n\n /**\n * Calculates the variation of the days selected.\n * For single select it's always SINGLE\n * For ranges:\n * - Start & End is the same: SINGLE\n * - Start: BEGINNING\n * - End: END\n * - Within the range: MIDDLE\n * @param {Date} day Current day\n */\n // eslint-disable-next-line consistent-return\n const dayVariant = (day: Date) => {\n if (!props.isRange || isSameDay(props.startDate, props.endDate)) {\n return DatePickerCalendarDayVariant.SINGLE;\n }\n\n if (props.startDate && isSameDay(props.startDate, day)) {\n return DatePickerCalendarDayVariant.BEGINNING;\n }\n if (props.endDate && isSameDay(props.endDate, day)) {\n return DatePickerCalendarDayVariant.END;\n }\n if (\n props.startDate &&\n props.endDate &&\n isWithinInterval(day, { start: props.startDate, end: props.endDate })\n ) {\n return DatePickerCalendarDayVariant.MIDDLE;\n }\n };\n\n /**\n * Checks every date in the calendar to see if it's selected.\n * @param day Current day in the calendar\n */\n const isSelectedDate = (day: Date) => {\n // Single selection\n if (props.startDate && isSameDay(props.startDate, day)) {\n return true;\n }\n\n // Range\n return (\n props.startDate &&\n props.endDate &&\n isWithinInterval(day, { start: props.startDate, end: props.endDate })\n );\n };\n\n const showNextMonth = () => {\n emit(DatePickerCalendarEvent.NEXT_MONTH);\n };\n\n const showPreviousMonth = () => {\n emit(DatePickerCalendarEvent.PREVIOUS_MONTH);\n };\n\n return {\n // Values\n daysOfWeek,\n weeksOfMonth,\n formattedMonthDate,\n shouldShowNextMonthButton,\n shouldShowPreviousMonthButton,\n\n // Enums\n BentoButtonVariant,\n BentoTypographyElement,\n BentoTypographyVariant,\n DatePickerCalendarDayVariant,\n DatePickerCalendarEvent,\n\n // Functions\n isSelectedDate,\n showNextMonth,\n showPreviousMonth,\n dayVariant,\n\n // Events\n onDayClicked,\n };\n },\n });\n</script>\n\n<style lang=\"scss\" scoped src=\"./date-picker-calendar.scss\" />\n","import { Ref, UnwrapNestedRefs } from 'vue';\n\nexport interface DatePickerCalendarPaneRangeDate {\n startDate: Date;\n endDate: Date;\n}\n\nexport type DatePickerCalendarPaneValue = Date | DatePickerCalendarPaneRangeDate;\n\ninterface UseCalendarPaneProps {\n selectedDate: Ref<DatePickerCalendarPaneValue>;\n isDateDisabled?: (date: Date) => boolean;\n}\n\nexport type UseCalendarPane = (\n propRefs: UseCalendarPaneProps,\n emit\n) => {\n internalValue: UnwrapNestedRefs<DatePickerCalendarPaneRangeDate>;\n onDateInput: (date: Date) => void;\n onMouseOver: (date: Date) => void;\n};\n\nexport enum DatePickerCalendarPaneEvent {\n INPUT = 'input',\n START_DATE_SELECTED = 'start-date-selected',\n END_DATE_SELECTED = 'end-date-selected',\n}\n","import { reactive, watch } from 'vue';\nimport { DatePickerCalendarPaneEvent, UseCalendarPane } from '../date-picker-calendar-pane.types';\n\nexport const useSinglePane: UseCalendarPane = ({ selectedDate }, emit) => {\n /**\n * Internal date manipulation.\n */\n const internalValue = reactive({\n startDate: null,\n endDate: null,\n });\n\n /**\n * Set \"internalValue\" to the initial date and kept in sync for when\n * the date is changed outside of the component while the component is mounted\n */\n watch(\n () => selectedDate.value,\n () => {\n internalValue.startDate = selectedDate.value;\n internalValue.endDate = undefined;\n },\n { immediate: true }\n );\n\n /**\n * Called when a date is selected.\n *\n * Emits the selected date\n *\n * @param date - Date clicked\n */\n const onDateInput = (date: Date) => {\n emit(DatePickerCalendarPaneEvent.INPUT, date);\n };\n\n return {\n internalValue,\n\n onDateInput,\n // Empty function to prevent the listeners from throwing a warning\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onMouseOver: () => {},\n };\n};\n","import { reactive, ref, watch } from 'vue';\nimport {\n DatePickerCalendarPaneEvent,\n DatePickerCalendarPaneRangeDate,\n UseCalendarPane,\n} from '../date-picker-calendar-pane.types';\nimport isBefore from 'date-fns/isBefore';\nimport startOfDay from 'date-fns/startOfDay';\nimport isAfter from 'date-fns/isAfter';\n\nexport const useRangePane: UseCalendarPane = ({ selectedDate, isDateDisabled }, emit) => {\n /**\n * Internal date manipulation.\n * This allows to change the dates with the form.\n */\n const internalValue = reactive({\n startDate: null,\n endDate: null,\n });\n\n /**\n * First clicked date to calculate the ranges with\n */\n const clickedDate = ref<Date | null>(null);\n\n /**\n * Set \"internalValue\" to the initial date and kept in sync for when\n * the date is changed outside of the component while the component is mounted\n */\n watch(\n () => selectedDate.value,\n () => {\n let { startDate = null, endDate = null } = (selectedDate.value as DatePickerCalendarPaneRangeDate) || {};\n\n if (startDate) startDate = startOfDay(startDate);\n if (endDate) endDate = startOfDay(endDate);\n\n if (\n (startDate && isDateDisabled && isDateDisabled(startDate)) ||\n (endDate && isDateDisabled && isDateDisabled(endDate)) ||\n (startDate && endDate && isAfter(startDate, endDate))\n ) {\n // Disabled dates do nothing\n return;\n }\n\n internalValue.startDate = startDate;\n internalValue.endDate = endDate;\n },\n { immediate: true }\n );\n\n const setDates = (startDate: Date, endDate: Date) => {\n // For manual input to be registered, null values are allowed\n internalValue.startDate = startDate;\n internalValue.endDate = endDate;\n };\n\n /**\n * Called when a date is selected.\n *\n * - Initial click: Sets the selected date\n * - Second click: Selects the date range. Emits the Start date & End date\n *\n * @param date - Date clicked\n */\n const onDateInput = (date: Date) => {\n if (clickedDate.value) {\n // Reset clicked date after second click\n clickedDate.value = null;\n\n // Set the end date in our internal value which will be emitted\n setDates(internalValue.startDate, date);\n // Emit when the second date (endDate) is selected\n emit(DatePickerCalendarPaneEvent.INPUT, internalValue);\n } else {\n clickedDate.value = date;\n setDates(date, date);\n emit(DatePickerCalendarPaneEvent.START_DATE_SELECTED, date);\n emit(DatePickerCalendarPaneEvent.END_DATE_SELECTED, date);\n }\n };\n\n /**\n * When the mouse moves over the days it recalculates the\n * range and moves it to the next range.\n *\n * If it's before the intial date it switches the range (start becomes end and vice versa)\n * If it's after it sets the new end date.\n * @param date - Hovered date\n */\n const onMouseOver = (date: Date) => {\n if (!clickedDate.value || (isDateDisabled && isDateDisabled(date))) {\n return;\n }\n\n if (isBefore(date, clickedDate.value)) {\n setDates(date, clickedDate.value);\n emit(DatePickerCalendarPaneEvent.START_DATE_SELECTED, date);\n emit(DatePickerCalendarPaneEvent.END_DATE_SELECTED, clickedDate.value);\n } else {\n setDates(clickedDate.value, date);\n emit(DatePickerCalendarPaneEvent.START_DATE_SELECTED, clickedDate.value);\n emit(DatePickerCalendarPaneEvent.END_DATE_SELECTED, date);\n }\n };\n\n return {\n internalValue,\n\n onDateInput,\n onMouseOver,\n };\n};\n","<template>\n <div class=\"b-date-picker-calendar-pane\" :class=\"conditionalClasses\">\n <date-picker-calendar\n v-for=\"(_, index) in numberOfMonths\"\n :key=\"`date-picker-calendar-range-${index}`\"\n :first-day-of-week=\"firstDayOfWeek\"\n :is-date-disabled=\"isDateDisabled\"\n :month=\"calculateOffsetMonth(index)\"\n :position=\"calendarPosition(index)\"\n :is-range=\"isRange\"\n :start-date=\"internalValue.startDate\"\n :end-date=\"internalValue.endDate\"\n @input=\"onDateInput\"\n @mouseover=\"onMouseOver\"\n @nextMonth=\"calculateNextMonths\"\n @previousMonth=\"calculatePreviousMonths\"\n />\n </div>\n</template>\n\n<script lang=\"ts\">\n import { computed, defineComponent, PropType, ref, toRef, watch } from 'vue';\n import { DatePickerCalendar, DatePickerCalendarPosition } from '../date-picker-calendar';\n import {\n DatePickerCalendarPaneEvent,\n DatePickerCalendarPaneRangeDate,\n DatePickerCalendarPaneValue,\n } from './date-picker-calendar-pane.types';\n import { useSinglePane } from './composables/use-single-pane';\n import { useRangePane } from './composables/use-range-pane';\n import addMonths from 'date-fns/addMonths';\n import subMonths from 'date-fns/subMonths';\n\n /**\n * Handles the calendar logic to change visible months for Single calendar\n * and Range calendar, as well as the selection logic for range.\n * All the processing necessary for the calendar to select dates\n *\n * @example\n * import { BentoDatePickerCalendarPane } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { BentoDatePickerCalendarPane },\n * template: `\n * <date-picker-calendar-pane\n * :value=\"value\"\n * :first-day-of-week=\"DatePickerCalendarFirstDayOfWeek.Monday\"\n * :is-date-disabled=\"(day: Date) => boolean\"\n * :number-of-months=\"2\"\n * is-range\n * @input=\"(selectedDate) => void\"\n * @start-date-selected=\"(startDate: Date) => void\"\n * @end-date-selected=\"(endDate: Date) => void\"\n * />\n * `\n * }\n */\n export default defineComponent({\n name: 'bento-date-picker-calendar-pane',\n components: {\n DatePickerCalendar,\n },\n inheritAttrs: false,\n props: {\n /**\n * Allows you to set the first day of the week. 0 is sunday, 1 is monday, 6 is saturday\n */\n firstDayOfWeek: DatePickerCalendar.props.firstDayOfWeek,\n\n /**\n * Indicate if a date should be disabled or not\n */\n isDateDisabled: DatePickerCalendar.props.isDateDisabled,\n\n /**\n * Enables the Date Range calendar\n */\n isRange: DatePickerCalendar.props.isRange,\n\n /**\n * Number of months rendered on pane\n */\n numberOfMonths: {\n type: Number,\n default: 3,\n validator: (n: number) => n >= 1,\n },\n\n /**\n * Selected date. Can be a single Date or a DatePickerCalendarPaneRangeDate\n * instance that contains startDate and endDate attributes.\n */\n value: { type: [Date, Object] as PropType<DatePickerCalendarPaneValue>, default: undefined },\n },\n emit: [\n DatePickerCalendarPaneEvent.INPUT,\n DatePickerCalendarPaneEvent.START_DATE_SELECTED,\n DatePickerCalendarPaneEvent.END_DATE_SELECTED,\n ],\n setup(props, { emit }) {\n // Use a duplicate of \"month\" to move back and\n // forth with the arrows. Maintained in sync with the prop \"value\"\n const baseDate = ref();\n watch(\n () => props.value,\n () => {\n if (props.isRange) {\n baseDate.value = (props.value as DatePickerCalendarPaneRangeDate).startDate || new Date();\n } else {\n baseDate.value = (props.value as Date) || new Date();\n }\n },\n { immediate: true }\n );\n\n const conditionalClasses = computed(() => ({\n 'b-date-picker-calendar-pane__range': props.isRange,\n }));\n\n const {\n internalValue,\n\n onDateInput,\n onMouseOver,\n } = props.isRange\n ? useRangePane(\n {\n selectedDate: toRef(props, 'value'),\n isDateDisabled: props.isDateDisabled as (date: Date) => boolean,\n },\n emit\n )\n : useSinglePane(\n {\n selectedDate: toRef(props, 'value'),\n },\n emit\n );\n\n /**\n * Calculate the current month calendar.\n * This is used to render/hide the Previous & Next buttons on each calendar.\n * @param {number} calendarIndex - Number to offset the calendar position\n */\n const calendarPosition = (calendarIndex: number) => {\n if (props.numberOfMonths === 1) {\n return DatePickerCalendarPosition.UNIQUE;\n }\n\n if (calendarIndex === 0) {\n return DatePickerCalendarPosition.FIRST;\n }\n\n return calendarIndex === props.numberOfMonths - 1\n ? DatePickerCalendarPosition.LAST\n : DatePickerCalendarPosition.MIDDLE;\n };\n\n /**\n * Calculates in relation to the amount of months defined in \"numberOfMonths\"\n * which calendar month should be render starting from the first (leftmost)\n * rendered calendar.\n * @param offsetMonth - Amount of months to add after the first month was rendered\n */\n const calculateOffsetMonth = (offsetMonth: number) => addMonths(baseDate.value, offsetMonth);\n\n /**\n * Shows the folllowing month\n */\n const calculateNextMonths = () => {\n baseDate.value = addMonths(baseDate.value, 1);\n };\n\n /**\n * Shows the previous month\n */\n const calculatePreviousMonths = () => {\n baseDate.value = subMonths(baseDate.value, 1);\n };\n\n return {\n // Values\n baseDate,\n conditionalClasses,\n internalValue,\n\n // Methods\n calculateOffsetMonth,\n calendarPosition,\n\n // Events\n onDateInput,\n onMouseOver,\n calculateNextMonths,\n calculatePreviousMonths,\n };\n },\n });\n</script>\n\n<style lang=\"scss\" scoped src=\"./date-picker-calendar-pane.scss\" />\n","import { ComputedRef, Ref } from 'vue';\n\nexport { DatePickerCalendarFirstDayOfWeek as BentoDatePickerFirstDayOfWeek } from './components/date-picker-calendar';\nexport type { DatePickerCalendarIsDateDisabled as BentoDatePickerIsDateDisabled } from './components/date-picker-calendar';\nexport type {\n DatePickerCalendarPaneValue as BentoDatePickerValue,\n DatePickerCalendarPaneRangeDate as BentoDatePickerRangeDate,\n} from './components/date-picker-calendar-pane/date-picker-calendar-pane.types';\n\nexport interface DatePickerCalendarPaneRangeFormData {\n startDate: string;\n endDate: string;\n}\nexport interface UseDateDisplayTextProps<T> {\n datePickerValue: Ref<T>;\n isDateIncorrect: Ref<boolean>;\n}\nexport type UseDateDisplayText<T> = (props: UseDateDisplayTextProps<T>) => {\n // Values\n dateDisplayValue: ComputedRef<string>;\n textInputDisplayValue: Ref<string> | DatePickerCalendarPaneRangeFormData;\n // Methods\n formatTextInputDisplayValue: () => void;\n};\n\nexport enum BentoDatePickerEvent {\n INPUT = 'input',\n}\n\nexport enum BentoDatePickerVariant {\n SINGLE_CALENDAR = 'single-calendar',\n RANGE_CALENDAR = 'range-calendar',\n}\n","export enum DatePickerCalendarRangeEvent {\n INPUT = 'input',\n ERROR = 'error',\n FORM_DATE = 'form-date',\n}\n","<template>\n <div class=\"b-date-picker-calendar-range\">\n <!-- Form -->\n <div class=\"b-date-picker-calendar-range__form-container\">\n <div class=\"b-date-picker-calendar-range__form\">\n <template v-if=\"hasSlot('title')\">\n <slot name=\"title\" />\n </template>\n <div>\n <bento-typography\n stronger\n :el=\"BentoTypographyElement.SPAN\"\n class=\"b-date-picker-calendar-range__label\"\n >\n From\n </bento-typography>\n <div>\n <bento-input-field\n :value=\"dateTextInput.startDate\"\n :error=\"startDateError\"\n class=\"b-date-picker-calendar-range__form-input\"\n @input=\"onStartDateInput\"\n >\n <template #description>YYYY-MM-DD</template>\n </bento-input-field>\n </div>\n </div>\n\n <div>\n <bento-typography\n stronger\n :el=\"BentoTypographyElement.SPAN\"\n class=\"b-date-picker-calendar-range__label\"\n >\n To\n </bento-typography>\n <div>\n <bento-input-field\n class=\"b-date-picker-calendar-range__form-input\"\n :value=\"dateTextInput.endDate\"\n :error=\"endDateError\"\n @input=\"onEndDateInput\"\n >\n <template #description>YYYY-MM-DD</template>\n </bento-input-field>\n </div>\n </div>\n </div>\n\n <div v-if=\"hasSlot('actions')\">\n <slot name=\"actions\" />\n </div>\n </div>\n\n <!-- Calendar -->\n <div class=\"b-date-picker-calendar-range__calendars-container\">\n <date-picker-calendar-pane\n :value=\"value\"\n :first-day-of-week=\"firstDayOfWeek\"\n :is-date-disabled=\"isDateDisabled\"\n :number-of-months=\"numberOfMonths\"\n is-range\n @input=\"onDateInput\"\n @start-date-selected=\"onStartDateSelected\"\n @end-date-selected=\"onEndDateSelected\"\n />\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\n import { defineComponent, onMounted, PropType, reactive, ref } from 'vue';\n import { DatePickerCalendarPane } from '../date-picker-calendar-pane';\n import { BentoTypography, BentoTypographyElement } from '@/components/typography';\n import { BentoInputField } from '@/components/input-field';\n import { de, enUS, fr } from 'date-fns/locale';\n import { useI18n } from '@/utils/ts/i18n';\n import { debounce } from '@/utils/ts/debounce';\n import { hasSlot } from '@/utils/ts/hasSlot';\n import {\n DatePickerCalendarPaneRangeDate,\n DatePickerCalendarPaneValue,\n } from '../date-picker-calendar-pane/date-picker-calendar-pane.types';\n import { DatePickerCalendarRangeEvent } from './date-picker-calendar-range.types';\n import { DateFormat } from '@/types';\n import format from 'date-fns/format';\n\n const FORM_INPUT_DEBOUNCE_TIME = 300;\n\n /**\n * Calendar for range dates. Contains the logic to handle the range forms.\n *\n * @example\n * import DatePickerCalendarRange from './date-picker-calendar-range.vue';\n *\n * export default {\n * components: { DatePickerCalendarRange },\n * template: `\n * <date-picker-calendar-range\n * :value=\"{startDate: new Date(), endDate: new Date() }\"\n * :first-day-of-week=\"BentoDatePickerFirstDayOfWeek.MONDAY\"\n * :is-date-disabled=\"(date: Date) => boolean\"\n * :number-of-months=\"2\"\n * @input=\"({ startDate, endDate }) => void\"\n * />\n * `\n * }\n */\n export default defineComponent({\n name: 'date-picker-calendar-range',\n components: {\n BentoInputField,\n BentoTypography,\n DatePickerCalendarPane,\n },\n inheritAttrs: false,\n props: {\n /**\n * Allows you to set the first day of the week. 0 is sunday, 1 is monday, 6 is saturday\n */\n firstDayOfWeek: DatePickerCalendarPane.props.firstDayOfWeek,\n\n /**\n * Indicate if a date should be disabled or not\n */\n isDateDisabled: DatePickerCalendarPane.props.isDateDisabled,\n\n /**\n * Number of months rendered on pane\n */\n numberOfMonths: DatePickerCalendarPane.props.numberOfMonths,\n\n /**\n * Ranges form persistance data\n */\n dateFormData: { type: Object, default: () => ({ startDate: undefined, endDate: undefined }) },\n\n /**\n * Selected date\n */\n value: { type: Object as PropType<DatePickerCalendarPaneValue>, default: undefined },\n },\n emits: [\n DatePickerCalendarRangeEvent.INPUT,\n DatePickerCalendarRangeEvent.ERROR,\n DatePickerCalendarRangeEvent.FORM_DATE,\n ],\n setup(props, { emit, slots }) {\n const { locale } = useI18n(undefined, true);\n const locales = { de, enUS, fr };\n const internalRangeDate = reactive({\n startDate: (props.value as DatePickerCalendarPaneRangeDate)?.startDate,\n endDate: (props.value as DatePickerCalendarPaneRangeDate)?.endDate,\n });\n\n /**\n * Format date to a string value in format yyyy-MM-dd\n * @param {Date} dateToFormat Date to be formatted\n */\n const formatDate = (dateToFormat?: Date) => {\n if (!dateToFormat) {\n return '';\n }\n return format(dateToFormat, DateFormat.NUMERIC_DATE_YEAR_FIRST, {\n locale: locales[locale.value.substring(0, 2)] || enUS,\n });\n };\n\n // Form error flags\n const startDateError = ref(false);\n const endDateError = ref(false);\n\n // Form input text used in range variant\n const dateTextInput = reactive({\n startDate: props.dateFormData.startDate,\n endDate: props.dateFormData.endDate,\n });\n\n const onDateInput = (selectedDate: Date) => {\n emit(DatePickerCalendarRangeEvent.INPUT, selectedDate);\n };\n\n const isValidDate = (dateText: string) => {\n // Is date selectable\n const isDateEnabled = (date: Date) => {\n // Check if function is set, otherwise all dates are enabled\n if (props.isDateDisabled) {\n return !props.isDateDisabled(date);\n }\n\n return true;\n };\n\n // YYYY-MM-DD regex\n const dateRegex = /^\\d{4}-(0?[1-9]|1[012])-(0?[1-9]|[12][0-9]|3[01])$/;\n // Date matches text regex\n return dateRegex.test(dateText) && isDateEnabled(new Date(dateText));\n };\n\n /**\n * When mounted, set the input error states to true if the values are not valid\n */\n onMounted(() => {\n if (props.dateFormData.startDate && !isValidDate(props.dateFormData.startDate)) {\n startDateError.value = true;\n }\n\n if (props.dateFormData.endDate && !isValidDate(props.dateFormData.endDate)) {\n endDateError.value = true;\n }\n });\n\n const onStartDateSelected = (newStartDate: Date) => {\n dateTextInput.startDate = formatDate(newStartDate);\n };\n\n const onEndDateSelected = (newEndDate: Date) => {\n dateTextInput.endDate = formatDate(newEndDate);\n };\n\n const getDate = (keyName: keyof DatePickerCalendarPaneRangeDate) => {\n const dateProp = (props.value as DatePickerCalendarPaneRangeDate)[keyName];\n if (dateProp) {\n return dateProp;\n }\n\n if (props.dateFormData[keyName] && isValidDate(props.dateFormData[keyName])) {\n return new Date(props.dateFormData[keyName]);\n }\n\n return undefined;\n };\n\n const onStartDateInput = debounce((startDateText: string) => {\n // Set the date as string when input through the form\n dateTextInput.startDate = startDateText;\n\n // Checks for YYYY-MM-DD format\n if (isValidDate(startDateText)) {\n startDateError.value = false;\n // Format date string to Date object\n internalRangeDate.startDate = new Date(startDateText);\n\n const endDate = getDate('endDate');\n\n emit(DatePickerCalendarRangeEvent.FORM_DATE, {\n startDate: new Date(startDateText),\n endDate,\n });\n\n emit(DatePickerCalendarRangeEvent.INPUT, {\n startDate: new Date(startDateText),\n endDate,\n });\n } else {\n // Indicate form error\n startDateError.value = true;\n // Emit Date picker calendar error\n emit(DatePickerCalendarRangeEvent.ERROR, { ...dateTextInput });\n }\n }, FORM_INPUT_DEBOUNCE_TIME);\n\n const onEndDateInput = debounce((endDateText: string) => {\n // Set the date as string when input through the form\n dateTextInput.endDate = endDateText;\n\n // Checks for YYYY-MM-DD format\n if (isValidDate(endDateText)) {\n endDateError.value = false;\n internalRangeDate.endDate = new Date(endDateText);\n\n const startDate = getDate('startDate');\n\n emit(DatePickerCalendarRangeEvent.FORM_DATE, {\n startDate,\n endDate: new Date(endDateText),\n });\n emit(DatePickerCalendarRangeEvent.INPUT, {\n startDate,\n endDate: new Date(endDateText),\n });\n } else {\n // Indicate form error\n endDateError.value = true;\n // Emit Date picker calendar error\n emit(DatePickerCalendarRangeEvent.ERROR, { ...dateTextInput });\n }\n }, FORM_INPUT_DEBOUNCE_TIME);\n\n return {\n // Values\n dateTextInput,\n endDateError,\n startDateError,\n\n // Enums\n BentoTypographyElement,\n\n // Methods\n hasSlot: hasSlot(slots),\n\n // Events\n onDateInput,\n onStartDateSelected,\n onEndDateSelected,\n onStartDateInput,\n onEndDateInput,\n };\n },\n });\n</script>\n\n<style lang=\"scss\" scoped src=\"./date-picker-calendar-range.scss\" />\n","import { computed, ref } from 'vue';\nimport { de, enUS, fr } from 'date-fns/locale';\nimport { useI18n } from '@/utils/ts/i18n';\nimport { UseDateDisplayText } from '../date-picker.types';\nimport format from 'date-fns/format';\nimport { DateFormat } from '@/types';\n\nexport const useDatePickerSingleCalendarText: UseDateDisplayText<Date> = ({ datePickerValue, isDateIncorrect }) => {\n const { locale, t } = useI18n();\n const locales = { de, enUS, fr };\n\n const textInputDisplayValue = ref(null);\n\n const dateDisplayValue = computed(() => {\n // Display incorrect date when there's an error with the input\n if (isDateIncorrect.value) {\n return textInputDisplayValue.value;\n }\n\n // Display \"Select a date\" when there's no date selected or input\n if (!datePickerValue.value) {\n return t('selectDate') as string;\n }\n\n // Display the date in format \"dd MMM, yyyy (25 Jun, 2023)\" if there's a valid date selected\n return format(datePickerValue.value as Date, DateFormat.FULL_DATE, {\n locale: locales[locale.value.substring(0, 2)] || enUS,\n });\n });\n\n const formatTextInputDisplayValue = () => {\n textInputDisplayValue.value = format(datePickerValue.value, DateFormat.NUMERIC_DATE_YEAR_FIRST, {\n locale: locales[locale.value.substring(0, 2)] || enUS,\n });\n };\n\n return {\n // Values\n dateDisplayValue,\n textInputDisplayValue,\n\n // Methods\n formatTextInputDisplayValue,\n };\n};\n","import { computed, reactive } from 'vue';\nimport { de, enUS, fr } from 'date-fns/locale';\nimport { useI18n } from '@/utils/ts/i18n';\nimport {\n BentoDatePickerRangeDate,\n DatePickerCalendarPaneRangeFormData,\n UseDateDisplayText,\n} from '../date-picker.types';\nimport { DateFormat } from '@/types';\nimport format from 'date-fns/format';\n\nexport const useDatePickerRangeCalendarText: UseDateDisplayText<BentoDatePickerRangeDate> = ({\n datePickerValue,\n isDateIncorrect,\n}) => {\n const { locale, t } = useI18n();\n const locales = { de, enUS, fr };\n\n const formatDate = (date: Date, dateFormat: DateFormat) =>\n format(date, dateFormat, {\n locale: locales[locale.value.substring(0, 2)] || enUS,\n });\n\n // Handle the form input text\n const textInputDisplayValue = reactive<DatePickerCalendarPaneRangeFormData>({\n startDate: datePickerValue.value.startDate\n ? formatDate(datePickerValue.value.startDate, DateFormat.NUMERIC_DATE_YEAR_FIRST)\n : undefined,\n endDate: datePickerValue.value.endDate\n ? formatDate(datePickerValue.value.endDate, DateFormat.NUMERIC_DATE_YEAR_FIRST)\n : undefined,\n });\n\n const dateDisplayValue = computed(() => {\n // Display incorrect date when there's an error with the input\n if (isDateIncorrect.value) {\n return `${textInputDisplayValue.startDate || ''} - ${textInputDisplayValue.endDate || ''}`;\n }\n\n // Display \"Select a date\" when there's no date selected or input\n if (!datePickerValue.value || (!datePickerValue.value.startDate && !datePickerValue.value.endDate)) {\n return t('selectDateRange') as string;\n }\n\n const { startDate, endDate } = textInputDisplayValue;\n return `${formatDate(new Date(startDate), DateFormat.FULL_DATE_MONTH_FIRST)} - ${formatDate(\n new Date(endDate),\n DateFormat.FULL_DATE_MONTH_FIRST\n )}`;\n });\n\n const formatTextInputDisplayValue = () => '';\n\n return {\n // Values\n dateDisplayValue,\n textInputDisplayValue,\n\n // Methods\n formatTextInputDisplayValue,\n };\n};\n","<!-- TODO: Remove aria props as these are part of JSX elements /vue/types/jsx.d.ts -->\n<!-- eslint-disable vue/attribute-hyphenation -->\n<template>\n <div v-bento-click-outside-directive=\"closeDatePicker\" class=\"b-date-picker\">\n <!-- Label -->\n <div v-if=\"label\" :id=\"labelId\" class=\"b-date-picker__label\">\n <bento-typography :el=\"BentoTypographyElement.SPAN\" stronger>{{ label }}</bento-typography>\n <bento-typography\n v-if=\"optional\"\n class=\"b-date-picker__label-requirement\"\n :el=\"BentoTypographyElement.SPAN\"\n >\n ({{ $t('optional') }})\n </bento-typography>\n <bento-typography\n v-if=\"required\"\n class=\"b-date-picker__label-requirement\"\n :el=\"BentoTypographyElement.SPAN\"\n >\n ({{ $t('required') }})\n </bento-typography>\n </div>\n\n <!-- Input -->\n <div @keydown.enter=\"onEnterPressedOverInput\">\n <dropdown-input-default\n ref=\"inputContainerRef\"\n :ariaControls=\"datePickerContainerId\"\n :ariaExpanded=\"isDatePickerOpen\"\n :aria-labelledby=\"label ? labelId : null\"\n :disabled=\"disabled\"\n :dynamic-filtering=\"variant === 'single-calendar'\"\n :is-invalid=\"isDateIncorrect\"\n :open=\"isDatePickerOpen\"\n :value=\"dropdownValue\"\n :display-value=\"dateDisplayValue\"\n @input=\"onDateInputChange\"\n @open=\"openDatePicker\"\n @clear=\"clearDatePickerValue\"\n @close=\"closeDatePicker\"\n />\n </div>\n\n <!-- Description -->\n <bento-typography\n v-if=\"description\"\n class=\"b-date-picker__description\"\n :class=\"descriptionConditionalClasses\"\n :el=\"BentoTypographyElement.SPAN\"\n >\n {{ supportDescriptionText }}\n </bento-typography>\n\n <!-- Calendar container -->\n <bento-popover\n v-if=\"inputContainerRef\"\n class=\"b-date-picker__container\"\n :class=\"popoverConditionalClasses\"\n :open=\"isDatePickerOpen\"\n :target-element=\"inputContainerRef\"\n :disable-focus-trap=\"true\"\n :aria-label=\"popoverAriaLabel\"\n :position=\"BentoPopoverPositions.BOTTOM_START\"\n :without-space=\"variant === BentoDatePickerVariant.RANGE_CALENDAR\"\n fit-content\n >\n <!-- Daily date picker -->\n <date-picker-calendar-pane\n v-if=\"variant === BentoDatePickerVariant.SINGLE_CALENDAR\"\n :first-day-of-week=\"firstDayOfWeek\"\n :is-date-disabled=\"isDateDisabled\"\n :number-of-months=\"1\"\n :value=\"value\"\n @input=\"onDateSelected\"\n />\n\n <!-- Daily Range date picker -->\n <date-picker-calendar-range\n v-if=\"variant === BentoDatePickerVariant.RANGE_CALENDAR\"\n :value=\"value\"\n :first-day-of-week=\"firstDayOfWeek\"\n :is-date-disabled=\"isDateDisabled\"\n :number-of-months=\"numberOfMonths\"\n :date-form-data=\"textInputDisplayValue\"\n @input=\"onDatePickerRangeInput\"\n @error=\"onDatePickerRangeError\"\n @form-date=\"onDatePickerRangeFormDateInputUpdate\"\n />\n\n <!-- Monthly date picker -->\n\n <!-- Monthly Range date picker -->\n </bento-popover>\n </div>\n</template>\n\n<script lang=\"ts\">\n import { computed, defineComponent, PropType, Ref, ref, toRef, watch } from 'vue';\n import { BentoClickOutsideDirective } from '@/directives';\n import {\n BentoDatePickerEvent,\n BentoDatePickerFirstDayOfWeek,\n BentoDatePickerIsDateDisabled,\n BentoDatePickerRangeDate,\n BentoDatePickerValue,\n BentoDatePickerVariant,\n DatePickerCalendarPaneRangeFormData,\n } from './date-picker.types';\n import { DatePickerCalendarPane } from './components/date-picker-calendar-pane';\n import { DatePickerCalendarRange } from './components/date-picker-calendar-range';\n import { DropdownInputDefault } from '@/components/dropdown/components';\n import { BentoPopover, BentoPopoverPositions } from '@/components/popover';\n import { generateUid } from '@/utils/ts/unique-id';\n import { de, enUS, fr } from 'date-fns/locale';\n import { useI18n } from '@/utils/ts/i18n';\n import { BentoTypography, BentoTypographyElement, BentoTypographyVariant } from '../typography';\n import { useDatePickerSingleCalendarText } from './composables/use-date-picker-single-calendar-text';\n import { useDatePickerRangeCalendarText } from './composables/use-date-picker-range-calendar-text';\n import format from 'date-fns/format';\n\n import messages from './messages.json';\n import { DateFormat } from '@/types';\n\n /**\n * Date picker selector.\n *\n * @example\n * import { BentoDatePicker } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { BentoDatePicker },\n * template: `\n * <bento-date-picker\n * label=\"Label\"\n * description=\"Supporting text\"\n * required\n * optional\n * disabled\n * @input=\"onDateChanged\"\n * v-model=\"selectedDate\"\n * />\n * `,\n * setup() {\n * const selectedDate = ref(new Date()); // reactive({ startDate: new Date(), endDate: new Date() })\n * return {\n * selectedDate,\n * }\n * }\n * }\n */\n export default defineComponent({\n i18n: { messages },\n name: 'bento-date-picker',\n components: {\n BentoTypography,\n BentoPopover,\n DatePickerCalendarPane,\n DatePickerCalendarRange,\n DropdownInputDefault,\n },\n directives: { BentoClickOutsideDirective },\n inheritAttrs: false,\n props: {\n /**\n * Descriptive supporting text visbile underneath the dropdown.\n */\n description: { type: String, default: undefined },\n\n /**\n * Disables dropdown functionality.\n */\n disabled: { type: Boolean, default: false },\n\n /**\n * Allows you to set the first day of the week. 0 is sunday, 1 is monday, 6 is saturday\n */\n firstDayOfWeek: {\n type: Number as PropType<BentoDatePickerFirstDayOfWeek>,\n default: BentoDatePickerFirstDayOfWeek.MONDAY,\n validator: (value: BentoDatePickerFirstDayOfWeek) =>\n Object.values(BentoDatePickerFirstDayOfWeek).includes(value),\n },\n\n /**\n * Indicate if a date should be disabled or not\n */\n isDateDisabled: { type: Function as PropType<BentoDatePickerIsDateDisabled>, default: undefined },\n\n /**\n * Text that is displayed as a label above the element.\n */\n label: { type: String, default: undefined },\n\n /**\n * Highlights the dropdown is optional.\n */\n optional: { type: Boolean, default: false },\n\n /**\n * Highlights the dropdown is required.\n */\n required: { type: Boolean, default: false },\n\n /**\n * Number of months rendered on pane\n */\n numberOfMonths: DatePickerCalendarPane.props.numberOfMonths,\n\n /**\n * Selected date\n */\n value: { type: [Date, Object] as PropType<BentoDatePickerValue>, default: null },\n\n /**\n * Allows to render a single date calendar or a range calendar\n */\n variant: {\n type: String as PropType<BentoDatePickerVariant>,\n default: BentoDatePickerVariant.SINGLE_CALENDAR,\n validator: (value: BentoDatePickerVariant) => Object.values(BentoDatePickerVariant).includes(value),\n },\n },\n emits: [BentoDatePickerEvent.INPUT],\n setup(props, { emit }) {\n const { locale, t } = useI18n({ messages });\n const locales = { de, enUS, fr };\n const datePickerContainerId = generateUid('bento-date-picker-container');\n const labelId = generateUid('bento-date-picker-label');\n const popoverAriaLabel = computed(() => props.label || t('datePicker', { name: datePickerContainerId }));\n\n const isDateIncorrect = ref(false);\n const inputContainerRef = ref(null);\n const isDatePickerOpen = ref(false);\n\n watch(\n () => props.disabled,\n () => {\n // Close date picker popover if it's opened when it's disabled\n if (props.disabled && isDatePickerOpen.value) {\n isDatePickerOpen.value = false;\n }\n }\n );\n\n const descriptionConditionalClasses = computed(() => ({\n 'b-date-picker__description--error': isDateIncorrect.value,\n }));\n\n const popoverConditionalClasses = computed(() => ({\n 'b-date-picker__container-range': props.variant === BentoDatePickerVariant.RANGE_CALENDAR,\n }));\n\n const { dateDisplayValue, textInputDisplayValue, formatTextInputDisplayValue } =\n props.variant === 'single-calendar'\n ? useDatePickerSingleCalendarText({\n datePickerValue: toRef(props, 'value') as Ref<Date>,\n isDateIncorrect,\n })\n : useDatePickerRangeCalendarText({\n datePickerValue: toRef(props, 'value') as Ref<BentoDatePickerRangeDate>,\n isDateIncorrect,\n });\n\n const dropdownValue = computed(() =>\n props.variant === BentoDatePickerVariant.SINGLE_CALENDAR\n ? (textInputDisplayValue as Ref<string>).value\n : undefined\n );\n\n const supportDescriptionText = computed(() => {\n if (\n props.isDateDisabled &&\n props.isDateDisabled(new Date((textInputDisplayValue as Ref<string>).value))\n ) {\n return t('selectedDateIsNotAvailable');\n }\n\n return isDateIncorrect.value ? t('provideDateInAFormat') : props.description;\n });\n\n const isDateEnabled = (date: Date) => {\n // Check if function is set, otherwise all dates are enabled\n if (props.isDateDisabled) {\n return !props.isDateDisabled(date);\n }\n\n return true;\n };\n\n const closeDatePicker = () => {\n isDatePickerOpen.value = false;\n\n if (!isDateIncorrect.value) {\n // Remove the input field value when the date is incorrect\n (textInputDisplayValue as Ref<string>).value = null;\n }\n };\n\n const openDatePicker = () => {\n isDatePickerOpen.value = true;\n\n formatTextInputDisplayValue();\n };\n\n const onDateSelected = (selectedDate: Date) => {\n // Reset the error state when a valid date is selected\n isDateIncorrect.value = false;\n\n closeDatePicker();\n emit(BentoDatePickerEvent.INPUT, selectedDate);\n };\n\n const onDatePickerRangeInput = (selectedRange: BentoDatePickerRangeDate) => {\n const formatDate = (date: Date) =>\n format(date, DateFormat.NUMERIC_DATE_YEAR_FIRST, {\n locale: locales[locale.value.substring(0, 2)] || enUS,\n });\n (textInputDisplayValue as DatePickerCalendarPaneRangeFormData).startDate = formatDate(\n selectedRange.startDate\n );\n (textInputDisplayValue as DatePickerCalendarPaneRangeFormData).endDate = formatDate(\n selectedRange.endDate\n );\n emit(BentoDatePickerEvent.INPUT, selectedRange);\n };\n\n const clearDatePickerValue = async () => {\n if (isDateIncorrect.value) {\n isDateIncorrect.value = false;\n (textInputDisplayValue as Ref<string>).value = null;\n }\n emit(BentoDatePickerEvent.INPUT, null);\n };\n\n const onDateInputChange = stringDate => {\n (textInputDisplayValue as Ref<string>).value = stringDate;\n\n // Checks for YYYY-MM-DD format\n const dateRegex = /^\\d{4}-(0?[1-9]|1[012])-(0?[1-9]|[12][0-9]|3[01])$/;\n const isValidDate = dateRegex.test(stringDate) && isDateEnabled(new Date(stringDate));\n if (isValidDate) {\n isDateIncorrect.value = false;\n emit(BentoDatePickerEvent.INPUT, new Date(stringDate));\n } else if (stringDate) {\n // Only set to true if the value exists (not null/undefined)\n isDateIncorrect.value = true;\n emit(BentoDatePickerEvent.INPUT, null);\n }\n };\n\n const onEnterPressedOverInput = () => {\n // Close the date picker if the date is correct\n if (!isDateIncorrect.value) {\n isDatePickerOpen.value = false;\n }\n };\n\n const onDatePickerRangeFormDateInputUpdate = () => {\n isDateIncorrect.value = false;\n };\n\n const onDatePickerRangeError = dateTextInput => {\n isDateIncorrect.value = true;\n (textInputDisplayValue as DatePickerCalendarPaneRangeFormData).startDate = dateTextInput.startDate;\n (textInputDisplayValue as DatePickerCalendarPaneRangeFormData).endDate = dateTextInput.endDate;\n\n // Remove current date range selection\n emit(BentoDatePickerEvent.INPUT, { startDate: null, endDate: null });\n };\n\n return {\n // Refs\n inputContainerRef,\n\n // Values,\n dateDisplayValue,\n datePickerContainerId,\n descriptionConditionalClasses,\n dropdownValue,\n isDateIncorrect,\n isDatePickerOpen,\n labelId,\n popoverAriaLabel,\n popoverConditionalClasses,\n supportDescriptionText,\n textInputDisplayValue,\n\n // Enums\n BentoTypographyElement,\n BentoTypographyVariant,\n BentoPopoverPositions,\n BentoDatePickerVariant,\n\n // Events\n closeDatePicker,\n clearDatePickerValue,\n onDateSelected,\n openDatePicker,\n onDateInputChange,\n onEnterPressedOverInput,\n onDatePickerRangeInput,\n onDatePickerRangeError,\n onDatePickerRangeFormDateInputUpdate,\n };\n },\n });\n</script>\n\n<style lang=\"scss\" scoped src=\"./date-picker.scss\" />\n"],"names":["DateFormat","DateFormat2","addDays","dirtyDate","dirtyAmount","requiredArgs","date","toDate","amount","toInteger","addMonths","dayOfMonth","endOfDesiredMonth","daysInMonth","startOfDay","isSameDay","dirtyDateLeft","dirtyDateRight","dateLeftStartOfDay","dateRightStartOfDay","startOfMonth","subMonths","isAfter","dirtyDateToCompare","dateToCompare","isBefore","isWithinInterval","interval","time","startTime","endTime","setDay","dirtyDay","dirtyOptions","options","locale","localeWeekStartsOn","defaultWeekStartsOn","weekStartsOn","day","currentDay","remainder","dayIndex","delta","diff","DatePickerCalendarDayVariant","DatePickerCalendarDayVariant2","DatePickerCalendarDayClass","DatePickerCalendarDayClass2","DatePickerCalendarDayEvent","DatePickerCalendarDayEvent2","_sfc_main$4","defineComponent","BentoDate","value","props","emit","isCurrentDay","computed","today","BentoDateFormat","selectedDay","DatePickerCalendarEvent","DatePickerCalendarEvent2","DatePickerCalendarPosition","DatePickerCalendarPosition2","DatePickerCalendarFirstDayOfWeek","DatePickerCalendarFirstDayOfWeek2","_sfc_main$3","messages$1","BentoButton","BentoTypography","DatePickerCalendarDay","ChevronLeftIcon","ChevronRightIcon","useI18n","locales","de","enUS","fr","fallbackFirstDayOfWeek","shouldShowPreviousMonthButton","shouldShowNextMonthButton","formattedMonthDate","format","daysOfWeek","index","dayOfWeekDate","weeksOfMonth","weeks","week","BentoButtonVariant","BentoTypographyElement","BentoTypographyVariant","selectedDate","DatePickerCalendarPaneEvent","DatePickerCalendarPaneEvent2","useSinglePane","internalValue","reactive","watch","useRangePane","isDateDisabled","clickedDate","ref","startDate","endDate","setDates","_sfc_main$2","DatePickerCalendar","n","baseDate","conditionalClasses","onDateInput","onMouseOver","toRef","offsetMonth","calendarIndex","BentoDatePickerEvent","BentoDatePickerEvent2","BentoDatePickerVariant","BentoDatePickerVariant2","DatePickerCalendarRangeEvent","DatePickerCalendarRangeEvent2","FORM_INPUT_DEBOUNCE_TIME","_sfc_main$1","BentoInputField","DatePickerCalendarPane","slots","internalRangeDate","_a","_b","formatDate","dateToFormat","startDateError","endDateError","dateTextInput","isValidDate","dateText","isDateEnabled","onMounted","onStartDateSelected","newStartDate","onEndDateSelected","newEndDate","getDate","keyName","dateProp","onStartDateInput","debounce","startDateText","onEndDateInput","endDateText","hasSlot","useDatePickerSingleCalendarText","datePickerValue","isDateIncorrect","t","textInputDisplayValue","useDatePickerRangeCalendarText","dateFormat","_sfc_main","messages","BentoPopover","DatePickerCalendarRange","DropdownInputDefault","BentoClickOutsideDirective","datePickerContainerId","generateUid","labelId","popoverAriaLabel","inputContainerRef","isDatePickerOpen","descriptionConditionalClasses","popoverConditionalClasses","dateDisplayValue","formatTextInputDisplayValue","dropdownValue","supportDescriptionText","closeDatePicker","BentoPopoverPositions","stringDate","selectedRange"],"mappings":"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","x_google_ignoreList":[1,2,3,4,5,6,7,8,9,10]}
@@ -0,0 +1,29 @@
1
+ import n from "vue";
2
+ var s = n;
3
+ n.util.warn;
4
+ function a(t, c) {
5
+ var e, u = {}, o = {
6
+ config: n.config,
7
+ use: n.use.bind(n),
8
+ mixin: n.mixin.bind(n),
9
+ component: n.component.bind(n),
10
+ provide: function(i, r) {
11
+ return u[i] = r, this;
12
+ },
13
+ directive: function(i, r) {
14
+ return r ? (n.directive(i, r), o) : n.directive(i);
15
+ },
16
+ mount: function(i, r) {
17
+ return e || (e = new n(Object.assign({ propsData: c }, t, { provide: Object.assign(u, t.provide) })), e.$mount(i, r), e);
18
+ },
19
+ unmount: function() {
20
+ e && (e.$destroy(), e = void 0);
21
+ }
22
+ };
23
+ return o;
24
+ }
25
+ export {
26
+ s as V,
27
+ a as c
28
+ };
29
+ //# sourceMappingURL=index.73d7902e.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.73d7902e.js","sources":["../../../../node_modules/vue-demi/lib/v2.7/index.mjs"],"sourcesContent":["import Vue from 'vue'\n\nvar isVue2 = true\nvar isVue3 = false\nvar Vue2 = Vue\nvar warn = Vue.util.warn\n\nfunction install() {}\n\n// createApp polyfill\nexport function createApp(rootComponent, rootProps) {\n var vm\n var provide = {}\n var app = {\n config: Vue.config,\n use: Vue.use.bind(Vue),\n mixin: Vue.mixin.bind(Vue),\n component: Vue.component.bind(Vue),\n provide: function (key, value) {\n provide[key] = value\n return this\n },\n directive: function (name, dir) {\n if (dir) {\n Vue.directive(name, dir)\n return app\n } else {\n return Vue.directive(name)\n }\n },\n mount: function (el, hydrating) {\n if (!vm) {\n vm = new Vue(Object.assign({ propsData: rootProps }, rootComponent, { provide: Object.assign(provide, rootComponent.provide) }))\n vm.$mount(el, hydrating)\n return vm\n } else {\n return vm\n }\n },\n unmount: function () {\n if (vm) {\n vm.$destroy()\n vm = undefined\n }\n },\n }\n return app\n}\n\nexport { Vue, Vue2, isVue2, isVue3, install, warn }\nexport * from 'vue'\n"],"names":["Vue2","Vue","createApp","rootComponent","rootProps","vm","provide","app","key","value","name","dir","el","hydrating"],"mappings":";AAIG,IAACA,IAAOC;AACAA,EAAI,KAAK;AAKb,SAASC,EAAUC,GAAeC,GAAW;AAClD,MAAIC,GACAC,IAAU,CAAE,GACZC,IAAM;AAAA,IACR,QAAQN,EAAI;AAAA,IACZ,KAAKA,EAAI,IAAI,KAAKA,CAAG;AAAA,IACrB,OAAOA,EAAI,MAAM,KAAKA,CAAG;AAAA,IACzB,WAAWA,EAAI,UAAU,KAAKA,CAAG;AAAA,IACjC,SAAS,SAAUO,GAAKC,GAAO;AAC7B,aAAAH,EAAQE,CAAG,IAAIC,GACR;AAAA,IACR;AAAA,IACD,WAAW,SAAUC,GAAMC,GAAK;AAC9B,aAAIA,KACFV,EAAI,UAAUS,GAAMC,CAAG,GAChBJ,KAEAN,EAAI,UAAUS,CAAI;AAAA,IAE5B;AAAA,IACD,OAAO,SAAUE,GAAIC,GAAW;AAC9B,aAAKR,MACHA,IAAK,IAAIJ,EAAI,OAAO,OAAO,EAAE,WAAWG,KAAaD,GAAe,EAAE,SAAS,OAAO,OAAOG,GAASH,EAAc,OAAO,EAAC,CAAE,CAAC,GAC/HE,EAAG,OAAOO,GAAIC,CAAS,GAChBR;AAAA,IAIV;AAAA,IACD,SAAS,WAAY;AACnB,MAAIA,MACFA,EAAG,SAAU,GACbA,IAAK;AAAA,IAER;AAAA,EACF;AACD,SAAOE;AACT;","x_google_ignoreList":[0]}