@expressivecss/expressive 0.14.1 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1589 -1
- package/README.md +9 -8
- package/dist/css/expressive.css +19304 -12021
- package/dist/css/expressive.css.map +1 -1
- package/dist/css/expressive.min.css +1 -1
- package/dist/css/expressive.min.css.map +1 -1
- package/dist/fonts/LICENSE-noto-sans-arabic +93 -0
- package/dist/fonts/LICENSE-noto-sans-hebrew +93 -0
- package/dist/fonts/LICENSE-noto-sans-thai +93 -0
- package/dist/fonts/material-symbols-outlined.woff2 +0 -0
- package/dist/fonts/material-symbols-rounded.woff2 +0 -0
- package/dist/fonts/material-symbols-sharp.woff2 +0 -0
- package/dist/fonts/noto-sans-arabic-arabic-400.woff2 +0 -0
- package/dist/fonts/noto-sans-arabic-arabic-500.woff2 +0 -0
- package/dist/fonts/noto-sans-arabic-arabic-700.woff2 +0 -0
- package/dist/fonts/noto-sans-cyrillic-400.woff2 +0 -0
- package/dist/fonts/noto-sans-cyrillic-500.woff2 +0 -0
- package/dist/fonts/noto-sans-cyrillic-700.woff2 +0 -0
- package/dist/fonts/noto-sans-cyrillic-ext-400.woff2 +0 -0
- package/dist/fonts/noto-sans-cyrillic-ext-500.woff2 +0 -0
- package/dist/fonts/noto-sans-cyrillic-ext-700.woff2 +0 -0
- package/dist/fonts/noto-sans-devanagari-400.woff2 +0 -0
- package/dist/fonts/noto-sans-devanagari-500.woff2 +0 -0
- package/dist/fonts/noto-sans-devanagari-700.woff2 +0 -0
- package/dist/fonts/noto-sans-greek-400.woff2 +0 -0
- package/dist/fonts/noto-sans-greek-500.woff2 +0 -0
- package/dist/fonts/noto-sans-greek-700.woff2 +0 -0
- package/dist/fonts/noto-sans-greek-ext-400.woff2 +0 -0
- package/dist/fonts/noto-sans-greek-ext-500.woff2 +0 -0
- package/dist/fonts/noto-sans-greek-ext-700.woff2 +0 -0
- package/dist/fonts/noto-sans-hebrew-hebrew-400.woff2 +0 -0
- package/dist/fonts/noto-sans-hebrew-hebrew-500.woff2 +0 -0
- package/dist/fonts/noto-sans-hebrew-hebrew-700.woff2 +0 -0
- package/dist/fonts/noto-sans-latin-700.woff2 +0 -0
- package/dist/fonts/noto-sans-latin-ext-400.woff2 +0 -0
- package/dist/fonts/noto-sans-latin-ext-500.woff2 +0 -0
- package/dist/fonts/noto-sans-latin-ext-700.woff2 +0 -0
- package/dist/fonts/noto-sans-thai-thai-400.woff2 +0 -0
- package/dist/fonts/noto-sans-thai-thai-500.woff2 +0 -0
- package/dist/fonts/noto-sans-thai-thai-700.woff2 +0 -0
- package/dist/fonts/noto-sans-vietnamese-400.woff2 +0 -0
- package/dist/fonts/noto-sans-vietnamese-500.woff2 +0 -0
- package/dist/fonts/noto-sans-vietnamese-700.woff2 +0 -0
- package/dist/fonts/roboto-cyrillic-400.woff2 +0 -0
- package/dist/fonts/roboto-cyrillic-500.woff2 +0 -0
- package/dist/fonts/roboto-cyrillic-700.woff2 +0 -0
- package/dist/fonts/roboto-cyrillic-ext-400.woff2 +0 -0
- package/dist/fonts/roboto-cyrillic-ext-500.woff2 +0 -0
- package/dist/fonts/roboto-cyrillic-ext-700.woff2 +0 -0
- package/dist/fonts/roboto-greek-400.woff2 +0 -0
- package/dist/fonts/roboto-greek-500.woff2 +0 -0
- package/dist/fonts/roboto-greek-700.woff2 +0 -0
- package/dist/fonts/roboto-greek-ext-400.woff2 +0 -0
- package/dist/fonts/roboto-greek-ext-500.woff2 +0 -0
- package/dist/fonts/roboto-greek-ext-700.woff2 +0 -0
- package/dist/fonts/roboto-latin-700.woff2 +0 -0
- package/dist/fonts/roboto-latin-ext-400.woff2 +0 -0
- package/dist/fonts/roboto-latin-ext-500.woff2 +0 -0
- package/dist/fonts/roboto-latin-ext-700.woff2 +0 -0
- package/dist/fonts/roboto-vietnamese-400.woff2 +0 -0
- package/dist/fonts/roboto-vietnamese-500.woff2 +0 -0
- package/dist/fonts/roboto-vietnamese-700.woff2 +0 -0
- package/dist/js/chunks/chunk-2CS6TITK.mjs +219 -0
- package/dist/js/chunks/chunk-2CS6TITK.mjs.map +7 -0
- package/dist/js/chunks/chunk-2RLBDFH4.mjs +108 -0
- package/dist/js/chunks/chunk-2RLBDFH4.mjs.map +7 -0
- package/dist/js/chunks/chunk-3L3QIYLC.mjs +85 -0
- package/dist/js/chunks/chunk-3L3QIYLC.mjs.map +7 -0
- package/dist/js/chunks/chunk-4EWGD4V2.mjs +75 -0
- package/dist/js/chunks/chunk-4EWGD4V2.mjs.map +7 -0
- package/dist/js/chunks/chunk-4IKVPCSU.mjs +7 -0
- package/dist/js/chunks/chunk-4IKVPCSU.mjs.map +7 -0
- package/dist/js/chunks/chunk-4PIXLDNJ.mjs +127 -0
- package/dist/js/chunks/chunk-4PIXLDNJ.mjs.map +7 -0
- package/dist/js/chunks/{chunk-A7ALMYUR.mjs → chunk-4QUCNFSD.mjs} +68 -125
- package/dist/js/chunks/chunk-4QUCNFSD.mjs.map +7 -0
- package/dist/js/chunks/{chunk-4TKTLGEM.mjs → chunk-4TRZ2AER.mjs} +35 -41
- package/dist/js/chunks/chunk-4TRZ2AER.mjs.map +7 -0
- package/dist/js/chunks/{chunk-BG6ZRB5H.mjs → chunk-5KIHWJI2.mjs} +40 -26
- package/dist/js/chunks/chunk-5KIHWJI2.mjs.map +7 -0
- package/dist/js/chunks/{chunk-YDCS5S3J.mjs → chunk-67ZPPKXS.mjs} +20 -33
- package/dist/js/chunks/chunk-67ZPPKXS.mjs.map +7 -0
- package/dist/js/chunks/{chunk-3DHK5CZU.mjs → chunk-6FSEUFVW.mjs} +40 -29
- package/dist/js/chunks/chunk-6FSEUFVW.mjs.map +7 -0
- package/dist/js/chunks/chunk-752ADW4M.mjs +225 -0
- package/dist/js/chunks/chunk-752ADW4M.mjs.map +7 -0
- package/dist/js/chunks/{chunk-GVGT6MIU.mjs → chunk-75E5EDJF.mjs} +3 -11
- package/dist/js/chunks/chunk-75E5EDJF.mjs.map +7 -0
- package/dist/js/chunks/{chunk-TBM3FT7G.mjs → chunk-7NLUI3RR.mjs} +148 -78
- package/dist/js/chunks/chunk-7NLUI3RR.mjs.map +7 -0
- package/dist/js/chunks/chunk-7W7TV6NY.mjs +108 -0
- package/dist/js/chunks/chunk-7W7TV6NY.mjs.map +7 -0
- package/dist/js/chunks/chunk-7YQBHTK3.mjs +225 -0
- package/dist/js/chunks/chunk-7YQBHTK3.mjs.map +7 -0
- package/dist/js/chunks/chunk-7YZ5CN3V.mjs +33 -0
- package/dist/js/chunks/chunk-7YZ5CN3V.mjs.map +7 -0
- package/dist/js/chunks/chunk-AI73GJKG.mjs +28 -0
- package/dist/js/chunks/chunk-AI73GJKG.mjs.map +7 -0
- package/dist/js/chunks/{chunk-NS2UMNZV.mjs → chunk-ANKFWNWT.mjs} +21 -45
- package/dist/js/chunks/chunk-ANKFWNWT.mjs.map +7 -0
- package/dist/js/chunks/{chunk-GIW4K4SE.mjs → chunk-B7DQFHA5.mjs} +37 -53
- package/dist/js/chunks/chunk-B7DQFHA5.mjs.map +7 -0
- package/dist/js/chunks/chunk-BIGU5RCJ.mjs +153 -0
- package/dist/js/chunks/chunk-BIGU5RCJ.mjs.map +7 -0
- package/dist/js/chunks/{chunk-GUB3TNO2.mjs → chunk-BPF3I2MN.mjs} +109 -27
- package/dist/js/chunks/chunk-BPF3I2MN.mjs.map +7 -0
- package/dist/js/chunks/chunk-CMGXGYUC.mjs +74 -0
- package/dist/js/chunks/chunk-CMGXGYUC.mjs.map +7 -0
- package/dist/js/chunks/{chunk-JIDMQGK6.mjs → chunk-CSYWKEK3.mjs} +322 -223
- package/dist/js/chunks/chunk-CSYWKEK3.mjs.map +7 -0
- package/dist/js/chunks/chunk-CZSQHXEV.mjs +227 -0
- package/dist/js/chunks/chunk-CZSQHXEV.mjs.map +7 -0
- package/dist/js/chunks/chunk-DZYVU75J.mjs +121 -0
- package/dist/js/chunks/chunk-DZYVU75J.mjs.map +7 -0
- package/dist/js/chunks/{chunk-QDAL4IYN.mjs → chunk-EC26RU2D.mjs} +11 -29
- package/dist/js/chunks/chunk-EC26RU2D.mjs.map +7 -0
- package/dist/js/chunks/{chunk-3GVFZ4XO.mjs → chunk-EVCVFEV3.mjs} +238 -152
- package/dist/js/chunks/chunk-EVCVFEV3.mjs.map +7 -0
- package/dist/js/chunks/chunk-FCNF4GRJ.mjs +445 -0
- package/dist/js/chunks/chunk-FCNF4GRJ.mjs.map +7 -0
- package/dist/js/chunks/chunk-GCWWEZKO.mjs +342 -0
- package/dist/js/chunks/chunk-GCWWEZKO.mjs.map +7 -0
- package/dist/js/chunks/chunk-GNRSYMVH.mjs +1 -0
- package/dist/js/chunks/chunk-GVZQH2H5.mjs +54 -0
- package/dist/js/chunks/chunk-GVZQH2H5.mjs.map +7 -0
- package/dist/js/chunks/chunk-GWZ76SR4.mjs +435 -0
- package/dist/js/chunks/chunk-GWZ76SR4.mjs.map +7 -0
- package/dist/js/chunks/{chunk-ZAS25YFD.mjs → chunk-ILDRRG7T.mjs} +21 -23
- package/dist/js/chunks/chunk-ILDRRG7T.mjs.map +7 -0
- package/dist/js/chunks/chunk-INLZWHLY.mjs +80 -0
- package/dist/js/chunks/chunk-INLZWHLY.mjs.map +7 -0
- package/dist/js/chunks/chunk-JUKBBN6P.mjs +175 -0
- package/dist/js/chunks/chunk-JUKBBN6P.mjs.map +7 -0
- package/dist/js/chunks/chunk-KYIEG4U3.mjs +730 -0
- package/dist/js/chunks/chunk-KYIEG4U3.mjs.map +7 -0
- package/dist/js/chunks/{chunk-KHV6DZXX.mjs → chunk-KZPSAXIU.mjs} +156 -46
- package/dist/js/chunks/chunk-KZPSAXIU.mjs.map +7 -0
- package/dist/js/chunks/chunk-LDXCC2L3.mjs +438 -0
- package/dist/js/chunks/chunk-LDXCC2L3.mjs.map +7 -0
- package/dist/js/chunks/chunk-NAC72P7R.mjs +137 -0
- package/dist/js/chunks/chunk-NAC72P7R.mjs.map +7 -0
- package/dist/js/chunks/chunk-NBJAUGPP.mjs +244 -0
- package/dist/js/chunks/chunk-NBJAUGPP.mjs.map +7 -0
- package/dist/js/chunks/chunk-NNHVANQA.mjs +113 -0
- package/dist/js/chunks/chunk-NNHVANQA.mjs.map +7 -0
- package/dist/js/chunks/chunk-NVQ5EHCU.mjs +376 -0
- package/dist/js/chunks/chunk-NVQ5EHCU.mjs.map +7 -0
- package/dist/js/chunks/{chunk-Z2NRKI7R.mjs → chunk-OP43LLIC.mjs} +44 -73
- package/dist/js/chunks/chunk-OP43LLIC.mjs.map +7 -0
- package/dist/js/chunks/chunk-OUCHKSAW.mjs +63 -0
- package/dist/js/chunks/chunk-OUCHKSAW.mjs.map +7 -0
- package/dist/js/chunks/{chunk-PM655FXL.mjs → chunk-OYNUDOHR.mjs} +20 -48
- package/dist/js/chunks/chunk-OYNUDOHR.mjs.map +7 -0
- package/dist/js/chunks/{chunk-UEZUJQ66.mjs → chunk-P6DRQ6KS.mjs} +36 -31
- package/dist/js/chunks/chunk-P6DRQ6KS.mjs.map +7 -0
- package/dist/js/chunks/chunk-PA7NU5AK.mjs +99 -0
- package/dist/js/chunks/chunk-PA7NU5AK.mjs.map +7 -0
- package/dist/js/chunks/chunk-QACZ6TUP.mjs +224 -0
- package/dist/js/chunks/chunk-QACZ6TUP.mjs.map +7 -0
- package/dist/js/chunks/{chunk-5HQSGDZ5.mjs → chunk-QXKWVHBD.mjs} +286 -203
- package/dist/js/chunks/chunk-QXKWVHBD.mjs.map +7 -0
- package/dist/js/chunks/{chunk-DAIU5SLG.mjs → chunk-ROH2HDB4.mjs} +7 -6
- package/dist/js/chunks/chunk-ROH2HDB4.mjs.map +7 -0
- package/dist/js/chunks/chunk-S23RJ3XY.mjs +86 -0
- package/dist/js/chunks/chunk-S23RJ3XY.mjs.map +7 -0
- package/dist/js/chunks/{chunk-FS7XY3HT.mjs → chunk-SPPHF7YZ.mjs} +36 -29
- package/dist/js/chunks/chunk-SPPHF7YZ.mjs.map +7 -0
- package/dist/js/chunks/chunk-T3BNSRP3.mjs +152 -0
- package/dist/js/chunks/chunk-T3BNSRP3.mjs.map +7 -0
- package/dist/js/chunks/chunk-TFABTUAZ.mjs +108 -0
- package/dist/js/chunks/chunk-TFABTUAZ.mjs.map +7 -0
- package/dist/js/chunks/chunk-U4B3VHFS.mjs +507 -0
- package/dist/js/chunks/chunk-U4B3VHFS.mjs.map +7 -0
- package/dist/js/chunks/chunk-UGJHCHXG.mjs +341 -0
- package/dist/js/chunks/chunk-UGJHCHXG.mjs.map +7 -0
- package/dist/js/chunks/chunk-VFV75DHF.mjs +70 -0
- package/dist/js/chunks/chunk-VFV75DHF.mjs.map +7 -0
- package/dist/js/chunks/{chunk-4HZMB7LI.mjs → chunk-VGY4M57S.mjs} +281 -135
- package/dist/js/chunks/chunk-VGY4M57S.mjs.map +7 -0
- package/dist/js/chunks/chunk-VH4BMAZS.mjs +167 -0
- package/dist/js/chunks/chunk-VH4BMAZS.mjs.map +7 -0
- package/dist/js/chunks/chunk-VJVQIXHC.mjs +123 -0
- package/dist/js/chunks/chunk-VJVQIXHC.mjs.map +7 -0
- package/dist/js/chunks/{chunk-S3XDFGSZ.mjs → chunk-VMY55K2X.mjs} +92 -141
- package/dist/js/chunks/chunk-VMY55K2X.mjs.map +7 -0
- package/dist/js/chunks/{chunk-UEXCIMJZ.mjs → chunk-VR3L2WN5.mjs} +11 -17
- package/dist/js/chunks/chunk-VR3L2WN5.mjs.map +7 -0
- package/dist/js/chunks/chunk-W6FAL3TI.mjs +38 -0
- package/dist/js/chunks/chunk-W6FAL3TI.mjs.map +7 -0
- package/dist/js/chunks/chunk-WU7XJ4RR.mjs +450 -0
- package/dist/js/chunks/chunk-WU7XJ4RR.mjs.map +7 -0
- package/dist/js/chunks/chunk-X7SDA2J5.mjs +116 -0
- package/dist/js/chunks/chunk-X7SDA2J5.mjs.map +7 -0
- package/dist/js/chunks/chunk-Y6H2X7ZC.mjs +209 -0
- package/dist/js/chunks/chunk-Y6H2X7ZC.mjs.map +7 -0
- package/dist/js/chunks/chunk-Y6TLRA3U.mjs +129 -0
- package/dist/js/chunks/chunk-Y6TLRA3U.mjs.map +7 -0
- package/dist/js/chunks/chunk-Z4GICXR2.mjs +190 -0
- package/dist/js/chunks/chunk-Z4GICXR2.mjs.map +7 -0
- package/dist/js/chunks/chunk-Z4OARDZ7.mjs +442 -0
- package/dist/js/chunks/chunk-Z4OARDZ7.mjs.map +7 -0
- package/dist/js/chunks/{chunk-MZ6Z24BX.mjs → chunk-ZJNLAGY5.mjs} +19 -34
- package/dist/js/chunks/chunk-ZJNLAGY5.mjs.map +7 -0
- package/dist/js/chunks/chunk-ZKWUWBUB.mjs +81 -0
- package/dist/js/chunks/chunk-ZKWUWBUB.mjs.map +7 -0
- package/dist/js/chunks/chunk-ZM3XBHWV.mjs +746 -0
- package/dist/js/chunks/chunk-ZM3XBHWV.mjs.map +7 -0
- package/dist/js/chunks/chunk-ZO6ZLHFF.mjs +48 -0
- package/dist/js/chunks/chunk-ZO6ZLHFF.mjs.map +7 -0
- package/dist/js/chunks/chunk-ZVLOUDIJ.mjs +251 -0
- package/dist/js/chunks/chunk-ZVLOUDIJ.mjs.map +7 -0
- package/dist/js/expressive.cjs +10333 -4070
- package/dist/js/expressive.cjs.map +4 -4
- package/dist/js/expressive.js +10333 -4070
- package/dist/js/expressive.js.map +4 -4
- package/dist/js/expressive.min.js +23 -25
- package/dist/js/expressive.min.js.map +4 -4
- package/dist/js/expressive.mjs +184 -69
- package/dist/js/expressive.mjs.map +2 -2
- package/dist/js/internal/behaviors/bottomSheets.mjs +4 -3
- package/dist/js/internal/behaviors/copy.mjs +9 -0
- package/dist/js/internal/behaviors/copy.mjs.map +7 -0
- package/dist/js/internal/behaviors/dataTables.mjs +10 -0
- package/dist/js/internal/behaviors/dataTables.mjs.map +7 -0
- package/dist/js/internal/behaviors/dialogs.mjs +2 -2
- package/dist/js/internal/behaviors/forms.mjs +2 -2
- package/dist/js/internal/behaviors/imageCompare.mjs +8 -0
- package/dist/js/internal/behaviors/imageCompare.mjs.map +7 -0
- package/dist/js/internal/behaviors/lists.mjs +8 -0
- package/dist/js/internal/behaviors/lists.mjs.map +7 -0
- package/dist/js/internal/behaviors/paneResize.mjs +8 -0
- package/dist/js/internal/behaviors/paneResize.mjs.map +7 -0
- package/dist/js/internal/behaviors/sheetDrag.mjs +7 -2
- package/dist/js/internal/behaviors/sideSheets.mjs +4 -3
- package/dist/js/internal/behaviors/sortable.mjs +8 -0
- package/dist/js/internal/behaviors/sortable.mjs.map +7 -0
- package/dist/js/internal/behaviors/theme.mjs +8 -0
- package/dist/js/internal/behaviors/theme.mjs.map +7 -0
- package/dist/js/internal/behaviors/tour.mjs +8 -0
- package/dist/js/internal/behaviors/tour.mjs.map +7 -0
- package/dist/js/internal/behaviors/transferList.mjs +8 -0
- package/dist/js/internal/behaviors/transferList.mjs.map +7 -0
- package/dist/js/internal/components/appBar.mjs +3 -2
- package/dist/js/internal/components/autocomplete.mjs +4 -4
- package/dist/js/internal/components/backToTop.mjs +9 -0
- package/dist/js/internal/components/backToTop.mjs.map +7 -0
- package/dist/js/internal/components/barChart.mjs +5 -4
- package/dist/js/internal/components/buttonGroup.mjs +3 -2
- package/dist/js/internal/components/buttons.mjs +3 -3
- package/dist/js/internal/components/cards.mjs +3 -3
- package/dist/js/internal/components/carousel.mjs +3 -3
- package/dist/js/internal/components/cascader.mjs +10 -0
- package/dist/js/internal/components/cascader.mjs.map +7 -0
- package/dist/js/internal/components/characterCounter.mjs +3 -2
- package/dist/js/internal/components/chips.mjs +6 -5
- package/dist/js/internal/components/colorPicker.mjs +9 -0
- package/dist/js/internal/components/colorPicker.mjs.map +7 -0
- package/dist/js/internal/components/columnChart.mjs +4 -3
- package/dist/js/internal/components/commandPalette.mjs +3 -3
- package/dist/js/internal/components/confetti.mjs +3 -2
- package/dist/js/internal/components/currencyInput.mjs +9 -0
- package/dist/js/internal/components/currencyInput.mjs.map +7 -0
- package/dist/js/internal/components/datepicker.mjs +11 -8
- package/dist/js/internal/components/expandingCard.mjs +3 -3
- package/dist/js/internal/components/funnelChart.mjs +10 -0
- package/dist/js/internal/components/funnelChart.mjs.map +7 -0
- package/dist/js/internal/components/heatmapChart.mjs +4 -3
- package/dist/js/internal/components/hoverCard.mjs +9 -0
- package/dist/js/internal/components/hoverCard.mjs.map +7 -0
- package/dist/js/internal/components/index.mjs +133 -64
- package/dist/js/internal/components/inputMask.mjs +9 -0
- package/dist/js/internal/components/inputMask.mjs.map +7 -0
- package/dist/js/internal/components/keypad.mjs +9 -0
- package/dist/js/internal/components/keypad.mjs.map +7 -0
- package/dist/js/internal/components/lightbox.mjs +3 -3
- package/dist/js/internal/components/lineChart.mjs +29 -4
- package/dist/js/internal/components/loadingOverlay.mjs +9 -0
- package/dist/js/internal/components/loadingOverlay.mjs.map +7 -0
- package/dist/js/internal/components/mapView.mjs +3 -3
- package/dist/js/internal/components/menu.mjs +3 -3
- package/dist/js/internal/components/menubar.mjs +10 -0
- package/dist/js/internal/components/menubar.mjs.map +7 -0
- package/dist/js/internal/components/messageScroller.mjs +3 -3
- package/dist/js/internal/components/mixedChart.mjs +5 -4
- package/dist/js/internal/components/navigationRail.mjs +3 -2
- package/dist/js/internal/components/particles.mjs +3 -2
- package/dist/js/internal/components/pieChart.mjs +4 -3
- package/dist/js/internal/components/pullToRefresh.mjs +9 -0
- package/dist/js/internal/components/pullToRefresh.mjs.map +7 -0
- package/dist/js/internal/components/questionnaire.mjs +3 -3
- package/dist/js/internal/components/radarChart.mjs +4 -3
- package/dist/js/internal/components/radialChart.mjs +4 -3
- package/dist/js/internal/components/registry.mjs +59 -40
- package/dist/js/internal/components/richTextEditor.mjs +3 -3
- package/dist/js/internal/components/sankeyChart.mjs +10 -0
- package/dist/js/internal/components/sankeyChart.mjs.map +7 -0
- package/dist/js/internal/components/scatterChart.mjs +10 -0
- package/dist/js/internal/components/scatterChart.mjs.map +7 -0
- package/dist/js/internal/components/scrollspy.mjs +3 -2
- package/dist/js/internal/components/select.mjs +4 -4
- package/dist/js/internal/components/showMore.mjs +9 -0
- package/dist/js/internal/components/showMore.mjs.map +7 -0
- package/dist/js/internal/components/slider.mjs +3 -3
- package/dist/js/internal/components/snackbar.mjs +2 -2
- package/dist/js/internal/components/swipeActions.mjs +9 -0
- package/dist/js/internal/components/swipeActions.mjs.map +7 -0
- package/dist/js/internal/components/tabs.mjs +3 -4
- package/dist/js/internal/components/timepicker.mjs +5 -4
- package/dist/js/internal/components/tooltip.mjs +3 -3
- package/dist/js/internal/components/treeSelect.mjs +13 -0
- package/dist/js/internal/components/treeSelect.mjs.map +7 -0
- package/dist/js/internal/components/treemapChart.mjs +10 -0
- package/dist/js/internal/components/treemapChart.mjs.map +7 -0
- package/dist/js/internal/core/component.mjs +2 -1
- package/dist/js/internal/core/formControl.mjs +12 -0
- package/dist/js/internal/core/formControl.mjs.map +7 -0
- package/dist/js/internal/core/spring.mjs +11 -0
- package/dist/js/internal/core/spring.mjs.map +7 -0
- package/dist/js/internal/core/utils.mjs +11 -3
- package/dist/js/internal/plugins/dockedDisplayPlugin.mjs +2 -2
- package/dist/js/internal/plugins/modalDisplayPlugin.mjs +13 -0
- package/dist/js/internal/plugins/modalDisplayPlugin.mjs.map +7 -0
- package/dist/js/modular.mjs +175 -69
- package/dist/types/behaviors/bottomSheets.d.ts +19 -3
- package/dist/types/behaviors/copy.d.ts +18 -0
- package/dist/types/behaviors/dataTables.d.ts +129 -0
- package/dist/types/behaviors/dialogs.d.ts +27 -1
- package/dist/types/behaviors/forms.d.ts +68 -2
- package/dist/types/behaviors/imageCompare.d.ts +12 -0
- package/dist/types/behaviors/lists.d.ts +12 -0
- package/dist/types/behaviors/paneResize.d.ts +29 -0
- package/dist/types/behaviors/sheetDrag.d.ts +18 -0
- package/dist/types/behaviors/sideSheets.d.ts +1 -1
- package/dist/types/behaviors/sortable.d.ts +28 -0
- package/dist/types/behaviors/theme.d.ts +22 -0
- package/dist/types/behaviors/tour.d.ts +36 -0
- package/dist/types/behaviors/transferList.d.ts +51 -0
- package/dist/types/components/appBar.d.ts +5 -6
- package/dist/types/components/autocomplete.d.ts +92 -17
- package/dist/types/components/backToTop.d.ts +36 -0
- package/dist/types/components/barChart.d.ts +3 -6
- package/dist/types/components/buttonGroup.d.ts +2 -4
- package/dist/types/components/buttons.d.ts +5 -5
- package/dist/types/components/cards.d.ts +3 -16
- package/dist/types/components/carousel.d.ts +9 -15
- package/dist/types/components/cascader.d.ts +130 -0
- package/dist/types/components/characterCounter.d.ts +2 -15
- package/dist/types/components/chips.d.ts +65 -19
- package/dist/types/components/colorPicker.d.ts +42 -0
- package/dist/types/components/columnChart.d.ts +23 -10
- package/dist/types/components/commandPalette.d.ts +11 -16
- package/dist/types/components/confetti.d.ts +2 -4
- package/dist/types/components/currencyInput.d.ts +59 -0
- package/dist/types/components/datepicker.d.ts +59 -36
- package/dist/types/components/expandingCard.d.ts +6 -6
- package/dist/types/components/funnelChart.d.ts +38 -0
- package/dist/types/components/heatmapChart.d.ts +39 -8
- package/dist/types/components/hoverCard.d.ts +58 -0
- package/dist/types/components/index.d.ts +17 -1
- package/dist/types/components/inputMask.d.ts +30 -0
- package/dist/types/components/keypad.d.ts +66 -0
- package/dist/types/components/lightbox.d.ts +17 -25
- package/dist/types/components/lineChart.d.ts +176 -10
- package/dist/types/components/loadingOverlay.d.ts +42 -0
- package/dist/types/components/mapView.d.ts +26 -17
- package/dist/types/components/menu.d.ts +61 -22
- package/dist/types/components/menubar.d.ts +37 -0
- package/dist/types/components/messageScroller.d.ts +2 -14
- package/dist/types/components/mixedChart.d.ts +15 -6
- package/dist/types/components/navigationRail.d.ts +16 -5
- package/dist/types/components/particles.d.ts +8 -4
- package/dist/types/components/pieChart.d.ts +32 -7
- package/dist/types/components/pullToRefresh.d.ts +80 -0
- package/dist/types/components/questionnaire.d.ts +58 -16
- package/dist/types/components/radarChart.d.ts +10 -6
- package/dist/types/components/radialChart.d.ts +58 -8
- package/dist/types/components/registry.d.ts +77 -3
- package/dist/types/components/richTextEditor.d.ts +6 -14
- package/dist/types/components/sankeyChart.d.ts +72 -0
- package/dist/types/components/scatterChart.d.ts +102 -0
- package/dist/types/components/scrollspy.d.ts +3 -5
- package/dist/types/components/select.d.ts +43 -30
- package/dist/types/components/showMore.d.ts +51 -0
- package/dist/types/components/slider.d.ts +5 -15
- package/dist/types/components/snackbar.d.ts +62 -0
- package/dist/types/components/swipeActions.d.ts +81 -0
- package/dist/types/components/tabs.d.ts +93 -27
- package/dist/types/components/timepicker.d.ts +114 -20
- package/dist/types/components/tooltip.d.ts +56 -20
- package/dist/types/components/treeSelect.d.ts +106 -0
- package/dist/types/components/treemapChart.d.ts +56 -0
- package/dist/types/core/component.d.ts +43 -25
- package/dist/types/core/formControl.d.ts +21 -0
- package/dist/types/core/spring.d.ts +20 -0
- package/dist/types/core/utils.d.ts +85 -72
- package/dist/types/modular.d.ts +33 -1
- package/dist/types/plugins/dockedDisplayPlugin.d.ts +10 -7
- package/dist/types/plugins/modalDisplayPlugin.d.ts +32 -0
- package/package.json +10 -8
- package/src/sass/README.md +27 -18
- package/src/sass/abstracts/_breakpoints.scss +0 -1
- package/src/sass/abstracts/_elevation.scss +13 -7
- package/src/sass/abstracts/_index.scss +1 -0
- package/src/sass/abstracts/_mixins.scss +438 -92
- package/src/sass/abstracts/_spring.scss +63 -0
- package/src/sass/abstracts/_variables.scss +43 -15
- package/src/sass/base/_fonts.scss +61 -48
- package/src/sass/base/_global.scss +105 -34
- package/src/sass/base/_index.scss +3 -1
- package/src/sass/base/_normalize.scss +59 -114
- package/src/sass/base/_print.scss +21 -0
- package/src/sass/base/_prose.scss +68 -0
- package/src/sass/base/_typography.scss +9 -5
- package/src/sass/components/_accordion.scss +9 -16
- package/src/sass/components/_alert.scss +102 -0
- package/src/sass/components/_aura.scss +8 -3
- package/src/sass/components/_avatar.scss +3 -3
- package/src/sass/components/_back-to-top.scss +38 -0
- package/src/sass/components/_badges.scss +7 -13
- package/src/sass/components/_bar-chart.scss +41 -19
- package/src/sass/components/_bottom-sheet.scss +44 -16
- package/src/sass/components/_breadcrumb.scss +8 -1
- package/src/sass/components/_button-groups.scss +44 -89
- package/src/sass/components/_buttons.scss +156 -63
- package/src/sass/components/_calendar.scss +246 -0
- package/src/sass/components/_cards.scss +41 -68
- package/src/sass/components/_carousel.scss +43 -158
- package/src/sass/components/_cascader.scss +142 -0
- package/src/sass/components/_chips.scss +36 -52
- package/src/sass/components/_column-chart.scss +19 -12
- package/src/sass/components/_command-palette.scss +4 -7
- package/src/sass/components/_confetti.scss +0 -2
- package/src/sass/components/_countdown.scss +1 -1
- package/src/sass/components/_data-table.scss +162 -27
- package/src/sass/components/_datepicker.scss +57 -62
- package/src/sass/components/_description-list.scss +85 -0
- package/src/sass/components/_dialog.scss +42 -44
- package/src/sass/components/_docked-display.scss +1 -3
- package/src/sass/components/_drag-handle.scss +16 -20
- package/src/sass/components/_expanding-card.scss +20 -9
- package/src/sass/components/_fab-menu.scss +44 -32
- package/src/sass/components/_funnel-chart.scss +124 -0
- package/src/sass/components/_heatmap-chart.scss +113 -24
- package/src/sass/components/_icon-buttons.scss +7 -8
- package/src/sass/components/_icons-material-design.scss +2 -2
- package/src/sass/components/_image-compare.scss +108 -0
- package/src/sass/components/_index.scss +21 -0
- package/src/sass/components/_keypad.scss +182 -0
- package/src/sass/components/_kpi.scss +6 -11
- package/src/sass/components/_lightbox.scss +26 -20
- package/src/sass/components/_line-chart.scss +16 -2
- package/src/sass/components/_list.scss +59 -14
- package/src/sass/components/_loading-indicator.scss +1 -0
- package/src/sass/components/_loading-overlay.scss +105 -0
- package/src/sass/components/_map.scss +35 -13
- package/src/sass/components/_marquee.scss +3 -2
- package/src/sass/components/_mega-menu.scss +137 -0
- package/src/sass/components/_menu.scss +159 -182
- package/src/sass/components/_menubar.scss +59 -0
- package/src/sass/components/_message-scroller.scss +2 -2
- package/src/sass/components/_message.scss +3 -3
- package/src/sass/components/_mixed-chart.scss +37 -9
- package/src/sass/components/_modal-display.scss +21 -0
- package/src/sass/components/_navbar.scss +43 -65
- package/src/sass/components/_navigation-bar.scss +15 -77
- package/src/sass/components/_navigation-rail.scss +171 -121
- package/src/sass/components/_org-chart.scss +192 -0
- package/src/sass/components/_page-footer.scss +16 -13
- package/src/sass/components/_pagination.scss +6 -13
- package/src/sass/components/_panes.scss +33 -31
- package/src/sass/components/_particles.scss +0 -2
- package/src/sass/components/_pie-chart.scss +91 -11
- package/src/sass/components/_popover.scss +18 -5
- package/src/sass/components/_progress.scss +158 -35
- package/src/sass/components/_pull-to-refresh.scss +90 -0
- package/src/sass/components/_questionnaire.scss +74 -3
- package/src/sass/components/_radar-chart.scss +38 -10
- package/src/sass/components/_radial-chart.scss +113 -5
- package/src/sass/components/_rich-text-editor.scss +2 -2
- package/src/sass/components/_sankey-chart.scss +114 -0
- package/src/sass/components/_scatter-chart.scss +153 -0
- package/src/sass/components/_scrim.scss +0 -2
- package/src/sass/components/_scrollspy.scss +0 -2
- package/src/sass/components/_search.scss +26 -22
- package/src/sass/components/_show-more.scss +8 -0
- package/src/sass/components/_side-sheet.scss +23 -40
- package/src/sass/components/_skeleton.scss +2 -4
- package/src/sass/components/_snackbar.scss +27 -21
- package/src/sass/components/_split-button.scss +5 -5
- package/src/sass/components/_stat.scss +3 -8
- package/src/sass/components/_stepper.scss +1 -5
- package/src/sass/components/_swipe-actions.scss +71 -0
- package/src/sass/components/_tabs.scss +51 -32
- package/src/sass/components/_timeline.scss +12 -12
- package/src/sass/components/_timepicker.scss +111 -112
- package/src/sass/components/_toolbar.scss +35 -47
- package/src/sass/components/_tooltip.scss +21 -12
- package/src/sass/components/_tour.scss +89 -0
- package/src/sass/components/_transfer-list.scss +73 -0
- package/src/sass/components/_transitions.scss +4 -4
- package/src/sass/components/_tree.scss +3 -16
- package/src/sass/components/_treemap-chart.scss +122 -0
- package/src/sass/components/forms/_checkboxes.scss +140 -86
- package/src/sass/components/forms/_color-picker.scss +135 -0
- package/src/sass/components/forms/_color-swatches.scss +85 -0
- package/src/sass/components/forms/_drop-zone.scss +15 -9
- package/src/sass/components/forms/_fieldset.scss +10 -10
- package/src/sass/components/forms/_file-input.scss +6 -9
- package/src/sass/components/forms/_index.scss +3 -1
- package/src/sass/components/forms/_input-fields.scss +254 -90
- package/src/sass/components/forms/_radio-buttons.scss +40 -127
- package/src/sass/components/forms/_rating.scss +2 -32
- package/src/sass/components/forms/_select.scss +199 -23
- package/src/sass/components/forms/_slider.scss +140 -330
- package/src/sass/components/forms/_switches.scss +53 -164
- package/src/sass/custom.scss +10 -1
- package/src/sass/expressive.scss +3 -63
- package/src/sass/tokens/_contrast.scss +94 -0
- package/src/sass/tokens/_elevation.scss +16 -0
- package/src/sass/tokens/_index.scss +5 -0
- package/src/sass/tokens/_motion.scss +109 -0
- package/src/sass/tokens/_reference.scss +72 -141
- package/src/sass/tokens/_shape.scss +38 -0
- package/src/sass/tokens/_stacking.scss +27 -0
- package/src/sass/tokens/_state.scss +2 -4
- package/src/sass/tokens/_theme.scss +11 -2
- package/src/sass/tokens/_vibrant.scss +2 -5
- package/src/sass/utilities/_colors.scss +6 -1
- package/src/sass/utilities/_defer-render.scss +17 -0
- package/src/sass/utilities/_helpers.scss +183 -26
- package/src/sass/utilities/_index.scss +2 -1
- package/src/sass/utilities/_scroll-area.scss +0 -2
- package/src/sass/utilities/_spacing.scss +52 -34
- package/src/sass/utilities/_typescale.scss +8 -1
- package/src/sass/utilities/_visibility.scss +47 -76
- package/src/sass/utilities/_z-depth.scss +7 -4
- package/dist/js/chunks/chunk-3DHK5CZU.mjs.map +0 -7
- package/dist/js/chunks/chunk-3GVFZ4XO.mjs.map +0 -7
- package/dist/js/chunks/chunk-4HZMB7LI.mjs.map +0 -7
- package/dist/js/chunks/chunk-4KMNFIFZ.mjs +0 -270
- package/dist/js/chunks/chunk-4KMNFIFZ.mjs.map +0 -7
- package/dist/js/chunks/chunk-4TKTLGEM.mjs.map +0 -7
- package/dist/js/chunks/chunk-5BKHWHYY.mjs +0 -292
- package/dist/js/chunks/chunk-5BKHWHYY.mjs.map +0 -7
- package/dist/js/chunks/chunk-5HQSGDZ5.mjs.map +0 -7
- package/dist/js/chunks/chunk-6N2XAEFK.mjs +0 -125
- package/dist/js/chunks/chunk-6N2XAEFK.mjs.map +0 -7
- package/dist/js/chunks/chunk-A7ALMYUR.mjs.map +0 -7
- package/dist/js/chunks/chunk-BG6ZRB5H.mjs.map +0 -7
- package/dist/js/chunks/chunk-CUQPB25U.mjs +0 -55
- package/dist/js/chunks/chunk-CUQPB25U.mjs.map +0 -7
- package/dist/js/chunks/chunk-DAIU5SLG.mjs.map +0 -7
- package/dist/js/chunks/chunk-FS7XY3HT.mjs.map +0 -7
- package/dist/js/chunks/chunk-GIW4K4SE.mjs.map +0 -7
- package/dist/js/chunks/chunk-GUB3TNO2.mjs.map +0 -7
- package/dist/js/chunks/chunk-GVGT6MIU.mjs.map +0 -7
- package/dist/js/chunks/chunk-GZKEFWPM.mjs +0 -181
- package/dist/js/chunks/chunk-GZKEFWPM.mjs.map +0 -7
- package/dist/js/chunks/chunk-HKT2S7VM.mjs +0 -48
- package/dist/js/chunks/chunk-HKT2S7VM.mjs.map +0 -7
- package/dist/js/chunks/chunk-ILP3PDTL.mjs +0 -187
- package/dist/js/chunks/chunk-ILP3PDTL.mjs.map +0 -7
- package/dist/js/chunks/chunk-JIDMQGK6.mjs.map +0 -7
- package/dist/js/chunks/chunk-KBNN3QDH.mjs +0 -7
- package/dist/js/chunks/chunk-KBNN3QDH.mjs.map +0 -7
- package/dist/js/chunks/chunk-KHV6DZXX.mjs.map +0 -7
- package/dist/js/chunks/chunk-KY6U46SM.mjs +0 -345
- package/dist/js/chunks/chunk-KY6U46SM.mjs.map +0 -7
- package/dist/js/chunks/chunk-LRZMJZ3T.mjs +0 -291
- package/dist/js/chunks/chunk-LRZMJZ3T.mjs.map +0 -7
- package/dist/js/chunks/chunk-LTWPGFBR.mjs +0 -59
- package/dist/js/chunks/chunk-LTWPGFBR.mjs.map +0 -7
- package/dist/js/chunks/chunk-MNPROCZF.mjs +0 -328
- package/dist/js/chunks/chunk-MNPROCZF.mjs.map +0 -7
- package/dist/js/chunks/chunk-MZ6Z24BX.mjs.map +0 -7
- package/dist/js/chunks/chunk-NS2UMNZV.mjs.map +0 -7
- package/dist/js/chunks/chunk-O5XPWXIQ.mjs +0 -406
- package/dist/js/chunks/chunk-O5XPWXIQ.mjs.map +0 -7
- package/dist/js/chunks/chunk-PM655FXL.mjs.map +0 -7
- package/dist/js/chunks/chunk-QDAL4IYN.mjs.map +0 -7
- package/dist/js/chunks/chunk-QERLECVU.mjs +0 -572
- package/dist/js/chunks/chunk-QERLECVU.mjs.map +0 -7
- package/dist/js/chunks/chunk-QJABDLSD.mjs +0 -112
- package/dist/js/chunks/chunk-QJABDLSD.mjs.map +0 -7
- package/dist/js/chunks/chunk-RHRQKTTX.mjs +0 -139
- package/dist/js/chunks/chunk-RHRQKTTX.mjs.map +0 -7
- package/dist/js/chunks/chunk-S3XDFGSZ.mjs.map +0 -7
- package/dist/js/chunks/chunk-SPETGK25.mjs +0 -59
- package/dist/js/chunks/chunk-SPETGK25.mjs.map +0 -7
- package/dist/js/chunks/chunk-TBM3FT7G.mjs.map +0 -7
- package/dist/js/chunks/chunk-UEXCIMJZ.mjs.map +0 -7
- package/dist/js/chunks/chunk-UEZUJQ66.mjs.map +0 -7
- package/dist/js/chunks/chunk-VGZSAFTX.mjs +0 -173
- package/dist/js/chunks/chunk-VGZSAFTX.mjs.map +0 -7
- package/dist/js/chunks/chunk-X7OCHZVF.mjs +0 -76
- package/dist/js/chunks/chunk-X7OCHZVF.mjs.map +0 -7
- package/dist/js/chunks/chunk-YDCS5S3J.mjs.map +0 -7
- package/dist/js/chunks/chunk-YMSXJON6.mjs +0 -79
- package/dist/js/chunks/chunk-YMSXJON6.mjs.map +0 -7
- package/dist/js/chunks/chunk-Z2NRKI7R.mjs.map +0 -7
- package/dist/js/chunks/chunk-ZAS25YFD.mjs.map +0 -7
- package/dist/js/chunks/chunk-ZKZKNSLC.mjs +0 -1
- /package/dist/js/chunks/{chunk-ZKZKNSLC.mjs.map → chunk-GNRSYMVH.mjs.map} +0 -0
|
@@ -1,17 +1,94 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
ModalDisplayPlugin,
|
|
3
|
+
createDisplayPlugin,
|
|
4
|
+
hideModal
|
|
5
|
+
} from "./chunk-OUCHKSAW.mjs";
|
|
4
6
|
import {
|
|
5
7
|
FormSelect
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import {
|
|
8
|
-
Utils
|
|
9
|
-
} from "./chunk-MNPROCZF.mjs";
|
|
8
|
+
} from "./chunk-EVCVFEV3.mjs";
|
|
10
9
|
import {
|
|
11
10
|
Component
|
|
12
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-CMGXGYUC.mjs";
|
|
12
|
+
import {
|
|
13
|
+
Utils,
|
|
14
|
+
pickerFooter
|
|
15
|
+
} from "./chunk-ZVLOUDIJ.mjs";
|
|
13
16
|
|
|
14
17
|
// src/ts/components/datepicker.ts
|
|
18
|
+
var MONTHS = Array.from({ length: 12 }, (_, month) => new Date(Date.UTC(2023, month, 1)));
|
|
19
|
+
var WEEKDAYS = Array.from({ length: 7 }, (_, day) => new Date(Date.UTC(2023, 0, 1 + day)));
|
|
20
|
+
function localeDates(locale) {
|
|
21
|
+
const names = (dates, options) => {
|
|
22
|
+
const format = new Intl.DateTimeFormat(locale, { ...options, calendar: "gregory", timeZone: "UTC" });
|
|
23
|
+
return dates.map((date) => format.format(date));
|
|
24
|
+
};
|
|
25
|
+
const intl = new Intl.Locale(locale);
|
|
26
|
+
const week = intl.getWeekInfo?.() ?? intl.weekInfo;
|
|
27
|
+
return {
|
|
28
|
+
week: week ? { firstDay: week.firstDay % 7 } : {},
|
|
29
|
+
i18n: {
|
|
30
|
+
months: names(MONTHS, { month: "long" }),
|
|
31
|
+
monthsShort: names(MONTHS, { month: "short" }),
|
|
32
|
+
weekdays: names(WEEKDAYS, { weekday: "long" }),
|
|
33
|
+
weekdaysShort: names(WEEKDAYS, { weekday: "short" }),
|
|
34
|
+
weekdaysAbbrev: names(WEEKDAYS, { weekday: "narrow" })
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
var escapeRegExp = (text) => text.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
39
|
+
var NUMBER = "(\\d{1,2})";
|
|
40
|
+
var named = (names, key) => [
|
|
41
|
+
`(${names.map(escapeRegExp).join("|")})`,
|
|
42
|
+
(parts, text) => key && (parts[key] = names.findIndex((name) => name.toLowerCase() === text.toLowerCase()))
|
|
43
|
+
];
|
|
44
|
+
var READERS = {
|
|
45
|
+
d: () => [NUMBER, (parts, text) => parts.day = +text],
|
|
46
|
+
dd: () => [NUMBER, (parts, text) => parts.day = +text],
|
|
47
|
+
ddd: (i18n) => named(i18n.weekdaysShort),
|
|
48
|
+
dddd: (i18n) => named(i18n.weekdays),
|
|
49
|
+
m: () => [NUMBER, (parts, text) => parts.month = +text - 1],
|
|
50
|
+
mm: () => [NUMBER, (parts, text) => parts.month = +text - 1],
|
|
51
|
+
mmm: (i18n) => named(i18n.monthsShort, "month"),
|
|
52
|
+
mmmm: (i18n) => named(i18n.months, "month"),
|
|
53
|
+
// As Date.parse reads them: 00 to 49 in this century, 50 to 99 in the last.
|
|
54
|
+
yy: () => ["(\\d{2})", (parts, text) => parts.year = +text + (+text < 50 ? 2e3 : 1900)],
|
|
55
|
+
yyyy: () => ["(\\d{4})", (parts, text) => parts.year = +text]
|
|
56
|
+
};
|
|
57
|
+
var pad = (n) => String(n).padStart(2, "0");
|
|
58
|
+
var FORMATS = {
|
|
59
|
+
d: (date) => date.getDate(),
|
|
60
|
+
dd: (date) => pad(date.getDate()),
|
|
61
|
+
ddd: (date, i18n) => i18n.weekdaysShort[date.getDay()],
|
|
62
|
+
dddd: (date, i18n) => i18n.weekdays[date.getDay()],
|
|
63
|
+
m: (date) => date.getMonth() + 1,
|
|
64
|
+
mm: (date) => pad(date.getMonth() + 1),
|
|
65
|
+
mmm: (date, i18n) => i18n.monthsShort[date.getMonth()],
|
|
66
|
+
mmmm: (date, i18n) => i18n.months[date.getMonth()],
|
|
67
|
+
yy: (date) => String(date.getFullYear()).slice(2),
|
|
68
|
+
yyyy: (date) => date.getFullYear()
|
|
69
|
+
};
|
|
70
|
+
function readDate(value, format, i18n) {
|
|
71
|
+
const readers = [];
|
|
72
|
+
const pattern = format.split(/(d{1,4}|m{1,4}|y{4}|yy|!.)/g).map((token) => {
|
|
73
|
+
const reader = READERS[token]?.(i18n);
|
|
74
|
+
if (reader) readers.push(reader);
|
|
75
|
+
return reader ? reader[0] : escapeRegExp(token);
|
|
76
|
+
});
|
|
77
|
+
const match = new RegExp(`^\\s*${pattern.join("")}\\s*$`, "iu").exec(value);
|
|
78
|
+
if (!match) return null;
|
|
79
|
+
const parts = {};
|
|
80
|
+
readers.forEach(([, set], i) => set(parts, match[i + 1]));
|
|
81
|
+
const date = new Date(2e3, 0, 1);
|
|
82
|
+
date.setFullYear(parts.year, parts.month, parts.day);
|
|
83
|
+
const same = [date.getFullYear(), date.getMonth(), date.getDate()].join() === [parts.year, parts.month, parts.day].join();
|
|
84
|
+
return same ? date : null;
|
|
85
|
+
}
|
|
86
|
+
function withLocale(el, options = {}) {
|
|
87
|
+
const locale = Utils.locale(el);
|
|
88
|
+
if (!locale) return options;
|
|
89
|
+
const { week, i18n } = localeDates(locale);
|
|
90
|
+
return { ...week, ...options, i18n: { ...i18n, ...options.i18n } };
|
|
91
|
+
}
|
|
15
92
|
var _defaults = {
|
|
16
93
|
// the default output format for the input field value
|
|
17
94
|
format: "mmm dd, yyyy",
|
|
@@ -46,8 +123,6 @@ var _defaults = {
|
|
|
46
123
|
maxYear: 9999,
|
|
47
124
|
minMonth: void 0,
|
|
48
125
|
maxMonth: void 0,
|
|
49
|
-
startRange: null,
|
|
50
|
-
endRange: null,
|
|
51
126
|
isRTL: false,
|
|
52
127
|
yearRangeReverse: false,
|
|
53
128
|
// Render the month after year in the calendar title
|
|
@@ -67,8 +142,8 @@ var _defaults = {
|
|
|
67
142
|
cancel: "Cancel",
|
|
68
143
|
clear: "Clear",
|
|
69
144
|
done: "Ok",
|
|
70
|
-
previousMonth: "
|
|
71
|
-
nextMonth: "
|
|
145
|
+
previousMonth: "Previous month",
|
|
146
|
+
nextMonth: "Next month",
|
|
72
147
|
months: [
|
|
73
148
|
"January",
|
|
74
149
|
"February",
|
|
@@ -114,10 +189,15 @@ var _defaults = {
|
|
|
114
189
|
};
|
|
115
190
|
var _Datepicker = class _Datepicker extends Component {
|
|
116
191
|
constructor(el, options) {
|
|
117
|
-
|
|
192
|
+
options = withLocale(el, options);
|
|
193
|
+
super(el, options);
|
|
118
194
|
this.multiple = false;
|
|
119
|
-
/**
|
|
120
|
-
this.
|
|
195
|
+
/** What setInputValue last wrote, so reading it back does not depend on the parser. */
|
|
196
|
+
this._writtenInputs = /* @__PURE__ */ new WeakMap();
|
|
197
|
+
this._form = null;
|
|
198
|
+
this._resetDates = /* @__PURE__ */ new WeakMap();
|
|
199
|
+
// Counts selections, so a callback that selects again silences the stale event.
|
|
200
|
+
this._selection = 0;
|
|
121
201
|
/** Nesting depth of {@link _batchDraws}; > 0 means draws are being collected. */
|
|
122
202
|
this._drawDepth = 0;
|
|
123
203
|
/** Whether a draw was requested while batching. */
|
|
@@ -134,11 +214,11 @@ var _Datepicker = class _Datepicker extends Component {
|
|
|
134
214
|
this.draw();
|
|
135
215
|
this.gotoDate(e.target === this.el ? this.date : this.endDate);
|
|
136
216
|
});
|
|
137
|
-
|
|
217
|
+
this._showDisplay();
|
|
138
218
|
if (this.options.onInputInteraction) this.options.onInputInteraction.call(this);
|
|
139
219
|
};
|
|
140
|
-
this._handleInputKeydown = (e) => {
|
|
141
|
-
if (e.key ===
|
|
220
|
+
this._handleInputKeydown = Utils.ignoringComposition((e) => {
|
|
221
|
+
if (e.key === "Enter") {
|
|
142
222
|
e.preventDefault();
|
|
143
223
|
this._batchDraws(() => {
|
|
144
224
|
this.setDateFromInput(e.target);
|
|
@@ -149,7 +229,7 @@ var _Datepicker = class _Datepicker extends Component {
|
|
|
149
229
|
this._syncCalendarFocus(true);
|
|
150
230
|
if (this.options.onInputInteraction) this.options.onInputInteraction.call(this);
|
|
151
231
|
}
|
|
152
|
-
};
|
|
232
|
+
});
|
|
153
233
|
this._handleCalendarFocus = (event) => {
|
|
154
234
|
const button = event.target;
|
|
155
235
|
if (!button.matches(".datepicker-day-button")) return;
|
|
@@ -158,7 +238,7 @@ var _Datepicker = class _Datepicker extends Component {
|
|
|
158
238
|
};
|
|
159
239
|
this._handleCalendarKeydown = (event) => {
|
|
160
240
|
const button = event.target;
|
|
161
|
-
if (!button.matches(".datepicker-day-button") ||
|
|
241
|
+
if (!button.matches(".datepicker-day-button") || !Utils.plainKey(event)) return;
|
|
162
242
|
const date = this._dayDate(button);
|
|
163
243
|
const weekday = (date.getDay() - this.options.firstDay + 7) % 7;
|
|
164
244
|
const offsets = {
|
|
@@ -198,7 +278,7 @@ var _Datepicker = class _Datepicker extends Component {
|
|
|
198
278
|
e.target.getAttribute("data-month"),
|
|
199
279
|
e.target.getAttribute("data-day")
|
|
200
280
|
);
|
|
201
|
-
if (!this.multiple || this.
|
|
281
|
+
if (!this.multiple || this.options.isMultipleSelection) {
|
|
202
282
|
this.setDate(selectedDate);
|
|
203
283
|
}
|
|
204
284
|
if (this.options.isDateRange) {
|
|
@@ -214,7 +294,7 @@ var _Datepicker = class _Datepicker extends Component {
|
|
|
214
294
|
};
|
|
215
295
|
this._handleDateRangeCalendarClick = (date) => {
|
|
216
296
|
if (this.endDate == null || !_Datepicker._compareDates(date, this.endDate)) {
|
|
217
|
-
if (_Datepicker._isDate(this.date) &&
|
|
297
|
+
if (_Datepicker._isDate(this.date) && date < this.date) {
|
|
218
298
|
return;
|
|
219
299
|
}
|
|
220
300
|
this.setDate(date, false, _Datepicker._isDate(this.date));
|
|
@@ -239,6 +319,18 @@ var _Datepicker = class _Datepicker extends Component {
|
|
|
239
319
|
this._handleYearChange = (e) => {
|
|
240
320
|
this.gotoYear(e.target.value);
|
|
241
321
|
};
|
|
322
|
+
// A reset restores the inputs' values after its event, without a change
|
|
323
|
+
// event. Drop the inputs added for extra dates and read the selection back
|
|
324
|
+
// from what the reset left.
|
|
325
|
+
this._handleFormReset = (e) => {
|
|
326
|
+
clearTimeout(this._resetTimer);
|
|
327
|
+
this._resetTimer = setTimeout(() => {
|
|
328
|
+
if (e.defaultPrevented) return;
|
|
329
|
+
if (this.options.isMultipleSelection) this._readBackMultiple();
|
|
330
|
+
else this._readBackSingle();
|
|
331
|
+
this.draw();
|
|
332
|
+
});
|
|
333
|
+
};
|
|
242
334
|
this._handleInputChange = (e) => {
|
|
243
335
|
if (e["detail"]?.firedBy === this) return;
|
|
244
336
|
this.setDateFromInput(e.target);
|
|
@@ -248,21 +340,17 @@ var _Datepicker = class _Datepicker extends Component {
|
|
|
248
340
|
};
|
|
249
341
|
this._confirm = () => {
|
|
250
342
|
this._finishSelection();
|
|
251
|
-
|
|
343
|
+
hideModal(this.displayPlugin);
|
|
344
|
+
this._notify("confirm", this.options.onConfirm, { args: [] });
|
|
252
345
|
};
|
|
253
346
|
this._cancel = () => {
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
this.el["Expressive_Datepicker"] = this;
|
|
257
|
-
this.options = {
|
|
258
|
-
..._Datepicker.defaults,
|
|
259
|
-
...options
|
|
347
|
+
hideModal(this.displayPlugin);
|
|
348
|
+
this._notify("cancel", this.options.onCancel, { args: [] });
|
|
260
349
|
};
|
|
261
|
-
if (
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
if (this.options.
|
|
265
|
-
if (this.options.maxDate) this.options.maxDate.setHours(0, 0, 0, 0);
|
|
350
|
+
if (this.options.displayPlugin === "modal") Object.assign(this.options, { openByDefault: true, autoSubmit: false });
|
|
351
|
+
const { minDate, maxDate } = this.options;
|
|
352
|
+
if (minDate) this.options.minDate = new Date(new Date(minDate.getTime()).setHours(0, 0, 0, 0));
|
|
353
|
+
if (maxDate) this.options.maxDate = new Date(new Date(maxDate.getTime()).setHours(0, 0, 0, 0));
|
|
266
354
|
this.id = Utils.guid();
|
|
267
355
|
if (this.options.isMultipleSelection) {
|
|
268
356
|
this.multiple = true;
|
|
@@ -272,7 +360,8 @@ var _Datepicker = class _Datepicker extends Component {
|
|
|
272
360
|
this._setupVariables();
|
|
273
361
|
this._insertHTMLIntoDOM();
|
|
274
362
|
this._setupEventHandlers();
|
|
275
|
-
|
|
363
|
+
const fromValue = !this.options.defaultDate;
|
|
364
|
+
if (fromValue) {
|
|
276
365
|
this.options.defaultDate = this._parseInput(this.el.value);
|
|
277
366
|
}
|
|
278
367
|
const defDate = this.options.defaultDate;
|
|
@@ -280,6 +369,8 @@ var _Datepicker = class _Datepicker extends Component {
|
|
|
280
369
|
if (this.options.setDefaultDate) {
|
|
281
370
|
this.setDate(defDate, true);
|
|
282
371
|
this.setInputValue(this.el, defDate);
|
|
372
|
+
} else if (fromValue && this._isSelectableDay(defDate)) {
|
|
373
|
+
this.setDate(defDate, true);
|
|
283
374
|
} else {
|
|
284
375
|
this.gotoDate(defDate);
|
|
285
376
|
}
|
|
@@ -296,21 +387,19 @@ var _Datepicker = class _Datepicker extends Component {
|
|
|
296
387
|
}
|
|
297
388
|
}
|
|
298
389
|
}
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
390
|
+
this.displayPlugin = createDisplayPlugin(this.options.displayPlugin, this.el, this.containerEl, this.options.displayPluginOptions, this._cancel);
|
|
391
|
+
if (this.endDateEl) this.displayPlugin?.triggers.push(this.endDateEl);
|
|
392
|
+
for (const input of [this.el, this.endDateEl]) this._rememberResetDate(input);
|
|
393
|
+
}
|
|
394
|
+
// Only a default the picker wrote needs this: any other default text parses
|
|
395
|
+
// at reset exactly as it did here.
|
|
396
|
+
_rememberResetDate(input) {
|
|
397
|
+
const written = input && this._writtenInputs.get(input);
|
|
398
|
+
if (written && written.value === input.defaultValue) this._resetDates.set(input, written);
|
|
302
399
|
}
|
|
303
400
|
static get defaults() {
|
|
304
401
|
return _defaults;
|
|
305
402
|
}
|
|
306
|
-
/**
|
|
307
|
-
* Initializes instances of Datepicker.
|
|
308
|
-
* @param els HTML elements.
|
|
309
|
-
* @param options Component options.
|
|
310
|
-
*/
|
|
311
|
-
static init(els, options = {}) {
|
|
312
|
-
return super.init(els, options, _Datepicker);
|
|
313
|
-
}
|
|
314
403
|
/**
|
|
315
404
|
* Escape a value for interpolation into the calendar markup.
|
|
316
405
|
*
|
|
@@ -326,65 +415,56 @@ var _Datepicker = class _Datepicker extends Component {
|
|
|
326
415
|
static _isDate(obj) {
|
|
327
416
|
return /Date/.test(Object.prototype.toString.call(obj)) && !isNaN(obj.getTime());
|
|
328
417
|
}
|
|
418
|
+
/**
|
|
419
|
+
* A value read without a custom parser: in the picker's own string format
|
|
420
|
+
* with its names, or else as an ISO date or by the browser.
|
|
421
|
+
*/
|
|
422
|
+
_readDefault(value, el) {
|
|
423
|
+
const { format, i18n } = this.options;
|
|
424
|
+
const read = typeof format === "string" && el.type !== "date" ? readDate(value, format, i18n) : null;
|
|
425
|
+
return read ?? _Datepicker._parseDate(value);
|
|
426
|
+
}
|
|
329
427
|
static _parseDate(value) {
|
|
330
428
|
value = value.trim();
|
|
331
429
|
if (!/^\d{4}-\d{2}-\d{2}$/.test(value)) return new Date(Date.parse(value));
|
|
332
430
|
const date = /* @__PURE__ */ new Date(value + "T00:00:00");
|
|
333
431
|
return date.getDate() === Number(value.slice(-2)) ? date : /* @__PURE__ */ new Date(NaN);
|
|
334
432
|
}
|
|
335
|
-
_parseInput(value) {
|
|
336
|
-
if (!value.trim() || !this.options.parse) return
|
|
433
|
+
_parseInput(value, el = this.el) {
|
|
434
|
+
if (!value.trim() || !this.options.parse) return this._readDefault(value, el);
|
|
337
435
|
return this.options.parse(
|
|
338
436
|
value,
|
|
339
437
|
typeof this.options.format === "string" ? this.options.format : ""
|
|
340
438
|
);
|
|
341
439
|
}
|
|
342
|
-
static _isWeekend(date) {
|
|
343
|
-
const day = date.getDay();
|
|
344
|
-
return day === 0 || day === 6;
|
|
345
|
-
}
|
|
346
440
|
/**
|
|
347
441
|
* @deprecated as this function has no effect without any return statement or global parameter setter.
|
|
348
442
|
*/
|
|
349
443
|
static _setToStartOfDay(date) {
|
|
350
444
|
if (_Datepicker._isDate(date)) date.setHours(0, 0, 0, 0);
|
|
351
445
|
}
|
|
352
|
-
static _getDaysInMonth(year, month) {
|
|
353
|
-
return [31, _Datepicker._isLeapYear(year) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month];
|
|
354
|
-
}
|
|
355
|
-
static _isLeapYear(year) {
|
|
356
|
-
return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;
|
|
357
|
-
}
|
|
358
446
|
static _compareDates(a, b) {
|
|
359
447
|
return a.getTime() === b.getTime();
|
|
360
448
|
}
|
|
361
|
-
static _compareWithinRange(day, date, dateEnd) {
|
|
362
|
-
return day.getTime() > date.getTime() && day.getTime() < dateEnd.getTime();
|
|
363
|
-
}
|
|
364
|
-
static _comparePastDate(a, b) {
|
|
365
|
-
return a.getTime() < b.getTime();
|
|
366
|
-
}
|
|
367
|
-
static getInstance(el) {
|
|
368
|
-
return el["Expressive_Datepicker"];
|
|
369
|
-
}
|
|
370
449
|
destroy() {
|
|
371
|
-
this.
|
|
450
|
+
this._events.abort();
|
|
451
|
+
clearTimeout(this._resetTimer);
|
|
372
452
|
this.dateEls?.slice(1).forEach((input) => this._removeDateInput(input));
|
|
373
453
|
if (!this.options.dateRangeEndEl && this.endDateEl) this._removeDateInput(this.endDateEl);
|
|
374
454
|
this.displayPlugin?.destroy();
|
|
375
455
|
this.containerEl.remove();
|
|
376
456
|
this.destroySelects();
|
|
377
|
-
this.
|
|
457
|
+
this._removeDateOverlay();
|
|
458
|
+
super.destroy();
|
|
459
|
+
}
|
|
460
|
+
// CSS paints data-date over a native date input's own text.
|
|
461
|
+
_removeDateOverlay() {
|
|
462
|
+
this.el.classList.remove("datepicker-date-input");
|
|
463
|
+
for (const input of [this.el, this.endDateEl]) if (input?.type === "date") input.removeAttribute("data-date");
|
|
378
464
|
}
|
|
379
465
|
destroySelects() {
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
FormSelect.getInstance(oldYearSelect).destroy();
|
|
383
|
-
}
|
|
384
|
-
const oldMonthSelect = this.calendarEl.querySelector(".orig-select-month");
|
|
385
|
-
if (oldMonthSelect) {
|
|
386
|
-
FormSelect.getInstance(oldMonthSelect).destroy();
|
|
387
|
-
}
|
|
466
|
+
this._formSelect(".orig-select-year")?.destroy();
|
|
467
|
+
this._formSelect(".orig-select-month")?.destroy();
|
|
388
468
|
}
|
|
389
469
|
_insertHTMLIntoDOM() {
|
|
390
470
|
if (this.el.type == "date") {
|
|
@@ -405,10 +485,7 @@ var _Datepicker = class _Datepicker extends Component {
|
|
|
405
485
|
}
|
|
406
486
|
}
|
|
407
487
|
}
|
|
408
|
-
|
|
409
|
-
if (!this.options.autoSubmit) {
|
|
410
|
-
Utils.createConfirmationContainer(this.footer, this.options.i18n.done, this.options.i18n.cancel, this._confirm, this._cancel);
|
|
411
|
-
}
|
|
488
|
+
pickerFooter(this.footer, this.options, "datepicker-clear", this._handleClearClick, this._confirm, this._cancel);
|
|
412
489
|
if (this.options.container) {
|
|
413
490
|
const optEl = this.options.container;
|
|
414
491
|
this.options.container = optEl instanceof HTMLElement ? optEl : document.querySelector(optEl);
|
|
@@ -442,29 +519,40 @@ var _Datepicker = class _Datepicker extends Component {
|
|
|
442
519
|
*/
|
|
443
520
|
formatDate(date, format) {
|
|
444
521
|
const formatArray = format.split(/(d{1,4}|m{1,4}|y{4}|yy|!.)/g);
|
|
445
|
-
return formatArray.map((label) =>
|
|
522
|
+
return formatArray.map((label) => FORMATS[label] ? FORMATS[label](date, this.options.i18n) : label).join("");
|
|
446
523
|
}
|
|
447
524
|
/**
|
|
448
525
|
* Sets date from input field.
|
|
449
526
|
*/
|
|
450
527
|
setDateFromInput(el) {
|
|
451
|
-
|
|
528
|
+
this._syncDataDate(el);
|
|
452
529
|
if ((this.options.isDateRange || !this.options.isMultipleSelection) && !el.value.trim()) {
|
|
453
530
|
this.setSingleDate(null, el === this.endDateEl);
|
|
454
531
|
this.draw();
|
|
455
532
|
return;
|
|
456
533
|
}
|
|
457
|
-
const parsedDate = this.
|
|
534
|
+
const parsedDate = this._dateInInput(el);
|
|
458
535
|
if (!_Datepicker._isDate(parsedDate)) return;
|
|
459
536
|
const date = new Date(parsedDate.getTime());
|
|
460
537
|
_Datepicker._setToStartOfDay(date);
|
|
461
538
|
const isEndDate = el === this.endDateEl;
|
|
462
|
-
|
|
463
|
-
|
|
539
|
+
const outOfOrder = this.options.isDateRange && (isEndDate ? this.date && date < this.date : this.endDate && date > this.endDate);
|
|
540
|
+
if (outOfOrder || this._isDisabledDay(date)) {
|
|
541
|
+
this.setInputValue(el, this._selectedDateFor(el));
|
|
464
542
|
return;
|
|
465
543
|
}
|
|
544
|
+
this._selectTypedMultiDate(el, date);
|
|
466
545
|
this.setDate(date, false, isEndDate, true);
|
|
467
546
|
}
|
|
547
|
+
// setDate does not toggle a typed date into a multiple selection, so it goes
|
|
548
|
+
// in here, in place of the date its input showed. Re-reading an input on
|
|
549
|
+
// click leaves the selection as it was.
|
|
550
|
+
_selectTypedMultiDate(el, date) {
|
|
551
|
+
if (!this.options.isMultipleSelection) return;
|
|
552
|
+
const shown = this._selectedDateFor(el);
|
|
553
|
+
this.dates = this.dates.filter((day) => day !== shown && day.getTime() !== date.getTime());
|
|
554
|
+
this.setMultiDate(date);
|
|
555
|
+
}
|
|
468
556
|
/**
|
|
469
557
|
* Set a date on the datepicker.
|
|
470
558
|
* @param date Date to set on the datepicker.
|
|
@@ -478,12 +566,12 @@ var _Datepicker = class _Datepicker extends Component {
|
|
|
478
566
|
return;
|
|
479
567
|
}
|
|
480
568
|
_Datepicker._setToStartOfDay(selectedDate);
|
|
569
|
+
const selection = ++this._selection;
|
|
481
570
|
if (!this.options.isMultipleSelection) this.setSingleDate(selectedDate, isEndDate);
|
|
482
571
|
else if (!fromUserInput) this.setMultiDate(selectedDate);
|
|
483
572
|
this.gotoDate(selectedDate);
|
|
484
|
-
if (
|
|
485
|
-
|
|
486
|
-
}
|
|
573
|
+
if (preventOnSelect) return;
|
|
574
|
+
this._notify("select", this.options.onSelect, { args: [selectedDate], detail: { date: selectedDate }, current: () => selection === this._selection });
|
|
487
575
|
}
|
|
488
576
|
validateDate(date) {
|
|
489
577
|
if (!date) {
|
|
@@ -504,6 +592,38 @@ var _Datepicker = class _Datepicker extends Component {
|
|
|
504
592
|
}
|
|
505
593
|
return new Date(date.getTime());
|
|
506
594
|
}
|
|
595
|
+
/**
|
|
596
|
+
* The date an input holds. Without a custom parser, Date.parse reads
|
|
597
|
+
* "05/10/2026" from a dd/mm/yyyy format as 10 May, so reuse the date behind
|
|
598
|
+
* a value the picker wrote, or behind the value the input resets to.
|
|
599
|
+
*/
|
|
600
|
+
_dateInInput(el) {
|
|
601
|
+
const known = !this.options.parse && [this._writtenInputs.get(el), this._resetDates.get(el)].find((entry) => entry?.value === el.value);
|
|
602
|
+
return known ? known.date : this._parseInput(el.value, el);
|
|
603
|
+
}
|
|
604
|
+
/** The selected date an input shows: its place in `dates` for a multiple selection. */
|
|
605
|
+
_selectedDateFor(el) {
|
|
606
|
+
if (this.options.isMultipleSelection) return this.dates[this.dateEls.indexOf(el)] ?? null;
|
|
607
|
+
return el === this.endDateEl ? this.endDate : this.date;
|
|
608
|
+
}
|
|
609
|
+
/** `_isDisabledDay` for a date that may carry a time of day. */
|
|
610
|
+
_isSelectableDay(date) {
|
|
611
|
+
const day = new Date(date.getTime());
|
|
612
|
+
_Datepicker._setToStartOfDay(day);
|
|
613
|
+
return !this._isDisabledDay(day);
|
|
614
|
+
}
|
|
615
|
+
/** Whether the calendar shows `day` as disabled: outside the bounds, or refused by an option. */
|
|
616
|
+
_isDisabledDay(day) {
|
|
617
|
+
return this._isOutOfBounds(day) || this._isRefusedDay(day);
|
|
618
|
+
}
|
|
619
|
+
_isOutOfBounds(day) {
|
|
620
|
+
const { minDate, maxDate } = this.options;
|
|
621
|
+
return minDate && day < minDate || maxDate && day > maxDate;
|
|
622
|
+
}
|
|
623
|
+
_isRefusedDay(day) {
|
|
624
|
+
const { disableWeekends, disableDayFn } = this.options;
|
|
625
|
+
return disableWeekends && [0, 6].includes(day.getDay()) || !!disableDayFn?.(day);
|
|
626
|
+
}
|
|
507
627
|
/**
|
|
508
628
|
* Set a single date on the datepicker.
|
|
509
629
|
* @param date Date to set on the datepicker.
|
|
@@ -512,7 +632,7 @@ var _Datepicker = class _Datepicker extends Component {
|
|
|
512
632
|
setSingleDate(date, isEndDate) {
|
|
513
633
|
if (!isEndDate) {
|
|
514
634
|
this.date = date;
|
|
515
|
-
} else
|
|
635
|
+
} else {
|
|
516
636
|
this.endDate = date;
|
|
517
637
|
}
|
|
518
638
|
}
|
|
@@ -521,15 +641,13 @@ var _Datepicker = class _Datepicker extends Component {
|
|
|
521
641
|
* @param date Date to set on the datepicker.
|
|
522
642
|
*/
|
|
523
643
|
setMultiDate(date) {
|
|
524
|
-
const
|
|
525
|
-
|
|
526
|
-
});
|
|
527
|
-
if (!selectedDate) {
|
|
644
|
+
const index = this.dates.findIndex((item) => item.getTime() === date.getTime());
|
|
645
|
+
if (index === -1) {
|
|
528
646
|
this.dates.push(date);
|
|
529
647
|
} else {
|
|
530
|
-
this.dates.splice(
|
|
648
|
+
this.dates.splice(index, 1);
|
|
531
649
|
}
|
|
532
|
-
this.dates.sort((a, b) => a.getTime()
|
|
650
|
+
this.dates.sort((a, b) => a.getTime() - b.getTime());
|
|
533
651
|
}
|
|
534
652
|
/**
|
|
535
653
|
* Sets the data-date attribute on the date input field
|
|
@@ -569,6 +687,7 @@ var _Datepicker = class _Datepicker extends Component {
|
|
|
569
687
|
} else {
|
|
570
688
|
el.value = this.toString(date);
|
|
571
689
|
}
|
|
690
|
+
this._writtenInputs.set(el, { value: el.value, date: _Datepicker._isDate(date) ? new Date(date.getTime()) : null });
|
|
572
691
|
el.dispatchEvent(
|
|
573
692
|
new CustomEvent("change", {
|
|
574
693
|
bubbles: true,
|
|
@@ -643,7 +762,7 @@ var _Datepicker = class _Datepicker extends Component {
|
|
|
643
762
|
this.adjustCalendars();
|
|
644
763
|
}
|
|
645
764
|
render(year, month, randId) {
|
|
646
|
-
const now = /* @__PURE__ */ new Date(), days =
|
|
765
|
+
const now = /* @__PURE__ */ new Date(), days = new Date(year, month + 1, 0).getDate(), data = [];
|
|
647
766
|
let before = new Date(year, month, 1).getDay(), row = [];
|
|
648
767
|
_Datepicker._setToStartOfDay(now);
|
|
649
768
|
if (this.options.firstDay > 0) {
|
|
@@ -652,15 +771,10 @@ var _Datepicker = class _Datepicker extends Component {
|
|
|
652
771
|
before += 7;
|
|
653
772
|
}
|
|
654
773
|
}
|
|
655
|
-
const previousMonth = month === 0 ? 11 : month - 1, nextMonth = month === 11 ? 0 : month + 1, yearOfPreviousMonth = month === 0 ? year - 1 : year, yearOfNextMonth = month === 11 ? year + 1 : year, daysInPreviousMonth =
|
|
656
|
-
|
|
657
|
-
while (after > 7) {
|
|
658
|
-
after -= 7;
|
|
659
|
-
}
|
|
660
|
-
cells += 7 - after;
|
|
661
|
-
let isWeekSelected = false;
|
|
774
|
+
const previousMonth = month === 0 ? 11 : month - 1, nextMonth = month === 11 ? 0 : month + 1, yearOfPreviousMonth = month === 0 ? year - 1 : year, yearOfNextMonth = month === 11 ? year + 1 : year, daysInPreviousMonth = new Date(year, month, 0).getDate();
|
|
775
|
+
const cells = Math.ceil((days + before) / 7) * 7;
|
|
662
776
|
for (let i = 0, r = 0; i < cells; i++) {
|
|
663
|
-
const day = new Date(year, month, 1 + (i - before)), isToday = _Datepicker._compareDates(day, now), hasEvent = this.options.events.indexOf(day.toDateString()) !== -1, isEmpty = i < before || i >= days + before,
|
|
777
|
+
const day = new Date(year, month, 1 + (i - before)), isToday = _Datepicker._compareDates(day, now), hasEvent = this.options.events.indexOf(day.toDateString()) !== -1, isEmpty = i < before || i >= days + before, isDisabled = this._isDisabledDay(day), isDateRangeStart = this.options.isDateRange && this.date && this.endDate && _Datepicker._compareDates(this.date, day), isDateRangeEnd = this.options.isDateRange && this.endDate && _Datepicker._compareDates(this.endDate, day), isDateRange = this.options.isDateRange && [this.date, this.endDate].every(_Datepicker._isDate) && day > this.date && day < this.endDate;
|
|
664
778
|
let dayNumber = 1 + (i - before), monthNumber = month, yearNumber = year;
|
|
665
779
|
let isSelected = false;
|
|
666
780
|
if (_Datepicker._isDate(this.date)) {
|
|
@@ -692,9 +806,6 @@ var _Datepicker = class _Datepicker extends Component {
|
|
|
692
806
|
isToday,
|
|
693
807
|
isDisabled,
|
|
694
808
|
isEmpty,
|
|
695
|
-
isStartRange,
|
|
696
|
-
isEndRange,
|
|
697
|
-
isInRange,
|
|
698
809
|
showDaysInNextAndPreviousMonths: this.options.showDaysInNextAndPreviousMonths,
|
|
699
810
|
isDateRangeStart,
|
|
700
811
|
isDateRangeEnd,
|
|
@@ -702,10 +813,9 @@ var _Datepicker = class _Datepicker extends Component {
|
|
|
702
813
|
};
|
|
703
814
|
row.push(this.renderDay(dayConfig));
|
|
704
815
|
if (++r === 7) {
|
|
705
|
-
data.push(this.renderRow(row, this.options.isRTL,
|
|
816
|
+
data.push(this.renderRow(row, this.options.isRTL, false));
|
|
706
817
|
row = [];
|
|
707
818
|
r = 0;
|
|
708
|
-
isWeekSelected = false;
|
|
709
819
|
}
|
|
710
820
|
}
|
|
711
821
|
return this.renderTable(this.options, data, randId);
|
|
@@ -716,13 +826,10 @@ var _Datepicker = class _Datepicker extends Component {
|
|
|
716
826
|
isToday: "is-today",
|
|
717
827
|
isSelected: "is-selected",
|
|
718
828
|
hasEvent: "has-event",
|
|
719
|
-
isInRange: "is-inrange",
|
|
720
|
-
isStartRange: "is-startrange",
|
|
721
|
-
isEndRange: "is-endrange",
|
|
722
829
|
isDateRangeStart: "is-daterange-start",
|
|
723
830
|
isDateRangeEnd: "is-daterange-end",
|
|
724
831
|
isDateRange: "is-daterange"
|
|
725
|
-
}, ariaSelected =
|
|
832
|
+
}, ariaSelected = opts.isSelected === true || opts.isDateRange === true, arr = ["datepicker-day"];
|
|
726
833
|
if (opts.isEmpty) {
|
|
727
834
|
if (opts.showDaysInNextAndPreviousMonths) {
|
|
728
835
|
arr.push("is-outside-current-month");
|
|
@@ -744,7 +851,6 @@ var _Datepicker = class _Datepicker extends Component {
|
|
|
744
851
|
/** Assemble calendar cells; reject unsupported elements and attributes. */
|
|
745
852
|
renderRow(days, isRTL, isRowSelected) {
|
|
746
853
|
const row = '<tr class="datepicker-row' + (isRowSelected ? " is-selected" : "") + '">' + _Datepicker._calendarMarkup((isRTL ? days.reverse() : days).join(""), "tr") + "</tr>";
|
|
747
|
-
this._checkedRows.add(row);
|
|
748
854
|
return row;
|
|
749
855
|
}
|
|
750
856
|
/** Assemble calendar rows; reject unsupported elements and attributes. */
|
|
@@ -764,13 +870,13 @@ var _Datepicker = class _Datepicker extends Component {
|
|
|
764
870
|
/** Wrap calendar rows after validating and encoding their contents. */
|
|
765
871
|
renderBody(rows) {
|
|
766
872
|
const html = rows.join("");
|
|
767
|
-
const
|
|
768
|
-
|
|
769
|
-
return "<tbody>" + (checked ? html : _Datepicker._calendarMarkup(html, "tbody")) + "</tbody>";
|
|
873
|
+
const safeHtml = _Datepicker._calendarMarkup(html, "tbody");
|
|
874
|
+
return "<tbody>" + safeHtml + "</tbody>";
|
|
770
875
|
}
|
|
771
876
|
static _calendarMarkup(html, parent) {
|
|
772
877
|
const template = document.createElement("template");
|
|
773
878
|
template.innerHTML = html;
|
|
879
|
+
const childOf = { tbody: "tr", tr: "td", td: "button" };
|
|
774
880
|
const attributes = {
|
|
775
881
|
tr: ["class"],
|
|
776
882
|
td: ["class", "data-day", "aria-selected"],
|
|
@@ -784,8 +890,8 @@ var _Datepicker = class _Datepicker extends Component {
|
|
|
784
890
|
return _Datepicker._escape(node.textContent);
|
|
785
891
|
}
|
|
786
892
|
if (!(node instanceof HTMLElement)) throw new TypeError("Unsupported calendar row content");
|
|
787
|
-
const tag =
|
|
788
|
-
if (!tag ||
|
|
893
|
+
const tag = childOf[container];
|
|
894
|
+
if (!tag || node.localName !== tag) {
|
|
789
895
|
throw new TypeError("Unsupported calendar row element");
|
|
790
896
|
}
|
|
791
897
|
if ([...node.attributes].some((attr) => !attributes[tag].includes(attr.name))) {
|
|
@@ -860,7 +966,7 @@ var _Datepicker = class _Datepicker extends Component {
|
|
|
860
966
|
if (opts.yearRangeReverse) arr.reverse();
|
|
861
967
|
const yearHtml = `<select class="datepicker-select orig-select-year" tabindex="-1">${arr.join("")}</select>`;
|
|
862
968
|
const leftArrow = '<svg height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M15.41 16.09l-4.58-4.59 4.58-4.59L14 5.5l-6 6 6 6z"/><path d="M0-.5h24v24H0z" fill="none"/></svg>';
|
|
863
|
-
html += `<button class="month-prev${prev ? "" : " is-disabled"}" type="button">${leftArrow}</button>`;
|
|
969
|
+
html += `<button class="month-prev${prev ? "" : " is-disabled"}" type="button" aria-label="${_Datepicker._escape(opts.i18n.previousMonth)}">${leftArrow}</button>`;
|
|
864
970
|
html += '<div class="selects-container">';
|
|
865
971
|
if (opts.showMonthAfterYear) {
|
|
866
972
|
html += yearHtml + monthHtml;
|
|
@@ -869,7 +975,7 @@ var _Datepicker = class _Datepicker extends Component {
|
|
|
869
975
|
}
|
|
870
976
|
html += "</div>";
|
|
871
977
|
const rightArrow = '<svg height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z"/><path d="M0-.25h24v24H0z" fill="none"/></svg>';
|
|
872
|
-
html += `<button class="month-next${next ? "" : " is-disabled"}" type="button">${rightArrow}</button>`;
|
|
978
|
+
html += `<button class="month-next${next ? "" : " is-disabled"}" type="button" aria-label="${_Datepicker._escape(opts.i18n.nextMonth)}">${rightArrow}</button>`;
|
|
873
979
|
return html += "</div>";
|
|
874
980
|
}
|
|
875
981
|
/**
|
|
@@ -909,26 +1015,10 @@ var _Datepicker = class _Datepicker extends Component {
|
|
|
909
1015
|
const active = this.calendarEl.getRootNode().activeElement;
|
|
910
1016
|
const restoreDayFocus = active?.matches(".datepicker-day-button") && this.calendarEl.contains(active);
|
|
911
1017
|
const restoreArrow = this.calendarEl.contains(active) && active?.matches(".month-prev, .month-next") ? active.classList.contains("month-prev") ? ".month-prev" : ".month-next" : null;
|
|
912
|
-
const
|
|
913
|
-
if (this._y <= minYear) {
|
|
914
|
-
this._y = minYear;
|
|
915
|
-
if (!isNaN(minMonth) && this._m < minMonth) {
|
|
916
|
-
this._m = minMonth;
|
|
917
|
-
}
|
|
918
|
-
}
|
|
919
|
-
if (this._y >= maxYear) {
|
|
920
|
-
this._y = maxYear;
|
|
921
|
-
if (!isNaN(maxMonth) && this._m > maxMonth) {
|
|
922
|
-
this._m = maxMonth;
|
|
923
|
-
}
|
|
924
|
-
}
|
|
1018
|
+
const restoreSelect = this._selectFocusRestorer(active);
|
|
925
1019
|
const year = this.calendars[0].year;
|
|
926
1020
|
const month = this.calendars[0].month;
|
|
927
|
-
|
|
928
|
-
this._renderDateDisplay(this.date);
|
|
929
|
-
} else {
|
|
930
|
-
this._renderDateDisplay(this.date, this.endDate);
|
|
931
|
-
}
|
|
1021
|
+
this._renderDateDisplay(this.date, this.endDate);
|
|
932
1022
|
const key = this._controlsCacheKey(year);
|
|
933
1023
|
if (key === this._controlsKey && this.calendarEl.querySelector(".datepicker-controls")) {
|
|
934
1024
|
this._reuseControls(year, month);
|
|
@@ -940,10 +1030,27 @@ var _Datepicker = class _Datepicker extends Component {
|
|
|
940
1030
|
this._renderCalendarTable(year, month);
|
|
941
1031
|
this._syncCalendarFocus(!!restoreDayFocus);
|
|
942
1032
|
if (restoreArrow) this.calendarEl.querySelector(restoreArrow)?.focus();
|
|
1033
|
+
restoreSelect();
|
|
943
1034
|
if (typeof this.options.onDraw === "function") {
|
|
944
1035
|
this.options.onDraw.call(this);
|
|
945
1036
|
}
|
|
946
1037
|
}
|
|
1038
|
+
_formSelect(selector) {
|
|
1039
|
+
const el = this.calendarEl.querySelector(selector);
|
|
1040
|
+
return el ? FormSelect.getInstance(el) : void 0;
|
|
1041
|
+
}
|
|
1042
|
+
/**
|
|
1043
|
+
* Picking a year rebuilds both selects under the focus, which is on the old
|
|
1044
|
+
* input or in its menu. The returned callback, run after the redraw, gives
|
|
1045
|
+
* focus to the matching new input if the old one went with the rebuild.
|
|
1046
|
+
*/
|
|
1047
|
+
_selectFocusRestorer(active) {
|
|
1048
|
+
const holdsFocus = (select) => !!select && (select.input === active || !!select.menuEl?.contains(active));
|
|
1049
|
+
const selector = [".orig-select-year", ".orig-select-month"].find((s) => holdsFocus(this._formSelect(s)));
|
|
1050
|
+
return () => {
|
|
1051
|
+
if (selector && !active.isConnected) this._formSelect(selector)?.input.focus();
|
|
1052
|
+
};
|
|
1053
|
+
}
|
|
947
1054
|
/** Tear down the two FormSelects and render the controls from scratch. */
|
|
948
1055
|
_rebuildControls(year, month) {
|
|
949
1056
|
this.destroySelects();
|
|
@@ -983,79 +1090,40 @@ var _Datepicker = class _Datepicker extends Component {
|
|
|
983
1090
|
else this.calendarEl.insertAdjacentHTML("beforeend", html);
|
|
984
1091
|
}
|
|
985
1092
|
_setupEventHandlers() {
|
|
986
|
-
this.
|
|
987
|
-
this.
|
|
988
|
-
this.
|
|
989
|
-
|
|
990
|
-
this.
|
|
991
|
-
this.
|
|
992
|
-
this.calendarEl.addEventListener("
|
|
993
|
-
this.calendarEl.addEventListener("
|
|
994
|
-
this.calendarEl.addEventListener("focusin", this._handleCalendarFocus);
|
|
1093
|
+
this._addInputEventHandlers(this.el);
|
|
1094
|
+
if (this.endDateEl) this._addInputEventHandlers(this.endDateEl);
|
|
1095
|
+
this._form = this.el.form;
|
|
1096
|
+
const { signal } = this._events;
|
|
1097
|
+
this._form?.addEventListener("reset", this._handleFormReset, { signal });
|
|
1098
|
+
this.calendarEl.addEventListener("click", this._handleCalendarClick, { signal });
|
|
1099
|
+
this.calendarEl.addEventListener("keydown", this._handleCalendarKeydown, { signal });
|
|
1100
|
+
this.calendarEl.addEventListener("focusin", this._handleCalendarFocus, { signal });
|
|
995
1101
|
}
|
|
996
1102
|
_setupVariables() {
|
|
997
1103
|
const template = document.createElement("template");
|
|
998
1104
|
template.innerHTML = _Datepicker._template.trim();
|
|
999
1105
|
this.containerEl = template.content.firstChild;
|
|
1000
1106
|
this.calendarEl = this.containerEl.querySelector(".datepicker-calendar");
|
|
1001
|
-
this.yearTextEl = this.containerEl.querySelector(".year-text");
|
|
1002
1107
|
this.dateTextEl = this.containerEl.querySelector(".date-text");
|
|
1003
1108
|
this.footer = this.containerEl.querySelector(".datepicker-footer");
|
|
1004
|
-
this.formats = {
|
|
1005
|
-
d: (date) => {
|
|
1006
|
-
return date.getDate();
|
|
1007
|
-
},
|
|
1008
|
-
dd: (date) => {
|
|
1009
|
-
const d = date.getDate();
|
|
1010
|
-
return (d < 10 ? "0" : "") + d;
|
|
1011
|
-
},
|
|
1012
|
-
ddd: (date) => {
|
|
1013
|
-
return this.options.i18n.weekdaysShort[date.getDay()];
|
|
1014
|
-
},
|
|
1015
|
-
dddd: (date) => {
|
|
1016
|
-
return this.options.i18n.weekdays[date.getDay()];
|
|
1017
|
-
},
|
|
1018
|
-
m: (date) => {
|
|
1019
|
-
return date.getMonth() + 1;
|
|
1020
|
-
},
|
|
1021
|
-
mm: (date) => {
|
|
1022
|
-
const m = date.getMonth() + 1;
|
|
1023
|
-
return (m < 10 ? "0" : "") + m;
|
|
1024
|
-
},
|
|
1025
|
-
mmm: (date) => {
|
|
1026
|
-
return this.options.i18n.monthsShort[date.getMonth()];
|
|
1027
|
-
},
|
|
1028
|
-
mmmm: (date) => {
|
|
1029
|
-
return this.options.i18n.months[date.getMonth()];
|
|
1030
|
-
},
|
|
1031
|
-
yy: (date) => {
|
|
1032
|
-
return ("" + date.getFullYear()).slice(2);
|
|
1033
|
-
},
|
|
1034
|
-
yyyy: (date) => {
|
|
1035
|
-
return date.getFullYear();
|
|
1036
|
-
}
|
|
1037
|
-
};
|
|
1038
|
-
}
|
|
1039
|
-
_removeEventHandlers() {
|
|
1040
|
-
for (const input of this.dateEls ?? [this.el]) this._removeInputEventHandlers(input);
|
|
1041
|
-
this.calendarEl.removeEventListener("click", this._handleCalendarClick);
|
|
1042
|
-
this.calendarEl.removeEventListener("keydown", this._handleCalendarKeydown);
|
|
1043
|
-
this.calendarEl.removeEventListener("focusin", this._handleCalendarFocus);
|
|
1044
|
-
if (this.options.isDateRange && this.endDateEl) {
|
|
1045
|
-
this._removeInputEventHandlers(this.endDateEl);
|
|
1046
|
-
}
|
|
1047
1109
|
}
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
input.
|
|
1110
|
+
/** A date input's listeners. An input the picker removes keeps them, but no event reaches it then. */
|
|
1111
|
+
_addInputEventHandlers(input) {
|
|
1112
|
+
const { signal } = this._events;
|
|
1113
|
+
input.addEventListener("click", this._handleInputClick, { signal });
|
|
1114
|
+
input.addEventListener("keydown", this._handleInputKeydown, { signal });
|
|
1115
|
+
input.addEventListener("change", this._handleInputChange, { signal });
|
|
1052
1116
|
}
|
|
1053
1117
|
_removeDateInput(input) {
|
|
1054
1118
|
const focused = input.getRootNode().activeElement === input;
|
|
1055
|
-
this._removeInputEventHandlers(input);
|
|
1056
1119
|
input.remove();
|
|
1057
1120
|
if (focused && document.activeElement === document.body) this.el.focus();
|
|
1058
1121
|
}
|
|
1122
|
+
/** Shows a docked or modal calendar. A modal takes focus from the input, so the selected day gets it. */
|
|
1123
|
+
_showDisplay() {
|
|
1124
|
+
this.displayPlugin?.show();
|
|
1125
|
+
if (this.displayPlugin instanceof ModalDisplayPlugin) this._syncCalendarFocus(true);
|
|
1126
|
+
}
|
|
1059
1127
|
_dayDate(button) {
|
|
1060
1128
|
const date = /* @__PURE__ */ new Date(0);
|
|
1061
1129
|
date.setFullYear(Number(button.dataset.year), Number(button.dataset.month), Number(button.dataset.day));
|
|
@@ -1065,7 +1133,7 @@ var _Datepicker = class _Datepicker extends Component {
|
|
|
1065
1133
|
_syncCalendarFocus(restore = false) {
|
|
1066
1134
|
const buttons = [...this.calendarEl.querySelectorAll(".datepicker-day-button")];
|
|
1067
1135
|
const current = buttons.filter((button) => !button.parentElement.classList.contains("is-selection-disabled"));
|
|
1068
|
-
const preferred = this._focusedDate || this.date || /* @__PURE__ */ new Date();
|
|
1136
|
+
const preferred = this._focusedDate || this.date || new Date((/* @__PURE__ */ new Date()).setHours(0, 0, 0, 0));
|
|
1069
1137
|
const target = current.find((button) => _Datepicker._compareDates(this._dayDate(button), preferred)) || current.find((button) => button.parentElement.classList.contains("is-selected")) || current.find((button) => !button.parentElement.classList.contains("is-disabled")) || current[0];
|
|
1070
1138
|
for (const button of buttons) {
|
|
1071
1139
|
button.tabIndex = button === target ? 0 : -1;
|
|
@@ -1090,6 +1158,22 @@ var _Datepicker = class _Datepicker extends Component {
|
|
|
1090
1158
|
this.adjustCalendars();
|
|
1091
1159
|
}
|
|
1092
1160
|
}
|
|
1161
|
+
_readBackMultiple() {
|
|
1162
|
+
for (const input of this.dateEls.splice(1)) this._removeDateInput(input);
|
|
1163
|
+
this.dates = [];
|
|
1164
|
+
this._syncDataDate(this.el);
|
|
1165
|
+
const date = this._dateInInput(this.el);
|
|
1166
|
+
if (_Datepicker._isDate(date) && this._isSelectableDay(date)) this.setDate(date, true);
|
|
1167
|
+
}
|
|
1168
|
+
/** A native date input's overlay text follows its value, including an empty one. */
|
|
1169
|
+
_syncDataDate(el) {
|
|
1170
|
+
if (el.type === "date") this.setDataDate(el, _Datepicker._parseDate(el.value));
|
|
1171
|
+
}
|
|
1172
|
+
_readBackSingle() {
|
|
1173
|
+
this.setSingleDate(null, false);
|
|
1174
|
+
this.setSingleDate(null, true);
|
|
1175
|
+
for (const input of [this.el, this.endDateEl]) if (input) this.setDateFromInput(input);
|
|
1176
|
+
}
|
|
1093
1177
|
renderDayName(opts, day, abbr = false) {
|
|
1094
1178
|
day += opts.firstDay;
|
|
1095
1179
|
while (day >= 7) {
|
|
@@ -1101,17 +1185,15 @@ var _Datepicker = class _Datepicker extends Component {
|
|
|
1101
1185
|
const dateInput = this.el.cloneNode(true);
|
|
1102
1186
|
dateInput.removeAttribute("id");
|
|
1103
1187
|
dateInput.classList.add("no-autoinit");
|
|
1104
|
-
|
|
1105
|
-
dateInput.addEventListener("keydown", this._handleInputKeydown);
|
|
1106
|
-
dateInput.addEventListener("change", this._handleInputChange);
|
|
1188
|
+
this._addInputEventHandlers(dateInput);
|
|
1107
1189
|
this.el.parentElement.appendChild(dateInput);
|
|
1108
1190
|
return dateInput;
|
|
1109
1191
|
}
|
|
1110
1192
|
};
|
|
1193
|
+
_Datepicker.key = "Expressive_Datepicker";
|
|
1111
1194
|
_Datepicker._template = `
|
|
1112
1195
|
<div class="datepicker-container">
|
|
1113
1196
|
<div class="datepicker-date-display">
|
|
1114
|
-
<span class="year-text"></span>
|
|
1115
1197
|
<span class="date-text"></span>
|
|
1116
1198
|
</div>
|
|
1117
1199
|
<div class="datepicker-calendar-container">
|
|
@@ -1122,6 +1204,7 @@ _Datepicker._template = `
|
|
|
1122
1204
|
var Datepicker = _Datepicker;
|
|
1123
1205
|
|
|
1124
1206
|
export {
|
|
1207
|
+
readDate,
|
|
1125
1208
|
Datepicker
|
|
1126
1209
|
};
|
|
1127
|
-
//# sourceMappingURL=chunk-
|
|
1210
|
+
//# sourceMappingURL=chunk-QXKWVHBD.mjs.map
|