maz-ui 4.0.0-alpha.4 → 4.0.0-alpha.5
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/assets/{CountrySelector.Cnqbl3xF.css → CountrySelector.BQiHy60b.css} +1 -1
- package/dist/assets/{MazAccordion.DaqF3ZAX.css → MazAccordion.BE-38uDK.css} +1 -1
- package/dist/assets/{MazAnimatedCounter.DYYlw_wl.css → MazAnimatedCounter.ButbqlDb.css} +1 -1
- package/dist/assets/{MazAnimatedText.Dk4QO4xF.css → MazAnimatedText.BM3XYGO2.css} +1 -1
- package/dist/assets/{MazAvatar.L1UreldR.css → MazAvatar.udTL0S0c.css} +1 -1
- package/dist/assets/{MazBadge.RMWNkgZL.css → MazBadge.Cgfo0F7e.css} +1 -1
- package/dist/assets/{MazBottomSheet.Dqr-kpLb.css → MazBottomSheet.FbcAQBpM.css} +1 -1
- package/dist/assets/MazBtn.Bz7wwOFh.css +1 -0
- package/dist/assets/{MazCard.Cod9pIM4.css → MazCard.BayiNvpH.css} +1 -1
- package/dist/assets/{MazCardSpotlight.DuZac0w4.css → MazCardSpotlight.Y7PEY9QV.css} +1 -1
- package/dist/assets/{MazCarousel.BQIrqJ8T.css → MazCarousel.CB32PQvq.css} +1 -1
- package/dist/assets/{MazCheckbox.BQVJ7EUB.css → MazCheckbox.5EI5lIDK.css} +1 -1
- package/dist/assets/{MazChecklist.5ArDAEhG.css → MazChecklist.BGnIiTsI.css} +1 -1
- package/dist/assets/{MazCircularProgressBar.DywLXEfR.css → MazCircularProgressBar.0-JvCHgE.css} +1 -1
- package/dist/assets/{MazDialog.BLzdH8aa.css → MazDialog.BJMxj6he.css} +1 -1
- package/dist/assets/{MazDrawer.Cu4KVc_z.css → MazDrawer.BqaLe_QM.css} +1 -1
- package/dist/assets/{MazFullscreenLoader.DTW_WUM6.css → MazFullscreenLoader.Dkg4LB9B.css} +1 -1
- package/dist/assets/MazGallery.BoPDBMcv.css +1 -0
- package/dist/assets/MazInput.DMFoUNTH.css +1 -0
- package/dist/assets/MazInputCode.C0rRpNFq.css +1 -0
- package/dist/assets/{MazInputPhoneNumber.DKac4ZYj.css → MazInputPhoneNumber.Ill3zwW5.css} +1 -1
- package/dist/assets/{MazInputTags.eygPFBJC.css → MazInputTags.ewDauXwM.css} +1 -1
- package/dist/assets/{MazLazyImg.BvztvWbf.css → MazLazyImg.B6kyFMu0.css} +1 -1
- package/dist/assets/MazLink.C905PoWd.css +1 -0
- package/dist/assets/MazLoadingBar.BVDaL2oq.css +1 -0
- package/dist/assets/{MazPagination.DSYY_yu7.css → MazPagination.DxqlYYDI.css} +1 -1
- package/dist/assets/MazPicker.oSzqOK82.css +1 -0
- package/dist/assets/{MazPickerCalendar.K1FbevcF.css → MazPickerCalendar.9hsvH81G.css} +1 -1
- package/dist/assets/MazPickerCalendarMonth.DoG1aIdE.css +1 -0
- package/dist/assets/{MazPickerCalendarSwitcher.23EFP_7Y.css → MazPickerCalendarSwitcher.Cwm0pn-f.css} +1 -1
- package/dist/assets/{MazPickerHeader.CfwpRnA1.css → MazPickerHeader.BH5Uy1iP.css} +1 -1
- package/dist/assets/{MazPickerMonthSwitcher.Cl1WlZpR.css → MazPickerMonthSwitcher.D9wXQnld.css} +1 -1
- package/dist/assets/{MazPickerShortcuts.B1ASAi7L.css → MazPickerShortcuts.CLZ4NUtN.css} +1 -1
- package/dist/assets/{MazPickerTime.5J3qaKGo.css → MazPickerTime.B-Ym15z4.css} +1 -1
- package/dist/assets/{MazPickerYearSwitcher.Bt0efux6.css → MazPickerYearSwitcher.9YqgG2Jv.css} +1 -1
- package/dist/assets/{MazPullToRefresh.BdvKaU9N.css → MazPullToRefresh.BSBm9qbV.css} +1 -1
- package/dist/assets/{MazRadio.zYTBn9Pj.css → MazRadio.OJL8pfy2.css} +1 -1
- package/dist/assets/{MazRadioButtons.CIq38oX6.css → MazRadioButtons.u111N9bH.css} +1 -1
- package/dist/assets/MazReadingProgressBar.CT2EjYkv.css +1 -0
- package/dist/assets/{MazSelect.CH_76PSg.css → MazSelect.DG-B1UJ6.css} +1 -1
- package/dist/assets/{MazSlider.D08gO9DD.css → MazSlider.KrU-f4K4.css} +1 -1
- package/dist/assets/MazSpinner.C2jmWJte.css +1 -0
- package/dist/assets/{MazStepper.BE3Mm9rm.css → MazStepper.CFdY5O1y.css} +1 -1
- package/dist/assets/MazTable.uvNQLDVh.css +1 -0
- package/dist/assets/MazTableCell.DCsBuRdY.css +1 -0
- package/dist/assets/MazTableRow.B4o1JJ00.css +1 -0
- package/dist/assets/MazTableTitle.CA6gYzgP.css +1 -0
- package/dist/assets/{MazTabsBar.-q3BbMXe.css → MazTabsBar.Bfij2njx.css} +1 -1
- package/dist/assets/{MazTabsContentItem.C0ygFU51.css → MazTabsContentItem.C9kvAsC7.css} +1 -1
- package/dist/assets/{MazTextarea.QTMu0OQv.css → MazTextarea.BML1BVBM.css} +1 -1
- package/dist/assets/PhoneInput.BBnKae_d.css +1 -0
- package/dist/assets/{fullscreen-img.hjNozahA.css → fullscreen-img.Dnt1uj_5.css} +1 -1
- package/dist/assets/{toaster.C9zhIkIO.css → toaster.BfTrtY6B.css} +1 -1
- package/dist/chunks/{CountrySelector.mFGaqpPf.cjs → CountrySelector.1nlVeBqW.cjs} +2 -2
- package/dist/chunks/CountrySelector.1nlVeBqW.cjs.map +1 -0
- package/dist/chunks/{CountrySelector.C5XZelLY.mjs → CountrySelector.qQCR0FE6.mjs} +14 -14
- package/dist/chunks/CountrySelector.qQCR0FE6.mjs.map +1 -0
- package/dist/chunks/MazDialogPromise.vue_vue_type_script_setup_true_lang.CS5GU9Q2.cjs.map +1 -1
- package/dist/chunks/MazDialogPromise.vue_vue_type_script_setup_true_lang.bPYjg0yY.mjs.map +1 -1
- package/dist/chunks/MazDropdown.vue_vue_type_script_setup_true_lang.B5kO0VJW.mjs.map +1 -1
- package/dist/chunks/MazDropdown.vue_vue_type_script_setup_true_lang.DLWmXVjB.cjs.map +1 -1
- package/dist/chunks/MazIcon.vue_vue_type_script_setup_true_lang.C5NwBerh.cjs.map +1 -1
- package/dist/chunks/MazIcon.vue_vue_type_script_setup_true_lang.CLoEj0Zf.mjs.map +1 -1
- package/dist/chunks/{MazInputNumber.vue_vue_type_script_setup_true_lang.DiawfWBC.cjs → MazInputNumber.vue_vue_type_script_setup_true_lang.BM2uHjda.cjs} +2 -2
- package/dist/chunks/MazInputNumber.vue_vue_type_script_setup_true_lang.BM2uHjda.cjs.map +1 -0
- package/dist/chunks/{MazInputNumber.vue_vue_type_script_setup_true_lang.Bbod2mLd.mjs → MazInputNumber.vue_vue_type_script_setup_true_lang.CsH-SPhu.mjs} +5 -5
- package/dist/chunks/MazInputNumber.vue_vue_type_script_setup_true_lang.CsH-SPhu.mjs.map +1 -0
- package/dist/chunks/{MazInputPhoneNumber.B173m1hd.mjs → MazInputPhoneNumber.BluSBPXE.mjs} +10 -10
- package/dist/chunks/{MazInputPhoneNumber.B173m1hd.mjs.map → MazInputPhoneNumber.BluSBPXE.mjs.map} +1 -1
- package/dist/chunks/{MazInputPhoneNumber.EZVh1Yx5.cjs → MazInputPhoneNumber.TorVuc9s.cjs} +2 -2
- package/dist/chunks/{MazInputPhoneNumber.EZVh1Yx5.cjs.map → MazInputPhoneNumber.TorVuc9s.cjs.map} +1 -1
- package/dist/chunks/{MazInputPrice.vue_vue_type_script_setup_true_lang.C3X2lwRl.mjs → MazInputPrice.vue_vue_type_script_setup_true_lang.C873_Haj.mjs} +5 -5
- package/dist/chunks/MazInputPrice.vue_vue_type_script_setup_true_lang.C873_Haj.mjs.map +1 -0
- package/dist/chunks/{MazInputPrice.vue_vue_type_script_setup_true_lang.CCatmP_L.cjs → MazInputPrice.vue_vue_type_script_setup_true_lang.Ovh3fdmh.cjs} +2 -2
- package/dist/chunks/MazInputPrice.vue_vue_type_script_setup_true_lang.Ovh3fdmh.cjs.map +1 -0
- package/dist/chunks/{MazPicker.BZE8cw36.cjs → MazPicker.D2ra6fVy.cjs} +2 -2
- package/dist/chunks/MazPicker.D2ra6fVy.cjs.map +1 -0
- package/dist/chunks/{MazPicker.DCnOkRvv.mjs → MazPicker.hoqM5DbN.mjs} +20 -20
- package/dist/chunks/MazPicker.hoqM5DbN.mjs.map +1 -0
- package/dist/chunks/{MazPickerCalendar.NeYLrtl-.mjs → MazPickerCalendar.Ban3DAo1.mjs} +4 -4
- package/dist/chunks/MazPickerCalendar.Ban3DAo1.mjs.map +1 -0
- package/dist/chunks/{MazPickerCalendar.CVZ8VoYr.cjs → MazPickerCalendar.CEJcAKlj.cjs} +2 -2
- package/dist/chunks/MazPickerCalendar.CEJcAKlj.cjs.map +1 -0
- package/dist/chunks/{MazPickerCalendarMonth.rnaiDHFM.mjs → MazPickerCalendarMonth.D4Ink4If.mjs} +14 -14
- package/dist/chunks/MazPickerCalendarMonth.D4Ink4If.mjs.map +1 -0
- package/dist/chunks/{MazPickerCalendarMonth.DpvQC45k.cjs → MazPickerCalendarMonth.DBDcSR1B.cjs} +2 -2
- package/dist/chunks/MazPickerCalendarMonth.DBDcSR1B.cjs.map +1 -0
- package/dist/chunks/{MazPickerCalendarSwitcher.DC2wff_J.cjs → MazPickerCalendarSwitcher.CyjRYcya.cjs} +2 -2
- package/dist/chunks/MazPickerCalendarSwitcher.CyjRYcya.cjs.map +1 -0
- package/dist/chunks/{MazPickerCalendarSwitcher.DFGrD6Cr.mjs → MazPickerCalendarSwitcher.DTDyFG7S.mjs} +19 -19
- package/dist/chunks/MazPickerCalendarSwitcher.DTDyFG7S.mjs.map +1 -0
- package/dist/chunks/{MazPickerHeader.B7YY9SJI.mjs → MazPickerHeader.C1asX8dz.mjs} +8 -8
- package/dist/chunks/MazPickerHeader.C1asX8dz.mjs.map +1 -0
- package/dist/chunks/{MazPickerHeader.l7NcmiGH.cjs → MazPickerHeader.COT92ysE.cjs} +2 -2
- package/dist/chunks/MazPickerHeader.COT92ysE.cjs.map +1 -0
- package/dist/chunks/{MazPickerMonthSwitcher.CbplWFfL.cjs → MazPickerMonthSwitcher.Cw82Rq9C.cjs} +2 -2
- package/dist/chunks/MazPickerMonthSwitcher.Cw82Rq9C.cjs.map +1 -0
- package/dist/chunks/{MazPickerMonthSwitcher.CAPx3PCt.mjs → MazPickerMonthSwitcher.jPGBQm-N.mjs} +9 -9
- package/dist/chunks/MazPickerMonthSwitcher.jPGBQm-N.mjs.map +1 -0
- package/dist/chunks/{MazPickerShortcuts.Bawm0q33.mjs → MazPickerShortcuts.Dvs1sJMi.mjs} +3 -3
- package/dist/chunks/MazPickerShortcuts.Dvs1sJMi.mjs.map +1 -0
- package/dist/chunks/{MazPickerShortcuts.LxFs0Y6N.cjs → MazPickerShortcuts.GUfnNHPI.cjs} +2 -2
- package/dist/chunks/MazPickerShortcuts.GUfnNHPI.cjs.map +1 -0
- package/dist/chunks/{MazPickerTime.C27aFPPw.mjs → MazPickerTime.C1LitEcr.mjs} +5 -5
- package/dist/chunks/MazPickerTime.C1LitEcr.mjs.map +1 -0
- package/dist/chunks/{MazPickerTime.7cxq-Qac.cjs → MazPickerTime.wlOm39gv.cjs} +2 -2
- package/dist/chunks/MazPickerTime.wlOm39gv.cjs.map +1 -0
- package/dist/chunks/{MazPickerYearSwitcher.Dku2IMIJ.cjs → MazPickerYearSwitcher.CPREj35R.cjs} +2 -2
- package/dist/chunks/MazPickerYearSwitcher.CPREj35R.cjs.map +1 -0
- package/dist/chunks/{MazPickerYearSwitcher.DMBOaMYy.mjs → MazPickerYearSwitcher.D_onf-0L.mjs} +17 -17
- package/dist/chunks/MazPickerYearSwitcher.D_onf-0L.mjs.map +1 -0
- package/dist/chunks/MazSwitch.vue_vue_type_script_setup_true_lang.C74s_H37.cjs.map +1 -1
- package/dist/chunks/MazSwitch.vue_vue_type_script_setup_true_lang.jyNV3g3U.mjs.map +1 -1
- package/dist/chunks/{MazTable.vue_vue_type_style_index_0_scoped_4101f1d3_lang.Ctmf2NVE.cjs → MazTable.vue_vue_type_style_index_0_scoped_cd8655c9_lang.BnCH1CvT.cjs} +2 -2
- package/dist/chunks/MazTable.vue_vue_type_style_index_0_scoped_cd8655c9_lang.BnCH1CvT.cjs.map +1 -0
- package/dist/chunks/{MazTable.vue_vue_type_style_index_0_scoped_4101f1d3_lang.Dwkx-V96.mjs → MazTable.vue_vue_type_style_index_0_scoped_cd8655c9_lang.Dj2OkfOV.mjs} +4 -4
- package/dist/chunks/MazTable.vue_vue_type_style_index_0_scoped_cd8655c9_lang.Dj2OkfOV.mjs.map +1 -0
- package/dist/chunks/MazTabsContent.vue_vue_type_script_setup_true_lang.BGqO0ynq.mjs.map +1 -1
- package/dist/chunks/MazTabsContent.vue_vue_type_script_setup_true_lang.DariT_zv.cjs.map +1 -1
- package/dist/chunks/{PhoneInput.9GQJbL9x.mjs → PhoneInput.DYm0yzgy.mjs} +11 -11
- package/dist/chunks/PhoneInput.DYm0yzgy.mjs.map +1 -0
- package/dist/chunks/{PhoneInput.D5DG4S60.cjs → PhoneInput.wXP8tsCy.cjs} +2 -2
- package/dist/chunks/PhoneInput.wXP8tsCy.cjs.map +1 -0
- package/dist/chunks/{fullscreen-img.directive.CrLLYi0D.mjs → fullscreen-img.directive.CEBhPyiD.mjs} +22 -22
- package/dist/chunks/fullscreen-img.directive.CEBhPyiD.mjs.map +1 -0
- package/dist/chunks/{fullscreen-img.directive.CeREtf7H.cjs → fullscreen-img.directive.CK-8DToy.cjs} +2 -2
- package/dist/chunks/fullscreen-img.directive.CK-8DToy.cjs.map +1 -0
- package/dist/chunks/lazy-img.directive.BeENE6S9.cjs.map +1 -1
- package/dist/chunks/lazy-img.directive.DqXA0UFo.mjs.map +1 -1
- package/dist/chunks/{utils.Bex2hM45.mjs → utils.BxNCknPj.mjs} +11 -11
- package/dist/chunks/utils.BxNCknPj.mjs.map +1 -0
- package/dist/chunks/{utils.vGzCTXH5.cjs → utils.K864VNFX.cjs} +2 -2
- package/dist/chunks/utils.K864VNFX.cjs.map +1 -0
- package/dist/components/MazAccordion.cjs +1 -1
- package/dist/components/MazAccordion.cjs.map +1 -1
- package/dist/components/MazAccordion.mjs +13 -13
- package/dist/components/MazAccordion.mjs.map +1 -1
- package/dist/components/MazAnimatedCounter.cjs +1 -1
- package/dist/components/MazAnimatedCounter.cjs.map +1 -1
- package/dist/components/MazAnimatedCounter.mjs +2 -2
- package/dist/components/MazAnimatedCounter.mjs.map +1 -1
- package/dist/components/MazAnimatedText.cjs +1 -1
- package/dist/components/MazAnimatedText.cjs.map +1 -1
- package/dist/components/MazAnimatedText.mjs +11 -11
- package/dist/components/MazAnimatedText.mjs.map +1 -1
- package/dist/components/MazAvatar.cjs +1 -1
- package/dist/components/MazAvatar.cjs.map +1 -1
- package/dist/components/MazAvatar.mjs +2 -2
- package/dist/components/MazAvatar.mjs.map +1 -1
- package/dist/components/MazBadge.cjs +1 -1
- package/dist/components/MazBadge.mjs +2 -2
- package/dist/components/MazBottomSheet.cjs +1 -1
- package/dist/components/MazBottomSheet.cjs.map +1 -1
- package/dist/components/MazBottomSheet.mjs +10 -10
- package/dist/components/MazBottomSheet.mjs.map +1 -1
- package/dist/components/MazBtn.cjs +1 -1
- package/dist/components/MazBtn.cjs.map +1 -1
- package/dist/components/MazBtn.mjs +2 -2
- package/dist/components/MazBtn.mjs.map +1 -1
- package/dist/components/MazCard.cjs +1 -1
- package/dist/components/MazCard.cjs.map +1 -1
- package/dist/components/MazCard.mjs +2 -2
- package/dist/components/MazCard.mjs.map +1 -1
- package/dist/components/MazCardSpotlight.cjs +1 -1
- package/dist/components/MazCardSpotlight.cjs.map +1 -1
- package/dist/components/MazCardSpotlight.mjs +2 -2
- package/dist/components/MazCardSpotlight.mjs.map +1 -1
- package/dist/components/MazCarousel.cjs +1 -1
- package/dist/components/MazCarousel.cjs.map +1 -1
- package/dist/components/MazCarousel.mjs +2 -2
- package/dist/components/MazCarousel.mjs.map +1 -1
- package/dist/components/MazCheckbox.cjs +1 -1
- package/dist/components/MazCheckbox.cjs.map +1 -1
- package/dist/components/MazCheckbox.mjs +6 -6
- package/dist/components/MazCheckbox.mjs.map +1 -1
- package/dist/components/MazChecklist.cjs +1 -1
- package/dist/components/MazChecklist.cjs.map +1 -1
- package/dist/components/MazChecklist.mjs +3 -3
- package/dist/components/MazChecklist.mjs.map +1 -1
- package/dist/components/MazCircularProgressBar.cjs +1 -1
- package/dist/components/MazCircularProgressBar.cjs.map +1 -1
- package/dist/components/MazCircularProgressBar.mjs +2 -2
- package/dist/components/MazCircularProgressBar.mjs.map +1 -1
- package/dist/components/MazDialog.cjs +1 -1
- package/dist/components/MazDialog.cjs.map +1 -1
- package/dist/components/MazDialog.mjs +2 -2
- package/dist/components/MazDialog.mjs.map +1 -1
- package/dist/components/MazDrawer.cjs +1 -1
- package/dist/components/MazDrawer.cjs.map +1 -1
- package/dist/components/MazDrawer.mjs +8 -8
- package/dist/components/MazDrawer.mjs.map +1 -1
- package/dist/components/MazDropzone.cjs.map +1 -1
- package/dist/components/MazDropzone.mjs.map +1 -1
- package/dist/components/MazFullscreenLoader.cjs +1 -1
- package/dist/components/MazFullscreenLoader.cjs.map +1 -1
- package/dist/components/MazFullscreenLoader.mjs +2 -2
- package/dist/components/MazFullscreenLoader.mjs.map +1 -1
- package/dist/components/MazGallery.cjs +1 -1
- package/dist/components/MazGallery.cjs.map +1 -1
- package/dist/components/MazGallery.mjs +3 -3
- package/dist/components/MazGallery.mjs.map +1 -1
- package/dist/components/MazInput.cjs +1 -1
- package/dist/components/MazInput.cjs.map +1 -1
- package/dist/components/MazInput.mjs +2 -2
- package/dist/components/MazInput.mjs.map +1 -1
- package/dist/components/MazInputCode.cjs +1 -1
- package/dist/components/MazInputCode.cjs.map +1 -1
- package/dist/components/MazInputCode.mjs +5 -5
- package/dist/components/MazInputCode.mjs.map +1 -1
- package/dist/components/MazInputNumber.cjs +1 -1
- package/dist/components/MazInputNumber.mjs +1 -1
- package/dist/components/MazInputPhoneNumber.cjs +1 -1
- package/dist/components/MazInputPhoneNumber.mjs +1 -1
- package/dist/components/MazInputPrice.cjs +1 -1
- package/dist/components/MazInputPrice.mjs +1 -1
- package/dist/components/MazInputTags.cjs +1 -1
- package/dist/components/MazInputTags.cjs.map +1 -1
- package/dist/components/MazInputTags.mjs +8 -8
- package/dist/components/MazInputTags.mjs.map +1 -1
- package/dist/components/MazLazyImg.cjs +1 -1
- package/dist/components/MazLazyImg.cjs.map +1 -1
- package/dist/components/MazLazyImg.mjs +5 -5
- package/dist/components/MazLazyImg.mjs.map +1 -1
- package/dist/components/MazLink.cjs +1 -1
- package/dist/components/MazLink.cjs.map +1 -1
- package/dist/components/MazLink.mjs +2 -2
- package/dist/components/MazLink.mjs.map +1 -1
- package/dist/components/MazLoadingBar.cjs +1 -1
- package/dist/components/MazLoadingBar.cjs.map +1 -1
- package/dist/components/MazLoadingBar.mjs +4 -4
- package/dist/components/MazLoadingBar.mjs.map +1 -1
- package/dist/components/MazPagination.cjs +1 -1
- package/dist/components/MazPagination.cjs.map +1 -1
- package/dist/components/MazPagination.mjs +2 -2
- package/dist/components/MazPagination.mjs.map +1 -1
- package/dist/components/MazPicker.cjs +1 -1
- package/dist/components/MazPicker.mjs +1 -1
- package/dist/components/MazPullToRefresh.cjs +1 -1
- package/dist/components/MazPullToRefresh.cjs.map +1 -1
- package/dist/components/MazPullToRefresh.mjs +2 -2
- package/dist/components/MazPullToRefresh.mjs.map +1 -1
- package/dist/components/MazRadio.cjs +1 -1
- package/dist/components/MazRadio.cjs.map +1 -1
- package/dist/components/MazRadio.mjs +7 -7
- package/dist/components/MazRadio.mjs.map +1 -1
- package/dist/components/MazRadioButtons.cjs +1 -1
- package/dist/components/MazRadioButtons.cjs.map +1 -1
- package/dist/components/MazRadioButtons.mjs +2 -2
- package/dist/components/MazRadioButtons.mjs.map +1 -1
- package/dist/components/MazReadingProgressBar.cjs +1 -1
- package/dist/components/MazReadingProgressBar.cjs.map +1 -1
- package/dist/components/MazReadingProgressBar.mjs +7 -7
- package/dist/components/MazReadingProgressBar.mjs.map +1 -1
- package/dist/components/MazSelect.cjs +1 -1
- package/dist/components/MazSelect.cjs.map +1 -1
- package/dist/components/MazSelect.mjs +7 -7
- package/dist/components/MazSelect.mjs.map +1 -1
- package/dist/components/MazSlider.cjs +1 -1
- package/dist/components/MazSlider.cjs.map +1 -1
- package/dist/components/MazSlider.mjs +11 -11
- package/dist/components/MazSlider.mjs.map +1 -1
- package/dist/components/MazSpinner.cjs +1 -1
- package/dist/components/MazSpinner.mjs +2 -2
- package/dist/components/MazStepper.cjs +1 -1
- package/dist/components/MazStepper.cjs.map +1 -1
- package/dist/components/MazStepper.mjs +22 -22
- package/dist/components/MazStepper.mjs.map +1 -1
- package/dist/components/MazTable.cjs +1 -1
- package/dist/components/MazTable.mjs +3 -3
- package/dist/components/MazTableCell.cjs +1 -1
- package/dist/components/MazTableCell.cjs.map +1 -1
- package/dist/components/MazTableCell.mjs +7 -7
- package/dist/components/MazTableCell.mjs.map +1 -1
- package/dist/components/MazTableRow.cjs +1 -1
- package/dist/components/MazTableRow.cjs.map +1 -1
- package/dist/components/MazTableRow.mjs +7 -7
- package/dist/components/MazTableRow.mjs.map +1 -1
- package/dist/components/MazTableTitle.cjs +1 -1
- package/dist/components/MazTableTitle.cjs.map +1 -1
- package/dist/components/MazTableTitle.mjs +3 -3
- package/dist/components/MazTableTitle.mjs.map +1 -1
- package/dist/components/MazTabsBar.cjs +1 -1
- package/dist/components/MazTabsBar.cjs.map +1 -1
- package/dist/components/MazTabsBar.mjs +2 -2
- package/dist/components/MazTabsBar.mjs.map +1 -1
- package/dist/components/MazTabsContentItem.cjs +1 -1
- package/dist/components/MazTabsContentItem.cjs.map +1 -1
- package/dist/components/MazTabsContentItem.mjs +2 -2
- package/dist/components/MazTabsContentItem.mjs.map +1 -1
- package/dist/components/MazTextarea.cjs +1 -1
- package/dist/components/MazTextarea.cjs.map +1 -1
- package/dist/components/MazTextarea.mjs +6 -6
- package/dist/components/MazTextarea.mjs.map +1 -1
- package/dist/composables/useAos.cjs.map +1 -1
- package/dist/composables/useAos.mjs.map +1 -1
- package/dist/composables/useDialog.cjs.map +1 -1
- package/dist/composables/useDialog.mjs.map +1 -1
- package/dist/composables/useFormField.cjs +1 -1
- package/dist/composables/useFormField.cjs.map +1 -1
- package/dist/composables/useFormField.mjs +19 -19
- package/dist/composables/useFormField.mjs.map +1 -1
- package/dist/composables/useFormValidator.cjs +1 -1
- package/dist/composables/useFormValidator.cjs.map +1 -1
- package/dist/composables/useFormValidator.mjs +11 -11
- package/dist/composables/useFormValidator.mjs.map +1 -1
- package/dist/composables/useIdleTimeout.cjs.map +1 -1
- package/dist/composables/useIdleTimeout.mjs.map +1 -1
- package/dist/composables/useStringMatching.cjs +1 -1
- package/dist/composables/useStringMatching.cjs.map +1 -1
- package/dist/composables/useStringMatching.mjs +1 -1
- package/dist/composables/useStringMatching.mjs.map +1 -1
- package/dist/composables/useSwipe.cjs +1 -1
- package/dist/composables/useSwipe.cjs.map +1 -1
- package/dist/composables/useSwipe.mjs +3 -3
- package/dist/composables/useSwipe.mjs.map +1 -1
- package/dist/composables/useThemeHandler.cjs +1 -1
- package/dist/composables/useThemeHandler.cjs.map +1 -1
- package/dist/composables/useThemeHandler.mjs +1 -1
- package/dist/composables/useThemeHandler.mjs.map +1 -1
- package/dist/composables/useToast.cjs.map +1 -1
- package/dist/composables/useToast.mjs.map +1 -1
- package/dist/composables/useUserVisibilty.cjs.map +1 -1
- package/dist/composables/useUserVisibilty.mjs.map +1 -1
- package/dist/composables/useWait.cjs.map +1 -1
- package/dist/composables/useWait.mjs.map +1 -1
- package/dist/composables/useWindowSize.cjs +1 -1
- package/dist/composables/useWindowSize.cjs.map +1 -1
- package/dist/composables/useWindowSize.mjs +5 -5
- package/dist/composables/useWindowSize.mjs.map +1 -1
- package/dist/directives/vClickOutside.cjs.map +1 -1
- package/dist/directives/vClickOutside.mjs.map +1 -1
- package/dist/directives/vClosable.cjs.map +1 -1
- package/dist/directives/vClosable.mjs.map +1 -1
- package/dist/directives/vFullscreenImg.cjs +1 -1
- package/dist/directives/vFullscreenImg.mjs +1 -1
- package/dist/directives/vLazyImg.cjs.map +1 -1
- package/dist/directives/vLazyImg.mjs.map +1 -1
- package/dist/directives/vTooltip.cjs.map +1 -1
- package/dist/directives/vTooltip.mjs.map +1 -1
- package/dist/filters/pascalCase.cjs.map +1 -1
- package/dist/filters/pascalCase.mjs.map +1 -1
- package/dist/helpers/countryCodeToUnicodeFlag.cjs.map +1 -1
- package/dist/helpers/countryCodeToUnicodeFlag.mjs.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.mjs +5 -5
- package/dist/nuxt/module.d.mts +1 -1
- package/dist/nuxt/module.d.ts +1 -1
- package/dist/nuxt/module.json +1 -1
- package/dist/nuxt/module.mjs +13 -8
- package/dist/nuxt/runtime/plugins/dialog.js +2 -2
- package/dist/plugins/aos.cjs.map +1 -1
- package/dist/plugins/aos.mjs.map +1 -1
- package/dist/plugins/dialog.cjs.map +1 -1
- package/dist/plugins/dialog.mjs.map +1 -1
- package/dist/plugins/toaster.cjs +1 -1
- package/dist/plugins/toaster.cjs.map +1 -1
- package/dist/plugins/toaster.mjs +2 -2
- package/dist/plugins/toaster.mjs.map +1 -1
- package/dist/resolvers/UnpluginVueComponentsResolver.cjs.map +1 -1
- package/dist/resolvers/UnpluginVueComponentsResolver.mjs.map +1 -1
- package/dist/types/components/MazAvatar.vue.d.ts +1 -1
- package/dist/types/components/MazCard.vue.d.ts +1 -1
- package/dist/types/components/MazDialogPromise/useMazDialogPromise.d.ts +1 -1
- package/dist/types/components/MazDropdown.vue.d.ts +1 -1
- package/dist/types/components/MazInputPhoneNumber/CountrySelector.vue.d.ts +3 -3
- package/dist/types/components/MazInputPhoneNumber/types.d.ts +1 -1
- package/dist/types/components/MazInputPhoneNumber.vue.d.ts +1 -1
- package/dist/types/components/MazLazyImg.vue.d.ts +1 -1
- package/dist/types/components/MazLink.vue.d.ts +1 -1
- package/dist/types/components/MazPicker/MazPickerCalendar.vue.d.ts +1 -1
- package/dist/types/components/MazPicker/MazPickerCalendarMonth/MazPickerCalendarGrid.vue.d.ts +1 -1
- package/dist/types/components/MazPicker/MazPickerCalendarMonth/MazPickerCalendarMonth.vue.d.ts +1 -1
- package/dist/types/components/MazPicker/MazPickerContainer.vue.d.ts +1 -1
- package/dist/types/components/MazPicker/MazPickerHeader.vue.d.ts +1 -1
- package/dist/types/components/MazPicker/MazPickerShortcuts.vue.d.ts +1 -1
- package/dist/types/components/MazPicker/MazPickerTime.vue.d.ts +2 -2
- package/dist/types/components/MazPicker/utils.d.ts +1 -1
- package/dist/types/components/MazSlider.vue.d.ts +1 -1
- package/dist/types/components/constantes.d.ts +1 -2
- package/dist/types/components/types.d.ts +2 -1
- package/dist/types/composables/useFormField.d.ts +2 -2
- package/dist/types/composables/useFormValidator/types.d.ts +3 -3
- package/dist/types/composables/useFormValidator.d.ts +3 -3
- package/dist/types/directives/vClickOutside.d.ts +1 -1
- package/dist/types/directives/vClosable.d.ts +1 -1
- package/dist/types/directives/vLazyImg.d.ts +2 -1
- package/dist/types/directives/vTooltip.d.ts +1 -1
- package/package.json +3 -4
- package/dist/assets/MazBtn.7QWd6o3M.css +0 -1
- package/dist/assets/MazGallery.ChuEM3_y.css +0 -1
- package/dist/assets/MazInput.C5uUOQLJ.css +0 -1
- package/dist/assets/MazInputCode.C1Mlb3p3.css +0 -1
- package/dist/assets/MazLink.DQ7r1i9T.css +0 -1
- package/dist/assets/MazLoadingBar.C6sNjytz.css +0 -1
- package/dist/assets/MazPicker.fY2qT4ER.css +0 -1
- package/dist/assets/MazPickerCalendarMonth.GACBSeof.css +0 -1
- package/dist/assets/MazReadingProgressBar.CbqVvC8N.css +0 -1
- package/dist/assets/MazSpinner.DTuz1RdS.css +0 -1
- package/dist/assets/MazTable.D06R_2nI.css +0 -1
- package/dist/assets/MazTableCell.BDmda4j7.css +0 -1
- package/dist/assets/MazTableRow.Copw9RJN.css +0 -1
- package/dist/assets/MazTableTitle.Cspgmj1g.css +0 -1
- package/dist/assets/PhoneInput.utJQQXVJ.css +0 -1
- package/dist/chunks/CountrySelector.C5XZelLY.mjs.map +0 -1
- package/dist/chunks/CountrySelector.mFGaqpPf.cjs.map +0 -1
- package/dist/chunks/MazInputNumber.vue_vue_type_script_setup_true_lang.Bbod2mLd.mjs.map +0 -1
- package/dist/chunks/MazInputNumber.vue_vue_type_script_setup_true_lang.DiawfWBC.cjs.map +0 -1
- package/dist/chunks/MazInputPrice.vue_vue_type_script_setup_true_lang.C3X2lwRl.mjs.map +0 -1
- package/dist/chunks/MazInputPrice.vue_vue_type_script_setup_true_lang.CCatmP_L.cjs.map +0 -1
- package/dist/chunks/MazPicker.BZE8cw36.cjs.map +0 -1
- package/dist/chunks/MazPicker.DCnOkRvv.mjs.map +0 -1
- package/dist/chunks/MazPickerCalendar.CVZ8VoYr.cjs.map +0 -1
- package/dist/chunks/MazPickerCalendar.NeYLrtl-.mjs.map +0 -1
- package/dist/chunks/MazPickerCalendarMonth.DpvQC45k.cjs.map +0 -1
- package/dist/chunks/MazPickerCalendarMonth.rnaiDHFM.mjs.map +0 -1
- package/dist/chunks/MazPickerCalendarSwitcher.DC2wff_J.cjs.map +0 -1
- package/dist/chunks/MazPickerCalendarSwitcher.DFGrD6Cr.mjs.map +0 -1
- package/dist/chunks/MazPickerHeader.B7YY9SJI.mjs.map +0 -1
- package/dist/chunks/MazPickerHeader.l7NcmiGH.cjs.map +0 -1
- package/dist/chunks/MazPickerMonthSwitcher.CAPx3PCt.mjs.map +0 -1
- package/dist/chunks/MazPickerMonthSwitcher.CbplWFfL.cjs.map +0 -1
- package/dist/chunks/MazPickerShortcuts.Bawm0q33.mjs.map +0 -1
- package/dist/chunks/MazPickerShortcuts.LxFs0Y6N.cjs.map +0 -1
- package/dist/chunks/MazPickerTime.7cxq-Qac.cjs.map +0 -1
- package/dist/chunks/MazPickerTime.C27aFPPw.mjs.map +0 -1
- package/dist/chunks/MazPickerYearSwitcher.DMBOaMYy.mjs.map +0 -1
- package/dist/chunks/MazPickerYearSwitcher.Dku2IMIJ.cjs.map +0 -1
- package/dist/chunks/MazTable.vue_vue_type_style_index_0_scoped_4101f1d3_lang.Ctmf2NVE.cjs.map +0 -1
- package/dist/chunks/MazTable.vue_vue_type_style_index_0_scoped_4101f1d3_lang.Dwkx-V96.mjs.map +0 -1
- package/dist/chunks/PhoneInput.9GQJbL9x.mjs.map +0 -1
- package/dist/chunks/PhoneInput.D5DG4S60.cjs.map +0 -1
- package/dist/chunks/fullscreen-img.directive.CeREtf7H.cjs.map +0 -1
- package/dist/chunks/fullscreen-img.directive.CrLLYi0D.mjs.map +0 -1
- package/dist/chunks/utils.Bex2hM45.mjs.map +0 -1
- package/dist/chunks/utils.vGzCTXH5.cjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFormValidator.cjs","sources":["../../src/composables/useFormValidator.ts"],"sourcesContent":["import type {\n BaseFormPayload,\n ExtractModelKey,\n FieldsStates,\n FormContext,\n FormSchema,\n FormValidatorOptions,\n StrictOptions,\n UseFormValidatorParams,\n} from '
|
|
1
|
+
{"version":3,"file":"useFormValidator.cjs","sources":["../../src/composables/useFormValidator.ts"],"sourcesContent":["import type { Ref, WatchStopHandle } from 'vue'\nimport type {\n BaseFormPayload,\n ExtractModelKey,\n FieldsStates,\n FormContext,\n FormSchema,\n FormValidatorOptions,\n StrictOptions,\n UseFormValidatorParams,\n} from '../composables/useFormValidator/types'\n\nimport { computed, nextTick, provide, ref, watch } from 'vue'\nimport { CONFIG } from '../composables/useFormValidator/config'\nimport {\n getErrorMessages,\n getFieldsErrors,\n getFieldsStates,\n getInstance,\n handleFieldInput,\n hasModeIncludes,\n scrollToError,\n updateFieldsStates,\n validateForm,\n} from '../composables/useFormValidator/utils'\n\nexport function useFormValidator<\n Model extends BaseFormPayload,\n>({ schema, defaultValues, model, options }: UseFormValidatorParams<Model>) {\n const instance = getInstance<Model>('useFormValidator')\n\n const opts = {\n mode: CONFIG.mode,\n scrollToError: CONFIG.scrollToErrorSelector,\n debouncedFields: null,\n throttledFields: null,\n identifier: 'main-form-validator',\n ...options,\n } satisfies StrictOptions<Model>\n\n const internalDefaultValues = ref(defaultValues) as Ref<Partial<Model>>\n const payload = ref({ ...internalDefaultValues.value, ...model?.value }) as Ref<Model>\n const internalSchema = ref(schema) as Ref<FormSchema<Model>>\n const fieldsStates = ref(\n getFieldsStates<Model>({\n schema: internalSchema.value,\n payload: payload.value,\n options: opts,\n }),\n ) as Ref<FieldsStates<Model>>\n\n const isSubmitting = ref(false)\n const isSubmitted = ref(false)\n\n const isValid = computed(() => Object.values(fieldsStates.value).every(({ valid }) => valid))\n const isDirty = computed(() => Object.values(fieldsStates.value).some(({ dirty }) => dirty))\n const errors = computed(() => getFieldsErrors(fieldsStates.value))\n const errorMessages = computed(() => getErrorMessages(errors.value, fieldsStates.value))\n\n if (model) {\n watch(\n payload,\n (newModel) => {\n model.value = { ...internalDefaultValues.value, ...newModel }\n },\n { deep: true },\n )\n }\n\n watch(\n internalDefaultValues,\n (newDefaultValues) => {\n payload.value = { ...newDefaultValues, ...payload.value }\n },\n { deep: true },\n )\n\n watch(\n internalSchema,\n (schema) => {\n updateFieldsStates({\n schema,\n fieldsStates: fieldsStates.value,\n payload: payload.value,\n options: opts,\n })\n internalValidateForm()\n },\n { deep: true },\n )\n\n internalValidateForm()\n\n function internalValidateForm(showErrors = opts.mode === 'aggressive') {\n return validateForm<Model>({\n fieldsStates: fieldsStates.value,\n payload: payload.value,\n schema: internalSchema.value,\n showErrors,\n })\n }\n\n const watchedPayloadStopFunctions: WatchStopHandle[] = []\n\n async function addFieldValidationWatch(name: ExtractModelKey<FormSchema<Model>>) {\n await nextTick()\n\n const watchStopFunc = watch(\n () => payload.value[name],\n () => {\n const fieldState = fieldsStates.value[name]\n\n handleFieldInput<Model>({\n name,\n fieldState,\n payload: payload.value,\n schema: internalSchema.value,\n isSubmitted: isSubmitted.value,\n forceValidation: hasModeIncludes(['aggressive', 'lazy', 'progressive'], fieldState.mode),\n })\n },\n { deep: typeof internalSchema.value[name] === 'object' },\n )\n\n watchedPayloadStopFunctions.push(watchStopFunc)\n }\n\n function addFieldsValidationWatch() {\n for (const watchStopFunc of watchedPayloadStopFunctions) {\n watchStopFunc()\n }\n\n for (const name of Object.keys(internalSchema.value)) {\n addFieldValidationWatch(name as ExtractModelKey<FormSchema<Model>>)\n }\n }\n\n function handleSubmit<Func extends (model: Model) => Promise<Awaited<ReturnType<Func>>> | ReturnType<Func>>(\n successCallback: Func,\n enableScrollOrSelector?: FormValidatorOptions['scrollToError'],\n ) {\n return async (event?: Event) => {\n event?.preventDefault()\n\n if (isSubmitting.value)\n return\n\n isSubmitted.value = true\n isSubmitting.value = true\n\n try {\n await internalValidateForm(true)\n\n const scrollToErrorParam\n = typeof enableScrollOrSelector === 'string' ? enableScrollOrSelector : opts.scrollToError\n\n let response: Awaited<ReturnType<Func>> | ReturnType<Func> | undefined\n\n if (isValid.value) {\n response = await successCallback(payload.value)\n }\n else if (typeof scrollToErrorParam !== 'boolean') {\n scrollToError(scrollToErrorParam)\n }\n\n isSubmitting.value = false\n\n return response\n }\n finally {\n isSubmitting.value = false\n }\n }\n }\n\n const context = {\n fieldsStates,\n payload,\n options: opts,\n internalSchema,\n errorMessages,\n isSubmitted,\n } satisfies FormContext<Model>\n\n instance.formContexts ??= new Map()\n instance.formContexts.set(opts.identifier, context)\n\n provide(opts.identifier, context)\n\n addFieldsValidationWatch()\n\n return {\n identifier: opts.identifier,\n isDirty,\n isSubmitting,\n isSubmitted,\n isValid,\n errors,\n model: payload,\n fieldsStates,\n validateForm: internalValidateForm,\n scrollToError,\n handleSubmit,\n errorMessages,\n }\n}\n"],"names":["useFormValidator","schema","defaultValues","model","options","instance","getInstance","opts","CONFIG","internalDefaultValues","ref","payload","internalSchema","fieldsStates","getFieldsStates","isSubmitting","isSubmitted","isValid","computed","valid","isDirty","dirty","errors","getFieldsErrors","errorMessages","getErrorMessages","watch","newModel","newDefaultValues","updateFieldsStates","internalValidateForm","showErrors","validateForm","watchedPayloadStopFunctions","addFieldValidationWatch","name","nextTick","watchStopFunc","fieldState","handleFieldInput","hasModeIncludes","addFieldsValidationWatch","handleSubmit","successCallback","enableScrollOrSelector","event","scrollToErrorParam","response","scrollToError","context","provide"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { ref as r, computed as f, watch as p, provide as O, nextTick as k } from "vue";
|
|
2
|
+
import { g as P, C as V, a as W, b as z, c as G, u as N, v as q, s as E, h as A, d as B } from "../chunks/utils.BxNCknPj.mjs";
|
|
3
3
|
function K({ schema: T, defaultValues: x, model: i, options: j }) {
|
|
4
|
-
const n =
|
|
4
|
+
const n = P("useFormValidator"), s = {
|
|
5
5
|
mode: V.mode,
|
|
6
6
|
scrollToError: V.scrollToErrorSelector,
|
|
7
7
|
debouncedFields: null,
|
|
@@ -9,12 +9,12 @@ function K({ schema: T, defaultValues: x, model: i, options: j }) {
|
|
|
9
9
|
identifier: "main-form-validator",
|
|
10
10
|
...j
|
|
11
11
|
}, m = r(x), a = r({ ...m.value, ...i == null ? void 0 : i.value }), o = r(T), t = r(
|
|
12
|
-
|
|
12
|
+
W({
|
|
13
13
|
schema: o.value,
|
|
14
14
|
payload: a.value,
|
|
15
15
|
options: s
|
|
16
16
|
})
|
|
17
|
-
), u = r(!1), c = r(!1), h = f(() => Object.values(t.value).every(({ valid: e }) => e)), C = f(() => Object.values(t.value).some(({ dirty: e }) => e)), y = f(() =>
|
|
17
|
+
), u = r(!1), c = r(!1), h = f(() => Object.values(t.value).every(({ valid: e }) => e)), C = f(() => Object.values(t.value).some(({ dirty: e }) => e)), y = f(() => z(t.value)), F = f(() => G(y.value, t.value));
|
|
18
18
|
i && p(
|
|
19
19
|
a,
|
|
20
20
|
(e) => {
|
|
@@ -30,7 +30,7 @@ function K({ schema: T, defaultValues: x, model: i, options: j }) {
|
|
|
30
30
|
), p(
|
|
31
31
|
o,
|
|
32
32
|
(e) => {
|
|
33
|
-
|
|
33
|
+
N({
|
|
34
34
|
schema: e,
|
|
35
35
|
fieldsStates: t.value,
|
|
36
36
|
payload: a.value,
|
|
@@ -40,7 +40,7 @@ function K({ schema: T, defaultValues: x, model: i, options: j }) {
|
|
|
40
40
|
{ deep: !0 }
|
|
41
41
|
), d();
|
|
42
42
|
function d(e = s.mode === "aggressive") {
|
|
43
|
-
return
|
|
43
|
+
return q({
|
|
44
44
|
fieldsStates: t.value,
|
|
45
45
|
payload: a.value,
|
|
46
46
|
schema: o.value,
|
|
@@ -49,18 +49,18 @@ function K({ schema: T, defaultValues: x, model: i, options: j }) {
|
|
|
49
49
|
}
|
|
50
50
|
const g = [];
|
|
51
51
|
async function I(e) {
|
|
52
|
-
await
|
|
52
|
+
await k();
|
|
53
53
|
const v = p(
|
|
54
54
|
() => a.value[e],
|
|
55
55
|
() => {
|
|
56
56
|
const l = t.value[e];
|
|
57
|
-
|
|
57
|
+
A({
|
|
58
58
|
name: e,
|
|
59
59
|
fieldState: l,
|
|
60
60
|
payload: a.value,
|
|
61
61
|
schema: o.value,
|
|
62
62
|
isSubmitted: c.value,
|
|
63
|
-
forceValidation:
|
|
63
|
+
forceValidation: B(["aggressive", "lazy", "progressive"], l.mode)
|
|
64
64
|
});
|
|
65
65
|
},
|
|
66
66
|
{ deep: typeof o.value[e] == "object" }
|
|
@@ -96,7 +96,7 @@ function K({ schema: T, defaultValues: x, model: i, options: j }) {
|
|
|
96
96
|
errorMessages: F,
|
|
97
97
|
isSubmitted: c
|
|
98
98
|
};
|
|
99
|
-
return n.formContexts ?? (n.formContexts = /* @__PURE__ */ new Map()), n.formContexts.set(s.identifier, S),
|
|
99
|
+
return n.formContexts ?? (n.formContexts = /* @__PURE__ */ new Map()), n.formContexts.set(s.identifier, S), O(s.identifier, S), M(), {
|
|
100
100
|
identifier: s.identifier,
|
|
101
101
|
isDirty: C,
|
|
102
102
|
isSubmitting: u,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFormValidator.mjs","sources":["../../src/composables/useFormValidator.ts"],"sourcesContent":["import type {\n BaseFormPayload,\n ExtractModelKey,\n FieldsStates,\n FormContext,\n FormSchema,\n FormValidatorOptions,\n StrictOptions,\n UseFormValidatorParams,\n} from '
|
|
1
|
+
{"version":3,"file":"useFormValidator.mjs","sources":["../../src/composables/useFormValidator.ts"],"sourcesContent":["import type { Ref, WatchStopHandle } from 'vue'\nimport type {\n BaseFormPayload,\n ExtractModelKey,\n FieldsStates,\n FormContext,\n FormSchema,\n FormValidatorOptions,\n StrictOptions,\n UseFormValidatorParams,\n} from '../composables/useFormValidator/types'\n\nimport { computed, nextTick, provide, ref, watch } from 'vue'\nimport { CONFIG } from '../composables/useFormValidator/config'\nimport {\n getErrorMessages,\n getFieldsErrors,\n getFieldsStates,\n getInstance,\n handleFieldInput,\n hasModeIncludes,\n scrollToError,\n updateFieldsStates,\n validateForm,\n} from '../composables/useFormValidator/utils'\n\nexport function useFormValidator<\n Model extends BaseFormPayload,\n>({ schema, defaultValues, model, options }: UseFormValidatorParams<Model>) {\n const instance = getInstance<Model>('useFormValidator')\n\n const opts = {\n mode: CONFIG.mode,\n scrollToError: CONFIG.scrollToErrorSelector,\n debouncedFields: null,\n throttledFields: null,\n identifier: 'main-form-validator',\n ...options,\n } satisfies StrictOptions<Model>\n\n const internalDefaultValues = ref(defaultValues) as Ref<Partial<Model>>\n const payload = ref({ ...internalDefaultValues.value, ...model?.value }) as Ref<Model>\n const internalSchema = ref(schema) as Ref<FormSchema<Model>>\n const fieldsStates = ref(\n getFieldsStates<Model>({\n schema: internalSchema.value,\n payload: payload.value,\n options: opts,\n }),\n ) as Ref<FieldsStates<Model>>\n\n const isSubmitting = ref(false)\n const isSubmitted = ref(false)\n\n const isValid = computed(() => Object.values(fieldsStates.value).every(({ valid }) => valid))\n const isDirty = computed(() => Object.values(fieldsStates.value).some(({ dirty }) => dirty))\n const errors = computed(() => getFieldsErrors(fieldsStates.value))\n const errorMessages = computed(() => getErrorMessages(errors.value, fieldsStates.value))\n\n if (model) {\n watch(\n payload,\n (newModel) => {\n model.value = { ...internalDefaultValues.value, ...newModel }\n },\n { deep: true },\n )\n }\n\n watch(\n internalDefaultValues,\n (newDefaultValues) => {\n payload.value = { ...newDefaultValues, ...payload.value }\n },\n { deep: true },\n )\n\n watch(\n internalSchema,\n (schema) => {\n updateFieldsStates({\n schema,\n fieldsStates: fieldsStates.value,\n payload: payload.value,\n options: opts,\n })\n internalValidateForm()\n },\n { deep: true },\n )\n\n internalValidateForm()\n\n function internalValidateForm(showErrors = opts.mode === 'aggressive') {\n return validateForm<Model>({\n fieldsStates: fieldsStates.value,\n payload: payload.value,\n schema: internalSchema.value,\n showErrors,\n })\n }\n\n const watchedPayloadStopFunctions: WatchStopHandle[] = []\n\n async function addFieldValidationWatch(name: ExtractModelKey<FormSchema<Model>>) {\n await nextTick()\n\n const watchStopFunc = watch(\n () => payload.value[name],\n () => {\n const fieldState = fieldsStates.value[name]\n\n handleFieldInput<Model>({\n name,\n fieldState,\n payload: payload.value,\n schema: internalSchema.value,\n isSubmitted: isSubmitted.value,\n forceValidation: hasModeIncludes(['aggressive', 'lazy', 'progressive'], fieldState.mode),\n })\n },\n { deep: typeof internalSchema.value[name] === 'object' },\n )\n\n watchedPayloadStopFunctions.push(watchStopFunc)\n }\n\n function addFieldsValidationWatch() {\n for (const watchStopFunc of watchedPayloadStopFunctions) {\n watchStopFunc()\n }\n\n for (const name of Object.keys(internalSchema.value)) {\n addFieldValidationWatch(name as ExtractModelKey<FormSchema<Model>>)\n }\n }\n\n function handleSubmit<Func extends (model: Model) => Promise<Awaited<ReturnType<Func>>> | ReturnType<Func>>(\n successCallback: Func,\n enableScrollOrSelector?: FormValidatorOptions['scrollToError'],\n ) {\n return async (event?: Event) => {\n event?.preventDefault()\n\n if (isSubmitting.value)\n return\n\n isSubmitted.value = true\n isSubmitting.value = true\n\n try {\n await internalValidateForm(true)\n\n const scrollToErrorParam\n = typeof enableScrollOrSelector === 'string' ? enableScrollOrSelector : opts.scrollToError\n\n let response: Awaited<ReturnType<Func>> | ReturnType<Func> | undefined\n\n if (isValid.value) {\n response = await successCallback(payload.value)\n }\n else if (typeof scrollToErrorParam !== 'boolean') {\n scrollToError(scrollToErrorParam)\n }\n\n isSubmitting.value = false\n\n return response\n }\n finally {\n isSubmitting.value = false\n }\n }\n }\n\n const context = {\n fieldsStates,\n payload,\n options: opts,\n internalSchema,\n errorMessages,\n isSubmitted,\n } satisfies FormContext<Model>\n\n instance.formContexts ??= new Map()\n instance.formContexts.set(opts.identifier, context)\n\n provide(opts.identifier, context)\n\n addFieldsValidationWatch()\n\n return {\n identifier: opts.identifier,\n isDirty,\n isSubmitting,\n isSubmitted,\n isValid,\n errors,\n model: payload,\n fieldsStates,\n validateForm: internalValidateForm,\n scrollToError,\n handleSubmit,\n errorMessages,\n }\n}\n"],"names":["useFormValidator","schema","defaultValues","model","options","instance","getInstance","opts","CONFIG","internalDefaultValues","ref","payload","internalSchema","fieldsStates","getFieldsStates","isSubmitting","isSubmitted","isValid","computed","valid","isDirty","dirty","errors","getFieldsErrors","errorMessages","getErrorMessages","watch","newModel","newDefaultValues","updateFieldsStates","internalValidateForm","showErrors","validateForm","watchedPayloadStopFunctions","addFieldValidationWatch","name","nextTick","watchStopFunc","fieldState","handleFieldInput","hasModeIncludes","addFieldsValidationWatch","handleSubmit","successCallback","enableScrollOrSelector","event","scrollToErrorParam","response","scrollToError","context","provide"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useIdleTimeout.cjs","sources":["../../src/composables/useIdleTimeout.ts"],"sourcesContent":["import {\n IdleTimeout,\n type IdleTimeoutCallback,\n type IdleTimeoutOptions,\n} from '
|
|
1
|
+
{"version":3,"file":"useIdleTimeout.cjs","sources":["../../src/composables/useIdleTimeout.ts"],"sourcesContent":["import {\n IdleTimeout,\n type IdleTimeoutCallback,\n type IdleTimeoutOptions,\n} from '../helpers/idleTimeout'\n\nexport function useIdleTimeout({\n callback,\n options,\n}: {\n callback: IdleTimeoutCallback\n options?: IdleTimeoutOptions\n}) {\n return new IdleTimeout(callback, options)\n}\n"],"names":["useIdleTimeout","callback","options","IdleTimeout"],"mappings":"8HAMO,SAASA,EAAe,CAC7B,SAAAC,EACA,QAAAC,CACF,EAGG,CACM,OAAA,IAAIC,EAAAA,YAAYF,EAAUC,CAAO,CAC1C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useIdleTimeout.mjs","sources":["../../src/composables/useIdleTimeout.ts"],"sourcesContent":["import {\n IdleTimeout,\n type IdleTimeoutCallback,\n type IdleTimeoutOptions,\n} from '
|
|
1
|
+
{"version":3,"file":"useIdleTimeout.mjs","sources":["../../src/composables/useIdleTimeout.ts"],"sourcesContent":["import {\n IdleTimeout,\n type IdleTimeoutCallback,\n type IdleTimeoutOptions,\n} from '../helpers/idleTimeout'\n\nexport function useIdleTimeout({\n callback,\n options,\n}: {\n callback: IdleTimeoutCallback\n options?: IdleTimeoutOptions\n}) {\n return new IdleTimeout(callback, options)\n}\n"],"names":["useIdleTimeout","callback","options","IdleTimeout"],"mappings":";AAMO,SAASA,EAAe;AAAA,EAC7B,UAAAC;AAAA,EACA,SAAAC;AACF,GAGG;AACM,SAAA,IAAIC,EAAYF,GAAUC,CAAO;AAC1C;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("../helpers/normalizeString.cjs")
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("vue"),l=require("../helpers/normalizeString.cjs");function g(t,n){const o=t.length,u=n.length,c=[];for(let e=0;e<=o;e++)c[e]=[e];for(let e=0;e<=u;e++)c[0][e]=e;for(let e=1;e<=o;e++)for(let i=1;i<=u;i++){const a=t[e-1]===n[i-1]?0:1;c[e][i]=Math.min(c[e-1][i]+1,c[e][i-1]+1,c[e-1][i-1]+a)}return c[o][u]}function s(t,n){const o=g(t,n),u=Math.max(t.length,n.length);return 1-o/u}function h(t,n,o=.75){return s(t,n)>=o}function m(t,n,o=.75){const u=r.computed(()=>l.normalizeString(typeof t=="string"?t:t.value)),c=r.computed(()=>l.normalizeString(typeof n=="string"?n:n.value)),e=r.computed(()=>typeof o=="number"?o:o.value),i=r.computed(()=>s(u.value,c.value));return{isMatching:r.computed(()=>h(u.value,c.value,e.value)),score:i}}exports.useStringMatching=m;
|
|
2
2
|
//# sourceMappingURL=useStringMatching.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useStringMatching.cjs","sources":["../../src/composables/useStringMatching.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"useStringMatching.cjs","sources":["../../src/composables/useStringMatching.ts"],"sourcesContent":["import { computed, type Ref } from 'vue'\nimport { normalizeString } from '../helpers/normalizeString'\n\nfunction levenshteinDistance(string1: string, string2: string): number {\n const length1 = string1.length\n const length2 = string2.length\n\n const matrix: number[][] = []\n\n for (let index = 0; index <= length1; index++) {\n matrix[index] = [index]\n }\n for (let index = 0; index <= length2; index++) {\n matrix[0][index] = index\n }\n\n // Calcul de la distance de Levenshtein\n for (let index = 1; index <= length1; index++) {\n for (let index_ = 1; index_ <= length2; index_++) {\n const cost = string1[index - 1] === string2[index_ - 1] ? 0 : 1\n matrix[index][index_] = Math.min(\n matrix[index - 1][index_] + 1,\n matrix[index][index_ - 1] + 1,\n matrix[index - 1][index_ - 1] + cost,\n )\n }\n }\n\n return matrix[length1][length2]\n}\n\nfunction getMatchingScore(string1: string, string2: string): number {\n const distance = levenshteinDistance(string1, string2)\n\n const maxLength = Math.max(string1.length, string2.length)\n return 1 - distance / maxLength\n}\n\nfunction getMatchingResults(string1: string, string2: string, threshold = 0.75): boolean {\n const score = getMatchingScore(string1, string2)\n\n return score >= threshold\n}\n\nexport function useStringMatching(\n string1: string | Ref<string>,\n string2: string | Ref<string>,\n threshold: number | Ref<number> = 0.75,\n) {\n const _string1 = computed(() =>\n normalizeString(typeof string1 === 'string' ? string1 : string1.value),\n )\n const _string2 = computed(() =>\n normalizeString(typeof string2 === 'string' ? string2 : string2.value),\n )\n const _threshold = computed(() => (typeof threshold === 'number' ? threshold : threshold.value))\n\n const score = computed(() => getMatchingScore(_string1.value, _string2.value))\n\n const isMatching = computed(() =>\n getMatchingResults(_string1.value, _string2.value, _threshold.value),\n )\n\n return {\n isMatching,\n score,\n }\n}\n"],"names":["levenshteinDistance","string1","string2","length1","length2","matrix","index","index_","cost","getMatchingScore","distance","maxLength","getMatchingResults","threshold","useStringMatching","_string1","computed","normalizeString","_string2","_threshold","score"],"mappings":"mJAGA,SAASA,EAAoBC,EAAiBC,EAAyB,CACrE,MAAMC,EAAUF,EAAQ,OAClBG,EAAUF,EAAQ,OAElBG,EAAqB,CAAC,EAE5B,QAASC,EAAQ,EAAGA,GAASH,EAASG,IAC7BD,EAAAC,CAAK,EAAI,CAACA,CAAK,EAExB,QAASA,EAAQ,EAAGA,GAASF,EAASE,IAC7BD,EAAA,CAAC,EAAEC,CAAK,EAAIA,EAIrB,QAASA,EAAQ,EAAGA,GAASH,EAASG,IACpC,QAASC,EAAS,EAAGA,GAAUH,EAASG,IAAU,CAC1C,MAAAC,EAAOP,EAAQK,EAAQ,CAAC,IAAMJ,EAAQK,EAAS,CAAC,EAAI,EAAI,EAC9DF,EAAOC,CAAK,EAAEC,CAAM,EAAI,KAAK,IAC3BF,EAAOC,EAAQ,CAAC,EAAEC,CAAM,EAAI,EAC5BF,EAAOC,CAAK,EAAEC,EAAS,CAAC,EAAI,EAC5BF,EAAOC,EAAQ,CAAC,EAAEC,EAAS,CAAC,EAAIC,CAClC,CAAA,CAIG,OAAAH,EAAOF,CAAO,EAAEC,CAAO,CAChC,CAEA,SAASK,EAAiBR,EAAiBC,EAAyB,CAC5D,MAAAQ,EAAWV,EAAoBC,EAASC,CAAO,EAE/CS,EAAY,KAAK,IAAIV,EAAQ,OAAQC,EAAQ,MAAM,EACzD,MAAO,GAAIQ,EAAWC,CACxB,CAEA,SAASC,EAAmBX,EAAiBC,EAAiBW,EAAY,IAAe,CAGvF,OAFcJ,EAAiBR,EAASC,CAAO,GAE/BW,CAClB,CAEO,SAASC,EACdb,EACAC,EACAW,EAAkC,IAClC,CACA,MAAME,EAAWC,EAAA,SAAS,IACxBC,EAAAA,gBAAgB,OAAOhB,GAAY,SAAWA,EAAUA,EAAQ,KAAK,CACvE,EACMiB,EAAWF,EAAA,SAAS,IACxBC,EAAAA,gBAAgB,OAAOf,GAAY,SAAWA,EAAUA,EAAQ,KAAK,CACvE,EACMiB,EAAaH,WAAS,IAAO,OAAOH,GAAc,SAAWA,EAAYA,EAAU,KAAM,EAEzFO,EAAQJ,WAAS,IAAMP,EAAiBM,EAAS,MAAOG,EAAS,KAAK,CAAC,EAMtE,MAAA,CACL,WALiBF,EAAA,SAAS,IAC1BJ,EAAmBG,EAAS,MAAOG,EAAS,MAAOC,EAAW,KAAK,CACrE,EAIE,MAAAC,CACF,CACF"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { normalizeString as u } from "../helpers/normalizeString.mjs";
|
|
2
1
|
import { computed as r } from "vue";
|
|
2
|
+
import { normalizeString as u } from "../helpers/normalizeString.mjs";
|
|
3
3
|
function f(e, n) {
|
|
4
4
|
const o = e.length, a = n.length, c = [];
|
|
5
5
|
for (let t = 0; t <= o; t++)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useStringMatching.mjs","sources":["../../src/composables/useStringMatching.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"useStringMatching.mjs","sources":["../../src/composables/useStringMatching.ts"],"sourcesContent":["import { computed, type Ref } from 'vue'\nimport { normalizeString } from '../helpers/normalizeString'\n\nfunction levenshteinDistance(string1: string, string2: string): number {\n const length1 = string1.length\n const length2 = string2.length\n\n const matrix: number[][] = []\n\n for (let index = 0; index <= length1; index++) {\n matrix[index] = [index]\n }\n for (let index = 0; index <= length2; index++) {\n matrix[0][index] = index\n }\n\n // Calcul de la distance de Levenshtein\n for (let index = 1; index <= length1; index++) {\n for (let index_ = 1; index_ <= length2; index_++) {\n const cost = string1[index - 1] === string2[index_ - 1] ? 0 : 1\n matrix[index][index_] = Math.min(\n matrix[index - 1][index_] + 1,\n matrix[index][index_ - 1] + 1,\n matrix[index - 1][index_ - 1] + cost,\n )\n }\n }\n\n return matrix[length1][length2]\n}\n\nfunction getMatchingScore(string1: string, string2: string): number {\n const distance = levenshteinDistance(string1, string2)\n\n const maxLength = Math.max(string1.length, string2.length)\n return 1 - distance / maxLength\n}\n\nfunction getMatchingResults(string1: string, string2: string, threshold = 0.75): boolean {\n const score = getMatchingScore(string1, string2)\n\n return score >= threshold\n}\n\nexport function useStringMatching(\n string1: string | Ref<string>,\n string2: string | Ref<string>,\n threshold: number | Ref<number> = 0.75,\n) {\n const _string1 = computed(() =>\n normalizeString(typeof string1 === 'string' ? string1 : string1.value),\n )\n const _string2 = computed(() =>\n normalizeString(typeof string2 === 'string' ? string2 : string2.value),\n )\n const _threshold = computed(() => (typeof threshold === 'number' ? threshold : threshold.value))\n\n const score = computed(() => getMatchingScore(_string1.value, _string2.value))\n\n const isMatching = computed(() =>\n getMatchingResults(_string1.value, _string2.value, _threshold.value),\n )\n\n return {\n isMatching,\n score,\n }\n}\n"],"names":["levenshteinDistance","string1","string2","length1","length2","matrix","index","index_","cost","getMatchingScore","distance","maxLength","getMatchingResults","threshold","useStringMatching","_string1","computed","normalizeString","_string2","_threshold","score"],"mappings":";;AAGA,SAASA,EAAoBC,GAAiBC,GAAyB;AACrE,QAAMC,IAAUF,EAAQ,QAClBG,IAAUF,EAAQ,QAElBG,IAAqB,CAAC;AAE5B,WAASC,IAAQ,GAAGA,KAASH,GAASG;AAC7B,IAAAD,EAAAC,CAAK,IAAI,CAACA,CAAK;AAExB,WAASA,IAAQ,GAAGA,KAASF,GAASE;AAC7B,IAAAD,EAAA,CAAC,EAAEC,CAAK,IAAIA;AAIrB,WAASA,IAAQ,GAAGA,KAASH,GAASG;AACpC,aAASC,IAAS,GAAGA,KAAUH,GAASG,KAAU;AAC1C,YAAAC,IAAOP,EAAQK,IAAQ,CAAC,MAAMJ,EAAQK,IAAS,CAAC,IAAI,IAAI;AAC9D,MAAAF,EAAOC,CAAK,EAAEC,CAAM,IAAI,KAAK;AAAA,QAC3BF,EAAOC,IAAQ,CAAC,EAAEC,CAAM,IAAI;AAAA,QAC5BF,EAAOC,CAAK,EAAEC,IAAS,CAAC,IAAI;AAAA,QAC5BF,EAAOC,IAAQ,CAAC,EAAEC,IAAS,CAAC,IAAIC;AAAA,MAClC;AAAA,IAAA;AAIG,SAAAH,EAAOF,CAAO,EAAEC,CAAO;AAChC;AAEA,SAASK,EAAiBR,GAAiBC,GAAyB;AAC5D,QAAAQ,IAAWV,EAAoBC,GAASC,CAAO,GAE/CS,IAAY,KAAK,IAAIV,EAAQ,QAAQC,EAAQ,MAAM;AACzD,SAAO,IAAIQ,IAAWC;AACxB;AAEA,SAASC,EAAmBX,GAAiBC,GAAiBW,IAAY,MAAe;AAGvF,SAFcJ,EAAiBR,GAASC,CAAO,KAE/BW;AAClB;AAEO,SAASC,EACdb,GACAC,GACAW,IAAkC,MAClC;AACA,QAAME,IAAWC;AAAA,IAAS,MACxBC,EAAgB,OAAOhB,KAAY,WAAWA,IAAUA,EAAQ,KAAK;AAAA,EACvE,GACMiB,IAAWF;AAAA,IAAS,MACxBC,EAAgB,OAAOf,KAAY,WAAWA,IAAUA,EAAQ,KAAK;AAAA,EACvE,GACMiB,IAAaH,EAAS,MAAO,OAAOH,KAAc,WAAWA,IAAYA,EAAU,KAAM,GAEzFO,IAAQJ,EAAS,MAAMP,EAAiBM,EAAS,OAAOG,EAAS,KAAK,CAAC;AAMtE,SAAA;AAAA,IACL,YALiBF;AAAA,MAAS,MAC1BJ,EAAmBG,EAAS,OAAOG,EAAS,OAAOC,EAAW,KAAK;AAAA,IACrE;AAAA,IAIE,OAAAC;AAAA,EACF;AACF;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("../helpers/swipeHandler.cjs")
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),c=require("../helpers/swipeHandler.cjs");function p(o){const s=e.ref(),a=e.ref(),f=e.ref(),u=e.ref(),i=e.ref(),l=e.ref(),r=e.computed(()=>e.toValue(o.element)),n=new c.Swipe({...o,element:r.value,onValuesChanged(t){s.value=t.xDiff,a.value=t.yDiff,f.value=t.xStart,u.value=t.xEnd,i.value=t.yStart,l.value=t.yEnd}});return{xDiff:s,yDiff:a,xStart:f,xEnd:u,yStart:i,yEnd:l,start:()=>{r.value&&(n.options.element=r.value),n.start()},stop:n.stop}}exports.useSwipe=p;
|
|
2
2
|
//# sourceMappingURL=useSwipe.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSwipe.cjs","sources":["../../src/composables/useSwipe.ts"],"sourcesContent":["import type { MaybeRef } from 'vue'\nimport {
|
|
1
|
+
{"version":3,"file":"useSwipe.cjs","sources":["../../src/composables/useSwipe.ts"],"sourcesContent":["import type { MaybeRef } from 'vue'\nimport { computed, ref, toValue } from 'vue'\nimport { Swipe, type SwipeOptions } from '../helpers/swipeHandler'\n\nexport function useSwipe(options: Omit<SwipeOptions, 'onValuesChanged' | 'element'> & { element: MaybeRef<HTMLElement> | string | null | undefined }) {\n const xDiff = ref<number>()\n const yDiff = ref<number>()\n const xStart = ref<number>()\n const xEnd = ref<number>()\n const yStart = ref<number>()\n const yEnd = ref<number>()\n\n const element = computed(() => toValue(options.element))\n\n const swiper = new Swipe({\n ...options,\n element: element.value,\n onValuesChanged(values) {\n xDiff.value = values.xDiff\n yDiff.value = values.yDiff\n xStart.value = values.xStart\n xEnd.value = values.xEnd\n yStart.value = values.yStart\n yEnd.value = values.yEnd\n },\n })\n\n return {\n xDiff,\n yDiff,\n xStart,\n xEnd,\n yStart,\n yEnd,\n start: () => {\n if (element.value) {\n swiper.options.element = element.value\n swiper.start()\n }\n else {\n swiper.start()\n }\n },\n stop: swiper.stop,\n }\n}\n"],"names":["useSwipe","options","xDiff","ref","yDiff","xStart","xEnd","yStart","yEnd","element","computed","toValue","swiper","Swipe","values"],"mappings":"gJAIO,SAASA,EAASC,EAA6H,CACpJ,MAAMC,EAAQC,EAAAA,IAAY,EACpBC,EAAQD,EAAAA,IAAY,EACpBE,EAASF,EAAAA,IAAY,EACrBG,EAAOH,EAAAA,IAAY,EACnBI,EAASJ,EAAAA,IAAY,EACrBK,EAAOL,EAAAA,IAAY,EAEnBM,EAAUC,EAAAA,SAAS,IAAMC,EAAQ,QAAAV,EAAQ,OAAO,CAAC,EAEjDW,EAAS,IAAIC,QAAM,CACvB,GAAGZ,EACH,QAASQ,EAAQ,MACjB,gBAAgBK,EAAQ,CACtBZ,EAAM,MAAQY,EAAO,MACrBV,EAAM,MAAQU,EAAO,MACrBT,EAAO,MAAQS,EAAO,OACtBR,EAAK,MAAQQ,EAAO,KACpBP,EAAO,MAAQO,EAAO,OACtBN,EAAK,MAAQM,EAAO,IAAA,CACtB,CACD,EAEM,MAAA,CACL,MAAAZ,EACA,MAAAE,EACA,OAAAC,EACA,KAAAC,EACA,OAAAC,EACA,KAAAC,EACA,MAAO,IAAM,CACPC,EAAQ,QACHG,EAAA,QAAQ,QAAUH,EAAQ,OACjCG,EAAO,MAAM,CAKjB,EACA,KAAMA,EAAO,IACf,CACF"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { ref as e, computed as u, toValue as m } from "vue";
|
|
2
|
+
import { Swipe as p } from "../helpers/swipeHandler.mjs";
|
|
3
3
|
function y(r) {
|
|
4
|
-
const a = e(), f = e(), s = e(), i = e(), l = e(), c = e(), o =
|
|
4
|
+
const a = e(), f = e(), s = e(), i = e(), l = e(), c = e(), o = u(() => m(r.element)), n = new p({
|
|
5
5
|
...r,
|
|
6
6
|
element: o.value,
|
|
7
7
|
onValuesChanged(t) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSwipe.mjs","sources":["../../src/composables/useSwipe.ts"],"sourcesContent":["import type { MaybeRef } from 'vue'\nimport {
|
|
1
|
+
{"version":3,"file":"useSwipe.mjs","sources":["../../src/composables/useSwipe.ts"],"sourcesContent":["import type { MaybeRef } from 'vue'\nimport { computed, ref, toValue } from 'vue'\nimport { Swipe, type SwipeOptions } from '../helpers/swipeHandler'\n\nexport function useSwipe(options: Omit<SwipeOptions, 'onValuesChanged' | 'element'> & { element: MaybeRef<HTMLElement> | string | null | undefined }) {\n const xDiff = ref<number>()\n const yDiff = ref<number>()\n const xStart = ref<number>()\n const xEnd = ref<number>()\n const yStart = ref<number>()\n const yEnd = ref<number>()\n\n const element = computed(() => toValue(options.element))\n\n const swiper = new Swipe({\n ...options,\n element: element.value,\n onValuesChanged(values) {\n xDiff.value = values.xDiff\n yDiff.value = values.yDiff\n xStart.value = values.xStart\n xEnd.value = values.xEnd\n yStart.value = values.yStart\n yEnd.value = values.yEnd\n },\n })\n\n return {\n xDiff,\n yDiff,\n xStart,\n xEnd,\n yStart,\n yEnd,\n start: () => {\n if (element.value) {\n swiper.options.element = element.value\n swiper.start()\n }\n else {\n swiper.start()\n }\n },\n stop: swiper.stop,\n }\n}\n"],"names":["useSwipe","options","xDiff","ref","yDiff","xStart","xEnd","yStart","yEnd","element","computed","toValue","swiper","Swipe","values"],"mappings":";;AAIO,SAASA,EAASC,GAA6H;AACpJ,QAAMC,IAAQC,EAAY,GACpBC,IAAQD,EAAY,GACpBE,IAASF,EAAY,GACrBG,IAAOH,EAAY,GACnBI,IAASJ,EAAY,GACrBK,IAAOL,EAAY,GAEnBM,IAAUC,EAAS,MAAMC,EAAQV,EAAQ,OAAO,CAAC,GAEjDW,IAAS,IAAIC,EAAM;AAAA,IACvB,GAAGZ;AAAA,IACH,SAASQ,EAAQ;AAAA,IACjB,gBAAgBK,GAAQ;AACtB,MAAAZ,EAAM,QAAQY,EAAO,OACrBV,EAAM,QAAQU,EAAO,OACrBT,EAAO,QAAQS,EAAO,QACtBR,EAAK,QAAQQ,EAAO,MACpBP,EAAO,QAAQO,EAAO,QACtBN,EAAK,QAAQM,EAAO;AAAA,IAAA;AAAA,EACtB,CACD;AAEM,SAAA;AAAA,IACL,OAAAZ;AAAA,IACA,OAAAE;AAAA,IACA,QAAAC;AAAA,IACA,MAAAC;AAAA,IACA,QAAAC;AAAA,IACA,MAAAC;AAAA,IACA,OAAO,MAAM;AACX,MAAIC,EAAQ,UACHG,EAAA,QAAQ,UAAUH,EAAQ,QACjCG,EAAO,MAAM;AAAA,IAKjB;AAAA,IACA,MAAMA,EAAO;AAAA,EACf;AACF;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("../helpers/isClient.cjs"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("vue"),c=require("../helpers/isClient.cjs"),S={darkClass:"dark",lightClass:"light",storageThemeKey:"theme",storageThemeValueDark:"dark",storageThemeValueLight:"light",storageThemeValueSystem:"system",watchChanges:!0},m=l.ref("system"),r=l.ref("system");function T(){return window.matchMedia("(prefers-color-scheme: dark)").matches}function u({darkClass:t,lightClass:e,storageThemeKey:s,storageThemeValueDark:a,setLocalStorageValue:o=!0,setSelectedTheme:n=!0}){c.isClient()&&(document.documentElement.classList.remove(e),document.documentElement.classList.add(t),m.value=a,n&&(r.value=a),o&&(localStorage[s]=a))}function h({darkClass:t,lightClass:e,storageThemeKey:s,storageThemeValueLight:a,setLocalStorageValue:o=!0,setSelectedTheme:n=!0}){c.isClient()&&(document.documentElement.classList.remove(t),document.documentElement.classList.add(e),m.value=a,n&&(r.value=a),o&&(localStorage[s]=a))}function i({setLocalStorageValue:t=!0,...e}){if(c.isClient())return document.documentElement.classList.remove(e.darkClass),document.documentElement.classList.remove(e.lightClass),m.value=e.storageThemeValueSystem,r.value=e.storageThemeValueSystem,t&&(localStorage[e.storageThemeKey]=e.storageThemeValueSystem),g(e)}function f(t){if(!t.defaultTheme)return console.error("[maz-ui](useThemeHandler) No default theme set");if(!["light","dark"].includes(t.defaultTheme))return console.error('[maz-ui](useThemeHandler) Default theme must be "light" or "dark"');switch(t.defaultTheme){case"dark":return u({...t,setLocalStorageValue:!1,setSelectedTheme:!0});case"light":return h({...t,setLocalStorageValue:!1,setSelectedTheme:!0})}}function g(t){return c.isClient()?!localStorage[t.storageThemeKey]&&t.defaultTheme?f(t):localStorage[t.storageThemeKey]===t.storageThemeValueDark||!localStorage[t.storageThemeKey]&&T()||localStorage[t.storageThemeKey]===t.storageThemeValueSystem&&T()?u({...t,setLocalStorageValue:!1,setSelectedTheme:!1}):h({...t,setLocalStorageValue:!1,setSelectedTheme:!1}):void 0}function d({theme:t,...e}){return t==="system"?i(e):t==="dark"?u(e):h(e)}function y(t){return m.value===t.storageThemeValueDark?h(t):u(t)}function k(t){const e={...S,...t};function s(){g(e)}return l.onMounted(()=>{localStorage[e.storageThemeKey]&&(r.value=localStorage[e.storageThemeKey]),e.watchChanges&&window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",s)}),l.onBeforeUnmount(()=>{e.watchChanges&&window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",s)}),l.watch(r,a=>{switch(localStorage[e.storageThemeKey]=a,a){case e.storageThemeValueDark:{u(e);break}case e.storageThemeValueLight:{h(e);break}case e.storageThemeValueSystem:{i(e);break}}}),{autoSetTheme:()=>g(e),toggleTheme:()=>y(e),setSystemTheme:()=>d({...e,theme:"system"}),setDarkTheme:()=>d({...e,theme:"dark"}),setLightTheme:()=>d({...e,theme:"light"}),setDefaultTheme:()=>f(e),hasDarkTheme:l.computed(()=>r.value===e.storageThemeValueDark),hasLightTheme:l.computed(()=>r.value===e.storageThemeValueLight),hasSystemTheme:l.computed(()=>r.value===e.storageThemeValueSystem),theme:m,selectedTheme:r}}exports.useThemeHandler=k;
|
|
2
2
|
//# sourceMappingURL=useThemeHandler.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useThemeHandler.cjs","sources":["../../src/composables/useThemeHandler.ts"],"sourcesContent":["import { isClient } from '@helpers/isClient'\nimport { computed, onBeforeUnmount, onMounted, ref, watch } from 'vue'\n\nexport interface StrictThemeHandlerOptions {\n /**\n * Class to be added to the html element when dark theme is set\n * @default 'dark'\n */\n darkClass: string\n /**\n * Class to be added to the html element when light theme is set\n * @default 'light'\n */\n lightClass: string\n /**\n * Key to store the theme in local storage\n * @default 'theme'\n */\n storageThemeKey: string\n /**\n * Value to set the theme to dark\n * @default 'dark'\n */\n storageThemeValueDark: string\n /**\n * Value to set the theme to light\n * @default 'light'\n */\n storageThemeValueLight: string\n /**\n * Value to set the theme to system\n * @default 'system'\n */\n storageThemeValueSystem: string\n /**\n * Watch for changes in the system theme\n * @default true\n */\n watchChanges: boolean\n /**\n * Default theme to set if no theme has been previously set by the user\n * Useful to force a theme on first visit\n * The value will not be stored in local storage\n * @default undefined\n */\n defaultTheme?: 'light' | 'dark'\n}\nexport type ThemeHandlerOptions = Partial<StrictThemeHandlerOptions>\n\nconst DEFAULT_OPTIONS: StrictThemeHandlerOptions = {\n darkClass: 'dark',\n lightClass: 'light',\n storageThemeKey: 'theme',\n storageThemeValueDark: 'dark',\n storageThemeValueLight: 'light',\n storageThemeValueSystem: 'system',\n watchChanges: true,\n}\n\nconst theme = ref<string>('system')\nconst selectedTheme = ref<string>('system')\n\nfunction getPrefDark(): boolean {\n return window.matchMedia('(prefers-color-scheme: dark)').matches\n}\n\nfunction setDarkTheme({\n darkClass,\n lightClass,\n storageThemeKey,\n storageThemeValueDark,\n setLocalStorageValue = true,\n setSelectedTheme = true,\n}: StrictThemeHandlerOptions & {\n setLocalStorageValue?: boolean\n setSelectedTheme?: boolean\n}) {\n if (!isClient()) {\n return\n }\n\n document.documentElement.classList.remove(lightClass)\n document.documentElement.classList.add(darkClass)\n\n theme.value = storageThemeValueDark\n if (setSelectedTheme)\n selectedTheme.value = storageThemeValueDark\n\n if (setLocalStorageValue) {\n localStorage[storageThemeKey] = storageThemeValueDark\n }\n}\n\nfunction setLightTheme({\n darkClass,\n lightClass,\n storageThemeKey,\n storageThemeValueLight,\n setLocalStorageValue = true,\n setSelectedTheme = true,\n}: StrictThemeHandlerOptions & {\n setLocalStorageValue?: boolean\n setSelectedTheme?: boolean\n}) {\n if (!isClient()) {\n return\n }\n\n document.documentElement.classList.remove(darkClass)\n document.documentElement.classList.add(lightClass)\n\n theme.value = storageThemeValueLight\n if (setSelectedTheme)\n selectedTheme.value = storageThemeValueLight\n\n if (setLocalStorageValue) {\n localStorage[storageThemeKey] = storageThemeValueLight\n }\n}\n\nfunction setSytemTheme({\n setLocalStorageValue = true,\n ...options\n}: StrictThemeHandlerOptions & { setLocalStorageValue?: boolean }) {\n if (!isClient()) {\n return\n }\n\n document.documentElement.classList.remove(options.darkClass)\n document.documentElement.classList.remove(options.lightClass)\n\n theme.value = options.storageThemeValueSystem\n selectedTheme.value = options.storageThemeValueSystem\n\n if (setLocalStorageValue) {\n localStorage[options.storageThemeKey] = options.storageThemeValueSystem\n }\n\n return autoSetTheme(options)\n}\n\nfunction setDefaultTheme(options: StrictThemeHandlerOptions) {\n if (!options.defaultTheme) {\n return console.error('[maz-ui](useThemeHandler) No default theme set')\n }\n\n if (!['light', 'dark'].includes(options.defaultTheme)) {\n return console.error('[maz-ui](useThemeHandler) Default theme must be \"light\" or \"dark\"')\n }\n\n switch (options.defaultTheme) {\n case 'dark': {\n return setDarkTheme({\n ...options,\n setLocalStorageValue: false,\n setSelectedTheme: true,\n })\n }\n case 'light': {\n return setLightTheme({\n ...options,\n setLocalStorageValue: false,\n setSelectedTheme: true,\n })\n }\n }\n}\n\nfunction autoSetTheme(options: StrictThemeHandlerOptions) {\n if (!isClient()) {\n return\n }\n\n if (!localStorage[options.storageThemeKey] && options.defaultTheme) {\n return setDefaultTheme(options)\n }\n\n const shouldSetDarkTheme\n = localStorage[options.storageThemeKey] === options.storageThemeValueDark\n || (!localStorage[options.storageThemeKey] && getPrefDark())\n || (localStorage[options.storageThemeKey] === options.storageThemeValueSystem && getPrefDark())\n\n return shouldSetDarkTheme\n ? setDarkTheme({\n ...options,\n setLocalStorageValue: false,\n setSelectedTheme: false,\n })\n : setLightTheme({\n ...options,\n setLocalStorageValue: false,\n setSelectedTheme: false,\n })\n}\n\nfunction setTheme({\n theme,\n ...rest\n}: StrictThemeHandlerOptions & { theme: 'light' | 'dark' | 'system' }) {\n if (theme === 'system') {\n return setSytemTheme(rest)\n }\n\n if (theme === 'dark') {\n return setDarkTheme(rest)\n }\n\n return setLightTheme(rest)\n}\n\nfunction toggleTheme(options: StrictThemeHandlerOptions) {\n return theme.value === options.storageThemeValueDark\n ? setLightTheme(options)\n : setDarkTheme(options)\n}\n\nexport function useThemeHandler(opts?: ThemeHandlerOptions) {\n const globalOptions = {\n ...DEFAULT_OPTIONS,\n ...opts,\n }\n\n function themeWatchHandler() {\n autoSetTheme(globalOptions)\n }\n\n onMounted(() => {\n if (localStorage[globalOptions.storageThemeKey]) {\n selectedTheme.value = localStorage[globalOptions.storageThemeKey]\n }\n\n if (globalOptions.watchChanges) {\n window\n .matchMedia('(prefers-color-scheme: dark)')\n .addEventListener('change', themeWatchHandler)\n }\n })\n\n onBeforeUnmount(() => {\n if (globalOptions.watchChanges) {\n window\n .matchMedia('(prefers-color-scheme: dark)')\n .removeEventListener('change', themeWatchHandler)\n }\n })\n\n watch(selectedTheme, (value) => {\n localStorage[globalOptions.storageThemeKey] = value\n\n switch (value) {\n case globalOptions.storageThemeValueDark: {\n setDarkTheme(globalOptions)\n break\n }\n case globalOptions.storageThemeValueLight: {\n setLightTheme(globalOptions)\n break\n }\n case globalOptions.storageThemeValueSystem: {\n setSytemTheme(globalOptions)\n break\n }\n }\n })\n\n return {\n autoSetTheme: () => autoSetTheme(globalOptions),\n toggleTheme: () => toggleTheme(globalOptions),\n setSystemTheme: () => setTheme({ ...globalOptions, theme: 'system' }),\n setDarkTheme: () => setTheme({ ...globalOptions, theme: 'dark' }),\n setLightTheme: () => setTheme({ ...globalOptions, theme: 'light' }),\n setDefaultTheme: () => setDefaultTheme(globalOptions),\n hasDarkTheme: computed(() => selectedTheme.value === globalOptions.storageThemeValueDark),\n hasLightTheme: computed(() => selectedTheme.value === globalOptions.storageThemeValueLight),\n hasSystemTheme: computed(() => selectedTheme.value === globalOptions.storageThemeValueSystem),\n theme,\n selectedTheme,\n }\n}\n"],"names":["DEFAULT_OPTIONS","theme","ref","selectedTheme","getPrefDark","setDarkTheme","darkClass","lightClass","storageThemeKey","storageThemeValueDark","setLocalStorageValue","setSelectedTheme","isClient","setLightTheme","storageThemeValueLight","setSytemTheme","options","autoSetTheme","setDefaultTheme","setTheme","rest","toggleTheme","useThemeHandler","opts","globalOptions","themeWatchHandler","onMounted","onBeforeUnmount","watch","value","computed"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useThemeHandler.cjs","sources":["../../src/composables/useThemeHandler.ts"],"sourcesContent":["import { computed, onBeforeUnmount, onMounted, ref, watch } from 'vue'\nimport { isClient } from '../helpers/isClient'\n\nexport interface StrictThemeHandlerOptions {\n /**\n * Class to be added to the html element when dark theme is set\n * @default 'dark'\n */\n darkClass: string\n /**\n * Class to be added to the html element when light theme is set\n * @default 'light'\n */\n lightClass: string\n /**\n * Key to store the theme in local storage\n * @default 'theme'\n */\n storageThemeKey: string\n /**\n * Value to set the theme to dark\n * @default 'dark'\n */\n storageThemeValueDark: string\n /**\n * Value to set the theme to light\n * @default 'light'\n */\n storageThemeValueLight: string\n /**\n * Value to set the theme to system\n * @default 'system'\n */\n storageThemeValueSystem: string\n /**\n * Watch for changes in the system theme\n * @default true\n */\n watchChanges: boolean\n /**\n * Default theme to set if no theme has been previously set by the user\n * Useful to force a theme on first visit\n * The value will not be stored in local storage\n * @default undefined\n */\n defaultTheme?: 'light' | 'dark'\n}\nexport type ThemeHandlerOptions = Partial<StrictThemeHandlerOptions>\n\nconst DEFAULT_OPTIONS: StrictThemeHandlerOptions = {\n darkClass: 'dark',\n lightClass: 'light',\n storageThemeKey: 'theme',\n storageThemeValueDark: 'dark',\n storageThemeValueLight: 'light',\n storageThemeValueSystem: 'system',\n watchChanges: true,\n}\n\nconst theme = ref<string>('system')\nconst selectedTheme = ref<string>('system')\n\nfunction getPrefDark(): boolean {\n return window.matchMedia('(prefers-color-scheme: dark)').matches\n}\n\nfunction setDarkTheme({\n darkClass,\n lightClass,\n storageThemeKey,\n storageThemeValueDark,\n setLocalStorageValue = true,\n setSelectedTheme = true,\n}: StrictThemeHandlerOptions & {\n setLocalStorageValue?: boolean\n setSelectedTheme?: boolean\n}) {\n if (!isClient()) {\n return\n }\n\n document.documentElement.classList.remove(lightClass)\n document.documentElement.classList.add(darkClass)\n\n theme.value = storageThemeValueDark\n if (setSelectedTheme)\n selectedTheme.value = storageThemeValueDark\n\n if (setLocalStorageValue) {\n localStorage[storageThemeKey] = storageThemeValueDark\n }\n}\n\nfunction setLightTheme({\n darkClass,\n lightClass,\n storageThemeKey,\n storageThemeValueLight,\n setLocalStorageValue = true,\n setSelectedTheme = true,\n}: StrictThemeHandlerOptions & {\n setLocalStorageValue?: boolean\n setSelectedTheme?: boolean\n}) {\n if (!isClient()) {\n return\n }\n\n document.documentElement.classList.remove(darkClass)\n document.documentElement.classList.add(lightClass)\n\n theme.value = storageThemeValueLight\n if (setSelectedTheme)\n selectedTheme.value = storageThemeValueLight\n\n if (setLocalStorageValue) {\n localStorage[storageThemeKey] = storageThemeValueLight\n }\n}\n\nfunction setSytemTheme({\n setLocalStorageValue = true,\n ...options\n}: StrictThemeHandlerOptions & { setLocalStorageValue?: boolean }) {\n if (!isClient()) {\n return\n }\n\n document.documentElement.classList.remove(options.darkClass)\n document.documentElement.classList.remove(options.lightClass)\n\n theme.value = options.storageThemeValueSystem\n selectedTheme.value = options.storageThemeValueSystem\n\n if (setLocalStorageValue) {\n localStorage[options.storageThemeKey] = options.storageThemeValueSystem\n }\n\n return autoSetTheme(options)\n}\n\nfunction setDefaultTheme(options: StrictThemeHandlerOptions) {\n if (!options.defaultTheme) {\n return console.error('[maz-ui](useThemeHandler) No default theme set')\n }\n\n if (!['light', 'dark'].includes(options.defaultTheme)) {\n return console.error('[maz-ui](useThemeHandler) Default theme must be \"light\" or \"dark\"')\n }\n\n switch (options.defaultTheme) {\n case 'dark': {\n return setDarkTheme({\n ...options,\n setLocalStorageValue: false,\n setSelectedTheme: true,\n })\n }\n case 'light': {\n return setLightTheme({\n ...options,\n setLocalStorageValue: false,\n setSelectedTheme: true,\n })\n }\n }\n}\n\nfunction autoSetTheme(options: StrictThemeHandlerOptions) {\n if (!isClient()) {\n return\n }\n\n if (!localStorage[options.storageThemeKey] && options.defaultTheme) {\n return setDefaultTheme(options)\n }\n\n const shouldSetDarkTheme\n = localStorage[options.storageThemeKey] === options.storageThemeValueDark\n || (!localStorage[options.storageThemeKey] && getPrefDark())\n || (localStorage[options.storageThemeKey] === options.storageThemeValueSystem && getPrefDark())\n\n return shouldSetDarkTheme\n ? setDarkTheme({\n ...options,\n setLocalStorageValue: false,\n setSelectedTheme: false,\n })\n : setLightTheme({\n ...options,\n setLocalStorageValue: false,\n setSelectedTheme: false,\n })\n}\n\nfunction setTheme({\n theme,\n ...rest\n}: StrictThemeHandlerOptions & { theme: 'light' | 'dark' | 'system' }) {\n if (theme === 'system') {\n return setSytemTheme(rest)\n }\n\n if (theme === 'dark') {\n return setDarkTheme(rest)\n }\n\n return setLightTheme(rest)\n}\n\nfunction toggleTheme(options: StrictThemeHandlerOptions) {\n return theme.value === options.storageThemeValueDark\n ? setLightTheme(options)\n : setDarkTheme(options)\n}\n\nexport function useThemeHandler(opts?: ThemeHandlerOptions) {\n const globalOptions = {\n ...DEFAULT_OPTIONS,\n ...opts,\n }\n\n function themeWatchHandler() {\n autoSetTheme(globalOptions)\n }\n\n onMounted(() => {\n if (localStorage[globalOptions.storageThemeKey]) {\n selectedTheme.value = localStorage[globalOptions.storageThemeKey]\n }\n\n if (globalOptions.watchChanges) {\n window\n .matchMedia('(prefers-color-scheme: dark)')\n .addEventListener('change', themeWatchHandler)\n }\n })\n\n onBeforeUnmount(() => {\n if (globalOptions.watchChanges) {\n window\n .matchMedia('(prefers-color-scheme: dark)')\n .removeEventListener('change', themeWatchHandler)\n }\n })\n\n watch(selectedTheme, (value) => {\n localStorage[globalOptions.storageThemeKey] = value\n\n switch (value) {\n case globalOptions.storageThemeValueDark: {\n setDarkTheme(globalOptions)\n break\n }\n case globalOptions.storageThemeValueLight: {\n setLightTheme(globalOptions)\n break\n }\n case globalOptions.storageThemeValueSystem: {\n setSytemTheme(globalOptions)\n break\n }\n }\n })\n\n return {\n autoSetTheme: () => autoSetTheme(globalOptions),\n toggleTheme: () => toggleTheme(globalOptions),\n setSystemTheme: () => setTheme({ ...globalOptions, theme: 'system' }),\n setDarkTheme: () => setTheme({ ...globalOptions, theme: 'dark' }),\n setLightTheme: () => setTheme({ ...globalOptions, theme: 'light' }),\n setDefaultTheme: () => setDefaultTheme(globalOptions),\n hasDarkTheme: computed(() => selectedTheme.value === globalOptions.storageThemeValueDark),\n hasLightTheme: computed(() => selectedTheme.value === globalOptions.storageThemeValueLight),\n hasSystemTheme: computed(() => selectedTheme.value === globalOptions.storageThemeValueSystem),\n theme,\n selectedTheme,\n }\n}\n"],"names":["DEFAULT_OPTIONS","theme","ref","selectedTheme","getPrefDark","setDarkTheme","darkClass","lightClass","storageThemeKey","storageThemeValueDark","setLocalStorageValue","setSelectedTheme","isClient","setLightTheme","storageThemeValueLight","setSytemTheme","options","autoSetTheme","setDefaultTheme","setTheme","rest","toggleTheme","useThemeHandler","opts","globalOptions","themeWatchHandler","onMounted","onBeforeUnmount","watch","value","computed"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { isClient as u } from "../helpers/isClient.mjs";
|
|
2
1
|
import { ref as f, onMounted as k, onBeforeUnmount as y, watch as v, computed as n } from "vue";
|
|
2
|
+
import { isClient as u } from "../helpers/isClient.mjs";
|
|
3
3
|
const L = {
|
|
4
4
|
darkClass: "dark",
|
|
5
5
|
lightClass: "light",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useThemeHandler.mjs","sources":["../../src/composables/useThemeHandler.ts"],"sourcesContent":["import { isClient } from '@helpers/isClient'\nimport { computed, onBeforeUnmount, onMounted, ref, watch } from 'vue'\n\nexport interface StrictThemeHandlerOptions {\n /**\n * Class to be added to the html element when dark theme is set\n * @default 'dark'\n */\n darkClass: string\n /**\n * Class to be added to the html element when light theme is set\n * @default 'light'\n */\n lightClass: string\n /**\n * Key to store the theme in local storage\n * @default 'theme'\n */\n storageThemeKey: string\n /**\n * Value to set the theme to dark\n * @default 'dark'\n */\n storageThemeValueDark: string\n /**\n * Value to set the theme to light\n * @default 'light'\n */\n storageThemeValueLight: string\n /**\n * Value to set the theme to system\n * @default 'system'\n */\n storageThemeValueSystem: string\n /**\n * Watch for changes in the system theme\n * @default true\n */\n watchChanges: boolean\n /**\n * Default theme to set if no theme has been previously set by the user\n * Useful to force a theme on first visit\n * The value will not be stored in local storage\n * @default undefined\n */\n defaultTheme?: 'light' | 'dark'\n}\nexport type ThemeHandlerOptions = Partial<StrictThemeHandlerOptions>\n\nconst DEFAULT_OPTIONS: StrictThemeHandlerOptions = {\n darkClass: 'dark',\n lightClass: 'light',\n storageThemeKey: 'theme',\n storageThemeValueDark: 'dark',\n storageThemeValueLight: 'light',\n storageThemeValueSystem: 'system',\n watchChanges: true,\n}\n\nconst theme = ref<string>('system')\nconst selectedTheme = ref<string>('system')\n\nfunction getPrefDark(): boolean {\n return window.matchMedia('(prefers-color-scheme: dark)').matches\n}\n\nfunction setDarkTheme({\n darkClass,\n lightClass,\n storageThemeKey,\n storageThemeValueDark,\n setLocalStorageValue = true,\n setSelectedTheme = true,\n}: StrictThemeHandlerOptions & {\n setLocalStorageValue?: boolean\n setSelectedTheme?: boolean\n}) {\n if (!isClient()) {\n return\n }\n\n document.documentElement.classList.remove(lightClass)\n document.documentElement.classList.add(darkClass)\n\n theme.value = storageThemeValueDark\n if (setSelectedTheme)\n selectedTheme.value = storageThemeValueDark\n\n if (setLocalStorageValue) {\n localStorage[storageThemeKey] = storageThemeValueDark\n }\n}\n\nfunction setLightTheme({\n darkClass,\n lightClass,\n storageThemeKey,\n storageThemeValueLight,\n setLocalStorageValue = true,\n setSelectedTheme = true,\n}: StrictThemeHandlerOptions & {\n setLocalStorageValue?: boolean\n setSelectedTheme?: boolean\n}) {\n if (!isClient()) {\n return\n }\n\n document.documentElement.classList.remove(darkClass)\n document.documentElement.classList.add(lightClass)\n\n theme.value = storageThemeValueLight\n if (setSelectedTheme)\n selectedTheme.value = storageThemeValueLight\n\n if (setLocalStorageValue) {\n localStorage[storageThemeKey] = storageThemeValueLight\n }\n}\n\nfunction setSytemTheme({\n setLocalStorageValue = true,\n ...options\n}: StrictThemeHandlerOptions & { setLocalStorageValue?: boolean }) {\n if (!isClient()) {\n return\n }\n\n document.documentElement.classList.remove(options.darkClass)\n document.documentElement.classList.remove(options.lightClass)\n\n theme.value = options.storageThemeValueSystem\n selectedTheme.value = options.storageThemeValueSystem\n\n if (setLocalStorageValue) {\n localStorage[options.storageThemeKey] = options.storageThemeValueSystem\n }\n\n return autoSetTheme(options)\n}\n\nfunction setDefaultTheme(options: StrictThemeHandlerOptions) {\n if (!options.defaultTheme) {\n return console.error('[maz-ui](useThemeHandler) No default theme set')\n }\n\n if (!['light', 'dark'].includes(options.defaultTheme)) {\n return console.error('[maz-ui](useThemeHandler) Default theme must be \"light\" or \"dark\"')\n }\n\n switch (options.defaultTheme) {\n case 'dark': {\n return setDarkTheme({\n ...options,\n setLocalStorageValue: false,\n setSelectedTheme: true,\n })\n }\n case 'light': {\n return setLightTheme({\n ...options,\n setLocalStorageValue: false,\n setSelectedTheme: true,\n })\n }\n }\n}\n\nfunction autoSetTheme(options: StrictThemeHandlerOptions) {\n if (!isClient()) {\n return\n }\n\n if (!localStorage[options.storageThemeKey] && options.defaultTheme) {\n return setDefaultTheme(options)\n }\n\n const shouldSetDarkTheme\n = localStorage[options.storageThemeKey] === options.storageThemeValueDark\n || (!localStorage[options.storageThemeKey] && getPrefDark())\n || (localStorage[options.storageThemeKey] === options.storageThemeValueSystem && getPrefDark())\n\n return shouldSetDarkTheme\n ? setDarkTheme({\n ...options,\n setLocalStorageValue: false,\n setSelectedTheme: false,\n })\n : setLightTheme({\n ...options,\n setLocalStorageValue: false,\n setSelectedTheme: false,\n })\n}\n\nfunction setTheme({\n theme,\n ...rest\n}: StrictThemeHandlerOptions & { theme: 'light' | 'dark' | 'system' }) {\n if (theme === 'system') {\n return setSytemTheme(rest)\n }\n\n if (theme === 'dark') {\n return setDarkTheme(rest)\n }\n\n return setLightTheme(rest)\n}\n\nfunction toggleTheme(options: StrictThemeHandlerOptions) {\n return theme.value === options.storageThemeValueDark\n ? setLightTheme(options)\n : setDarkTheme(options)\n}\n\nexport function useThemeHandler(opts?: ThemeHandlerOptions) {\n const globalOptions = {\n ...DEFAULT_OPTIONS,\n ...opts,\n }\n\n function themeWatchHandler() {\n autoSetTheme(globalOptions)\n }\n\n onMounted(() => {\n if (localStorage[globalOptions.storageThemeKey]) {\n selectedTheme.value = localStorage[globalOptions.storageThemeKey]\n }\n\n if (globalOptions.watchChanges) {\n window\n .matchMedia('(prefers-color-scheme: dark)')\n .addEventListener('change', themeWatchHandler)\n }\n })\n\n onBeforeUnmount(() => {\n if (globalOptions.watchChanges) {\n window\n .matchMedia('(prefers-color-scheme: dark)')\n .removeEventListener('change', themeWatchHandler)\n }\n })\n\n watch(selectedTheme, (value) => {\n localStorage[globalOptions.storageThemeKey] = value\n\n switch (value) {\n case globalOptions.storageThemeValueDark: {\n setDarkTheme(globalOptions)\n break\n }\n case globalOptions.storageThemeValueLight: {\n setLightTheme(globalOptions)\n break\n }\n case globalOptions.storageThemeValueSystem: {\n setSytemTheme(globalOptions)\n break\n }\n }\n })\n\n return {\n autoSetTheme: () => autoSetTheme(globalOptions),\n toggleTheme: () => toggleTheme(globalOptions),\n setSystemTheme: () => setTheme({ ...globalOptions, theme: 'system' }),\n setDarkTheme: () => setTheme({ ...globalOptions, theme: 'dark' }),\n setLightTheme: () => setTheme({ ...globalOptions, theme: 'light' }),\n setDefaultTheme: () => setDefaultTheme(globalOptions),\n hasDarkTheme: computed(() => selectedTheme.value === globalOptions.storageThemeValueDark),\n hasLightTheme: computed(() => selectedTheme.value === globalOptions.storageThemeValueLight),\n hasSystemTheme: computed(() => selectedTheme.value === globalOptions.storageThemeValueSystem),\n theme,\n selectedTheme,\n }\n}\n"],"names":["DEFAULT_OPTIONS","theme","ref","selectedTheme","getPrefDark","setDarkTheme","darkClass","lightClass","storageThemeKey","storageThemeValueDark","setLocalStorageValue","setSelectedTheme","isClient","setLightTheme","storageThemeValueLight","setSytemTheme","options","autoSetTheme","setDefaultTheme","setTheme","rest","toggleTheme","useThemeHandler","opts","globalOptions","themeWatchHandler","onMounted","onBeforeUnmount","watch","value","computed"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useThemeHandler.mjs","sources":["../../src/composables/useThemeHandler.ts"],"sourcesContent":["import { computed, onBeforeUnmount, onMounted, ref, watch } from 'vue'\nimport { isClient } from '../helpers/isClient'\n\nexport interface StrictThemeHandlerOptions {\n /**\n * Class to be added to the html element when dark theme is set\n * @default 'dark'\n */\n darkClass: string\n /**\n * Class to be added to the html element when light theme is set\n * @default 'light'\n */\n lightClass: string\n /**\n * Key to store the theme in local storage\n * @default 'theme'\n */\n storageThemeKey: string\n /**\n * Value to set the theme to dark\n * @default 'dark'\n */\n storageThemeValueDark: string\n /**\n * Value to set the theme to light\n * @default 'light'\n */\n storageThemeValueLight: string\n /**\n * Value to set the theme to system\n * @default 'system'\n */\n storageThemeValueSystem: string\n /**\n * Watch for changes in the system theme\n * @default true\n */\n watchChanges: boolean\n /**\n * Default theme to set if no theme has been previously set by the user\n * Useful to force a theme on first visit\n * The value will not be stored in local storage\n * @default undefined\n */\n defaultTheme?: 'light' | 'dark'\n}\nexport type ThemeHandlerOptions = Partial<StrictThemeHandlerOptions>\n\nconst DEFAULT_OPTIONS: StrictThemeHandlerOptions = {\n darkClass: 'dark',\n lightClass: 'light',\n storageThemeKey: 'theme',\n storageThemeValueDark: 'dark',\n storageThemeValueLight: 'light',\n storageThemeValueSystem: 'system',\n watchChanges: true,\n}\n\nconst theme = ref<string>('system')\nconst selectedTheme = ref<string>('system')\n\nfunction getPrefDark(): boolean {\n return window.matchMedia('(prefers-color-scheme: dark)').matches\n}\n\nfunction setDarkTheme({\n darkClass,\n lightClass,\n storageThemeKey,\n storageThemeValueDark,\n setLocalStorageValue = true,\n setSelectedTheme = true,\n}: StrictThemeHandlerOptions & {\n setLocalStorageValue?: boolean\n setSelectedTheme?: boolean\n}) {\n if (!isClient()) {\n return\n }\n\n document.documentElement.classList.remove(lightClass)\n document.documentElement.classList.add(darkClass)\n\n theme.value = storageThemeValueDark\n if (setSelectedTheme)\n selectedTheme.value = storageThemeValueDark\n\n if (setLocalStorageValue) {\n localStorage[storageThemeKey] = storageThemeValueDark\n }\n}\n\nfunction setLightTheme({\n darkClass,\n lightClass,\n storageThemeKey,\n storageThemeValueLight,\n setLocalStorageValue = true,\n setSelectedTheme = true,\n}: StrictThemeHandlerOptions & {\n setLocalStorageValue?: boolean\n setSelectedTheme?: boolean\n}) {\n if (!isClient()) {\n return\n }\n\n document.documentElement.classList.remove(darkClass)\n document.documentElement.classList.add(lightClass)\n\n theme.value = storageThemeValueLight\n if (setSelectedTheme)\n selectedTheme.value = storageThemeValueLight\n\n if (setLocalStorageValue) {\n localStorage[storageThemeKey] = storageThemeValueLight\n }\n}\n\nfunction setSytemTheme({\n setLocalStorageValue = true,\n ...options\n}: StrictThemeHandlerOptions & { setLocalStorageValue?: boolean }) {\n if (!isClient()) {\n return\n }\n\n document.documentElement.classList.remove(options.darkClass)\n document.documentElement.classList.remove(options.lightClass)\n\n theme.value = options.storageThemeValueSystem\n selectedTheme.value = options.storageThemeValueSystem\n\n if (setLocalStorageValue) {\n localStorage[options.storageThemeKey] = options.storageThemeValueSystem\n }\n\n return autoSetTheme(options)\n}\n\nfunction setDefaultTheme(options: StrictThemeHandlerOptions) {\n if (!options.defaultTheme) {\n return console.error('[maz-ui](useThemeHandler) No default theme set')\n }\n\n if (!['light', 'dark'].includes(options.defaultTheme)) {\n return console.error('[maz-ui](useThemeHandler) Default theme must be \"light\" or \"dark\"')\n }\n\n switch (options.defaultTheme) {\n case 'dark': {\n return setDarkTheme({\n ...options,\n setLocalStorageValue: false,\n setSelectedTheme: true,\n })\n }\n case 'light': {\n return setLightTheme({\n ...options,\n setLocalStorageValue: false,\n setSelectedTheme: true,\n })\n }\n }\n}\n\nfunction autoSetTheme(options: StrictThemeHandlerOptions) {\n if (!isClient()) {\n return\n }\n\n if (!localStorage[options.storageThemeKey] && options.defaultTheme) {\n return setDefaultTheme(options)\n }\n\n const shouldSetDarkTheme\n = localStorage[options.storageThemeKey] === options.storageThemeValueDark\n || (!localStorage[options.storageThemeKey] && getPrefDark())\n || (localStorage[options.storageThemeKey] === options.storageThemeValueSystem && getPrefDark())\n\n return shouldSetDarkTheme\n ? setDarkTheme({\n ...options,\n setLocalStorageValue: false,\n setSelectedTheme: false,\n })\n : setLightTheme({\n ...options,\n setLocalStorageValue: false,\n setSelectedTheme: false,\n })\n}\n\nfunction setTheme({\n theme,\n ...rest\n}: StrictThemeHandlerOptions & { theme: 'light' | 'dark' | 'system' }) {\n if (theme === 'system') {\n return setSytemTheme(rest)\n }\n\n if (theme === 'dark') {\n return setDarkTheme(rest)\n }\n\n return setLightTheme(rest)\n}\n\nfunction toggleTheme(options: StrictThemeHandlerOptions) {\n return theme.value === options.storageThemeValueDark\n ? setLightTheme(options)\n : setDarkTheme(options)\n}\n\nexport function useThemeHandler(opts?: ThemeHandlerOptions) {\n const globalOptions = {\n ...DEFAULT_OPTIONS,\n ...opts,\n }\n\n function themeWatchHandler() {\n autoSetTheme(globalOptions)\n }\n\n onMounted(() => {\n if (localStorage[globalOptions.storageThemeKey]) {\n selectedTheme.value = localStorage[globalOptions.storageThemeKey]\n }\n\n if (globalOptions.watchChanges) {\n window\n .matchMedia('(prefers-color-scheme: dark)')\n .addEventListener('change', themeWatchHandler)\n }\n })\n\n onBeforeUnmount(() => {\n if (globalOptions.watchChanges) {\n window\n .matchMedia('(prefers-color-scheme: dark)')\n .removeEventListener('change', themeWatchHandler)\n }\n })\n\n watch(selectedTheme, (value) => {\n localStorage[globalOptions.storageThemeKey] = value\n\n switch (value) {\n case globalOptions.storageThemeValueDark: {\n setDarkTheme(globalOptions)\n break\n }\n case globalOptions.storageThemeValueLight: {\n setLightTheme(globalOptions)\n break\n }\n case globalOptions.storageThemeValueSystem: {\n setSytemTheme(globalOptions)\n break\n }\n }\n })\n\n return {\n autoSetTheme: () => autoSetTheme(globalOptions),\n toggleTheme: () => toggleTheme(globalOptions),\n setSystemTheme: () => setTheme({ ...globalOptions, theme: 'system' }),\n setDarkTheme: () => setTheme({ ...globalOptions, theme: 'dark' }),\n setLightTheme: () => setTheme({ ...globalOptions, theme: 'light' }),\n setDefaultTheme: () => setDefaultTheme(globalOptions),\n hasDarkTheme: computed(() => selectedTheme.value === globalOptions.storageThemeValueDark),\n hasLightTheme: computed(() => selectedTheme.value === globalOptions.storageThemeValueLight),\n hasSystemTheme: computed(() => selectedTheme.value === globalOptions.storageThemeValueSystem),\n theme,\n selectedTheme,\n }\n}\n"],"names":["DEFAULT_OPTIONS","theme","ref","selectedTheme","getPrefDark","setDarkTheme","darkClass","lightClass","storageThemeKey","storageThemeValueDark","setLocalStorageValue","setSelectedTheme","isClient","setLightTheme","storageThemeValueLight","setSytemTheme","options","autoSetTheme","setDefaultTheme","setTheme","rest","toggleTheme","useThemeHandler","opts","globalOptions","themeWatchHandler","onMounted","onBeforeUnmount","watch","value","computed"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useToast.cjs","sources":["../../src/composables/useToast.ts"],"sourcesContent":["import type { ToasterHandler } from '
|
|
1
|
+
{"version":3,"file":"useToast.cjs","sources":["../../src/composables/useToast.ts"],"sourcesContent":["import type { ToasterHandler } from '../plugins/toaster/ToasterHandler'\nimport { injectStrict } from '../helpers/injectStrict'\n\nexport function useToast() {\n return injectStrict<ToasterHandler>('toast')\n}\n"],"names":["useToast","injectStrict"],"mappings":"+HAGO,SAASA,GAAW,CACzB,OAAOC,EAAAA,aAA6B,OAAO,CAC7C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useToast.mjs","sources":["../../src/composables/useToast.ts"],"sourcesContent":["import type { ToasterHandler } from '
|
|
1
|
+
{"version":3,"file":"useToast.mjs","sources":["../../src/composables/useToast.ts"],"sourcesContent":["import type { ToasterHandler } from '../plugins/toaster/ToasterHandler'\nimport { injectStrict } from '../helpers/injectStrict'\n\nexport function useToast() {\n return injectStrict<ToasterHandler>('toast')\n}\n"],"names":["useToast","injectStrict"],"mappings":";AAGO,SAASA,IAAW;AACzB,SAAOC,EAA6B,OAAO;AAC7C;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useUserVisibilty.cjs","sources":["../../src/composables/useUserVisibilty.ts"],"sourcesContent":["import {\n UserVisibility,\n type UserVisibilyCallback,\n type UserVisibilyOptions,\n} from '
|
|
1
|
+
{"version":3,"file":"useUserVisibilty.cjs","sources":["../../src/composables/useUserVisibilty.ts"],"sourcesContent":["import {\n UserVisibility,\n type UserVisibilyCallback,\n type UserVisibilyOptions,\n} from '../helpers/userVisibility'\n\nexport function useUserVisibility({\n callback,\n options,\n}: {\n callback: UserVisibilyCallback\n options?: UserVisibilyOptions\n}) {\n return new UserVisibility(callback, options)\n}\n"],"names":["useUserVisibility","callback","options","UserVisibility"],"mappings":"iIAMO,SAASA,EAAkB,CAChC,SAAAC,EACA,QAAAC,CACF,EAGG,CACM,OAAA,IAAIC,EAAAA,eAAeF,EAAUC,CAAO,CAC7C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useUserVisibilty.mjs","sources":["../../src/composables/useUserVisibilty.ts"],"sourcesContent":["import {\n UserVisibility,\n type UserVisibilyCallback,\n type UserVisibilyOptions,\n} from '
|
|
1
|
+
{"version":3,"file":"useUserVisibilty.mjs","sources":["../../src/composables/useUserVisibilty.ts"],"sourcesContent":["import {\n UserVisibility,\n type UserVisibilyCallback,\n type UserVisibilyOptions,\n} from '../helpers/userVisibility'\n\nexport function useUserVisibility({\n callback,\n options,\n}: {\n callback: UserVisibilyCallback\n options?: UserVisibilyOptions\n}) {\n return new UserVisibility(callback, options)\n}\n"],"names":["useUserVisibility","callback","options","UserVisibility"],"mappings":";AAMO,SAASA,EAAkB;AAAA,EAChC,UAAAC;AAAA,EACA,SAAAC;AACF,GAGG;AACM,SAAA,IAAIC,EAAeF,GAAUC,CAAO;AAC7C;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useWait.cjs","sources":["../../src/composables/useWait.ts"],"sourcesContent":["import type { WaitHandler } from '
|
|
1
|
+
{"version":3,"file":"useWait.cjs","sources":["../../src/composables/useWait.ts"],"sourcesContent":["import type { WaitHandler } from '../plugins/wait'\nimport { injectStrict } from '../helpers/injectStrict'\n\nexport function useWait() {\n return injectStrict<WaitHandler>('wait')\n}\n"],"names":["useWait","injectStrict"],"mappings":"+HAGO,SAASA,GAAU,CACxB,OAAOC,EAAAA,aAA0B,MAAM,CACzC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useWait.mjs","sources":["../../src/composables/useWait.ts"],"sourcesContent":["import type { WaitHandler } from '
|
|
1
|
+
{"version":3,"file":"useWait.mjs","sources":["../../src/composables/useWait.ts"],"sourcesContent":["import type { WaitHandler } from '../plugins/wait'\nimport { injectStrict } from '../helpers/injectStrict'\n\nexport function useWait() {\n return injectStrict<WaitHandler>('wait')\n}\n"],"names":["useWait","injectStrict"],"mappings":";AAGO,SAASA,IAAU;AACxB,SAAOC,EAA0B,MAAM;AACzC;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("../helpers/isClient.cjs")
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("vue"),s=require("../helpers/isClient.cjs");function c(r={}){const{internalWindow:e=s.isClient()?window:void 0,initialWidth:u=Number.POSITIVE_INFINITY,initialHeight:d=Number.POSITIVE_INFINITY,includeScrollbar:l=!0}=r,n=i.ref(u),t=i.ref(d);function o(){e&&(l?(n.value=e.innerWidth,t.value=e.innerHeight):(n.value=e.document.documentElement.clientWidth,t.value=e.document.documentElement.clientHeight))}return o(),i.onMounted(()=>{e&&window.addEventListener("resize",o,{passive:!0})}),i.onUnmounted(()=>{e&&window.removeEventListener("resize",o)}),{width:n,height:t}}exports.useWindowSize=c;
|
|
2
2
|
//# sourceMappingURL=useWindowSize.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useWindowSize.cjs","sources":["../../src/composables/useWindowSize.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"useWindowSize.cjs","sources":["../../src/composables/useWindowSize.ts"],"sourcesContent":["import { onMounted, onUnmounted, ref } from 'vue'\nimport { isClient } from '../helpers/isClient'\n\nexport interface UseWindowSizeOptions {\n /**\n * The window object to use\n * @default window - in browser, undefined in SSR\n */\n internalWindow?: Window | undefined\n /**\n * Initial width of the window (useful in SSR)\n * @default Number.POSITIVE_INFINITY\n */\n initialWidth?: number\n /**\n * Initial height of the window (useful in SSR)\n * @default Number.POSITIVE_INFINITY\n */\n initialHeight?: number\n /**\n * Listen to window `orientationchange` event\n *\n * @default true\n */\n listenOrientation?: boolean\n\n /**\n * Whether the scrollbar should be included in the width and height\n * @default true\n */\n includeScrollbar?: boolean\n}\n\nexport function useWindowSize(options: UseWindowSizeOptions = {}) {\n const {\n internalWindow = isClient() ? window : undefined,\n initialWidth = Number.POSITIVE_INFINITY,\n initialHeight = Number.POSITIVE_INFINITY,\n includeScrollbar = true,\n } = options\n\n const width = ref(initialWidth)\n const height = ref(initialHeight)\n\n function update() {\n if (internalWindow) {\n if (includeScrollbar) {\n width.value = internalWindow.innerWidth\n height.value = internalWindow.innerHeight\n }\n else {\n width.value = internalWindow.document.documentElement.clientWidth\n height.value = internalWindow.document.documentElement.clientHeight\n }\n }\n }\n\n update()\n\n onMounted(() => {\n if (internalWindow) {\n window.addEventListener('resize', update, { passive: true })\n }\n })\n\n onUnmounted(() => {\n if (internalWindow) {\n window.removeEventListener('resize', update)\n }\n })\n\n return { width, height }\n}\n"],"names":["useWindowSize","options","internalWindow","isClient","initialWidth","initialHeight","includeScrollbar","width","ref","height","update","onMounted","onUnmounted"],"mappings":"4IAiCgB,SAAAA,EAAcC,EAAgC,GAAI,CAC1D,KAAA,CACJ,eAAAC,EAAiBC,EAAS,SAAA,EAAI,OAAS,OACvC,aAAAC,EAAe,OAAO,kBACtB,cAAAC,EAAgB,OAAO,kBACvB,iBAAAC,EAAmB,EAAA,EACjBL,EAEEM,EAAQC,MAAIJ,CAAY,EACxBK,EAASD,MAAIH,CAAa,EAEhC,SAASK,GAAS,CACZR,IACEI,GACFC,EAAM,MAAQL,EAAe,WAC7BO,EAAO,MAAQP,EAAe,cAGxBK,EAAA,MAAQL,EAAe,SAAS,gBAAgB,YAC/CO,EAAA,MAAQP,EAAe,SAAS,gBAAgB,cAE3D,CAGK,OAAAQ,EAAA,EAEPC,EAAAA,UAAU,IAAM,CACVT,GACF,OAAO,iBAAiB,SAAUQ,EAAQ,CAAE,QAAS,GAAM,CAC7D,CACD,EAEDE,EAAAA,YAAY,IAAM,CACZV,GACK,OAAA,oBAAoB,SAAUQ,CAAM,CAC7C,CACD,EAEM,CAAE,MAAAH,EAAO,OAAAE,CAAO,CACzB"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { ref as o, onMounted as m, onUnmounted as c } from "vue";
|
|
2
|
+
import { isClient as s } from "../helpers/isClient.mjs";
|
|
3
3
|
function f(r = {}) {
|
|
4
4
|
const {
|
|
5
|
-
internalWindow: e =
|
|
5
|
+
internalWindow: e = s() ? window : void 0,
|
|
6
6
|
initialWidth: d = Number.POSITIVE_INFINITY,
|
|
7
7
|
initialHeight: u = Number.POSITIVE_INFINITY,
|
|
8
8
|
includeScrollbar: l = !0
|
|
@@ -10,9 +10,9 @@ function f(r = {}) {
|
|
|
10
10
|
function t() {
|
|
11
11
|
e && (l ? (i.value = e.innerWidth, n.value = e.innerHeight) : (i.value = e.document.documentElement.clientWidth, n.value = e.document.documentElement.clientHeight));
|
|
12
12
|
}
|
|
13
|
-
return t(),
|
|
13
|
+
return t(), m(() => {
|
|
14
14
|
e && window.addEventListener("resize", t, { passive: !0 });
|
|
15
|
-
}),
|
|
15
|
+
}), c(() => {
|
|
16
16
|
e && window.removeEventListener("resize", t);
|
|
17
17
|
}), { width: i, height: n };
|
|
18
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useWindowSize.mjs","sources":["../../src/composables/useWindowSize.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"useWindowSize.mjs","sources":["../../src/composables/useWindowSize.ts"],"sourcesContent":["import { onMounted, onUnmounted, ref } from 'vue'\nimport { isClient } from '../helpers/isClient'\n\nexport interface UseWindowSizeOptions {\n /**\n * The window object to use\n * @default window - in browser, undefined in SSR\n */\n internalWindow?: Window | undefined\n /**\n * Initial width of the window (useful in SSR)\n * @default Number.POSITIVE_INFINITY\n */\n initialWidth?: number\n /**\n * Initial height of the window (useful in SSR)\n * @default Number.POSITIVE_INFINITY\n */\n initialHeight?: number\n /**\n * Listen to window `orientationchange` event\n *\n * @default true\n */\n listenOrientation?: boolean\n\n /**\n * Whether the scrollbar should be included in the width and height\n * @default true\n */\n includeScrollbar?: boolean\n}\n\nexport function useWindowSize(options: UseWindowSizeOptions = {}) {\n const {\n internalWindow = isClient() ? window : undefined,\n initialWidth = Number.POSITIVE_INFINITY,\n initialHeight = Number.POSITIVE_INFINITY,\n includeScrollbar = true,\n } = options\n\n const width = ref(initialWidth)\n const height = ref(initialHeight)\n\n function update() {\n if (internalWindow) {\n if (includeScrollbar) {\n width.value = internalWindow.innerWidth\n height.value = internalWindow.innerHeight\n }\n else {\n width.value = internalWindow.document.documentElement.clientWidth\n height.value = internalWindow.document.documentElement.clientHeight\n }\n }\n }\n\n update()\n\n onMounted(() => {\n if (internalWindow) {\n window.addEventListener('resize', update, { passive: true })\n }\n })\n\n onUnmounted(() => {\n if (internalWindow) {\n window.removeEventListener('resize', update)\n }\n })\n\n return { width, height }\n}\n"],"names":["useWindowSize","options","internalWindow","isClient","initialWidth","initialHeight","includeScrollbar","width","ref","height","update","onMounted","onUnmounted"],"mappings":";;AAiCgB,SAAAA,EAAcC,IAAgC,IAAI;AAC1D,QAAA;AAAA,IACJ,gBAAAC,IAAiBC,EAAS,IAAI,SAAS;AAAA,IACvC,cAAAC,IAAe,OAAO;AAAA,IACtB,eAAAC,IAAgB,OAAO;AAAA,IACvB,kBAAAC,IAAmB;AAAA,EAAA,IACjBL,GAEEM,IAAQC,EAAIJ,CAAY,GACxBK,IAASD,EAAIH,CAAa;AAEhC,WAASK,IAAS;AAChB,IAAIR,MACEI,KACFC,EAAM,QAAQL,EAAe,YAC7BO,EAAO,QAAQP,EAAe,gBAGxBK,EAAA,QAAQL,EAAe,SAAS,gBAAgB,aAC/CO,EAAA,QAAQP,EAAe,SAAS,gBAAgB;AAAA,EAE3D;AAGK,SAAAQ,EAAA,GAEPC,EAAU,MAAM;AACd,IAAIT,KACF,OAAO,iBAAiB,UAAUQ,GAAQ,EAAE,SAAS,IAAM;AAAA,EAC7D,CACD,GAEDE,EAAY,MAAM;AAChB,IAAIV,KACK,OAAA,oBAAoB,UAAUQ,CAAM;AAAA,EAC7C,CACD,GAEM,EAAE,OAAAH,GAAO,QAAAE,EAAO;AACzB;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vClickOutside.cjs","sources":["../../src/directives/vClickOutside.ts"],"sourcesContent":["import { type DirectiveBinding, nextTick, type ObjectDirective, type Plugin } from 'vue'\n\nconst UNIQUE_ID = '__maz-click-outside__'\n\nfunction getEventType() {\n return document.ontouchstart === null ? 'touchstart' : 'click'\n}\n\ntype vClickOutsideBindingValue = (...args: any[]) => any\n\ntype vClickOutsideDirectiveBinding = DirectiveBinding<vClickOutsideBindingValue>\n\nasync function onMounted(el: HTMLElement, binding: vClickOutsideDirectiveBinding) {\n try {\n onUnmounted(el)\n\n const vm = binding.instance\n const callback = binding.value\n\n const isCallbackFunction = typeof callback === 'function'\n\n if (!isCallbackFunction) {\n throw new Error('[maz-ui](vClickOutside) the callback should be a function')\n }\n\n await nextTick()\n\n el[UNIQUE_ID] = (event: Event) => {\n if (\n (!el || (event.target && !el.contains(event.target as Node)))\n && callback\n && isCallbackFunction\n ) {\n return callback.call(vm, event)\n }\n }\n\n const eventType = getEventType()\n\n document.addEventListener(eventType, el[UNIQUE_ID], { passive: true })\n }\n catch (error) {\n console.error('[maz-ui](vClickOutside)', error)\n }\n}\n\nfunction onUnmounted(el: HTMLElement) {\n try {\n const eventType = getEventType()\n document.removeEventListener(eventType, el[UNIQUE_ID], false)\n delete el[UNIQUE_ID]\n }\n catch (error) {\n console.error('[maz-ui](vClickOutside)', error)\n }\n}\n\nfunction onUpdated(el: HTMLElement, binding: vClickOutsideDirectiveBinding) {\n try {\n if (binding.value === binding.oldValue) {\n return\n }\n onMounted(el, binding)\n }\n catch (error) {\n console.error('[maz-ui](vClickOutside)', error)\n }\n}\n\nconst directive = {\n mounted: onMounted,\n updated: onUpdated,\n unmounted: onUnmounted,\n} satisfies ObjectDirective<HTMLElement, vClickOutsideBindingValue>\n\nconst plugin = {\n install: (app) => {\n app.directive('click-outside', directive)\n },\n} satisfies Plugin\n\nexport { directive as vClickOutside, vClickOutsideBindingValue, plugin as vClickOutsideInstall }\n"],"names":["UNIQUE_ID","getEventType","onMounted","el","binding","onUnmounted","vm","callback","isCallbackFunction","nextTick","event","eventType","error","onUpdated","directive","plugin","app"],"mappings":"uGAEMA,EAAY,wBAElB,SAASC,GAAe,CACf,OAAA,SAAS,eAAiB,KAAO,aAAe,OACzD,CAMA,eAAeC,EAAUC,EAAiBC,EAAwC,CAC5E,GAAA,CACFC,EAAYF,CAAE,EAEd,MAAMG,EAAKF,EAAQ,SACbG,EAAWH,EAAQ,MAEnBI,EAAqB,OAAOD,GAAa,WAE/C,GAAI,CAACC,EACG,MAAA,IAAI,MAAM,2DAA2D,EAG7E,MAAMC,WAAS,EAEZN,EAAAH,CAAS,EAAKU,GAAiB,CAE7B,IAAA,CAACP,GAAOO,EAAM,QAAU,CAACP,EAAG,SAASO,EAAM,MAAc,IACvDH,GACAC,EAEI,OAAAD,EAAS,KAAKD,EAAII,CAAK,CAElC,EAEA,MAAMC,EAAYV,EAAa,EAEtB,SAAA,iBAAiBU,EAAWR,EAAGH,CAAS,EAAG,CAAE,QAAS,GAAM,QAEhEY,EAAO,CACJ,QAAA,MAAM,0BAA2BA,CAAK,CAAA,CAElD,CAEA,SAASP,EAAYF,EAAiB,CAChC,GAAA,CACF,MAAMQ,EAAYV,EAAa,EAC/B,SAAS,oBAAoBU,EAAWR,EAAGH,CAAS,EAAG,EAAK,EAC5D,OAAOG,EAAGH,CAAS,QAEdY,EAAO,CACJ,QAAA,MAAM,0BAA2BA,CAAK,CAAA,CAElD,CAEA,SAASC,EAAUV,EAAiBC,EAAwC,CACtE,GAAA,CACE,GAAAA,EAAQ,QAAUA,EAAQ,SAC5B,OAEFF,EAAUC,EAAIC,CAAO,QAEhBQ,EAAO,CACJ,QAAA,MAAM,0BAA2BA,CAAK,CAAA,CAElD,CAEA,MAAME,EAAY,CAChB,QAASZ,EACT,QAASW,EACT,UAAWR,CACb,EAEMU,EAAS,CACb,QAAUC,GAAQ,CACZA,EAAA,UAAU,gBAAiBF,CAAS,CAAA,CAE5C"}
|
|
1
|
+
{"version":3,"file":"vClickOutside.cjs","sources":["../../src/directives/vClickOutside.ts"],"sourcesContent":["import { type DirectiveBinding, nextTick, type ObjectDirective, type Plugin } from 'vue'\n\nconst UNIQUE_ID = '__maz-click-outside__'\n\nfunction getEventType() {\n return document.ontouchstart === null ? 'touchstart' : 'click'\n}\n\ntype vClickOutsideBindingValue = (...args: any[]) => any\n\ntype vClickOutsideDirectiveBinding = DirectiveBinding<vClickOutsideBindingValue>\n\nasync function onMounted(el: HTMLElement, binding: vClickOutsideDirectiveBinding) {\n try {\n onUnmounted(el)\n\n const vm = binding.instance\n const callback = binding.value\n\n const isCallbackFunction = typeof callback === 'function'\n\n if (!isCallbackFunction) {\n throw new Error('[maz-ui](vClickOutside) the callback should be a function')\n }\n\n await nextTick()\n\n el[UNIQUE_ID] = (event: Event) => {\n if (\n (!el || (event.target && !el.contains(event.target as Node)))\n && callback\n && isCallbackFunction\n ) {\n return callback.call(vm, event)\n }\n }\n\n const eventType = getEventType()\n\n document.addEventListener(eventType, el[UNIQUE_ID], { passive: true })\n }\n catch (error) {\n console.error('[maz-ui](vClickOutside)', error)\n }\n}\n\nfunction onUnmounted(el: HTMLElement) {\n try {\n const eventType = getEventType()\n document.removeEventListener(eventType, el[UNIQUE_ID], false)\n delete el[UNIQUE_ID]\n }\n catch (error) {\n console.error('[maz-ui](vClickOutside)', error)\n }\n}\n\nfunction onUpdated(el: HTMLElement, binding: vClickOutsideDirectiveBinding) {\n try {\n if (binding.value === binding.oldValue) {\n return\n }\n onMounted(el, binding)\n }\n catch (error) {\n console.error('[maz-ui](vClickOutside)', error)\n }\n}\n\nconst directive = {\n mounted: onMounted,\n updated: onUpdated,\n unmounted: onUnmounted,\n} satisfies ObjectDirective<HTMLElement, vClickOutsideBindingValue>\n\nconst plugin = {\n install: (app) => {\n app.directive('click-outside', directive)\n },\n} satisfies Plugin\n\nexport { directive as vClickOutside, type vClickOutsideBindingValue, plugin as vClickOutsideInstall }\n"],"names":["UNIQUE_ID","getEventType","onMounted","el","binding","onUnmounted","vm","callback","isCallbackFunction","nextTick","event","eventType","error","onUpdated","directive","plugin","app"],"mappings":"uGAEMA,EAAY,wBAElB,SAASC,GAAe,CACf,OAAA,SAAS,eAAiB,KAAO,aAAe,OACzD,CAMA,eAAeC,EAAUC,EAAiBC,EAAwC,CAC5E,GAAA,CACFC,EAAYF,CAAE,EAEd,MAAMG,EAAKF,EAAQ,SACbG,EAAWH,EAAQ,MAEnBI,EAAqB,OAAOD,GAAa,WAE/C,GAAI,CAACC,EACG,MAAA,IAAI,MAAM,2DAA2D,EAG7E,MAAMC,WAAS,EAEZN,EAAAH,CAAS,EAAKU,GAAiB,CAE7B,IAAA,CAACP,GAAOO,EAAM,QAAU,CAACP,EAAG,SAASO,EAAM,MAAc,IACvDH,GACAC,EAEI,OAAAD,EAAS,KAAKD,EAAII,CAAK,CAElC,EAEA,MAAMC,EAAYV,EAAa,EAEtB,SAAA,iBAAiBU,EAAWR,EAAGH,CAAS,EAAG,CAAE,QAAS,GAAM,QAEhEY,EAAO,CACJ,QAAA,MAAM,0BAA2BA,CAAK,CAAA,CAElD,CAEA,SAASP,EAAYF,EAAiB,CAChC,GAAA,CACF,MAAMQ,EAAYV,EAAa,EAC/B,SAAS,oBAAoBU,EAAWR,EAAGH,CAAS,EAAG,EAAK,EAC5D,OAAOG,EAAGH,CAAS,QAEdY,EAAO,CACJ,QAAA,MAAM,0BAA2BA,CAAK,CAAA,CAElD,CAEA,SAASC,EAAUV,EAAiBC,EAAwC,CACtE,GAAA,CACE,GAAAA,EAAQ,QAAUA,EAAQ,SAC5B,OAEFF,EAAUC,EAAIC,CAAO,QAEhBQ,EAAO,CACJ,QAAA,MAAM,0BAA2BA,CAAK,CAAA,CAElD,CAEA,MAAME,EAAY,CAChB,QAASZ,EACT,QAASW,EACT,UAAWR,CACb,EAEMU,EAAS,CACb,QAAUC,GAAQ,CACZA,EAAA,UAAU,gBAAiBF,CAAS,CAAA,CAE5C"}
|