@mhmo91/schmancy 0.4.9 → 0.4.10

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 (299) hide show
  1. package/ai/button.md +6 -3
  2. package/ai/code-highlight.md +239 -0
  3. package/ai/countries.md +270 -0
  4. package/ai/dialog.md +22 -3
  5. package/ai/directives.md +237 -0
  6. package/ai/input.md +99 -55
  7. package/ai/payment-card-form.md +241 -0
  8. package/ai/surface.md +1 -1
  9. package/ai/timezone.md +275 -0
  10. package/ai/typography.md +78 -43
  11. package/dist/ai/button.md +6 -3
  12. package/dist/ai/code-highlight.md +239 -0
  13. package/dist/ai/countries.md +270 -0
  14. package/dist/ai/dialog.md +22 -3
  15. package/dist/ai/directives.md +237 -0
  16. package/dist/ai/input.md +99 -55
  17. package/dist/ai/payment-card-form.md +241 -0
  18. package/dist/ai/surface.md +1 -1
  19. package/dist/ai/timezone.md +275 -0
  20. package/dist/ai/typography.md +78 -43
  21. package/dist/{animated-text-BqZjMyzb.js → animated-text-Be02uXuq.js} +3 -3
  22. package/dist/{animated-text-BqZjMyzb.js.map → animated-text-Be02uXuq.js.map} +1 -1
  23. package/dist/{animated-text-CgY-L1nI.cjs → animated-text-Dh_Ony1b.cjs} +2 -2
  24. package/dist/{animated-text-CgY-L1nI.cjs.map → animated-text-Dh_Ony1b.cjs.map} +1 -1
  25. package/dist/animated-text.cjs +1 -1
  26. package/dist/animated-text.js +1 -1
  27. package/dist/area.cjs +1 -1
  28. package/dist/{area.component-B7U96CpD.js → area.component-CVYJtXrI.js} +3 -3
  29. package/dist/{area.component-B7U96CpD.js.map → area.component-CVYJtXrI.js.map} +1 -1
  30. package/dist/{area.component-Zbs-bAJV.cjs → area.component-DTc1TOLd.cjs} +2 -2
  31. package/dist/{area.component-Zbs-bAJV.cjs.map → area.component-DTc1TOLd.cjs.map} +1 -1
  32. package/dist/area.js +1 -1
  33. package/dist/{autocomplete-qK00SJRP.cjs → autocomplete-CzTNaIqf.cjs} +2 -2
  34. package/dist/{autocomplete-qK00SJRP.cjs.map → autocomplete-CzTNaIqf.cjs.map} +1 -1
  35. package/dist/{autocomplete-DIUsdT73.js → autocomplete-D1bwPNoy.js} +3 -3
  36. package/dist/{autocomplete-DIUsdT73.js.map → autocomplete-D1bwPNoy.js.map} +1 -1
  37. package/dist/autocomplete.cjs +1 -1
  38. package/dist/autocomplete.js +1 -1
  39. package/dist/{avatar-BK-Ikpdw.cjs → avatar-CFu-31B1.cjs} +2 -2
  40. package/dist/{avatar-BK-Ikpdw.cjs.map → avatar-CFu-31B1.cjs.map} +1 -1
  41. package/dist/{avatar-Bp0t8NU5.js → avatar-D35JpOv5.js} +44 -44
  42. package/dist/{avatar-Bp0t8NU5.js.map → avatar-D35JpOv5.js.map} +1 -1
  43. package/dist/badge.cjs +1 -1
  44. package/dist/badge.js +1 -1
  45. package/dist/{boat-By-PBLw8.js → boat-6nw0fphH.js} +2 -2
  46. package/dist/{boat-By-PBLw8.js.map → boat-6nw0fphH.js.map} +1 -1
  47. package/dist/{boat-DUU675NX.cjs → boat-De0k6DJ6.cjs} +2 -2
  48. package/dist/{boat-DUU675NX.cjs.map → boat-De0k6DJ6.cjs.map} +1 -1
  49. package/dist/boat.cjs +1 -1
  50. package/dist/boat.js +1 -1
  51. package/dist/busy.cjs +1 -1
  52. package/dist/busy.js +1 -1
  53. package/dist/button.cjs +1 -1
  54. package/dist/button.js +1 -1
  55. package/dist/card.cjs +1 -1
  56. package/dist/card.js +1 -1
  57. package/dist/{checkbox-f7BewP4u.cjs → checkbox-Xr-OTKiq.cjs} +2 -2
  58. package/dist/{checkbox-f7BewP4u.cjs.map → checkbox-Xr-OTKiq.cjs.map} +1 -1
  59. package/dist/{checkbox-_WevqQDR.js → checkbox-ZW_jmRBP.js} +2 -2
  60. package/dist/{checkbox-_WevqQDR.js.map → checkbox-ZW_jmRBP.js.map} +1 -1
  61. package/dist/checkbox.cjs +1 -1
  62. package/dist/checkbox.js +1 -1
  63. package/dist/{chips-DiDm29N_.js → chips-DFam160B.js} +3 -3
  64. package/dist/{chips-DiDm29N_.js.map → chips-DFam160B.js.map} +1 -1
  65. package/dist/{chips-D1QElds4.cjs → chips-DwvB_B3m.cjs} +2 -2
  66. package/dist/{chips-D1QElds4.cjs.map → chips-DwvB_B3m.cjs.map} +1 -1
  67. package/dist/chips.cjs +1 -1
  68. package/dist/chips.js +1 -1
  69. package/dist/{circular-progress-BAlic8HY.js → circular-progress-BARPJm-e.js} +3 -3
  70. package/dist/{circular-progress-BAlic8HY.js.map → circular-progress-BARPJm-e.js.map} +1 -1
  71. package/dist/{circular-progress-CfPyDLX6.cjs → circular-progress-BDZFB3WR.cjs} +2 -2
  72. package/dist/{circular-progress-CfPyDLX6.cjs.map → circular-progress-BDZFB3WR.cjs.map} +1 -1
  73. package/dist/circular-progress.cjs +1 -1
  74. package/dist/circular-progress.js +1 -1
  75. package/dist/code-highlight.cjs +1 -1
  76. package/dist/code-highlight.js +1 -1
  77. package/dist/{code-preview-BiVj9uxF.js → code-preview-BxswKcO8.js} +2 -2
  78. package/dist/{code-preview-BiVj9uxF.js.map → code-preview-BxswKcO8.js.map} +1 -1
  79. package/dist/{code-preview-DtvCblTa.cjs → code-preview-CFnSKSqn.cjs} +2 -2
  80. package/dist/{code-preview-DtvCblTa.cjs.map → code-preview-CFnSKSqn.cjs.map} +1 -1
  81. package/dist/components.cjs +1 -1
  82. package/dist/components.js +1 -1
  83. package/dist/content-drawer.cjs +1 -1
  84. package/dist/content-drawer.js +1 -1
  85. package/dist/date-range-Cq8Wdd8b.cjs +131 -0
  86. package/dist/date-range-Cq8Wdd8b.cjs.map +1 -0
  87. package/dist/date-range-Fij9AQth.js +638 -0
  88. package/dist/date-range-Fij9AQth.js.map +1 -0
  89. package/dist/date-range.cjs +1 -1
  90. package/dist/date-range.js +1 -1
  91. package/dist/{delay-KEyQxDNp.cjs → delay-YfksbdSk.cjs} +2 -2
  92. package/dist/{delay-KEyQxDNp.cjs.map → delay-YfksbdSk.cjs.map} +1 -1
  93. package/dist/{delay-BdXEKapp.js → delay-aA1TyZTr.js} +2 -2
  94. package/dist/{delay-BdXEKapp.js.map → delay-aA1TyZTr.js.map} +1 -1
  95. package/dist/delay.cjs +1 -1
  96. package/dist/delay.js +1 -1
  97. package/dist/{dialog-content-D3sFNuVs.js → dialog-content-DpotaqHz.js} +3 -3
  98. package/dist/{dialog-content-D3sFNuVs.js.map → dialog-content-DpotaqHz.js.map} +1 -1
  99. package/dist/{dialog-content-D5YTttrK.cjs → dialog-content-NyJfG7nL.cjs} +2 -2
  100. package/dist/{dialog-content-D5YTttrK.cjs.map → dialog-content-NyJfG7nL.cjs.map} +1 -1
  101. package/dist/dialog.cjs +1 -1
  102. package/dist/dialog.js +1 -1
  103. package/dist/{divider-CNXiMvWd.js → divider-CEMmRD_e.js} +3 -3
  104. package/dist/{divider-CNXiMvWd.js.map → divider-CEMmRD_e.js.map} +1 -1
  105. package/dist/{divider-CDz3pUAy.cjs → divider-CMM91UNF.cjs} +2 -2
  106. package/dist/{divider-CDz3pUAy.cjs.map → divider-CMM91UNF.cjs.map} +1 -1
  107. package/dist/divider.cjs +1 -1
  108. package/dist/divider.js +1 -1
  109. package/dist/{dropdown-content-jlq_cqLS.cjs → dropdown-content-CUn_E7cR.cjs} +2 -2
  110. package/dist/{dropdown-content-jlq_cqLS.cjs.map → dropdown-content-CUn_E7cR.cjs.map} +1 -1
  111. package/dist/{dropdown-content-CVz6zPSO.js → dropdown-content-Cw5wN3oE.js} +3 -3
  112. package/dist/{dropdown-content-CVz6zPSO.js.map → dropdown-content-Cw5wN3oE.js.map} +1 -1
  113. package/dist/dropdown.cjs +1 -1
  114. package/dist/dropdown.js +1 -1
  115. package/dist/extra.cjs +1 -1
  116. package/dist/extra.js +1 -1
  117. package/dist/{flex-DFatBgot.cjs → flex-B9AdlerG.cjs} +2 -2
  118. package/dist/{flex-DFatBgot.cjs.map → flex-B9AdlerG.cjs.map} +1 -1
  119. package/dist/{flex-TjhbDSMX.js → flex-ChnKQLCI.js} +2 -2
  120. package/dist/{flex-TjhbDSMX.js.map → flex-ChnKQLCI.js.map} +1 -1
  121. package/dist/{form-ClDdYqke.cjs → form-BdGYvvVv.cjs} +2 -2
  122. package/dist/{form-ClDdYqke.cjs.map → form-BdGYvvVv.cjs.map} +1 -1
  123. package/dist/{form-D-auKn-K.js → form-DNXmZlmc.js} +2 -2
  124. package/dist/{form-D-auKn-K.js.map → form-DNXmZlmc.js.map} +1 -1
  125. package/dist/form.cjs +1 -1
  126. package/dist/form.js +1 -1
  127. package/dist/{icon-BfY2ZJUE.js → icon-BzxYzucF.js} +2 -2
  128. package/dist/{icon-BfY2ZJUE.js.map → icon-BzxYzucF.js.map} +1 -1
  129. package/dist/{icon-D2xGQiZb.cjs → icon-CiYXCpzk.cjs} +2 -2
  130. package/dist/{icon-D2xGQiZb.cjs.map → icon-CiYXCpzk.cjs.map} +1 -1
  131. package/dist/{icon-button-BUkdhu_-.cjs → icon-button-CVF8ZGrd.cjs} +2 -2
  132. package/dist/{icon-button-BUkdhu_-.cjs.map → icon-button-CVF8ZGrd.cjs.map} +1 -1
  133. package/dist/{icon-button-yKwaljg0.js → icon-button-VqejfzxG.js} +3 -3
  134. package/dist/{icon-button-yKwaljg0.js.map → icon-button-VqejfzxG.js.map} +1 -1
  135. package/dist/icons.cjs +1 -1
  136. package/dist/icons.js +1 -1
  137. package/dist/index.cjs +1 -1
  138. package/dist/index.js +42 -42
  139. package/dist/input-DfBGrUet.cjs +122 -0
  140. package/dist/input-DfBGrUet.cjs.map +1 -0
  141. package/dist/input-d4jaMv22.js +487 -0
  142. package/dist/input-d4jaMv22.js.map +1 -0
  143. package/dist/input.cjs +1 -1
  144. package/dist/input.js +1 -1
  145. package/dist/layout.cjs +1 -1
  146. package/dist/layout.js +1 -1
  147. package/dist/{list-BO9C13wk.cjs → list-DN2eHabm.cjs} +2 -2
  148. package/dist/{list-BO9C13wk.cjs.map → list-DN2eHabm.cjs.map} +1 -1
  149. package/dist/{list-CHZKII-L.js → list-L1m51qC0.js} +2 -2
  150. package/dist/{list-CHZKII-L.js.map → list-L1m51qC0.js.map} +1 -1
  151. package/dist/list.cjs +1 -1
  152. package/dist/list.js +1 -1
  153. package/dist/{litElement.mixin-CUibxXWX.cjs → litElement.mixin-CejONOpd.cjs} +2 -2
  154. package/dist/{litElement.mixin-CUibxXWX.cjs.map → litElement.mixin-CejONOpd.cjs.map} +1 -1
  155. package/dist/{litElement.mixin-5RC72TVS.js → litElement.mixin-D-SDs-Ez.js} +2 -2
  156. package/dist/{litElement.mixin-5RC72TVS.js.map → litElement.mixin-D-SDs-Ez.js.map} +1 -1
  157. package/dist/{media-4arP4Xi0.js → media-C0AR69S2.js} +2 -2
  158. package/dist/{media-4arP4Xi0.js.map → media-C0AR69S2.js.map} +1 -1
  159. package/dist/{media-v2LZA3zQ.cjs → media-yXym3iTa.cjs} +2 -2
  160. package/dist/{media-v2LZA3zQ.cjs.map → media-yXym3iTa.cjs.map} +1 -1
  161. package/dist/{menu-DvcxRQrY.js → menu-Bhh6qxR6.js} +3 -3
  162. package/dist/{menu-DvcxRQrY.js.map → menu-Bhh6qxR6.js.map} +1 -1
  163. package/dist/{menu-C-ZpBMON.cjs → menu-CKDW29ZR.cjs} +2 -2
  164. package/dist/{menu-C-ZpBMON.cjs.map → menu-CKDW29ZR.cjs.map} +1 -1
  165. package/dist/menu.cjs +1 -1
  166. package/dist/menu.js +1 -1
  167. package/dist/nav-drawer.cjs +1 -1
  168. package/dist/nav-drawer.js +1 -1
  169. package/dist/{notification-service-CcapAF2G.js → notification-service-CG4XTrXU.js} +3 -3
  170. package/dist/{notification-service-CcapAF2G.js.map → notification-service-CG4XTrXU.js.map} +1 -1
  171. package/dist/{notification-service-BXTqvkWg.cjs → notification-service-CRbqdLm_.cjs} +2 -2
  172. package/dist/{notification-service-BXTqvkWg.cjs.map → notification-service-CRbqdLm_.cjs.map} +1 -1
  173. package/dist/notification.cjs +1 -1
  174. package/dist/notification.js +1 -1
  175. package/dist/{option-xSW3D1j5.js → option-Cj25fsD1.js} +2 -2
  176. package/dist/{option-xSW3D1j5.js.map → option-Cj25fsD1.js.map} +1 -1
  177. package/dist/{option-Cj3xNzQG.cjs → option-DFNHF3bL.cjs} +2 -2
  178. package/dist/{option-Cj3xNzQG.cjs.map → option-DFNHF3bL.cjs.map} +1 -1
  179. package/dist/option.cjs +1 -1
  180. package/dist/option.js +1 -1
  181. package/dist/{payment-card-form-CdNQkQa5.cjs → payment-card-form-CEANJmNw.cjs} +2 -2
  182. package/dist/{payment-card-form-CdNQkQa5.cjs.map → payment-card-form-CEANJmNw.cjs.map} +1 -1
  183. package/dist/{payment-card-form-B-W0YXS5.js → payment-card-form-YzyxteTK.js} +3 -3
  184. package/dist/{payment-card-form-B-W0YXS5.js.map → payment-card-form-YzyxteTK.js.map} +1 -1
  185. package/dist/{radio-button-WeQklCIj.cjs → radio-button-BVeem3E9.cjs} +2 -2
  186. package/dist/{radio-button-WeQklCIj.cjs.map → radio-button-BVeem3E9.cjs.map} +1 -1
  187. package/dist/{radio-button-CNrcOMLm.js → radio-button-CBcYZCqv.js} +2 -2
  188. package/dist/{radio-button-CNrcOMLm.js.map → radio-button-CBcYZCqv.js.map} +1 -1
  189. package/dist/radio-group.cjs +1 -1
  190. package/dist/radio-group.js +1 -1
  191. package/dist/{schmancy-steps-container-kh5hz8Q8.cjs → schmancy-steps-container-B-Bvr-wZ.cjs} +2 -2
  192. package/dist/{schmancy-steps-container-kh5hz8Q8.cjs.map → schmancy-steps-container-B-Bvr-wZ.cjs.map} +1 -1
  193. package/dist/{schmancy-steps-container-DTR_ppqJ.js → schmancy-steps-container-BACX3hp6.js} +2 -2
  194. package/dist/{schmancy-steps-container-DTR_ppqJ.js.map → schmancy-steps-container-BACX3hp6.js.map} +1 -1
  195. package/dist/{select-D6OdooZd.cjs → select-Cr15D48_.cjs} +2 -2
  196. package/dist/{select-D6OdooZd.cjs.map → select-Cr15D48_.cjs.map} +1 -1
  197. package/dist/{select-BeStY5QU.js → select-IgXxVwZQ.js} +3 -3
  198. package/dist/{select-BeStY5QU.js.map → select-IgXxVwZQ.js.map} +1 -1
  199. package/dist/select.cjs +1 -1
  200. package/dist/select.js +1 -1
  201. package/dist/{sheet-DurXVAka.js → sheet-9m-LkKNU.js} +4 -4
  202. package/dist/{sheet-DurXVAka.js.map → sheet-9m-LkKNU.js.map} +1 -1
  203. package/dist/{sheet-BHdCyBYA.cjs → sheet-u1RXiD4G.cjs} +2 -2
  204. package/dist/{sheet-BHdCyBYA.cjs.map → sheet-u1RXiD4G.cjs.map} +1 -1
  205. package/dist/sheet.cjs +1 -1
  206. package/dist/sheet.js +2 -2
  207. package/dist/{slider-eKHfEAqk.cjs → slider-BFJ0OVq5.cjs} +2 -2
  208. package/dist/{slider-eKHfEAqk.cjs.map → slider-BFJ0OVq5.cjs.map} +1 -1
  209. package/dist/{slider-CcOPTwfV.js → slider-BvOKAD4l.js} +3 -3
  210. package/dist/{slider-CcOPTwfV.js.map → slider-BvOKAD4l.js.map} +1 -1
  211. package/dist/slider.cjs +1 -1
  212. package/dist/slider.js +1 -1
  213. package/dist/{spinner-0BTyqnFH.cjs → spinner-CRWcQJjQ.cjs} +2 -2
  214. package/dist/{spinner-0BTyqnFH.cjs.map → spinner-CRWcQJjQ.cjs.map} +1 -1
  215. package/dist/{spinner-BcaOyZIW.js → spinner-jaFB6wer.js} +3 -3
  216. package/dist/{spinner-BcaOyZIW.js.map → spinner-jaFB6wer.js.map} +1 -1
  217. package/dist/steps.cjs +1 -1
  218. package/dist/steps.js +1 -1
  219. package/dist/{surface-DhTA5nKg.cjs → surface-CTlwMC6K.cjs} +2 -2
  220. package/dist/{surface-DhTA5nKg.cjs.map → surface-CTlwMC6K.cjs.map} +1 -1
  221. package/dist/{surface-XqJoAcEI.js → surface-D7X23FXb.js} +2 -2
  222. package/dist/{surface-XqJoAcEI.js.map → surface-D7X23FXb.js.map} +1 -1
  223. package/dist/surface.cjs +1 -1
  224. package/dist/surface.js +1 -1
  225. package/dist/{table-DPfOXBUJ.cjs → table-0HYVgRpO.cjs} +2 -2
  226. package/dist/{table-DPfOXBUJ.cjs.map → table-0HYVgRpO.cjs.map} +1 -1
  227. package/dist/{table-Dy5Fqu4G.js → table-Dwrox4AT.js} +2 -2
  228. package/dist/{table-Dy5Fqu4G.js.map → table-Dwrox4AT.js.map} +1 -1
  229. package/dist/table.cjs +1 -1
  230. package/dist/table.js +1 -1
  231. package/dist/{tabs-compatibility-BqSkFV08.js → tabs-compatibility-CHTrE420.js} +2 -2
  232. package/dist/{tabs-compatibility-BqSkFV08.js.map → tabs-compatibility-CHTrE420.js.map} +1 -1
  233. package/dist/{tabs-compatibility-TPaYG7ev.cjs → tabs-compatibility-DFaq5_66.cjs} +2 -2
  234. package/dist/{tabs-compatibility-TPaYG7ev.cjs.map → tabs-compatibility-DFaq5_66.cjs.map} +1 -1
  235. package/dist/tabs.cjs +1 -1
  236. package/dist/tabs.js +1 -1
  237. package/dist/tailwind.mixin-Dx35wOig.js +43 -0
  238. package/dist/{tailwind.mixin-DpiTmETl.js.map → tailwind.mixin-Dx35wOig.js.map} +1 -1
  239. package/dist/tailwind.mixin-xwSbeHSt.cjs +2 -0
  240. package/dist/{tailwind.mixin-C6mrbvH3.cjs.map → tailwind.mixin-xwSbeHSt.cjs.map} +1 -1
  241. package/dist/teleport.cjs +1 -1
  242. package/dist/teleport.js +1 -1
  243. package/dist/{textarea-Dy7B8B0d.cjs → textarea-D7NLGUQL.cjs} +2 -2
  244. package/dist/{textarea-Dy7B8B0d.cjs.map → textarea-D7NLGUQL.cjs.map} +1 -1
  245. package/dist/{textarea-Ba8gRDPS.js → textarea-Dx-DzkDe.js} +2 -2
  246. package/dist/{textarea-Ba8gRDPS.js.map → textarea-Dx-DzkDe.js.map} +1 -1
  247. package/dist/textarea.cjs +1 -1
  248. package/dist/textarea.js +1 -1
  249. package/dist/{theme-button-Bnm7IL1u.cjs → theme-button-25FKBtFN.cjs} +2 -2
  250. package/dist/{theme-button-Bnm7IL1u.cjs.map → theme-button-25FKBtFN.cjs.map} +1 -1
  251. package/dist/{theme-button-COwSZ83Y.js → theme-button-C97XGkCl.js} +2 -2
  252. package/dist/{theme-button-COwSZ83Y.js.map → theme-button-C97XGkCl.js.map} +1 -1
  253. package/dist/theme-button.cjs +1 -1
  254. package/dist/theme-button.js +1 -1
  255. package/dist/theme.cjs +1 -1
  256. package/dist/{theme.component-BV_e_mXY.js → theme.component-BAA4DyC6.js} +2 -2
  257. package/dist/{theme.component-BV_e_mXY.js.map → theme.component-BAA4DyC6.js.map} +1 -1
  258. package/dist/{theme.component-UBy29B7c.cjs → theme.component-DIXxdhcR.cjs} +2 -2
  259. package/dist/{theme.component-UBy29B7c.cjs.map → theme.component-DIXxdhcR.cjs.map} +1 -1
  260. package/dist/theme.js +1 -1
  261. package/dist/{timezone-DBxPtZan.cjs → timezone-BWn9DNZY.cjs} +2 -2
  262. package/dist/{timezone-DBxPtZan.cjs.map → timezone-BWn9DNZY.cjs.map} +1 -1
  263. package/dist/{timezone-DEhkif2j.js → timezone-BurrHk00.js} +3 -3
  264. package/dist/{timezone-DEhkif2j.js.map → timezone-BurrHk00.js.map} +1 -1
  265. package/dist/{tooltip-D0coQKih.js → tooltip-Dy5bvLg8.js} +2 -2
  266. package/dist/{tooltip-D0coQKih.js.map → tooltip-Dy5bvLg8.js.map} +1 -1
  267. package/dist/{tooltip-CTBMN8M6.cjs → tooltip-dz3rb8at.cjs} +2 -2
  268. package/dist/{tooltip-CTBMN8M6.cjs.map → tooltip-dz3rb8at.cjs.map} +1 -1
  269. package/dist/tooltip.cjs +1 -1
  270. package/dist/tooltip.js +1 -1
  271. package/dist/{tree-Zy0XMFKh.js → tree-DzHOYcn8.js} +2 -2
  272. package/dist/{tree-Zy0XMFKh.js.map → tree-DzHOYcn8.js.map} +1 -1
  273. package/dist/{tree-Co4Ithrh.cjs → tree-z1EoelBs.cjs} +2 -2
  274. package/dist/{tree-Co4Ithrh.cjs.map → tree-z1EoelBs.cjs.map} +1 -1
  275. package/dist/tree.cjs +1 -1
  276. package/dist/tree.js +1 -1
  277. package/dist/{typewriter-C0InniFB.js → typewriter-BiBJSC2J.js} +4 -4
  278. package/dist/{typewriter-C0InniFB.js.map → typewriter-BiBJSC2J.js.map} +1 -1
  279. package/dist/{typewriter-soteXIt4.cjs → typewriter-D_bqiukY.cjs} +2 -2
  280. package/dist/{typewriter-soteXIt4.cjs.map → typewriter-D_bqiukY.cjs.map} +1 -1
  281. package/dist/typewriter.cjs +1 -1
  282. package/dist/typewriter.js +1 -1
  283. package/dist/{typography-Bw9baiV3.cjs → typography-BLenYAmX.cjs} +2 -2
  284. package/dist/{typography-Bw9baiV3.cjs.map → typography-BLenYAmX.cjs.map} +1 -1
  285. package/dist/{typography-CeTZ2VqE.js → typography-DtpDTIi7.js} +2 -2
  286. package/dist/{typography-CeTZ2VqE.js.map → typography-DtpDTIi7.js.map} +1 -1
  287. package/dist/typography.cjs +1 -1
  288. package/dist/typography.js +1 -1
  289. package/package.json +1 -1
  290. package/dist/date-range-BLs8_7pI.js +0 -609
  291. package/dist/date-range-BLs8_7pI.js.map +0 -1
  292. package/dist/date-range-Ch_Ir3s1.cjs +0 -117
  293. package/dist/date-range-Ch_Ir3s1.cjs.map +0 -1
  294. package/dist/input-B3GMd-FZ.js +0 -363
  295. package/dist/input-B3GMd-FZ.js.map +0 -1
  296. package/dist/input-By2O_8YL.cjs +0 -111
  297. package/dist/input-By2O_8YL.cjs.map +0 -1
  298. package/dist/tailwind.mixin-C6mrbvH3.cjs +0 -2
  299. package/dist/tailwind.mixin-DpiTmETl.js +0 -43
@@ -1 +0,0 @@
1
- {"version":3,"file":"date-range-BLs8_7pI.js","sources":["../../../../.yarn/berry/cache/dayjs-npm-1.11.13-d478bb9479-10c0.zip/node_modules/dayjs/dayjs.min.js","../../../../.yarn/berry/cache/dayjs-npm-1.11.13-d478bb9479-10c0.zip/node_modules/dayjs/plugin/quarterOfYear.js","../src/date-range/date-utils.ts","../src/date-range/date-range-presets.ts","../src/date-range/date-range-helpers.ts","../src/date-range/date-range.ts"],"sourcesContent":["!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},g=\"en\",D={};D[g]=M;var p=\"$isDayjsObject\",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if(\"string\"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split(\"-\");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v=\"set\"+(this.$u?\"UTC\":\"\");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+\"Hours\",0);case u:return $(v+\"Minutes\",1);case s:return $(v+\"Seconds\",2);case i:return $(v+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=b.p(t),f=\"set\"+(this.$u?\"UTC\":\"\"),l=(n={},n[a]=f+\"Date\",n[d]=f+\"Date\",n[c]=f+\"Month\",n[h]=f+\"FullYear\",n[u]=f+\"Hours\",n[s]=f+\"Minutes\",n[i]=f+\"Seconds\",n[r]=f+\"Milliseconds\",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,\"0\")},$=f||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case\"YY\":return String(e.$y).slice(-2);case\"YYYY\":return b.s(e.$y,4,\"0\");case\"M\":return a+1;case\"MM\":return b.s(a+1,2,\"0\");case\"MMM\":return h(n.monthsShort,a,c,3);case\"MMMM\":return h(c,a);case\"D\":return e.$D;case\"DD\":return b.s(e.$D,2,\"0\");case\"d\":return String(e.$W);case\"dd\":return h(n.weekdaysMin,e.$W,o,2);case\"ddd\":return h(n.weekdaysShort,e.$W,o,3);case\"dddd\":return o[e.$W];case\"H\":return String(s);case\"HH\":return b.s(s,2,\"0\");case\"h\":return d(1);case\"hh\":return d(2);case\"a\":return $(s,u,!0);case\"A\":return $(s,u,!1);case\"m\":return String(u);case\"mm\":return b.s(u,2,\"0\");case\"s\":return String(e.$s);case\"ss\":return b.s(e.$s,2,\"0\");case\"SSS\":return b.s(e.$ms,3,\"0\");case\"Z\":return i}return null}(t)||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),k=_.prototype;return O.prototype=k,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",c],[\"$y\",h],[\"$D\",d]].forEach((function(t){k[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=!0),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));","!function(t,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_quarterOfYear=n()}(this,(function(){\"use strict\";var t=\"month\",n=\"quarter\";return function(e,i){var r=i.prototype;r.quarter=function(t){return this.$utils().u(t)?Math.ceil((this.month()+1)/3):this.month(this.month()%3+3*(t-1))};var s=r.add;r.add=function(e,i){return e=Number(e),this.$utils().p(i)===n?this.add(3*e,t):s.bind(this)(e,i)};var u=r.startOf;r.startOf=function(e,i){var r=this.$utils(),s=!!r.u(i)||i;if(r.p(e)===n){var o=this.quarter()-1;return s?this.month(3*o).startOf(t).startOf(\"day\"):this.month(3*o+2).endOf(t).endOf(\"day\")}return u.bind(this)(e,i)}}}));","import dayjs from 'dayjs'\n\ntype DateFormat = 'YYYY-MM-DD' | 'YYYY-MM-DDTHH:mm'\n\n/**\n * Ensures that a date string conforms to a specific format.\n * If the date is already in the correct format, it returns the original string.\n * If the date is in a different format, it attempts to convert it to the specified format.\n * If the date is invalid or cannot be converted, it returns null.\n *\n * @param dateString The date string to validate and format.\n * @param expectedFormat The expected date format (e.g., 'YYYY-MM-DD', 'YYYY-MM-DDTHH:mm').\n * @returns The formatted date string, or null if the date is invalid.\n */\nfunction enforceDateFormat(dateString: string | undefined, expectedFormat: DateFormat): string | null {\n\tif (!dateString) {\n\t\treturn null // Or handle the undefined case differently if needed\n\t}\n\n\tconst parsedDate = dayjs(dateString)\n\n\tif (!parsedDate.isValid()) {\n\t\treturn null // Date is invalid\n\t}\n\n\treturn parsedDate.format(expectedFormat)\n}\n\n/**\n * Validates if the initial date range values are in the expected format.\n *\n * @param dateFrom The dateFrom value to validate.\n * @param dateTo The dateTo value to validate.\n * @param expectedFormat The expected date format.\n * @returns An object indicating whether each date is valid, and the formatted date or null if invalid.\n */\nfunction validateInitialDateRange(\n\tdateFrom: string | undefined,\n\tdateTo: string | undefined,\n\texpectedFormat: DateFormat,\n): {\n\tdateFrom: string | null\n\tdateTo: string | null\n\tisValid: boolean\n} {\n\tconst formattedDateFrom = enforceDateFormat(dateFrom, expectedFormat)\n\tconst formattedDateTo = enforceDateFormat(dateTo, expectedFormat)\n\n\tconst isValid = formattedDateFrom !== null && formattedDateTo !== null\n\n\treturn {\n\t\tdateFrom: formattedDateFrom,\n\t\tdateTo: formattedDateTo,\n\t\tisValid,\n\t}\n}\n\nexport { validateInitialDateRange }\n","import dayjs from 'dayjs'\r\n\r\nexport type PresetUnit = dayjs.OpUnitType | 'quarter'\r\n\r\nexport interface DateRangePreset {\r\n\tlabel: string\r\n\trange: { dateFrom: string; dateTo: string }\r\n\tstep: PresetUnit\r\n}\r\n\r\nexport interface PresetCategory {\r\n\tname: string\r\n\tpresets: DateRangePreset[]\r\n}\r\n\r\n/**\r\n * Generate date range presets for different time periods\r\n */\r\nexport function generatePresetCategories(format: string, includeTime: boolean = false): PresetCategory[] {\r\n\tconst categories: PresetCategory[] = []\r\n\r\n\t// Hours category (only for datetime-local)\r\n\tif (includeTime) {\r\n\t\tcategories.push({\r\n\t\t\tname: 'Hours',\r\n\t\t\tpresets: [\r\n\t\t\t\t{\r\n\t\t\t\t\tlabel: 'Last 24 Hours',\r\n\t\t\t\t\trange: {\r\n\t\t\t\t\t\tdateFrom: dayjs().subtract(24, 'hours').format(format),\r\n\t\t\t\t\t\tdateTo: dayjs().format(format),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tstep: 'hour',\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tlabel: 'Last 12 Hours',\r\n\t\t\t\t\trange: {\r\n\t\t\t\t\t\tdateFrom: dayjs().subtract(12, 'hours').format(format),\r\n\t\t\t\t\t\tdateTo: dayjs().format(format),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tstep: 'hour',\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t})\r\n\t}\r\n\r\n\t// Days category\r\n\tcategories.push({\r\n\t\tname: 'Days',\r\n\t\tpresets: [\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Today',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().startOf('day').format(format),\r\n\t\t\t\t\tdateTo: dayjs().endOf('day').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'day',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Yesterday',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().subtract(1, 'days').startOf('day').format(format),\r\n\t\t\t\t\tdateTo: dayjs().subtract(1, 'days').endOf('day').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'day',\r\n\t\t\t},\r\n\t\t\t...generateLastNDaysPresets([7, 14, 30, 60, 90], format),\r\n\t\t],\r\n\t})\r\n\r\n\t// Weeks category\r\n\tcategories.push({\r\n\t\tname: 'Weeks',\r\n\t\tpresets: [\r\n\t\t\t{\r\n\t\t\t\tlabel: 'This Week',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().startOf('week').format(format),\r\n\t\t\t\t\tdateTo: dayjs().endOf('week').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'week',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Last Week',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().subtract(1, 'weeks').startOf('week').format(format),\r\n\t\t\t\t\tdateTo: dayjs().subtract(1, 'weeks').endOf('week').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'week',\r\n\t\t\t},\r\n\t\t\t...generateLastNWeeksPresets([2, 4], format),\r\n\t\t],\r\n\t})\r\n\r\n\t// Months category\r\n\tcategories.push({\r\n\t\tname: 'Months',\r\n\t\tpresets: [\r\n\t\t\t{\r\n\t\t\t\tlabel: 'This Month',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().startOf('month').format(format),\r\n\t\t\t\t\tdateTo: dayjs().endOf('month').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'month',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Last Month',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().subtract(1, 'month').startOf('month').format(format),\r\n\t\t\t\t\tdateTo: dayjs().subtract(1, 'month').endOf('month').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'month',\r\n\t\t\t},\r\n\t\t\t...generateLastNMonthsPresets([3, 6], format),\r\n\t\t],\r\n\t})\r\n\r\n\t// Quarters category\r\n\tcategories.push({\r\n\t\tname: 'Quarters',\r\n\t\tpresets: [\r\n\t\t\t{\r\n\t\t\t\tlabel: 'This Quarter',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().startOf('quarter').format(format),\r\n\t\t\t\t\tdateTo: dayjs().endOf('quarter').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'quarter',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Last Quarter',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().subtract(1, 'quarter').startOf('quarter').format(format),\r\n\t\t\t\t\tdateTo: dayjs().subtract(1, 'quarter').endOf('quarter').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'quarter',\r\n\t\t\t},\r\n\t\t\t...generateLastNQuartersPresets([2, 4], format),\r\n\t\t],\r\n\t})\r\n\r\n\t// Years category\r\n\tcategories.push({\r\n\t\tname: 'Years',\r\n\t\tpresets: [\r\n\t\t\t{\r\n\t\t\t\tlabel: 'This Year',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().startOf('year').format(format),\r\n\t\t\t\t\tdateTo: dayjs().endOf('year').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'year',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Last Year',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().subtract(1, 'year').startOf('year').format(format),\r\n\t\t\t\t\tdateTo: dayjs().subtract(1, 'year').endOf('year').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'year',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Year to Date',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().startOf('year').format(format),\r\n\t\t\t\t\tdateTo: dayjs().endOf('day').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'day',\r\n\t\t\t},\r\n\t\t],\r\n\t})\r\n\r\n\treturn categories\r\n}\r\n\r\n// Helper functions to generate preset arrays\r\nfunction generateLastNDaysPresets(days: number[], format: string): DateRangePreset[] {\r\n\treturn days.map(n => ({\r\n\t\tlabel: `Last ${n} Days`,\r\n\t\trange: {\r\n\t\t\tdateFrom: dayjs().subtract(n - 1, 'days').startOf('day').format(format),\r\n\t\t\tdateTo: dayjs().endOf('day').format(format),\r\n\t\t},\r\n\t\tstep: 'day' as PresetUnit,\r\n\t}))\r\n}\r\n\r\nfunction generateLastNWeeksPresets(weeks: number[], format: string): DateRangePreset[] {\r\n\treturn weeks.map(n => ({\r\n\t\tlabel: `Last ${n} Weeks`,\r\n\t\trange: {\r\n\t\t\tdateFrom: dayjs().subtract(n, 'weeks').startOf('week').format(format),\r\n\t\t\tdateTo: dayjs().endOf('day').format(format),\r\n\t\t},\r\n\t\tstep: 'week' as PresetUnit,\r\n\t}))\r\n}\r\n\r\nfunction generateLastNMonthsPresets(months: number[], format: string): DateRangePreset[] {\r\n\treturn months.map(n => ({\r\n\t\tlabel: `Last ${n} Months`,\r\n\t\trange: {\r\n\t\t\tdateFrom: dayjs().subtract(n, 'months').startOf('month').format(format),\r\n\t\t\tdateTo: dayjs().endOf('day').format(format),\r\n\t\t},\r\n\t\tstep: 'month' as PresetUnit,\r\n\t}))\r\n}\r\n\r\nfunction generateLastNQuartersPresets(quarters: number[], format: string): DateRangePreset[] {\r\n\treturn quarters.map(n => ({\r\n\t\tlabel: `Last ${n} Quarters`,\r\n\t\trange: {\r\n\t\t\tdateFrom: dayjs().subtract(n, 'quarters').startOf('quarter').format(format),\r\n\t\t\tdateTo: dayjs().endOf('day').format(format),\r\n\t\t},\r\n\t\tstep: 'quarter' as PresetUnit,\r\n\t}))\r\n}","import dayjs from 'dayjs'\r\nimport { PresetUnit } from './date-range-presets'\r\n\r\n/**\r\n * Format a date range into a human-readable string\r\n */\r\nexport function formatDateRange(\r\n\tfromValue: string,\r\n\ttoValue: string,\r\n\ttype: 'date' | 'datetime-local',\r\n\tplaceholder: string\r\n): string {\r\n\tif (!fromValue || !toValue) {\r\n\t\treturn placeholder\r\n\t}\r\n\r\n\tconst fromDate = dayjs(fromValue)\r\n\tconst toDate = dayjs(toValue)\r\n\r\n\tif (!fromDate.isValid() || !toDate.isValid()) {\r\n\t\treturn placeholder\r\n\t}\r\n\r\n\t// Format times if needed (for datetime-local)\r\n\tconst fromTime = type === 'datetime-local' ? fromDate.format(' h:mm A') : ''\r\n\tconst toTime = type === 'datetime-local' ? toDate.format(' h:mm A') : ''\r\n\r\n\t// Check if same day\r\n\tif (fromDate.isSame(toDate, 'day')) {\r\n\t\treturn `${fromDate.format('MMM D, YYYY')}${fromTime}`\r\n\t}\r\n\r\n\t// Check if same month and year\r\n\tif (fromDate.isSame(toDate, 'month') && fromDate.isSame(toDate, 'year')) {\r\n\t\treturn `${fromDate.format('MMM D')}-${toDate.format('D, YYYY')}${toTime}`\r\n\t}\r\n\r\n\t// Check if same year\r\n\tif (fromDate.isSame(toDate, 'year')) {\r\n\t\treturn `${fromDate.format('MMM D')} - ${toDate.format('MMM D, YYYY')}${toTime}`\r\n\t}\r\n\r\n\t// Different years\r\n\treturn `${fromDate.format('MMM D, YYYY')}${fromTime} - ${toDate.format('MMM D, YYYY')}${toTime}`\r\n}\r\n\r\n/**\r\n * Detect the type of date range (full month, full quarter, etc.)\r\n */\r\nexport interface DateRangeType {\r\n\tisFullMonth: boolean\r\n\tisFullQuarter: boolean\r\n\tisFullYear: boolean\r\n\tisFullWeek: boolean\r\n}\r\n\r\nexport function detectDateRangeType(fromDate: dayjs.Dayjs, toDate: dayjs.Dayjs): DateRangeType {\r\n\treturn {\r\n\t\tisFullMonth: fromDate.date() === 1 && toDate.isSame(fromDate.endOf('month'), 'day'),\r\n\t\tisFullQuarter: fromDate.isSame(fromDate.startOf('quarter'), 'day') && toDate.isSame(toDate.endOf('quarter'), 'day'),\r\n\t\tisFullYear: fromDate.isSame(fromDate.startOf('year'), 'day') && toDate.isSame(toDate.endOf('year'), 'day'),\r\n\t\tisFullWeek: fromDate.day() === 0 && toDate.day() === 6 && toDate.diff(fromDate, 'days') === 6,\r\n\t}\r\n}\r\n\r\n/**\r\n * Calculate the appropriate shift unit and amount for a date range\r\n */\r\nexport function calculateShiftParams(\r\n\tfromDate: dayjs.Dayjs,\r\n\ttoDate: dayjs.Dayjs,\r\n\tactivePresetStep?: PresetUnit\r\n): { unit: PresetUnit; amount: number } {\r\n\tif (activePresetStep) {\r\n\t\treturn { unit: activePresetStep, amount: 1 }\r\n\t}\r\n\r\n\tconst rangeDurationInDays = toDate.diff(fromDate, 'day')\r\n\r\n\t// For very long ranges, use years\r\n\tif (rangeDurationInDays >= 360) {\r\n\t\treturn { unit: 'year', amount: Math.round(rangeDurationInDays / 365) }\r\n\t}\r\n\t// For long ranges, use quarters\r\n\telse if (rangeDurationInDays >= 90) {\r\n\t\treturn { unit: 'quarter', amount: Math.round(rangeDurationInDays / 90) }\r\n\t}\r\n\t// For medium-long ranges, use months\r\n\telse if (rangeDurationInDays >= 30) {\r\n\t\treturn { unit: 'month', amount: Math.round(rangeDurationInDays / 30) }\r\n\t}\r\n\t// For medium ranges, use weeks\r\n\telse if (rangeDurationInDays >= 7) {\r\n\t\treturn { unit: 'week', amount: Math.round(rangeDurationInDays / 7) }\r\n\t}\r\n\t// For shorter ranges, use days\r\n\telse {\r\n\t\treturn { unit: 'day', amount: rangeDurationInDays + 1 }\r\n\t}\r\n}\r\n\r\n/**\r\n * Helper method to safely add/subtract quarter values\r\n */\r\nexport function adjustQuarter(date: dayjs.Dayjs, amount: number, direction: 1 | -1): dayjs.Dayjs {\r\n\t// Get current quarter (1-4)\r\n\tconst currentQuarter = date.quarter()\r\n\r\n\t// Calculate new quarter\r\n\tlet newQuarter = currentQuarter + direction * amount\r\n\tlet yearAdjustment = 0\r\n\r\n\t// Handle year boundaries\r\n\twhile (newQuarter > 4) {\r\n\t\tnewQuarter -= 4\r\n\t\tyearAdjustment += 1\r\n\t}\r\n\r\n\twhile (newQuarter < 1) {\r\n\t\tnewQuarter += 4\r\n\t\tyearAdjustment -= 1\r\n\t}\r\n\r\n\t// Adjust year if needed\r\n\tconst adjustedDate = date.add(yearAdjustment, 'year')\r\n\r\n\t// Set to the start of the new quarter\r\n\tconst newDate = adjustedDate.month((newQuarter - 1) * 3)\r\n\r\n\t// Maintain the same day of month if possible\r\n\tconst daysInMonth = newDate.daysInMonth()\r\n\tconst targetDay = Math.min(date.date(), daysInMonth)\r\n\r\n\treturn newDate.date(targetDay)\r\n}","import { $LitElement } from '@mixins/index'\nimport dayjs from 'dayjs'\nimport quarterOfYear from 'dayjs/plugin/quarterOfYear'\nimport { html, PropertyValues, TemplateResult } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { debounceTime, fromEvent, takeUntil, timer } from 'rxjs'\nimport { $dialog } from '../dialog/dialog-service'\nimport { validateInitialDateRange } from './date-utils'\nimport { DateRangePreset, PresetCategory, generatePresetCategories } from './date-range-presets'\nimport { formatDateRange, detectDateRangeType, calculateShiftParams, adjustQuarter } from './date-range-helpers'\n\n// Add quarter plugin to dayjs\ndayjs.extend(quarterOfYear)\n\nexport type SchmancyDateRangeChangeEvent = CustomEvent<{\n\tdateFrom: string\n\tdateTo: string\n}>\n\n/**\n * A date range selector that supports presets and manual date input.\n *\n * @element schmancy-date-range\n * @fires change - Fired when the date range changes with dateFrom and dateTo values\n */\n@customElement('schmancy-date-range')\nexport class SchmancyDateRange extends $LitElement() {\n\t// Core properties\n\t@property({ type: String }) type: 'date' | 'datetime-local' = 'date'\n\t@property({ type: Object }) dateFrom: { label: string; value: string } = { label: 'From', value: '' }\n\t@property({ type: Object }) dateTo: { label: string; value: string } = { label: 'To', value: '' }\n\t@property({ type: String }) minDate?: string\n\t@property({ type: String }) maxDate?: string\n\n\t// Enhanced functionality\n\t@property({ type: Array }) customPresets: Array<{\n\t\tlabel: string\n\t\tdateFrom: string\n\t\tdateTo: string\n\t}> = []\n\t@property({ type: String }) format?: string\n\t@property({ type: Boolean }) disabled = false\n\t@property({ type: Boolean }) required = false\n\t@property({ type: String }) placeholder = 'Select date range'\n\t@property({ type: Boolean }) clearable = true\n\n\t// Internal states\n\t@state() private isOpen = false\n\t@state() private selectedDateRange: string = ''\n\t@state() private activePreset: string | null = null\n\t@state() private announceMessage: string = ''\n\t@state() private isMobile = false\n\n\t// Default presets\n\tprivate presetRanges: DateRangePreset[] = []\n\n\t// Categorized presets\n\tprivate presetCategories: PresetCategory[] = []\n\n\t// Memoization cache\n\tprivate memoizedPresets = new Map<string, PresetCategory[]>()\n\n\tconnectedCallback(): void {\n\t\tsuper.connectedCallback()\n\t\tthis.initPresetRanges()\n\t\tthis.checkMobileView()\n\n\t\t// Validate initial date range\n\t\tconst dateFormat = this.getDateFormat() as 'YYYY-MM-DD' | 'YYYY-MM-DDTHH:mm'\n\t\tconst validatedRange = validateInitialDateRange(this.dateFrom.value, this.dateTo.value, dateFormat)\n\n\t\tif (validatedRange.isValid) {\n\t\t\tthis.dateFrom.value = validatedRange.dateFrom!\n\t\t\tthis.dateTo.value = validatedRange.dateTo!\n\t\t\tthis.updateSelectedDateRange()\n\t\t} else {\n\t\t\tconst now = dayjs().format(dateFormat)\n\t\t\tthis.dateFrom.value = now\n\t\t\tthis.dateTo.value = now\n\t\t\tthis.updateSelectedDateRange()\n\t\t}\n\n\t\t// Set up global event handlers using RxJS\n\t\tthis.setupEventHandlers()\n\t}\n\n\tprivate setupEventHandlers() {\n\t\t// Handle keyboard navigation\n\t\tfromEvent<KeyboardEvent>(document, 'keydown')\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe(event => {\n\t\t\t\tthis.handleKeyboardNavigation(event)\n\t\t\t})\n\n\t\t// Handle window resize with debouncing\n\t\tfromEvent(window, 'resize')\n\t\t\t.pipe(\n\t\t\t\tdebounceTime(150),\n\t\t\t\ttakeUntil(this.disconnecting)\n\t\t\t)\n\t\t\t.subscribe(() => {\n\t\t\t\tthis.checkMobileView()\n\t\t\t})\n\t}\n\n\tdisconnectedCallback(): void {\n\t\tsuper.disconnectedCallback()\n\t}\n\n\tupdated(changedProps: PropertyValues) {\n\t\tsuper.updated(changedProps)\n\n\t\tif (\n\t\t\t(changedProps.has('dateFrom') || changedProps.has('dateTo')) &&\n\t\t\t(this.dateFrom?.value !== undefined || this.dateTo?.value !== undefined)\n\t\t) {\n\t\t\tthis.updateSelectedDateRange()\n\t\t}\n\t}\n\n\tprivate initPresetRanges() {\n\t\tconst format = this.getDateFormat()\n\t\tconst cacheKey = `${this.type}-${format}-${JSON.stringify(this.customPresets)}`\n\t\t\n\t\t// Check memoization cache\n\t\tif (this.memoizedPresets.has(cacheKey)) {\n\t\t\tconst cached = this.memoizedPresets.get(cacheKey)!\n\t\t\tthis.presetCategories = cached\n\t\t\tthis.presetRanges = []\n\t\t\tcached.forEach(category => {\n\t\t\t\tthis.presetRanges.push(...category.presets)\n\t\t\t})\n\t\t\treturn\n\t\t}\n\n\t\t// Generate preset categories\n\t\tthis.presetCategories = generatePresetCategories(format, this.type === 'datetime-local')\n\n\t\t// Flatten presets for other methods that expect a flat list\n\t\tthis.presetRanges = []\n\t\tthis.presetCategories.forEach(category => {\n\t\t\tthis.presetRanges.push(...category.presets)\n\t\t})\n\n\t\t// Add custom presets if provided\n\t\tif (this.customPresets && this.customPresets.length > 0) {\n\t\t\tconst customCategory: PresetCategory = {\n\t\t\t\tname: 'Custom',\n\t\t\t\tpresets: this.customPresets.map(preset => ({\n\t\t\t\t\tlabel: preset.label,\n\t\t\t\t\trange: {\n\t\t\t\t\t\tdateFrom: preset.dateFrom,\n\t\t\t\t\t\tdateTo: preset.dateTo,\n\t\t\t\t\t},\n\t\t\t\t\tstep: 'day' as const,\n\t\t\t\t})),\n\t\t\t}\n\n\t\t\tthis.presetCategories.push(customCategory)\n\t\t\tthis.presetRanges.push(...customCategory.presets)\n\t\t}\n\t\t\n\t\t// Cache the result\n\t\tthis.memoizedPresets.set(cacheKey, [...this.presetCategories])\n\t}\n\n\tprivate getDateFormat(): string {\n\t\treturn this.format || (this.type === 'date' ? 'YYYY-MM-DD' : 'YYYY-MM-DDTHH:mm')\n\t}\n\n\t/**\n\t * Creates a concise display format for the selected date range\n\t */\n\tprivate updateSelectedDateRange() {\n\t\t// Find matching preset\n\t\tconst preset = this.presetRanges.find(\n\t\t\tp => p.range.dateFrom === this.dateFrom.value && p.range.dateTo === this.dateTo.value,\n\t\t)\n\n\t\tif (preset) {\n\t\t\t// If matches a preset, just use the preset name\n\t\t\tthis.selectedDateRange = preset.label\n\t\t\tthis.activePreset = preset.label\n\t\t\treturn\n\t\t}\n\n\t\t// If we didn't find a preset match, check if we should update the active preset\n\t\tthis.checkAndUpdateActivePreset(this.dateFrom.value, this.dateTo.value)\n\n\t\t// Custom date range - create concise format\n\t\tthis.activePreset = null\n\t\tthis.selectedDateRange = formatDateRange(this.dateFrom.value, this.dateTo.value, this.type, this.placeholder)\n\t}\n\n\tprivate setDateRange(dateFrom: string, dateTo: string) {\n\t\tthis.dateFrom.value = dateFrom\n\t\tthis.dateTo.value = dateTo\n\t\tthis.updateSelectedDateRange()\n\n\t\t// Announce change to screen readers\n\t\tthis.announceToScreenReader(`Date range updated: ${this.selectedDateRange}`)\n\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent<{ dateFrom: string; dateTo: string }>('change', {\n\t\t\t\tdetail: { dateFrom, dateTo },\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\tprivate handlePresetSelection(preset: DateRangePreset, e: Event) {\n\t\te.stopPropagation()\n\t\tthis.activePreset = preset.label\n\t\tthis.setDateRange(preset.range.dateFrom, preset.range.dateTo)\n\t\t$dialog.dismiss()\n\t}\n\n\n\n\tprivate toggleDropdown(e: Event) {\n\t\te.stopPropagation()\n\t\tif (this.disabled) return\n\n\t\tif (this.isOpen) {\n\t\t\tthis.closeDropdown()\n\t\t} else {\n\t\t\tthis.openDropdown()\n\t\t}\n\t}\n\n\tprivate openDropdown() {\n\t\tif (this.disabled) return\n\t\t\n\t\tthis.isOpen = true\n\t\t\n\t\t// Create dialog content\n\t\tconst dialogContent = this.createDialogContent()\n\t\t\n\t\t// Use the dialog service - it will automatically find the nearest schmancy-theme\n\t\t$dialog.component(dialogContent, {\n\t\t\ttitle: 'Select Date Range',\n\t\t\twidth: this.isMobile ? '100vw' : '800px',\n\t\t\thideActions: true\n\t\t}).then(() => {\n\t\t\tthis.isOpen = false\n\t\t})\n\t}\n\n\tprivate closeDropdown() {\n\t\t$dialog.dismiss()\n\t\tthis.isOpen = false\n\t}\n\n\n\t/**\n\t * Shifts the date range based on its type (preset or custom)\n\t */\n\tprivate shiftDateRange(direction: number, e: Event) {\n\t\te.stopPropagation()\n\n\t\tif (!this.dateFrom.value || !this.dateTo.value) return\n\n\t\tconst fromDate = dayjs(this.dateFrom.value)\n\t\tconst toDate = dayjs(this.dateTo.value)\n\n\t\tif (!fromDate.isValid() || !toDate.isValid()) return\n\n\t\tconst format = this.getDateFormat()\n\t\tconst dir = direction > 0 ? 1 : -1\n\n\t\t// Get active preset and calculate shift parameters\n\t\tconst activePreset = this.presetRanges.find(p => p.label === this.activePreset)\n\t\tconst { unit, amount } = calculateShiftParams(fromDate, toDate, activePreset?.step)\n\n\t\t// Detect date range type\n\t\tconst rangeType = detectDateRangeType(fromDate, toDate)\n\n\t\tlet newFromDate: dayjs.Dayjs\n\t\tlet newToDate: dayjs.Dayjs\n\n\t\t// Handle shifting based on unit\n\t\tif (unit === 'quarter') {\n\t\t\tnewFromDate = adjustQuarter(fromDate, amount, dir)\n\t\t\tnewToDate = adjustQuarter(toDate, amount, dir)\n\t\t\t\n\t\t\tif (rangeType.isFullQuarter) {\n\t\t\t\tnewFromDate = newFromDate.startOf('quarter')\n\t\t\t\tnewToDate = newFromDate.endOf('quarter')\n\t\t\t}\n\t\t} else if (unit === 'hour') {\n\t\t\tconst rangeDurationInHours = toDate.diff(fromDate, 'hour')\n\t\t\tnewFromDate = dir > 0 ? fromDate.add(rangeDurationInHours, 'hour') : fromDate.subtract(rangeDurationInHours, 'hour')\n\t\t\tnewToDate = dir > 0 ? toDate.add(rangeDurationInHours, 'hour') : toDate.subtract(rangeDurationInHours, 'hour')\n\t\t} else {\n\t\t\t// Handle all other units (day, week, month, year)\n\t\t\tif (dir > 0) {\n\t\t\t\tnewFromDate = fromDate.add(amount, unit as dayjs.ManipulateType)\n\t\t\t\tnewToDate = toDate.add(amount, unit as dayjs.ManipulateType)\n\t\t\t} else {\n\t\t\t\tnewFromDate = fromDate.subtract(amount, unit as dayjs.ManipulateType)\n\t\t\t\tnewToDate = toDate.subtract(amount, unit as dayjs.ManipulateType)\n\t\t\t}\n\n\t\t\t// Preserve full period ranges\n\t\t\tif (unit === 'year' && rangeType.isFullYear) {\n\t\t\t\tnewFromDate = newFromDate.startOf('year')\n\t\t\t\tnewToDate = newFromDate.endOf('year')\n\t\t\t} else if (unit === 'month' && rangeType.isFullMonth) {\n\t\t\t\tnewFromDate = newFromDate.startOf('month')\n\t\t\t\tnewToDate = newFromDate.endOf('month')\n\t\t\t} else if (unit === 'week' && rangeType.isFullWeek) {\n\t\t\t\tnewFromDate = newFromDate.startOf('week')\n\t\t\t\tnewToDate = newFromDate.endOf('week')\n\t\t\t}\n\t\t}\n\n\t\t// Update the date range\n\t\tthis.setDateRange(newFromDate.format(format), newToDate.format(format))\n\t\tthis.checkAndUpdateActivePreset(newFromDate.format(format), newToDate.format(format))\n\t}\n\n\t/**\n\t * Handle keyboard navigation for accessibility\n\t */\n\tprivate handleKeyboardNavigation(event: KeyboardEvent) {\n\t\tconst key = event.key\n\t\t\n\t\t// Handle date navigation keys\n\t\tif (this.dateFrom.value && this.dateTo.value && !this.disabled) {\n\t\t\tswitch (key) {\n\t\t\t\tcase 'PageUp':\n\t\t\t\t\tif (event.target === this || this.contains(event.target as Node)) {\n\t\t\t\t\t\tthis.shiftDateRange(-1, event)\n\t\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\tcase 'PageDown':\n\t\t\t\t\tif (event.target === this || this.contains(event.target as Node)) {\n\t\t\t\t\t\tthis.shiftDateRange(1, event)\n\t\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\tcase 'Home':\n\t\t\t\t\tif (event.ctrlKey && (event.target === this || this.contains(event.target as Node))) {\n\t\t\t\t\t\t// Ctrl+Home: Jump to start of current month\n\t\t\t\t\t\tconst currentFrom = dayjs(this.dateFrom.value)\n\t\t\t\t\t\tconst currentTo = dayjs(this.dateTo.value)\n\t\t\t\t\t\tconst monthStart = currentFrom.startOf('month')\n\t\t\t\t\t\tconst daysDiff = currentTo.diff(currentFrom, 'day')\n\t\t\t\t\t\t\n\t\t\t\t\t\tthis.setDateRange(\n\t\t\t\t\t\t\tmonthStart.format(this.getDateFormat()),\n\t\t\t\t\t\t\tmonthStart.add(daysDiff, 'day').format(this.getDateFormat())\n\t\t\t\t\t\t)\n\t\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\tcase 'End':\n\t\t\t\t\tif (event.ctrlKey && (event.target === this || this.contains(event.target as Node))) {\n\t\t\t\t\t\t// Ctrl+End: Jump to end of current month\n\t\t\t\t\t\tconst currentFrom = dayjs(this.dateFrom.value)\n\t\t\t\t\t\tconst currentTo = dayjs(this.dateTo.value)\n\t\t\t\t\t\tconst daysDiff = currentTo.diff(currentFrom, 'day')\n\t\t\t\t\t\tconst monthEnd = currentTo.endOf('month')\n\t\t\t\t\t\t\n\t\t\t\t\t\tthis.setDateRange(\n\t\t\t\t\t\t\tmonthEnd.subtract(daysDiff, 'day').format(this.getDateFormat()),\n\t\t\t\t\t\t\tmonthEnd.format(this.getDateFormat())\n\t\t\t\t\t\t)\n\t\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Checks if the current date range matches any predefined preset,\n\t * and updates the activePreset accordingly\n\t */\n\tprivate checkAndUpdateActivePreset(fromDate: string, toDate: string) {\n\t\t// Find a preset that matches the current date range\n\t\tconst matchingPreset = this.presetRanges.find(\n\t\t\tpreset => preset.range.dateFrom === fromDate && preset.range.dateTo === toDate,\n\t\t)\n\n\t\tif (matchingPreset) {\n\t\t\tthis.activePreset = matchingPreset.label\n\t\t} else {\n\t\t\tthis.activePreset = null\n\t\t}\n\t}\n\n\tprivate applyManualDateSelection(e: Event) {\n\t\te.stopPropagation()\n\t\t// Validate dates before applying\n\t\tconst fromDate = dayjs(this.dateFrom.value)\n\t\tconst toDate = dayjs(this.dateTo.value)\n\n\t\tif (!fromDate.isValid() || !toDate.isValid()) {\n\t\t\tthis.announceToScreenReader('Invalid date format. Please check your input.')\n\t\t\treturn\n\t\t}\n\n\t\t// Ensure from date is before to date\n\t\tif (fromDate.isAfter(toDate)) {\n\t\t\tthis.setDateRange(toDate.format(this.getDateFormat()), fromDate.format(this.getDateFormat()))\n\t\t} else {\n\t\t\tthis.setDateRange(this.dateFrom.value, this.dateTo.value)\n\t\t}\n\n\t\t$dialog.dismiss()\n\t}\n\n\t/**\n\t * Check if view is mobile\n\t */\n\tprivate checkMobileView() {\n\t\tthis.isMobile = window.innerWidth < 768\n\t}\n\n\n\n\tprivate handleFromDateChange(e: Event) {\n\t\tconst input = e.target as HTMLInputElement\n\t\tthis.dateFrom.value = input.value\n\t\tthis.updateSelectedDateRange()\n\t}\n\n\tprivate handleToDateChange(e: Event) {\n\t\tconst input = e.target as HTMLInputElement\n\t\tthis.dateTo.value = input.value\n\t\tthis.updateSelectedDateRange()\n\t}\n\n\t/**\n\t * Create dialog content\n\t */\n\tprivate createDialogContent(): TemplateResult {\n\t\treturn html`\n\t\t\t<div class=\"w-full min-h-[400px] max-h-[80vh] flex flex-col p-4\">\n\t\t\t\t<!-- Custom Range Section with Inline Calendars -->\n\t\t\t\t<schmancy-surface type=\"container\" class=\"rounded-xl p-4 mb-6\">\n\t\t\t\t\t<div class=\"flex flex-col gap-4\">\n\t\t\t\t\t\t<div class=\"grid grid-cols-1 md:grid-cols-2 gap-4\">\n\t\t\t\t\t\t\t<!-- From Date Calendar -->\n\t\t\t\t\t\t\t<div class=\"flex flex-col gap-2\">\n\t\t\t\t\t\t\t\t<schmancy-typography type=\"label\" token=\"md\" class=\"text-surface-onVariant\">\n\t\t\t\t\t\t\t\t\t${this.dateFrom.label || 'From'}\n\t\t\t\t\t\t\t\t</schmancy-typography>\n\t\t\t\t\t\t\t\t<schmancy-input\n\t\t\t\t\t\t\t\t\ttype=\"${this.type}\"\n\t\t\t\t\t\t\t\t\t.value=\"${this.dateFrom.value}\"\n\t\t\t\t\t\t\t\t\tmin=\"${ifDefined(this.minDate)}\"\n\t\t\t\t\t\t\t\t\tmax=\"${ifDefined(this.maxDate)}\"\n\t\t\t\t\t\t\t\t\t@change=\"${this.handleFromDateChange.bind(this)}\"\n\t\t\t\t\t\t\t\t></schmancy-input>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<!-- To Date Calendar -->\n\t\t\t\t\t\t\t<div class=\"flex flex-col gap-2\">\n\t\t\t\t\t\t\t\t<schmancy-typography type=\"label\" token=\"md\" class=\"text-surface-onVariant\">\n\t\t\t\t\t\t\t\t\t${this.dateTo.label || 'To'}\n\t\t\t\t\t\t\t\t</schmancy-typography>\n\t\t\t\t\t\t\t\t<schmancy-input\n\t\t\t\t\t\t\t\t\ttype=\"${this.type}\"\n\t\t\t\t\t\t\t\t\t.value=\"${this.dateTo.value}\"\n\t\t\t\t\t\t\t\t\tmin=\"${ifDefined(this.dateFrom.value)}\"\n\t\t\t\t\t\t\t\t\tmax=\"${ifDefined(this.maxDate)}\"\n\t\t\t\t\t\t\t\t\t@change=\"${this.handleToDateChange.bind(this)}\"\n\t\t\t\t\t\t\t\t></schmancy-input>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\n\t\t\t\t\t\t<!-- Apply Button - Now at the bottom for logical flow -->\n\t\t\t\t\t\t<div class=\"flex justify-end mt-2\">\n\t\t\t\t\t\t\t<schmancy-button \n\t\t\t\t\t\t\t\tvariant=\"filled\" \n\t\t\t\t\t\t\t\t@click=\"${(e: Event) => this.applyManualDateSelection(e)}\"\n\t\t\t\t\t\t\t\t?disabled=\"${!this.dateFrom.value || !this.dateTo.value}\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tApply\n\t\t\t\t\t\t\t</schmancy-button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</schmancy-surface>\n\n\t\t\t\t<!-- Presets Section -->\n\t\t\t\t<div class=\"flex-1 overflow-y-auto overflow-x-hidden min-h-0\">\n\t\t\t\t\t<div class=\"grid grid-cols-2 md:grid-cols-5 gap-6\">\n\t\t\t\t\t\t${this.presetCategories.map(\n\t\t\t\t\t\t\tcategory => html`\n\t\t\t\t\t\t\t\t<div class=\"space-y-3\">\n\t\t\t\t\t\t\t\t\t<schmancy-typography type=\"title\" token=\"md\" class=\"text-surface-onVariant font-medium\">\n\t\t\t\t\t\t\t\t\t\t${category.name}\n\t\t\t\t\t\t\t\t\t</schmancy-typography>\n\t\t\t\t\t\t\t\t\t<div class=\"space-y-1\">\n\t\t\t\t\t\t\t\t\t\t${category.presets.map(\n\t\t\t\t\t\t\t\t\t\t\tpreset => html`\n\t\t\t\t\t\t\t\t\t\t\t\t<schmancy-button\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"${this.activePreset === preset.label ? 'filled' : 'text'}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"w-full justify-start text-left\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t@click=\"${(e: Event) => this.handlePresetSelection(preset, e)}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\taria-pressed=\"${this.activePreset === preset.label}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\taria-label=\"${preset.label}: ${preset.range.dateFrom} to ${preset.range.dateTo}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\ttitle=\"${preset.range.dateFrom} to ${preset.range.dateTo}\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"truncate\">${preset.label}</span>\n\t\t\t\t\t\t\t\t\t\t\t\t</schmancy-button>\n\t\t\t\t\t\t\t\t\t\t\t`,\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t`,\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`\n\t}\n\n\t/**\n\t * Announce messages to screen readers\n\t */\n\tprivate announceToScreenReader(message: string) {\n\t\tthis.announceMessage = message\n\t\t// Clear the message after announcement\n\t\ttimer(100)\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe(() => {\n\t\t\t\tthis.announceMessage = ''\n\t\t\t})\n\t}\n\n\n\trender() {\n\t\treturn html`\n\t\t\t<div class=\"relative ${this.disabled ? 'opacity-60 pointer-events-none' : ''}\">\n\t\t\t\t<!-- Screen reader announcements -->\n\t\t\t\t<div class=\"sr-only\" role=\"status\" aria-live=\"polite\" aria-atomic=\"true\">\n\t\t\t\t\t${this.announceMessage}\n\t\t\t\t</div>\n\n\t\t\t\t<!-- Trigger using the preferred schmancy-grid pattern -->\n\t\t\t\t<section @click=${(event: Event) => event.stopPropagation()} class=\"flex\" >\n\t\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\taria-label=\"Previous ${this.activePreset ? this.activePreset.toLowerCase() : 'date range'}\"\n\t\t\t\t\t\t\t@click=${(e: Event) => this.shiftDateRange(-1, e)}\n\t\t\t\t\t\t\t?disabled=${this.disabled || !this.dateFrom.value || !this.dateTo.value}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tarrow_left\n\t\t\t\t\t\t</schmancy-icon-button>\n\n\t\t\t\t\t\t<schmancy-button\n\t\t\t\t\t\t\tclass=\"w-max\"\n\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\taria-haspopup=\"menu\"\n\t\t\t\t\t\t\taria-expanded=${this.isOpen}\n\t\t\t\t\t\t\taria-label=\"Select date range. Current: ${this.selectedDateRange || 'No date selected'}\"\n\t\t\t\t\t\t\t@click=${(e: Event) => this.toggleDropdown(e)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t${this.selectedDateRange || this.placeholder}\n\t\t\t\t\t\t</schmancy-button>\n\n\t\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\taria-label=\"Next ${this.activePreset ? this.activePreset.toLowerCase() : 'date range'}\"\n\t\t\t\t\t\t\t@click=${(e: Event) => this.shiftDateRange(1, e)}\n\t\t\t\t\t\t\t?disabled=${this.disabled || !this.dateFrom.value || !this.dateTo.value}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tarrow_right\n\t\t\t\t\t\t</schmancy-icon-button>\n\t\t\t\t</section>\n\t\t\t</div>\n\t\t`\n\t}\n}"],"names":["t","e","n","r","i","s","u","a","o","c","f","h","d","l","$","y","M","name","weekdays","split","months","ordinal","m","String","length","Array","join","v","z","utcOffset","Math","abs","floor","date","year","month","clone","add","ceil","p","w","D","ms","Q","toLowerCase","replace","g","S","_","O","args","arguments","b","locale","$L","utc","$u","x","$x","$offset","this","parse","prototype","$d","Date","NaN","test","match","substring","UTC","init","$y","getFullYear","$M","getMonth","$D","getDate","$W","getDay","$H","getHours","$m","getMinutes","$s","getSeconds","$ms","getMilliseconds","$utils","isValid","toString","isSame","startOf","endOf","isAfter","isBefore","$g","set","unix","valueOf","getTime","toDate","apply","slice","$locale","weekStart","$set","min","daysInMonth","get","Number","round","subtract","format","invalidDate","meridiem","monthsShort","weekdaysMin","weekdaysShort","getTimezoneOffset","diff","toJSON","toISOString","toUTCString","k","forEach","extend","$i","isDayjs","en","Ls","quarter","bind","enforceDateFormat","dateString","expectedFormat","parsedDate","dayjs","validateInitialDateRange","dateFrom","dateTo","formattedDateFrom","formattedDateTo","generateLastNDaysPresets","days","map","label","range","step","generateLastNWeeksPresets","weeks","generateLastNMonthsPresets","generateLastNQuartersPresets","quarters","adjustQuarter","amount","direction","newQuarter","yearAdjustment","newDate","targetDay","quarterOfYear","SchmancyDateRange","$LitElement","constructor","super","type","value","customPresets","disabled","required","placeholder","clearable","isOpen","selectedDateRange","activePreset","announceMessage","isMobile","presetRanges","presetCategories","memoizedPresets","Map","connectedCallback","initPresetRanges","checkMobileView","dateFormat","getDateFormat","validatedRange","updateSelectedDateRange","now","setupEventHandlers","fromEvent","document","pipe","takeUntil","disconnecting","subscribe","event","handleKeyboardNavigation","window","debounceTime","disconnectedCallback","changedProps","updated","has","cacheKey","JSON","stringify","cached","category","push","presets","includeTime","categories","customCategory","preset","find","checkAndUpdateActivePreset","fromValue","toValue","fromDate","fromTime","toTime","announceToScreenReader","dispatchEvent","CustomEvent","detail","bubbles","composed","stopPropagation","setDateRange","$dialog","dismiss","closeDropdown","openDropdown","dialogContent","createDialogContent","component","title","width","hideActions","then","dir","unit","activePresetStep","rangeDurationInDays","rangeType","isFullMonth","isFullQuarter","isFullYear","isFullWeek","day","newFromDate","newToDate","rangeDurationInHours","key","target","contains","shiftDateRange","preventDefault","ctrlKey","currentFrom","currentTo","monthStart","daysDiff","monthEnd","matchingPreset","innerWidth","input","html","ifDefined","minDate","maxDate","handleFromDateChange","handleToDateChange","applyManualDateSelection","handlePresetSelection","message","timer","toggleDropdown","__decorateClass","property","Object","Boolean","state","customElement"],"mappings":"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","x_google_ignoreList":[0,1]}
@@ -1,117 +0,0 @@
1
- "use strict";const A=require("rxjs");require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const he=require("./litElement.mixin-CUibxXWX.cjs");require("./tailwind.mixin-C6mrbvH3.cjs");const ue=require("./_commonjsHelpers-k2hpEU-q.cjs"),z=require("lit"),T=require("lit/decorators.js"),Q=require("lit/directives/if-defined.js"),B=require("./dialog-service-BZZK8N6A.cjs");var te,ae={exports:{}},le=(te||(te=1,ae.exports=function(){var t=1e3,a=6e4,e=36e5,u="millisecond",m="second",o="minute",f="hour",y="day",F="week",b="month",$="quarter",M="year",v="date",Y="Invalid Date",j=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,P=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,de={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(c){var n=["th","st","nd","rd"],r=c%100;return"["+c+(n[(r-20)%10]||n[r]||n[0])+"]"}},K=function(c,n,r){var i=String(c);return!i||i.length>=n?c:""+Array(n+1-i.length).join(r)+c},ce={s:K,z:function(c){var n=-c.utcOffset(),r=Math.abs(n),i=Math.floor(r/60),s=r%60;return(n<=0?"+":"-")+K(i,2,"0")+":"+K(s,2,"0")},m:function c(n,r){if(n.date()<r.date())return-c(r,n);var i=12*(r.year()-n.year())+(r.month()-n.month()),s=n.clone().add(i,b),h=r-s<0,l=n.clone().add(i+(h?-1:1),b);return+(-(i+(r-s)/(h?s-l:l-s))||0)},a:function(c){return c<0?Math.ceil(c)||0:Math.floor(c)},p:function(c){return{M:b,y:M,w:F,d:y,D:v,h:f,m:o,s:m,ms:u,Q:$}[c]||String(c||"").toLowerCase().replace(/s$/,"")},u:function(c){return c===void 0}},V="en",q={};q[V]=de;var X="$isDayjsObject",Z=function(c){return c instanceof U||!(!c||!c[X])},N=function c(n,r,i){var s;if(!n)return V;if(typeof n=="string"){var h=n.toLowerCase();q[h]&&(s=h),r&&(q[h]=r,s=h);var l=n.split("-");if(!s&&l.length>1)return c(l[0])}else{var g=n.name;q[g]=n,s=g}return!i&&s&&(V=s),s||!i&&V},O=function(c,n){if(Z(c))return c.clone();var r=typeof n=="object"?n:{};return r.date=c,r.args=arguments,new U(r)},p=ce;p.l=N,p.i=Z,p.w=function(c,n){return O(c,{locale:n.$L,utc:n.$u,x:n.$x,$offset:n.$offset})};var U=function(){function c(r){this.$L=N(r.locale,null,!0),this.parse(r),this.$x=this.$x||r.x||{},this[X]=!0}var n=c.prototype;return n.parse=function(r){this.$d=function(i){var s=i.date,h=i.utc;if(s===null)return new Date(NaN);if(p.u(s))return new Date;if(s instanceof Date)return new Date(s);if(typeof s=="string"&&!/Z$/i.test(s)){var l=s.match(j);if(l){var g=l[2]-1||0,D=(l[7]||"0").substring(0,3);return h?new Date(Date.UTC(l[1],g,l[3]||1,l[4]||0,l[5]||0,l[6]||0,D)):new Date(l[1],g,l[3]||1,l[4]||0,l[5]||0,l[6]||0,D)}}return new Date(s)}(r),this.init()},n.init=function(){var r=this.$d;this.$y=r.getFullYear(),this.$M=r.getMonth(),this.$D=r.getDate(),this.$W=r.getDay(),this.$H=r.getHours(),this.$m=r.getMinutes(),this.$s=r.getSeconds(),this.$ms=r.getMilliseconds()},n.$utils=function(){return p},n.isValid=function(){return this.$d.toString()!==Y},n.isSame=function(r,i){var s=O(r);return this.startOf(i)<=s&&s<=this.endOf(i)},n.isAfter=function(r,i){return O(r)<this.startOf(i)},n.isBefore=function(r,i){return this.endOf(i)<O(r)},n.$g=function(r,i,s){return p.u(r)?this[i]:this.set(s,r)},n.unix=function(){return Math.floor(this.valueOf()/1e3)},n.valueOf=function(){return this.$d.getTime()},n.startOf=function(r,i){var s=this,h=!!p.u(i)||i,l=p.p(r),g=function(_,R){var C=p.w(s.$u?Date.UTC(s.$y,R,_):new Date(s.$y,R,_),s);return h?C:C.endOf(y)},D=function(_,R){return p.w(s.toDate()[_].apply(s.toDate("s"),(h?[0,0,0,0]:[23,59,59,999]).slice(R)),s)},S=this.$W,k=this.$M,x=this.$D,H="set"+(this.$u?"UTC":"");switch(l){case M:return h?g(1,0):g(31,11);case b:return h?g(1,k):g(0,k+1);case F:var L=this.$locale().weekStart||0,W=(S<L?S+7:S)-L;return g(h?x-W:x+(6-W),k);case y:case v:return D(H+"Hours",0);case f:return D(H+"Minutes",1);case o:return D(H+"Seconds",2);case m:return D(H+"Milliseconds",3);default:return this.clone()}},n.endOf=function(r){return this.startOf(r,!1)},n.$set=function(r,i){var s,h=p.p(r),l="set"+(this.$u?"UTC":""),g=(s={},s[y]=l+"Date",s[v]=l+"Date",s[b]=l+"Month",s[M]=l+"FullYear",s[f]=l+"Hours",s[o]=l+"Minutes",s[m]=l+"Seconds",s[u]=l+"Milliseconds",s)[h],D=h===y?this.$D+(i-this.$W):i;if(h===b||h===M){var S=this.clone().set(v,1);S.$d[g](D),S.init(),this.$d=S.set(v,Math.min(this.$D,S.daysInMonth())).$d}else g&&this.$d[g](D);return this.init(),this},n.set=function(r,i){return this.clone().$set(r,i)},n.get=function(r){return this[p.p(r)]()},n.add=function(r,i){var s,h=this;r=Number(r);var l=p.p(i),g=function(k){var x=O(h);return p.w(x.date(x.date()+Math.round(k*r)),h)};if(l===b)return this.set(b,this.$M+r);if(l===M)return this.set(M,this.$y+r);if(l===y)return g(1);if(l===F)return g(7);var D=(s={},s[o]=a,s[f]=e,s[m]=t,s)[l]||1,S=this.$d.getTime()+r*D;return p.w(S,this)},n.subtract=function(r,i){return this.add(-1*r,i)},n.format=function(r){var i=this,s=this.$locale();if(!this.isValid())return s.invalidDate||Y;var h=r||"YYYY-MM-DDTHH:mm:ssZ",l=p.z(this),g=this.$H,D=this.$m,S=this.$M,k=s.weekdays,x=s.months,H=s.meridiem,L=function(R,C,E,I){return R&&(R[C]||R(i,h))||E[C].slice(0,I)},W=function(R){return p.s(g%12||12,R,"0")},_=H||function(R,C,E){var I=R<12?"AM":"PM";return E?I.toLowerCase():I};return h.replace(P,function(R,C){return C||function(E){switch(E){case"YY":return String(i.$y).slice(-2);case"YYYY":return p.s(i.$y,4,"0");case"M":return S+1;case"MM":return p.s(S+1,2,"0");case"MMM":return L(s.monthsShort,S,x,3);case"MMMM":return L(x,S);case"D":return i.$D;case"DD":return p.s(i.$D,2,"0");case"d":return String(i.$W);case"dd":return L(s.weekdaysMin,i.$W,k,2);case"ddd":return L(s.weekdaysShort,i.$W,k,3);case"dddd":return k[i.$W];case"H":return String(g);case"HH":return p.s(g,2,"0");case"h":return W(1);case"hh":return W(2);case"a":return _(g,D,!0);case"A":return _(g,D,!1);case"m":return String(D);case"mm":return p.s(D,2,"0");case"s":return String(i.$s);case"ss":return p.s(i.$s,2,"0");case"SSS":return p.s(i.$ms,3,"0");case"Z":return l}return null}(R)||l.replace(":","")})},n.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},n.diff=function(r,i,s){var h,l=this,g=p.p(i),D=O(r),S=(D.utcOffset()-this.utcOffset())*a,k=this-D,x=function(){return p.m(l,D)};switch(g){case M:h=x()/12;break;case b:h=x();break;case $:h=x()/3;break;case F:h=(k-S)/6048e5;break;case y:h=(k-S)/864e5;break;case f:h=k/e;break;case o:h=k/a;break;case m:h=k/t;break;default:h=k}return s?h:p.a(h)},n.daysInMonth=function(){return this.endOf(b).$D},n.$locale=function(){return q[this.$L]},n.locale=function(r,i){if(!r)return this.$L;var s=this.clone(),h=N(r,i,!0);return h&&(s.$L=h),s},n.clone=function(){return p.w(this.$d,this)},n.toDate=function(){return new Date(this.valueOf())},n.toJSON=function(){return this.isValid()?this.toISOString():null},n.toISOString=function(){return this.$d.toISOString()},n.toString=function(){return this.$d.toUTCString()},c}(),ee=U.prototype;return O.prototype=ee,[["$ms",u],["$s",m],["$m",o],["$H",f],["$W",y],["$M",b],["$y",M],["$D",v]].forEach(function(c){ee[c[1]]=function(n){return this.$g(n,c[0],c[1])}}),O.extend=function(c,n){return c.$i||(c(n,U,O),c.$i=!0),O},O.locale=N,O.isDayjs=Z,O.unix=function(c){return O(1e3*c)},O.en=q[V],O.Ls=q,O.p={},O}()),ae.exports);const d=ue.getDefaultExportFromCjs(le);var re,se={exports:{}},J,G,me=re?se.exports:(re=1,se.exports=(J="month",G="quarter",function(t,a){var e=a.prototype;e.quarter=function(o){return this.$utils().u(o)?Math.ceil((this.month()+1)/3):this.month(this.month()%3+3*(o-1))};var u=e.add;e.add=function(o,f){return o=Number(o),this.$utils().p(f)===G?this.add(3*o,J):u.bind(this)(o,f)};var m=e.startOf;e.startOf=function(o,f){var y=this.$utils(),F=!!y.u(f)||f;if(y.p(o)===G){var b=this.quarter()-1;return F?this.month(3*b).startOf(J).startOf("day"):this.month(3*b+2).endOf(J).endOf("day")}return m.bind(this)(o,f)}}));const fe=ue.getDefaultExportFromCjs(me);function ne(t,a){if(!t)return null;const e=d(t);return e.isValid()?e.format(a):null}function ie(t,a,e){const u=ne(t,e),m=ne(a,e);return{dateFrom:u,dateTo:m,isValid:u!==null&&m!==null}}function pe(t,a){return t.map(e=>({label:`Last ${e} Days`,range:{dateFrom:d().subtract(e-1,"days").startOf("day").format(a),dateTo:d().endOf("day").format(a)},step:"day"}))}function ye(t,a){return t.map(e=>({label:`Last ${e} Weeks`,range:{dateFrom:d().subtract(e,"weeks").startOf("week").format(a),dateTo:d().endOf("day").format(a)},step:"week"}))}function ge(t,a){return t.map(e=>({label:`Last ${e} Months`,range:{dateFrom:d().subtract(e,"months").startOf("month").format(a),dateTo:d().endOf("day").format(a)},step:"month"}))}function ve(t,a){return t.map(e=>({label:`Last ${e} Quarters`,range:{dateFrom:d().subtract(e,"quarters").startOf("quarter").format(a),dateTo:d().endOf("day").format(a)},step:"quarter"}))}function oe(t,a,e){let u=t.quarter()+e*a,m=0;for(;u>4;)u-=4,m+=1;for(;u<1;)u+=4,m-=1;const o=t.add(m,"year").month(3*(u-1)),f=o.daysInMonth(),y=Math.min(t.date(),f);return o.date(y)}var $e=Object.defineProperty,De=Object.getOwnPropertyDescriptor,w=(t,a,e,u)=>{for(var m,o=u>1?void 0:u?De(a,e):a,f=t.length-1;f>=0;f--)(m=t[f])&&(o=(u?m(a,e,o):m(o))||o);return u&&o&&$e(a,e,o),o};d.extend(fe),exports.SchmancyDateRange=class extends he.$LitElement(){constructor(){super(...arguments),this.type="date",this.dateFrom={label:"From",value:""},this.dateTo={label:"To",value:""},this.customPresets=[],this.disabled=!1,this.required=!1,this.placeholder="Select date range",this.clearable=!0,this.isOpen=!1,this.selectedDateRange="",this.activePreset=null,this.announceMessage="",this.isMobile=!1,this.presetRanges=[],this.presetCategories=[],this.memoizedPresets=new Map}connectedCallback(){super.connectedCallback(),this.initPresetRanges(),this.checkMobileView();const t=this.getDateFormat(),a=ie(this.dateFrom.value,this.dateTo.value,t);if(a.isValid)this.dateFrom.value=a.dateFrom,this.dateTo.value=a.dateTo,this.updateSelectedDateRange();else{const e=d().format(t);this.dateFrom.value=e,this.dateTo.value=e,this.updateSelectedDateRange()}this.setupEventHandlers()}setupEventHandlers(){A.fromEvent(document,"keydown").pipe(A.takeUntil(this.disconnecting)).subscribe(t=>{this.handleKeyboardNavigation(t)}),A.fromEvent(window,"resize").pipe(A.debounceTime(150),A.takeUntil(this.disconnecting)).subscribe(()=>{this.checkMobileView()})}disconnectedCallback(){super.disconnectedCallback()}updated(t){super.updated(t),!t.has("dateFrom")&&!t.has("dateTo")||this.dateFrom?.value===void 0&&this.dateTo?.value===void 0||this.updateSelectedDateRange()}initPresetRanges(){const t=this.getDateFormat(),a=`${this.type}-${t}-${JSON.stringify(this.customPresets)}`;if(this.memoizedPresets.has(a)){const e=this.memoizedPresets.get(a);return this.presetCategories=e,this.presetRanges=[],void e.forEach(u=>{this.presetRanges.push(...u.presets)})}if(this.presetCategories=function(e,u=!1){const m=[];return u&&m.push({name:"Hours",presets:[{label:"Last 24 Hours",range:{dateFrom:d().subtract(24,"hours").format(e),dateTo:d().format(e)},step:"hour"},{label:"Last 12 Hours",range:{dateFrom:d().subtract(12,"hours").format(e),dateTo:d().format(e)},step:"hour"}]}),m.push({name:"Days",presets:[{label:"Today",range:{dateFrom:d().startOf("day").format(e),dateTo:d().endOf("day").format(e)},step:"day"},{label:"Yesterday",range:{dateFrom:d().subtract(1,"days").startOf("day").format(e),dateTo:d().subtract(1,"days").endOf("day").format(e)},step:"day"},...pe([7,14,30,60,90],e)]}),m.push({name:"Weeks",presets:[{label:"This Week",range:{dateFrom:d().startOf("week").format(e),dateTo:d().endOf("week").format(e)},step:"week"},{label:"Last Week",range:{dateFrom:d().subtract(1,"weeks").startOf("week").format(e),dateTo:d().subtract(1,"weeks").endOf("week").format(e)},step:"week"},...ye([2,4],e)]}),m.push({name:"Months",presets:[{label:"This Month",range:{dateFrom:d().startOf("month").format(e),dateTo:d().endOf("month").format(e)},step:"month"},{label:"Last Month",range:{dateFrom:d().subtract(1,"month").startOf("month").format(e),dateTo:d().subtract(1,"month").endOf("month").format(e)},step:"month"},...ge([3,6],e)]}),m.push({name:"Quarters",presets:[{label:"This Quarter",range:{dateFrom:d().startOf("quarter").format(e),dateTo:d().endOf("quarter").format(e)},step:"quarter"},{label:"Last Quarter",range:{dateFrom:d().subtract(1,"quarter").startOf("quarter").format(e),dateTo:d().subtract(1,"quarter").endOf("quarter").format(e)},step:"quarter"},...ve([2,4],e)]}),m.push({name:"Years",presets:[{label:"This Year",range:{dateFrom:d().startOf("year").format(e),dateTo:d().endOf("year").format(e)},step:"year"},{label:"Last Year",range:{dateFrom:d().subtract(1,"year").startOf("year").format(e),dateTo:d().subtract(1,"year").endOf("year").format(e)},step:"year"},{label:"Year to Date",range:{dateFrom:d().startOf("year").format(e),dateTo:d().endOf("day").format(e)},step:"day"}]}),m}(t,this.type==="datetime-local"),this.presetRanges=[],this.presetCategories.forEach(e=>{this.presetRanges.push(...e.presets)}),this.customPresets&&this.customPresets.length>0){const e={name:"Custom",presets:this.customPresets.map(u=>({label:u.label,range:{dateFrom:u.dateFrom,dateTo:u.dateTo},step:"day"}))};this.presetCategories.push(e),this.presetRanges.push(...e.presets)}this.memoizedPresets.set(a,[...this.presetCategories])}getDateFormat(){return this.format||(this.type==="date"?"YYYY-MM-DD":"YYYY-MM-DDTHH:mm")}updateSelectedDateRange(){const t=this.presetRanges.find(a=>a.range.dateFrom===this.dateFrom.value&&a.range.dateTo===this.dateTo.value);if(t)return this.selectedDateRange=t.label,void(this.activePreset=t.label);this.checkAndUpdateActivePreset(this.dateFrom.value,this.dateTo.value),this.activePreset=null,this.selectedDateRange=function(a,e,u,m){if(!a||!e)return m;const o=d(a),f=d(e);if(!o.isValid()||!f.isValid())return m;const y=u==="datetime-local"?o.format(" h:mm A"):"",F=u==="datetime-local"?f.format(" h:mm A"):"";return o.isSame(f,"day")?`${o.format("MMM D, YYYY")}${y}`:o.isSame(f,"month")&&o.isSame(f,"year")?`${o.format("MMM D")}-${f.format("D, YYYY")}${F}`:o.isSame(f,"year")?`${o.format("MMM D")} - ${f.format("MMM D, YYYY")}${F}`:`${o.format("MMM D, YYYY")}${y} - ${f.format("MMM D, YYYY")}${F}`}(this.dateFrom.value,this.dateTo.value,this.type,this.placeholder)}setDateRange(t,a){this.dateFrom.value=t,this.dateTo.value=a,this.updateSelectedDateRange(),this.announceToScreenReader(`Date range updated: ${this.selectedDateRange}`),this.dispatchEvent(new CustomEvent("change",{detail:{dateFrom:t,dateTo:a},bubbles:!0,composed:!0}))}handlePresetSelection(t,a){a.stopPropagation(),this.activePreset=t.label,this.setDateRange(t.range.dateFrom,t.range.dateTo),B.$dialog.dismiss()}toggleDropdown(t){t.stopPropagation(),this.disabled||(this.isOpen?this.closeDropdown():this.openDropdown())}openDropdown(){if(this.disabled)return;this.isOpen=!0;const t=this.createDialogContent();B.$dialog.component(t,{title:"Select Date Range",width:this.isMobile?"100vw":"800px",hideActions:!0}).then(()=>{this.isOpen=!1})}closeDropdown(){B.$dialog.dismiss(),this.isOpen=!1}shiftDateRange(t,a){if(a.stopPropagation(),!this.dateFrom.value||!this.dateTo.value)return;const e=d(this.dateFrom.value),u=d(this.dateTo.value);if(!e.isValid()||!u.isValid())return;const m=this.getDateFormat(),o=t>0?1:-1,f=this.presetRanges.find(v=>v.label===this.activePreset),{unit:y,amount:F}=function(v,Y,j){if(j)return{unit:j,amount:1};const P=Y.diff(v,"day");return P>=360?{unit:"year",amount:Math.round(P/365)}:P>=90?{unit:"quarter",amount:Math.round(P/90)}:P>=30?{unit:"month",amount:Math.round(P/30)}:P>=7?{unit:"week",amount:Math.round(P/7)}:{unit:"day",amount:P+1}}(e,u,f?.step),b=function(v,Y){return{isFullMonth:v.date()===1&&Y.isSame(v.endOf("month"),"day"),isFullQuarter:v.isSame(v.startOf("quarter"),"day")&&Y.isSame(Y.endOf("quarter"),"day"),isFullYear:v.isSame(v.startOf("year"),"day")&&Y.isSame(Y.endOf("year"),"day"),isFullWeek:v.day()===0&&Y.day()===6&&Y.diff(v,"days")===6}}(e,u);let $,M;if(y==="quarter")$=oe(e,F,o),M=oe(u,F,o),b.isFullQuarter&&($=$.startOf("quarter"),M=$.endOf("quarter"));else if(y==="hour"){const v=u.diff(e,"hour");$=o>0?e.add(v,"hour"):e.subtract(v,"hour"),M=o>0?u.add(v,"hour"):u.subtract(v,"hour")}else o>0?($=e.add(F,y),M=u.add(F,y)):($=e.subtract(F,y),M=u.subtract(F,y)),y==="year"&&b.isFullYear?($=$.startOf("year"),M=$.endOf("year")):y==="month"&&b.isFullMonth?($=$.startOf("month"),M=$.endOf("month")):y==="week"&&b.isFullWeek&&($=$.startOf("week"),M=$.endOf("week"));this.setDateRange($.format(m),M.format(m)),this.checkAndUpdateActivePreset($.format(m),M.format(m))}handleKeyboardNavigation(t){const a=t.key;if(this.dateFrom.value&&this.dateTo.value&&!this.disabled)switch(a){case"PageUp":(t.target===this||this.contains(t.target))&&(this.shiftDateRange(-1,t),t.preventDefault());break;case"PageDown":(t.target===this||this.contains(t.target))&&(this.shiftDateRange(1,t),t.preventDefault());break;case"Home":if(t.ctrlKey&&(t.target===this||this.contains(t.target))){const e=d(this.dateFrom.value),u=d(this.dateTo.value),m=e.startOf("month"),o=u.diff(e,"day");this.setDateRange(m.format(this.getDateFormat()),m.add(o,"day").format(this.getDateFormat())),t.preventDefault()}break;case"End":if(t.ctrlKey&&(t.target===this||this.contains(t.target))){const e=d(this.dateFrom.value),u=d(this.dateTo.value),m=u.diff(e,"day"),o=u.endOf("month");this.setDateRange(o.subtract(m,"day").format(this.getDateFormat()),o.format(this.getDateFormat())),t.preventDefault()}}}checkAndUpdateActivePreset(t,a){const e=this.presetRanges.find(u=>u.range.dateFrom===t&&u.range.dateTo===a);this.activePreset=e?e.label:null}applyManualDateSelection(t){t.stopPropagation();const a=d(this.dateFrom.value),e=d(this.dateTo.value);a.isValid()&&e.isValid()?(a.isAfter(e)?this.setDateRange(e.format(this.getDateFormat()),a.format(this.getDateFormat())):this.setDateRange(this.dateFrom.value,this.dateTo.value),B.$dialog.dismiss()):this.announceToScreenReader("Invalid date format. Please check your input.")}checkMobileView(){this.isMobile=window.innerWidth<768}handleFromDateChange(t){const a=t.target;this.dateFrom.value=a.value,this.updateSelectedDateRange()}handleToDateChange(t){const a=t.target;this.dateTo.value=a.value,this.updateSelectedDateRange()}createDialogContent(){return z.html`
2
- <div class="w-full min-h-[400px] max-h-[80vh] flex flex-col p-4">
3
- <!-- Custom Range Section with Inline Calendars -->
4
- <schmancy-surface type="container" class="rounded-xl p-4 mb-6">
5
- <div class="flex flex-col gap-4">
6
- <div class="grid grid-cols-1 md:grid-cols-2 gap-4">
7
- <!-- From Date Calendar -->
8
- <div class="flex flex-col gap-2">
9
- <schmancy-typography type="label" token="md" class="text-surface-onVariant">
10
- ${this.dateFrom.label||"From"}
11
- </schmancy-typography>
12
- <schmancy-input
13
- type="${this.type}"
14
- .value="${this.dateFrom.value}"
15
- min="${Q.ifDefined(this.minDate)}"
16
- max="${Q.ifDefined(this.maxDate)}"
17
- @change="${this.handleFromDateChange.bind(this)}"
18
- ></schmancy-input>
19
- </div>
20
-
21
- <!-- To Date Calendar -->
22
- <div class="flex flex-col gap-2">
23
- <schmancy-typography type="label" token="md" class="text-surface-onVariant">
24
- ${this.dateTo.label||"To"}
25
- </schmancy-typography>
26
- <schmancy-input
27
- type="${this.type}"
28
- .value="${this.dateTo.value}"
29
- min="${Q.ifDefined(this.dateFrom.value)}"
30
- max="${Q.ifDefined(this.maxDate)}"
31
- @change="${this.handleToDateChange.bind(this)}"
32
- ></schmancy-input>
33
- </div>
34
- </div>
35
-
36
- <!-- Apply Button - Now at the bottom for logical flow -->
37
- <div class="flex justify-end mt-2">
38
- <schmancy-button
39
- variant="filled"
40
- @click="${t=>this.applyManualDateSelection(t)}"
41
- ?disabled="${!this.dateFrom.value||!this.dateTo.value}"
42
- >
43
- Apply
44
- </schmancy-button>
45
- </div>
46
- </div>
47
- </schmancy-surface>
48
-
49
- <!-- Presets Section -->
50
- <div class="flex-1 overflow-y-auto overflow-x-hidden min-h-0">
51
- <div class="grid grid-cols-2 md:grid-cols-5 gap-6">
52
- ${this.presetCategories.map(t=>z.html`
53
- <div class="space-y-3">
54
- <schmancy-typography type="title" token="md" class="text-surface-onVariant font-medium">
55
- ${t.name}
56
- </schmancy-typography>
57
- <div class="space-y-1">
58
- ${t.presets.map(a=>z.html`
59
- <schmancy-button
60
- variant="${this.activePreset===a.label?"filled":"text"}"
61
- class="w-full justify-start text-left"
62
- @click="${e=>this.handlePresetSelection(a,e)}"
63
- aria-pressed="${this.activePreset===a.label}"
64
- aria-label="${a.label}: ${a.range.dateFrom} to ${a.range.dateTo}"
65
- title="${a.range.dateFrom} to ${a.range.dateTo}"
66
- >
67
- <span class="truncate">${a.label}</span>
68
- </schmancy-button>
69
- `)}
70
- </div>
71
- </div>
72
- `)}
73
- </div>
74
- </div>
75
- </div>
76
- `}announceToScreenReader(t){this.announceMessage=t,A.timer(100).pipe(A.takeUntil(this.disconnecting)).subscribe(()=>{this.announceMessage=""})}render(){return z.html`
77
- <div class="relative ${this.disabled?"opacity-60 pointer-events-none":""}">
78
- <!-- Screen reader announcements -->
79
- <div class="sr-only" role="status" aria-live="polite" aria-atomic="true">
80
- ${this.announceMessage}
81
- </div>
82
-
83
- <!-- Trigger using the preferred schmancy-grid pattern -->
84
- <section @click=${t=>t.stopPropagation()} class="flex" >
85
- <schmancy-icon-button
86
- type="button"
87
- aria-label="Previous ${this.activePreset?this.activePreset.toLowerCase():"date range"}"
88
- @click=${t=>this.shiftDateRange(-1,t)}
89
- ?disabled=${this.disabled||!this.dateFrom.value||!this.dateTo.value}
90
- >
91
- arrow_left
92
- </schmancy-icon-button>
93
-
94
- <schmancy-button
95
- class="w-max"
96
- variant="outlined"
97
- type="button"
98
- aria-haspopup="menu"
99
- aria-expanded=${this.isOpen}
100
- aria-label="Select date range. Current: ${this.selectedDateRange||"No date selected"}"
101
- @click=${t=>this.toggleDropdown(t)}
102
- >
103
- ${this.selectedDateRange||this.placeholder}
104
- </schmancy-button>
105
-
106
- <schmancy-icon-button
107
- type="button"
108
- aria-label="Next ${this.activePreset?this.activePreset.toLowerCase():"date range"}"
109
- @click=${t=>this.shiftDateRange(1,t)}
110
- ?disabled=${this.disabled||!this.dateFrom.value||!this.dateTo.value}
111
- >
112
- arrow_right
113
- </schmancy-icon-button>
114
- </section>
115
- </div>
116
- `}},w([T.property({type:String})],exports.SchmancyDateRange.prototype,"type",2),w([T.property({type:Object})],exports.SchmancyDateRange.prototype,"dateFrom",2),w([T.property({type:Object})],exports.SchmancyDateRange.prototype,"dateTo",2),w([T.property({type:String})],exports.SchmancyDateRange.prototype,"minDate",2),w([T.property({type:String})],exports.SchmancyDateRange.prototype,"maxDate",2),w([T.property({type:Array})],exports.SchmancyDateRange.prototype,"customPresets",2),w([T.property({type:String})],exports.SchmancyDateRange.prototype,"format",2),w([T.property({type:Boolean})],exports.SchmancyDateRange.prototype,"disabled",2),w([T.property({type:Boolean})],exports.SchmancyDateRange.prototype,"required",2),w([T.property({type:String})],exports.SchmancyDateRange.prototype,"placeholder",2),w([T.property({type:Boolean})],exports.SchmancyDateRange.prototype,"clearable",2),w([T.state()],exports.SchmancyDateRange.prototype,"isOpen",2),w([T.state()],exports.SchmancyDateRange.prototype,"selectedDateRange",2),w([T.state()],exports.SchmancyDateRange.prototype,"activePreset",2),w([T.state()],exports.SchmancyDateRange.prototype,"announceMessage",2),w([T.state()],exports.SchmancyDateRange.prototype,"isMobile",2),exports.SchmancyDateRange=w([T.customElement("schmancy-date-range")],exports.SchmancyDateRange),exports.validateInitialDateRange=ie;
117
- //# sourceMappingURL=date-range-Ch_Ir3s1.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"date-range-Ch_Ir3s1.cjs","sources":["../../../../.yarn/berry/cache/dayjs-npm-1.11.13-d478bb9479-10c0.zip/node_modules/dayjs/dayjs.min.js","../../../../.yarn/berry/cache/dayjs-npm-1.11.13-d478bb9479-10c0.zip/node_modules/dayjs/plugin/quarterOfYear.js","../src/date-range/date-utils.ts","../src/date-range/date-range-presets.ts","../src/date-range/date-range-helpers.ts","../src/date-range/date-range.ts"],"sourcesContent":["!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},g=\"en\",D={};D[g]=M;var p=\"$isDayjsObject\",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if(\"string\"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split(\"-\");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v=\"set\"+(this.$u?\"UTC\":\"\");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+\"Hours\",0);case u:return $(v+\"Minutes\",1);case s:return $(v+\"Seconds\",2);case i:return $(v+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=b.p(t),f=\"set\"+(this.$u?\"UTC\":\"\"),l=(n={},n[a]=f+\"Date\",n[d]=f+\"Date\",n[c]=f+\"Month\",n[h]=f+\"FullYear\",n[u]=f+\"Hours\",n[s]=f+\"Minutes\",n[i]=f+\"Seconds\",n[r]=f+\"Milliseconds\",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,\"0\")},$=f||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case\"YY\":return String(e.$y).slice(-2);case\"YYYY\":return b.s(e.$y,4,\"0\");case\"M\":return a+1;case\"MM\":return b.s(a+1,2,\"0\");case\"MMM\":return h(n.monthsShort,a,c,3);case\"MMMM\":return h(c,a);case\"D\":return e.$D;case\"DD\":return b.s(e.$D,2,\"0\");case\"d\":return String(e.$W);case\"dd\":return h(n.weekdaysMin,e.$W,o,2);case\"ddd\":return h(n.weekdaysShort,e.$W,o,3);case\"dddd\":return o[e.$W];case\"H\":return String(s);case\"HH\":return b.s(s,2,\"0\");case\"h\":return d(1);case\"hh\":return d(2);case\"a\":return $(s,u,!0);case\"A\":return $(s,u,!1);case\"m\":return String(u);case\"mm\":return b.s(u,2,\"0\");case\"s\":return String(e.$s);case\"ss\":return b.s(e.$s,2,\"0\");case\"SSS\":return b.s(e.$ms,3,\"0\");case\"Z\":return i}return null}(t)||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),k=_.prototype;return O.prototype=k,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",c],[\"$y\",h],[\"$D\",d]].forEach((function(t){k[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=!0),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));","!function(t,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_quarterOfYear=n()}(this,(function(){\"use strict\";var t=\"month\",n=\"quarter\";return function(e,i){var r=i.prototype;r.quarter=function(t){return this.$utils().u(t)?Math.ceil((this.month()+1)/3):this.month(this.month()%3+3*(t-1))};var s=r.add;r.add=function(e,i){return e=Number(e),this.$utils().p(i)===n?this.add(3*e,t):s.bind(this)(e,i)};var u=r.startOf;r.startOf=function(e,i){var r=this.$utils(),s=!!r.u(i)||i;if(r.p(e)===n){var o=this.quarter()-1;return s?this.month(3*o).startOf(t).startOf(\"day\"):this.month(3*o+2).endOf(t).endOf(\"day\")}return u.bind(this)(e,i)}}}));","import dayjs from 'dayjs'\n\ntype DateFormat = 'YYYY-MM-DD' | 'YYYY-MM-DDTHH:mm'\n\n/**\n * Ensures that a date string conforms to a specific format.\n * If the date is already in the correct format, it returns the original string.\n * If the date is in a different format, it attempts to convert it to the specified format.\n * If the date is invalid or cannot be converted, it returns null.\n *\n * @param dateString The date string to validate and format.\n * @param expectedFormat The expected date format (e.g., 'YYYY-MM-DD', 'YYYY-MM-DDTHH:mm').\n * @returns The formatted date string, or null if the date is invalid.\n */\nfunction enforceDateFormat(dateString: string | undefined, expectedFormat: DateFormat): string | null {\n\tif (!dateString) {\n\t\treturn null // Or handle the undefined case differently if needed\n\t}\n\n\tconst parsedDate = dayjs(dateString)\n\n\tif (!parsedDate.isValid()) {\n\t\treturn null // Date is invalid\n\t}\n\n\treturn parsedDate.format(expectedFormat)\n}\n\n/**\n * Validates if the initial date range values are in the expected format.\n *\n * @param dateFrom The dateFrom value to validate.\n * @param dateTo The dateTo value to validate.\n * @param expectedFormat The expected date format.\n * @returns An object indicating whether each date is valid, and the formatted date or null if invalid.\n */\nfunction validateInitialDateRange(\n\tdateFrom: string | undefined,\n\tdateTo: string | undefined,\n\texpectedFormat: DateFormat,\n): {\n\tdateFrom: string | null\n\tdateTo: string | null\n\tisValid: boolean\n} {\n\tconst formattedDateFrom = enforceDateFormat(dateFrom, expectedFormat)\n\tconst formattedDateTo = enforceDateFormat(dateTo, expectedFormat)\n\n\tconst isValid = formattedDateFrom !== null && formattedDateTo !== null\n\n\treturn {\n\t\tdateFrom: formattedDateFrom,\n\t\tdateTo: formattedDateTo,\n\t\tisValid,\n\t}\n}\n\nexport { validateInitialDateRange }\n","import dayjs from 'dayjs'\r\n\r\nexport type PresetUnit = dayjs.OpUnitType | 'quarter'\r\n\r\nexport interface DateRangePreset {\r\n\tlabel: string\r\n\trange: { dateFrom: string; dateTo: string }\r\n\tstep: PresetUnit\r\n}\r\n\r\nexport interface PresetCategory {\r\n\tname: string\r\n\tpresets: DateRangePreset[]\r\n}\r\n\r\n/**\r\n * Generate date range presets for different time periods\r\n */\r\nexport function generatePresetCategories(format: string, includeTime: boolean = false): PresetCategory[] {\r\n\tconst categories: PresetCategory[] = []\r\n\r\n\t// Hours category (only for datetime-local)\r\n\tif (includeTime) {\r\n\t\tcategories.push({\r\n\t\t\tname: 'Hours',\r\n\t\t\tpresets: [\r\n\t\t\t\t{\r\n\t\t\t\t\tlabel: 'Last 24 Hours',\r\n\t\t\t\t\trange: {\r\n\t\t\t\t\t\tdateFrom: dayjs().subtract(24, 'hours').format(format),\r\n\t\t\t\t\t\tdateTo: dayjs().format(format),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tstep: 'hour',\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tlabel: 'Last 12 Hours',\r\n\t\t\t\t\trange: {\r\n\t\t\t\t\t\tdateFrom: dayjs().subtract(12, 'hours').format(format),\r\n\t\t\t\t\t\tdateTo: dayjs().format(format),\r\n\t\t\t\t\t},\r\n\t\t\t\t\tstep: 'hour',\r\n\t\t\t\t},\r\n\t\t\t],\r\n\t\t})\r\n\t}\r\n\r\n\t// Days category\r\n\tcategories.push({\r\n\t\tname: 'Days',\r\n\t\tpresets: [\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Today',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().startOf('day').format(format),\r\n\t\t\t\t\tdateTo: dayjs().endOf('day').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'day',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Yesterday',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().subtract(1, 'days').startOf('day').format(format),\r\n\t\t\t\t\tdateTo: dayjs().subtract(1, 'days').endOf('day').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'day',\r\n\t\t\t},\r\n\t\t\t...generateLastNDaysPresets([7, 14, 30, 60, 90], format),\r\n\t\t],\r\n\t})\r\n\r\n\t// Weeks category\r\n\tcategories.push({\r\n\t\tname: 'Weeks',\r\n\t\tpresets: [\r\n\t\t\t{\r\n\t\t\t\tlabel: 'This Week',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().startOf('week').format(format),\r\n\t\t\t\t\tdateTo: dayjs().endOf('week').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'week',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Last Week',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().subtract(1, 'weeks').startOf('week').format(format),\r\n\t\t\t\t\tdateTo: dayjs().subtract(1, 'weeks').endOf('week').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'week',\r\n\t\t\t},\r\n\t\t\t...generateLastNWeeksPresets([2, 4], format),\r\n\t\t],\r\n\t})\r\n\r\n\t// Months category\r\n\tcategories.push({\r\n\t\tname: 'Months',\r\n\t\tpresets: [\r\n\t\t\t{\r\n\t\t\t\tlabel: 'This Month',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().startOf('month').format(format),\r\n\t\t\t\t\tdateTo: dayjs().endOf('month').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'month',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Last Month',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().subtract(1, 'month').startOf('month').format(format),\r\n\t\t\t\t\tdateTo: dayjs().subtract(1, 'month').endOf('month').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'month',\r\n\t\t\t},\r\n\t\t\t...generateLastNMonthsPresets([3, 6], format),\r\n\t\t],\r\n\t})\r\n\r\n\t// Quarters category\r\n\tcategories.push({\r\n\t\tname: 'Quarters',\r\n\t\tpresets: [\r\n\t\t\t{\r\n\t\t\t\tlabel: 'This Quarter',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().startOf('quarter').format(format),\r\n\t\t\t\t\tdateTo: dayjs().endOf('quarter').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'quarter',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Last Quarter',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().subtract(1, 'quarter').startOf('quarter').format(format),\r\n\t\t\t\t\tdateTo: dayjs().subtract(1, 'quarter').endOf('quarter').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'quarter',\r\n\t\t\t},\r\n\t\t\t...generateLastNQuartersPresets([2, 4], format),\r\n\t\t],\r\n\t})\r\n\r\n\t// Years category\r\n\tcategories.push({\r\n\t\tname: 'Years',\r\n\t\tpresets: [\r\n\t\t\t{\r\n\t\t\t\tlabel: 'This Year',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().startOf('year').format(format),\r\n\t\t\t\t\tdateTo: dayjs().endOf('year').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'year',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Last Year',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().subtract(1, 'year').startOf('year').format(format),\r\n\t\t\t\t\tdateTo: dayjs().subtract(1, 'year').endOf('year').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'year',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: 'Year to Date',\r\n\t\t\t\trange: {\r\n\t\t\t\t\tdateFrom: dayjs().startOf('year').format(format),\r\n\t\t\t\t\tdateTo: dayjs().endOf('day').format(format),\r\n\t\t\t\t},\r\n\t\t\t\tstep: 'day',\r\n\t\t\t},\r\n\t\t],\r\n\t})\r\n\r\n\treturn categories\r\n}\r\n\r\n// Helper functions to generate preset arrays\r\nfunction generateLastNDaysPresets(days: number[], format: string): DateRangePreset[] {\r\n\treturn days.map(n => ({\r\n\t\tlabel: `Last ${n} Days`,\r\n\t\trange: {\r\n\t\t\tdateFrom: dayjs().subtract(n - 1, 'days').startOf('day').format(format),\r\n\t\t\tdateTo: dayjs().endOf('day').format(format),\r\n\t\t},\r\n\t\tstep: 'day' as PresetUnit,\r\n\t}))\r\n}\r\n\r\nfunction generateLastNWeeksPresets(weeks: number[], format: string): DateRangePreset[] {\r\n\treturn weeks.map(n => ({\r\n\t\tlabel: `Last ${n} Weeks`,\r\n\t\trange: {\r\n\t\t\tdateFrom: dayjs().subtract(n, 'weeks').startOf('week').format(format),\r\n\t\t\tdateTo: dayjs().endOf('day').format(format),\r\n\t\t},\r\n\t\tstep: 'week' as PresetUnit,\r\n\t}))\r\n}\r\n\r\nfunction generateLastNMonthsPresets(months: number[], format: string): DateRangePreset[] {\r\n\treturn months.map(n => ({\r\n\t\tlabel: `Last ${n} Months`,\r\n\t\trange: {\r\n\t\t\tdateFrom: dayjs().subtract(n, 'months').startOf('month').format(format),\r\n\t\t\tdateTo: dayjs().endOf('day').format(format),\r\n\t\t},\r\n\t\tstep: 'month' as PresetUnit,\r\n\t}))\r\n}\r\n\r\nfunction generateLastNQuartersPresets(quarters: number[], format: string): DateRangePreset[] {\r\n\treturn quarters.map(n => ({\r\n\t\tlabel: `Last ${n} Quarters`,\r\n\t\trange: {\r\n\t\t\tdateFrom: dayjs().subtract(n, 'quarters').startOf('quarter').format(format),\r\n\t\t\tdateTo: dayjs().endOf('day').format(format),\r\n\t\t},\r\n\t\tstep: 'quarter' as PresetUnit,\r\n\t}))\r\n}","import dayjs from 'dayjs'\r\nimport { PresetUnit } from './date-range-presets'\r\n\r\n/**\r\n * Format a date range into a human-readable string\r\n */\r\nexport function formatDateRange(\r\n\tfromValue: string,\r\n\ttoValue: string,\r\n\ttype: 'date' | 'datetime-local',\r\n\tplaceholder: string\r\n): string {\r\n\tif (!fromValue || !toValue) {\r\n\t\treturn placeholder\r\n\t}\r\n\r\n\tconst fromDate = dayjs(fromValue)\r\n\tconst toDate = dayjs(toValue)\r\n\r\n\tif (!fromDate.isValid() || !toDate.isValid()) {\r\n\t\treturn placeholder\r\n\t}\r\n\r\n\t// Format times if needed (for datetime-local)\r\n\tconst fromTime = type === 'datetime-local' ? fromDate.format(' h:mm A') : ''\r\n\tconst toTime = type === 'datetime-local' ? toDate.format(' h:mm A') : ''\r\n\r\n\t// Check if same day\r\n\tif (fromDate.isSame(toDate, 'day')) {\r\n\t\treturn `${fromDate.format('MMM D, YYYY')}${fromTime}`\r\n\t}\r\n\r\n\t// Check if same month and year\r\n\tif (fromDate.isSame(toDate, 'month') && fromDate.isSame(toDate, 'year')) {\r\n\t\treturn `${fromDate.format('MMM D')}-${toDate.format('D, YYYY')}${toTime}`\r\n\t}\r\n\r\n\t// Check if same year\r\n\tif (fromDate.isSame(toDate, 'year')) {\r\n\t\treturn `${fromDate.format('MMM D')} - ${toDate.format('MMM D, YYYY')}${toTime}`\r\n\t}\r\n\r\n\t// Different years\r\n\treturn `${fromDate.format('MMM D, YYYY')}${fromTime} - ${toDate.format('MMM D, YYYY')}${toTime}`\r\n}\r\n\r\n/**\r\n * Detect the type of date range (full month, full quarter, etc.)\r\n */\r\nexport interface DateRangeType {\r\n\tisFullMonth: boolean\r\n\tisFullQuarter: boolean\r\n\tisFullYear: boolean\r\n\tisFullWeek: boolean\r\n}\r\n\r\nexport function detectDateRangeType(fromDate: dayjs.Dayjs, toDate: dayjs.Dayjs): DateRangeType {\r\n\treturn {\r\n\t\tisFullMonth: fromDate.date() === 1 && toDate.isSame(fromDate.endOf('month'), 'day'),\r\n\t\tisFullQuarter: fromDate.isSame(fromDate.startOf('quarter'), 'day') && toDate.isSame(toDate.endOf('quarter'), 'day'),\r\n\t\tisFullYear: fromDate.isSame(fromDate.startOf('year'), 'day') && toDate.isSame(toDate.endOf('year'), 'day'),\r\n\t\tisFullWeek: fromDate.day() === 0 && toDate.day() === 6 && toDate.diff(fromDate, 'days') === 6,\r\n\t}\r\n}\r\n\r\n/**\r\n * Calculate the appropriate shift unit and amount for a date range\r\n */\r\nexport function calculateShiftParams(\r\n\tfromDate: dayjs.Dayjs,\r\n\ttoDate: dayjs.Dayjs,\r\n\tactivePresetStep?: PresetUnit\r\n): { unit: PresetUnit; amount: number } {\r\n\tif (activePresetStep) {\r\n\t\treturn { unit: activePresetStep, amount: 1 }\r\n\t}\r\n\r\n\tconst rangeDurationInDays = toDate.diff(fromDate, 'day')\r\n\r\n\t// For very long ranges, use years\r\n\tif (rangeDurationInDays >= 360) {\r\n\t\treturn { unit: 'year', amount: Math.round(rangeDurationInDays / 365) }\r\n\t}\r\n\t// For long ranges, use quarters\r\n\telse if (rangeDurationInDays >= 90) {\r\n\t\treturn { unit: 'quarter', amount: Math.round(rangeDurationInDays / 90) }\r\n\t}\r\n\t// For medium-long ranges, use months\r\n\telse if (rangeDurationInDays >= 30) {\r\n\t\treturn { unit: 'month', amount: Math.round(rangeDurationInDays / 30) }\r\n\t}\r\n\t// For medium ranges, use weeks\r\n\telse if (rangeDurationInDays >= 7) {\r\n\t\treturn { unit: 'week', amount: Math.round(rangeDurationInDays / 7) }\r\n\t}\r\n\t// For shorter ranges, use days\r\n\telse {\r\n\t\treturn { unit: 'day', amount: rangeDurationInDays + 1 }\r\n\t}\r\n}\r\n\r\n/**\r\n * Helper method to safely add/subtract quarter values\r\n */\r\nexport function adjustQuarter(date: dayjs.Dayjs, amount: number, direction: 1 | -1): dayjs.Dayjs {\r\n\t// Get current quarter (1-4)\r\n\tconst currentQuarter = date.quarter()\r\n\r\n\t// Calculate new quarter\r\n\tlet newQuarter = currentQuarter + direction * amount\r\n\tlet yearAdjustment = 0\r\n\r\n\t// Handle year boundaries\r\n\twhile (newQuarter > 4) {\r\n\t\tnewQuarter -= 4\r\n\t\tyearAdjustment += 1\r\n\t}\r\n\r\n\twhile (newQuarter < 1) {\r\n\t\tnewQuarter += 4\r\n\t\tyearAdjustment -= 1\r\n\t}\r\n\r\n\t// Adjust year if needed\r\n\tconst adjustedDate = date.add(yearAdjustment, 'year')\r\n\r\n\t// Set to the start of the new quarter\r\n\tconst newDate = adjustedDate.month((newQuarter - 1) * 3)\r\n\r\n\t// Maintain the same day of month if possible\r\n\tconst daysInMonth = newDate.daysInMonth()\r\n\tconst targetDay = Math.min(date.date(), daysInMonth)\r\n\r\n\treturn newDate.date(targetDay)\r\n}","import { $LitElement } from '@mixins/index'\nimport dayjs from 'dayjs'\nimport quarterOfYear from 'dayjs/plugin/quarterOfYear'\nimport { html, PropertyValues, TemplateResult } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { debounceTime, fromEvent, takeUntil, timer } from 'rxjs'\nimport { $dialog } from '../dialog/dialog-service'\nimport { validateInitialDateRange } from './date-utils'\nimport { DateRangePreset, PresetCategory, generatePresetCategories } from './date-range-presets'\nimport { formatDateRange, detectDateRangeType, calculateShiftParams, adjustQuarter } from './date-range-helpers'\n\n// Add quarter plugin to dayjs\ndayjs.extend(quarterOfYear)\n\nexport type SchmancyDateRangeChangeEvent = CustomEvent<{\n\tdateFrom: string\n\tdateTo: string\n}>\n\n/**\n * A date range selector that supports presets and manual date input.\n *\n * @element schmancy-date-range\n * @fires change - Fired when the date range changes with dateFrom and dateTo values\n */\n@customElement('schmancy-date-range')\nexport class SchmancyDateRange extends $LitElement() {\n\t// Core properties\n\t@property({ type: String }) type: 'date' | 'datetime-local' = 'date'\n\t@property({ type: Object }) dateFrom: { label: string; value: string } = { label: 'From', value: '' }\n\t@property({ type: Object }) dateTo: { label: string; value: string } = { label: 'To', value: '' }\n\t@property({ type: String }) minDate?: string\n\t@property({ type: String }) maxDate?: string\n\n\t// Enhanced functionality\n\t@property({ type: Array }) customPresets: Array<{\n\t\tlabel: string\n\t\tdateFrom: string\n\t\tdateTo: string\n\t}> = []\n\t@property({ type: String }) format?: string\n\t@property({ type: Boolean }) disabled = false\n\t@property({ type: Boolean }) required = false\n\t@property({ type: String }) placeholder = 'Select date range'\n\t@property({ type: Boolean }) clearable = true\n\n\t// Internal states\n\t@state() private isOpen = false\n\t@state() private selectedDateRange: string = ''\n\t@state() private activePreset: string | null = null\n\t@state() private announceMessage: string = ''\n\t@state() private isMobile = false\n\n\t// Default presets\n\tprivate presetRanges: DateRangePreset[] = []\n\n\t// Categorized presets\n\tprivate presetCategories: PresetCategory[] = []\n\n\t// Memoization cache\n\tprivate memoizedPresets = new Map<string, PresetCategory[]>()\n\n\tconnectedCallback(): void {\n\t\tsuper.connectedCallback()\n\t\tthis.initPresetRanges()\n\t\tthis.checkMobileView()\n\n\t\t// Validate initial date range\n\t\tconst dateFormat = this.getDateFormat() as 'YYYY-MM-DD' | 'YYYY-MM-DDTHH:mm'\n\t\tconst validatedRange = validateInitialDateRange(this.dateFrom.value, this.dateTo.value, dateFormat)\n\n\t\tif (validatedRange.isValid) {\n\t\t\tthis.dateFrom.value = validatedRange.dateFrom!\n\t\t\tthis.dateTo.value = validatedRange.dateTo!\n\t\t\tthis.updateSelectedDateRange()\n\t\t} else {\n\t\t\tconst now = dayjs().format(dateFormat)\n\t\t\tthis.dateFrom.value = now\n\t\t\tthis.dateTo.value = now\n\t\t\tthis.updateSelectedDateRange()\n\t\t}\n\n\t\t// Set up global event handlers using RxJS\n\t\tthis.setupEventHandlers()\n\t}\n\n\tprivate setupEventHandlers() {\n\t\t// Handle keyboard navigation\n\t\tfromEvent<KeyboardEvent>(document, 'keydown')\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe(event => {\n\t\t\t\tthis.handleKeyboardNavigation(event)\n\t\t\t})\n\n\t\t// Handle window resize with debouncing\n\t\tfromEvent(window, 'resize')\n\t\t\t.pipe(\n\t\t\t\tdebounceTime(150),\n\t\t\t\ttakeUntil(this.disconnecting)\n\t\t\t)\n\t\t\t.subscribe(() => {\n\t\t\t\tthis.checkMobileView()\n\t\t\t})\n\t}\n\n\tdisconnectedCallback(): void {\n\t\tsuper.disconnectedCallback()\n\t}\n\n\tupdated(changedProps: PropertyValues) {\n\t\tsuper.updated(changedProps)\n\n\t\tif (\n\t\t\t(changedProps.has('dateFrom') || changedProps.has('dateTo')) &&\n\t\t\t(this.dateFrom?.value !== undefined || this.dateTo?.value !== undefined)\n\t\t) {\n\t\t\tthis.updateSelectedDateRange()\n\t\t}\n\t}\n\n\tprivate initPresetRanges() {\n\t\tconst format = this.getDateFormat()\n\t\tconst cacheKey = `${this.type}-${format}-${JSON.stringify(this.customPresets)}`\n\t\t\n\t\t// Check memoization cache\n\t\tif (this.memoizedPresets.has(cacheKey)) {\n\t\t\tconst cached = this.memoizedPresets.get(cacheKey)!\n\t\t\tthis.presetCategories = cached\n\t\t\tthis.presetRanges = []\n\t\t\tcached.forEach(category => {\n\t\t\t\tthis.presetRanges.push(...category.presets)\n\t\t\t})\n\t\t\treturn\n\t\t}\n\n\t\t// Generate preset categories\n\t\tthis.presetCategories = generatePresetCategories(format, this.type === 'datetime-local')\n\n\t\t// Flatten presets for other methods that expect a flat list\n\t\tthis.presetRanges = []\n\t\tthis.presetCategories.forEach(category => {\n\t\t\tthis.presetRanges.push(...category.presets)\n\t\t})\n\n\t\t// Add custom presets if provided\n\t\tif (this.customPresets && this.customPresets.length > 0) {\n\t\t\tconst customCategory: PresetCategory = {\n\t\t\t\tname: 'Custom',\n\t\t\t\tpresets: this.customPresets.map(preset => ({\n\t\t\t\t\tlabel: preset.label,\n\t\t\t\t\trange: {\n\t\t\t\t\t\tdateFrom: preset.dateFrom,\n\t\t\t\t\t\tdateTo: preset.dateTo,\n\t\t\t\t\t},\n\t\t\t\t\tstep: 'day' as const,\n\t\t\t\t})),\n\t\t\t}\n\n\t\t\tthis.presetCategories.push(customCategory)\n\t\t\tthis.presetRanges.push(...customCategory.presets)\n\t\t}\n\t\t\n\t\t// Cache the result\n\t\tthis.memoizedPresets.set(cacheKey, [...this.presetCategories])\n\t}\n\n\tprivate getDateFormat(): string {\n\t\treturn this.format || (this.type === 'date' ? 'YYYY-MM-DD' : 'YYYY-MM-DDTHH:mm')\n\t}\n\n\t/**\n\t * Creates a concise display format for the selected date range\n\t */\n\tprivate updateSelectedDateRange() {\n\t\t// Find matching preset\n\t\tconst preset = this.presetRanges.find(\n\t\t\tp => p.range.dateFrom === this.dateFrom.value && p.range.dateTo === this.dateTo.value,\n\t\t)\n\n\t\tif (preset) {\n\t\t\t// If matches a preset, just use the preset name\n\t\t\tthis.selectedDateRange = preset.label\n\t\t\tthis.activePreset = preset.label\n\t\t\treturn\n\t\t}\n\n\t\t// If we didn't find a preset match, check if we should update the active preset\n\t\tthis.checkAndUpdateActivePreset(this.dateFrom.value, this.dateTo.value)\n\n\t\t// Custom date range - create concise format\n\t\tthis.activePreset = null\n\t\tthis.selectedDateRange = formatDateRange(this.dateFrom.value, this.dateTo.value, this.type, this.placeholder)\n\t}\n\n\tprivate setDateRange(dateFrom: string, dateTo: string) {\n\t\tthis.dateFrom.value = dateFrom\n\t\tthis.dateTo.value = dateTo\n\t\tthis.updateSelectedDateRange()\n\n\t\t// Announce change to screen readers\n\t\tthis.announceToScreenReader(`Date range updated: ${this.selectedDateRange}`)\n\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent<{ dateFrom: string; dateTo: string }>('change', {\n\t\t\t\tdetail: { dateFrom, dateTo },\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true,\n\t\t\t}),\n\t\t)\n\t}\n\n\tprivate handlePresetSelection(preset: DateRangePreset, e: Event) {\n\t\te.stopPropagation()\n\t\tthis.activePreset = preset.label\n\t\tthis.setDateRange(preset.range.dateFrom, preset.range.dateTo)\n\t\t$dialog.dismiss()\n\t}\n\n\n\n\tprivate toggleDropdown(e: Event) {\n\t\te.stopPropagation()\n\t\tif (this.disabled) return\n\n\t\tif (this.isOpen) {\n\t\t\tthis.closeDropdown()\n\t\t} else {\n\t\t\tthis.openDropdown()\n\t\t}\n\t}\n\n\tprivate openDropdown() {\n\t\tif (this.disabled) return\n\t\t\n\t\tthis.isOpen = true\n\t\t\n\t\t// Create dialog content\n\t\tconst dialogContent = this.createDialogContent()\n\t\t\n\t\t// Use the dialog service - it will automatically find the nearest schmancy-theme\n\t\t$dialog.component(dialogContent, {\n\t\t\ttitle: 'Select Date Range',\n\t\t\twidth: this.isMobile ? '100vw' : '800px',\n\t\t\thideActions: true\n\t\t}).then(() => {\n\t\t\tthis.isOpen = false\n\t\t})\n\t}\n\n\tprivate closeDropdown() {\n\t\t$dialog.dismiss()\n\t\tthis.isOpen = false\n\t}\n\n\n\t/**\n\t * Shifts the date range based on its type (preset or custom)\n\t */\n\tprivate shiftDateRange(direction: number, e: Event) {\n\t\te.stopPropagation()\n\n\t\tif (!this.dateFrom.value || !this.dateTo.value) return\n\n\t\tconst fromDate = dayjs(this.dateFrom.value)\n\t\tconst toDate = dayjs(this.dateTo.value)\n\n\t\tif (!fromDate.isValid() || !toDate.isValid()) return\n\n\t\tconst format = this.getDateFormat()\n\t\tconst dir = direction > 0 ? 1 : -1\n\n\t\t// Get active preset and calculate shift parameters\n\t\tconst activePreset = this.presetRanges.find(p => p.label === this.activePreset)\n\t\tconst { unit, amount } = calculateShiftParams(fromDate, toDate, activePreset?.step)\n\n\t\t// Detect date range type\n\t\tconst rangeType = detectDateRangeType(fromDate, toDate)\n\n\t\tlet newFromDate: dayjs.Dayjs\n\t\tlet newToDate: dayjs.Dayjs\n\n\t\t// Handle shifting based on unit\n\t\tif (unit === 'quarter') {\n\t\t\tnewFromDate = adjustQuarter(fromDate, amount, dir)\n\t\t\tnewToDate = adjustQuarter(toDate, amount, dir)\n\t\t\t\n\t\t\tif (rangeType.isFullQuarter) {\n\t\t\t\tnewFromDate = newFromDate.startOf('quarter')\n\t\t\t\tnewToDate = newFromDate.endOf('quarter')\n\t\t\t}\n\t\t} else if (unit === 'hour') {\n\t\t\tconst rangeDurationInHours = toDate.diff(fromDate, 'hour')\n\t\t\tnewFromDate = dir > 0 ? fromDate.add(rangeDurationInHours, 'hour') : fromDate.subtract(rangeDurationInHours, 'hour')\n\t\t\tnewToDate = dir > 0 ? toDate.add(rangeDurationInHours, 'hour') : toDate.subtract(rangeDurationInHours, 'hour')\n\t\t} else {\n\t\t\t// Handle all other units (day, week, month, year)\n\t\t\tif (dir > 0) {\n\t\t\t\tnewFromDate = fromDate.add(amount, unit as dayjs.ManipulateType)\n\t\t\t\tnewToDate = toDate.add(amount, unit as dayjs.ManipulateType)\n\t\t\t} else {\n\t\t\t\tnewFromDate = fromDate.subtract(amount, unit as dayjs.ManipulateType)\n\t\t\t\tnewToDate = toDate.subtract(amount, unit as dayjs.ManipulateType)\n\t\t\t}\n\n\t\t\t// Preserve full period ranges\n\t\t\tif (unit === 'year' && rangeType.isFullYear) {\n\t\t\t\tnewFromDate = newFromDate.startOf('year')\n\t\t\t\tnewToDate = newFromDate.endOf('year')\n\t\t\t} else if (unit === 'month' && rangeType.isFullMonth) {\n\t\t\t\tnewFromDate = newFromDate.startOf('month')\n\t\t\t\tnewToDate = newFromDate.endOf('month')\n\t\t\t} else if (unit === 'week' && rangeType.isFullWeek) {\n\t\t\t\tnewFromDate = newFromDate.startOf('week')\n\t\t\t\tnewToDate = newFromDate.endOf('week')\n\t\t\t}\n\t\t}\n\n\t\t// Update the date range\n\t\tthis.setDateRange(newFromDate.format(format), newToDate.format(format))\n\t\tthis.checkAndUpdateActivePreset(newFromDate.format(format), newToDate.format(format))\n\t}\n\n\t/**\n\t * Handle keyboard navigation for accessibility\n\t */\n\tprivate handleKeyboardNavigation(event: KeyboardEvent) {\n\t\tconst key = event.key\n\t\t\n\t\t// Handle date navigation keys\n\t\tif (this.dateFrom.value && this.dateTo.value && !this.disabled) {\n\t\t\tswitch (key) {\n\t\t\t\tcase 'PageUp':\n\t\t\t\t\tif (event.target === this || this.contains(event.target as Node)) {\n\t\t\t\t\t\tthis.shiftDateRange(-1, event)\n\t\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\tcase 'PageDown':\n\t\t\t\t\tif (event.target === this || this.contains(event.target as Node)) {\n\t\t\t\t\t\tthis.shiftDateRange(1, event)\n\t\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\tcase 'Home':\n\t\t\t\t\tif (event.ctrlKey && (event.target === this || this.contains(event.target as Node))) {\n\t\t\t\t\t\t// Ctrl+Home: Jump to start of current month\n\t\t\t\t\t\tconst currentFrom = dayjs(this.dateFrom.value)\n\t\t\t\t\t\tconst currentTo = dayjs(this.dateTo.value)\n\t\t\t\t\t\tconst monthStart = currentFrom.startOf('month')\n\t\t\t\t\t\tconst daysDiff = currentTo.diff(currentFrom, 'day')\n\t\t\t\t\t\t\n\t\t\t\t\t\tthis.setDateRange(\n\t\t\t\t\t\t\tmonthStart.format(this.getDateFormat()),\n\t\t\t\t\t\t\tmonthStart.add(daysDiff, 'day').format(this.getDateFormat())\n\t\t\t\t\t\t)\n\t\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t\tcase 'End':\n\t\t\t\t\tif (event.ctrlKey && (event.target === this || this.contains(event.target as Node))) {\n\t\t\t\t\t\t// Ctrl+End: Jump to end of current month\n\t\t\t\t\t\tconst currentFrom = dayjs(this.dateFrom.value)\n\t\t\t\t\t\tconst currentTo = dayjs(this.dateTo.value)\n\t\t\t\t\t\tconst daysDiff = currentTo.diff(currentFrom, 'day')\n\t\t\t\t\t\tconst monthEnd = currentTo.endOf('month')\n\t\t\t\t\t\t\n\t\t\t\t\t\tthis.setDateRange(\n\t\t\t\t\t\t\tmonthEnd.subtract(daysDiff, 'day').format(this.getDateFormat()),\n\t\t\t\t\t\t\tmonthEnd.format(this.getDateFormat())\n\t\t\t\t\t\t)\n\t\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\t}\n\t\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Checks if the current date range matches any predefined preset,\n\t * and updates the activePreset accordingly\n\t */\n\tprivate checkAndUpdateActivePreset(fromDate: string, toDate: string) {\n\t\t// Find a preset that matches the current date range\n\t\tconst matchingPreset = this.presetRanges.find(\n\t\t\tpreset => preset.range.dateFrom === fromDate && preset.range.dateTo === toDate,\n\t\t)\n\n\t\tif (matchingPreset) {\n\t\t\tthis.activePreset = matchingPreset.label\n\t\t} else {\n\t\t\tthis.activePreset = null\n\t\t}\n\t}\n\n\tprivate applyManualDateSelection(e: Event) {\n\t\te.stopPropagation()\n\t\t// Validate dates before applying\n\t\tconst fromDate = dayjs(this.dateFrom.value)\n\t\tconst toDate = dayjs(this.dateTo.value)\n\n\t\tif (!fromDate.isValid() || !toDate.isValid()) {\n\t\t\tthis.announceToScreenReader('Invalid date format. Please check your input.')\n\t\t\treturn\n\t\t}\n\n\t\t// Ensure from date is before to date\n\t\tif (fromDate.isAfter(toDate)) {\n\t\t\tthis.setDateRange(toDate.format(this.getDateFormat()), fromDate.format(this.getDateFormat()))\n\t\t} else {\n\t\t\tthis.setDateRange(this.dateFrom.value, this.dateTo.value)\n\t\t}\n\n\t\t$dialog.dismiss()\n\t}\n\n\t/**\n\t * Check if view is mobile\n\t */\n\tprivate checkMobileView() {\n\t\tthis.isMobile = window.innerWidth < 768\n\t}\n\n\n\n\tprivate handleFromDateChange(e: Event) {\n\t\tconst input = e.target as HTMLInputElement\n\t\tthis.dateFrom.value = input.value\n\t\tthis.updateSelectedDateRange()\n\t}\n\n\tprivate handleToDateChange(e: Event) {\n\t\tconst input = e.target as HTMLInputElement\n\t\tthis.dateTo.value = input.value\n\t\tthis.updateSelectedDateRange()\n\t}\n\n\t/**\n\t * Create dialog content\n\t */\n\tprivate createDialogContent(): TemplateResult {\n\t\treturn html`\n\t\t\t<div class=\"w-full min-h-[400px] max-h-[80vh] flex flex-col p-4\">\n\t\t\t\t<!-- Custom Range Section with Inline Calendars -->\n\t\t\t\t<schmancy-surface type=\"container\" class=\"rounded-xl p-4 mb-6\">\n\t\t\t\t\t<div class=\"flex flex-col gap-4\">\n\t\t\t\t\t\t<div class=\"grid grid-cols-1 md:grid-cols-2 gap-4\">\n\t\t\t\t\t\t\t<!-- From Date Calendar -->\n\t\t\t\t\t\t\t<div class=\"flex flex-col gap-2\">\n\t\t\t\t\t\t\t\t<schmancy-typography type=\"label\" token=\"md\" class=\"text-surface-onVariant\">\n\t\t\t\t\t\t\t\t\t${this.dateFrom.label || 'From'}\n\t\t\t\t\t\t\t\t</schmancy-typography>\n\t\t\t\t\t\t\t\t<schmancy-input\n\t\t\t\t\t\t\t\t\ttype=\"${this.type}\"\n\t\t\t\t\t\t\t\t\t.value=\"${this.dateFrom.value}\"\n\t\t\t\t\t\t\t\t\tmin=\"${ifDefined(this.minDate)}\"\n\t\t\t\t\t\t\t\t\tmax=\"${ifDefined(this.maxDate)}\"\n\t\t\t\t\t\t\t\t\t@change=\"${this.handleFromDateChange.bind(this)}\"\n\t\t\t\t\t\t\t\t></schmancy-input>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<!-- To Date Calendar -->\n\t\t\t\t\t\t\t<div class=\"flex flex-col gap-2\">\n\t\t\t\t\t\t\t\t<schmancy-typography type=\"label\" token=\"md\" class=\"text-surface-onVariant\">\n\t\t\t\t\t\t\t\t\t${this.dateTo.label || 'To'}\n\t\t\t\t\t\t\t\t</schmancy-typography>\n\t\t\t\t\t\t\t\t<schmancy-input\n\t\t\t\t\t\t\t\t\ttype=\"${this.type}\"\n\t\t\t\t\t\t\t\t\t.value=\"${this.dateTo.value}\"\n\t\t\t\t\t\t\t\t\tmin=\"${ifDefined(this.dateFrom.value)}\"\n\t\t\t\t\t\t\t\t\tmax=\"${ifDefined(this.maxDate)}\"\n\t\t\t\t\t\t\t\t\t@change=\"${this.handleToDateChange.bind(this)}\"\n\t\t\t\t\t\t\t\t></schmancy-input>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\n\t\t\t\t\t\t<!-- Apply Button - Now at the bottom for logical flow -->\n\t\t\t\t\t\t<div class=\"flex justify-end mt-2\">\n\t\t\t\t\t\t\t<schmancy-button \n\t\t\t\t\t\t\t\tvariant=\"filled\" \n\t\t\t\t\t\t\t\t@click=\"${(e: Event) => this.applyManualDateSelection(e)}\"\n\t\t\t\t\t\t\t\t?disabled=\"${!this.dateFrom.value || !this.dateTo.value}\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tApply\n\t\t\t\t\t\t\t</schmancy-button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</schmancy-surface>\n\n\t\t\t\t<!-- Presets Section -->\n\t\t\t\t<div class=\"flex-1 overflow-y-auto overflow-x-hidden min-h-0\">\n\t\t\t\t\t<div class=\"grid grid-cols-2 md:grid-cols-5 gap-6\">\n\t\t\t\t\t\t${this.presetCategories.map(\n\t\t\t\t\t\t\tcategory => html`\n\t\t\t\t\t\t\t\t<div class=\"space-y-3\">\n\t\t\t\t\t\t\t\t\t<schmancy-typography type=\"title\" token=\"md\" class=\"text-surface-onVariant font-medium\">\n\t\t\t\t\t\t\t\t\t\t${category.name}\n\t\t\t\t\t\t\t\t\t</schmancy-typography>\n\t\t\t\t\t\t\t\t\t<div class=\"space-y-1\">\n\t\t\t\t\t\t\t\t\t\t${category.presets.map(\n\t\t\t\t\t\t\t\t\t\t\tpreset => html`\n\t\t\t\t\t\t\t\t\t\t\t\t<schmancy-button\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"${this.activePreset === preset.label ? 'filled' : 'text'}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"w-full justify-start text-left\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t@click=\"${(e: Event) => this.handlePresetSelection(preset, e)}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\taria-pressed=\"${this.activePreset === preset.label}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\taria-label=\"${preset.label}: ${preset.range.dateFrom} to ${preset.range.dateTo}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\ttitle=\"${preset.range.dateFrom} to ${preset.range.dateTo}\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"truncate\">${preset.label}</span>\n\t\t\t\t\t\t\t\t\t\t\t\t</schmancy-button>\n\t\t\t\t\t\t\t\t\t\t\t`,\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t`,\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`\n\t}\n\n\t/**\n\t * Announce messages to screen readers\n\t */\n\tprivate announceToScreenReader(message: string) {\n\t\tthis.announceMessage = message\n\t\t// Clear the message after announcement\n\t\ttimer(100)\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe(() => {\n\t\t\t\tthis.announceMessage = ''\n\t\t\t})\n\t}\n\n\n\trender() {\n\t\treturn html`\n\t\t\t<div class=\"relative ${this.disabled ? 'opacity-60 pointer-events-none' : ''}\">\n\t\t\t\t<!-- Screen reader announcements -->\n\t\t\t\t<div class=\"sr-only\" role=\"status\" aria-live=\"polite\" aria-atomic=\"true\">\n\t\t\t\t\t${this.announceMessage}\n\t\t\t\t</div>\n\n\t\t\t\t<!-- Trigger using the preferred schmancy-grid pattern -->\n\t\t\t\t<section @click=${(event: Event) => event.stopPropagation()} class=\"flex\" >\n\t\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\taria-label=\"Previous ${this.activePreset ? this.activePreset.toLowerCase() : 'date range'}\"\n\t\t\t\t\t\t\t@click=${(e: Event) => this.shiftDateRange(-1, e)}\n\t\t\t\t\t\t\t?disabled=${this.disabled || !this.dateFrom.value || !this.dateTo.value}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tarrow_left\n\t\t\t\t\t\t</schmancy-icon-button>\n\n\t\t\t\t\t\t<schmancy-button\n\t\t\t\t\t\t\tclass=\"w-max\"\n\t\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\taria-haspopup=\"menu\"\n\t\t\t\t\t\t\taria-expanded=${this.isOpen}\n\t\t\t\t\t\t\taria-label=\"Select date range. Current: ${this.selectedDateRange || 'No date selected'}\"\n\t\t\t\t\t\t\t@click=${(e: Event) => this.toggleDropdown(e)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t${this.selectedDateRange || this.placeholder}\n\t\t\t\t\t\t</schmancy-button>\n\n\t\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\taria-label=\"Next ${this.activePreset ? this.activePreset.toLowerCase() : 'date range'}\"\n\t\t\t\t\t\t\t@click=${(e: Event) => this.shiftDateRange(1, e)}\n\t\t\t\t\t\t\t?disabled=${this.disabled || !this.dateFrom.value || !this.dateTo.value}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tarrow_right\n\t\t\t\t\t\t</schmancy-icon-button>\n\t\t\t\t</section>\n\t\t\t</div>\n\t\t`\n\t}\n}"],"names":["t","e","n","r","i","s","u","a","o","c","f","h","d","l","$","y","M","name","weekdays","split","months","ordinal","m","String","length","Array","join","v","z","utcOffset","Math","abs","floor","date","year","month","clone","add","ceil","p","w","D","ms","Q","toLowerCase","replace","g","S","_","O","args","arguments","b","locale","$L","utc","$u","x","$x","$offset","this","parse","prototype","$d","Date","NaN","test","match","substring","UTC","init","$y","getFullYear","$M","getMonth","$D","getDate","$W","getDay","$H","getHours","$m","getMinutes","$s","getSeconds","$ms","getMilliseconds","$utils","isValid","toString","isSame","startOf","endOf","isAfter","isBefore","$g","set","unix","valueOf","getTime","toDate","apply","slice","$locale","weekStart","$set","min","daysInMonth","get","Number","round","subtract","format","invalidDate","meridiem","monthsShort","weekdaysMin","weekdaysShort","getTimezoneOffset","diff","toJSON","toISOString","toUTCString","k","forEach","extend","$i","isDayjs","en","Ls","quarter","bind","enforceDateFormat","dateString","expectedFormat","parsedDate","dayjs","validateInitialDateRange","dateFrom","dateTo","formattedDateFrom","formattedDateTo","generateLastNDaysPresets","days","map","label","range","step","generateLastNWeeksPresets","weeks","generateLastNMonthsPresets","generateLastNQuartersPresets","quarters","adjustQuarter","amount","direction","newQuarter","yearAdjustment","newDate","targetDay","quarterOfYear","SchmancyDateRange","$LitElement","super","type","value","customPresets","disabled","required","placeholder","clearable","isOpen","selectedDateRange","activePreset","announceMessage","isMobile","presetRanges","presetCategories","memoizedPresets","Map","connectedCallback","initPresetRanges","checkMobileView","dateFormat","getDateFormat","validatedRange","updateSelectedDateRange","now","setupEventHandlers","fromEvent","document","pipe","takeUntil","disconnecting","subscribe","event","handleKeyboardNavigation","window","debounceTime","disconnectedCallback","changedProps","updated","has","cacheKey","JSON","stringify","cached","category","push","presets","includeTime","categories","customCategory","preset","find","checkAndUpdateActivePreset","fromValue","toValue","fromDate","fromTime","toTime","announceToScreenReader","dispatchEvent","CustomEvent","detail","bubbles","composed","stopPropagation","setDateRange","$dialog","dismiss","closeDropdown","openDropdown","dialogContent","createDialogContent","component","title","width","hideActions","then","dir","unit","activePresetStep","rangeDurationInDays","rangeType","isFullMonth","isFullQuarter","isFullYear","isFullWeek","day","newFromDate","newToDate","rangeDurationInHours","key","target","contains","shiftDateRange","preventDefault","ctrlKey","currentFrom","currentTo","monthStart","daysDiff","monthEnd","matchingPreset","innerWidth","input","html","ifDefined","minDate","maxDate","handleFromDateChange","handleToDateChange","applyManualDateSelection","handlePresetSelection","message","timer","render","toggleDropdown","__decorateClass","property","Object","Boolean","state","customElement"],"mappings":"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","x_google_ignoreList":[0,1]}