@mhmo91/schmancy 0.2.112 → 0.2.114

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 (258) hide show
  1. package/dist/{animated-text-CrZbI_E_.cjs → animated-text-B576YswO.cjs} +2 -2
  2. package/dist/{animated-text-CrZbI_E_.cjs.map → animated-text-B576YswO.cjs.map} +1 -1
  3. package/dist/{animated-text-CmvbdVJF.js → animated-text-BuRbVM-X.js} +3 -3
  4. package/dist/{animated-text-CmvbdVJF.js.map → animated-text-BuRbVM-X.js.map} +1 -1
  5. package/dist/animated-text.cjs +1 -1
  6. package/dist/animated-text.js +1 -1
  7. package/dist/area.cjs +1 -1
  8. package/dist/{area.component-D5Fb0wFU.cjs → area.component-BFj0Dvfb.cjs} +2 -2
  9. package/dist/{area.component-D5Fb0wFU.cjs.map → area.component-BFj0Dvfb.cjs.map} +1 -1
  10. package/dist/{area.component-Dzl8Iw9I.js → area.component-Bo5aB8BH.js} +3 -3
  11. package/dist/{area.component-Dzl8Iw9I.js.map → area.component-Bo5aB8BH.js.map} +1 -1
  12. package/dist/area.js +1 -1
  13. package/dist/{autocomplete-Bsx63fvs.cjs → autocomplete-BU0sC_l-.cjs} +2 -2
  14. package/dist/autocomplete-BU0sC_l-.cjs.map +1 -0
  15. package/dist/{autocomplete-C7d1TghO.js → autocomplete-u76bIDqg.js} +30 -30
  16. package/dist/autocomplete-u76bIDqg.js.map +1 -0
  17. package/dist/autocomplete.cjs +1 -1
  18. package/dist/autocomplete.js +1 -1
  19. package/dist/busy.cjs +1 -1
  20. package/dist/busy.js +1 -1
  21. package/dist/button.cjs +1 -1
  22. package/dist/button.js +1 -1
  23. package/dist/card.cjs +1 -1
  24. package/dist/card.js +1 -1
  25. package/dist/{checkbox-Ddc3Nogy.js → checkbox-DQYRlKod.js} +2 -2
  26. package/dist/{checkbox-Ddc3Nogy.js.map → checkbox-DQYRlKod.js.map} +1 -1
  27. package/dist/{checkbox-D5Zw8R82.cjs → checkbox-FM06WS9G.cjs} +2 -2
  28. package/dist/{checkbox-D5Zw8R82.cjs.map → checkbox-FM06WS9G.cjs.map} +1 -1
  29. package/dist/checkbox.cjs +1 -1
  30. package/dist/checkbox.js +1 -1
  31. package/dist/{chips-D5ADFFCU.cjs → chips-CJZbtp-O.cjs} +2 -2
  32. package/dist/{chips-D5ADFFCU.cjs.map → chips-CJZbtp-O.cjs.map} +1 -1
  33. package/dist/{chips-Bm_VYwr5.js → chips-DTDFQDv-.js} +14 -14
  34. package/dist/{chips-Bm_VYwr5.js.map → chips-DTDFQDv-.js.map} +1 -1
  35. package/dist/chips.cjs +1 -1
  36. package/dist/chips.js +1 -1
  37. package/dist/components.cjs +1 -1
  38. package/dist/components.js +1 -1
  39. package/dist/content-drawer.cjs +1 -1
  40. package/dist/content-drawer.js +1 -1
  41. package/dist/date-range-CZiZR3OZ.js +447 -0
  42. package/dist/date-range-CZiZR3OZ.js.map +1 -0
  43. package/dist/date-range-FxAO_oqk.cjs +79 -0
  44. package/dist/date-range-FxAO_oqk.cjs.map +1 -0
  45. package/dist/date-range.cjs +1 -1
  46. package/dist/date-range.js +1 -1
  47. package/dist/{delay-DSBPkKzK.cjs → delay-Dzei5ynQ.cjs} +2 -2
  48. package/dist/{delay-DSBPkKzK.cjs.map → delay-Dzei5ynQ.cjs.map} +1 -1
  49. package/dist/{delay-Nnqipc2p.js → delay-gZOjfjX_.js} +2 -2
  50. package/dist/{delay-Nnqipc2p.js.map → delay-gZOjfjX_.js.map} +1 -1
  51. package/dist/delay.cjs +1 -1
  52. package/dist/delay.js +1 -1
  53. package/dist/{divider-C7JP4sSG.js → divider-B-JF8gre.js} +3 -3
  54. package/dist/{divider-C7JP4sSG.js.map → divider-B-JF8gre.js.map} +1 -1
  55. package/dist/{divider-CcTSaeAl.cjs → divider-nNk0E_jZ.cjs} +2 -2
  56. package/dist/{divider-CcTSaeAl.cjs.map → divider-nNk0E_jZ.cjs.map} +1 -1
  57. package/dist/divider.cjs +1 -1
  58. package/dist/divider.js +1 -1
  59. package/dist/extra.cjs +2 -0
  60. package/dist/extra.cjs.map +1 -0
  61. package/dist/extra.js +6 -0
  62. package/dist/extra.js.map +1 -0
  63. package/dist/{flex-P9rZBgGQ.js → flex-CieqpOUS.js} +2 -2
  64. package/dist/{flex-P9rZBgGQ.js.map → flex-CieqpOUS.js.map} +1 -1
  65. package/dist/{flex-B_mVCq18.cjs → flex-INEcbqBe.cjs} +2 -2
  66. package/dist/{flex-B_mVCq18.cjs.map → flex-INEcbqBe.cjs.map} +1 -1
  67. package/dist/{form-cxzC6GVM.cjs → form-CKMp4UzU.cjs} +2 -2
  68. package/dist/{form-cxzC6GVM.cjs.map → form-CKMp4UzU.cjs.map} +1 -1
  69. package/dist/{form-DPcVlChy.js → form-lcamXnkd.js} +2 -2
  70. package/dist/{form-DPcVlChy.js.map → form-lcamXnkd.js.map} +1 -1
  71. package/dist/form.cjs +1 -1
  72. package/dist/form.js +1 -1
  73. package/dist/{icon-BEKKW3-2.cjs → icon-BZqH7sp7.cjs} +2 -2
  74. package/dist/{icon-BEKKW3-2.cjs.map → icon-BZqH7sp7.cjs.map} +1 -1
  75. package/dist/{icon-BGWDEYcH.js → icon-CJrmUGTm.js} +3 -3
  76. package/dist/{icon-BGWDEYcH.js.map → icon-CJrmUGTm.js.map} +1 -1
  77. package/dist/{icon-button-DlC2-vLK.js → icon-button-BNn0qRfC.js} +3 -3
  78. package/dist/{icon-button-DlC2-vLK.js.map → icon-button-BNn0qRfC.js.map} +1 -1
  79. package/dist/{icon-button-ChOGnclR.cjs → icon-button-nMHz4MDw.cjs} +2 -2
  80. package/dist/{icon-button-ChOGnclR.cjs.map → icon-button-nMHz4MDw.cjs.map} +1 -1
  81. package/dist/icons.cjs +1 -1
  82. package/dist/icons.js +1 -1
  83. package/dist/index.cjs +1 -1
  84. package/dist/index.js +76 -73
  85. package/dist/index.js.map +1 -1
  86. package/dist/input-CTC1BTOb.cjs +51 -0
  87. package/dist/input-CTC1BTOb.cjs.map +1 -0
  88. package/dist/input-CZX1sxBe.js +135 -0
  89. package/dist/input-CZX1sxBe.js.map +1 -0
  90. package/dist/input.cjs +1 -1
  91. package/dist/input.js +1 -1
  92. package/dist/layout.cjs +1 -1
  93. package/dist/layout.js +1 -1
  94. package/dist/{list-Bzx4a2RJ.js → list-CjrF4M5H.js} +2 -2
  95. package/dist/{list-Bzx4a2RJ.js.map → list-CjrF4M5H.js.map} +1 -1
  96. package/dist/{list-D1kS-XDO.cjs → list-D4y-Mkap.cjs} +2 -2
  97. package/dist/{list-D1kS-XDO.cjs.map → list-D4y-Mkap.cjs.map} +1 -1
  98. package/dist/list.cjs +1 -1
  99. package/dist/list.js +1 -1
  100. package/dist/{litElement.mixin-Dx9_p_nV.js → litElement.mixin-NzkxESus.js} +2 -2
  101. package/dist/{litElement.mixin-Dx9_p_nV.js.map → litElement.mixin-NzkxESus.js.map} +1 -1
  102. package/dist/{litElement.mixin-PVEJyATw.cjs → litElement.mixin-djlKJ0lX.cjs} +2 -2
  103. package/dist/{litElement.mixin-PVEJyATw.cjs.map → litElement.mixin-djlKJ0lX.cjs.map} +1 -1
  104. package/dist/{menu-CzcGpZXF.js → menu-Cb5kUAvU.js} +3 -3
  105. package/dist/{menu-CzcGpZXF.js.map → menu-Cb5kUAvU.js.map} +1 -1
  106. package/dist/{menu-D30w9YPg.cjs → menu-DAtFS31a.cjs} +2 -2
  107. package/dist/{menu-D30w9YPg.cjs.map → menu-DAtFS31a.cjs.map} +1 -1
  108. package/dist/menu.cjs +1 -1
  109. package/dist/menu.js +1 -1
  110. package/dist/nav-drawer.cjs +1 -1
  111. package/dist/nav-drawer.js +1 -1
  112. package/dist/notification.cjs +1 -1
  113. package/dist/notification.js +1 -1
  114. package/dist/{option-igpxXgTd.js → option-CxalubCR.js} +19 -9
  115. package/dist/option-CxalubCR.js.map +1 -0
  116. package/dist/option-DJLLszO6.cjs +18 -0
  117. package/dist/option-DJLLszO6.cjs.map +1 -0
  118. package/dist/option.cjs +1 -1
  119. package/dist/option.js +1 -1
  120. package/dist/{outlet-DzAi4iKo.js → outlet-6HZp4fo1.js} +3 -3
  121. package/dist/outlet-6HZp4fo1.js.map +1 -0
  122. package/dist/{outlet-DqRiezsh.cjs → outlet-DofHDlGH.cjs} +3 -3
  123. package/dist/outlet-DofHDlGH.cjs.map +1 -0
  124. package/dist/{payment-card-form-IamvKqiN.cjs → payment-card-form-Bi3yNg4b.cjs} +2 -2
  125. package/dist/{payment-card-form-IamvKqiN.cjs.map → payment-card-form-Bi3yNg4b.cjs.map} +1 -1
  126. package/dist/{payment-card-form-CwqKB8Tm.js → payment-card-form-C8FxRlh4.js} +3 -3
  127. package/dist/{payment-card-form-CwqKB8Tm.js.map → payment-card-form-C8FxRlh4.js.map} +1 -1
  128. package/dist/{radio-group-zGJIFNCR.cjs → radio-group-A5QxSGOr.cjs} +2 -2
  129. package/dist/{radio-group-zGJIFNCR.cjs.map → radio-group-A5QxSGOr.cjs.map} +1 -1
  130. package/dist/{radio-group-C9UaGgCL.js → radio-group-BapuNl8y.js} +2 -2
  131. package/dist/{radio-group-C9UaGgCL.js.map → radio-group-BapuNl8y.js.map} +1 -1
  132. package/dist/radio-group.cjs +1 -1
  133. package/dist/radio-group.js +1 -1
  134. package/dist/rxjs-utils.js +4 -4
  135. package/dist/{select-5ob4WHTf.js → select-8AjN6LbM.js} +3 -3
  136. package/dist/{select-5ob4WHTf.js.map → select-8AjN6LbM.js.map} +1 -1
  137. package/dist/{select-B194j_5a.cjs → select-BdU6KcPX.cjs} +2 -2
  138. package/dist/{select-B194j_5a.cjs.map → select-BdU6KcPX.cjs.map} +1 -1
  139. package/dist/select.cjs +1 -1
  140. package/dist/select.js +1 -1
  141. package/dist/{sheet-CHFHgh29.cjs → sheet-CQFdHSwJ.cjs} +6 -6
  142. package/dist/sheet-CQFdHSwJ.cjs.map +1 -0
  143. package/dist/{sheet-C2RxblaX.js → sheet-xR13xD2A.js} +11 -11
  144. package/dist/sheet-xR13xD2A.js.map +1 -0
  145. package/dist/sheet.cjs +1 -1
  146. package/dist/sheet.js +1 -1
  147. package/dist/{slider-BgNoOOeQ.cjs → slider-B4OCBlQg.cjs} +2 -2
  148. package/dist/{slider-BgNoOOeQ.cjs.map → slider-B4OCBlQg.cjs.map} +1 -1
  149. package/dist/{slider-BOTY8Lhv.js → slider-BakU-Bdw.js} +3 -3
  150. package/dist/{slider-BOTY8Lhv.js.map → slider-BakU-Bdw.js.map} +1 -1
  151. package/dist/slider.cjs +1 -1
  152. package/dist/slider.js +1 -1
  153. package/dist/{spinner-Vwv-mKip.js → spinner-BDx3SZsl.js} +4 -4
  154. package/dist/spinner-BDx3SZsl.js.map +1 -0
  155. package/dist/{spinner-vBTOD2N0.cjs → spinner-C3VJtLgk.cjs} +3 -3
  156. package/dist/spinner-C3VJtLgk.cjs.map +1 -0
  157. package/dist/{surface-CryISDFd.js → surface-YiaJJQ5m.js} +2 -2
  158. package/dist/{surface-CryISDFd.js.map → surface-YiaJJQ5m.js.map} +1 -1
  159. package/dist/{surface-Csc8YLks.cjs → surface-kjOrb8TO.cjs} +2 -2
  160. package/dist/{surface-Csc8YLks.cjs.map → surface-kjOrb8TO.cjs.map} +1 -1
  161. package/dist/surface.cjs +1 -1
  162. package/dist/surface.js +1 -1
  163. package/dist/{table-DHHo5etf.cjs → table-BZV2dBD5.cjs} +2 -2
  164. package/dist/{table-DHHo5etf.cjs.map → table-BZV2dBD5.cjs.map} +1 -1
  165. package/dist/{table-DRL3oAjo.js → table-BguYeeBH.js} +2 -2
  166. package/dist/{table-DRL3oAjo.js.map → table-BguYeeBH.js.map} +1 -1
  167. package/dist/table.cjs +1 -1
  168. package/dist/table.js +1 -1
  169. package/dist/{tabs-group-BRVzKIRX.cjs → tabs-group-BZFBZ1_G.cjs} +2 -2
  170. package/dist/{tabs-group-BRVzKIRX.cjs.map → tabs-group-BZFBZ1_G.cjs.map} +1 -1
  171. package/dist/{tabs-group-BcXgpxUw.js → tabs-group-H3C6ZnQn.js} +2 -2
  172. package/dist/{tabs-group-BcXgpxUw.js.map → tabs-group-H3C6ZnQn.js.map} +1 -1
  173. package/dist/tabs.cjs +1 -1
  174. package/dist/tabs.js +1 -1
  175. package/dist/{tailwind.mixin-BM-bjRjT.cjs → tailwind.mixin-CBhPue3q.cjs} +2 -2
  176. package/dist/{tailwind.mixin-BM-bjRjT.cjs.map → tailwind.mixin-CBhPue3q.cjs.map} +1 -1
  177. package/dist/{tailwind.mixin-YEy_iITN.js → tailwind.mixin-DklgfhB4.js} +2 -2
  178. package/dist/{tailwind.mixin-YEy_iITN.js.map → tailwind.mixin-DklgfhB4.js.map} +1 -1
  179. package/dist/teleport.cjs +1 -1
  180. package/dist/{teleport.component-BVj_m_Kl.cjs → teleport.component-C9Q1WHQe.cjs} +2 -2
  181. package/dist/{teleport.component-BVj_m_Kl.cjs.map → teleport.component-C9Q1WHQe.cjs.map} +1 -1
  182. package/dist/{teleport.component-K6cmr5Tr.js → teleport.component-DY1Q8ilK.js} +40 -39
  183. package/dist/{teleport.component-K6cmr5Tr.js.map → teleport.component-DY1Q8ilK.js.map} +1 -1
  184. package/dist/teleport.js +1 -1
  185. package/dist/{textarea-CUi2u7J7.cjs → textarea-BCWPb0Sn.cjs} +2 -2
  186. package/dist/{textarea-CUi2u7J7.cjs.map → textarea-BCWPb0Sn.cjs.map} +1 -1
  187. package/dist/{textarea-BzI6HMKy.js → textarea-D7bTMerW.js} +2 -2
  188. package/dist/{textarea-BzI6HMKy.js.map → textarea-D7bTMerW.js.map} +1 -1
  189. package/dist/textarea.cjs +1 -1
  190. package/dist/textarea.js +1 -1
  191. package/dist/{theme-button-DhD5GksO.js → theme-button-CP2_aq__.js} +2 -2
  192. package/dist/{theme-button-DhD5GksO.js.map → theme-button-CP2_aq__.js.map} +1 -1
  193. package/dist/{theme-button-BJe1x0Cs.cjs → theme-button-DHuXg7vh.cjs} +2 -2
  194. package/dist/{theme-button-BJe1x0Cs.cjs.map → theme-button-DHuXg7vh.cjs.map} +1 -1
  195. package/dist/theme-button.cjs +1 -1
  196. package/dist/theme-button.js +1 -1
  197. package/dist/theme.cjs +1 -1
  198. package/dist/{theme.component-D4WBav-_.js → theme.component-BtBosXb1.js} +2 -2
  199. package/dist/{theme.component-D4WBav-_.js.map → theme.component-BtBosXb1.js.map} +1 -1
  200. package/dist/{theme.component-BI2OGjYG.cjs → theme.component-Ly2C_fQ8.cjs} +2 -2
  201. package/dist/{theme.component-BI2OGjYG.cjs.map → theme.component-Ly2C_fQ8.cjs.map} +1 -1
  202. package/dist/theme.js +1 -1
  203. package/dist/timezone-Cv2QSsl4.cjs +24 -0
  204. package/dist/timezone-Cv2QSsl4.cjs.map +1 -0
  205. package/dist/timezone-EDGZdfbO.js +67 -0
  206. package/dist/timezone-EDGZdfbO.js.map +1 -0
  207. package/dist/{tree-8ORo7bDg.cjs → tree-CG9B3uQP.cjs} +2 -2
  208. package/dist/{tree-8ORo7bDg.cjs.map → tree-CG9B3uQP.cjs.map} +1 -1
  209. package/dist/{tree-D42tswgB.js → tree-Y2B7yK7L.js} +2 -2
  210. package/dist/{tree-D42tswgB.js.map → tree-Y2B7yK7L.js.map} +1 -1
  211. package/dist/tree.cjs +1 -1
  212. package/dist/tree.js +1 -1
  213. package/dist/{typewriter-BwNXbsZp.js → typewriter-C1Ij3c--.js} +14 -14
  214. package/dist/{typewriter-BwNXbsZp.js.map → typewriter-C1Ij3c--.js.map} +1 -1
  215. package/dist/{typewriter-JuHIja1a.cjs → typewriter-DtWpV0Xd.cjs} +2 -2
  216. package/dist/{typewriter-JuHIja1a.cjs.map → typewriter-DtWpV0Xd.cjs.map} +1 -1
  217. package/dist/typewriter.cjs +1 -1
  218. package/dist/typewriter.js +1 -1
  219. package/dist/{typography-CaOb3D3z.js → typography-CSQByhJF.js} +2 -2
  220. package/dist/{typography-CaOb3D3z.js.map → typography-CSQByhJF.js.map} +1 -1
  221. package/dist/{typography-BMkQ3cH-.cjs → typography-D-a-z23R.cjs} +2 -2
  222. package/dist/{typography-BMkQ3cH-.cjs.map → typography-D-a-z23R.cjs.map} +1 -1
  223. package/dist/typography.cjs +1 -1
  224. package/dist/typography.js +1 -1
  225. package/package.json +2 -2
  226. package/types/src/date-range/date-range.d.ts +2 -2
  227. package/types/src/extra/countries/countries.d.ts +13 -0
  228. package/types/src/extra/countries/countries.data.d.ts +5 -0
  229. package/types/src/extra/countries/index.d.ts +2 -0
  230. package/types/src/extra/index.d.ts +2 -0
  231. package/types/src/extra/timezone/index.d.ts +2 -0
  232. package/types/src/extra/timezone/timezone.d.ts +13 -0
  233. package/types/src/extra/timezone/timezones.data.d.ts +7 -0
  234. package/types/src/index.d.ts +1 -1
  235. package/types/src/option/option.d.ts +1 -0
  236. package/dist/autocomplete-Bsx63fvs.cjs.map +0 -1
  237. package/dist/autocomplete-C7d1TghO.js.map +0 -1
  238. package/dist/data.cjs +0 -2
  239. package/dist/data.cjs.map +0 -1
  240. package/dist/data.js +0 -2
  241. package/dist/data.js.map +0 -1
  242. package/dist/date-range-CH-IKoMW.cjs +0 -72
  243. package/dist/date-range-CH-IKoMW.cjs.map +0 -1
  244. package/dist/date-range-LMnnBclq.js +0 -166
  245. package/dist/date-range-LMnnBclq.js.map +0 -1
  246. package/dist/input-C7C9t_rb.cjs +0 -51
  247. package/dist/input-C7C9t_rb.cjs.map +0 -1
  248. package/dist/input-CIRYUKIL.js +0 -135
  249. package/dist/input-CIRYUKIL.js.map +0 -1
  250. package/dist/option-igpxXgTd.js.map +0 -1
  251. package/dist/option-x_W6-_iT.cjs +0 -18
  252. package/dist/option-x_W6-_iT.cjs.map +0 -1
  253. package/dist/outlet-DqRiezsh.cjs.map +0 -1
  254. package/dist/outlet-DzAi4iKo.js.map +0 -1
  255. package/dist/sheet-C2RxblaX.js.map +0 -1
  256. package/dist/sheet-CHFHgh29.cjs.map +0 -1
  257. package/dist/spinner-Vwv-mKip.js.map +0 -1
  258. package/dist/spinner-vBTOD2N0.cjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"autocomplete-Bsx63fvs.cjs","sources":["../../../../.yarn/berry/cache/fastest-levenshtein-npm-1.0.16-192d328856-10c0.zip/node_modules/fastest-levenshtein/esm/mod.js","../src/autocomplete/autocomplete.ts"],"sourcesContent":["const peq = new Uint32Array(0x10000);\nconst myers_32 = (a, b) => {\n const n = a.length;\n const m = b.length;\n const lst = 1 << (n - 1);\n let pv = -1;\n let mv = 0;\n let sc = n;\n let i = n;\n while (i--) {\n peq[a.charCodeAt(i)] |= 1 << i;\n }\n for (i = 0; i < m; i++) {\n let eq = peq[b.charCodeAt(i)];\n const xv = eq | mv;\n eq |= ((eq & pv) + pv) ^ pv;\n mv |= ~(eq | pv);\n pv &= eq;\n if (mv & lst) {\n sc++;\n }\n if (pv & lst) {\n sc--;\n }\n mv = (mv << 1) | 1;\n pv = (pv << 1) | ~(xv | mv);\n mv &= xv;\n }\n i = n;\n while (i--) {\n peq[a.charCodeAt(i)] = 0;\n }\n return sc;\n};\nconst myers_x = (b, a) => {\n const n = a.length;\n const m = b.length;\n const mhc = [];\n const phc = [];\n const hsize = Math.ceil(n / 32);\n const vsize = Math.ceil(m / 32);\n for (let i = 0; i < hsize; i++) {\n phc[i] = -1;\n mhc[i] = 0;\n }\n let j = 0;\n for (; j < vsize - 1; j++) {\n let mv = 0;\n let pv = -1;\n const start = j * 32;\n const vlen = Math.min(32, m) + start;\n for (let k = start; k < vlen; k++) {\n peq[b.charCodeAt(k)] |= 1 << k;\n }\n for (let i = 0; i < n; i++) {\n const eq = peq[a.charCodeAt(i)];\n const pb = (phc[(i / 32) | 0] >>> i) & 1;\n const mb = (mhc[(i / 32) | 0] >>> i) & 1;\n const xv = eq | mv;\n const xh = ((((eq | mb) & pv) + pv) ^ pv) | eq | mb;\n let ph = mv | ~(xh | pv);\n let mh = pv & xh;\n if ((ph >>> 31) ^ pb) {\n phc[(i / 32) | 0] ^= 1 << i;\n }\n if ((mh >>> 31) ^ mb) {\n mhc[(i / 32) | 0] ^= 1 << i;\n }\n ph = (ph << 1) | pb;\n mh = (mh << 1) | mb;\n pv = mh | ~(xv | ph);\n mv = ph & xv;\n }\n for (let k = start; k < vlen; k++) {\n peq[b.charCodeAt(k)] = 0;\n }\n }\n let mv = 0;\n let pv = -1;\n const start = j * 32;\n const vlen = Math.min(32, m - start) + start;\n for (let k = start; k < vlen; k++) {\n peq[b.charCodeAt(k)] |= 1 << k;\n }\n let score = m;\n for (let i = 0; i < n; i++) {\n const eq = peq[a.charCodeAt(i)];\n const pb = (phc[(i / 32) | 0] >>> i) & 1;\n const mb = (mhc[(i / 32) | 0] >>> i) & 1;\n const xv = eq | mv;\n const xh = ((((eq | mb) & pv) + pv) ^ pv) | eq | mb;\n let ph = mv | ~(xh | pv);\n let mh = pv & xh;\n score += (ph >>> (m - 1)) & 1;\n score -= (mh >>> (m - 1)) & 1;\n if ((ph >>> 31) ^ pb) {\n phc[(i / 32) | 0] ^= 1 << i;\n }\n if ((mh >>> 31) ^ mb) {\n mhc[(i / 32) | 0] ^= 1 << i;\n }\n ph = (ph << 1) | pb;\n mh = (mh << 1) | mb;\n pv = mh | ~(xv | ph);\n mv = ph & xv;\n }\n for (let k = start; k < vlen; k++) {\n peq[b.charCodeAt(k)] = 0;\n }\n return score;\n};\nconst distance = (a, b) => {\n if (a.length < b.length) {\n const tmp = b;\n b = a;\n a = tmp;\n }\n if (b.length === 0) {\n return a.length;\n }\n if (a.length <= 32) {\n return myers_32(a, b);\n }\n return myers_x(a, b);\n};\nconst closest = (str, arr) => {\n let min_distance = Infinity;\n let min_index = 0;\n for (let i = 0; i < arr.length; i++) {\n const dist = distance(str, arr[i]);\n if (dist < min_distance) {\n min_distance = dist;\n min_index = i;\n }\n }\n return arr[min_index];\n};\nexport { closest, distance };\n","import {\n\tcomputePosition,\n\tflip,\n\toffset,\n\tshift,\n\tsize, // <-- NEW\n} from '@floating-ui/dom'\nimport { $LitElement } from '@mixins/index'\nimport { color } from '@schmancy/directives'\nimport SchmancyInput from '@schmancy/input/input'\nimport SchmancyOption from '@schmancy/option/option'\nimport { SchmancyTheme } from '@schmancy/theme/theme.interface'\nimport { distance } from 'fastest-levenshtein'\nimport { html } from 'lit'\nimport { customElement, eventOptions, property, query, queryAssignedElements } from 'lit/decorators.js'\nimport { createRef, ref } from 'lit/directives/ref.js'\nimport { from, fromEvent, Subject } from 'rxjs'\nimport { distinctUntilChanged, filter, switchMap, takeUntil, tap } from 'rxjs/operators'\nimport style from './autocomplete.scss?inline'\n\nimport type { SchmancyInputInputEvent } from '@schmancy/input/input'\n\nexport type SchmancyAutocompleteChangeEvent = CustomEvent<{\n\tvalue: string | string[]\n}>\n\n@customElement('schmancy-autocomplete')\nexport default class SchmancyAutocomplete extends $LitElement(style) {\n\t// Public API properties\n\t@property({ type: Boolean }) required = false\n\t@property({ type: String }) placeholder = ''\n\t@property({ type: String, reflect: true }) value = ''\n\t@property({ type: String, reflect: true }) label = ''\n\t/**\n\t * ⚠️ If you still want an explicit fallback for maximum dropdown height,\n\t * you can keep this, but the `size()` middleware will already set a\n\t * dynamic max-height based on viewport space.\n\t */\n\t@property({ type: String }) maxHeight = '25vh'\n\t@property({ type: Boolean }) multi = false\n\n\t/** Direct reference to the <input> inside <schmancy-input> */\n\tinputRef = createRef<HTMLInputElement>()\n\n\t// Query selectors for elements in the shadow DOM\n\t@query('#options') private optionsContainer!: HTMLUListElement\n\t@query('#empty') private empty!: HTMLLIElement\n\t@query('schmancy-input') private input!: SchmancyInput\n\t@queryAssignedElements({ flatten: true }) private options!: SchmancyOption[]\n\n\t// Subject for search term changes\n\tprivate readonly searchTerm$ = new Subject<string>()\n\n\t// iOS scroll-blocking logic\n\tprivate startY = 0\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\n\t\t// Ensure the component has an ID (used for generating option IDs)\n\t\tif (!this.id) {\n\t\t\tthis.id = `schmancy-autocomplete-${Math.random().toString(36).substr(2, 9)}`\n\t\t}\n\n\t\t// Listen for keydown events on the input to enable keyboard navigation.\n\t\t// (If your <schmancy-input> is a custom element, ensure it re–forwards keyboard events\n\t\t// from its internal <input> or use a @keydown listener on it in the template.)\n\t\tfromEvent(this, 'keydown')\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe({\n\t\t\t\tnext: (e: KeyboardEvent) => {\n\t\t\t\t\tthis.handleKeyDown(e)\n\t\t\t\t},\n\t\t\t})\n\t\t// 1) Search filtering logic\n\t\tthis.searchTerm$\n\t\t\t.pipe(\n\t\t\t\tdistinctUntilChanged(),\n\t\t\t\ttap(term => {\n\t\t\t\t\tconst searchTerm = term.trim().toLowerCase()\n\n\t\t\t\t\t// Filter options using Levenshtein distance\n\t\t\t\t\tconst matches = this.options\n\t\t\t\t\t\t.map(option => {\n\t\t\t\t\t\t\tconst optionText = option.label.toLowerCase()\n\t\t\t\t\t\t\tconst levDistance = distance(searchTerm, optionText)\n\t\t\t\t\t\t\treturn { option, levDistance }\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.filter(({ option, levDistance }) => {\n\t\t\t\t\t\t\t// For short search terms, be lenient\n\t\t\t\t\t\t\tif (searchTerm.length < 3) return true\n\t\t\t\t\t\t\treturn levDistance <= option.label.toLowerCase().length - searchTerm.length\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.sort((a, b) => a.levDistance - b.levDistance)\n\n\t\t\t\t\t// Show/hide options based on filtering\n\t\t\t\t\tthis.options.forEach(o => (o.hidden = true))\n\t\t\t\t\tfor (const { option } of matches) {\n\t\t\t\t\t\toption.hidden = false\n\t\t\t\t\t}\n\n\t\t\t\t\t// \"No results found\"\n\t\t\t\t\tthis.empty.hidden = matches.length > 0\n\n\t\t\t\t\t// Update accessibility attributes on options\n\t\t\t\t\tthis.setupOptionsAccessibility()\n\n\t\t\t\t\tthis.requestUpdate()\n\t\t\t\t}),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe(() => {\n\t\t\t\t// Show dropdown on each new search term\n\t\t\t\tthis.showOptions()\n\t\t\t})\n\n\t\t// 2) Focus-out animation (fade out)\n\t\tfromEvent<FocusEvent>(this, 'focusout')\n\t\t\t.pipe(\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t\tfilter(e => (e.relatedTarget as Element)?.tagName !== 'SCHMANCY-OPTION'),\n\t\t\t\tswitchMap(() => {\n\t\t\t\t\t// reset options to show all\n\t\t\t\t\tthis.options.forEach(o => (o.hidden = false))\n\t\t\t\t\tconst animation = this.optionsContainer.animate([{ opacity: 1 }, { opacity: 0 }], {\n\t\t\t\t\t\tduration: 150,\n\t\t\t\t\t\teasing: 'cubic-bezier(0.5, 0.01, 0.25, 1)',\n\t\t\t\t\t})\n\t\t\t\t\treturn from(\n\t\t\t\t\t\tnew Promise<void>(resolve => {\n\t\t\t\t\t\t\tanimation.onfinish = () => {\n\t\t\t\t\t\t\t\tthis.optionsContainer.style.display = 'none'\n\t\t\t\t\t\t\t\tthis.optionsContainer.style.opacity = '1'\n\t\t\t\t\t\t\t\tresolve()\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}),\n\t\t\t\t\t)\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.subscribe({\n\t\t\t\tnext: () => {\n\t\t\t\t\t// After closing, resync the input’s value\n\t\t\t\t\tif (this.multi) {\n\t\t\t\t\t\tconst selected = this.options.filter(o => o.selected).map(o => o.label)\n\t\t\t\t\t\tthis.input.value = selected.join(', ')\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.input.value = this.options.find(o => o.value === this.value)?.label ?? ''\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t})\n\t}\n\n\tfirstUpdated() {\n\t\tthis.updateInputValue()\n\t}\n\n\tprotected updated(changedProps: Map<string | number | symbol, unknown>) {\n\t\tsuper.updated(changedProps)\n\t\tif (changedProps.has('value')) {\n\t\t\tthis.syncSelectionFromValue()\n\t\t\tthis.updateInputValue()\n\t\t}\n\t}\n\n\t/**\n\t * When the <slot> changes (i.e. options are added/removed), update the following:\n\t * 1. Show or hide the “No results found” option.\n\t * 2. Sync the selection state.\n\t * 3. Setup accessibility attributes on the options.\n\t */\n\tprivate handleSlotChange() {\n\t\tthis.empty.hidden = this.options.some(option => !option.hidden)\n\t\tthis.syncSelectionFromValue()\n\t\tthis.updateInputValue()\n\t\tthis.setupOptionsAccessibility()\n\t}\n\n\t/**\n\t * Loops through assigned options and sets accessibility attributes:\n\t * - role=\"option\"\n\t * - A unique ID (if not already set)\n\t * - tabindex=\"-1\"\n\t * - aria-selected (based on whether the option is selected)\n\t */\n\tprivate setupOptionsAccessibility() {\n\t\tthis.options.forEach((option, index) => {\n\t\t\toption.setAttribute('role', 'option')\n\t\t\tif (!option.id) {\n\t\t\t\toption.id = `${this.id}-option-${index}`\n\t\t\t}\n\t\t\toption.tabIndex = -1\n\t\t\toption.setAttribute('aria-selected', String(this.multi ? option.selected : option.value === this.value))\n\t\t})\n\t}\n\n\tprivate syncSelectionFromValue() {\n\t\tif (this.multi) {\n\t\t\tconst values = this.value\n\t\t\t\t.split(',')\n\t\t\t\t.map(v => v.trim())\n\t\t\t\t.filter(Boolean)\n\t\t\tthis.options.forEach(o => {\n\t\t\t\to.selected = values.includes(o.value)\n\t\t\t})\n\t\t} else {\n\t\t\tthis.options.forEach(o => {\n\t\t\t\to.selected = o.value === this.value\n\t\t\t})\n\t\t}\n\t}\n\n\tprivate updateInputValue() {\n\t\trequestAnimationFrame(() => {\n\t\t\tif (this.multi) {\n\t\t\t\tconst selected = this.options.filter(o => o.selected).map(o => o.label)\n\t\t\t\tthis.input.value = selected.join(', ')\n\t\t\t} else {\n\t\t\t\tconst found = this.options.find(o => o.value === this.value)?.label\n\t\t\t\tthis.input.value = found ?? ''\n\t\t\t}\n\t\t})\n\t}\n\n\t/**\n\t * MAIN: Show the dropdown. Uses Floating UI to position and size the options container.\n\t */\n\tprivate async showOptions() {\n\t\tthis.optionsContainer.removeAttribute('hidden')\n\t\tthis.optionsContainer.style.display = 'block'\n\n\t\tconst { x, y } = await computePosition(this.input, this.optionsContainer, {\n\t\t\tplacement: 'bottom-start',\n\t\t\tmiddleware: [\n\t\t\t\toffset(5),\n\t\t\t\tflip(),\n\t\t\t\tshift({ padding: 5 }),\n\t\t\t\t// Let the floating element fill available space, but be at least as wide as the input.\n\t\t\t\tsize({\n\t\t\t\t\tapply({ availableWidth, availableHeight, elements, rects }) {\n\t\t\t\t\t\t// At least match input width\n\t\t\t\t\t\tconst referenceWidth = rects.reference.width\n\t\t\t\t\t\telements.floating.style.minWidth = `${referenceWidth}px`\n\t\t\t\t\t\t// Cap to available viewport space\n\t\t\t\t\t\telements.floating.style.maxWidth = `${availableWidth}px`\n\t\t\t\t\t\telements.floating.style.maxHeight = `${availableHeight}px`\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t],\n\t\t})\n\n\t\tObject.assign(this.optionsContainer.style, {\n\t\t\tleft: `${x}px`,\n\t\t\ttop: `${y}px`,\n\t\t\tposition: 'absolute',\n\t\t\tzIndex: '9999',\n\t\t\toverflowY: 'auto',\n\t\t\t// You can still use maxHeight as a fallback if desired:\n\t\t\t// maxHeight: this.maxHeight,\n\t\t})\n\t}\n\n\tprivate hideOptions() {\n\t\tthis.optionsContainer?.setAttribute('hidden', 'true')\n\t\tif (this.optionsContainer) {\n\t\t\tthis.optionsContainer.style.display = 'none'\n\t\t}\n\t}\n\n\tprivate handleInputChange(event: SchmancyInputInputEvent) {\n\t\tevent.preventDefault()\n\t\tevent.stopPropagation()\n\t\tconst term = event.detail.value\n\t\tthis.searchTerm$.next(term)\n\t}\n\n\t@eventOptions({ passive: true })\n\tprivate handleOptionClick(value: string) {\n\t\tif (this.multi) {\n\t\t\tconst option = this.options.find(o => o.value === value)\n\t\t\tif (option) option.selected = !option.selected\n\t\t\tconst selectedValues = this.options.filter(o => o.selected).map(o => o.value)\n\t\t\tthis.value = selectedValues.join(',')\n\t\t\tthis.updateInputValue()\n\t\t\tthis.dispatchEvent(\n\t\t\t\tnew CustomEvent<SchmancyAutocompleteChangeEvent['detail']>('change', {\n\t\t\t\t\tdetail: { value: selectedValues },\n\t\t\t\t\tbubbles: true,\n\t\t\t\t\tcomposed: true,\n\t\t\t\t}),\n\t\t\t)\n\t\t} else {\n\t\t\tthis.hideOptions()\n\t\t\tthis.value = value\n\t\t\tthis.updateInputValue()\n\t\t\tthis.dispatchEvent(\n\t\t\t\tnew CustomEvent<SchmancyAutocompleteChangeEvent['detail']>('change', {\n\t\t\t\t\tdetail: { value },\n\t\t\t\t\tbubbles: true,\n\t\t\t\t\tcomposed: true,\n\t\t\t\t}),\n\t\t\t)\n\t\t}\n\t}\n\n\tpublic checkValidity() {\n\t\treturn this.multi ? this.options.some(o => o.selected) : Boolean(this.value)\n\t}\n\n\tpublic reportValidity() {\n\t\treturn this.inputRef.value?.reportValidity()\n\t}\n\n\tprivate handleTouchStart(event: TouchEvent) {\n\t\tthis.startY = event.touches?.[0]?.clientY ?? 0\n\t}\n\n\tprivate preventScroll(event: TouchEvent) {\n\t\tconst target = event.target as HTMLElement\n\t\tif (!this.optionsContainer.contains(target)) return\n\n\t\tconst scrollTop = this.optionsContainer.scrollTop\n\t\tconst scrollHeight = this.optionsContainer.scrollHeight\n\t\tconst offsetHeight = this.optionsContainer.offsetHeight\n\t\tconst contentHeight = scrollHeight - offsetHeight\n\n\t\tconst currentY = event.touches?.[0]?.clientY ?? 0\n\t\tif ((scrollTop <= 0 && currentY > this.startY) || (scrollTop >= contentHeight && currentY < this.startY)) {\n\t\t\tevent.preventDefault()\n\t\t}\n\t}\n\n\t/**\n\t * Keyboard navigation for the autocomplete.\n\t * – When the dropdown is closed, ArrowDown (or Enter/Space) opens it.\n\t * – When open, ArrowDown/ArrowUp move focus between options (which must have role=\"option\").\n\t * – Enter or Space selects the active option.\n\t * – Escape (or Tab) hides the dropdown.\n\t */\n\tprivate handleKeyDown = (e: KeyboardEvent) => {\n\t\t// Get the visible options (i.e. those not hidden)\n\t\tconst options = this.options.filter(o => !o.hidden)\n\n\t\t// If the dropdown is closed, open it on Enter, Space, or ArrowDown\n\t\tif (this.optionsContainer.hasAttribute('hidden')) {\n\t\t\tif (['Enter', ' ', 'ArrowDown'].includes(e.key)) {\n\t\t\t\te.preventDefault()\n\t\t\t\tthis.showOptions().then(() => {\n\t\t\t\t\tif (options.length > 0) {\n\t\t\t\t\t\tthis.focusOption(options, 0)\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\t\t\treturn\n\t\t}\n\n\t\t// Dropdown is open; determine the currently focused option\n\t\tlet currentIndex = options.findIndex(o => o.matches(':focus'))\n\t\tif (currentIndex === -1) {\n\t\t\t// If no option is focused, default to the first\n\t\t\tcurrentIndex = 0\n\t\t}\n\n\t\tswitch (e.key) {\n\t\t\tcase 'Escape':\n\t\t\t\te.preventDefault()\n\t\t\t\tthis.hideOptions()\n\t\t\t\tthis.input.focus()\n\t\t\t\tbreak\n\t\t\tcase 'ArrowDown':\n\t\t\t\te.preventDefault()\n\t\t\t\tthis.focusOption(options, Math.min(currentIndex + 1, options.length - 1))\n\t\t\t\tbreak\n\t\t\tcase 'ArrowUp':\n\t\t\t\te.preventDefault()\n\t\t\t\tthis.focusOption(options, Math.max(currentIndex - 1, 0))\n\t\t\t\tbreak\n\t\t\tcase 'Enter':\n\t\t\tcase ' ':\n\t\t\t\te.preventDefault()\n\t\t\t\tif (options[currentIndex]) {\n\t\t\t\t\t// Assume the option's value is stored in either \"data-value\" or \"value\" attribute.\n\t\t\t\t\tconst value = options[currentIndex].getAttribute('data-value') || options[currentIndex].getAttribute('value')\n\t\t\t\t\tif (value) {\n\t\t\t\t\t\tthis.handleOptionClick(value)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\tcase 'Tab':\n\t\t\t\t// Close the dropdown on Tab (as done in the select component)\n\t\t\t\tthis.hideOptions()\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\tbreak\n\t\t}\n\t}\n\n\t/**\n\t * Helper to focus an option by index and update the combobox’s aria-activedescendant.\n\t */\n\tprivate focusOption(options: HTMLElement[], index: number) {\n\t\tconst option = options[index]\n\t\tif (option) {\n\t\t\toption.focus()\n\t\t\t// Update the input's aria-activedescendant to match the newly focused option.\n\t\t\tthis.input.setAttribute('aria-activedescendant', option.id)\n\t\t}\n\t}\n\trender() {\n\t\t// Determine whether the dropdown is open based on the hidden attribute.\n\t\tconst isOpen = !this.optionsContainer?.hasAttribute('hidden')\n\t\treturn html`\n\t\t\t<div class=\"relative\">\n\t\t\t\t<!-- The trigger slot (if any) overrides the default SchmancyInput -->\n\t\t\t\t<slot name=\"trigger\">\n\t\t\t\t\t<schmancy-input\n\t\t\t\t\t\t${ref(this.inputRef)}\n\t\t\t\t\t\tid=\"input\"\n\t\t\t\t\t\tclass=\"w-full\"\n\t\t\t\t\t\t.label=${this.label}\n\t\t\t\t\t\t.placeholder=${this.placeholder}\n\t\t\t\t\t\t.required=${this.required}\n\t\t\t\t\t\ttype=\"search\"\n\t\t\t\t\t\tinputmode=\"text\"\n\t\t\t\t\t\tautocomplete=\"off\"\n\t\t\t\t\t\tclickable\n\t\t\t\t\t\trole=\"combobox\"\n\t\t\t\t\t\taria-autocomplete=\"list\"\n\t\t\t\t\t\taria-haspopup=\"listbox\"\n\t\t\t\t\t\taria-controls=\"options\"\n\t\t\t\t\t\taria-expanded=${isOpen}\n\t\t\t\t\t\t@focus=${() => this.showOptions()}\n\t\t\t\t\t\t@change=${this.handleInputChange}\n\t\t\t\t\t>\n\t\t\t\t\t</schmancy-input>\n\t\t\t\t</slot>\n\n\t\t\t\t<ul\n\t\t\t\t\tid=\"options\"\n\t\t\t\t\ttabindex=\"-1\"\n\t\t\t\t\tclass=\"absolute z-30 mt-1 w-full overflow-auto rounded-md shadow-sm\"\n\t\t\t\t\trole=\"listbox\"\n\t\t\t\t\taria-multiselectable=${this.multi ? 'true' : 'false'}\n\t\t\t\t\thidden\n\t\t\t\t\t@click=${(e: Event) => {\n\t\t\t\t\t\t// Each <schmancy-option> should dispatch a CustomEvent('click', { detail: { value } })\n\t\t\t\t\t\tconst detailVal = (e as CustomEvent).detail?.value\n\t\t\t\t\t\tif (detailVal) this.handleOptionClick(detailVal)\n\t\t\t\t\t}}\n\t\t\t\t\t@touchstart=${this.handleTouchStart}\n\t\t\t\t\t@touchmove=${this.preventScroll}\n\t\t\t\t\t${color({ bgColor: SchmancyTheme.sys.color.surface.container })}\n\t\t\t\t\t@slotchange=${this.handleSlotChange}\n\t\t\t\t>\n\t\t\t\t\t<!-- \"No results\" option -->\n\t\t\t\t\t<li id=\"empty\" tabindex=\"-1\">\n\t\t\t\t\t\t<schmancy-typography type=\"label\">No results found</schmancy-typography>\n\t\t\t\t\t</li>\n\t\t\t\t\t<!-- Slot for the <schmancy-option> elements -->\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</ul>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-autocomplete': SchmancyAutocomplete\n\t}\n}\n"],"names":["peq","Uint32Array","distance","a","b","length","tmp","n","m","lst","pv","mv","sc","i","charCodeAt","eq","xv","mhc","phc","hsize","Math","ceil","vsize","j","start","vlen","min","k","pb","mb","xh","ph","mh","score","SchmancyAutocomplete","$LitElement","constructor","super","arguments","this","required","placeholder","value","label","maxHeight","multi","inputRef","createRef","searchTerm$","Subject","startY","handleKeyDown","e","options","filter","o","hidden","optionsContainer","hasAttribute","includes","key","preventDefault","showOptions","then","focusOption","currentIndex","findIndex","matches","hideOptions","input","focus","max","getAttribute","handleOptionClick","connectedCallback","id","random","toString","substr","fromEvent","pipe","takeUntil","disconnecting","subscribe","next","distinctUntilChanged","tap","term","searchTerm","trim","toLowerCase","map","option","optionText","levDistance","sort","forEach","empty","setupOptionsAccessibility","requestUpdate","relatedTarget","tagName","switchMap","animation","animate","opacity","duration","easing","from","Promise","resolve","onfinish","style","display","selected","join","find","updateInputValue","changedProps","updated","has","syncSelectionFromValue","some","index","setAttribute","tabIndex","String","values","split","v","Boolean","requestAnimationFrame","found","removeAttribute","x","y","computePosition","placement","middleware","offset","flip","shift","padding","size","apply","availableWidth","availableHeight","elements","rects","referenceWidth","reference","width","floating","minWidth","maxWidth","Object","assign","left","top","position","zIndex","overflowY","event","stopPropagation","detail","selectedValues","dispatchEvent","CustomEvent","bubbles","composed","reportValidity","touches","clientY","target","contains","scrollTop","contentHeight","scrollHeight","offsetHeight","currentY","isOpen","html","ref","handleInputChange","detailVal","handleTouchStart","preventScroll","color","bgColor","SchmancyTheme","sys","surface","container","handleSlotChange","__decorateClass","property","type","prototype","reflect","query","queryAssignedElements","flatten","eventOptions","passive","customElement"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"autocomplete-C7d1TghO.js","sources":["../../../../.yarn/berry/cache/fastest-levenshtein-npm-1.0.16-192d328856-10c0.zip/node_modules/fastest-levenshtein/esm/mod.js","../src/autocomplete/autocomplete.ts"],"sourcesContent":["const peq = new Uint32Array(0x10000);\nconst myers_32 = (a, b) => {\n const n = a.length;\n const m = b.length;\n const lst = 1 << (n - 1);\n let pv = -1;\n let mv = 0;\n let sc = n;\n let i = n;\n while (i--) {\n peq[a.charCodeAt(i)] |= 1 << i;\n }\n for (i = 0; i < m; i++) {\n let eq = peq[b.charCodeAt(i)];\n const xv = eq | mv;\n eq |= ((eq & pv) + pv) ^ pv;\n mv |= ~(eq | pv);\n pv &= eq;\n if (mv & lst) {\n sc++;\n }\n if (pv & lst) {\n sc--;\n }\n mv = (mv << 1) | 1;\n pv = (pv << 1) | ~(xv | mv);\n mv &= xv;\n }\n i = n;\n while (i--) {\n peq[a.charCodeAt(i)] = 0;\n }\n return sc;\n};\nconst myers_x = (b, a) => {\n const n = a.length;\n const m = b.length;\n const mhc = [];\n const phc = [];\n const hsize = Math.ceil(n / 32);\n const vsize = Math.ceil(m / 32);\n for (let i = 0; i < hsize; i++) {\n phc[i] = -1;\n mhc[i] = 0;\n }\n let j = 0;\n for (; j < vsize - 1; j++) {\n let mv = 0;\n let pv = -1;\n const start = j * 32;\n const vlen = Math.min(32, m) + start;\n for (let k = start; k < vlen; k++) {\n peq[b.charCodeAt(k)] |= 1 << k;\n }\n for (let i = 0; i < n; i++) {\n const eq = peq[a.charCodeAt(i)];\n const pb = (phc[(i / 32) | 0] >>> i) & 1;\n const mb = (mhc[(i / 32) | 0] >>> i) & 1;\n const xv = eq | mv;\n const xh = ((((eq | mb) & pv) + pv) ^ pv) | eq | mb;\n let ph = mv | ~(xh | pv);\n let mh = pv & xh;\n if ((ph >>> 31) ^ pb) {\n phc[(i / 32) | 0] ^= 1 << i;\n }\n if ((mh >>> 31) ^ mb) {\n mhc[(i / 32) | 0] ^= 1 << i;\n }\n ph = (ph << 1) | pb;\n mh = (mh << 1) | mb;\n pv = mh | ~(xv | ph);\n mv = ph & xv;\n }\n for (let k = start; k < vlen; k++) {\n peq[b.charCodeAt(k)] = 0;\n }\n }\n let mv = 0;\n let pv = -1;\n const start = j * 32;\n const vlen = Math.min(32, m - start) + start;\n for (let k = start; k < vlen; k++) {\n peq[b.charCodeAt(k)] |= 1 << k;\n }\n let score = m;\n for (let i = 0; i < n; i++) {\n const eq = peq[a.charCodeAt(i)];\n const pb = (phc[(i / 32) | 0] >>> i) & 1;\n const mb = (mhc[(i / 32) | 0] >>> i) & 1;\n const xv = eq | mv;\n const xh = ((((eq | mb) & pv) + pv) ^ pv) | eq | mb;\n let ph = mv | ~(xh | pv);\n let mh = pv & xh;\n score += (ph >>> (m - 1)) & 1;\n score -= (mh >>> (m - 1)) & 1;\n if ((ph >>> 31) ^ pb) {\n phc[(i / 32) | 0] ^= 1 << i;\n }\n if ((mh >>> 31) ^ mb) {\n mhc[(i / 32) | 0] ^= 1 << i;\n }\n ph = (ph << 1) | pb;\n mh = (mh << 1) | mb;\n pv = mh | ~(xv | ph);\n mv = ph & xv;\n }\n for (let k = start; k < vlen; k++) {\n peq[b.charCodeAt(k)] = 0;\n }\n return score;\n};\nconst distance = (a, b) => {\n if (a.length < b.length) {\n const tmp = b;\n b = a;\n a = tmp;\n }\n if (b.length === 0) {\n return a.length;\n }\n if (a.length <= 32) {\n return myers_32(a, b);\n }\n return myers_x(a, b);\n};\nconst closest = (str, arr) => {\n let min_distance = Infinity;\n let min_index = 0;\n for (let i = 0; i < arr.length; i++) {\n const dist = distance(str, arr[i]);\n if (dist < min_distance) {\n min_distance = dist;\n min_index = i;\n }\n }\n return arr[min_index];\n};\nexport { closest, distance };\n","import {\n\tcomputePosition,\n\tflip,\n\toffset,\n\tshift,\n\tsize, // <-- NEW\n} from '@floating-ui/dom'\nimport { $LitElement } from '@mixins/index'\nimport { color } from '@schmancy/directives'\nimport SchmancyInput from '@schmancy/input/input'\nimport SchmancyOption from '@schmancy/option/option'\nimport { SchmancyTheme } from '@schmancy/theme/theme.interface'\nimport { distance } from 'fastest-levenshtein'\nimport { html } from 'lit'\nimport { customElement, eventOptions, property, query, queryAssignedElements } from 'lit/decorators.js'\nimport { createRef, ref } from 'lit/directives/ref.js'\nimport { from, fromEvent, Subject } from 'rxjs'\nimport { distinctUntilChanged, filter, switchMap, takeUntil, tap } from 'rxjs/operators'\nimport style from './autocomplete.scss?inline'\n\nimport type { SchmancyInputInputEvent } from '@schmancy/input/input'\n\nexport type SchmancyAutocompleteChangeEvent = CustomEvent<{\n\tvalue: string | string[]\n}>\n\n@customElement('schmancy-autocomplete')\nexport default class SchmancyAutocomplete extends $LitElement(style) {\n\t// Public API properties\n\t@property({ type: Boolean }) required = false\n\t@property({ type: String }) placeholder = ''\n\t@property({ type: String, reflect: true }) value = ''\n\t@property({ type: String, reflect: true }) label = ''\n\t/**\n\t * ⚠️ If you still want an explicit fallback for maximum dropdown height,\n\t * you can keep this, but the `size()` middleware will already set a\n\t * dynamic max-height based on viewport space.\n\t */\n\t@property({ type: String }) maxHeight = '25vh'\n\t@property({ type: Boolean }) multi = false\n\n\t/** Direct reference to the <input> inside <schmancy-input> */\n\tinputRef = createRef<HTMLInputElement>()\n\n\t// Query selectors for elements in the shadow DOM\n\t@query('#options') private optionsContainer!: HTMLUListElement\n\t@query('#empty') private empty!: HTMLLIElement\n\t@query('schmancy-input') private input!: SchmancyInput\n\t@queryAssignedElements({ flatten: true }) private options!: SchmancyOption[]\n\n\t// Subject for search term changes\n\tprivate readonly searchTerm$ = new Subject<string>()\n\n\t// iOS scroll-blocking logic\n\tprivate startY = 0\n\n\tconnectedCallback() {\n\t\tsuper.connectedCallback()\n\n\t\t// Ensure the component has an ID (used for generating option IDs)\n\t\tif (!this.id) {\n\t\t\tthis.id = `schmancy-autocomplete-${Math.random().toString(36).substr(2, 9)}`\n\t\t}\n\n\t\t// Listen for keydown events on the input to enable keyboard navigation.\n\t\t// (If your <schmancy-input> is a custom element, ensure it re–forwards keyboard events\n\t\t// from its internal <input> or use a @keydown listener on it in the template.)\n\t\tfromEvent(this, 'keydown')\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe({\n\t\t\t\tnext: (e: KeyboardEvent) => {\n\t\t\t\t\tthis.handleKeyDown(e)\n\t\t\t\t},\n\t\t\t})\n\t\t// 1) Search filtering logic\n\t\tthis.searchTerm$\n\t\t\t.pipe(\n\t\t\t\tdistinctUntilChanged(),\n\t\t\t\ttap(term => {\n\t\t\t\t\tconst searchTerm = term.trim().toLowerCase()\n\n\t\t\t\t\t// Filter options using Levenshtein distance\n\t\t\t\t\tconst matches = this.options\n\t\t\t\t\t\t.map(option => {\n\t\t\t\t\t\t\tconst optionText = option.label.toLowerCase()\n\t\t\t\t\t\t\tconst levDistance = distance(searchTerm, optionText)\n\t\t\t\t\t\t\treturn { option, levDistance }\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.filter(({ option, levDistance }) => {\n\t\t\t\t\t\t\t// For short search terms, be lenient\n\t\t\t\t\t\t\tif (searchTerm.length < 3) return true\n\t\t\t\t\t\t\treturn levDistance <= option.label.toLowerCase().length - searchTerm.length\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.sort((a, b) => a.levDistance - b.levDistance)\n\n\t\t\t\t\t// Show/hide options based on filtering\n\t\t\t\t\tthis.options.forEach(o => (o.hidden = true))\n\t\t\t\t\tfor (const { option } of matches) {\n\t\t\t\t\t\toption.hidden = false\n\t\t\t\t\t}\n\n\t\t\t\t\t// \"No results found\"\n\t\t\t\t\tthis.empty.hidden = matches.length > 0\n\n\t\t\t\t\t// Update accessibility attributes on options\n\t\t\t\t\tthis.setupOptionsAccessibility()\n\n\t\t\t\t\tthis.requestUpdate()\n\t\t\t\t}),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe(() => {\n\t\t\t\t// Show dropdown on each new search term\n\t\t\t\tthis.showOptions()\n\t\t\t})\n\n\t\t// 2) Focus-out animation (fade out)\n\t\tfromEvent<FocusEvent>(this, 'focusout')\n\t\t\t.pipe(\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t\tfilter(e => (e.relatedTarget as Element)?.tagName !== 'SCHMANCY-OPTION'),\n\t\t\t\tswitchMap(() => {\n\t\t\t\t\t// reset options to show all\n\t\t\t\t\tthis.options.forEach(o => (o.hidden = false))\n\t\t\t\t\tconst animation = this.optionsContainer.animate([{ opacity: 1 }, { opacity: 0 }], {\n\t\t\t\t\t\tduration: 150,\n\t\t\t\t\t\teasing: 'cubic-bezier(0.5, 0.01, 0.25, 1)',\n\t\t\t\t\t})\n\t\t\t\t\treturn from(\n\t\t\t\t\t\tnew Promise<void>(resolve => {\n\t\t\t\t\t\t\tanimation.onfinish = () => {\n\t\t\t\t\t\t\t\tthis.optionsContainer.style.display = 'none'\n\t\t\t\t\t\t\t\tthis.optionsContainer.style.opacity = '1'\n\t\t\t\t\t\t\t\tresolve()\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}),\n\t\t\t\t\t)\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.subscribe({\n\t\t\t\tnext: () => {\n\t\t\t\t\t// After closing, resync the input’s value\n\t\t\t\t\tif (this.multi) {\n\t\t\t\t\t\tconst selected = this.options.filter(o => o.selected).map(o => o.label)\n\t\t\t\t\t\tthis.input.value = selected.join(', ')\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.input.value = this.options.find(o => o.value === this.value)?.label ?? ''\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t})\n\t}\n\n\tfirstUpdated() {\n\t\tthis.updateInputValue()\n\t}\n\n\tprotected updated(changedProps: Map<string | number | symbol, unknown>) {\n\t\tsuper.updated(changedProps)\n\t\tif (changedProps.has('value')) {\n\t\t\tthis.syncSelectionFromValue()\n\t\t\tthis.updateInputValue()\n\t\t}\n\t}\n\n\t/**\n\t * When the <slot> changes (i.e. options are added/removed), update the following:\n\t * 1. Show or hide the “No results found” option.\n\t * 2. Sync the selection state.\n\t * 3. Setup accessibility attributes on the options.\n\t */\n\tprivate handleSlotChange() {\n\t\tthis.empty.hidden = this.options.some(option => !option.hidden)\n\t\tthis.syncSelectionFromValue()\n\t\tthis.updateInputValue()\n\t\tthis.setupOptionsAccessibility()\n\t}\n\n\t/**\n\t * Loops through assigned options and sets accessibility attributes:\n\t * - role=\"option\"\n\t * - A unique ID (if not already set)\n\t * - tabindex=\"-1\"\n\t * - aria-selected (based on whether the option is selected)\n\t */\n\tprivate setupOptionsAccessibility() {\n\t\tthis.options.forEach((option, index) => {\n\t\t\toption.setAttribute('role', 'option')\n\t\t\tif (!option.id) {\n\t\t\t\toption.id = `${this.id}-option-${index}`\n\t\t\t}\n\t\t\toption.tabIndex = -1\n\t\t\toption.setAttribute('aria-selected', String(this.multi ? option.selected : option.value === this.value))\n\t\t})\n\t}\n\n\tprivate syncSelectionFromValue() {\n\t\tif (this.multi) {\n\t\t\tconst values = this.value\n\t\t\t\t.split(',')\n\t\t\t\t.map(v => v.trim())\n\t\t\t\t.filter(Boolean)\n\t\t\tthis.options.forEach(o => {\n\t\t\t\to.selected = values.includes(o.value)\n\t\t\t})\n\t\t} else {\n\t\t\tthis.options.forEach(o => {\n\t\t\t\to.selected = o.value === this.value\n\t\t\t})\n\t\t}\n\t}\n\n\tprivate updateInputValue() {\n\t\trequestAnimationFrame(() => {\n\t\t\tif (this.multi) {\n\t\t\t\tconst selected = this.options.filter(o => o.selected).map(o => o.label)\n\t\t\t\tthis.input.value = selected.join(', ')\n\t\t\t} else {\n\t\t\t\tconst found = this.options.find(o => o.value === this.value)?.label\n\t\t\t\tthis.input.value = found ?? ''\n\t\t\t}\n\t\t})\n\t}\n\n\t/**\n\t * MAIN: Show the dropdown. Uses Floating UI to position and size the options container.\n\t */\n\tprivate async showOptions() {\n\t\tthis.optionsContainer.removeAttribute('hidden')\n\t\tthis.optionsContainer.style.display = 'block'\n\n\t\tconst { x, y } = await computePosition(this.input, this.optionsContainer, {\n\t\t\tplacement: 'bottom-start',\n\t\t\tmiddleware: [\n\t\t\t\toffset(5),\n\t\t\t\tflip(),\n\t\t\t\tshift({ padding: 5 }),\n\t\t\t\t// Let the floating element fill available space, but be at least as wide as the input.\n\t\t\t\tsize({\n\t\t\t\t\tapply({ availableWidth, availableHeight, elements, rects }) {\n\t\t\t\t\t\t// At least match input width\n\t\t\t\t\t\tconst referenceWidth = rects.reference.width\n\t\t\t\t\t\telements.floating.style.minWidth = `${referenceWidth}px`\n\t\t\t\t\t\t// Cap to available viewport space\n\t\t\t\t\t\telements.floating.style.maxWidth = `${availableWidth}px`\n\t\t\t\t\t\telements.floating.style.maxHeight = `${availableHeight}px`\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t],\n\t\t})\n\n\t\tObject.assign(this.optionsContainer.style, {\n\t\t\tleft: `${x}px`,\n\t\t\ttop: `${y}px`,\n\t\t\tposition: 'absolute',\n\t\t\tzIndex: '9999',\n\t\t\toverflowY: 'auto',\n\t\t\t// You can still use maxHeight as a fallback if desired:\n\t\t\t// maxHeight: this.maxHeight,\n\t\t})\n\t}\n\n\tprivate hideOptions() {\n\t\tthis.optionsContainer?.setAttribute('hidden', 'true')\n\t\tif (this.optionsContainer) {\n\t\t\tthis.optionsContainer.style.display = 'none'\n\t\t}\n\t}\n\n\tprivate handleInputChange(event: SchmancyInputInputEvent) {\n\t\tevent.preventDefault()\n\t\tevent.stopPropagation()\n\t\tconst term = event.detail.value\n\t\tthis.searchTerm$.next(term)\n\t}\n\n\t@eventOptions({ passive: true })\n\tprivate handleOptionClick(value: string) {\n\t\tif (this.multi) {\n\t\t\tconst option = this.options.find(o => o.value === value)\n\t\t\tif (option) option.selected = !option.selected\n\t\t\tconst selectedValues = this.options.filter(o => o.selected).map(o => o.value)\n\t\t\tthis.value = selectedValues.join(',')\n\t\t\tthis.updateInputValue()\n\t\t\tthis.dispatchEvent(\n\t\t\t\tnew CustomEvent<SchmancyAutocompleteChangeEvent['detail']>('change', {\n\t\t\t\t\tdetail: { value: selectedValues },\n\t\t\t\t\tbubbles: true,\n\t\t\t\t\tcomposed: true,\n\t\t\t\t}),\n\t\t\t)\n\t\t} else {\n\t\t\tthis.hideOptions()\n\t\t\tthis.value = value\n\t\t\tthis.updateInputValue()\n\t\t\tthis.dispatchEvent(\n\t\t\t\tnew CustomEvent<SchmancyAutocompleteChangeEvent['detail']>('change', {\n\t\t\t\t\tdetail: { value },\n\t\t\t\t\tbubbles: true,\n\t\t\t\t\tcomposed: true,\n\t\t\t\t}),\n\t\t\t)\n\t\t}\n\t}\n\n\tpublic checkValidity() {\n\t\treturn this.multi ? this.options.some(o => o.selected) : Boolean(this.value)\n\t}\n\n\tpublic reportValidity() {\n\t\treturn this.inputRef.value?.reportValidity()\n\t}\n\n\tprivate handleTouchStart(event: TouchEvent) {\n\t\tthis.startY = event.touches?.[0]?.clientY ?? 0\n\t}\n\n\tprivate preventScroll(event: TouchEvent) {\n\t\tconst target = event.target as HTMLElement\n\t\tif (!this.optionsContainer.contains(target)) return\n\n\t\tconst scrollTop = this.optionsContainer.scrollTop\n\t\tconst scrollHeight = this.optionsContainer.scrollHeight\n\t\tconst offsetHeight = this.optionsContainer.offsetHeight\n\t\tconst contentHeight = scrollHeight - offsetHeight\n\n\t\tconst currentY = event.touches?.[0]?.clientY ?? 0\n\t\tif ((scrollTop <= 0 && currentY > this.startY) || (scrollTop >= contentHeight && currentY < this.startY)) {\n\t\t\tevent.preventDefault()\n\t\t}\n\t}\n\n\t/**\n\t * Keyboard navigation for the autocomplete.\n\t * – When the dropdown is closed, ArrowDown (or Enter/Space) opens it.\n\t * – When open, ArrowDown/ArrowUp move focus between options (which must have role=\"option\").\n\t * – Enter or Space selects the active option.\n\t * – Escape (or Tab) hides the dropdown.\n\t */\n\tprivate handleKeyDown = (e: KeyboardEvent) => {\n\t\t// Get the visible options (i.e. those not hidden)\n\t\tconst options = this.options.filter(o => !o.hidden)\n\n\t\t// If the dropdown is closed, open it on Enter, Space, or ArrowDown\n\t\tif (this.optionsContainer.hasAttribute('hidden')) {\n\t\t\tif (['Enter', ' ', 'ArrowDown'].includes(e.key)) {\n\t\t\t\te.preventDefault()\n\t\t\t\tthis.showOptions().then(() => {\n\t\t\t\t\tif (options.length > 0) {\n\t\t\t\t\t\tthis.focusOption(options, 0)\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\t\t\treturn\n\t\t}\n\n\t\t// Dropdown is open; determine the currently focused option\n\t\tlet currentIndex = options.findIndex(o => o.matches(':focus'))\n\t\tif (currentIndex === -1) {\n\t\t\t// If no option is focused, default to the first\n\t\t\tcurrentIndex = 0\n\t\t}\n\n\t\tswitch (e.key) {\n\t\t\tcase 'Escape':\n\t\t\t\te.preventDefault()\n\t\t\t\tthis.hideOptions()\n\t\t\t\tthis.input.focus()\n\t\t\t\tbreak\n\t\t\tcase 'ArrowDown':\n\t\t\t\te.preventDefault()\n\t\t\t\tthis.focusOption(options, Math.min(currentIndex + 1, options.length - 1))\n\t\t\t\tbreak\n\t\t\tcase 'ArrowUp':\n\t\t\t\te.preventDefault()\n\t\t\t\tthis.focusOption(options, Math.max(currentIndex - 1, 0))\n\t\t\t\tbreak\n\t\t\tcase 'Enter':\n\t\t\tcase ' ':\n\t\t\t\te.preventDefault()\n\t\t\t\tif (options[currentIndex]) {\n\t\t\t\t\t// Assume the option's value is stored in either \"data-value\" or \"value\" attribute.\n\t\t\t\t\tconst value = options[currentIndex].getAttribute('data-value') || options[currentIndex].getAttribute('value')\n\t\t\t\t\tif (value) {\n\t\t\t\t\t\tthis.handleOptionClick(value)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\tcase 'Tab':\n\t\t\t\t// Close the dropdown on Tab (as done in the select component)\n\t\t\t\tthis.hideOptions()\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\tbreak\n\t\t}\n\t}\n\n\t/**\n\t * Helper to focus an option by index and update the combobox’s aria-activedescendant.\n\t */\n\tprivate focusOption(options: HTMLElement[], index: number) {\n\t\tconst option = options[index]\n\t\tif (option) {\n\t\t\toption.focus()\n\t\t\t// Update the input's aria-activedescendant to match the newly focused option.\n\t\t\tthis.input.setAttribute('aria-activedescendant', option.id)\n\t\t}\n\t}\n\trender() {\n\t\t// Determine whether the dropdown is open based on the hidden attribute.\n\t\tconst isOpen = !this.optionsContainer?.hasAttribute('hidden')\n\t\treturn html`\n\t\t\t<div class=\"relative\">\n\t\t\t\t<!-- The trigger slot (if any) overrides the default SchmancyInput -->\n\t\t\t\t<slot name=\"trigger\">\n\t\t\t\t\t<schmancy-input\n\t\t\t\t\t\t${ref(this.inputRef)}\n\t\t\t\t\t\tid=\"input\"\n\t\t\t\t\t\tclass=\"w-full\"\n\t\t\t\t\t\t.label=${this.label}\n\t\t\t\t\t\t.placeholder=${this.placeholder}\n\t\t\t\t\t\t.required=${this.required}\n\t\t\t\t\t\ttype=\"search\"\n\t\t\t\t\t\tinputmode=\"text\"\n\t\t\t\t\t\tautocomplete=\"off\"\n\t\t\t\t\t\tclickable\n\t\t\t\t\t\trole=\"combobox\"\n\t\t\t\t\t\taria-autocomplete=\"list\"\n\t\t\t\t\t\taria-haspopup=\"listbox\"\n\t\t\t\t\t\taria-controls=\"options\"\n\t\t\t\t\t\taria-expanded=${isOpen}\n\t\t\t\t\t\t@focus=${() => this.showOptions()}\n\t\t\t\t\t\t@change=${this.handleInputChange}\n\t\t\t\t\t>\n\t\t\t\t\t</schmancy-input>\n\t\t\t\t</slot>\n\n\t\t\t\t<ul\n\t\t\t\t\tid=\"options\"\n\t\t\t\t\ttabindex=\"-1\"\n\t\t\t\t\tclass=\"absolute z-30 mt-1 w-full overflow-auto rounded-md shadow-sm\"\n\t\t\t\t\trole=\"listbox\"\n\t\t\t\t\taria-multiselectable=${this.multi ? 'true' : 'false'}\n\t\t\t\t\thidden\n\t\t\t\t\t@click=${(e: Event) => {\n\t\t\t\t\t\t// Each <schmancy-option> should dispatch a CustomEvent('click', { detail: { value } })\n\t\t\t\t\t\tconst detailVal = (e as CustomEvent).detail?.value\n\t\t\t\t\t\tif (detailVal) this.handleOptionClick(detailVal)\n\t\t\t\t\t}}\n\t\t\t\t\t@touchstart=${this.handleTouchStart}\n\t\t\t\t\t@touchmove=${this.preventScroll}\n\t\t\t\t\t${color({ bgColor: SchmancyTheme.sys.color.surface.container })}\n\t\t\t\t\t@slotchange=${this.handleSlotChange}\n\t\t\t\t>\n\t\t\t\t\t<!-- \"No results\" option -->\n\t\t\t\t\t<li id=\"empty\" tabindex=\"-1\">\n\t\t\t\t\t\t<schmancy-typography type=\"label\">No results found</schmancy-typography>\n\t\t\t\t\t</li>\n\t\t\t\t\t<!-- Slot for the <schmancy-option> elements -->\n\t\t\t\t\t<slot></slot>\n\t\t\t\t</ul>\n\t\t\t</div>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-autocomplete': SchmancyAutocomplete\n\t}\n}\n"],"names":["peq","Uint32Array","distance","a","b","length","tmp","n","m","lst","pv","mv","sc","i","charCodeAt","eq","xv","mhc","phc","hsize","Math","ceil","vsize","j","start","vlen","min","k","pb","mb","xh","ph","mh","score","SchmancyAutocomplete","$LitElement","constructor","super","arguments","this","required","placeholder","value","label","maxHeight","multi","inputRef","createRef","searchTerm$","Subject","startY","handleKeyDown","e","options","filter","o","hidden","optionsContainer","hasAttribute","includes","key","preventDefault","showOptions","then","focusOption","currentIndex","findIndex","matches","hideOptions","input","focus","max","getAttribute","handleOptionClick","connectedCallback","id","random","toString","substr","fromEvent","pipe","takeUntil","disconnecting","subscribe","next","distinctUntilChanged","tap","term","searchTerm","trim","toLowerCase","map","option","optionText","levDistance","sort","forEach","empty","setupOptionsAccessibility","requestUpdate","relatedTarget","tagName","switchMap","animation","animate","opacity","duration","easing","from","Promise","resolve","onfinish","style","display","selected","join","find","updateInputValue","changedProps","updated","has","syncSelectionFromValue","some","index","setAttribute","tabIndex","String","values","split","v","Boolean","requestAnimationFrame","found","removeAttribute","x","y","computePosition","placement","middleware","offset","flip","shift","padding","size","apply","availableWidth","availableHeight","elements","rects","referenceWidth","reference","width","floating","minWidth","maxWidth","Object","assign","left","top","position","zIndex","overflowY","event","stopPropagation","detail","selectedValues","dispatchEvent","CustomEvent","bubbles","composed","reportValidity","touches","clientY","target","contains","scrollTop","contentHeight","scrollHeight","offsetHeight","currentY","render","isOpen","html","ref","handleInputChange","detailVal","handleTouchStart","preventScroll","color","bgColor","SchmancyTheme","sys","surface","container","handleSlotChange","__decorateClass","property","type","prototype","reflect","query","queryAssignedElements","flatten","eventOptions","passive","customElement"],"mappings":"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","x_google_ignoreList":[0]}
package/dist/data.cjs DELETED
@@ -1,2 +0,0 @@
1
- "use strict";
2
- //# sourceMappingURL=data.cjs.map
package/dist/data.cjs.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"data.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
package/dist/data.js DELETED
@@ -1,2 +0,0 @@
1
-
2
- //# sourceMappingURL=data.js.map
package/dist/data.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"data.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,72 +0,0 @@
1
- "use strict";require("rxjs"),require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const p=require("./litElement.mixin-PVEJyATw.cjs");require("./tailwind.mixin-BM-bjRjT.cjs");const h=require("lit"),d=require("lit/decorators.js"),m=require("lit/directives/if-defined.js"),s=require("moment");function u(e,t){if(!e)return null;const a=s(e);return a.isValid()?a.format(t):null}var y=Object.defineProperty,g=Object.getOwnPropertyDescriptor,c=(e,t,a,r)=>{for(var n,o=r>1?void 0:r?g(t,a):t,l=e.length-1;l>=0;l--)(n=e[l])&&(o=(r?n(t,a,o):n(o))||o);return r&&o&&y(t,a,o),o};let i=class extends p.$LitElement(){constructor(){super(...arguments),this.type="date",this.selectedDateRange="Today"}connectedCallback(){super.connectedCallback(),this.initPresetRanges();const e=this.getDateFormat(),t=function(a,r,n){const o=u(a,n),l=u(r,n);return{dateFrom:o,dateTo:l,isValid:o!==null&&l!==null}}(this.dateFrom.value,this.dateTo.value,e);if(t.isValid)this.dateFrom.value=t.dateFrom,this.dateTo.value=t.dateTo,this.updateSelectedDateRange();else{const a=s().format(e);this.dateFrom.value=a,this.dateTo.value=a}}setDateRange(e,t){this.dateFrom.value=e,this.dateTo.value=t,this.dispatchEvent(new CustomEvent("change",{detail:{dateFrom:e,dateTo:t},bubbles:!0,composed:!0})),this.requestUpdate()}updated(e){e.has("type")&&(this.initPresetRanges(),this.updateSelectedDateRange())}getDateFormat(){return this.type==="date"?"YYYY-MM-DD":"YYYY-MM-DDTHH:mm"}getDisplayFormat(){return this.type==="date"?"MMM DD, YYYY":"MMM DD, YYYY hh:mm A"}initPresetRanges(){const e=this.getDateFormat();this.presetRanges=[{label:"Yesterday",range:{dateFrom:s().subtract(1,"days").startOf("day").format(e),dateTo:s().subtract(1,"days").endOf("day").format(e)},step:"day"},{label:"Today",range:{dateFrom:s().startOf("day").format(e),dateTo:s().endOf("day").format(e)},step:"day"},{label:"Tomorrow",range:{dateFrom:s().add(1,"days").startOf("day").format(e),dateTo:s().add(1,"days").endOf("day").format(e)},step:"day"},{label:"This Week",range:{dateFrom:s().startOf("isoWeek").format(e),dateTo:s().endOf("isoWeek").format(e)},step:"week"},{label:"Last Week",range:{dateFrom:s().subtract(1,"weeks").startOf("isoWeek").format(e),dateTo:s().subtract(1,"weeks").endOf("isoWeek").format(e)},step:"week"},{label:"This Month",range:{dateFrom:s().startOf("month").format(e),dateTo:s().endOf("month").format(e)},step:"month"}]}updateSelectedDateRange(){const e=this.presetRanges.find(t=>t.range.dateFrom===this.dateFrom.value&&t.range.dateTo===this.dateTo.value);if(e)this.selectedDateRange=e.label;else{const t=s(this.dateFrom.value),a=s(this.dateTo.value);if(t.isSame(a,"day"))this.selectedDateRange=t.format("MMM DD, YYYY"),t.format("HH:mm")==="00:00"&&a.format("HH:mm")==="23:59"||(this.selectedDateRange+=` ${t.format("HH:mm")}:${a.format("HH:mm")}`);else{const r=t.format(this.getDisplayFormat()),n=a.format(this.getDisplayFormat());this.selectedDateRange=`${r} - ${n}`}}}handlePresetChange(e){const t=this.presetRanges.find(n=>n.label===e);if(!t)return;const{dateFrom:a,dateTo:r}=t.range;this.setDateRange(a,r),this.selectedDateRange=e}shiftDateRange(e,t){t.stopPropagation();const a=this.getDateFormat(),r=s(this.dateTo.value).diff(s(this.dateFrom.value),"days")||1,n=s(this.dateFrom.value).add(e*r,"days").format(a),o=s(this.dateTo.value).add(e*r,"days").format(a);this.setDateRange(n,o),this.updateSelectedDateRange()}handleDateRangeChange(e){e.stopPropagation(),this.setDateRange(this.dateFrom.value,this.dateTo.value),this.updateSelectedDateRange()}render(){return h.html`
2
- <!-- schmancy-menu typically provides a slot="button" for the trigger,
3
- and then projects the menu items inside. -->
4
- <schmancy-menu class="z-100 w-max" role="menu" aria-label="Date range presets and custom input">
5
- <!-- The toggle/trigger slot -->
6
- <schmancy-grid slot="button" align="center" cols="auto 1fr auto">
7
- <schmancy-icon-button
8
- type="button"
9
- aria-label="Shift date range backward"
10
- @click=${e=>{this.shiftDateRange(-1,e)}}
11
- >
12
- arrow_left
13
- </schmancy-icon-button>
14
-
15
- <schmancy-button
16
- class="w-max"
17
- variant="outlined"
18
- type="button"
19
- aria-haspopup="menu"
20
- .ariaExpanded=${String(!1)}
21
- >
22
- ${this.selectedDateRange||"Date range"}
23
- </schmancy-button>
24
-
25
- <schmancy-icon-button
26
- type="button"
27
- aria-label="Shift date range forward"
28
- @click=${e=>{this.shiftDateRange(1,e)}}
29
- >
30
- arrow_right
31
- </schmancy-icon-button>
32
- </schmancy-grid>
33
-
34
- <!-- The menu surface: presets + manual date selection -->
35
- ${this.presetRanges.map(e=>h.html`
36
- <schmancy-menu-item role="menuitem" class="w-full" @click=${()=>this.handlePresetChange(e.label)}>
37
- <schmancy-grid class="w-full" align="center" cols="auto 1fr auto"> ${e.label} </schmancy-grid>
38
- </schmancy-menu-item>
39
- `)}
40
-
41
- <!-- Manual date range inputs + "Apply" button -->
42
- <schmancy-grid gap="sm" flow="row" class="p-4">
43
- <schmancy-input
44
- id="checkin"
45
- .type=${this.type}
46
- .label=${this.dateFrom.label}
47
- .value=${this.dateFrom.value}
48
- min=${m.ifDefined(this.minDate)}
49
- @change=${e=>{e.preventDefault(),e.stopPropagation();const t=this.getDateFormat(),a=s(e.detail.value,t).format(t);this.dateFrom.value=a,this.checkOutInput.setAttribute("min",a)}}
50
- ></schmancy-input>
51
-
52
- <schmancy-input
53
- id="checkout"
54
- .type=${this.type}
55
- .label=${this.dateTo.label}
56
- .value=${this.dateTo.value}
57
- min=${m.ifDefined(this.dateFrom.value)}
58
- max=${m.ifDefined(this.maxDate)}
59
- @change=${e=>{e.preventDefault(),e.stopPropagation();const t=this.getDateFormat(),a=s(e.detail.value,t).format(t);this.dateTo.value=a}}
60
- ></schmancy-input>
61
-
62
- <schmancy-button
63
- type="button"
64
- variant="outlined"
65
- @click=${e=>{this.handleDateRangeChange(e)}}
66
- >
67
- Apply
68
- </schmancy-button>
69
- </schmancy-grid>
70
- </schmancy-menu>
71
- `}};c([d.property({type:String})],i.prototype,"type",2),c([d.property({type:Object})],i.prototype,"dateFrom",2),c([d.property({type:Object})],i.prototype,"dateTo",2),c([d.property({type:String})],i.prototype,"minDate",2),c([d.property({type:String})],i.prototype,"maxDate",2),c([d.query("#checkin")],i.prototype,"checkInInput",2),c([d.query("#checkout")],i.prototype,"checkOutInput",2),c([d.query("schmancy-menu")],i.prototype,"schmancyMenu",2),c([d.state()],i.prototype,"selectedDateRange",2),i=c([d.customElement("schmancy-date-range")],i);
72
- //# sourceMappingURL=date-range-CH-IKoMW.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"date-range-CH-IKoMW.cjs","sources":["../src/date-range/date-utils.ts","../src/date-range/date-range.ts"],"sourcesContent":["import moment from 'moment'\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 = moment(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 { $LitElement } from '@mixins/index'\nimport { SchmancyInputChangeEvent } from '@schmancy/input'\nimport SchmancyMenu from '@schmancy/menu/menu'\nimport { html } from 'lit'\nimport { customElement, property, query, state } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport moment from 'moment'\nimport { validateInitialDateRange } from './date-utils' // Import the utility\n\ntype DateFormat = 'YYYY-MM-DD' | 'YYYY-MM-DDTHH:mm'\n\n/**\n * A date range selector that supports presets and manual date input.\n */\n@customElement('schmancy-date-range')\nexport default class SchmancyDateRange extends $LitElement() {\n\t// Either \"date\" or \"datetime-local\"\n\t@property({ type: String }) type: 'date' | 'datetime-local' = 'date'\n\n\t@property({ type: Object }) dateFrom!: { label: string; value: string }\n\t@property({ type: Object }) dateTo!: { label: string; value: string }\n\n\t// Optional min/max constraints\n\t@property({ type: String }) minDate?: string\n\t@property({ type: String }) maxDate?: string\n\n\t@query('#checkin') checkInInput!: HTMLInputElement\n\t@query('#checkout') checkOutInput!: HTMLInputElement\n\n\t// The <schmancy-menu> that displays presets + manual date inputs\n\t@query('schmancy-menu') schmancyMenu!: SchmancyMenu\n\n\t// Display text in the trigger button\n\t@state() selectedDateRange: string = 'Today'\n\n\t// Preset date range definitions\n\tpresetRanges!: Array<{\n\t\tlabel: string\n\t\trange: { dateFrom: string; dateTo: string }\n\t\tstep: moment.unitOfTime.DurationConstructor\n\t}>\n\n\tconnectedCallback(): void {\n\t\tsuper.connectedCallback()\n\t\tthis.initPresetRanges()\n\n\t\t// Validate and format initial date range\n\t\tconst dateFormat = this.getDateFormat() as DateFormat\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\tconsole.error('Invalid initial date range. Falling back to default.')\n\t\t\t// Handle invalid initial dates (e.g., set to default values, display an error)\n\t\t\tconst now = moment().format(dateFormat)\n\t\t\tthis.dateFrom.value = now\n\t\t\tthis.dateTo.value = now\n\t\t}\n\t}\n\t/**\n\t * Update the internal date range and fire a 'change' event to notify external code.\n\t */\n\tprivate setDateRange(fromDate: string, toDate: string) {\n\t\tthis.dateFrom.value = fromDate\n\t\tthis.dateTo.value = toDate\n\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent<TSchmancDateRangePayload>('change', {\n\t\t\t\tdetail: { dateFrom: fromDate, dateTo: toDate },\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true, // If you want it to pass shadow boundaries\n\t\t\t}),\n\t\t)\n\t\tthis.requestUpdate()\n\t}\n\tupdated(changedProps: Map<string, unknown>) {\n\t\tif (changedProps.has('type')) {\n\t\t\t// Re-init presets if \"type\" changes from date -> datetime\n\t\t\tthis.initPresetRanges()\n\t\t\tthis.updateSelectedDateRange()\n\t\t}\n\t}\n\n\t/**\n\t * Format strings for the internal <input> and for display text.\n\t */\n\tprivate getDateFormat(): string {\n\t\treturn this.type === 'date' ? 'YYYY-MM-DD' : 'YYYY-MM-DDTHH:mm'\n\t}\n\tprivate getDisplayFormat(): string {\n\t\treturn this.type === 'date' ? 'MMM DD, YYYY' : 'MMM DD, YYYY hh:mm A'\n\t}\n\n\t/**\n\t * Build up a list of preset ranges (yesterday, today, etc.).\n\t */\n\tprivate initPresetRanges() {\n\t\tconst format = this.getDateFormat()\n\t\tthis.presetRanges = [\n\t\t\t{\n\t\t\t\tlabel: 'Yesterday',\n\t\t\t\trange: {\n\t\t\t\t\tdateFrom: moment().subtract(1, 'days').startOf('day').format(format),\n\t\t\t\t\tdateTo: moment().subtract(1, 'days').endOf('day').format(format),\n\t\t\t\t},\n\t\t\t\tstep: 'day',\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Today',\n\t\t\t\trange: {\n\t\t\t\t\tdateFrom: moment().startOf('day').format(format),\n\t\t\t\t\tdateTo: moment().endOf('day').format(format),\n\t\t\t\t},\n\t\t\t\tstep: 'day',\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Tomorrow',\n\t\t\t\trange: {\n\t\t\t\t\tdateFrom: moment().add(1, 'days').startOf('day').format(format),\n\t\t\t\t\tdateTo: moment().add(1, 'days').endOf('day').format(format),\n\t\t\t\t},\n\t\t\t\tstep: 'day',\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'This Week',\n\t\t\t\trange: {\n\t\t\t\t\tdateFrom: moment().startOf('isoWeek').format(format),\n\t\t\t\t\tdateTo: moment().endOf('isoWeek').format(format),\n\t\t\t\t},\n\t\t\t\tstep: 'week',\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Last Week',\n\t\t\t\trange: {\n\t\t\t\t\tdateFrom: moment().subtract(1, 'weeks').startOf('isoWeek').format(format),\n\t\t\t\t\tdateTo: moment().subtract(1, 'weeks').endOf('isoWeek').format(format),\n\t\t\t\t},\n\t\t\t\tstep: 'week',\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'This Month',\n\t\t\t\trange: {\n\t\t\t\t\tdateFrom: moment().startOf('month').format(format),\n\t\t\t\t\tdateTo: moment().endOf('month').format(format),\n\t\t\t\t},\n\t\t\t\tstep: 'month',\n\t\t\t},\n\t\t\t// Add more if desired (e.g. \"Last Month,\" \"Custom,\" etc.)\n\t\t]\n\t}\n\n\t/**\n\t * Based on the current dateFrom/dateTo, see if it matches a preset.\n\t * Otherwise display a \"Custom\" range: \"Jan 01, 2023 - Jan 07, 2023\".\n\t */\n\tprivate updateSelectedDateRange() {\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\t\tif (preset) {\n\t\t\tthis.selectedDateRange = preset.label\n\t\t} else {\n\t\t\t// Construct a custom label\n\t\t\tconst fromMoment = moment(this.dateFrom.value)\n\t\t\tconst toMoment = moment(this.dateTo.value)\n\t\t\tconsole.log(fromMoment.format('HH:mm'), toMoment.format('HH:mm'), fromMoment.format('HH:mm'))\n\t\t\tif (fromMoment.isSame(toMoment, 'day')) {\n\t\t\t\tthis.selectedDateRange = fromMoment.format('MMM DD, YYYY')\n\t\t\t\t// append the time if fromMoment is not the start of the day and toMoment is not the end of the day\n\t\t\t\tif (fromMoment.format('HH:mm') !== '00:00' || toMoment.format('HH:mm') !== '23:59') {\n\t\t\t\t\tthis.selectedDateRange += ` ${fromMoment.format('HH:mm')}:${toMoment.format('HH:mm')}`\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst fromStr = fromMoment.format(this.getDisplayFormat())\n\t\t\t\tconst toStr = toMoment.format(this.getDisplayFormat())\n\t\t\t\tthis.selectedDateRange = `${fromStr} - ${toStr}`\n\t\t\t}\n\t\t}\n\t}\n\tprivate handlePresetChange(label: string) {\n\t\tconst preset = this.presetRanges.find(range => range.label === label)\n\t\tif (!preset) return\n\t\tconst { dateFrom, dateTo } = preset.range\n\t\tthis.setDateRange(dateFrom, dateTo)\n\t\tthis.selectedDateRange = label\n\t}\n\n\t/**\n\t * Shift the current date range forward or backward by the same number of days.\n\t * If the range is 7 days wide, shift 7 days, etc.\n\t */\n\tprivate shiftDateRange(factor: number, event: Event) {\n\t\tevent.stopPropagation() // Prevent click from bubbling to the schmancy-button\n\n\t\tconst format = this.getDateFormat()\n\t\tconst currentDiff = moment(this.dateTo.value).diff(moment(this.dateFrom.value), 'days') || 1\n\t\tconst newDateFrom = moment(this.dateFrom.value)\n\t\t\t.add(factor * currentDiff, 'days')\n\t\t\t.format(format)\n\t\tconst newDateTo = moment(this.dateTo.value)\n\t\t\t.add(factor * currentDiff, 'days')\n\t\t\t.format(format)\n\n\t\tthis.setDateRange(newDateFrom, newDateTo)\n\t\tthis.updateSelectedDateRange()\n\t}\n\n\t/**\n\t * Applies the date range from the inputs.\n\t * Closes the menu when done.\n\t */\n\tprivate handleDateRangeChange(event: Event) {\n\t\tevent.stopPropagation() // Prevent click from bubbling to the schmancy-button\n\t\tthis.setDateRange(this.dateFrom.value, this.dateTo.value)\n\t\tthis.updateSelectedDateRange()\n\t}\n\n\trender() {\n\t\treturn html`\n\t\t\t<!-- schmancy-menu typically provides a slot=\"button\" for the trigger,\n and then projects the menu items inside. -->\n\t\t\t<schmancy-menu class=\"z-100 w-max\" role=\"menu\" aria-label=\"Date range presets and custom input\">\n\t\t\t\t<!-- The toggle/trigger slot -->\n\t\t\t\t<schmancy-grid slot=\"button\" align=\"center\" cols=\"auto 1fr auto\">\n\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\taria-label=\"Shift date range backward\"\n\t\t\t\t\t\t@click=${(e: Event) => {\n\t\t\t\t\t\t\tthis.shiftDateRange(-1, e) // Pass the event\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tarrow_left\n\t\t\t\t\t</schmancy-icon-button>\n\n\t\t\t\t\t<schmancy-button\n\t\t\t\t\t\tclass=\"w-max\"\n\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\taria-haspopup=\"menu\"\n\t\t\t\t\t\t.ariaExpanded=${String(false)}\n\t\t\t\t\t>\n\t\t\t\t\t\t${this.selectedDateRange || 'Date range'}\n\t\t\t\t\t</schmancy-button>\n\n\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\taria-label=\"Shift date range forward\"\n\t\t\t\t\t\t@click=${(e: Event) => {\n\t\t\t\t\t\t\tthis.shiftDateRange(1, e) // Pass the event\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tarrow_right\n\t\t\t\t\t</schmancy-icon-button>\n\t\t\t\t</schmancy-grid>\n\n\t\t\t\t<!-- The menu surface: presets + manual date selection -->\n\t\t\t\t${this.presetRanges.map(\n\t\t\t\t\tpreset => html`\n\t\t\t\t\t\t<schmancy-menu-item role=\"menuitem\" class=\"w-full\" @click=${() => this.handlePresetChange(preset.label)}>\n\t\t\t\t\t\t\t<schmancy-grid class=\"w-full\" align=\"center\" cols=\"auto 1fr auto\"> ${preset.label} </schmancy-grid>\n\t\t\t\t\t\t</schmancy-menu-item>\n\t\t\t\t\t`,\n\t\t\t\t)}\n\n\t\t\t\t<!-- Manual date range inputs + \"Apply\" button -->\n\t\t\t\t<schmancy-grid gap=\"sm\" flow=\"row\" class=\"p-4\">\n\t\t\t\t\t<schmancy-input\n\t\t\t\t\t\tid=\"checkin\"\n\t\t\t\t\t\t.type=${this.type}\n\t\t\t\t\t\t.label=${this.dateFrom.label}\n\t\t\t\t\t\t.value=${this.dateFrom.value}\n\t\t\t\t\t\tmin=${ifDefined(this.minDate)}\n\t\t\t\t\t\t@change=${(event: SchmancyInputChangeEvent) => {\n\t\t\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\t\t\tevent.stopPropagation()\n\t\t\t\t\t\t\tconst fmt = this.getDateFormat()\n\t\t\t\t\t\t\tconst selectedDate = moment(event.detail.value, fmt).format(fmt)\n\t\t\t\t\t\t\tthis.dateFrom.value = selectedDate\n\t\t\t\t\t\t\t// Update the checkout input's min attribute:\n\t\t\t\t\t\t\tthis.checkOutInput.setAttribute('min', selectedDate)\n\t\t\t\t\t\t}}\n\t\t\t\t\t></schmancy-input>\n\n\t\t\t\t\t<schmancy-input\n\t\t\t\t\t\tid=\"checkout\"\n\t\t\t\t\t\t.type=${this.type}\n\t\t\t\t\t\t.label=${this.dateTo.label}\n\t\t\t\t\t\t.value=${this.dateTo.value}\n\t\t\t\t\t\tmin=${ifDefined(this.dateFrom.value)}\n\t\t\t\t\t\tmax=${ifDefined(this.maxDate)}\n\t\t\t\t\t\t@change=${(event: SchmancyInputChangeEvent) => {\n\t\t\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\t\t\tevent.stopPropagation()\n\t\t\t\t\t\t\tconst fmt = this.getDateFormat()\n\t\t\t\t\t\t\tconst selectedDate = moment(event.detail.value, fmt).format(fmt)\n\t\t\t\t\t\t\tthis.dateTo.value = selectedDate\n\t\t\t\t\t\t}}\n\t\t\t\t\t></schmancy-input>\n\n\t\t\t\t\t<schmancy-button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t@click=${(e: Event) => {\n\t\t\t\t\t\t\tthis.handleDateRangeChange(e)\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tApply\n\t\t\t\t\t</schmancy-button>\n\t\t\t\t</schmancy-grid>\n\t\t\t</schmancy-menu>\n\t\t`\n\t}\n}\n\n/**\n * The payload for a date range change event.\n */\nexport type TSchmancDateRangePayload = {\n\tdateFrom?: string\n\tdateTo?: string\n}\n\n/**\n * A custom event fired when the date range is updated.\n */\nexport type SchmancyDateRangeChangeEvent = CustomEvent<TSchmancDateRangePayload>\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-date-range': SchmancyDateRange\n\t}\n}\n"],"names":["enforceDateFormat","dateString","expectedFormat","parsedDate","moment","isValid","format","SchmancyDateRange","$LitElement","super","arguments","this","type","selectedDateRange","connectedCallback","initPresetRanges","dateFormat","getDateFormat","validatedRange","dateFrom","dateTo","formattedDateFrom","formattedDateTo","value","updateSelectedDateRange","now","fromDate","toDate","dispatchEvent","CustomEvent","detail","bubbles","composed","requestUpdate","changedProps","has","getDisplayFormat","presetRanges","label","range","subtract","startOf","endOf","step","add","preset","find","p","fromMoment","toMoment","isSame","fromStr","toStr","setDateRange","factor","event","stopPropagation","currentDiff","diff","newDateFrom","newDateTo","html","e","shiftDateRange","String","map","handlePresetChange","ifDefined","minDate","preventDefault","fmt","selectedDate","checkOutInput","setAttribute","maxDate","handleDateRangeChange","__decorateClass","property","prototype","Object","query","state","customElement"],"mappings":"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"}
@@ -1,166 +0,0 @@
1
- import "rxjs";
2
- import "lit/directives/class-map.js";
3
- import "lit/directives/style-map.js";
4
- import { $ as g } from "./litElement.mixin-Dx9_p_nV.js";
5
- import "./tailwind.mixin-YEy_iITN.js";
6
- import { html as u } from "lit";
7
- import { property as l, query as c, state as y, customElement as f } from "lit/decorators.js";
8
- import { ifDefined as h } from "lit/directives/if-defined.js";
9
- import s from "moment";
10
- function p(t, e) {
11
- if (!t) return null;
12
- const a = s(t);
13
- return a.isValid() ? a.format(e) : null;
14
- }
15
- var D = Object.defineProperty, b = Object.getOwnPropertyDescriptor, d = (t, e, a, o) => {
16
- for (var n, r = o > 1 ? void 0 : o ? b(e, a) : e, m = t.length - 1; m >= 0; m--) (n = t[m]) && (r = (o ? n(e, a, r) : n(r)) || r);
17
- return o && r && D(e, a, r), r;
18
- };
19
- let i = class extends g() {
20
- constructor() {
21
- super(...arguments), this.type = "date", this.selectedDateRange = "Today";
22
- }
23
- connectedCallback() {
24
- super.connectedCallback(), this.initPresetRanges();
25
- const t = this.getDateFormat(), e = function(a, o, n) {
26
- const r = p(a, n), m = p(o, n);
27
- return { dateFrom: r, dateTo: m, isValid: r !== null && m !== null };
28
- }(this.dateFrom.value, this.dateTo.value, t);
29
- if (e.isValid) this.dateFrom.value = e.dateFrom, this.dateTo.value = e.dateTo, this.updateSelectedDateRange();
30
- else {
31
- const a = s().format(t);
32
- this.dateFrom.value = a, this.dateTo.value = a;
33
- }
34
- }
35
- setDateRange(t, e) {
36
- this.dateFrom.value = t, this.dateTo.value = e, this.dispatchEvent(new CustomEvent("change", { detail: { dateFrom: t, dateTo: e }, bubbles: !0, composed: !0 })), this.requestUpdate();
37
- }
38
- updated(t) {
39
- t.has("type") && (this.initPresetRanges(), this.updateSelectedDateRange());
40
- }
41
- getDateFormat() {
42
- return this.type === "date" ? "YYYY-MM-DD" : "YYYY-MM-DDTHH:mm";
43
- }
44
- getDisplayFormat() {
45
- return this.type === "date" ? "MMM DD, YYYY" : "MMM DD, YYYY hh:mm A";
46
- }
47
- initPresetRanges() {
48
- const t = this.getDateFormat();
49
- this.presetRanges = [{ label: "Yesterday", range: { dateFrom: s().subtract(1, "days").startOf("day").format(t), dateTo: s().subtract(1, "days").endOf("day").format(t) }, step: "day" }, { label: "Today", range: { dateFrom: s().startOf("day").format(t), dateTo: s().endOf("day").format(t) }, step: "day" }, { label: "Tomorrow", range: { dateFrom: s().add(1, "days").startOf("day").format(t), dateTo: s().add(1, "days").endOf("day").format(t) }, step: "day" }, { label: "This Week", range: { dateFrom: s().startOf("isoWeek").format(t), dateTo: s().endOf("isoWeek").format(t) }, step: "week" }, { label: "Last Week", range: { dateFrom: s().subtract(1, "weeks").startOf("isoWeek").format(t), dateTo: s().subtract(1, "weeks").endOf("isoWeek").format(t) }, step: "week" }, { label: "This Month", range: { dateFrom: s().startOf("month").format(t), dateTo: s().endOf("month").format(t) }, step: "month" }];
50
- }
51
- updateSelectedDateRange() {
52
- const t = this.presetRanges.find((e) => e.range.dateFrom === this.dateFrom.value && e.range.dateTo === this.dateTo.value);
53
- if (t) this.selectedDateRange = t.label;
54
- else {
55
- const e = s(this.dateFrom.value), a = s(this.dateTo.value);
56
- if (e.isSame(a, "day")) this.selectedDateRange = e.format("MMM DD, YYYY"), e.format("HH:mm") === "00:00" && a.format("HH:mm") === "23:59" || (this.selectedDateRange += ` ${e.format("HH:mm")}:${a.format("HH:mm")}`);
57
- else {
58
- const o = e.format(this.getDisplayFormat()), n = a.format(this.getDisplayFormat());
59
- this.selectedDateRange = `${o} - ${n}`;
60
- }
61
- }
62
- }
63
- handlePresetChange(t) {
64
- const e = this.presetRanges.find((n) => n.label === t);
65
- if (!e) return;
66
- const { dateFrom: a, dateTo: o } = e.range;
67
- this.setDateRange(a, o), this.selectedDateRange = t;
68
- }
69
- shiftDateRange(t, e) {
70
- e.stopPropagation();
71
- const a = this.getDateFormat(), o = s(this.dateTo.value).diff(s(this.dateFrom.value), "days") || 1, n = s(this.dateFrom.value).add(t * o, "days").format(a), r = s(this.dateTo.value).add(t * o, "days").format(a);
72
- this.setDateRange(n, r), this.updateSelectedDateRange();
73
- }
74
- handleDateRangeChange(t) {
75
- t.stopPropagation(), this.setDateRange(this.dateFrom.value, this.dateTo.value), this.updateSelectedDateRange();
76
- }
77
- render() {
78
- return u`
79
- <!-- schmancy-menu typically provides a slot="button" for the trigger,
80
- and then projects the menu items inside. -->
81
- <schmancy-menu class="z-100 w-max" role="menu" aria-label="Date range presets and custom input">
82
- <!-- The toggle/trigger slot -->
83
- <schmancy-grid slot="button" align="center" cols="auto 1fr auto">
84
- <schmancy-icon-button
85
- type="button"
86
- aria-label="Shift date range backward"
87
- @click=${(t) => {
88
- this.shiftDateRange(-1, t);
89
- }}
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
- .ariaExpanded=${String(!1)}
100
- >
101
- ${this.selectedDateRange || "Date range"}
102
- </schmancy-button>
103
-
104
- <schmancy-icon-button
105
- type="button"
106
- aria-label="Shift date range forward"
107
- @click=${(t) => {
108
- this.shiftDateRange(1, t);
109
- }}
110
- >
111
- arrow_right
112
- </schmancy-icon-button>
113
- </schmancy-grid>
114
-
115
- <!-- The menu surface: presets + manual date selection -->
116
- ${this.presetRanges.map((t) => u`
117
- <schmancy-menu-item role="menuitem" class="w-full" @click=${() => this.handlePresetChange(t.label)}>
118
- <schmancy-grid class="w-full" align="center" cols="auto 1fr auto"> ${t.label} </schmancy-grid>
119
- </schmancy-menu-item>
120
- `)}
121
-
122
- <!-- Manual date range inputs + "Apply" button -->
123
- <schmancy-grid gap="sm" flow="row" class="p-4">
124
- <schmancy-input
125
- id="checkin"
126
- .type=${this.type}
127
- .label=${this.dateFrom.label}
128
- .value=${this.dateFrom.value}
129
- min=${h(this.minDate)}
130
- @change=${(t) => {
131
- t.preventDefault(), t.stopPropagation();
132
- const e = this.getDateFormat(), a = s(t.detail.value, e).format(e);
133
- this.dateFrom.value = a, this.checkOutInput.setAttribute("min", a);
134
- }}
135
- ></schmancy-input>
136
-
137
- <schmancy-input
138
- id="checkout"
139
- .type=${this.type}
140
- .label=${this.dateTo.label}
141
- .value=${this.dateTo.value}
142
- min=${h(this.dateFrom.value)}
143
- max=${h(this.maxDate)}
144
- @change=${(t) => {
145
- t.preventDefault(), t.stopPropagation();
146
- const e = this.getDateFormat(), a = s(t.detail.value, e).format(e);
147
- this.dateTo.value = a;
148
- }}
149
- ></schmancy-input>
150
-
151
- <schmancy-button
152
- type="button"
153
- variant="outlined"
154
- @click=${(t) => {
155
- this.handleDateRangeChange(t);
156
- }}
157
- >
158
- Apply
159
- </schmancy-button>
160
- </schmancy-grid>
161
- </schmancy-menu>
162
- `;
163
- }
164
- };
165
- d([l({ type: String })], i.prototype, "type", 2), d([l({ type: Object })], i.prototype, "dateFrom", 2), d([l({ type: Object })], i.prototype, "dateTo", 2), d([l({ type: String })], i.prototype, "minDate", 2), d([l({ type: String })], i.prototype, "maxDate", 2), d([c("#checkin")], i.prototype, "checkInInput", 2), d([c("#checkout")], i.prototype, "checkOutInput", 2), d([c("schmancy-menu")], i.prototype, "schmancyMenu", 2), d([y()], i.prototype, "selectedDateRange", 2), i = d([f("schmancy-date-range")], i);
166
- //# sourceMappingURL=date-range-LMnnBclq.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"date-range-LMnnBclq.js","sources":["../src/date-range/date-utils.ts","../src/date-range/date-range.ts"],"sourcesContent":["import moment from 'moment'\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 = moment(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 { $LitElement } from '@mixins/index'\nimport { SchmancyInputChangeEvent } from '@schmancy/input'\nimport SchmancyMenu from '@schmancy/menu/menu'\nimport { html } from 'lit'\nimport { customElement, property, query, state } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport moment from 'moment'\nimport { validateInitialDateRange } from './date-utils' // Import the utility\n\ntype DateFormat = 'YYYY-MM-DD' | 'YYYY-MM-DDTHH:mm'\n\n/**\n * A date range selector that supports presets and manual date input.\n */\n@customElement('schmancy-date-range')\nexport default class SchmancyDateRange extends $LitElement() {\n\t// Either \"date\" or \"datetime-local\"\n\t@property({ type: String }) type: 'date' | 'datetime-local' = 'date'\n\n\t@property({ type: Object }) dateFrom!: { label: string; value: string }\n\t@property({ type: Object }) dateTo!: { label: string; value: string }\n\n\t// Optional min/max constraints\n\t@property({ type: String }) minDate?: string\n\t@property({ type: String }) maxDate?: string\n\n\t@query('#checkin') checkInInput!: HTMLInputElement\n\t@query('#checkout') checkOutInput!: HTMLInputElement\n\n\t// The <schmancy-menu> that displays presets + manual date inputs\n\t@query('schmancy-menu') schmancyMenu!: SchmancyMenu\n\n\t// Display text in the trigger button\n\t@state() selectedDateRange: string = 'Today'\n\n\t// Preset date range definitions\n\tpresetRanges!: Array<{\n\t\tlabel: string\n\t\trange: { dateFrom: string; dateTo: string }\n\t\tstep: moment.unitOfTime.DurationConstructor\n\t}>\n\n\tconnectedCallback(): void {\n\t\tsuper.connectedCallback()\n\t\tthis.initPresetRanges()\n\n\t\t// Validate and format initial date range\n\t\tconst dateFormat = this.getDateFormat() as DateFormat\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\tconsole.error('Invalid initial date range. Falling back to default.')\n\t\t\t// Handle invalid initial dates (e.g., set to default values, display an error)\n\t\t\tconst now = moment().format(dateFormat)\n\t\t\tthis.dateFrom.value = now\n\t\t\tthis.dateTo.value = now\n\t\t}\n\t}\n\t/**\n\t * Update the internal date range and fire a 'change' event to notify external code.\n\t */\n\tprivate setDateRange(fromDate: string, toDate: string) {\n\t\tthis.dateFrom.value = fromDate\n\t\tthis.dateTo.value = toDate\n\n\t\tthis.dispatchEvent(\n\t\t\tnew CustomEvent<TSchmancDateRangePayload>('change', {\n\t\t\t\tdetail: { dateFrom: fromDate, dateTo: toDate },\n\t\t\t\tbubbles: true,\n\t\t\t\tcomposed: true, // If you want it to pass shadow boundaries\n\t\t\t}),\n\t\t)\n\t\tthis.requestUpdate()\n\t}\n\tupdated(changedProps: Map<string, unknown>) {\n\t\tif (changedProps.has('type')) {\n\t\t\t// Re-init presets if \"type\" changes from date -> datetime\n\t\t\tthis.initPresetRanges()\n\t\t\tthis.updateSelectedDateRange()\n\t\t}\n\t}\n\n\t/**\n\t * Format strings for the internal <input> and for display text.\n\t */\n\tprivate getDateFormat(): string {\n\t\treturn this.type === 'date' ? 'YYYY-MM-DD' : 'YYYY-MM-DDTHH:mm'\n\t}\n\tprivate getDisplayFormat(): string {\n\t\treturn this.type === 'date' ? 'MMM DD, YYYY' : 'MMM DD, YYYY hh:mm A'\n\t}\n\n\t/**\n\t * Build up a list of preset ranges (yesterday, today, etc.).\n\t */\n\tprivate initPresetRanges() {\n\t\tconst format = this.getDateFormat()\n\t\tthis.presetRanges = [\n\t\t\t{\n\t\t\t\tlabel: 'Yesterday',\n\t\t\t\trange: {\n\t\t\t\t\tdateFrom: moment().subtract(1, 'days').startOf('day').format(format),\n\t\t\t\t\tdateTo: moment().subtract(1, 'days').endOf('day').format(format),\n\t\t\t\t},\n\t\t\t\tstep: 'day',\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Today',\n\t\t\t\trange: {\n\t\t\t\t\tdateFrom: moment().startOf('day').format(format),\n\t\t\t\t\tdateTo: moment().endOf('day').format(format),\n\t\t\t\t},\n\t\t\t\tstep: 'day',\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Tomorrow',\n\t\t\t\trange: {\n\t\t\t\t\tdateFrom: moment().add(1, 'days').startOf('day').format(format),\n\t\t\t\t\tdateTo: moment().add(1, 'days').endOf('day').format(format),\n\t\t\t\t},\n\t\t\t\tstep: 'day',\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'This Week',\n\t\t\t\trange: {\n\t\t\t\t\tdateFrom: moment().startOf('isoWeek').format(format),\n\t\t\t\t\tdateTo: moment().endOf('isoWeek').format(format),\n\t\t\t\t},\n\t\t\t\tstep: 'week',\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Last Week',\n\t\t\t\trange: {\n\t\t\t\t\tdateFrom: moment().subtract(1, 'weeks').startOf('isoWeek').format(format),\n\t\t\t\t\tdateTo: moment().subtract(1, 'weeks').endOf('isoWeek').format(format),\n\t\t\t\t},\n\t\t\t\tstep: 'week',\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'This Month',\n\t\t\t\trange: {\n\t\t\t\t\tdateFrom: moment().startOf('month').format(format),\n\t\t\t\t\tdateTo: moment().endOf('month').format(format),\n\t\t\t\t},\n\t\t\t\tstep: 'month',\n\t\t\t},\n\t\t\t// Add more if desired (e.g. \"Last Month,\" \"Custom,\" etc.)\n\t\t]\n\t}\n\n\t/**\n\t * Based on the current dateFrom/dateTo, see if it matches a preset.\n\t * Otherwise display a \"Custom\" range: \"Jan 01, 2023 - Jan 07, 2023\".\n\t */\n\tprivate updateSelectedDateRange() {\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\t\tif (preset) {\n\t\t\tthis.selectedDateRange = preset.label\n\t\t} else {\n\t\t\t// Construct a custom label\n\t\t\tconst fromMoment = moment(this.dateFrom.value)\n\t\t\tconst toMoment = moment(this.dateTo.value)\n\t\t\tconsole.log(fromMoment.format('HH:mm'), toMoment.format('HH:mm'), fromMoment.format('HH:mm'))\n\t\t\tif (fromMoment.isSame(toMoment, 'day')) {\n\t\t\t\tthis.selectedDateRange = fromMoment.format('MMM DD, YYYY')\n\t\t\t\t// append the time if fromMoment is not the start of the day and toMoment is not the end of the day\n\t\t\t\tif (fromMoment.format('HH:mm') !== '00:00' || toMoment.format('HH:mm') !== '23:59') {\n\t\t\t\t\tthis.selectedDateRange += ` ${fromMoment.format('HH:mm')}:${toMoment.format('HH:mm')}`\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst fromStr = fromMoment.format(this.getDisplayFormat())\n\t\t\t\tconst toStr = toMoment.format(this.getDisplayFormat())\n\t\t\t\tthis.selectedDateRange = `${fromStr} - ${toStr}`\n\t\t\t}\n\t\t}\n\t}\n\tprivate handlePresetChange(label: string) {\n\t\tconst preset = this.presetRanges.find(range => range.label === label)\n\t\tif (!preset) return\n\t\tconst { dateFrom, dateTo } = preset.range\n\t\tthis.setDateRange(dateFrom, dateTo)\n\t\tthis.selectedDateRange = label\n\t}\n\n\t/**\n\t * Shift the current date range forward or backward by the same number of days.\n\t * If the range is 7 days wide, shift 7 days, etc.\n\t */\n\tprivate shiftDateRange(factor: number, event: Event) {\n\t\tevent.stopPropagation() // Prevent click from bubbling to the schmancy-button\n\n\t\tconst format = this.getDateFormat()\n\t\tconst currentDiff = moment(this.dateTo.value).diff(moment(this.dateFrom.value), 'days') || 1\n\t\tconst newDateFrom = moment(this.dateFrom.value)\n\t\t\t.add(factor * currentDiff, 'days')\n\t\t\t.format(format)\n\t\tconst newDateTo = moment(this.dateTo.value)\n\t\t\t.add(factor * currentDiff, 'days')\n\t\t\t.format(format)\n\n\t\tthis.setDateRange(newDateFrom, newDateTo)\n\t\tthis.updateSelectedDateRange()\n\t}\n\n\t/**\n\t * Applies the date range from the inputs.\n\t * Closes the menu when done.\n\t */\n\tprivate handleDateRangeChange(event: Event) {\n\t\tevent.stopPropagation() // Prevent click from bubbling to the schmancy-button\n\t\tthis.setDateRange(this.dateFrom.value, this.dateTo.value)\n\t\tthis.updateSelectedDateRange()\n\t}\n\n\trender() {\n\t\treturn html`\n\t\t\t<!-- schmancy-menu typically provides a slot=\"button\" for the trigger,\n and then projects the menu items inside. -->\n\t\t\t<schmancy-menu class=\"z-100 w-max\" role=\"menu\" aria-label=\"Date range presets and custom input\">\n\t\t\t\t<!-- The toggle/trigger slot -->\n\t\t\t\t<schmancy-grid slot=\"button\" align=\"center\" cols=\"auto 1fr auto\">\n\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\taria-label=\"Shift date range backward\"\n\t\t\t\t\t\t@click=${(e: Event) => {\n\t\t\t\t\t\t\tthis.shiftDateRange(-1, e) // Pass the event\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tarrow_left\n\t\t\t\t\t</schmancy-icon-button>\n\n\t\t\t\t\t<schmancy-button\n\t\t\t\t\t\tclass=\"w-max\"\n\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\taria-haspopup=\"menu\"\n\t\t\t\t\t\t.ariaExpanded=${String(false)}\n\t\t\t\t\t>\n\t\t\t\t\t\t${this.selectedDateRange || 'Date range'}\n\t\t\t\t\t</schmancy-button>\n\n\t\t\t\t\t<schmancy-icon-button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\taria-label=\"Shift date range forward\"\n\t\t\t\t\t\t@click=${(e: Event) => {\n\t\t\t\t\t\t\tthis.shiftDateRange(1, e) // Pass the event\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tarrow_right\n\t\t\t\t\t</schmancy-icon-button>\n\t\t\t\t</schmancy-grid>\n\n\t\t\t\t<!-- The menu surface: presets + manual date selection -->\n\t\t\t\t${this.presetRanges.map(\n\t\t\t\t\tpreset => html`\n\t\t\t\t\t\t<schmancy-menu-item role=\"menuitem\" class=\"w-full\" @click=${() => this.handlePresetChange(preset.label)}>\n\t\t\t\t\t\t\t<schmancy-grid class=\"w-full\" align=\"center\" cols=\"auto 1fr auto\"> ${preset.label} </schmancy-grid>\n\t\t\t\t\t\t</schmancy-menu-item>\n\t\t\t\t\t`,\n\t\t\t\t)}\n\n\t\t\t\t<!-- Manual date range inputs + \"Apply\" button -->\n\t\t\t\t<schmancy-grid gap=\"sm\" flow=\"row\" class=\"p-4\">\n\t\t\t\t\t<schmancy-input\n\t\t\t\t\t\tid=\"checkin\"\n\t\t\t\t\t\t.type=${this.type}\n\t\t\t\t\t\t.label=${this.dateFrom.label}\n\t\t\t\t\t\t.value=${this.dateFrom.value}\n\t\t\t\t\t\tmin=${ifDefined(this.minDate)}\n\t\t\t\t\t\t@change=${(event: SchmancyInputChangeEvent) => {\n\t\t\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\t\t\tevent.stopPropagation()\n\t\t\t\t\t\t\tconst fmt = this.getDateFormat()\n\t\t\t\t\t\t\tconst selectedDate = moment(event.detail.value, fmt).format(fmt)\n\t\t\t\t\t\t\tthis.dateFrom.value = selectedDate\n\t\t\t\t\t\t\t// Update the checkout input's min attribute:\n\t\t\t\t\t\t\tthis.checkOutInput.setAttribute('min', selectedDate)\n\t\t\t\t\t\t}}\n\t\t\t\t\t></schmancy-input>\n\n\t\t\t\t\t<schmancy-input\n\t\t\t\t\t\tid=\"checkout\"\n\t\t\t\t\t\t.type=${this.type}\n\t\t\t\t\t\t.label=${this.dateTo.label}\n\t\t\t\t\t\t.value=${this.dateTo.value}\n\t\t\t\t\t\tmin=${ifDefined(this.dateFrom.value)}\n\t\t\t\t\t\tmax=${ifDefined(this.maxDate)}\n\t\t\t\t\t\t@change=${(event: SchmancyInputChangeEvent) => {\n\t\t\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\t\t\tevent.stopPropagation()\n\t\t\t\t\t\t\tconst fmt = this.getDateFormat()\n\t\t\t\t\t\t\tconst selectedDate = moment(event.detail.value, fmt).format(fmt)\n\t\t\t\t\t\t\tthis.dateTo.value = selectedDate\n\t\t\t\t\t\t}}\n\t\t\t\t\t></schmancy-input>\n\n\t\t\t\t\t<schmancy-button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tvariant=\"outlined\"\n\t\t\t\t\t\t@click=${(e: Event) => {\n\t\t\t\t\t\t\tthis.handleDateRangeChange(e)\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tApply\n\t\t\t\t\t</schmancy-button>\n\t\t\t\t</schmancy-grid>\n\t\t\t</schmancy-menu>\n\t\t`\n\t}\n}\n\n/**\n * The payload for a date range change event.\n */\nexport type TSchmancDateRangePayload = {\n\tdateFrom?: string\n\tdateTo?: string\n}\n\n/**\n * A custom event fired when the date range is updated.\n */\nexport type SchmancyDateRangeChangeEvent = CustomEvent<TSchmancDateRangePayload>\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-date-range': SchmancyDateRange\n\t}\n}\n"],"names":["enforceDateFormat","dateString","expectedFormat","parsedDate","moment","isValid","format","SchmancyDateRange","$LitElement","constructor","super","arguments","this","type","selectedDateRange","connectedCallback","initPresetRanges","dateFormat","getDateFormat","validatedRange","dateFrom","dateTo","formattedDateFrom","formattedDateTo","value","updateSelectedDateRange","now","fromDate","toDate","dispatchEvent","CustomEvent","detail","bubbles","composed","requestUpdate","changedProps","has","presetRanges","label","range","subtract","startOf","endOf","step","add","preset","find","p","fromMoment","toMoment","isSame","fromStr","getDisplayFormat","toStr","setDateRange","factor","event","stopPropagation","currentDiff","diff","newDateFrom","newDateTo","render","html","e","shiftDateRange","String","map","handlePresetChange","ifDefined","minDate","preventDefault","fmt","selectedDate","checkOutInput","setAttribute","maxDate","handleDateRangeChange","__decorateClass","property","prototype","Object","query","state","customElement"],"mappings":";;;;;;;;;AAcA,SAASA,EAAkBC,GAAgCC,GAC1D;AAAA,MAAA,CAAKD,EACG,QAAA;AAGF,QAAAE,IAAaC,EAAOH,CAAAA;AAEtB,SAACE,EAAWE,YAITF,EAAWG,OAAOJ,CAHjB,IAAA;AAIT;;;;;ACXA,IAAqBK,IAArB,cAA+CC;EAA/C,cAAAC;AAAAC,UAAAC,GAAAA,SAAAA,GAE+DC,KAAAC,OAAA,QAgBzBD,KAAAE,oBAAA;AAAA,EAAA;AAAA,EASrC,oBAAAC;AACCL,UAAMK,kBAAAA,GACNH,KAAKI,iBAAAA;AAGC,UAAAC,IAAaL,KAAKM,cAClBC,GAAAA,IDZR,SACCC,GACAC,GACAnB,GAAAA;AAMM,YAAAoB,IAAoBtB,EAAkBoB,GAAUlB,CAAAA,GAChDqB,IAAkBvB,EAAkBqB,GAAQnB,CAAAA;AAI3C,aAAA,EACNkB,UAAUE,GACVD,QAAQE,GACRlB,SALeiB,MAAsB,QAAQC,MAAoB,KAOnE;AAAA,IAAA,ECPkDX,KAAKQ,SAASI,OAAOZ,KAAKS,OAAOG,OAAOP,CAAAA;AAExF,QAAIE,EAAed,QACbO,MAAAQ,SAASI,QAAQL,EAAeC,UAChCR,KAAAS,OAAOG,QAAQL,EAAeE,QACnCT,KAAKa,wBAAAA;AAAAA,SACC;AAGN,YAAMC,IAAMtB,EAASE,EAAAA,OAAOW,CAC5BL;AAAAA,WAAKQ,SAASI,QAAQE,GACtBd,KAAKS,OAAOG,QAAQE;AAAAA,IAAA;AAAA,EACrB;AAAA,EAKO,aAAaC,GAAkBC,GACtChB;AAAAA,SAAKQ,SAASI,QAAQG,GACtBf,KAAKS,OAAOG,QAAQI,GAEfhB,KAAAiB,cACJ,IAAIC,YAAsC,UAAU,EACnDC,QAAQ,EAAEX,UAAUO,GAAUN,QAAQO,EACtCI,GAAAA,SAAAA,IACAC,UAAAA,GAGFrB,CAAAA,CAAAA,GAAAA,KAAKsB;EAAc;AAAA,EAEpB,QAAQC,GAAAA;AACHA,MAAaC,IAAI,MAEpBxB,MAAAA,KAAKI,oBACLJ,KAAKa,wBAAAA;AAAAA,EACN;AAAA,EAMO,gBACA;AAAA,WAAAb,KAAKC,SAAS,SAAS,eAAe;AAAA,EAAA;AAAA,EAEtC,mBACA;AAAA,WAAAD,KAAKC,SAAS,SAAS,iBAAiB;AAAA,EAAA;AAAA,EAMxC,mBACD;AAAA,UAAAP,IAASM,KAAKM;AACpBN,SAAKyB,eAAe,CACnB,EACCC,OAAO,aACPC,OAAO,EACNnB,UAAUhB,EAASoC,EAAAA,SAAS,GAAG,MAAA,EAAQC,QAAQ,KAAA,EAAOnC,OAAOA,CAAAA,GAC7De,QAAQjB,EAASoC,EAAAA,SAAS,GAAG,MAAA,EAAQE,MAAM,KAAA,EAAOpC,OAAOA,CAAAA,EAAAA,GAE1DqC,MAAM,MAEP,GAAA,EACCL,OAAO,SACPC,OAAO,EACNnB,UAAUhB,EAAAA,EAASqC,QAAQ,KAAOnC,EAAAA,OAAOA,CACzCe,GAAAA,QAAQjB,EAASsC,EAAAA,MAAM,KAAOpC,EAAAA,OAAOA,CAEtCqC,EAAAA,GAAAA,MAAM,MAEP,GAAA,EACCL,OAAO,YACPC,OAAO,EACNnB,UAAUhB,EAASwC,EAAAA,IAAI,GAAG,MAAA,EAAQH,QAAQ,KAAA,EAAOnC,OAAOA,CAAAA,GACxDe,QAAQjB,EAASwC,EAAAA,IAAI,GAAG,MAAA,EAAQF,MAAM,KAAA,EAAOpC,OAAOA,CAAAA,EAAAA,GAErDqC,MAAM,MAEP,GAAA,EACCL,OAAO,aACPC,OAAO,EACNnB,UAAUhB,EAAAA,EAASqC,QAAQ,SAAWnC,EAAAA,OAAOA,CAC7Ce,GAAAA,QAAQjB,EAASsC,EAAAA,MAAM,SAAWpC,EAAAA,OAAOA,MAE1CqC,MAAM,OAAA,GAEP,EACCL,OAAO,aACPC,OAAO,EACNnB,UAAUhB,IAASoC,SAAS,GAAG,OAASC,EAAAA,QAAQ,SAAWnC,EAAAA,OAAOA,CAClEe,GAAAA,QAAQjB,IAASoC,SAAS,GAAG,OAASE,EAAAA,MAAM,SAAWpC,EAAAA,OAAOA,CAE/DqC,EAAAA,GAAAA,MAAM,OAEP,GAAA,EACCL,OAAO,cACPC,OAAO,EACNnB,UAAUhB,EAAAA,EAASqC,QAAQ,OAASnC,EAAAA,OAAOA,CAC3Ce,GAAAA,QAAQjB,EAASsC,EAAAA,MAAM,OAASpC,EAAAA,OAAOA,MAExCqC,MAAM,QAAA,CAAA;AAAA,EAGR;AAAA,EAOO,0BACD;AAAA,UAAAE,IAASjC,KAAKyB,aAAaS,KAChCC,CAAAA,MAAKA,EAAER,MAAMnB,aAAaR,KAAKQ,SAASI,SAASuB,EAAER,MAAMlB,WAAWT,KAAKS,OAAOG,KAEjF;AAAA,QAAIqB,EACHjC,MAAKE,oBAAoB+B,EAAOP;AAAAA,SAC1B;AAEN,YAAMU,IAAa5C,EAAOQ,KAAKQ,SAASI,QAClCyB,IAAW7C,EAAOQ,KAAKS,OAAOG,KAEpC;AAAA,UAAIwB,EAAWE,OAAOD,GAAU,KAC1BrC,EAAAA,MAAAE,oBAAoBkC,EAAW1C,OAAO,cAAA,GAEvC0C,EAAW1C,OAAO,OAAA,MAAa,WAAW2C,EAAS3C,OAAO,OAAA,MAAa,YACrEM,KAAAE,qBAAqB,IAAIkC,EAAW1C,OAAO,OAAY2C,CAAAA,IAAAA,EAAS3C,OAAO,OAAA,CAAA;AAAA,WAEvE;AACN,cAAM6C,IAAUH,EAAW1C,OAAOM,KAAKwC,iBAAAA,CAAAA,GACjCC,IAAQJ,EAAS3C,OAAOM,KAAKwC;AACnCxC,aAAKE,oBAAoB,GAAGqC,CAAAA,MAAaE,CAAK;AAAA,MAAA;AAAA,IAC/C;AAAA,EACD;AAAA,EAEO,mBAAmBf,GAAAA;AAC1B,UAAMO,IAASjC,KAAKyB,aAAaS,KAAcP,CAAAA,MAAAA,EAAMD,UAAUA,CAAAA;AAC/D,QAAKO,CAAAA,EAAQ;AACb,UAAA,EAAMzB,UAAEA,GAAAC,QAAUA,EAAWwB,IAAAA,EAAON;AAC/B3B,SAAA0C,aAAalC,GAAUC,CAC5BT,GAAAA,KAAKE,oBAAoBwB;AAAAA,EAAA;AAAA,EAOlB,eAAeiB,GAAgBC,GAAAA;AACtCA,MAAMC,gBAAAA;AAEA,UAAAnD,IAASM,KAAKM,cACdwC,GAAAA,IAActD,EAAOQ,KAAKS,OAAOG,KAAAA,EAAOmC,KAAKvD,EAAOQ,KAAKQ,SAASI,KAAAA,GAAQ,MAAW,KAAA,GACrFoC,IAAcxD,EAAOQ,KAAKQ,SAASI,KAAAA,EACvCoB,IAAIW,IAASG,GAAa,MAAA,EAC1BpD,OAAOA,CAAAA,GACHuD,IAAYzD,EAAOQ,KAAKS,OAAOG,KAAAA,EACnCoB,IAAIW,IAASG,GAAa,MAAA,EAC1BpD,OAAOA,CAEJM;AAAAA,SAAA0C,aAAaM,GAAaC,CAC/BjD,GAAAA,KAAKa,wBAAwB;AAAA,EAAA;AAAA,EAOtB,sBAAsB+B,GAAAA;AAC7BA,MAAMC,gBAAAA,GACN7C,KAAK0C,aAAa1C,KAAKQ,SAASI,OAAOZ,KAAKS,OAAOG,KACnDZ,GAAAA,KAAKa,wBAAwB;AAAA,EAAA;AAAA,EAG9B,SAAAqC;AACQ,WAAAC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,eASOC,OACJpD;AAAAA,WAAAqD,mBAAmBD,CAAC;AAAA,IAAA,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAWVE,OAAO,EAAA,CAAA;AAAA;AAAA,QAErBtD,KAAKE,qBAAqB,YAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,eAMlBkD,OACJpD;AAAAA,WAAAqD,eAAe,GAAGD,CAAC;AAAA,IAAA,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAQzBpD,KAAKyB,aAAa8B,IACTtB,OAAAkB;AAAAA,kEACmD,MAAMnD,KAAKwD,mBAAmBvB,EAAOP,KAAAA,CAAAA;AAAAA,4EAC3BO,EAAOP,KAAAA;AAAAA;AAAAA;;;;;;cASrE1B,KAAKC,IAAAA;AAAAA,eACJD,KAAKQ,SAASkB,KAAAA;AAAAA,eACd1B,KAAKQ,SAASI,KAAAA;AAAAA,YACjB6C,EAAUzD,KAAK0D,OAAAA,CAAAA;AAAAA,gBACVd,OACVA;AAAAA,QAAMe,eACNf,GAAAA,EAAMC,gBACA;AAAA,YAAAe,IAAM5D,KAAKM,cAAAA,GACXuD,IAAerE,EAAOoD,EAAMzB,OAAOP,OAAOgD,CAAKlE,EAAAA,OAAOkE,CAC5D5D;AAAAA,WAAKQ,SAASI,QAAQiD,GAEjB7D,KAAA8D,cAAcC,aAAa,OAAOF,CAAY;AAAA,IAAA,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAM5C7D,KAAKC,IAAAA;AAAAA,eACJD,KAAKS,OAAOiB,KAAAA;AAAAA,eACZ1B,KAAKS,OAAOG,KAAAA;AAAAA,YACf6C,EAAUzD,KAAKQ,SAASI,KAAAA,CAAAA;AAAAA,YACxB6C,EAAUzD,KAAKgE,OAAAA,CAAAA;AAAAA,gBACVpB,OAAAA;AACVA,QAAMe,eACNf,GAAAA,EAAMC;AACA,YAAAe,IAAM5D,KAAKM,cACXuD,GAAAA,IAAerE,EAAOoD,EAAMzB,OAAOP,OAAOgD,CAAKlE,EAAAA,OAAOkE;AAC5D5D,WAAKS,OAAOG,QAAQiD;AAAAA,IAAA,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,eAOXT,OACTpD;AAAAA,WAAKiE,sBAAsBb,CAAC;AAAA,IAAA,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAC5B;AAAA;AAlSsBc,EAAA,CAA3BC,EAAS,EAAElE,MAAMqD,OAAAA,CAAAA,CAAAA,GAFE3D,EAEQyE,WAAA,QAAA,CAEAF,GAAAA,EAAA,CAA3BC,EAAS,EAAElE,MAAMoE,OAJE1E,CAAAA,CAAAA,GAAAA,EAIQyE,WAAA,YAAA,CAAA,GACAF,EAAA,CAA3BC,EAAS,EAAElE,MAAMoE,YALE1E,EAKQyE,WAAA,UAAA,CAGAF,GAAAA,EAAA,CAA3BC,EAAS,EAAElE,MAAMqD,OAAAA,CAAAA,CAAAA,GARE3D,EAQQyE,WAAA,WAAA,IACAF,EAAA,CAA3BC,EAAS,EAAElE,MAAMqD,OATE3D,CAAAA,CAAAA,GAAAA,EASQyE,WAAA,WAAA,CAAA,GAETF,EAAA,CAAlBI,EAAM,UAXa3E,CAAAA,GAAAA,EAWDyE,WAAA,gBAAA,CAAA,GACCF,EAAA,CAAnBI,EAAM,eAZa3E,EAYAyE,WAAA,iBAAA,CAAA,GAGIF,EAAA,CAAvBI,EAAM,mBAfa3E,EAeIyE,WAAA,gBAAA,CAGfF,GAAAA,EAAA,CAARK,EAlBmB5E,CAAAA,GAAAA,EAkBXyE,WAAA,qBAAA,CAAA,GAlBWzE,IAArBuE,EAAA,CADCM,EAAc,qBACM7E,CAAAA,GAAAA,CAAAA;"}
@@ -1,51 +0,0 @@
1
- "use strict";const c=require("lit"),i=require("lit/decorators.js"),m=require("lit/directives/class-map.js"),n=require("lit/directives/if-defined.js"),f=require("lit/directives/ref.js"),b=require("lit/directives/when.js"),s=require("rxjs");require("lit/directives/style-map.js");const v=require("./tailwind.mixin-BM-bjRjT.cjs"),y=require("./ripple-C2BHbhcS.cjs"),h=require("./theme.interface-Xg5Zi46a.cjs");var g=Object.defineProperty,$=Object.getOwnPropertyDescriptor,r=(e,o,a,l)=>{for(var u,p=l>1?void 0:l?$(o,a):o,d=e.length-1;d>=0;d--)(u=e[d])&&(p=(l?u(o,a,p):u(p))||p);return l&&p&&g(o,a,p),p};let t=class extends v.TailwindElement(){constructor(){if(super(),this.id="",this.label="",this.type="text",this.name=`name_${Date.now()}`,this.placeholder="",this.value="",this.required=!1,this.disabled=!1,this.readonly=!1,this.clickable=!1,this.spellcheck=!1,this.align="left",this.autofocus=!1,this.autocomplete="on",this.tabIndex=0,this.error=!1,this.inputRef=f.createRef(),"attachInternals"in this)try{this.internals=this.attachInternals()}catch{this.internals=void 0}}willUpdate(e){this.id||(this.id="schmancy-input-"+t._idCounter++),super.willUpdate(e)}get form(){var e;return((e=this.internals)==null?void 0:e.form)??null}updated(e){var o,a,l;super.updated(e),e.has("value")&&((o=this.internals)==null||o.setFormValue(this.value)),e.has("error")&&(this.error?(a=this.internals)==null||a.setValidity({customError:!0},"Invalid input",this.inputElement):(l=this.internals)==null||l.setValidity({}))}checkValidity(){var e;return((e=this.inputRef.value)==null?void 0:e.checkValidity())??!0}reportValidity(){var e;return((e=this.inputRef.value)==null?void 0:e.reportValidity())??!0}setCustomValidity(e){var o;(o=this.inputRef.value)==null||o.setCustomValidity(e)}firstUpdated(){this.autofocus&&this.focus(),s.fromEvent(this.inputElement,"input").pipe(s.map(e=>e.target.value),s.distinctUntilChanged(),s.takeUntil(this.disconnecting)).subscribe(e=>{this.value=e,this.dispatchEvent(new CustomEvent("input",{detail:{value:e},bubbles:!0,composed:!0})),this.dispatchEvent(new CustomEvent("change",{detail:{value:e},bubbles:!0,composed:!0}))}),s.fromEvent(this.inputElement,"change").pipe(s.map(e=>e.target.value),s.distinctUntilChanged(),s.takeUntil(this.disconnecting)).subscribe(e=>{this.value=e,this.dispatchEvent(new CustomEvent("change",{detail:{value:e},bubbles:!0,composed:!0}))}),s.fromEvent(this.inputElement,"keyup").pipe(s.filter(e=>e.key==="Enter"),s.takeUntil(this.disconnecting)).subscribe(e=>{const{value:o}=e.target;this.value=o,this.dispatchEvent(new CustomEvent("enter",{detail:{value:o},bubbles:!0,composed:!0}))}),s.fromEvent(this.inputElement,"animationstart").pipe(s.filter(e=>e.animationName==="onAutoFillStart"),s.takeUntil(this.disconnecting)).subscribe(e=>{const{value:o}=e.target;this.value=o,this.dispatchEvent(new CustomEvent("change",{detail:{value:o},bubbles:!0,composed:!0}))})}select(){var e;return(e=this.inputRef.value)==null?void 0:e.select()}getValidity(){var e;return(e=this.inputRef.value)==null?void 0:e.validity}focus(e){var o;(o=this.inputRef.value)==null||o.focus(e),this.dispatchEvent(new Event("focus"))}click(){var e;(e=this.inputRef.value)==null||e.click(),this.dispatchEvent(new Event("click"))}blur(){var e;(e=this.inputRef.value)==null||e.blur(),this.dispatchEvent(new Event("blur"))}render(){const e={"w-full flex-1 h-[50px] rounded-[8px] border-0 px-[8px] sm:px-[12px] md:px-[16px]":!0,"outline-secondary-default focus:outline-1 ":!0,"disabled:opacity-40 disabled:cursor-not-allowed":!0,"placeholder:text-muted":!0,"ring-0 ring-inset focus:ring-1 focus:ring-inset":!0,"ring-secondary-default ring-outline focus:ring-secondary-default":!this.error,"ring-error-default focus:ring-error-default":this.error,"caret-transparent focus:outline-hidden cursor-pointer text-select-none":this.readonly,"cursor-pointer":this.clickable,"text-center":this.align==="center","text-right":this.align==="right"},o={"opacity-40":this.disabled,"block mb-[4px]":!0};return c.html`
2
- ${b.when(this.label,()=>c.html`
3
- <label
4
- for=${this.id}
5
- id="label-${this.id}"
6
- class=${m.classMap(o)}
7
- ${y.color({color:this.error?h.SchmancyTheme.sys.color.error.default:h.SchmancyTheme.sys.color.primary.default})}
8
- >
9
- <schmancy-typography type="label" token="lg">${this.label}</schmancy-typography>
10
- </label>
11
- `)}
12
-
13
- <input
14
- ${y.color({bgColor:h.SchmancyTheme.sys.color.surface.highest,color:h.SchmancyTheme.sys.color.surface.on})}
15
- ${f.ref(this.inputRef)}
16
- id=${this.id}
17
- name=${this.name}
18
- class=${m.classMap(e)}
19
- .value=${this.value}
20
- .type=${this.type}
21
- .autocomplete=${this.autocomplete}
22
- .spellcheck=${this.spellcheck}
23
- placeholder=${this.placeholder}
24
- inputmode=${n.ifDefined(this.inputmode)}
25
- pattern=${n.ifDefined(this.pattern)}
26
- step=${n.ifDefined(this.step)}
27
- minlength=${n.ifDefined(this.minlength)}
28
- maxlength=${n.ifDefined(this.maxlength)}
29
- min=${n.ifDefined(this.min)}
30
- max=${n.ifDefined(this.max)}
31
- ?required=${this.required}
32
- ?disabled=${this.disabled}
33
- ?readonly=${this.readonly}
34
- aria-invalid=${this.error?"true":"false"}
35
- aria-required=${this.required?"true":"false"}
36
- aria-labelledby=${this.label?`label-${this.id}`:c.nothing}
37
- aria-describedby=${this.hint?`hint-${this.id}`:c.nothing}
38
- aria-label=${n.ifDefined(this.label?void 0:this.placeholder||"Input")}
39
- />
40
-
41
- ${b.when(this.hint,()=>c.html`
42
- <div
43
- id="hint-${this.id}"
44
- class="pt-[2px]"
45
- ${y.color({color:this.error?h.SchmancyTheme.sys.color.error.default:h.SchmancyTheme.sys.color.primary.default})}
46
- >
47
- <schmancy-typography align="left" type="label"> ${this.hint} </schmancy-typography>
48
- </div>
49
- `)}
50
- `}};t._idCounter=0,t.formAssociated=!0,t.shadowRootOptions={...c.LitElement.shadowRootOptions,delegatesFocus:!0},r([i.property({reflect:!0})],t.prototype,"id",2),r([i.property({type:String})],t.prototype,"label",2),r([i.property({reflect:!0})],t.prototype,"type",2),r([i.property()],t.prototype,"name",2),r([i.property()],t.prototype,"placeholder",2),r([i.property({type:String,reflect:!0})],t.prototype,"value",2),r([i.property({type:String,reflect:!0})],t.prototype,"pattern",2),r([i.property({type:Boolean,reflect:!0})],t.prototype,"required",2),r([i.property({type:Boolean,reflect:!0})],t.prototype,"disabled",2),r([i.property({type:Boolean,reflect:!0})],t.prototype,"readonly",2),r([i.property({type:Boolean,reflect:!0})],t.prototype,"clickable",2),r([i.property({type:Boolean,reflect:!0})],t.prototype,"spellcheck",2),r([i.property({type:String,reflect:!0})],t.prototype,"align",2),r([i.property()],t.prototype,"inputmode",2),r([i.property({type:Number})],t.prototype,"minlength",2),r([i.property({type:Number})],t.prototype,"maxlength",2),r([i.property()],t.prototype,"min",2),r([i.property()],t.prototype,"max",2),r([i.property({type:Number,reflect:!0})],t.prototype,"step",2),r([i.property({type:Boolean})],t.prototype,"autofocus",2),r([i.property({type:String,reflect:!0})],t.prototype,"autocomplete",2),r([i.property({type:Number,reflect:!0})],t.prototype,"tabIndex",2),r([i.property()],t.prototype,"hint",2),r([i.property({type:Boolean,reflect:!0})],t.prototype,"error",2),r([i.query("input")],t.prototype,"inputElement",2),t=r([i.customElement("schmancy-input")],t);
51
- //# sourceMappingURL=input-C7C9t_rb.cjs.map