@adyen/bento-vue2 1.47.0 → 1.48.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 (248) hide show
  1. package/dist/@types/components.d.ts +4 -0
  2. package/dist/@types/index.d.ts +347 -112
  3. package/dist/action-bar.js +1 -1
  4. package/dist/alert.js +1 -1
  5. package/dist/assets/accordion-item.css +1 -1
  6. package/dist/assets/action-bar.css +1 -1
  7. package/dist/assets/base-modal.css +1 -1
  8. package/dist/assets/card.css +1 -1
  9. package/dist/assets/chip.css +1 -0
  10. package/dist/assets/data-grid.css +1 -1
  11. package/dist/assets/date-range-picker.css +1 -1
  12. package/dist/assets/dialog-page.css +1 -1
  13. package/dist/assets/file-uploader.css +1 -1
  14. package/dist/assets/input-field-password.css +1 -1
  15. package/dist/assets/input-field-phone-number.css +1 -0
  16. package/dist/assets/input-field.css +1 -1
  17. package/dist/assets/inspector.css +1 -1
  18. package/dist/assets/link.css +1 -1
  19. package/dist/assets/menu.css +1 -1
  20. package/dist/assets/modal-fullscreen.css +1 -1
  21. package/dist/assets/popover.css +1 -1
  22. package/dist/assets/segmented-control.css +1 -1
  23. package/dist/assets/sidepanel.css +1 -1
  24. package/dist/assets/summary-grid-item-custom.css +1 -1
  25. package/dist/button.js +3 -3
  26. package/dist/card.js +1 -1
  27. package/dist/checkbox.js +2 -2
  28. package/dist/chip.js +5 -0
  29. package/dist/chip.js.map +1 -0
  30. package/dist/chunks/{action-bar.EcN2I7Az.js → action-bar.CSgrrcK0.js} +5 -5
  31. package/dist/chunks/{action-bar.EcN2I7Az.js.map → action-bar.CSgrrcK0.js.map} +1 -1
  32. package/dist/chunks/{alert.BRN8cpXl.js → alert.hiTIDSeX.js} +2 -2
  33. package/dist/chunks/{alert.BRN8cpXl.js.map → alert.hiTIDSeX.js.map} +1 -1
  34. package/dist/chunks/{base-modal.BgTZ8iQ6.js → base-modal.47Xa68h9.js} +4 -4
  35. package/dist/chunks/{base-modal.BgTZ8iQ6.js.map → base-modal.47Xa68h9.js.map} +1 -1
  36. package/dist/chunks/{button-actions-with-menu.C8EjGVCT.js → button-actions-with-menu.D13mJiKO.js} +4 -4
  37. package/dist/chunks/{button-actions-with-menu.C8EjGVCT.js.map → button-actions-with-menu.D13mJiKO.js.map} +1 -1
  38. package/dist/chunks/{button-actions.BU173IFE.js → button-actions.BovYBINL.js} +2 -2
  39. package/dist/chunks/{button-actions.BU173IFE.js.map → button-actions.BovYBINL.js.map} +1 -1
  40. package/dist/chunks/{button.BX6ZJxF7.js → button.CdAFZa4V.js} +2 -2
  41. package/dist/chunks/{button.BX6ZJxF7.js.map → button.CdAFZa4V.js.map} +1 -1
  42. package/dist/chunks/{calendar.DlOcbH6E.js → calendar.Bb0-Svhx.js} +4 -4
  43. package/dist/chunks/{calendar.DlOcbH6E.js.map → calendar.Bb0-Svhx.js.map} +1 -1
  44. package/dist/chunks/{card.DoyCGJay.js → card.D-w9c3-n.js} +2 -2
  45. package/dist/chunks/{card.DoyCGJay.js.map → card.D-w9c3-n.js.map} +1 -1
  46. package/dist/chunks/{checkbox-group.BQN9gjgH.js → checkbox-group.BXfJo9NR.js} +2 -2
  47. package/dist/chunks/{checkbox-group.BQN9gjgH.js.map → checkbox-group.BXfJo9NR.js.map} +1 -1
  48. package/dist/chunks/{checkbox.O1CbmNdS.js → checkbox.BEHpJDrF.js} +18 -18
  49. package/dist/chunks/{checkbox.O1CbmNdS.js.map → checkbox.BEHpJDrF.js.map} +1 -1
  50. package/dist/chunks/chip.HNUA9VZl.js +63 -0
  51. package/dist/chunks/chip.HNUA9VZl.js.map +1 -0
  52. package/dist/chunks/{code-snippet.BDBD85qD.js → code-snippet.CUx6b252.js} +6 -6
  53. package/dist/chunks/{code-snippet.BDBD85qD.js.map → code-snippet.CUx6b252.js.map} +1 -1
  54. package/dist/chunks/{codemirror.0fz2cWJS.js → codemirror.Zv80n3Z2.js} +13 -14
  55. package/dist/chunks/{codemirror.0fz2cWJS.js.map → codemirror.Zv80n3Z2.js.map} +1 -1
  56. package/dist/chunks/{copy.BuMSGw23.js → copy.adSQlAOY.js} +2 -2
  57. package/dist/chunks/{copy.BuMSGw23.js.map → copy.adSQlAOY.js.map} +1 -1
  58. package/dist/chunks/{country.2-ZtYkh7.js → country.Df7erZov.js} +22 -21
  59. package/dist/chunks/{country.2-ZtYkh7.js.map → country.Df7erZov.js.map} +1 -1
  60. package/dist/chunks/country.types.C0Q_hhgJ.js +269 -0
  61. package/dist/chunks/country.types.C0Q_hhgJ.js.map +1 -0
  62. package/dist/chunks/{currency.BmI4Sqy5.js → currency.B1F9YOIx.js} +2 -2
  63. package/dist/chunks/{currency.BmI4Sqy5.js.map → currency.B1F9YOIx.js.map} +1 -1
  64. package/dist/chunks/{dashboard-section.COWO5SVw.js → dashboard-section.q1XXEUZc.js} +3 -3
  65. package/dist/chunks/{dashboard-section.COWO5SVw.js.map → dashboard-section.q1XXEUZc.js.map} +1 -1
  66. package/dist/chunks/{dashed-underline.BEAEmTCb.js → dashed-underline.CpVP3VDL.js} +2 -2
  67. package/dist/chunks/{dashed-underline.BEAEmTCb.js.map → dashed-underline.CpVP3VDL.js.map} +1 -1
  68. package/dist/chunks/{data-grid-template.vBl7u2cB.js → data-grid-template.kCxfVaW7.js} +3 -3
  69. package/dist/chunks/{data-grid-template.vBl7u2cB.js.map → data-grid-template.kCxfVaW7.js.map} +1 -1
  70. package/dist/chunks/{data-grid.DQ0578m9.js → data-grid.DgxC3G4n.js} +492 -487
  71. package/dist/chunks/data-grid.DgxC3G4n.js.map +1 -0
  72. package/dist/chunks/{date-picker.Bym2OEd9.js → date-picker.DqsQJ7P7.js} +4 -4
  73. package/dist/chunks/{date-picker.Bym2OEd9.js.map → date-picker.DqsQJ7P7.js.map} +1 -1
  74. package/dist/chunks/date-range-picker.VZlIz83o.js +884 -0
  75. package/dist/chunks/date-range-picker.VZlIz83o.js.map +1 -0
  76. package/dist/chunks/{date.1zs9CRhw.js → date.YLIcAerL.js} +69 -1
  77. package/dist/chunks/{date.1zs9CRhw.js.map → date.YLIcAerL.js.map} +1 -1
  78. package/dist/chunks/{dialog-page.DcJ7LaOE.js → dialog-page.Bf07JxdG.js} +2 -2
  79. package/dist/chunks/{dialog-page.DcJ7LaOE.js.map → dialog-page.Bf07JxdG.js.map} +1 -1
  80. package/dist/chunks/{dropdown-tag.CiCDvGyN.js → dropdown-tag.BLAjuup5.js} +6 -6
  81. package/dist/chunks/{dropdown-tag.CiCDvGyN.js.map → dropdown-tag.BLAjuup5.js.map} +1 -1
  82. package/dist/chunks/{dropdown.hc9ZuuTt.js → dropdown.DWgwNFNB.js} +4 -4
  83. package/dist/chunks/{dropdown.hc9ZuuTt.js.map → dropdown.DWgwNFNB.js.map} +1 -1
  84. package/dist/chunks/{empty-state.1TyzB5ju.js → empty-state.BnHTBgKG.js} +2 -2
  85. package/dist/chunks/{empty-state.1TyzB5ju.js.map → empty-state.BnHTBgKG.js.map} +1 -1
  86. package/dist/chunks/es6.BtaxuP0b.js.map +1 -1
  87. package/dist/chunks/{file-uploader.DVyryYaq.js → file-uploader.DT7GsNqI.js} +4 -4
  88. package/dist/chunks/{file-uploader.DVyryYaq.js.map → file-uploader.DT7GsNqI.js.map} +1 -1
  89. package/dist/chunks/{filter-bar.DzcNo5nF.js → filter-bar.D2YR4Tpz.js} +103 -105
  90. package/dist/chunks/filter-bar.D2YR4Tpz.js.map +1 -0
  91. package/dist/chunks/{fixed-scroller.IPM3AzHS.js → fixed-scroller.DX2YUuoU.js} +2 -2
  92. package/dist/chunks/{fixed-scroller.IPM3AzHS.js.map → fixed-scroller.DX2YUuoU.js.map} +1 -1
  93. package/dist/chunks/{footer-actions.Cbe_YLjP.js → footer-actions.BsoofCrv.js} +3 -3
  94. package/dist/chunks/{footer-actions.Cbe_YLjP.js.map → footer-actions.BsoofCrv.js.map} +1 -1
  95. package/dist/chunks/{form-layout-title.Xdsi84v2.js → form-layout-title.CJbgfh3P.js} +2 -2
  96. package/dist/chunks/{form-layout-title.Xdsi84v2.js.map → form-layout-title.CJbgfh3P.js.map} +1 -1
  97. package/dist/chunks/get-slot-text.BQS5Olxm.js +12 -0
  98. package/dist/chunks/get-slot-text.BQS5Olxm.js.map +1 -0
  99. package/dist/chunks/{header.BIZTUAJE.js → header.D5MLt9hG.js} +4 -4
  100. package/dist/chunks/{header.BIZTUAJE.js.map → header.D5MLt9hG.js.map} +1 -1
  101. package/dist/chunks/{info-icon-with-popover.Bly2e0uy.js → info-icon-with-popover.CO0mky_N.js} +2 -2
  102. package/dist/chunks/{info-icon-with-popover.Bly2e0uy.js.map → info-icon-with-popover.CO0mky_N.js.map} +1 -1
  103. package/dist/chunks/{input-field-password.CosL-n__.js → input-field-password.CQtzruQM.js} +4 -4
  104. package/dist/chunks/{input-field-password.CosL-n__.js.map → input-field-password.CQtzruQM.js.map} +1 -1
  105. package/dist/chunks/input-field-phone-number.DWKZy2-k.js +3098 -0
  106. package/dist/chunks/input-field-phone-number.DWKZy2-k.js.map +1 -0
  107. package/dist/chunks/{input-field.DgDFJbg7.js → input-field.3V5IblWw.js} +31 -26
  108. package/dist/chunks/input-field.3V5IblWw.js.map +1 -0
  109. package/dist/chunks/{inspector.types.8071wkf0.js → inspector.types.GOl_-hXm.js} +2 -2
  110. package/dist/chunks/{inspector.types.8071wkf0.js.map → inspector.types.GOl_-hXm.js.map} +1 -1
  111. package/dist/chunks/{keyboard-navigation.Clz1jOaA.js → keyboard-navigation.pB8weElW.js} +2 -1
  112. package/dist/chunks/{keyboard-navigation.Clz1jOaA.js.map → keyboard-navigation.pB8weElW.js.map} +1 -1
  113. package/dist/chunks/{link.UOEUR35A.js → link.DZlbzVSB.js} +35 -28
  114. package/dist/chunks/link.DZlbzVSB.js.map +1 -0
  115. package/dist/chunks/{listbox-option-tag.Co0ycEdQ.js → listbox-option-tag.XbvBQqlt.js} +2 -2
  116. package/dist/chunks/{listbox-option-tag.Co0ycEdQ.js.map → listbox-option-tag.XbvBQqlt.js.map} +1 -1
  117. package/dist/chunks/{menu.Dq7RlryT.js → menu.DYopJZ12.js} +3 -3
  118. package/dist/chunks/{menu.Dq7RlryT.js.map → menu.DYopJZ12.js.map} +1 -1
  119. package/dist/chunks/{modal-fullscreen.CfrgVR_K.js → modal-fullscreen.Pp5mp7hD.js} +4 -4
  120. package/dist/chunks/{modal-fullscreen.CfrgVR_K.js.map → modal-fullscreen.Pp5mp7hD.js.map} +1 -1
  121. package/dist/chunks/{modal.CuUUMIU_.js → modal.CCjAy7Hv.js} +5 -5
  122. package/dist/chunks/{modal.CuUUMIU_.js.map → modal.CCjAy7Hv.js.map} +1 -1
  123. package/dist/chunks/{pagination.QF1EEUfX.js → pagination.8g4bC4tv.js} +3 -3
  124. package/dist/chunks/{pagination.QF1EEUfX.js.map → pagination.8g4bC4tv.js.map} +1 -1
  125. package/dist/chunks/{payment-method.UaERFtej.js → payment-method.BKr_q5cZ.js} +2 -2
  126. package/dist/chunks/{payment-method.UaERFtej.js.map → payment-method.BKr_q5cZ.js.map} +1 -1
  127. package/dist/chunks/{popover.nev0GndY.js → popover.C-LwO38X.js} +3 -3
  128. package/dist/chunks/{popover.nev0GndY.js.map → popover.C-LwO38X.js.map} +1 -1
  129. package/dist/chunks/{promo-banner.BXtIM4C9.js → promo-banner.DS0_aROF.js} +2 -2
  130. package/dist/chunks/{promo-banner.BXtIM4C9.js.map → promo-banner.DS0_aROF.js.map} +1 -1
  131. package/dist/chunks/{radio-group.D1q0VKvv.js → radio-group.1z-IZvLU.js} +3 -3
  132. package/dist/chunks/{radio-group.D1q0VKvv.js.map → radio-group.1z-IZvLU.js.map} +1 -1
  133. package/dist/chunks/{search-bar.fmMx-zRN.js → search-bar.Bu12OC-l.js} +3 -3
  134. package/dist/chunks/{search-bar.fmMx-zRN.js.map → search-bar.Bu12OC-l.js.map} +1 -1
  135. package/dist/chunks/{secondary-nav.ldVrzGbB.js → secondary-nav.CLDlWCXX.js} +2 -2
  136. package/dist/chunks/{secondary-nav.ldVrzGbB.js.map → secondary-nav.CLDlWCXX.js.map} +1 -1
  137. package/dist/chunks/{segmented-control.DL0W7lJ_.js → segmented-control.BJIlas0M.js} +17 -16
  138. package/dist/chunks/segmented-control.BJIlas0M.js.map +1 -0
  139. package/dist/chunks/segmented-control.types.BHRLV8KU.js.map +1 -1
  140. package/dist/chunks/{selection-card-group.CdkrhyZV.js → selection-card-group.usHcqYKO.js} +8 -8
  141. package/dist/chunks/{selection-card-group.CdkrhyZV.js.map → selection-card-group.usHcqYKO.js.map} +1 -1
  142. package/dist/chunks/{sidepanel.D-KuHnwI.js → sidepanel.C_ff-PEn.js} +4 -4
  143. package/dist/chunks/{sidepanel.D-KuHnwI.js.map → sidepanel.C_ff-PEn.js.map} +1 -1
  144. package/dist/chunks/{status.types.Ce018tQy.js → status.types.p_TCvoo0.js} +16 -17
  145. package/dist/chunks/{status.types.Ce018tQy.js.map → status.types.p_TCvoo0.js.map} +1 -1
  146. package/dist/chunks/{step.BsIdWhaZ.js → step.DrP2Frvn.js} +2 -2
  147. package/dist/chunks/{step.BsIdWhaZ.js.map → step.DrP2Frvn.js.map} +1 -1
  148. package/dist/chunks/{structured-list-item.Dk8Z-FPn.js → structured-list-item.TC8mVrrA.js} +3 -3
  149. package/dist/chunks/{structured-list-item.Dk8Z-FPn.js.map → structured-list-item.TC8mVrrA.js.map} +1 -1
  150. package/dist/chunks/{summary-grid-item-custom.atXX3GY9.js → summary-grid-item-custom.A11AzfH0.js} +109 -104
  151. package/dist/chunks/summary-grid-item-custom.A11AzfH0.js.map +1 -0
  152. package/dist/chunks/summary-grid.keys.CxTf_FOc.js +6 -0
  153. package/dist/chunks/summary-grid.keys.CxTf_FOc.js.map +1 -0
  154. package/dist/chunks/{tabs.9kObZry9.js → tabs.5zgaD1k3.js} +2 -2
  155. package/dist/chunks/{tabs.9kObZry9.js.map → tabs.5zgaD1k3.js.map} +1 -1
  156. package/dist/chunks/{tag.-YNhsBv7.js → tag.3fthBtwc.js} +2 -2
  157. package/dist/chunks/{tag.-YNhsBv7.js.map → tag.3fthBtwc.js.map} +1 -1
  158. package/dist/chunks/{textarea.BVzGn3zO.js → textarea.CpXux8qX.js} +2 -2
  159. package/dist/chunks/{textarea.BVzGn3zO.js.map → textarea.CpXux8qX.js.map} +1 -1
  160. package/dist/chunks/{timeline-item.D_YNHlRi.js → timeline-item.Ca9RJt0z.js} +8 -8
  161. package/dist/chunks/{timeline-item.D_YNHlRi.js.map → timeline-item.Ca9RJt0z.js.map} +1 -1
  162. package/dist/chunks/{toast.DgJbW9CL.js → toast.C5I7Wsfa.js} +2 -2
  163. package/dist/chunks/{toast.DgJbW9CL.js.map → toast.C5I7Wsfa.js.map} +1 -1
  164. package/dist/chunks/{toggle-button.Cf8C7p6e.js → toggle-button.BX_9vB0d.js} +2 -2
  165. package/dist/chunks/{toggle-button.Cf8C7p6e.js.map → toggle-button.BX_9vB0d.js.map} +1 -1
  166. package/dist/chunks/{toggle.CnS7qszG.js → toggle.CyaY0U0K.js} +2 -2
  167. package/dist/chunks/{toggle.CnS7qszG.js.map → toggle.CyaY0U0K.js.map} +1 -1
  168. package/dist/chunks/truncate.BfIl_-71.js +8 -0
  169. package/dist/chunks/truncate.BfIl_-71.js.map +1 -0
  170. package/dist/chunks/{tutorial.cQXPvqV4.js → tutorial.Cc0tv59x.js} +4 -4
  171. package/dist/chunks/{tutorial.cQXPvqV4.js.map → tutorial.Cc0tv59x.js.map} +1 -1
  172. package/dist/chunks/{use-cached-selected-values.BGlHmPhX.js → use-cached-selected-values.C24AnZ-w.js} +5 -5
  173. package/dist/chunks/{use-cached-selected-values.BGlHmPhX.js.map → use-cached-selected-values.C24AnZ-w.js.map} +1 -1
  174. package/dist/chunks/use-country-items.HFnjuDsG.js +30 -0
  175. package/dist/chunks/{use-country-items.eWARMT6I.js.map → use-country-items.HFnjuDsG.js.map} +1 -1
  176. package/dist/chunks/{country.types.CLjbulKL.js → use-country-phon-code.DVgE19zT.js} +497 -761
  177. package/dist/chunks/use-country-phon-code.DVgE19zT.js.map +1 -0
  178. package/dist/code-snippet.js +1 -1
  179. package/dist/country.js +7 -6
  180. package/dist/country.js.map +1 -1
  181. package/dist/currency.js +1 -1
  182. package/dist/dashboard-template.js +1 -1
  183. package/dist/dashed-underline.js +1 -1
  184. package/dist/data-grid-template.js +1 -1
  185. package/dist/data-grid.js +1 -1
  186. package/dist/date-picker.js +2 -2
  187. package/dist/date-range-picker.js +2 -2
  188. package/dist/date.js +1 -1
  189. package/dist/dropdown.js +3 -3
  190. package/dist/empty-state.js +1 -1
  191. package/dist/file-uploader.js +1 -1
  192. package/dist/filter-bar.js +1 -1
  193. package/dist/form-layout.js +1 -1
  194. package/dist/header.js +1 -1
  195. package/dist/index.js +217 -212
  196. package/dist/index.js.map +1 -1
  197. package/dist/input-field-password.js +1 -1
  198. package/dist/input-field-phone-number.js +5 -0
  199. package/dist/input-field-phone-number.js.map +1 -0
  200. package/dist/input-field.js +1 -1
  201. package/dist/inspector.js +1 -1
  202. package/dist/internal.js +9 -9
  203. package/dist/link.js +1 -1
  204. package/dist/menu.js +1 -1
  205. package/dist/modal-fullscreen.js +1 -1
  206. package/dist/modal.js +2 -2
  207. package/dist/pagination.js +1 -1
  208. package/dist/payment-method.js +1 -1
  209. package/dist/popover.js +1 -1
  210. package/dist/promo-banner.js +1 -1
  211. package/dist/radio-group.js +1 -1
  212. package/dist/search-bar.js +2 -2
  213. package/dist/secondary-nav.js +1 -1
  214. package/dist/segmented-control.js +1 -1
  215. package/dist/selection-card.js +1 -1
  216. package/dist/sidepanel.js +1 -1
  217. package/dist/status.js +1 -1
  218. package/dist/stepper.js +1 -1
  219. package/dist/structured-list.js +1 -1
  220. package/dist/styles/bento-dark.css +15 -1
  221. package/dist/styles/bento-light.css +15 -1
  222. package/dist/styles/bento.css +15 -1
  223. package/dist/styles/legacy.css +14 -0
  224. package/dist/styles/styleguide.css +15 -1
  225. package/dist/summary-grid.js +1 -1
  226. package/dist/tabs.js +1 -1
  227. package/dist/tag.js +1 -1
  228. package/dist/textarea.js +1 -1
  229. package/dist/timeline.js +1 -1
  230. package/dist/toast.js +1 -1
  231. package/dist/toggle.js +1 -1
  232. package/dist/tutorial.js +1 -1
  233. package/dist/web-types.json +263 -5
  234. package/package.json +6 -5
  235. package/dist/chunks/country.types.CLjbulKL.js.map +0 -1
  236. package/dist/chunks/data-grid.DQ0578m9.js.map +0 -1
  237. package/dist/chunks/date-range-picker.P2Q5FNB-.js +0 -840
  238. package/dist/chunks/date-range-picker.P2Q5FNB-.js.map +0 -1
  239. package/dist/chunks/filter-bar.DzcNo5nF.js.map +0 -1
  240. package/dist/chunks/get-slot-text.Cgn-E48s.js +0 -9
  241. package/dist/chunks/get-slot-text.Cgn-E48s.js.map +0 -1
  242. package/dist/chunks/input-field.DgDFJbg7.js.map +0 -1
  243. package/dist/chunks/link.UOEUR35A.js.map +0 -1
  244. package/dist/chunks/segmented-control.DL0W7lJ_.js.map +0 -1
  245. package/dist/chunks/summary-grid-item-custom.atXX3GY9.js.map +0 -1
  246. package/dist/chunks/summary-grid.keys.BBbFrFGF.js +0 -5
  247. package/dist/chunks/summary-grid.keys.BBbFrFGF.js.map +0 -1
  248. package/dist/chunks/use-country-items.eWARMT6I.js +0 -29
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-range-picker.VZlIz83o.js","sources":["../../../../node_modules/.pnpm/date-fns@2.28.0/node_modules/date-fns/esm/isEqual/index.js","../../../../node_modules/.pnpm/date-fns@2.28.0/node_modules/date-fns/esm/startOfSecond/index.js","../../../../node_modules/.pnpm/date-fns@2.28.0/node_modules/date-fns/esm/isSameSecond/index.js","../../../../node_modules/.pnpm/date-fns@2.28.0/node_modules/date-fns/esm/isToday/index.js","../../../../node_modules/.pnpm/date-fns@2.28.0/node_modules/date-fns/esm/setHours/index.js","../../../../node_modules/.pnpm/date-fns@2.28.0/node_modules/date-fns/esm/setMinutes/index.js","../../../../node_modules/.pnpm/date-fns@2.28.0/node_modules/date-fns/esm/setSeconds/index.js","../../src/components/date-range-picker/utils/date-text-to-start-of-day.ts","../../src/components/internal/calendar/components/calendar-month/composables/granular-min-max-date.ts","../../src/components/date-range-picker/composables/use-granularity-memory.ts","../../src/components/date-range-picker/components/date-range-picker-calendar/date-range-picker-calendar.types.ts","../../src/utils/ts/time-input.ts","../../src/components/date-range-picker/components/date-range-picker-calendar/date-range-picker-calendar.vue","../../src/components/date-range-picker/composables/use-date-range-picker-calendar-text.ts","../../src/components/date-range-picker/date-range-picker.types.ts","../../src/components/date-range-picker/date-range-picker.vue"],"sourcesContent":["import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isEqual\n * @category Common Helpers\n * @summary Are the given dates equal?\n *\n * @description\n * Are the given dates equal?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to compare\n * @param {Date|Number} dateRight - the second date to compare\n * @returns {Boolean} the dates are equal\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 2 July 2014 06:30:45.000 and 2 July 2014 06:30:45.500 equal?\n * var result = isEqual(\n * new Date(2014, 6, 2, 6, 30, 45, 0),\n * new Date(2014, 6, 2, 6, 30, 45, 500)\n * )\n * //=> false\n */\n\nexport default function isEqual(dirtyLeftDate, dirtyRightDate) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyLeftDate);\n var dateRight = toDate(dirtyRightDate);\n return dateLeft.getTime() === dateRight.getTime();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfSecond\n * @category Second Helpers\n * @summary Return the start of a second for the given date.\n *\n * @description\n * Return the start of a second 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 second\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a second for 1 December 2014 22:15:45.400:\n * const result = startOfSecond(new Date(2014, 11, 1, 22, 15, 45, 400))\n * //=> Mon Dec 01 2014 22:15:45.000\n */\n\nexport default function startOfSecond(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setMilliseconds(0);\n return date;\n}","import startOfSecond from \"../startOfSecond/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isSameSecond\n * @category Second Helpers\n * @summary Are the given dates in the same second (and hour and day)?\n *\n * @description\n * Are the given dates in the same second (and hour and day)?\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 second (and hour and day)\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 4 September 2014 06:30:15.000 and 4 September 2014 06:30.15.500 in the same second?\n * var result = isSameSecond(\n * new Date(2014, 8, 4, 6, 30, 15),\n * new Date(2014, 8, 4, 6, 30, 15, 500)\n * )\n * //=> true\n * \n * @example\n * // Are 4 September 2014 06:00:15.000 and 4 September 2014 06:01.15.000 in the same second?\n * var result = isSameSecond(\n * new Date(2014, 8, 4, 6, 0, 15),\n * new Date(2014, 8, 4, 6, 1, 15)\n * )\n * //=> false\n * \n * @example\n * // Are 4 September 2014 06:00:15.000 and 5 September 2014 06:00.15.000 in the same second?\n * var result = isSameSecond(\n * new Date(2014, 8, 4, 6, 0, 15),\n * new Date(2014, 8, 5, 6, 0, 15)\n * )\n * //=> false\n */\n\nexport default function isSameSecond(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeftStartOfSecond = startOfSecond(dirtyDateLeft);\n var dateRightStartOfSecond = startOfSecond(dirtyDateRight);\n return dateLeftStartOfSecond.getTime() === dateRightStartOfSecond.getTime();\n}","import isSameDay from \"../isSameDay/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isToday\n * @category Day Helpers\n * @summary Is the given date today?\n * @pure false\n *\n * @description\n * Is the given date today?\n *\n * > ⚠️ Please note that this function is not present in the FP submodule as\n * > it uses `Date.now()` internally hence impure and can't be safely curried.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date is today\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // If today is 6 October 2014, is 6 October 14:00:00 today?\n * var result = isToday(new Date(2014, 9, 6, 14, 0))\n * //=> true\n */\n\nexport default function isToday(dirtyDate) {\n requiredArgs(1, arguments);\n return isSameDay(dirtyDate, Date.now());\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setHours\n * @category Hour Helpers\n * @summary Set the hours to the given date.\n *\n * @description\n * Set the hours 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} hours - the hours of the new date\n * @returns {Date} the new date with the hours set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set 4 hours to 1 September 2014 11:30:00:\n * var result = setHours(new Date(2014, 8, 1, 11, 30), 4)\n * //=> Mon Sep 01 2014 04:30:00\n */\n\nexport default function setHours(dirtyDate, dirtyHours) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var hours = toInteger(dirtyHours);\n date.setHours(hours);\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 setMinutes\n * @category Minute Helpers\n * @summary Set the minutes to the given date.\n *\n * @description\n * Set the minutes 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} minutes - the minutes of the new date\n * @returns {Date} the new date with the minutes set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set 45 minutes to 1 September 2014 11:30:40:\n * const result = setMinutes(new Date(2014, 8, 1, 11, 30, 40), 45)\n * //=> Mon Sep 01 2014 11:45:40\n */\n\nexport default function setMinutes(dirtyDate, dirtyMinutes) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var minutes = toInteger(dirtyMinutes);\n date.setMinutes(minutes);\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 setSeconds\n * @category Second Helpers\n * @summary Set the seconds to the given date.\n *\n * @description\n * Set the seconds 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} seconds - the seconds of the new date\n * @returns {Date} the new date with the seconds set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set 45 seconds to 1 September 2014 11:30:40:\n * const result = setSeconds(new Date(2014, 8, 1, 11, 30, 40), 45)\n * //=> Mon Sep 01 2014 11:30:45\n */\n\nexport default function setSeconds(dirtyDate, dirtySeconds) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var seconds = toInteger(dirtySeconds);\n date.setSeconds(seconds);\n return date;\n}","import startOfDay from 'date-fns/startOfDay';\n\n/**\n * Parses an ISO date string and returns a Date set to the\n * start of that calendar day (00:00:00) in the system’s local time zone.\n *\n * Uses the numeric Date constructor `new Date(year, monthIndex, day)`\n * which interprets its arguments as local time.\n *\n * @param dateText - A date in `YYYY-MM-DD` format.\n * @returns A `Date` at the local start of the specified day.\n */\nexport function parseDateTextToStartOfDay(dateText?: string) {\n if (dateText == null) {\n return startOfDay(new Date());\n }\n\n const [year, month, day] = dateText.split('-').map(s => parseInt(s, 10));\n return new Date(year, month - 1, day);\n}\n","import addDays from 'date-fns/addDays';\nimport addMonths from 'date-fns/addMonths';\nimport endOfDay from 'date-fns/endOfDay';\nimport endOfMonth from 'date-fns/endOfMonth';\nimport endOfWeek from 'date-fns/endOfWeek';\nimport isSameDay from 'date-fns/isSameDay';\nimport startOfDay from 'date-fns/startOfDay';\nimport startOfMonth from 'date-fns/startOfMonth';\nimport startOfWeek from 'date-fns/startOfWeek';\nimport subDays from 'date-fns/subDays';\nimport subMonths from 'date-fns/subMonths';\n\nimport type { CalendarGranularityConfig } from '../../../calendar.types';\nimport type { UseGranularMinMaxDate } from './granular-min-max-date.types';\n\n/**\n * Provides utility function to set calendar min/max dates based on the granularity selected.\n * @param props Configured min/max dates, and the day the week starts on.\n * @returns Function to calculate calendar limits.\n */\nexport const useGranularMinMaxDate: UseGranularMinMaxDate = ({\n firstDayOfWeek,\n min: minimumDate,\n max: maximumDate,\n}) => {\n const getGranularCalendarLimits = (granularity: CalendarGranularityConfig) => {\n let min = startOfDay(minimumDate);\n let max = endOfDay(maximumDate);\n\n if (granularity?.type === 'weekly') {\n if (granularity.earliest) {\n min = startOfDay(granularity.earliest);\n } else {\n const startOfMin = startOfWeek(min, { weekStartsOn: firstDayOfWeek });\n\n // If the minimum is in the middle of a week, set to the end (only allow full weeks)\n if (!isSameDay(min, startOfMin)) {\n min = startOfDay(addDays(endOfWeek(min, { weekStartsOn: firstDayOfWeek }), 1));\n }\n }\n\n if (granularity.latest) {\n max = endOfDay(granularity.latest);\n } else {\n const endOfMax = endOfWeek(max, { weekStartsOn: firstDayOfWeek });\n\n // If the maximum is in the middle of a week, set to the end of last week (only allow full weeks)\n if (!isSameDay(max, endOfMax)) {\n max = endOfDay(subDays(startOfWeek(max, { weekStartsOn: firstDayOfWeek }), 1));\n }\n }\n }\n\n if (granularity?.type === 'monthly') {\n if (granularity.earliest) {\n min = startOfDay(granularity.earliest);\n } else {\n const startOfMin = startOfMonth(min);\n\n // If the minimum is in the middle of a month, set to the start of next month (only allow full month)\n if (!isSameDay(min, startOfMin)) {\n min = startOfMonth(addMonths(min, 1));\n }\n }\n\n if (granularity.latest) {\n max = endOfDay(granularity.latest);\n } else {\n const endOfMax = endOfMonth(max);\n\n // If the maximum is in the middle of a month, set to the end of last month (only allow full months)\n if (!isSameDay(max, endOfMax)) {\n max = endOfMonth(subMonths(max, 1));\n }\n }\n }\n\n return { min, max };\n };\n\n return { getGranularCalendarLimits };\n};\n","import { reactive } from 'vue';\n\nimport type { CalendarGranularityType } from '../../internal/calendar/calendar.types';\nimport type { UseGranularityMemory } from './use-granularity-memory.types';\n\n/**\n * Provides utility property and functions to store date ranges based on granularity.\n * This is used to revert back to the previously selected range when users switch between granularities\n * @returns Saved date ranges per granularity, and functions to save/reset ranges.\n */\nexport const useGranularityMemory: UseGranularityMemory = () => {\n const savedRanges = reactive<{\n daily: { startDate: Date; endDate: Date } | null;\n weekly: { startDate: Date; endDate: Date } | null;\n monthly: { startDate: Date; endDate: Date } | null;\n }>({\n daily: null,\n weekly: null,\n monthly: null,\n });\n\n const saveRange = (type: CalendarGranularityType, range: { startDate: Date; endDate: Date }) => {\n savedRanges[type] = range;\n };\n\n const resetSavedRanges = () => {\n savedRanges.daily = null;\n savedRanges.weekly = null;\n savedRanges.monthly = null;\n };\n\n return {\n savedRanges,\n\n saveRange,\n resetSavedRanges,\n };\n};\n","import { CalendarGranularityType } from '@/internal';\n\nexport interface DateRangePickerCalendarFormData {\n startDate: string;\n endDate: string;\n startTime?: string;\n endTime?: string;\n granularity?: CalendarGranularityType;\n}\n\nexport enum DateRangePickerCalendarEvent {\n CUSTOM_RANGE = 'custom-range',\n INPUT = 'input',\n ERROR = 'error',\n FORM_DATE = 'form-date',\n START_DATE_SELECTED = 'start-date-selected',\n}\n\nexport interface DateRangePickerCalendarRangeSelectorItem {\n label: string;\n value: string;\n data: {\n startDate: Date;\n endDate?: Date;\n granularity?: CalendarGranularityType;\n timeDifference?: number;\n };\n}\n\nexport type DateRangePickerCalendarRangeSelectorItems = Array<DateRangePickerCalendarRangeSelectorItem>;\n","const validDigitRegex = /[\\d]/;\n\nconst hourRegex = /^\\d{2}$/;\nconst minuteRegex = /^\\d{2}:\\d{2}$/;\n\nexport const validateTimeInput = (event: KeyboardEvent) => {\n const { selectionStart } = event.target as HTMLInputElement;\n\n const isValidKey = validDigitRegex.test(event.key) || event.key === 'Backspace';\n const isValidColon = [1, 2, 4, 5].includes(selectionStart) && event.key === ':';\n\n if (!isValidKey && !isValidColon) {\n event.preventDefault();\n }\n};\n\nexport const formatTimeInputValue = (value: string) => {\n if (!value) {\n return value;\n }\n\n let formattedValue = value;\n\n // Format if the first value is bigger than 2, because it can't be bigger than 24 hours\n if (formattedValue.length === 1 && parseInt(value, 10) > 2) {\n return `0${formattedValue}:`;\n }\n\n const [secondToLastDigit, lastDigit] = formattedValue.slice(-2);\n if ([2, 5].includes(formattedValue.length) && lastDigit === ':') {\n formattedValue = `${formattedValue.slice(0, formattedValue.length - 2)}0${secondToLastDigit}`;\n }\n\n // Add `:` after hour/minute\n if (hourRegex.test(formattedValue) || minuteRegex.test(formattedValue)) {\n formattedValue += ':';\n }\n return formattedValue;\n};\n","<template>\n <div class=\"b-date-range-picker-calendar\">\n <!-- Form -->\n <div class=\"b-date-range-picker-calendar__form-container\">\n <div class=\"b-date-range-picker-calendar__form\">\n <template v-if=\"hasSlot('title')\">\n <slot name=\"title\" />\n </template>\n\n <bento-dropdown\n v-if=\"adjustedQuickSelectRanges\"\n :aria-label=\"t('customRange')\"\n :items=\"quickSelectRangeDefaultItems\"\n :value=\"selectedRangeSelectorValue\"\n @input=\"onRangeSelectorInput\"\n />\n\n <bento-segmented-control\n v-if=\"granularities\"\n :items=\"granularityItems\"\n :model-value=\"internalRangeDate.granularity\"\n full-width\n @update:model-value=\"onGranularityInput\"\n >\n </bento-segmented-control>\n <div>\n <bento-typography stronger el=\"span\" class=\"b-date-range-picker-calendar__label\">\n From\n </bento-typography>\n <div :class=\"formInputWrapperConditionalClasses\">\n <bento-input-field\n :aria-label=\"t('dateFrom')\"\n :value=\"dateTextInput.startDate\"\n :error=\"startDateError\"\n class=\"b-date-range-picker-calendar__form-input\"\n @input=\"onStartDateInput\"\n @keydown=\"onDateInputKeyDown\"\n >\n <template #description>YYYY-MM-DD</template>\n </bento-input-field>\n\n <bento-input-field\n v-if=\"allowTimeInput\"\n :aria-label=\"t('timeFrom')\"\n :value=\"dateTextInput.startTime\"\n :error=\"startTimeError\"\n class=\"b-date-range-picker-calendar__form-input\"\n @input=\"onStartTimeInput\"\n @keydown=\"onTimeInputKeyDown\"\n >\n <template #description>HH:MM:SS</template>\n </bento-input-field>\n </div>\n </div>\n\n <div>\n <bento-typography stronger el=\"span\" class=\"b-date-range-picker-calendar__label\">\n To\n </bento-typography>\n <div :class=\"formInputWrapperConditionalClasses\">\n <bento-input-field\n class=\"b-date-range-picker-calendar__form-input\"\n :aria-label=\"t('dateTo')\"\n :value=\"dateTextInput.endDate\"\n :error=\"endDateError\"\n @input=\"onEndDateInput\"\n @keydown=\"onDateInputKeyDown\"\n >\n <template #description>YYYY-MM-DD</template>\n </bento-input-field>\n\n <bento-input-field\n v-if=\"allowTimeInput\"\n :aria-label=\"t('timeTo')\"\n :value=\"dateTextInput.endTime\"\n :error=\"endTimeError\"\n class=\"b-date-range-picker-calendar__form-input\"\n @input=\"onEndTimeInput\"\n @keydown=\"onTimeInputKeyDown\"\n >\n <template #description>HH:MM:SS</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-range-picker-calendar__calendars-container\">\n <calendar\n :value=\"internalRangeDate\"\n :first-day-of-week=\"firstDayOfWeek\"\n :is-date-disabled=\"isDateDisabled\"\n :max-range=\"maxRange\"\n :min=\"computedMinMax.min\"\n :max=\"computedMinMax.max\"\n :number-of-months=\"numberOfMonths\"\n :show-end-date-on-open=\"showEndDateOnOpen\"\n :granularity=\"selectedGranularity\"\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 { computed, defineComponent, onMounted, PropType, reactive, ref, toRaw } from 'vue';\n import { Calendar, CalendarGranularityType } from '@/internal';\n import { BentoTypography } from '@/components/typography';\n import { BentoInputField } from '@/components/input-field';\n import { BentoDropdown } from '@/components/dropdown';\n import { BentoSegmentedControl, type BentoSegmentedControlItem } from '@/components/segmented-control';\n import { getDateLocale } from '@/utils/ts/get-date-locale/get-date-locale';\n import { useI18n } from '@/utils/ts/i18n';\n import { parseDateTextToStartOfDay } from '../../utils/date-text-to-start-of-day';\n import { debounce } from '@/utils/ts/debounce';\n import { useHasSlot } from '@/composables';\n import { useGranularityAdjustments } from '@/components/internal/calendar/composables/use-granularity-adjustments';\n import { useGranularMinMaxDate } from '@/components/internal/calendar/components/calendar-month/composables/granular-min-max-date';\n import { useGranularityMemory } from '../../composables/use-granularity-memory';\n import { formatDateInputValue, validateDateInput } from '@/utils/ts/date-input';\n import {\n DateRangePickerCalendarEvent,\n DateRangePickerCalendarFormData,\n DateRangePickerCalendarRangeSelectorItem,\n DateRangePickerCalendarRangeSelectorItems,\n } from './date-range-picker-calendar.types';\n import type {\n BentoDateRangePickerGranularityConfig,\n BentoDateRangePickerValue,\n } from '../../date-range-picker.types';\n import { DateFormat } from '@/types';\n import { formatTimeInputValue, validateTimeInput } from '@/utils/ts/time-input';\n import endOfDay from 'date-fns/endOfDay';\n import format from 'date-fns/format';\n import setHours from 'date-fns/setHours';\n import setMinutes from 'date-fns/setMinutes';\n import setSeconds from 'date-fns/setSeconds';\n import startOfDay from 'date-fns/startOfDay';\n import messages from './messages.json';\n import isEqual from 'date-fns/isEqual';\n import isToday from 'date-fns/isToday';\n import isSameSecond from 'date-fns/isSameSecond';\n import isSameDay from 'date-fns/isSameDay';\n\n const FORM_INPUT_DEBOUNCE_TIME = 300;\n const RANGE_SELECTOR_CUSTOM_RANGE_KEY = 'customRange';\n const DEFAULT_GRANULARITY = 'daily';\n type MessageSchema = (typeof messages)['en-US'];\n\n /**\n * Calendar for range dates. Contains the logic to handle the range forms.\n *\n * @example\n * import DatePickerCalendarRange from './date-range-picker-calendar.vue';\n *\n * export default {\n * components: { DatePickerCalendarRange },\n * template: `\n * <date-range-picker-calendar\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 i18n: { messages },\n name: 'date-range-picker-calendar',\n components: {\n BentoDropdown,\n BentoInputField,\n BentoSegmentedControl,\n BentoTypography,\n Calendar,\n },\n props: {\n /**\n * Allows user to enter time values in the form\n */\n allowTimeInput: { type: Boolean, default: false },\n\n /**\n * Ranges form persistance data\n */\n dateFormData: {\n type: Object as PropType<DateRangePickerCalendarFormData>,\n default: () => ({ startDate: undefined, endDate: undefined, startTime: undefined, endTime: undefined }),\n },\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: Calendar.props.firstDayOfWeek,\n\n /**\n * A list of available granularities.\n * If present, the date picker will display a segmented control to change granularity.\n */\n granularities: {\n type: Array as PropType<Array<BentoDateRangePickerGranularityConfig>>,\n default: null,\n },\n\n /**\n * Indicate if a date should be disabled or not\n */\n isDateDisabled: Calendar.props.isDateDisabled,\n\n /**\n * Set a maximum number of dates to be selectable by the range.\n */\n maxRange: Calendar.props.maxRange,\n\n /**\n * Sets a minimum limit for selectable dates - dates before `min` will not be selectable\n */\n min: Calendar.props.min,\n\n /**\n * Sets a maximum limit for selectable dates - dates after `max` will not be selectable\n */\n max: Calendar.props.max,\n\n /**\n * Number of months rendered on pane\n */\n numberOfMonths: Calendar.props.numberOfMonths,\n\n /**\n * Displays the end date's month when the calendar is opened. Defaults to false i.e. the start date's month is displayed.\n */\n showEndDateOnOpen: { type: Boolean, default: false },\n\n /**\n * Enables the custom range selector.\n * If provided, must be an array that sets the custom range dropdown items. Items are of the structure:\n * `label` - label of custom range item.\n * `value` - a unique key of the custom range item.\n * `data` - an object `{ startDate: Date; endDate: Date }` to set the date picker range to upon selecting.\n */\n quickSelectRanges: {\n type: Array as PropType<DateRangePickerCalendarRangeSelectorItems>,\n default: undefined,\n },\n\n /**\n * Selected date\n */\n value: { type: Object as PropType<BentoDateRangePickerValue>, default: undefined },\n },\n emits: [\n DateRangePickerCalendarEvent.CUSTOM_RANGE,\n DateRangePickerCalendarEvent.INPUT,\n DateRangePickerCalendarEvent.ERROR,\n DateRangePickerCalendarEvent.FORM_DATE,\n DateRangePickerCalendarEvent.START_DATE_SELECTED,\n ],\n setup(props, { emit, slots }) {\n const { locale, t } = useI18n<{ message: MessageSchema }>({ messages });\n const locales = getDateLocale();\n const internalRangeDate = reactive<BentoDateRangePickerValue>({\n startDate: props.value?.startDate,\n endDate: props.value?.endDate,\n range: props.value?.range,\n ...(props.granularities\n ? {\n granularity: props.value?.granularity || DEFAULT_GRANULARITY,\n }\n : {}),\n });\n\n /**\n * Deserializes a date to transform it to a UTC standard so it can be compared regardless of timezone.\n * src: https://stackoverflow.com/a/38050824\n * @param date Date to deserialize/normalize for comparisson\n */\n function deserializeDate(date: Date) {\n return new Date(\n date.getUTCFullYear(),\n date.getUTCMonth(),\n date.getUTCDate(),\n date.getUTCHours(),\n date.getUTCMinutes(),\n date.getUTCSeconds()\n );\n }\n\n /**\n * Currently range selector dropdown item that is selected.\n * The logic will try and find in each range item:\n * - If an endDate does not exist, then only check if the startDate day matches and if today's day matches.\n * - if time input has been enabled, then check if the seconds match.\n * - if an endDate does exist then just check if the startDate day and the endDate day match.\n */\n const selectedRangeSelectorValue = computed(() => {\n return (\n props?.quickSelectRanges?.find(({ data }) => {\n // Quick filter has no end date\n if (!data.endDate) {\n const resp =\n isEqual(\n deserializeDate(data.startDate),\n deserializeDate(internalRangeDate.startDate)\n ) && isToday(internalRangeDate.endDate);\n\n return resp;\n }\n\n if (props.allowTimeInput) {\n const res =\n isSameSecond(\n deserializeDate(data.startDate),\n deserializeDate(internalRangeDate.startDate)\n ) &&\n isSameSecond(deserializeDate(data.endDate), deserializeDate(internalRangeDate.endDate));\n return res;\n }\n\n if (data.endDate) {\n return (\n isSameDay(data.startDate, internalRangeDate.startDate) &&\n isSameDay(data.endDate, internalRangeDate.endDate)\n );\n }\n })?.value ?? RANGE_SELECTOR_CUSTOM_RANGE_KEY\n );\n });\n const formInputWrapperConditionalClasses = computed(() => ({\n 'b-date-range-picker-calendar__form-input-wrapper': props.allowTimeInput,\n }));\n const quickSelectRangeDefaultItems = computed(() => [\n { label: t('customRange'), value: RANGE_SELECTOR_CUSTOM_RANGE_KEY },\n ...(adjustedQuickSelectRanges.value ? adjustedQuickSelectRanges.value : []),\n ]);\n\n const selectedGranularity = computed(\n () => props.granularities?.find(({ type }) => type === internalRangeDate.granularity) || null\n );\n\n const granularityItems = computed<Array<BentoSegmentedControlItem>>(\n () =>\n props.granularities?.map(({ type, disabled }) => ({\n label: t(type),\n value: type,\n disabled,\n })) ?? []\n );\n\n const adjustedQuickSelectRanges = computed<Array<DateRangePickerCalendarRangeSelectorItem>>(\n () =>\n props.quickSelectRanges &&\n props.quickSelectRanges.map((range: DateRangePickerCalendarRangeSelectorItem) => ({\n ...range,\n data: {\n ...range.data,\n // Adding timeDifference to calculate an up-to-date endDate on range selection\n timeDifference: !range.data.endDate\n ? new Date(Date.now()).getTime() - range.data.startDate.getTime()\n : undefined,\n },\n }))\n );\n\n const { getGranularCalendarLimits } = useGranularMinMaxDate(props);\n\n const computedMinMax = computed(() =>\n props.granularities\n ? getGranularCalendarLimits(selectedGranularity.value)\n : { min: startOfDay(props.min), max: endOfDay(props.max) }\n );\n\n const {\n adjustDateForMonthly,\n adjustDateForWeekly,\n adjustStartDateInputForWeekly,\n adjustEndDateInputForWeekly,\n adjustStartDateInputForMonthly,\n adjustEndDateInputForMonthly,\n } = useGranularityAdjustments(props.firstDayOfWeek);\n const { savedRanges, saveRange, resetSavedRanges } = useGranularityMemory();\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)] || locales.enUS,\n });\n };\n\n const formatTime = (dateToFormat?: Date) => {\n if (!dateToFormat) {\n return '';\n }\n\n return format(dateToFormat, DateFormat.HOUR_MINUTE_SECONDS, {\n locale: locales[locale.value.substring(0, 2)] || locales.enUS,\n });\n };\n\n // Form error flags\n const startDateError = ref(false);\n const endDateError = ref(false);\n const startTimeError = ref(false);\n const endTimeError = 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 startTime: props.dateFormData.startTime,\n endTime: props.dateFormData.endTime,\n });\n\n // Validate time\n const isValidTime = (timeText: string) => {\n // HH:MM:SS regex\n const timeRegex = /^(?:[01]\\d|2[01234]):(?:[012345]\\d):(?:[012345]\\d)$/;\n return timeRegex.test(timeText);\n };\n\n const setTimeInDate = (date: Date, time: string) => {\n if (!time || !isValidTime(time)) {\n return date;\n }\n\n let dateWithTime = new Date(date);\n\n const [hours, minutes, seconds] = time.split(':');\n dateWithTime = setHours(dateWithTime, parseInt(hours, 10));\n dateWithTime = setMinutes(dateWithTime, parseInt(minutes, 10));\n dateWithTime = setSeconds(dateWithTime, parseInt(seconds, 10));\n return dateWithTime;\n };\n\n const onDateInput = (selectedRange: BentoDateRangePickerValue) => {\n internalRangeDate.startDate = setTimeInDate(selectedRange.startDate, dateTextInput.startTime);\n internalRangeDate.endDate = setTimeInDate(selectedRange.endDate, dateTextInput.endTime);\n\n if (props.granularities) {\n // Reset saved ranges on input\n resetSavedRanges();\n }\n\n emit(DateRangePickerCalendarEvent.INPUT, {\n ...internalRangeDate,\n range: selectedRangeSelectorValue.value,\n });\n };\n\n const isValidDate = (dateText: string) => {\n // Is date selectable\n const isDateEnabled = (date: Date) => {\n // Check if date is between min/max bounds, if there are any\n if ((props.min && date <= props.min) || (props.max && date >= props.max)) {\n return false;\n }\n\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 } else {\n startDateError.value = false;\n startTimeError.value = false;\n }\n\n if (props.dateFormData.endDate && !isValidDate(props.dateFormData.endDate)) {\n endDateError.value = true;\n } else {\n endDateError.value = false;\n endTimeError.value = false;\n }\n });\n\n const onStartDateSelected = (newStartDate: Date) => {\n dateTextInput.startDate = formatDate(newStartDate);\n if (!dateTextInput.startTime) {\n // Set the time to the beginning of the day\n dateTextInput.startTime = formatTime(newStartDate);\n } else if (startTimeError.value) {\n // Set the form time if it was previously set\n dateTextInput.startTime = props.dateFormData?.startTime;\n }\n\n // Reset errors\n startDateError.value = false;\n startTimeError.value = false;\n\n emit(DateRangePickerCalendarEvent.START_DATE_SELECTED, newStartDate);\n };\n\n const onEndDateSelected = (newEndDate: Date) => {\n dateTextInput.endDate = formatDate(newEndDate);\n if (!dateTextInput.endTime) {\n // Set the time to the end of the day\n dateTextInput.endTime = formatTime(endOfDay(newEndDate));\n } else if (endTimeError.value) {\n // Set the form time if it was previously set\n dateTextInput.endTime = props.dateFormData?.endTime;\n }\n\n // Reset errors\n endDateError.value = false;\n endTimeError.value = false;\n };\n\n const getDate = (keyName: keyof BentoDateRangePickerValue) => {\n const dateProp = (props.value as BentoDateRangePickerValue)[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 validateStartDate = debounce((startDateText: string) => {\n // Checks for YYYY-MM-DD format\n if (isValidDate(startDateText)) {\n let dateText = startDateText;\n\n startDateError.value = false;\n\n switch (selectedGranularity.value?.type) {\n case 'weekly':\n dateText = adjustStartDateInputForWeekly(\n startDateText,\n formatDate,\n computedMinMax.value.min,\n computedMinMax.value.max\n );\n dateTextInput.startDate = dateText;\n break;\n case 'monthly':\n dateText = adjustStartDateInputForMonthly(\n startDateText,\n formatDate,\n computedMinMax.value.min,\n computedMinMax.value.max\n );\n dateTextInput.startDate = dateText;\n break;\n case 'daily':\n default:\n break;\n }\n\n // Format date string to Date object\n const startDate = parseDateTextToStartOfDay(dateText);\n internalRangeDate.startDate = setTimeInDate(startDate, dateTextInput.startTime);\n\n const endDate = getDate('endDate');\n\n emit(DateRangePickerCalendarEvent.FORM_DATE, {\n startDate,\n endDate,\n });\n\n emit(DateRangePickerCalendarEvent.INPUT, {\n ...internalRangeDate,\n range: selectedRangeSelectorValue.value,\n });\n } else {\n // Indicate form error\n startDateError.value = true;\n // Emit Date picker calendar error\n emit(DateRangePickerCalendarEvent.ERROR, { ...dateTextInput });\n }\n }, FORM_INPUT_DEBOUNCE_TIME);\n\n const onStartDateInput = (startDateText: string) => {\n // Set the date as string when input through the form\n dateTextInput.startDate = formatDateInputValue(startDateText);\n validateStartDate(dateTextInput.startDate);\n };\n\n const validateEndDate = debounce((endDateText: string) => {\n // Checks for YYYY-MM-DD format\n if (isValidDate(endDateText)) {\n let dateText = endDateText;\n\n endDateError.value = false;\n\n switch (selectedGranularity.value?.type) {\n case 'weekly':\n dateText = adjustEndDateInputForWeekly(\n endDateText,\n formatDate,\n computedMinMax.value.min,\n computedMinMax.value.max\n );\n dateTextInput.endDate = dateText;\n break;\n case 'monthly':\n dateText = adjustEndDateInputForMonthly(\n endDateText,\n formatDate,\n computedMinMax.value.min,\n computedMinMax.value.max\n );\n dateTextInput.endDate = dateText;\n break;\n case 'daily':\n default:\n break;\n }\n\n const endDate = parseDateTextToStartOfDay(dateText);\n internalRangeDate.endDate = setTimeInDate(endDate, dateTextInput.endTime);\n\n const startDate = getDate('startDate');\n\n emit(DateRangePickerCalendarEvent.FORM_DATE, {\n startDate,\n endDate,\n });\n\n emit(DateRangePickerCalendarEvent.INPUT, {\n ...internalRangeDate,\n range: selectedRangeSelectorValue.value,\n });\n } else {\n // Indicate form error\n endDateError.value = true;\n // Emit Date picker calendar error\n emit(DateRangePickerCalendarEvent.ERROR, { ...dateTextInput });\n }\n }, FORM_INPUT_DEBOUNCE_TIME);\n\n const onEndDateInput = (endDateText: string) => {\n // Set the date as string when input through the form\n dateTextInput.endDate = formatDateInputValue(endDateText);\n validateEndDate(dateTextInput.endDate);\n };\n\n const onDateInputKeyDown = (event: KeyboardEvent) => {\n validateDateInput(event);\n };\n\n const validateStartTime = debounce((startTimeText: string) => {\n if (isValidTime(startTimeText)) {\n startTimeError.value = false;\n internalRangeDate.startDate = setTimeInDate(internalRangeDate.startDate, startTimeText);\n\n const endDate = getDate('endDate');\n\n emit(DateRangePickerCalendarEvent.FORM_DATE, {\n startDate: new Date(internalRangeDate.startDate),\n endDate,\n startTime: startTimeText,\n endTime: props.dateFormData.endTime,\n });\n\n emit(DateRangePickerCalendarEvent.INPUT, {\n ...internalRangeDate,\n range: selectedRangeSelectorValue.value,\n });\n } else {\n // Indicate form error\n startTimeError.value = true;\n // Emit Date picker calendar error\n emit(DateRangePickerCalendarEvent.ERROR, { ...dateTextInput });\n }\n });\n\n const validateEndTime = debounce((endTimeText: string) => {\n if (isValidTime(endTimeText)) {\n endTimeError.value = false;\n internalRangeDate.endDate = setTimeInDate(internalRangeDate.endDate, endTimeText);\n\n const startDate = getDate('startDate');\n internalRangeDate.startDate = setTimeInDate(new Date(startDate), props.dateFormData.startTime);\n\n emit(DateRangePickerCalendarEvent.FORM_DATE, {\n startDate: setTimeInDate(new Date(startDate), props.dateFormData.startTime),\n endDate: new Date(internalRangeDate.endDate),\n startTime: props.dateFormData.startTime,\n endTime: endTimeText,\n });\n emit(DateRangePickerCalendarEvent.INPUT, {\n ...internalRangeDate,\n range: selectedRangeSelectorValue.value,\n });\n } else {\n // Indicate form error\n endTimeError.value = true;\n // Emit Date picker calendar error\n emit(DateRangePickerCalendarEvent.ERROR, { ...dateTextInput });\n }\n });\n\n const onStartTimeInput = (startTimeText: string) => {\n dateTextInput.startTime = formatTimeInputValue(startTimeText);\n validateStartTime(dateTextInput.startTime);\n };\n\n const onEndTimeInput = (endDateText: string) => {\n dateTextInput.endTime = formatTimeInputValue(endDateText);\n validateEndTime(dateTextInput.endTime);\n };\n\n const onTimeInputKeyDown = (event: KeyboardEvent) => {\n validateTimeInput(event);\n };\n\n const setInternalRange = (\n startDate: Date,\n endDate: Date,\n granularity?: CalendarGranularityType,\n range?: string\n ) => {\n internalRangeDate.startDate = startDate;\n internalRangeDate.endDate = endDate;\n\n if (granularity) {\n internalRangeDate.granularity = granularity;\n }\n\n if (range) {\n internalRangeDate.range = range;\n }\n };\n\n const onRangeSelectorInput = (newCustomRangeValue: string) => {\n const foundResult = adjustedQuickSelectRanges.value?.find(({ value }) => value === newCustomRangeValue);\n\n if (foundResult) {\n resetSavedRanges();\n const date = foundResult.data;\n\n const newEndDate = date.endDate || new Date(Date.now());\n // If the time difference between start and end dates is available,\n // calculating start date dynamically\n const newStartDate = date.timeDifference\n ? new Date(newEndDate.getTime() - date.timeDifference)\n : date.startDate;\n\n // Set Form input Dates\n dateTextInput.endDate = formatDate(newEndDate);\n dateTextInput.startDate = formatDate(newStartDate);\n\n setInternalRange(newStartDate, newEndDate, null, newCustomRangeValue);\n\n if (props.granularities) {\n internalRangeDate.granularity = date.granularity || DEFAULT_GRANULARITY;\n }\n\n // Set Form input time to EOD if no time is set\n if (!dateTextInput.startTime) {\n dateTextInput.startTime = formatTime(endOfDay(newStartDate));\n }\n if (!dateTextInput.endTime) {\n dateTextInput.endTime = formatTime(endOfDay(newEndDate));\n }\n\n // Set calendar selection\n internalRangeDate.startDate = newStartDate;\n internalRangeDate.endDate = newEndDate;\n\n // Emit everytime the date range changes\n emit(DateRangePickerCalendarEvent.CUSTOM_RANGE, {\n ...foundResult.data,\n startDate: newStartDate,\n endDate: newEndDate,\n range: foundResult.value,\n });\n }\n };\n\n const onGranularityInput = (value: CalendarGranularityType) => {\n const previousValue = internalRangeDate.granularity;\n\n internalRangeDate.granularity = value;\n\n // Save previously selected range\n if (previousValue) {\n saveRange(previousValue, structuredClone(toRaw(internalRangeDate)));\n }\n\n if (internalRangeDate.startDate && internalRangeDate.endDate) {\n // Adjust date range based on new granularity\n switch (value) {\n case 'monthly': {\n if (savedRanges.monthly) {\n setInternalRange(savedRanges.monthly.startDate, savedRanges.monthly.endDate, value);\n break;\n }\n\n const { startDate, endDate } = adjustDateForMonthly(\n internalRangeDate.startDate,\n internalRangeDate.endDate,\n computedMinMax.value.min,\n computedMinMax.value.max\n );\n setInternalRange(startDate, endDate, value);\n break;\n }\n case 'weekly': {\n if (savedRanges.weekly) {\n setInternalRange(savedRanges.weekly.startDate, savedRanges.weekly.endDate, value);\n break;\n }\n\n const { startDate, endDate } = adjustDateForWeekly(\n internalRangeDate.startDate,\n internalRangeDate.endDate,\n computedMinMax.value.min,\n computedMinMax.value.max\n );\n setInternalRange(startDate, endDate, value);\n break;\n }\n case 'daily':\n if (savedRanges.daily) {\n setInternalRange(savedRanges.daily.startDate, savedRanges.daily.endDate, value);\n }\n break;\n default:\n break;\n }\n\n dateTextInput.startDate = formatDate(internalRangeDate.startDate);\n dateTextInput.endDate = formatDate(internalRangeDate.endDate);\n\n emit(DateRangePickerCalendarEvent.INPUT, {\n ...internalRangeDate,\n range: selectedRangeSelectorValue.value,\n });\n }\n };\n\n return {\n // Values\n internalRangeDate,\n dateTextInput,\n endDateError,\n endTimeError,\n granularityItems,\n selectedGranularity,\n computedMinMax,\n selectedRangeSelectorValue,\n startDateError,\n startTimeError,\n adjustedQuickSelectRanges,\n quickSelectRangeDefaultItems,\n formInputWrapperConditionalClasses,\n\n // Methods\n hasSlot: useHasSlot(slots),\n t,\n\n // Events\n onDateInput,\n onDateInputKeyDown,\n onEndDateInput,\n onEndDateSelected,\n onEndTimeInput,\n onGranularityInput,\n onRangeSelectorInput,\n onStartDateInput,\n onStartDateSelected,\n onStartTimeInput,\n onTimeInputKeyDown,\n };\n },\n });\n</script>\n\n<style lang=\"scss\" scoped src=\"./date-range-picker-calendar.scss\" />\n","import { computed, reactive } from 'vue';\nimport { getDateLocale } from '@/utils/ts/get-date-locale/get-date-locale';\nimport { useI18n } from '@/utils/ts/i18n';\nimport { parseDateTextToStartOfDay } from '../utils/date-text-to-start-of-day';\nimport { UseDateDisplayText } from './use-date-range-picker-calendar-text.types';\nimport { DateFormat } from '@/types';\nimport { CalendarRangeDateValue } from '@/internal';\nimport { DateRangePickerCalendarFormData } from '../components/date-range-picker-calendar/date-range-picker-calendar.types';\nimport format from 'date-fns/format';\n\nexport const useDateRangePickerCalendarText: UseDateDisplayText<CalendarRangeDateValue> = ({\n datePickerValue,\n isDateIncorrect,\n quickSelectRanges,\n}) => {\n const { locale, t } = useI18n();\n const locales = getDateLocale();\n\n const isValidDate = date => !!date && !isNaN(date.getTime());\n\n const formatDate = (date: Date, dateFormat: DateFormat) =>\n isValidDate(date)\n ? format(date, dateFormat, {\n locale: locales[locale.value.substring(0, 2)] || locales.enUS,\n })\n : undefined;\n\n // Handle the form input text\n const textInputDisplayValue = reactive<DateRangePickerCalendarFormData>({\n startDate: formatDate(datePickerValue.value?.startDate, DateFormat.NUMERIC_DATE_YEAR_FIRST),\n endDate: formatDate(datePickerValue.value?.endDate, DateFormat.NUMERIC_DATE_YEAR_FIRST),\n startTime: formatDate(datePickerValue.value?.startDate, DateFormat.HOUR_MINUTE_SECONDS),\n endTime: formatDate(datePickerValue.value?.endDate, DateFormat.HOUR_MINUTE_SECONDS),\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 if (quickSelectRanges.value?.length) {\n const customRangeSelected = quickSelectRanges.value.find(({ value }) => {\n return value === datePickerValue.value?.range;\n });\n\n if (customRangeSelected) {\n return customRangeSelected.label;\n }\n }\n\n const { startDate, endDate } = textInputDisplayValue;\n return `${formatDate(parseDateTextToStartOfDay(startDate), DateFormat.FULL_DATE_MONTH_FIRST)} - ${formatDate(\n parseDateTextToStartOfDay(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","export { CalendarFirstDayOfWeek as BentoDateRangePickerFirstDayOfWeek } from '@/internal';\nexport type {\n CalendarIsDateDisabled as BentoDateRangePickerIsDateDisabled,\n CalendarRangeDateValue as BentoDateRangePickerValue,\n CalendarGranularityConfig as BentoDateRangePickerGranularityConfig,\n} from '@/internal';\n\nexport enum BentoDateRangePickerEvent {\n INPUT = 'input',\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=\"closeDateRangePicker\" class=\"b-date-range-picker\">\n <!-- Label -->\n <field-label\n v-if=\"label\"\n :id=\"labelId\"\n :label=\"label\"\n :tooltip-text=\"tooltipText\"\n :optional=\"optional\"\n :required=\"required\"\n />\n\n <!-- Input -->\n <div @keydown.enter=\"onEnterPressedOverInput\">\n <dropdown-input-default\n ref=\"inputContainerRef\"\n always-combobox-is-input\n :ariaControls=\"datePickerContainerId\"\n :ariaExpanded=\"isDateRangePickerOpen\"\n :aria-labelledby=\"label ? labelId : null\"\n :aria-describedby=\"ariaDescribedBy\"\n :disabled=\"disabled\"\n :is-invalid=\"!!errorMessage || shouldDisplayError\"\n :open=\"isDateRangePickerOpen\"\n :display-value=\"displayedDateValue\"\n :readonly=\"isReadOnly\"\n @open=\"openDateRangePicker\"\n @clear=\"clearDateRangePickerValue\"\n @close=\"closeDateRangePicker\"\n />\n </div>\n\n <!-- Error Messages -->\n <error-message\n v-if=\"shouldDisplayError\"\n :id=\"dateErrorId\"\n :error-message=\"t('provideDateInAFormat')\"\n class=\"b-date-range-picker__error-message\"\n />\n <error-message\n v-if=\"!!errorMessage\"\n :id=\"errorId\"\n :error-message=\"errorMessage\"\n class=\"b-date-range-picker__error-message\"\n />\n\n <!-- Description -->\n <bento-typography\n v-if=\"description\"\n :id=\"descriptionId\"\n class=\"b-date-range-picker__description\"\n :class=\"descriptionConditionalClasses\"\n el=\"span\"\n >\n {{ description }}\n </bento-typography>\n\n <!-- Calendar container -->\n <bento-popover\n v-if=\"inputContainerRef\"\n :id=\"datePickerContainerId\"\n class=\"b-date-range-picker__container\"\n :open=\"isDateRangePickerOpen\"\n :target-element=\"inputContainerRef\"\n :disable-focus-trap=\"true\"\n :aria-label=\"popoverAriaLabel\"\n position=\"bottom-start\"\n without-space\n fit-content\n >\n <date-range-picker-calendar\n :allow-time-input=\"allowTimeInput\"\n :quick-select-ranges=\"quickSelectRanges\"\n :value=\"value\"\n :first-day-of-week=\"firstDayOfWeek\"\n :granularities=\"granularities\"\n :is-date-disabled=\"isDateDisabled\"\n :max-range=\"maxRange\"\n :min=\"min\"\n :max=\"max\"\n :number-of-months=\"numberOfMonths\"\n :show-end-date-on-open=\"showEndDateOnOpen\"\n :date-form-data=\"displayedTextInputValue\"\n @custom-range=\"onRangeSelectorInput\"\n @input=\"onDateRangePickerInput\"\n @error=\"onDateRangePickerError\"\n @form-date=\"onDateRangePickerFormDateInputUpdate\"\n >\n <template v-if=\"hasActions\" #actions>\n <bento-divider />\n\n <div class=\"b-date-range-picker__footer\">\n <bento-button-actions\n :actions=\"rangePickerButtonActions\"\n :layout=\"BentoButtonActionsLayout.SPACE_BETWEEN\"\n />\n </div>\n </template>\n </date-range-picker-calendar>\n </bento-popover>\n </div>\n</template>\n\n<script lang=\"ts\">\n import { computed, defineComponent, onMounted, PropType, ref, toRaw, toRef, watch } from 'vue';\n\n // Components\n import { BentoButtonActions, BentoButtonActionsLayout } from '@/components/button';\n import { BentoDivider } from '@/components/divider';\n import { BentoPopover } from '@/components/popover';\n import { BentoTypography } from '../typography';\n import { DateRangePickerCalendar } from './components/date-range-picker-calendar';\n import { DropdownInputDefault } from '@/components/dropdown/components';\n import { ErrorMessage, FieldLabel } from '@/internal';\n\n // Utils\n import { getDateLocale } from '@/utils/ts/get-date-locale/get-date-locale';\n import { generateUid } from '@/core/utils/ts';\n import { useI18n } from '@/utils/ts/i18n';\n import format from 'date-fns/format';\n\n // Composables\n import { useDateRangePickerCalendarText } from './composables/use-date-range-picker-calendar-text';\n import { useFormLayoutFieldLoading } from '@/composables';\n\n // Directives\n import { BentoClickOutsideDirective } from '@/directives';\n\n // Types\n import { BentoDateRangePickerEvent, BentoDateRangePickerValue } from './date-range-picker.types';\n import { DateFormat } from '@/types';\n import {\n DateRangePickerCalendarFormData,\n DateRangePickerCalendarRangeSelectorItems,\n } from './components/date-range-picker-calendar/date-range-picker-calendar.types';\n\n import { deprecate } from '@/utils/ts/deprecate';\n import messages from './messages.json';\n\n type MessageSchema = (typeof messages)['en-US'];\n\n /**\n * Date range picker selector.\n *\n * @example\n * import { BentoDateRangePicker } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { BentoDateRangePicker },\n * template: `\n * <bento-date-range-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-range-picker',\n components: {\n BentoButtonActions,\n BentoDivider,\n BentoTypography,\n BentoPopover,\n DateRangePickerCalendar,\n DropdownInputDefault,\n ErrorMessage,\n FieldLabel,\n },\n directives: { BentoClickOutsideDirective },\n props: {\n /**\n * Allows user to enter time values in the form\n */\n allowTimeInput: { type: Boolean, default: false },\n\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 * Displays component in an error state with an error message\n */\n errorMessage: { type: String, default: null },\n\n /**\n * Allows user to set the first day of the week. 0 is sunday, 1 is monday, 6 is saturday\n */\n firstDayOfWeek: DateRangePickerCalendar.props.firstDayOfWeek,\n\n /**\n * A list of available granularities.\n * If present, the date picker will display a segmented control to change granularity.\n */\n granularities: DateRangePickerCalendar.props.granularities,\n\n /**\n * Indicate if a date should be disabled or not\n */\n isDateDisabled: DateRangePickerCalendar.props.isDateDisabled,\n\n /**\n * Text that is displayed as a label above the element.\n */\n label: { type: String, default: undefined },\n\n /**\n * Upon opening date range picker, end date's month will be pre-selected.\n */\n showEndDateOnOpen: { type: Boolean, default: false },\n\n /**\n * Highlights the dropdown is optional.\n */\n optional: { type: Boolean, default: false },\n\n /**\n * The Boolean readonly property, when present, makes the element not mutable, meaning the user can not edit the date range picker.\n */\n readonly: { type: Boolean, default: false },\n\n /**\n * Highlights the dropdown is required.\n */\n required: { type: Boolean, default: false },\n\n /**\n * Adds a info icon next to the label to display the passed tooltip message.\n */\n tooltipText: { type: String, default: null },\n\n /**\n * Enables the range selector.\n * If provided, must be an array that sets the custom range dropdown items. Items are of the structure:\n * `label` - label of custom range item.\n * `value` - a unique key of the custom range item.\n * `data` - an object `{ startDate: Date; endDate: Date }` to set the date picker range to upon selecting.\n */\n quickSelectRanges: {\n type: Array as PropType<DateRangePickerCalendarRangeSelectorItems>,\n default: undefined,\n },\n\n /**\n * Set a maximum number of dates to be selectable by the range.\n */\n maxRange: DateRangePickerCalendar.props.maxRange,\n\n /**\n * Sets a minimum limit for selectable dates - dates before `min` will not be selectable\n */\n min: DateRangePickerCalendar.props.min,\n\n /**\n * Sets a maximum limit for selectable dates - dates after `max` will not be selectable\n */\n max: DateRangePickerCalendar.props.max,\n\n /**\n * Number of months rendered on pane\n */\n numberOfMonths: DateRangePickerCalendar.props.numberOfMonths,\n\n /**\n * Selected date\n */\n value: DateRangePickerCalendar.props.value,\n\n /**\n * Enables the date picker selection to persist until it is explicitly applied.\n * Displays a set of buttons: Apply and Cancel.\n *\n * @deprecated This will be the default behaviour in v2.0.0.\n */\n hasActions: { type: Boolean, default: false },\n },\n emits: [BentoDateRangePickerEvent.INPUT],\n setup(props, { emit }) {\n const { locale, t } = useI18n<{ message: MessageSchema }>({ messages });\n const locales = getDateLocale();\n const datePickerContainerId = generateUid('bento-date-range-picker-container');\n const labelId = generateUid('bento-date-range-picker-label');\n const descriptionId = generateUid('bento-date-range-picker-description');\n const errorId = generateUid('bento-date-range-picker-error');\n const dateErrorId = generateUid('bento-date-range-picker-date-error');\n const popoverAriaLabel = computed(\n () => props.label || t('dateRangePicker', { name: datePickerContainerId })\n );\n\n const isDateIncorrect = ref(false);\n const inputContainerRef = ref(null);\n const isDateRangePickerOpen = ref(false);\n const { isReadOnly } = useFormLayoutFieldLoading(toRef(props, 'readonly'));\n\n watch(\n () => props.disabled,\n () => {\n // Close date picker popover if it's opened when it's disabled\n if (props.disabled && isDateRangePickerOpen.value) {\n isDateRangePickerOpen.value = false;\n }\n }\n );\n\n const shouldDisplayError = computed(() => {\n if (props.hasActions) {\n return !isApplyDisabled.value && isDateIncorrect.value;\n }\n\n return isDateIncorrect.value;\n });\n\n const descriptionConditionalClasses = computed(() => ({\n 'b-date-range-picker__description--error': !!props.errorMessage || shouldDisplayError.value,\n }));\n\n const { dateDisplayValue, textInputDisplayValue, formatTextInputDisplayValue } =\n useDateRangePickerCalendarText({\n datePickerValue: toRef(props, 'value'),\n isDateIncorrect,\n quickSelectRanges: toRef(props, 'quickSelectRanges'),\n });\n\n const ariaDescribedBy = computed(\n () =>\n `${props.description ? descriptionId : ''} ${props.errorMessage ? errorId : ''} ${\n isDateIncorrect.value ? dateErrorId : ''\n }`.trim() || null\n );\n\n const closeDateRangePicker = () => {\n isDateRangePickerOpen.value = false;\n };\n\n const openDateRangePicker = () => {\n isDateRangePickerOpen.value = true;\n formatTextInputDisplayValue();\n };\n\n /*\n * Used when `hasActions` is set to true\n */\n const localDateDisplayValue = ref(dateDisplayValue.value);\n const localTextInputDisplayValue = ref<DateRangePickerCalendarFormData>(\n // textInputDisplayValue is a reactive object\n structuredClone(toRaw(textInputDisplayValue))\n );\n const selectedDate = ref<BentoDateRangePickerValue>(props.value);\n const isApplyDisabled = ref(true);\n\n const displayedTextInputValue = computed(() =>\n props.hasActions ? localTextInputDisplayValue.value : textInputDisplayValue\n );\n\n const displayedDateValue = computed(() =>\n props.hasActions ? localDateDisplayValue.value : dateDisplayValue.value\n );\n\n onMounted(() => {\n if (!props.hasActions) {\n deprecate(\n 'BentoDateRangePicker \"hasActions\" property',\n `Set the BentoDateRangePicker \"hasActions\" property true which will display the \"Apply\" and \"Cancel\" buttons.\n This will be the default behavior in the v2 and \"hasActions\" will be removed.`,\n '2.0.0'\n );\n }\n });\n\n // On update for the value we need to update all the locally stored data\n watch(\n () => props.value,\n () => {\n localDateDisplayValue.value = dateDisplayValue.value;\n localTextInputDisplayValue.value = structuredClone(toRaw(textInputDisplayValue));\n }\n );\n\n const rangePickerButtonActions = computed(() => [\n {\n title: t('apply'),\n event: () => {\n emit(BentoDateRangePickerEvent.INPUT, selectedDate.value);\n closeDateRangePicker();\n\n isApplyDisabled.value = true;\n },\n disabled: isApplyDisabled.value,\n },\n {\n title: t('cancel'),\n event: closeDateRangePicker,\n },\n ]);\n\n watch(selectedDate, date => {\n // skip emit until Apply button is clicked\n if (props.hasActions) {\n isApplyDisabled.value = isDateIncorrect.value;\n\n return;\n }\n\n emit(BentoDateRangePickerEvent.INPUT, date);\n });\n\n const onDateRangePickerInput = (selectedRange: BentoDateRangePickerValue) => {\n // Reset the errors when the date is correct\n isDateIncorrect.value = false;\n\n const formatDate = (date: Date, dateFormat: DateFormat) =>\n date\n ? format(date, dateFormat, {\n locale: locales[locale.value.substring(0, 2)] || locales.enUS,\n })\n : undefined;\n\n textInputDisplayValue.startDate = formatDate(\n selectedRange.startDate,\n DateFormat.NUMERIC_DATE_YEAR_FIRST\n );\n textInputDisplayValue.endDate = formatDate(selectedRange.endDate, DateFormat.NUMERIC_DATE_YEAR_FIRST);\n textInputDisplayValue.startTime = formatDate(selectedRange.startDate, DateFormat.HOUR_MINUTE_SECONDS);\n textInputDisplayValue.endTime = formatDate(selectedRange.endDate, DateFormat.HOUR_MINUTE_SECONDS);\n\n selectedDate.value = selectedRange;\n };\n\n const clearDateRangePickerValue = async () => {\n if (isDateIncorrect.value) {\n isDateIncorrect.value = false;\n }\n\n selectedDate.value = null;\n };\n\n const onEnterPressedOverInput = () => {\n // Close the date picker if the date is correct\n if (!isDateIncorrect.value) {\n isDateRangePickerOpen.value = false;\n }\n };\n\n const onDateRangePickerFormDateInputUpdate = (dateFormDate: DateRangePickerCalendarFormData) => {\n isDateIncorrect.value = false;\n\n if (dateFormDate.startTime) {\n textInputDisplayValue.startTime = dateFormDate.startTime;\n }\n\n if (dateFormDate.endTime) {\n textInputDisplayValue.endTime = dateFormDate.endTime;\n }\n };\n\n const onDateRangePickerError = dateTextInput => {\n isDateIncorrect.value = true;\n textInputDisplayValue.startDate = dateTextInput.startDate;\n textInputDisplayValue.endDate = dateTextInput.endDate;\n\n // Remove current date range selection\n selectedDate.value = { startDate: null, endDate: null };\n };\n\n const onRangeSelectorInput = (quickSelectRanges?: BentoDateRangePickerValue) => {\n if (quickSelectRanges) {\n const formatDate = (date: Date) =>\n format(date, DateFormat.NUMERIC_DATE_YEAR_FIRST, {\n locale: locales[locale.value.substring(0, 2)] || locales.enUS,\n });\n textInputDisplayValue.startDate = formatDate(quickSelectRanges.startDate);\n textInputDisplayValue.endDate = formatDate(quickSelectRanges.endDate);\n\n selectedDate.value = quickSelectRanges;\n }\n };\n\n return {\n // Refs\n inputContainerRef,\n\n // Values,\n dateDisplayValue,\n datePickerContainerId,\n descriptionConditionalClasses,\n displayedTextInputValue,\n displayedDateValue,\n isDateIncorrect,\n isDateRangePickerOpen,\n isReadOnly,\n labelId,\n descriptionId,\n dateErrorId,\n errorId,\n popoverAriaLabel,\n shouldDisplayError,\n ariaDescribedBy,\n textInputDisplayValue,\n rangePickerButtonActions,\n BentoButtonActionsLayout,\n\n // Events\n closeDateRangePicker,\n clearDateRangePickerValue,\n openDateRangePicker,\n onRangeSelectorInput,\n onEnterPressedOverInput,\n onDateRangePickerInput,\n onDateRangePickerError,\n onDateRangePickerFormDateInputUpdate,\n\n // Translations\n t,\n };\n },\n });\n</script>\n\n<style lang=\"scss\" scoped src=\"./date-range-picker.scss\" />\n"],"names":["isEqual","dirtyLeftDate","dirtyRightDate","requiredArgs","dateLeft","toDate","dateRight","startOfSecond","dirtyDate","date","isSameSecond","dirtyDateLeft","dirtyDateRight","dateLeftStartOfSecond","dateRightStartOfSecond","isToday","isSameDay","setHours","dirtyHours","hours","toInteger","setMinutes","dirtyMinutes","minutes","setSeconds","dirtySeconds","seconds","parseDateTextToStartOfDay","dateText","startOfDay","year","month","day","s","useGranularMinMaxDate","firstDayOfWeek","minimumDate","maximumDate","granularity","min","max","endOfDay","startOfMin","startOfWeek","addDays","endOfWeek","endOfMax","subDays","startOfMonth","addMonths","endOfMonth","subMonths","useGranularityMemory","savedRanges","reactive","type","range","DateRangePickerCalendarEvent","DateRangePickerCalendarEvent2","validDigitRegex","hourRegex","minuteRegex","validateTimeInput","event","selectionStart","isValidKey","isValidColon","formatTimeInputValue","value","formattedValue","secondToLastDigit","lastDigit","FORM_INPUT_DEBOUNCE_TIME","RANGE_SELECTOR_CUSTOM_RANGE_KEY","DEFAULT_GRANULARITY","_sfc_main$1","defineComponent","messages$1","BentoDropdown","BentoInputField","BentoSegmentedControl","BentoTypography","Calendar","props","emit","slots","locale","t","useI18n","locales","getDateLocale","internalRangeDate","_a","_b","_c","_d","deserializeDate","selectedRangeSelectorValue","computed","data","formInputWrapperConditionalClasses","quickSelectRangeDefaultItems","adjustedQuickSelectRanges","selectedGranularity","granularityItems","disabled","getGranularCalendarLimits","computedMinMax","adjustDateForMonthly","adjustDateForWeekly","adjustStartDateInputForWeekly","adjustEndDateInputForWeekly","adjustStartDateInputForMonthly","adjustEndDateInputForMonthly","useGranularityAdjustments","saveRange","resetSavedRanges","formatDate","dateToFormat","format","DateFormat","formatTime","startDateError","ref","endDateError","startTimeError","endTimeError","dateTextInput","isValidTime","timeText","setTimeInDate","time","dateWithTime","onDateInput","selectedRange","isValidDate","isDateEnabled","onMounted","onStartDateSelected","newStartDate","onEndDateSelected","newEndDate","getDate","keyName","dateProp","validateStartDate","debounce","startDateText","startDate","endDate","onStartDateInput","formatDateInputValue","validateEndDate","endDateText","onEndDateInput","onDateInputKeyDown","validateDateInput","validateStartTime","startTimeText","validateEndTime","endTimeText","onStartTimeInput","onEndTimeInput","onTimeInputKeyDown","setInternalRange","onRangeSelectorInput","newCustomRangeValue","foundResult","onGranularityInput","previousValue","toRaw","useHasSlot","useDateRangePickerCalendarText","datePickerValue","isDateIncorrect","quickSelectRanges","dateFormat","textInputDisplayValue","customRangeSelected","BentoDateRangePickerEvent","BentoDateRangePickerEvent2","_sfc_main","messages","BentoButtonActions","BentoDivider","BentoPopover","DateRangePickerCalendar","DropdownInputDefault","ErrorMessage","FieldLabel","BentoClickOutsideDirective","datePickerContainerId","generateUid","labelId","descriptionId","errorId","dateErrorId","popoverAriaLabel","inputContainerRef","isDateRangePickerOpen","isReadOnly","useFormLayoutFieldLoading","toRef","watch","shouldDisplayError","isApplyDisabled","descriptionConditionalClasses","dateDisplayValue","ariaDescribedBy","closeDateRangePicker","openDateRangePicker","localDateDisplayValue","localTextInputDisplayValue","selectedDate","displayedTextInputValue","displayedDateValue","deprecate","rangePickerButtonActions","BentoButtonActionsLayout","dateFormDate"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6]}
@@ -166,16 +166,19 @@ var v = {
166
166
  G: function(t, e, r) {
167
167
  var a = t.getUTCFullYear() > 0 ? 1 : 0;
168
168
  switch (e) {
169
+ // AD, BC
169
170
  case "G":
170
171
  case "GG":
171
172
  case "GGG":
172
173
  return r.era(a, {
173
174
  width: "abbreviated"
174
175
  });
176
+ // A, B
175
177
  case "GGGGG":
176
178
  return r.era(a, {
177
179
  width: "narrow"
178
180
  });
181
+ // Anno Domini, Before Christ
179
182
  case "GGGG":
180
183
  default:
181
184
  return r.era(a, {
@@ -226,24 +229,30 @@ var v = {
226
229
  Q: function(t, e, r) {
227
230
  var a = Math.ceil((t.getUTCMonth() + 1) / 3);
228
231
  switch (e) {
232
+ // 1, 2, 3, 4
229
233
  case "Q":
230
234
  return String(a);
235
+ // 01, 02, 03, 04
231
236
  case "QQ":
232
237
  return o(a, 2);
238
+ // 1st, 2nd, 3rd, 4th
233
239
  case "Qo":
234
240
  return r.ordinalNumber(a, {
235
241
  unit: "quarter"
236
242
  });
243
+ // Q1, Q2, Q3, Q4
237
244
  case "QQQ":
238
245
  return r.quarter(a, {
239
246
  width: "abbreviated",
240
247
  context: "formatting"
241
248
  });
249
+ // 1, 2, 3, 4 (narrow quarter; could be not numerical)
242
250
  case "QQQQQ":
243
251
  return r.quarter(a, {
244
252
  width: "narrow",
245
253
  context: "formatting"
246
254
  });
255
+ // 1st quarter, 2nd quarter, ...
247
256
  case "QQQQ":
248
257
  default:
249
258
  return r.quarter(a, {
@@ -256,24 +265,30 @@ var v = {
256
265
  q: function(t, e, r) {
257
266
  var a = Math.ceil((t.getUTCMonth() + 1) / 3);
258
267
  switch (e) {
268
+ // 1, 2, 3, 4
259
269
  case "q":
260
270
  return String(a);
271
+ // 01, 02, 03, 04
261
272
  case "qq":
262
273
  return o(a, 2);
274
+ // 1st, 2nd, 3rd, 4th
263
275
  case "qo":
264
276
  return r.ordinalNumber(a, {
265
277
  unit: "quarter"
266
278
  });
279
+ // Q1, Q2, Q3, Q4
267
280
  case "qqq":
268
281
  return r.quarter(a, {
269
282
  width: "abbreviated",
270
283
  context: "standalone"
271
284
  });
285
+ // 1, 2, 3, 4 (narrow quarter; could be not numerical)
272
286
  case "qqqqq":
273
287
  return r.quarter(a, {
274
288
  width: "narrow",
275
289
  context: "standalone"
276
290
  });
291
+ // 1st quarter, 2nd quarter, ...
277
292
  case "qqqq":
278
293
  default:
279
294
  return r.quarter(a, {
@@ -289,20 +304,24 @@ var v = {
289
304
  case "M":
290
305
  case "MM":
291
306
  return v.M(t, e);
307
+ // 1st, 2nd, ..., 12th
292
308
  case "Mo":
293
309
  return r.ordinalNumber(a + 1, {
294
310
  unit: "month"
295
311
  });
312
+ // Jan, Feb, ..., Dec
296
313
  case "MMM":
297
314
  return r.month(a, {
298
315
  width: "abbreviated",
299
316
  context: "formatting"
300
317
  });
318
+ // J, F, ..., D
301
319
  case "MMMMM":
302
320
  return r.month(a, {
303
321
  width: "narrow",
304
322
  context: "formatting"
305
323
  });
324
+ // January, February, ..., December
306
325
  case "MMMM":
307
326
  default:
308
327
  return r.month(a, {
@@ -315,24 +334,30 @@ var v = {
315
334
  L: function(t, e, r) {
316
335
  var a = t.getUTCMonth();
317
336
  switch (e) {
337
+ // 1, 2, ..., 12
318
338
  case "L":
319
339
  return String(a + 1);
340
+ // 01, 02, ..., 12
320
341
  case "LL":
321
342
  return o(a + 1, 2);
343
+ // 1st, 2nd, ..., 12th
322
344
  case "Lo":
323
345
  return r.ordinalNumber(a + 1, {
324
346
  unit: "month"
325
347
  });
348
+ // Jan, Feb, ..., Dec
326
349
  case "LLL":
327
350
  return r.month(a, {
328
351
  width: "abbreviated",
329
352
  context: "standalone"
330
353
  });
354
+ // J, F, ..., D
331
355
  case "LLLLL":
332
356
  return r.month(a, {
333
357
  width: "narrow",
334
358
  context: "standalone"
335
359
  });
360
+ // January, February, ..., December
336
361
  case "LLLL":
337
362
  default:
338
363
  return r.month(a, {
@@ -372,6 +397,7 @@ var v = {
372
397
  E: function(t, e, r) {
373
398
  var a = t.getUTCDay();
374
399
  switch (e) {
400
+ // Tue
375
401
  case "E":
376
402
  case "EE":
377
403
  case "EEE":
@@ -379,16 +405,19 @@ var v = {
379
405
  width: "abbreviated",
380
406
  context: "formatting"
381
407
  });
408
+ // T
382
409
  case "EEEEE":
383
410
  return r.day(a, {
384
411
  width: "narrow",
385
412
  context: "formatting"
386
413
  });
414
+ // Tu
387
415
  case "EEEEEE":
388
416
  return r.day(a, {
389
417
  width: "short",
390
418
  context: "formatting"
391
419
  });
420
+ // Tuesday
392
421
  case "EEEE":
393
422
  default:
394
423
  return r.day(a, {
@@ -401,10 +430,13 @@ var v = {
401
430
  e: function(t, e, r, a) {
402
431
  var n = t.getUTCDay(), i = (n - a.weekStartsOn + 8) % 7 || 7;
403
432
  switch (e) {
433
+ // Numerical value (Nth day of week with current locale or weekStartsOn)
404
434
  case "e":
405
435
  return String(i);
436
+ // Padded numerical value
406
437
  case "ee":
407
438
  return o(i, 2);
439
+ // 1st, 2nd, ..., 7th
408
440
  case "eo":
409
441
  return r.ordinalNumber(i, {
410
442
  unit: "day"
@@ -414,16 +446,19 @@ var v = {
414
446
  width: "abbreviated",
415
447
  context: "formatting"
416
448
  });
449
+ // T
417
450
  case "eeeee":
418
451
  return r.day(n, {
419
452
  width: "narrow",
420
453
  context: "formatting"
421
454
  });
455
+ // Tu
422
456
  case "eeeeee":
423
457
  return r.day(n, {
424
458
  width: "short",
425
459
  context: "formatting"
426
460
  });
461
+ // Tuesday
427
462
  case "eeee":
428
463
  default:
429
464
  return r.day(n, {
@@ -436,10 +471,13 @@ var v = {
436
471
  c: function(t, e, r, a) {
437
472
  var n = t.getUTCDay(), i = (n - a.weekStartsOn + 8) % 7 || 7;
438
473
  switch (e) {
474
+ // Numerical value (same as in `e`)
439
475
  case "c":
440
476
  return String(i);
477
+ // Padded numerical value
441
478
  case "cc":
442
479
  return o(i, e.length);
480
+ // 1st, 2nd, ..., 7th
443
481
  case "co":
444
482
  return r.ordinalNumber(i, {
445
483
  unit: "day"
@@ -449,16 +487,19 @@ var v = {
449
487
  width: "abbreviated",
450
488
  context: "standalone"
451
489
  });
490
+ // T
452
491
  case "ccccc":
453
492
  return r.day(n, {
454
493
  width: "narrow",
455
494
  context: "standalone"
456
495
  });
496
+ // Tu
457
497
  case "cccccc":
458
498
  return r.day(n, {
459
499
  width: "short",
460
500
  context: "standalone"
461
501
  });
502
+ // Tuesday
462
503
  case "cccc":
463
504
  default:
464
505
  return r.day(n, {
@@ -471,29 +512,36 @@ var v = {
471
512
  i: function(t, e, r) {
472
513
  var a = t.getUTCDay(), n = a === 0 ? 7 : a;
473
514
  switch (e) {
515
+ // 2
474
516
  case "i":
475
517
  return String(n);
518
+ // 02
476
519
  case "ii":
477
520
  return o(n, e.length);
521
+ // 2nd
478
522
  case "io":
479
523
  return r.ordinalNumber(n, {
480
524
  unit: "day"
481
525
  });
526
+ // Tue
482
527
  case "iii":
483
528
  return r.day(a, {
484
529
  width: "abbreviated",
485
530
  context: "formatting"
486
531
  });
532
+ // T
487
533
  case "iiiii":
488
534
  return r.day(a, {
489
535
  width: "narrow",
490
536
  context: "formatting"
491
537
  });
538
+ // Tu
492
539
  case "iiiiii":
493
540
  return r.day(a, {
494
541
  width: "short",
495
542
  context: "formatting"
496
543
  });
544
+ // Tuesday
497
545
  case "iiii":
498
546
  default:
499
547
  return r.day(a, {
@@ -634,13 +682,21 @@ var v = {
634
682
  if (i === 0)
635
683
  return "Z";
636
684
  switch (e) {
685
+ // Hours and optional minutes
637
686
  case "X":
638
687
  return L(i);
688
+ // Hours, minutes and optional seconds without `:` delimiter
689
+ // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets
690
+ // so this token always has the same output as `XX`
639
691
  case "XXXX":
640
692
  case "XX":
641
693
  return w(i);
694
+ // Hours, minutes and optional seconds with `:` delimiter
695
+ // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets
696
+ // so this token always has the same output as `XXX`
642
697
  case "XXXXX":
643
698
  case "XXX":
699
+ // Hours and minutes with `:` delimiter
644
700
  default:
645
701
  return w(i, ":");
646
702
  }
@@ -649,13 +705,21 @@ var v = {
649
705
  x: function(t, e, r, a) {
650
706
  var n = a._originalDate || t, i = n.getTimezoneOffset();
651
707
  switch (e) {
708
+ // Hours and optional minutes
652
709
  case "x":
653
710
  return L(i);
711
+ // Hours, minutes and optional seconds without `:` delimiter
712
+ // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets
713
+ // so this token always has the same output as `xx`
654
714
  case "xxxx":
655
715
  case "xx":
656
716
  return w(i);
717
+ // Hours, minutes and optional seconds with `:` delimiter
718
+ // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets
719
+ // so this token always has the same output as `xxx`
657
720
  case "xxxxx":
658
721
  case "xxx":
722
+ // Hours and minutes with `:` delimiter
659
723
  default:
660
724
  return w(i, ":");
661
725
  }
@@ -664,10 +728,12 @@ var v = {
664
728
  O: function(t, e, r, a) {
665
729
  var n = a._originalDate || t, i = n.getTimezoneOffset();
666
730
  switch (e) {
731
+ // Short
667
732
  case "O":
668
733
  case "OO":
669
734
  case "OOO":
670
735
  return "GMT" + U(i, ":");
736
+ // Long
671
737
  case "OOOO":
672
738
  default:
673
739
  return "GMT" + w(i, ":");
@@ -677,10 +743,12 @@ var v = {
677
743
  z: function(t, e, r, a) {
678
744
  var n = a._originalDate || t, i = n.getTimezoneOffset();
679
745
  switch (e) {
746
+ // Short
680
747
  case "z":
681
748
  case "zz":
682
749
  case "zzz":
683
750
  return "GMT" + U(i, ":");
751
+ // Long
684
752
  case "zzzz":
685
753
  default:
686
754
  return "GMT" + w(i, ":");
@@ -916,4 +984,4 @@ export {
916
984
  ge as f,
917
985
  f as t
918
986
  };
919
- //# sourceMappingURL=date.1zs9CRhw.js.map
987
+ //# sourceMappingURL=date.YLIcAerL.js.map