@mhmo91/schmancy 0.2.130 → 0.2.132
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.
- package/dist/{animated-text-rLaot0v2.cjs → animated-text-BA466KMo.cjs} +2 -2
- package/dist/{animated-text-rLaot0v2.cjs.map → animated-text-BA466KMo.cjs.map} +1 -1
- package/dist/{animated-text-BJXm6krF.js → animated-text-DGzNS4Kd.js} +3 -3
- package/dist/{animated-text-BJXm6krF.js.map → animated-text-DGzNS4Kd.js.map} +1 -1
- package/dist/animated-text.cjs +1 -1
- package/dist/animated-text.js +1 -1
- package/dist/area.cjs +1 -1
- package/dist/{area.component-CP5oin2j.cjs → area.component-BsTipdPH.cjs} +2 -2
- package/dist/{area.component-CP5oin2j.cjs.map → area.component-BsTipdPH.cjs.map} +1 -1
- package/dist/{area.component-DlAEUmgd.js → area.component-DqakKBYJ.js} +3 -3
- package/dist/{area.component-DlAEUmgd.js.map → area.component-DqakKBYJ.js.map} +1 -1
- package/dist/area.js +1 -1
- package/dist/autocomplete-CsePKzPw.cjs +62 -0
- package/dist/autocomplete-CsePKzPw.cjs.map +1 -0
- package/dist/autocomplete-DQKvgQXh.js +249 -0
- package/dist/autocomplete-DQKvgQXh.js.map +1 -0
- package/dist/autocomplete.cjs +1 -1
- package/dist/autocomplete.js +1 -1
- package/dist/busy.cjs +1 -1
- package/dist/busy.js +1 -1
- package/dist/button.cjs +1 -1
- package/dist/button.js +1 -1
- package/dist/card.cjs +1 -1
- package/dist/card.js +1 -1
- package/dist/{checkbox-DrrcDAjr.cjs → checkbox-B2iiLgtv.cjs} +2 -2
- package/dist/{checkbox-DrrcDAjr.cjs.map → checkbox-B2iiLgtv.cjs.map} +1 -1
- package/dist/{checkbox-N_JVa-1W.js → checkbox-CxcVktYo.js} +2 -2
- package/dist/{checkbox-N_JVa-1W.js.map → checkbox-CxcVktYo.js.map} +1 -1
- package/dist/checkbox.cjs +1 -1
- package/dist/checkbox.js +1 -1
- package/dist/{chips-DuSV3Pg2.js → chips-BqYp-S9g.js} +15 -15
- package/dist/{chips-DuSV3Pg2.js.map → chips-BqYp-S9g.js.map} +1 -1
- package/dist/{chips-DrYrCyTG.cjs → chips-UqRrSW28.cjs} +15 -15
- package/dist/{chips-DrYrCyTG.cjs.map → chips-UqRrSW28.cjs.map} +1 -1
- package/dist/chips.cjs +1 -1
- package/dist/chips.js +1 -1
- package/dist/components.cjs +1 -1
- package/dist/components.js +1 -1
- package/dist/content-drawer.cjs +1 -1
- package/dist/content-drawer.js +1 -1
- package/dist/{date-range-DoZNetuD.cjs → date-range-BwgdrpOA.cjs} +3 -3
- package/dist/date-range-BwgdrpOA.cjs.map +1 -0
- package/dist/{date-range-6fQ4ypDJ.js → date-range-CdoDJ3L2.js} +16 -16
- package/dist/date-range-CdoDJ3L2.js.map +1 -0
- package/dist/date-range.cjs +1 -1
- package/dist/date-range.js +1 -1
- package/dist/{delay-CSAsNZ4k.js → delay-CS6opyMk.js} +2 -2
- package/dist/{delay-CSAsNZ4k.js.map → delay-CS6opyMk.js.map} +1 -1
- package/dist/{delay-WrR6CJK_.cjs → delay-uWrg9zzM.cjs} +2 -2
- package/dist/{delay-WrR6CJK_.cjs.map → delay-uWrg9zzM.cjs.map} +1 -1
- package/dist/delay.cjs +1 -1
- package/dist/delay.js +1 -1
- package/dist/{divider-Cl2Thq2Y.cjs → divider-2ok73Eva.cjs} +2 -2
- package/dist/{divider-Cl2Thq2Y.cjs.map → divider-2ok73Eva.cjs.map} +1 -1
- package/dist/{divider-ByXACxEQ.js → divider-7V3DrqCq.js} +3 -3
- package/dist/{divider-ByXACxEQ.js.map → divider-7V3DrqCq.js.map} +1 -1
- package/dist/divider.cjs +1 -1
- package/dist/divider.js +1 -1
- package/dist/extra.cjs +1 -1
- package/dist/extra.js +1 -1
- package/dist/{flex-BGVyAdBX.js → flex-Dl-3pfaZ.js} +2 -2
- package/dist/{flex-BGVyAdBX.js.map → flex-Dl-3pfaZ.js.map} +1 -1
- package/dist/{flex-DeB79N0h.cjs → flex-Wu22kbKr.cjs} +2 -2
- package/dist/{flex-DeB79N0h.cjs.map → flex-Wu22kbKr.cjs.map} +1 -1
- package/dist/{form-DATARECy.js → form-D3iNn8mF.js} +2 -2
- package/dist/{form-DATARECy.js.map → form-D3iNn8mF.js.map} +1 -1
- package/dist/{form-Dkh-YG_8.cjs → form-DtbsNIva.cjs} +2 -2
- package/dist/{form-Dkh-YG_8.cjs.map → form-DtbsNIva.cjs.map} +1 -1
- package/dist/form.cjs +1 -1
- package/dist/form.js +1 -1
- package/dist/{icon-BbqYaRVu.cjs → icon-CcfC08Kv.cjs} +2 -2
- package/dist/{icon-BbqYaRVu.cjs.map → icon-CcfC08Kv.cjs.map} +1 -1
- package/dist/{icon-BdqEZEF8.js → icon-Daf3V5zc.js} +3 -3
- package/dist/{icon-BdqEZEF8.js.map → icon-Daf3V5zc.js.map} +1 -1
- package/dist/{icon-button-DlnuclQQ.js → icon-button-CvzPbHj1.js} +4 -4
- package/dist/icon-button-CvzPbHj1.js.map +1 -0
- package/dist/{icon-button-BUUtmKnu.cjs → icon-button-D02HHUju.cjs} +3 -3
- package/dist/icon-button-D02HHUju.cjs.map +1 -0
- package/dist/icons.cjs +1 -1
- package/dist/icons.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +35 -35
- package/dist/{input-BDUd1ZGs.js → input-CRKlzC_n.js} +2 -2
- package/dist/{input-BDUd1ZGs.js.map → input-CRKlzC_n.js.map} +1 -1
- package/dist/{input-B_MWCRet.cjs → input-DkYfzuf_.cjs} +2 -2
- package/dist/{input-B_MWCRet.cjs.map → input-DkYfzuf_.cjs.map} +1 -1
- package/dist/input.cjs +1 -1
- package/dist/input.js +1 -1
- package/dist/layout.cjs +1 -1
- package/dist/layout.js +1 -1
- package/dist/{list-D0J2ndMA.js → list-CIfX9HAX.js} +2 -2
- package/dist/{list-D0J2ndMA.js.map → list-CIfX9HAX.js.map} +1 -1
- package/dist/{list-UOeNjOTt.cjs → list-ClN4WGiv.cjs} +2 -2
- package/dist/{list-UOeNjOTt.cjs.map → list-ClN4WGiv.cjs.map} +1 -1
- package/dist/list.cjs +1 -1
- package/dist/list.js +1 -1
- package/dist/{litElement.mixin-PXLBM6N4.js → litElement.mixin-Bc-mD_fE.js} +2 -2
- package/dist/{litElement.mixin-PXLBM6N4.js.map → litElement.mixin-Bc-mD_fE.js.map} +1 -1
- package/dist/{litElement.mixin-CfkMd-bR.cjs → litElement.mixin-S3xWZjIN.cjs} +2 -2
- package/dist/{litElement.mixin-CfkMd-bR.cjs.map → litElement.mixin-S3xWZjIN.cjs.map} +1 -1
- package/dist/{menu-D7PxtMOz.js → menu-BLHROh10.js} +3 -3
- package/dist/{menu-D7PxtMOz.js.map → menu-BLHROh10.js.map} +1 -1
- package/dist/{menu-B4k2_5rl.cjs → menu-BVIo2QsA.cjs} +2 -2
- package/dist/{menu-B4k2_5rl.cjs.map → menu-BVIo2QsA.cjs.map} +1 -1
- package/dist/menu.cjs +1 -1
- package/dist/menu.js +1 -1
- package/dist/nav-drawer.cjs +1 -1
- package/dist/nav-drawer.js +1 -1
- package/dist/notification.cjs +1 -1
- package/dist/notification.js +1 -1
- package/dist/{option-vV2BM1B_.js → option-DJwUNDv1.js} +3 -3
- package/dist/option-DJwUNDv1.js.map +1 -0
- package/dist/{option-hsAZB8ji.cjs → option-DUsQh2li.cjs} +3 -3
- package/dist/option-DUsQh2li.cjs.map +1 -0
- package/dist/option.cjs +1 -1
- package/dist/option.js +1 -1
- package/dist/{outlet-DRaXjbOY.js → outlet-Ch6PcF31.js} +2 -2
- package/dist/{outlet-DRaXjbOY.js.map → outlet-Ch6PcF31.js.map} +1 -1
- package/dist/{outlet-DMOeEL6g.cjs → outlet-D0yXIpoJ.cjs} +2 -2
- package/dist/{outlet-DMOeEL6g.cjs.map → outlet-D0yXIpoJ.cjs.map} +1 -1
- package/dist/{payment-card-form-DfbqzyTv.cjs → payment-card-form-DHnv_dB5.cjs} +2 -2
- package/dist/{payment-card-form-DfbqzyTv.cjs.map → payment-card-form-DHnv_dB5.cjs.map} +1 -1
- package/dist/{payment-card-form-8oXgNTFN.js → payment-card-form-RVkRt3dw.js} +3 -3
- package/dist/{payment-card-form-8oXgNTFN.js.map → payment-card-form-RVkRt3dw.js.map} +1 -1
- package/dist/{radio-group-CLt-d-Ni.cjs → radio-group-D3GZyViJ.cjs} +2 -2
- package/dist/{radio-group-CLt-d-Ni.cjs.map → radio-group-D3GZyViJ.cjs.map} +1 -1
- package/dist/{radio-group-DRXtgyf5.js → radio-group-Pnq88mNF.js} +2 -2
- package/dist/{radio-group-DRXtgyf5.js.map → radio-group-Pnq88mNF.js.map} +1 -1
- package/dist/radio-group.cjs +1 -1
- package/dist/radio-group.js +1 -1
- package/dist/{schmancy-steps-container-DguK5NK4.cjs → schmancy-steps-container-BfAnYBQC.cjs} +2 -2
- package/dist/{schmancy-steps-container-DguK5NK4.cjs.map → schmancy-steps-container-BfAnYBQC.cjs.map} +1 -1
- package/dist/{schmancy-steps-container-D1k0kjKI.js → schmancy-steps-container-Cxi9CAKu.js} +2 -2
- package/dist/{schmancy-steps-container-D1k0kjKI.js.map → schmancy-steps-container-Cxi9CAKu.js.map} +1 -1
- package/dist/{select-BUUelLow.cjs → select-D_vwLTzC.cjs} +2 -2
- package/dist/{select-BUUelLow.cjs.map → select-D_vwLTzC.cjs.map} +1 -1
- package/dist/{select-By_Pm8TG.js → select-Dvc0m2Du.js} +3 -3
- package/dist/{select-By_Pm8TG.js.map → select-Dvc0m2Du.js.map} +1 -1
- package/dist/select.cjs +1 -1
- package/dist/select.js +1 -1
- package/dist/{sheet-CyZB5a4W.cjs → sheet-CckiFxcM.cjs} +2 -2
- package/dist/{sheet-CyZB5a4W.cjs.map → sheet-CckiFxcM.cjs.map} +1 -1
- package/dist/{sheet-CHow9LJ8.js → sheet-Cmkb43UV.js} +3 -3
- package/dist/{sheet-CHow9LJ8.js.map → sheet-Cmkb43UV.js.map} +1 -1
- package/dist/sheet.cjs +1 -1
- package/dist/sheet.js +1 -1
- package/dist/{slider-BORUoU4I.js → slider-CTOGZsFh.js} +3 -3
- package/dist/{slider-BORUoU4I.js.map → slider-CTOGZsFh.js.map} +1 -1
- package/dist/{slider-DCRfwhaP.cjs → slider-Cy4MNGb2.cjs} +2 -2
- package/dist/{slider-DCRfwhaP.cjs.map → slider-Cy4MNGb2.cjs.map} +1 -1
- package/dist/slider.cjs +1 -1
- package/dist/slider.js +1 -1
- package/dist/{spinner-DeHbns2e.cjs → spinner-Dw4YE-LZ.cjs} +2 -2
- package/dist/{spinner-DeHbns2e.cjs.map → spinner-Dw4YE-LZ.cjs.map} +1 -1
- package/dist/{spinner-C-rMlbyB.js → spinner-nNr0i8Wf.js} +3 -3
- package/dist/{spinner-C-rMlbyB.js.map → spinner-nNr0i8Wf.js.map} +1 -1
- package/dist/steps.cjs +1 -1
- package/dist/steps.js +1 -1
- package/dist/{surface-TpxKBWnD.cjs → surface-CMTttVEi.cjs} +2 -2
- package/dist/{surface-TpxKBWnD.cjs.map → surface-CMTttVEi.cjs.map} +1 -1
- package/dist/{surface-HAEl5c8W.js → surface-CcVbJOTT.js} +2 -2
- package/dist/{surface-HAEl5c8W.js.map → surface-CcVbJOTT.js.map} +1 -1
- package/dist/surface.cjs +1 -1
- package/dist/surface.js +1 -1
- package/dist/{table-D7KL2FaN.js → table-ByZ8ut41.js} +2 -2
- package/dist/{table-D7KL2FaN.js.map → table-ByZ8ut41.js.map} +1 -1
- package/dist/{table-DXPDEHEh.cjs → table-CbQcK1h5.cjs} +2 -2
- package/dist/{table-DXPDEHEh.cjs.map → table-CbQcK1h5.cjs.map} +1 -1
- package/dist/table.cjs +1 -1
- package/dist/table.js +1 -1
- package/dist/{tabs-group-CR2cSCNr.cjs → tabs-group-BEEKbPIG.cjs} +2 -2
- package/dist/{tabs-group-CR2cSCNr.cjs.map → tabs-group-BEEKbPIG.cjs.map} +1 -1
- package/dist/{tabs-group-Dm_FCj7q.js → tabs-group-Co1gWTv7.js} +2 -2
- package/dist/{tabs-group-Dm_FCj7q.js.map → tabs-group-Co1gWTv7.js.map} +1 -1
- package/dist/tabs.cjs +1 -1
- package/dist/tabs.js +1 -1
- package/dist/tailwind.mixin-BpqwMTLX.js +43 -0
- package/dist/{tailwind.mixin-Cxj7n9Jd.js.map → tailwind.mixin-BpqwMTLX.js.map} +1 -1
- package/dist/tailwind.mixin-CfdJw976.cjs +2 -0
- package/dist/{tailwind.mixin-CjSVtdHt.cjs.map → tailwind.mixin-CfdJw976.cjs.map} +1 -1
- package/dist/teleport.cjs +1 -1
- package/dist/{teleport.component-72oIW654.cjs → teleport.component-Br--aL4K.cjs} +2 -2
- package/dist/{teleport.component-72oIW654.cjs.map → teleport.component-Br--aL4K.cjs.map} +1 -1
- package/dist/{teleport.component-vWzkjwaD.js → teleport.component-D98NF0fA.js} +37 -37
- package/dist/{teleport.component-vWzkjwaD.js.map → teleport.component-D98NF0fA.js.map} +1 -1
- package/dist/teleport.js +1 -1
- package/dist/{textarea-DcSAsR60.js → textarea-4HpWvkc3.js} +2 -2
- package/dist/{textarea-DcSAsR60.js.map → textarea-4HpWvkc3.js.map} +1 -1
- package/dist/{textarea-CLlh5-HA.cjs → textarea-DIBNzSOF.cjs} +2 -2
- package/dist/{textarea-CLlh5-HA.cjs.map → textarea-DIBNzSOF.cjs.map} +1 -1
- package/dist/textarea.cjs +1 -1
- package/dist/textarea.js +1 -1
- package/dist/{theme-button-B7_LXWoe.js → theme-button-ChDLKOJ8.js} +2 -2
- package/dist/{theme-button-B7_LXWoe.js.map → theme-button-ChDLKOJ8.js.map} +1 -1
- package/dist/{theme-button-53Mhj3kQ.cjs → theme-button-CrQPvn70.cjs} +2 -2
- package/dist/{theme-button-53Mhj3kQ.cjs.map → theme-button-CrQPvn70.cjs.map} +1 -1
- package/dist/theme-button.cjs +1 -1
- package/dist/theme-button.js +1 -1
- package/dist/theme.cjs +1 -1
- package/dist/{theme.component-Drmkh4sF.cjs → theme.component-DJ8BSZaI.cjs} +2 -2
- package/dist/{theme.component-Drmkh4sF.cjs.map → theme.component-DJ8BSZaI.cjs.map} +1 -1
- package/dist/{theme.component-yFb6vlsT.js → theme.component-DhPLhwDE.js} +2 -2
- package/dist/{theme.component-yFb6vlsT.js.map → theme.component-DhPLhwDE.js.map} +1 -1
- package/dist/theme.js +1 -1
- package/dist/{timezone-enXRjPy1.cjs → timezone-BH5wNofv.cjs} +2 -2
- package/dist/{timezone-enXRjPy1.cjs.map → timezone-BH5wNofv.cjs.map} +1 -1
- package/dist/{timezone-DxkvIe7V.js → timezone-CzCyse5N.js} +3 -3
- package/dist/{timezone-DxkvIe7V.js.map → timezone-CzCyse5N.js.map} +1 -1
- package/dist/{tree-Bt4J6QVI.cjs → tree-BSKoUX-3.cjs} +2 -2
- package/dist/{tree-Bt4J6QVI.cjs.map → tree-BSKoUX-3.cjs.map} +1 -1
- package/dist/{tree-CQccoc9W.js → tree-DwEecdA9.js} +2 -2
- package/dist/{tree-CQccoc9W.js.map → tree-DwEecdA9.js.map} +1 -1
- package/dist/tree.cjs +1 -1
- package/dist/tree.js +1 -1
- package/dist/{typewriter-DGserMVU.js → typewriter-Cw_HKjhG.js} +4 -4
- package/dist/{typewriter-DGserMVU.js.map → typewriter-Cw_HKjhG.js.map} +1 -1
- package/dist/{typewriter-WqDo75_3.cjs → typewriter-DdhbEfaH.cjs} +2 -2
- package/dist/{typewriter-WqDo75_3.cjs.map → typewriter-DdhbEfaH.cjs.map} +1 -1
- package/dist/typewriter.cjs +1 -1
- package/dist/typewriter.js +1 -1
- package/dist/{typography-D5E46rwN.js → typography-D2EIvv42.js} +2 -2
- package/dist/{typography-D5E46rwN.js.map → typography-D2EIvv42.js.map} +1 -1
- package/dist/{typography-DbNitvGl.cjs → typography-d490P1tM.cjs} +2 -2
- package/dist/{typography-DbNitvGl.cjs.map → typography-d490P1tM.cjs.map} +1 -1
- package/dist/typography.cjs +1 -1
- package/dist/typography.js +1 -1
- package/package.json +1 -1
- package/types/src/autocomplete/autocomplete.d.ts +104 -53
- package/types/src/chips/chip.d.ts +0 -1
- package/dist/autocomplete-CVTRldW1.cjs +0 -58
- package/dist/autocomplete-CVTRldW1.cjs.map +0 -1
- package/dist/autocomplete-DzBhZOVS.js +0 -295
- package/dist/autocomplete-DzBhZOVS.js.map +0 -1
- package/dist/date-range-6fQ4ypDJ.js.map +0 -1
- package/dist/date-range-DoZNetuD.cjs.map +0 -1
- package/dist/icon-button-BUUtmKnu.cjs.map +0 -1
- package/dist/icon-button-DlnuclQQ.js.map +0 -1
- package/dist/option-hsAZB8ji.cjs.map +0 -1
- package/dist/option-vV2BM1B_.js.map +0 -1
- package/dist/tailwind.mixin-CjSVtdHt.cjs +0 -2
- package/dist/tailwind.mixin-Cxj7n9Jd.js +0 -43
|
@@ -1,295 +0,0 @@
|
|
|
1
|
-
import { computePosition as A, offset as D, shift as E, size as I } from "@floating-ui/dom";
|
|
2
|
-
import { Subject as V, fromEvent as O, from as q } from "rxjs";
|
|
3
|
-
import "lit/directives/class-map.js";
|
|
4
|
-
import "lit/directives/style-map.js";
|
|
5
|
-
import { $ as M } from "./litElement.mixin-PXLBM6N4.js";
|
|
6
|
-
import "./tailwind.mixin-Cxj7n9Jd.js";
|
|
7
|
-
import { c as j } from "./ripple-BumgqsDT.js";
|
|
8
|
-
import { S as T } from "./theme.interface-C5Kj6WjD.js";
|
|
9
|
-
import { html as x } from "lit";
|
|
10
|
-
import { property as y, query as w, queryAssignedElements as H, eventOptions as R, customElement as Y } from "lit/decorators.js";
|
|
11
|
-
import { createRef as L, ref as N } from "lit/directives/ref.js";
|
|
12
|
-
import { takeUntil as C, distinctUntilChanged as z, tap as P, filter as B, switchMap as U } from "rxjs/operators";
|
|
13
|
-
function F(t, e) {
|
|
14
|
-
if (!t || !e) return 0;
|
|
15
|
-
if (t === e) return 1;
|
|
16
|
-
const s = t.toLowerCase().trim(), i = e.toLowerCase().trim();
|
|
17
|
-
if (s === i) return 1;
|
|
18
|
-
const a = i.includes(s) ? 1 : 0, o = function(p, u) {
|
|
19
|
-
let l = 0, n = 0;
|
|
20
|
-
for (; l < p.length && n < u.length; ) p[l] === u[n] && l++, n++;
|
|
21
|
-
return l === p.length;
|
|
22
|
-
}(s, i) ? 0.8 : 0, r = function(p, u) {
|
|
23
|
-
const l = (m) => m.split("").reduce((b, g) => (b[g] = (b[g] || 0) + 1, b), {}), n = l(p), f = l(u);
|
|
24
|
-
return Object.keys(n).every((m) => (f[m] || 0) >= n[m]);
|
|
25
|
-
}(s, i) ? 0.7 : 0, v = function(p, u) {
|
|
26
|
-
if (p.length < 2 || u.length < 2) return 0;
|
|
27
|
-
const l = $(p), n = $(u);
|
|
28
|
-
let f = 0;
|
|
29
|
-
const m = new Array(n.length).fill(!1);
|
|
30
|
-
for (const b of l) for (let g = 0; g < n.length; g++) if (!m[g] && n[g] === b) {
|
|
31
|
-
f++, m[g] = !0;
|
|
32
|
-
break;
|
|
33
|
-
}
|
|
34
|
-
return 2 * f / (l.length + n.length);
|
|
35
|
-
}(s, i), d = Math.max(s.length, i.length), k = function(p, u) {
|
|
36
|
-
if (p.length === 0) return u.length;
|
|
37
|
-
if (u.length === 0) return p.length;
|
|
38
|
-
const l = [];
|
|
39
|
-
for (let n = 0; n <= u.length; n++) l[n] = [n];
|
|
40
|
-
for (let n = 0; n <= p.length; n++) l[0][n] = n;
|
|
41
|
-
for (let n = 1; n <= u.length; n++) for (let f = 1; f <= p.length; f++) {
|
|
42
|
-
const m = p[f - 1] === u[n - 1] ? 0 : 1;
|
|
43
|
-
l[n][f] = Math.min(l[n - 1][f] + 1, l[n][f - 1] + 1, l[n - 1][f - 1] + m);
|
|
44
|
-
}
|
|
45
|
-
return l[u.length][p.length];
|
|
46
|
-
}(s, i), S = d ? 1 - k / d : 0;
|
|
47
|
-
return Math.max(a, o, r, v, S);
|
|
48
|
-
}
|
|
49
|
-
function $(t) {
|
|
50
|
-
const e = [];
|
|
51
|
-
for (let s = 0; s < t.length - 1; s++) e.push(t.substring(s, s + 2));
|
|
52
|
-
return e;
|
|
53
|
-
}
|
|
54
|
-
var W = Object.defineProperty, K = Object.getOwnPropertyDescriptor, c = (t, e, s, i) => {
|
|
55
|
-
for (var a, o = i > 1 ? void 0 : i ? K(e, s) : e, r = t.length - 1; r >= 0; r--) (a = t[r]) && (o = (i ? a(e, s, o) : a(o)) || o);
|
|
56
|
-
return i && o && W(e, s, o), o;
|
|
57
|
-
};
|
|
58
|
-
let h = class extends M(":host{display:block;border:unset!important;line-height:unset!important;background:unset!important;padding:unset!important;font-size:unset!important;box-shadow:unset!important}:host:focus{box-shadow:unset!important}") {
|
|
59
|
-
constructor() {
|
|
60
|
-
super(...arguments), this.required = !1, this.placeholder = "", this.value = "", this.label = "", this.maxHeight = "25vh", this.multi = !1, this.description = "", this.inputRef = L(), this.searchTerm$ = new V(), this.isOpen = !1, this.autocomplete = "on", this.startY = 0, this.statusMessage = "", this.handleKeyDown = (t) => {
|
|
61
|
-
const e = this.options.filter((i) => !i.hidden);
|
|
62
|
-
if (!this.isOpen) return void (["Enter", "ArrowDown"].includes(t.key) && (t.preventDefault(), this.showOptions().then(() => {
|
|
63
|
-
e.length > 0 && this.focusOption(e, 0);
|
|
64
|
-
})));
|
|
65
|
-
let s = e.findIndex((i) => i.matches(":focus"));
|
|
66
|
-
switch (s === -1 && (s = 0), t.key) {
|
|
67
|
-
case "Escape":
|
|
68
|
-
t.preventDefault(), this.hideOptions(), this.input.focus();
|
|
69
|
-
break;
|
|
70
|
-
case "ArrowDown":
|
|
71
|
-
t.preventDefault(), this.focusOption(e, Math.min(s + 1, e.length - 1));
|
|
72
|
-
break;
|
|
73
|
-
case "ArrowUp":
|
|
74
|
-
t.preventDefault(), this.focusOption(e, Math.max(s - 1, 0));
|
|
75
|
-
break;
|
|
76
|
-
case "Home":
|
|
77
|
-
t.preventDefault(), this.focusOption(e, 0);
|
|
78
|
-
break;
|
|
79
|
-
case "End":
|
|
80
|
-
t.preventDefault(), this.focusOption(e, e.length - 1);
|
|
81
|
-
break;
|
|
82
|
-
case "Enter":
|
|
83
|
-
if (t.preventDefault(), e[s]) {
|
|
84
|
-
const i = e[s].getAttribute("data-value") || e[s].getAttribute("value");
|
|
85
|
-
i && this.handleOptionClick(i);
|
|
86
|
-
}
|
|
87
|
-
break;
|
|
88
|
-
case "Tab":
|
|
89
|
-
this.hideOptions();
|
|
90
|
-
break;
|
|
91
|
-
default:
|
|
92
|
-
if (t.key.length === 1 && /[a-zA-Z0-9]/.test(t.key)) {
|
|
93
|
-
const i = t.key.toLowerCase(), a = e.findIndex((o) => (o.label || o.textContent || "").toLowerCase().startsWith(i));
|
|
94
|
-
a !== -1 && (t.preventDefault(), this.focusOption(e, a));
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
};
|
|
98
|
-
}
|
|
99
|
-
connectedCallback() {
|
|
100
|
-
super.connectedCallback(), this.id || (this.id = `schmancy-autocomplete-${Math.random().toString(36).substr(2, 9)}`), O(this, "keydown").pipe(C(this.disconnecting)).subscribe({ next: (t) => {
|
|
101
|
-
this.handleKeyDown(t);
|
|
102
|
-
} }), this.searchTerm$.pipe(z(), P((t) => {
|
|
103
|
-
var a;
|
|
104
|
-
const e = t.trim().toLowerCase(), s = this.options.map((o) => {
|
|
105
|
-
const r = (o.label || o.textContent || "").toLowerCase();
|
|
106
|
-
return { option: o, score: F(e, r) };
|
|
107
|
-
}).filter(({ score: o }) => o > 0.8).sort((o, r) => o.score - r.score);
|
|
108
|
-
this.options.forEach((o) => o.hidden = !0);
|
|
109
|
-
for (const { option: o } of s) o.hidden = !1;
|
|
110
|
-
this.empty.hidden = s.length > 0, this.statusMessage = s.length > 0 ? `${s.length} option${s.length === 1 ? "" : "s"} available.` : "No results found.";
|
|
111
|
-
const i = (a = this.shadowRoot) == null ? void 0 : a.querySelector("#live-status");
|
|
112
|
-
i && (i.textContent = this.statusMessage), this.setupOptionsAccessibility(), this.requestUpdate();
|
|
113
|
-
}), C(this.disconnecting)).subscribe(() => {
|
|
114
|
-
this.showOptions();
|
|
115
|
-
}), O(this, "focusout").pipe(C(this.disconnecting), B((t) => {
|
|
116
|
-
const e = t.relatedTarget;
|
|
117
|
-
return !this.contains(e) && (e == null ? void 0 : e.tagName) !== "SCHMANCY-OPTION";
|
|
118
|
-
}), U(() => {
|
|
119
|
-
this.options.forEach((e) => e.hidden = !1);
|
|
120
|
-
const t = this.optionsContainer.animate([{ opacity: 1 }, { opacity: 0 }], { duration: 150, easing: "cubic-bezier(0.5, 0.01, 0.25, 1)" });
|
|
121
|
-
return q(new Promise((e) => {
|
|
122
|
-
t.onfinish = () => {
|
|
123
|
-
this.optionsContainer.style.display = "none", this.optionsContainer.style.opacity = "1", this.isOpen = !1, e();
|
|
124
|
-
};
|
|
125
|
-
}));
|
|
126
|
-
})).subscribe({ next: () => {
|
|
127
|
-
var t;
|
|
128
|
-
if (this.multi) {
|
|
129
|
-
const e = this.options.filter((s) => s.selected).map((s) => s.label);
|
|
130
|
-
this.input.value = e.join(", ");
|
|
131
|
-
} else this.input.value = ((t = this.options.find((e) => e.value === this.value)) == null ? void 0 : t.label) ?? "";
|
|
132
|
-
} });
|
|
133
|
-
}
|
|
134
|
-
firstUpdated() {
|
|
135
|
-
this.updateInputValue();
|
|
136
|
-
}
|
|
137
|
-
updated(t) {
|
|
138
|
-
super.updated(t), t.has("value") && (this.syncSelectionFromValue(), this.updateInputValue());
|
|
139
|
-
}
|
|
140
|
-
handleSlotChange() {
|
|
141
|
-
this.empty.hidden = this.options.some((t) => !t.hidden), this.syncSelectionFromValue(), this.updateInputValue(), this.setupOptionsAccessibility();
|
|
142
|
-
}
|
|
143
|
-
setupOptionsAccessibility() {
|
|
144
|
-
this.options.forEach((t, e) => {
|
|
145
|
-
t.setAttribute("role", "option"), t.id || (t.id = `${this.id}-option-${e}`), t.tabIndex = -1, t.setAttribute("aria-selected", String(this.multi ? t.selected : t.value === this.value));
|
|
146
|
-
});
|
|
147
|
-
}
|
|
148
|
-
syncSelectionFromValue() {
|
|
149
|
-
if (this.multi) {
|
|
150
|
-
const t = this.value.split(",").map((e) => e.trim()).filter(Boolean);
|
|
151
|
-
this.options.forEach((e) => {
|
|
152
|
-
e.selected = t.includes(e.value);
|
|
153
|
-
});
|
|
154
|
-
} else this.options.forEach((t) => {
|
|
155
|
-
t.selected = t.value === this.value;
|
|
156
|
-
});
|
|
157
|
-
}
|
|
158
|
-
updateInputValue() {
|
|
159
|
-
requestAnimationFrame(() => {
|
|
160
|
-
var t;
|
|
161
|
-
if (this.multi) {
|
|
162
|
-
const e = this.options.filter((s) => s.selected).map((s) => s.label);
|
|
163
|
-
this.input.value = e.join(", ");
|
|
164
|
-
} else {
|
|
165
|
-
const e = (t = this.options.find((s) => s.value === this.value)) == null ? void 0 : t.label;
|
|
166
|
-
this.input.value = e ?? "";
|
|
167
|
-
}
|
|
168
|
-
});
|
|
169
|
-
}
|
|
170
|
-
async showOptions() {
|
|
171
|
-
if (!this.optionsContainer) return;
|
|
172
|
-
this.optionsContainer.removeAttribute("hidden"), this.optionsContainer.style.display = "block", this.isOpen = !0;
|
|
173
|
-
const { x: t, y: e } = await A(this.input, this.optionsContainer, { placement: "bottom-start", middleware: [D(5), E({ padding: 5 }), I({ apply({ availableWidth: s, availableHeight: i, elements: a, rects: o }) {
|
|
174
|
-
const r = o.reference.width;
|
|
175
|
-
a.floating.style.minWidth = `${r}px`, a.floating.style.maxWidth = `${s}px`, a.floating.style.maxHeight = `${i}px`;
|
|
176
|
-
} })] });
|
|
177
|
-
Object.assign(this.optionsContainer.style, { left: `${t}px`, top: `${e}px`, position: "absolute", zIndex: "9999", overflowY: "auto" });
|
|
178
|
-
}
|
|
179
|
-
hideOptions() {
|
|
180
|
-
var e, s;
|
|
181
|
-
(e = this.optionsContainer) == null || e.setAttribute("hidden", "true"), this.optionsContainer && (this.optionsContainer.style.display = "none"), this.isOpen = !1;
|
|
182
|
-
const t = (s = this.shadowRoot) == null ? void 0 : s.querySelector("#live-status");
|
|
183
|
-
t && (t.textContent = "Dropdown closed.");
|
|
184
|
-
}
|
|
185
|
-
handleInputChange(t) {
|
|
186
|
-
t.preventDefault(), t.stopPropagation();
|
|
187
|
-
const e = t.detail.value;
|
|
188
|
-
this.searchTerm$.next(e);
|
|
189
|
-
}
|
|
190
|
-
handleOptionClick(t) {
|
|
191
|
-
var e, s;
|
|
192
|
-
if (this.multi) {
|
|
193
|
-
const i = this.options.find((d) => d.value === t);
|
|
194
|
-
i && (i.selected = !i.selected);
|
|
195
|
-
const a = this.options.filter((d) => d.selected).map((d) => d.value);
|
|
196
|
-
this.value = a.join(","), this.updateInputValue();
|
|
197
|
-
const o = this.options.filter((d) => d.selected).map((d) => d.label), r = o.length > 0 ? `Selected: ${o.join(", ")}` : "No options selected", v = (e = this.shadowRoot) == null ? void 0 : e.querySelector("#live-status");
|
|
198
|
-
v && (v.textContent = r), this.dispatchEvent(new CustomEvent("change", { detail: { value: a }, bubbles: !0, composed: !0 }));
|
|
199
|
-
} else {
|
|
200
|
-
const i = this.options.find((r) => r.value === t), a = (i == null ? void 0 : i.label) || "";
|
|
201
|
-
this.hideOptions(), this.value = t, this.updateInputValue();
|
|
202
|
-
const o = (s = this.shadowRoot) == null ? void 0 : s.querySelector("#live-status");
|
|
203
|
-
o && (o.textContent = `Selected: ${a}`), this.dispatchEvent(new CustomEvent("change", { detail: { value: t }, bubbles: !0, composed: !0 }));
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
checkValidity() {
|
|
207
|
-
return this.multi ? this.options.some((t) => t.selected) : !!this.value;
|
|
208
|
-
}
|
|
209
|
-
reportValidity() {
|
|
210
|
-
var t;
|
|
211
|
-
return (t = this.inputRef.value) == null ? void 0 : t.reportValidity();
|
|
212
|
-
}
|
|
213
|
-
handleTouchStart(t) {
|
|
214
|
-
var e, s;
|
|
215
|
-
this.startY = ((s = (e = t.touches) == null ? void 0 : e[0]) == null ? void 0 : s.clientY) ?? 0;
|
|
216
|
-
}
|
|
217
|
-
preventScroll(t) {
|
|
218
|
-
var o, r;
|
|
219
|
-
const e = t.target;
|
|
220
|
-
if (!this.optionsContainer.contains(e)) return;
|
|
221
|
-
const s = this.optionsContainer.scrollTop, i = this.optionsContainer.scrollHeight - this.optionsContainer.offsetHeight, a = ((r = (o = t.touches) == null ? void 0 : o[0]) == null ? void 0 : r.clientY) ?? 0;
|
|
222
|
-
(s <= 0 && a > this.startY || s >= i && a < this.startY) && t.preventDefault();
|
|
223
|
-
}
|
|
224
|
-
focusOption(t, e) {
|
|
225
|
-
if (!t.length) return;
|
|
226
|
-
const s = t[e];
|
|
227
|
-
s && (s.focus(), this.input.setAttribute("aria-activedescendant", s.id), s.scrollIntoView && s.scrollIntoView({ block: "nearest" }));
|
|
228
|
-
}
|
|
229
|
-
render() {
|
|
230
|
-
const t = `${this.id}-desc`;
|
|
231
|
-
return x`
|
|
232
|
-
<div class="relative">
|
|
233
|
-
<!-- Live region for screen reader announcements -->
|
|
234
|
-
<div id="live-status" role="status" aria-live="polite" class="sr-only"></div>
|
|
235
|
-
|
|
236
|
-
<!-- Optional description for the autocomplete -->
|
|
237
|
-
${this.description ? x`<div id="${t}" class="sr-only">${this.description}</div>` : ""}
|
|
238
|
-
|
|
239
|
-
<!-- The trigger slot (if any) overrides the default SchmancyInput -->
|
|
240
|
-
<slot name="trigger">
|
|
241
|
-
<sch-input
|
|
242
|
-
.autocomplete=${this.autocomplete}
|
|
243
|
-
${N(this.inputRef)}
|
|
244
|
-
id="input"
|
|
245
|
-
class="w-full"
|
|
246
|
-
.label=${this.label}
|
|
247
|
-
.placeholder=${this.placeholder}
|
|
248
|
-
.required=${this.required}
|
|
249
|
-
type="search"
|
|
250
|
-
inputmode="text"
|
|
251
|
-
autocomplete="off"
|
|
252
|
-
clickable
|
|
253
|
-
role="combobox"
|
|
254
|
-
aria-autocomplete="list"
|
|
255
|
-
aria-haspopup="listbox"
|
|
256
|
-
aria-controls="options"
|
|
257
|
-
aria-expanded=${this.isOpen}
|
|
258
|
-
aria-describedby=${this.description ? t : void 0}
|
|
259
|
-
@focus=${() => this.showOptions()}
|
|
260
|
-
@change=${this.handleInputChange}
|
|
261
|
-
>
|
|
262
|
-
</sch-input>
|
|
263
|
-
</slot>
|
|
264
|
-
|
|
265
|
-
<ul
|
|
266
|
-
id="options"
|
|
267
|
-
tabindex="-1"
|
|
268
|
-
class="absolute z-30 mt-1 w-full overflow-auto rounded-md shadow-sm"
|
|
269
|
-
role="listbox"
|
|
270
|
-
aria-multiselectable=${this.multi ? "true" : "false"}
|
|
271
|
-
aria-label=${`${this.label || "Options"} dropdown`}
|
|
272
|
-
hidden
|
|
273
|
-
@click=${(e) => {
|
|
274
|
-
var i;
|
|
275
|
-
const s = (i = e.detail) == null ? void 0 : i.value;
|
|
276
|
-
s && this.handleOptionClick(s);
|
|
277
|
-
}}
|
|
278
|
-
@touchstart=${this.handleTouchStart}
|
|
279
|
-
@touchmove=${this.preventScroll}
|
|
280
|
-
${j({ bgColor: T.sys.color.surface.container })}
|
|
281
|
-
@slotchange=${this.handleSlotChange}
|
|
282
|
-
>
|
|
283
|
-
<!-- "No results" option -->
|
|
284
|
-
<li id="empty" tabindex="-1" role="option" aria-disabled="true" class="p-2 text-center">
|
|
285
|
-
<schmancy-typography type="label">No results found</schmancy-typography>
|
|
286
|
-
</li>
|
|
287
|
-
<!-- Slot for the <schmancy-option> elements -->
|
|
288
|
-
<slot></slot>
|
|
289
|
-
</ul>
|
|
290
|
-
</div>
|
|
291
|
-
`;
|
|
292
|
-
}
|
|
293
|
-
};
|
|
294
|
-
c([y({ type: Boolean })], h.prototype, "required", 2), c([y({ type: String })], h.prototype, "placeholder", 2), c([y({ type: String, reflect: !0 })], h.prototype, "value", 2), c([y({ type: String, reflect: !0 })], h.prototype, "label", 2), c([y({ type: String })], h.prototype, "maxHeight", 2), c([y({ type: Boolean })], h.prototype, "multi", 2), c([y({ type: String })], h.prototype, "description", 2), c([w("#options")], h.prototype, "optionsContainer", 2), c([w("#empty")], h.prototype, "empty", 2), c([w("sch-input")], h.prototype, "input", 2), c([H({ flatten: !0 })], h.prototype, "options", 2), c([y({ type: Boolean, reflect: !0 })], h.prototype, "isOpen", 2), c([y({ type: String, reflect: !0 })], h.prototype, "autocomplete", 2), c([R({ passive: !0 })], h.prototype, "handleOptionClick", 1), h = c([Y("schmancy-autocomplete")], h);
|
|
295
|
-
//# sourceMappingURL=autocomplete-DzBhZOVS.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"autocomplete-DzBhZOVS.js","sources":["../src/utils/search.ts","../src/autocomplete/autocomplete.ts"],"sourcesContent":["/**\n * Calculate similarity score between two strings.\n * Returns a value between 0 (no match) and 1 (exact match).\n * Includes all similarity methods from the original filter directive.\n *\n * @param query The search query string\n * @param target The target string to compare against\n * @returns A similarity score from 0 to 1\n */\nexport function similarity(query: string, target: string): number {\n\t// Handle edge cases\n\tif (!query || !target) return 0\n\tif (query === target) return 1\n\n\t// Normalize strings for comparison\n\tconst normalizedQuery = query.toLowerCase().trim()\n\tconst normalizedTarget = target.toLowerCase().trim()\n\n\t// Simple exact match check\n\tif (normalizedQuery === normalizedTarget) return 1\n\n\t// Calculate different similarity metrics using all methods from the original filter\n\n\t// 1. Direct substring match\n\tconst substringScore = normalizedTarget.includes(normalizedQuery) ? 1 : 0\n\n\t// 2. Subsequence check\n\tconst subsequenceScore = isSubsequence(normalizedQuery, normalizedTarget) ? 0.8 : 0\n\n\t// 3. Anagram/character frequency match\n\tconst anagramScore = hasAllCharacters(normalizedQuery, normalizedTarget) ? 0.7 : 0\n\n\t// 4. Dice coefficient based on bigrams\n\tconst diceScore = diceCoefficient(normalizedQuery, normalizedTarget)\n\n\t// 5. Levenshtein distance\n\tconst maxLength = Math.max(normalizedQuery.length, normalizedTarget.length)\n\tconst levenshteinDistance = calculateLevenshtein(normalizedQuery, normalizedTarget)\n\tconst levenshteinScore = maxLength ? 1 - levenshteinDistance / maxLength : 0\n\n\t// Return the maximum score from all methods\n\treturn Math.max(substringScore, subsequenceScore, anagramScore, diceScore, levenshteinScore)\n}\n\n/**\n * Check if string 'sub' is a subsequence of string 'str'.\n * All characters in 'sub' must appear in order in 'str'.\n */\nfunction isSubsequence(sub: string, str: string): boolean {\n\tlet i = 0,\n\t\tj = 0\n\twhile (i < sub.length && j < str.length) {\n\t\tif (sub[i] === str[j]) i++\n\t\tj++\n\t}\n\treturn i === sub.length\n}\n\n/**\n * Check if all characters in 'query' are present in 'target'.\n * For example, \"aovc\" matches \"avocados\" (anagram subset matching).\n */\nfunction hasAllCharacters(query: string, target: string): boolean {\n\tconst countChars = (s: string): Record<string, number> => {\n\t\treturn s.split('').reduce(\n\t\t\t(acc, char) => {\n\t\t\t\tacc[char] = (acc[char] || 0) + 1\n\t\t\t\treturn acc\n\t\t\t},\n\t\t\t{} as Record<string, number>,\n\t\t)\n\t}\n\n\tconst queryCount = countChars(query)\n\tconst targetCount = countChars(target)\n\n\treturn Object.keys(queryCount).every(char => (targetCount[char] || 0) >= queryCount[char])\n}\n\n/**\n * Generate bigrams for a string.\n * A bigram is a sequence of two adjacent characters.\n */\nfunction getBigrams(s: string): string[] {\n\tconst bigrams = []\n\tfor (let i = 0; i < s.length - 1; i++) {\n\t\tbigrams.push(s.substring(i, i + 2))\n\t}\n\treturn bigrams\n}\n\n/**\n * Compute Dice's coefficient for two strings based on bigrams.\n * Returns a value between 0 (no similarity) and 1 (perfect match).\n */\nfunction diceCoefficient(s1: string, s2: string): number {\n\tif (s1.length < 2 || s2.length < 2) return 0\n\n\tconst bigrams1 = getBigrams(s1)\n\tconst bigrams2 = getBigrams(s2)\n\n\tlet intersection = 0\n\tconst used = new Array(bigrams2.length).fill(false)\n\n\tfor (const bigram of bigrams1) {\n\t\tfor (let i = 0; i < bigrams2.length; i++) {\n\t\t\tif (!used[i] && bigrams2[i] === bigram) {\n\t\t\t\tintersection++\n\t\t\t\tused[i] = true\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\n\treturn (2 * intersection) / (bigrams1.length + bigrams2.length)\n}\n\n/**\n * Calculate Levenshtein distance between two strings.\n */\nfunction calculateLevenshtein(a: string, b: string): number {\n\tif (a.length === 0) return b.length\n\tif (b.length === 0) return a.length\n\n\tconst matrix: number[][] = []\n\n\t// Initialize the matrix\n\tfor (let i = 0; i <= b.length; i++) {\n\t\tmatrix[i] = [i]\n\t}\n\tfor (let j = 0; j <= a.length; j++) {\n\t\tmatrix[0][j] = j\n\t}\n\n\t// Calculate distances\n\tfor (let i = 1; i <= b.length; i++) {\n\t\tfor (let j = 1; j <= a.length; j++) {\n\t\t\tconst cost = a[j - 1] === b[i - 1] ? 0 : 1\n\t\t\tmatrix[i][j] = Math.min(\n\t\t\t\tmatrix[i - 1][j] + 1, // deletion\n\t\t\t\tmatrix[i][j - 1] + 1, // insertion\n\t\t\t\tmatrix[i - 1][j - 1] + cost, // substitution\n\t\t\t)\n\t\t}\n\t}\n\n\treturn matrix[b.length][a.length]\n}\n","import { computePosition, offset, shift, size } 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 { 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'\nimport { similarity } from '@schmancy/utils/search'\n\nexport type SchmancyAutocompleteChangeEvent = CustomEvent<{\n\tvalue: string | string[]\n}>\n\n/**\n * The SchmancyAutocomplete component provides an accessible autocomplete field with keyboard navigation.\n * @element schmancy-autocomplete\n * @fires change - Emitted when a selection is made\n * @slot - Default slot for schmancy-option elements\n * @slot trigger - Optional slot to override the default input\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@property({ type: String }) maxHeight = '25vh'\n\t@property({ type: Boolean }) multi = false\n\n\t/**\n\t * Optional description for the autocomplete to improve accessibility.\n\t * Will be associated with the input via aria-describedby.\n\t */\n\t@property({ type: String }) description = ''\n\n\t/** Direct reference to the <input> inside <sch-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('sch-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// Flag to track dropdown state\n\t@property({ type: Boolean, reflect: true }) isOpen = false\n\n\t/** Autocomplete/autofill hints. */\n\t@property({ type: String, reflect: true })\n\tpublic autocomplete: AutoFill = 'on'\n\n\t// iOS scroll-blocking logic\n\tprivate startY = 0\n\n\t// Store status message for screen readers\n\tprivate statusMessage = ''\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\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\n\t\t// 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 || option.textContent || '').toLowerCase()\n\t\t\t\t\t\t\tconst score = similarity(searchTerm, optionText)\n\t\t\t\t\t\t\treturn { option, score }\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.filter(({ score }) => {\n\t\t\t\t\t\t\t// For short search terms, be lenient\n\t\t\t\t\t\t\treturn score > 0.8\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.sort((a, b) => a.score - b.score)\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 status message for screen readers\n\t\t\t\t\tthis.statusMessage =\n\t\t\t\t\t\tmatches.length > 0\n\t\t\t\t\t\t\t? `${matches.length} option${matches.length === 1 ? '' : 's'} available.`\n\t\t\t\t\t\t\t: 'No results found.'\n\n\t\t\t\t\t// Update the live region to announce the results\n\t\t\t\t\tconst liveRegion = this.shadowRoot?.querySelector('#live-status')\n\t\t\t\t\tif (liveRegion) {\n\t\t\t\t\t\tliveRegion.textContent = this.statusMessage\n\t\t\t\t\t}\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// 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 => {\n\t\t\t\t\t// Don't close if focus moved to an option\n\t\t\t\t\tconst relatedTarget = e.relatedTarget as Element\n\t\t\t\t\treturn !this.contains(relatedTarget) && relatedTarget?.tagName !== 'SCHMANCY-OPTION'\n\t\t\t\t}),\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\tthis.isOpen = false\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\tif (!this.optionsContainer) return\n\n\t\tthis.optionsContainer.removeAttribute('hidden')\n\t\tthis.optionsContainer.style.display = 'block'\n\t\tthis.isOpen = true\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\tshift({ padding: 5 }),\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})\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\tthis.isOpen = false\n\n\t\t// Announce that the dropdown is closed to screen readers\n\t\tconst liveRegion = this.shadowRoot?.querySelector('#live-status')\n\t\tif (liveRegion) {\n\t\t\tliveRegion.textContent = 'Dropdown closed.'\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\n\t\t\t// Announce selection to screen readers\n\t\t\tconst selectedLabels = this.options.filter(o => o.selected).map(o => o.label)\n\t\t\tconst announcement = selectedLabels.length > 0 ? `Selected: ${selectedLabels.join(', ')}` : 'No options selected'\n\n\t\t\tconst liveRegion = this.shadowRoot?.querySelector('#live-status')\n\t\t\tif (liveRegion) {\n\t\t\t\tliveRegion.textContent = announcement\n\t\t\t}\n\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\tconst selectedOption = this.options.find(o => o.value === value)\n\t\t\tconst selectedLabel = selectedOption?.label || ''\n\n\t\t\tthis.hideOptions()\n\t\t\tthis.value = value\n\t\t\tthis.updateInputValue()\n\n\t\t\t// Announce selection to screen readers\n\t\t\tconst liveRegion = this.shadowRoot?.querySelector('#live-status')\n\t\t\tif (liveRegion) {\n\t\t\t\tliveRegion.textContent = `Selected: ${selectedLabel}`\n\t\t\t}\n\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 * - Home/End to navigate to first/last option\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.isOpen) {\n\t\t\tif (['Enter', 'ArrowDown'].includes(e.key)) {\n\t\t\t\t// Removed ' ' (space) here\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 'Home':\n\t\t\t\te.preventDefault()\n\t\t\t\tthis.focusOption(options, 0)\n\t\t\t\tbreak\n\t\t\tcase 'End':\n\t\t\t\te.preventDefault()\n\t\t\t\tthis.focusOption(options, options.length - 1)\n\t\t\t\tbreak\n\t\t\tcase 'Enter': // Removed ' ' (space) case here\n\t\t\t\te.preventDefault()\n\t\t\t\tif (options[currentIndex]) {\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\n\t\t\t\tthis.hideOptions()\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\t// For letter key presses, find and focus the first option that starts with that letter\n\t\t\t\tif (e.key.length === 1 && /[a-zA-Z0-9]/.test(e.key)) {\n\t\t\t\t\tconst searchKey = e.key.toLowerCase()\n\t\t\t\t\tconst matchIndex = options.findIndex(option =>\n\t\t\t\t\t\t(option.label || option.textContent || '').toLowerCase().startsWith(searchKey),\n\t\t\t\t\t)\n\n\t\t\t\t\tif (matchIndex !== -1) {\n\t\t\t\t\t\te.preventDefault()\n\t\t\t\t\t\tthis.focusOption(options, matchIndex)\n\t\t\t\t\t}\n\t\t\t\t}\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\tif (!options.length) return\n\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\n\t\t\t// Ensure the focused option is visible in the dropdown (scroll if needed)\n\t\t\tif (option.scrollIntoView) {\n\t\t\t\toption.scrollIntoView({ block: 'nearest' })\n\t\t\t}\n\t\t}\n\t}\n\n\trender() {\n\t\t// Create a unique ID for the description\n\t\tconst descriptionId = `${this.id}-desc`\n\n\t\treturn html`\n\t\t\t<div class=\"relative\">\n\t\t\t\t<!-- Live region for screen reader announcements -->\n\t\t\t\t<div id=\"live-status\" role=\"status\" aria-live=\"polite\" class=\"sr-only\"></div>\n\n\t\t\t\t<!-- Optional description for the autocomplete -->\n\t\t\t\t${this.description ? html`<div id=\"${descriptionId}\" class=\"sr-only\">${this.description}</div>` : ''}\n\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<sch-input\n\t\t\t\t\t\t.autocomplete=${this.autocomplete}\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=${this.isOpen}\n\t\t\t\t\t\taria-describedby=${this.description ? descriptionId : undefined}\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</sch-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\taria-label=${`${this.label || 'Options'} dropdown`}\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\" role=\"option\" aria-disabled=\"true\" class=\"p-2 text-center\">\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":["similarity","query","target","normalizedQuery","toLowerCase","trim","normalizedTarget","substringScore","includes","subsequenceScore","sub","str","i","j","length","anagramScore","countChars","s","split","reduce","acc","char","queryCount","targetCount","Object","keys","every","diceScore","s1","s2","bigrams1","getBigrams","bigrams2","intersection","used","Array","fill","bigram","maxLength","Math","max","levenshteinDistance","a","b","matrix","cost","min","levenshteinScore","bigrams","push","substring","SchmancyAutocomplete","$LitElement","super","arguments","this","required","placeholder","value","label","maxHeight","multi","description","inputRef","createRef","searchTerm$","Subject","isOpen","autocomplete","startY","statusMessage","handleKeyDown","e","options","filter","o","hidden","key","preventDefault","showOptions","then","focusOption","currentIndex","findIndex","matches","hideOptions","input","focus","getAttribute","handleOptionClick","test","searchKey","matchIndex","option","textContent","startsWith","connectedCallback","id","random","toString","substr","fromEvent","pipe","takeUntil","disconnecting","subscribe","next","distinctUntilChanged","tap","term","searchTerm","map","optionText","score","sort","forEach","empty","liveRegion","shadowRoot","querySelector","setupOptionsAccessibility","requestUpdate","relatedTarget","contains","tagName","switchMap","animation","optionsContainer","animate","opacity","duration","easing","from","Promise","resolve","onfinish","style","display","selected","join","find","firstUpdated","updateInputValue","changedProps","updated","has","syncSelectionFromValue","handleSlotChange","some","index","setAttribute","tabIndex","String","values","v","Boolean","requestAnimationFrame","found","removeAttribute","x","y","computePosition","placement","middleware","offset","shift","padding","size","apply","availableWidth","availableHeight","elements","rects","referenceWidth","reference","width","floating","minWidth","maxWidth","assign","left","top","position","zIndex","overflowY","event","stopPropagation","detail","selectedValues","selectedLabels","announcement","dispatchEvent","CustomEvent","bubbles","composed","selectedOption","selectedLabel","reportValidity","touches","clientY","scrollTop","contentHeight","scrollHeight","offsetHeight","currentY","scrollIntoView","block","descriptionId","html","ref","handleInputChange","detailVal","handleTouchStart","preventScroll","color","bgColor","SchmancyTheme","sys","surface","container","__decorateClass","property","type","prototype","reflect","queryAssignedElements","flatten","eventOptions","passive","customElement"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"date-range-6fQ4ypDJ.js","sources":["../../../../.yarn/berry/cache/dayjs-npm-1.11.13-d478bb9479-10c0.zip/node_modules/dayjs/dayjs.min.js","../src/date-range/date-utils.ts","../src/date-range/date-range.ts"],"sourcesContent":["!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},g=\"en\",D={};D[g]=M;var p=\"$isDayjsObject\",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if(\"string\"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split(\"-\");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v=\"set\"+(this.$u?\"UTC\":\"\");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+\"Hours\",0);case u:return $(v+\"Minutes\",1);case s:return $(v+\"Seconds\",2);case i:return $(v+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=b.p(t),f=\"set\"+(this.$u?\"UTC\":\"\"),l=(n={},n[a]=f+\"Date\",n[d]=f+\"Date\",n[c]=f+\"Month\",n[h]=f+\"FullYear\",n[u]=f+\"Hours\",n[s]=f+\"Minutes\",n[i]=f+\"Seconds\",n[r]=f+\"Milliseconds\",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,\"0\")},$=f||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case\"YY\":return String(e.$y).slice(-2);case\"YYYY\":return b.s(e.$y,4,\"0\");case\"M\":return a+1;case\"MM\":return b.s(a+1,2,\"0\");case\"MMM\":return h(n.monthsShort,a,c,3);case\"MMMM\":return h(c,a);case\"D\":return e.$D;case\"DD\":return b.s(e.$D,2,\"0\");case\"d\":return String(e.$W);case\"dd\":return h(n.weekdaysMin,e.$W,o,2);case\"ddd\":return h(n.weekdaysShort,e.$W,o,3);case\"dddd\":return o[e.$W];case\"H\":return String(s);case\"HH\":return b.s(s,2,\"0\");case\"h\":return d(1);case\"hh\":return d(2);case\"a\":return $(s,u,!0);case\"A\":return $(s,u,!1);case\"m\":return String(u);case\"mm\":return b.s(u,2,\"0\");case\"s\":return String(e.$s);case\"ss\":return b.s(e.$s,2,\"0\");case\"SSS\":return b.s(e.$ms,3,\"0\");case\"Z\":return i}return null}(t)||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),k=_.prototype;return O.prototype=k,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",c],[\"$y\",h],[\"$D\",d]].forEach((function(t){k[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=!0),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));","import dayjs from 'dayjs'\n\ntype DateFormat = 'YYYY-MM-DD' | 'YYYY-MM-DDTHH:mm'\n\n/**\n * Ensures that a date string conforms to a specific format.\n * If the date is already in the correct format, it returns the original string.\n * If the date is in a different format, it attempts to convert it to the specified format.\n * If the date is invalid or cannot be converted, it returns null.\n *\n * @param dateString The date string to validate and format.\n * @param expectedFormat The expected date format (e.g., 'YYYY-MM-DD', 'YYYY-MM-DDTHH:mm').\n * @returns The formatted date string, or null if the date is invalid.\n */\nfunction enforceDateFormat(dateString: string | undefined, expectedFormat: DateFormat): string | null {\n\tif (!dateString) {\n\t\treturn null // Or handle the undefined case differently if needed\n\t}\n\n\tconst parsedDate = dayjs(dateString)\n\n\tif (!parsedDate.isValid()) {\n\t\treturn null // Date is invalid\n\t}\n\n\treturn parsedDate.format(expectedFormat)\n}\n\n/**\n * Validates if the initial date range values are in the expected format.\n *\n * @param dateFrom The dateFrom value to validate.\n * @param dateTo The dateTo value to validate.\n * @param expectedFormat The expected date format.\n * @returns An object indicating whether each date is valid, and the formatted date or null if invalid.\n */\nfunction validateInitialDateRange(\n\tdateFrom: string | undefined,\n\tdateTo: string | undefined,\n\texpectedFormat: DateFormat,\n): {\n\tdateFrom: string | null\n\tdateTo: string | null\n\tisValid: boolean\n} {\n\tconst formattedDateFrom = enforceDateFormat(dateFrom, expectedFormat)\n\tconst formattedDateTo = enforceDateFormat(dateTo, expectedFormat)\n\n\tconst isValid = formattedDateFrom !== null && formattedDateTo !== null\n\n\treturn {\n\t\tdateFrom: formattedDateFrom,\n\t\tdateTo: formattedDateTo,\n\t\tisValid,\n\t}\n}\n\nexport { validateInitialDateRange }\n","import { $LitElement } from '@mixins/index'\nimport { SchmancyInputChangeEvent } from '@schmancy/input'\nimport SchmancyMenu from '@schmancy/menu/menu'\nimport dayjs from 'dayjs'\nimport { html } from 'lit'\nimport { customElement, property, query, state } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\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: dayjs.OpUnitType\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 = dayjs().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: dayjs().subtract(1, 'days').startOf('day').format(format),\n\t\t\t\t\tdateTo: dayjs().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: dayjs().startOf('day').format(format),\n\t\t\t\t\tdateTo: dayjs().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: dayjs().add(1, 'days').startOf('day').format(format),\n\t\t\t\t\tdateTo: dayjs().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: dayjs().startOf('week').format(format),\n\t\t\t\t\tdateTo: dayjs().endOf('week').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: dayjs().subtract(1, 'weeks').startOf('week').format(format),\n\t\t\t\t\tdateTo: dayjs().subtract(1, 'weeks').endOf('week').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: dayjs().startOf('month').format(format),\n\t\t\t\t\tdateTo: dayjs().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 = dayjs(this.dateFrom.value)\n\t\t\tconst toMoment = dayjs(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 = dayjs(this.dateTo.value).diff(dayjs(this.dateFrom.value), 'days') || 1\n\t\tconst newDateFrom = dayjs(this.dateFrom.value)\n\t\t\t.add(factor * currentDiff, 'days')\n\t\t\t.format(format)\n\t\tconst newDateTo = dayjs(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\n\t\t\t\t\t@click=${(event: Event) => event.stopPropagation()}\n\t\t\t\t\tslot=\"button\"\n\t\t\t\t\talign=\"center\"\n\t\t\t\t\tcols=\"auto 1fr auto\"\n\t\t\t\t>\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@click=${(event: Event) => event.stopPropagation()}\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 = dayjs(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@click=${(event: Event) => event.stopPropagation()}\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 = dayjs(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":["t","e","n","r","i","s","u","a","o","c","f","h","d","l","$","y","M","name","weekdays","split","months","ordinal","m","String","length","Array","join","v","z","utcOffset","Math","abs","floor","date","year","month","clone","add","ceil","p","w","D","ms","Q","toLowerCase","replace","g","S","_","O","args","arguments","b","locale","$L","utc","$u","x","$x","$offset","this","parse","prototype","$d","Date","NaN","test","match","substring","UTC","init","$y","getFullYear","$M","getMonth","$D","getDate","$W","getDay","$H","getHours","$m","getMinutes","$s","getSeconds","$ms","getMilliseconds","$utils","isValid","toString","isSame","startOf","endOf","isAfter","isBefore","$g","set","unix","valueOf","getTime","toDate","apply","slice","$locale","weekStart","$set","min","daysInMonth","get","Number","round","subtract","format","invalidDate","meridiem","monthsShort","weekdaysMin","weekdaysShort","getTimezoneOffset","diff","toJSON","toISOString","toUTCString","k","forEach","extend","$i","isDayjs","en","Ls","enforceDateFormat","dateString","expectedFormat","parsedDate","dayjs","SchmancyDateRange","$LitElement","super","type","selectedDateRange","connectedCallback","initPresetRanges","dateFormat","getDateFormat","validatedRange","dateFrom","dateTo","formattedDateFrom","formattedDateTo","value","updateSelectedDateRange","now","fromDate","dispatchEvent","CustomEvent","detail","bubbles","composed","requestUpdate","changedProps","has","presetRanges","label","range","step","preset","find","fromMoment","toMoment","fromStr","getDisplayFormat","toStr","setDateRange","factor","event","stopPropagation","currentDiff","newDateFrom","newDateTo","render","html","shiftDateRange","map","handlePresetChange","ifDefined","minDate","preventDefault","fmt","selectedDate","checkOutInput","setAttribute","maxDate","handleDateRangeChange","__decorateClass","property","Object","query","state","customElement"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"date-range-DoZNetuD.cjs","sources":["../../../../.yarn/berry/cache/dayjs-npm-1.11.13-d478bb9479-10c0.zip/node_modules/dayjs/dayjs.min.js","../src/date-range/date-utils.ts","../src/date-range/date-range.ts"],"sourcesContent":["!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},g=\"en\",D={};D[g]=M;var p=\"$isDayjsObject\",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if(\"string\"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split(\"-\");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v=\"set\"+(this.$u?\"UTC\":\"\");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+\"Hours\",0);case u:return $(v+\"Minutes\",1);case s:return $(v+\"Seconds\",2);case i:return $(v+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=b.p(t),f=\"set\"+(this.$u?\"UTC\":\"\"),l=(n={},n[a]=f+\"Date\",n[d]=f+\"Date\",n[c]=f+\"Month\",n[h]=f+\"FullYear\",n[u]=f+\"Hours\",n[s]=f+\"Minutes\",n[i]=f+\"Seconds\",n[r]=f+\"Milliseconds\",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,\"0\")},$=f||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case\"YY\":return String(e.$y).slice(-2);case\"YYYY\":return b.s(e.$y,4,\"0\");case\"M\":return a+1;case\"MM\":return b.s(a+1,2,\"0\");case\"MMM\":return h(n.monthsShort,a,c,3);case\"MMMM\":return h(c,a);case\"D\":return e.$D;case\"DD\":return b.s(e.$D,2,\"0\");case\"d\":return String(e.$W);case\"dd\":return h(n.weekdaysMin,e.$W,o,2);case\"ddd\":return h(n.weekdaysShort,e.$W,o,3);case\"dddd\":return o[e.$W];case\"H\":return String(s);case\"HH\":return b.s(s,2,\"0\");case\"h\":return d(1);case\"hh\":return d(2);case\"a\":return $(s,u,!0);case\"A\":return $(s,u,!1);case\"m\":return String(u);case\"mm\":return b.s(u,2,\"0\");case\"s\":return String(e.$s);case\"ss\":return b.s(e.$s,2,\"0\");case\"SSS\":return b.s(e.$ms,3,\"0\");case\"Z\":return i}return null}(t)||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),k=_.prototype;return O.prototype=k,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",c],[\"$y\",h],[\"$D\",d]].forEach((function(t){k[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=!0),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));","import dayjs from 'dayjs'\n\ntype DateFormat = 'YYYY-MM-DD' | 'YYYY-MM-DDTHH:mm'\n\n/**\n * Ensures that a date string conforms to a specific format.\n * If the date is already in the correct format, it returns the original string.\n * If the date is in a different format, it attempts to convert it to the specified format.\n * If the date is invalid or cannot be converted, it returns null.\n *\n * @param dateString The date string to validate and format.\n * @param expectedFormat The expected date format (e.g., 'YYYY-MM-DD', 'YYYY-MM-DDTHH:mm').\n * @returns The formatted date string, or null if the date is invalid.\n */\nfunction enforceDateFormat(dateString: string | undefined, expectedFormat: DateFormat): string | null {\n\tif (!dateString) {\n\t\treturn null // Or handle the undefined case differently if needed\n\t}\n\n\tconst parsedDate = dayjs(dateString)\n\n\tif (!parsedDate.isValid()) {\n\t\treturn null // Date is invalid\n\t}\n\n\treturn parsedDate.format(expectedFormat)\n}\n\n/**\n * Validates if the initial date range values are in the expected format.\n *\n * @param dateFrom The dateFrom value to validate.\n * @param dateTo The dateTo value to validate.\n * @param expectedFormat The expected date format.\n * @returns An object indicating whether each date is valid, and the formatted date or null if invalid.\n */\nfunction validateInitialDateRange(\n\tdateFrom: string | undefined,\n\tdateTo: string | undefined,\n\texpectedFormat: DateFormat,\n): {\n\tdateFrom: string | null\n\tdateTo: string | null\n\tisValid: boolean\n} {\n\tconst formattedDateFrom = enforceDateFormat(dateFrom, expectedFormat)\n\tconst formattedDateTo = enforceDateFormat(dateTo, expectedFormat)\n\n\tconst isValid = formattedDateFrom !== null && formattedDateTo !== null\n\n\treturn {\n\t\tdateFrom: formattedDateFrom,\n\t\tdateTo: formattedDateTo,\n\t\tisValid,\n\t}\n}\n\nexport { validateInitialDateRange }\n","import { $LitElement } from '@mixins/index'\nimport { SchmancyInputChangeEvent } from '@schmancy/input'\nimport SchmancyMenu from '@schmancy/menu/menu'\nimport dayjs from 'dayjs'\nimport { html } from 'lit'\nimport { customElement, property, query, state } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\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: dayjs.OpUnitType\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 = dayjs().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: dayjs().subtract(1, 'days').startOf('day').format(format),\n\t\t\t\t\tdateTo: dayjs().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: dayjs().startOf('day').format(format),\n\t\t\t\t\tdateTo: dayjs().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: dayjs().add(1, 'days').startOf('day').format(format),\n\t\t\t\t\tdateTo: dayjs().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: dayjs().startOf('week').format(format),\n\t\t\t\t\tdateTo: dayjs().endOf('week').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: dayjs().subtract(1, 'weeks').startOf('week').format(format),\n\t\t\t\t\tdateTo: dayjs().subtract(1, 'weeks').endOf('week').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: dayjs().startOf('month').format(format),\n\t\t\t\t\tdateTo: dayjs().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 = dayjs(this.dateFrom.value)\n\t\t\tconst toMoment = dayjs(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 = dayjs(this.dateTo.value).diff(dayjs(this.dateFrom.value), 'days') || 1\n\t\tconst newDateFrom = dayjs(this.dateFrom.value)\n\t\t\t.add(factor * currentDiff, 'days')\n\t\t\t.format(format)\n\t\tconst newDateTo = dayjs(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\n\t\t\t\t\t@click=${(event: Event) => event.stopPropagation()}\n\t\t\t\t\tslot=\"button\"\n\t\t\t\t\talign=\"center\"\n\t\t\t\t\tcols=\"auto 1fr auto\"\n\t\t\t\t>\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@click=${(event: Event) => event.stopPropagation()}\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 = dayjs(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@click=${(event: Event) => event.stopPropagation()}\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 = dayjs(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":["t","e","n","r","i","s","u","a","o","c","f","h","d","l","$","y","M","name","weekdays","split","months","ordinal","m","String","length","Array","join","v","z","utcOffset","Math","abs","floor","date","year","month","clone","add","ceil","p","w","D","ms","Q","toLowerCase","replace","g","S","_","O","args","arguments","b","locale","$L","utc","$u","x","$x","$offset","this","parse","prototype","$d","Date","NaN","test","match","substring","UTC","init","$y","getFullYear","$M","getMonth","$D","getDate","$W","getDay","$H","getHours","$m","getMinutes","$s","getSeconds","$ms","getMilliseconds","$utils","isValid","toString","isSame","startOf","endOf","isAfter","isBefore","$g","set","unix","valueOf","getTime","toDate","apply","slice","$locale","weekStart","$set","min","daysInMonth","get","Number","round","subtract","format","invalidDate","meridiem","monthsShort","weekdaysMin","weekdaysShort","getTimezoneOffset","diff","toJSON","toISOString","toUTCString","k","forEach","extend","$i","isDayjs","en","Ls","enforceDateFormat","dateString","expectedFormat","parsedDate","dayjs","SchmancyDateRange","$LitElement","constructor","super","type","selectedDateRange","connectedCallback","initPresetRanges","dateFormat","getDateFormat","validatedRange","dateFrom","dateTo","formattedDateFrom","formattedDateTo","value","updateSelectedDateRange","now","fromDate","dispatchEvent","CustomEvent","detail","bubbles","composed","requestUpdate","changedProps","has","presetRanges","label","range","step","preset","find","fromMoment","toMoment","fromStr","getDisplayFormat","toStr","setDateRange","factor","event","stopPropagation","currentDiff","newDateFrom","newDateTo","html","shiftDateRange","map","handlePresetChange","ifDefined","minDate","preventDefault","fmt","selectedDate","checkOutInput","setAttribute","maxDate","handleDateRangeChange","__decorateClass","property","Object","query","state","customElement"],"mappings":"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","x_google_ignoreList":[0]}
|