maz-ui 4.0.0-alpha.3 → 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/arrow-top-right-on-square.PZtr8Zs0.cjs.map +1 -1
- package/dist/chunks/arrow-top-right-on-square.wYk3YJI_.mjs.map +1 -1
- package/dist/chunks/arrow-up.CDxvryQT.cjs.map +1 -1
- package/dist/chunks/arrow-up.HdMpMK4c.mjs.map +1 -1
- package/dist/chunks/banknotes.CQ9Qxg-e.mjs.map +1 -1
- package/dist/chunks/banknotes.CdkS5KVY.cjs.map +1 -1
- package/dist/chunks/check-circle.D3i-p-t3.cjs.map +1 -1
- package/dist/chunks/check-circle.DhFkXzgc.mjs.map +1 -1
- package/dist/chunks/check.B-gxQRxL.mjs.map +1 -1
- package/dist/chunks/check._ETzZCli.cjs.map +1 -1
- package/dist/chunks/chevron-double-left.C1WkQBYN.mjs.map +1 -1
- package/dist/chunks/chevron-double-left.D2o-BlKu.cjs.map +1 -1
- package/dist/chunks/chevron-down.CWWH3GZ1.mjs.map +1 -1
- package/dist/chunks/chevron-down.DdnENkzR.cjs.map +1 -1
- package/dist/chunks/chevron-left.BYUi62el.cjs.map +1 -1
- package/dist/chunks/chevron-left.njfuF_Vt.mjs.map +1 -1
- package/dist/chunks/chevron-right.B0RH9GgM.cjs.map +1 -1
- package/dist/chunks/chevron-right.CEEKGU2c.mjs.map +1 -1
- package/dist/chunks/ellipsis-horizontal.BKw73_U9.mjs.map +1 -1
- package/dist/chunks/ellipsis-horizontal.C28slEaT.cjs.map +1 -1
- package/dist/chunks/exclamation-circle.BXs0Yj0f.cjs.map +1 -1
- package/dist/chunks/exclamation-circle.D4z1YE7G.mjs.map +1 -1
- package/dist/chunks/exclamation-triangle.BtW3be9S.cjs.map +1 -1
- package/dist/chunks/exclamation-triangle.DiZZcE2l.mjs.map +1 -1
- package/dist/chunks/eye-slash.BrQSe1kT.mjs.map +1 -1
- package/dist/chunks/eye-slash.C65GdgwJ.cjs.map +1 -1
- package/dist/chunks/eye.CzqaR8eU.cjs.map +1 -1
- package/dist/chunks/eye.yaEU50DN.mjs.map +1 -1
- 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/information-circle.89FseEuJ.cjs.map +1 -1
- package/dist/chunks/information-circle.CEsJ8VHx.mjs.map +1 -1
- 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/link.CUxj8BQ5.cjs.map +1 -1
- package/dist/chunks/link.qHT4E8pY.mjs.map +1 -1
- package/dist/chunks/magnifying-glass.6EkSEo-G.mjs.map +1 -1
- package/dist/chunks/magnifying-glass.CSf_M2wG.cjs.map +1 -1
- package/dist/chunks/minus.B8s20I4l.cjs.map +1 -1
- package/dist/chunks/minus.BHEyT7J2.mjs.map +1 -1
- package/dist/chunks/no-photography.B6pz0xMN.mjs.map +1 -1
- package/dist/chunks/no-photography.BJX8HSus.mjs.map +1 -1
- package/dist/chunks/no-photography.BPChQgKp.cjs.map +1 -1
- package/dist/chunks/no-photography.CLNgmzDi.cjs.map +1 -1
- package/dist/chunks/no-symbol.D1DeANDx.cjs.map +1 -1
- package/dist/chunks/no-symbol.DqVEpOgn.mjs.map +1 -1
- package/dist/chunks/pencil.Cl_0Egfc.mjs.map +1 -1
- package/dist/chunks/pencil.TIXFeSep.cjs.map +1 -1
- package/dist/chunks/plus.CNCGxFPJ.mjs.map +1 -1
- package/dist/chunks/plus.CbUgaWqj.cjs.map +1 -1
- package/dist/chunks/trash.hx3p13ce.cjs.map +1 -1
- package/dist/chunks/trash.lmwqE3cE.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/chunks/x-mark.DTWA3lfG.mjs.map +1 -1
- package/dist/chunks/x-mark.Dz-FO7Es.cjs.map +1 -1
- 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/useBreakpoints.cjs.map +1 -1
- package/dist/composables/useBreakpoints.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/css/main.css +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 +6 -6
- package/{dist/tailwindcss → tailwindcss}/tailwind.css +1 -1
- 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/bin/maz.mjs +0 -2
- 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
- package/dist/types/tailwindcss/tailwind.config.d.ts +0 -121
- package/dist/types/tailwindcss/utils/colors.d.ts +0 -1
- package/dist/types/tailwindcss/variables/breakpoints.d.ts +0 -15
- package/dist/types/tailwindcss/variables/colors.d.ts +0 -32
- package/dist/types/tailwindcss/variables/utilities.d.ts +0 -22
- package/dist/types/tailwindcss/variables/z-indexes.d.ts +0 -14
- /package/{dist/icons → icons}/academic-cap.svg +0 -0
- /package/{dist/icons → icons}/adjustments-horizontal.svg +0 -0
- /package/{dist/icons → icons}/adjustments-vertical.svg +0 -0
- /package/{dist/icons → icons}/archive-box-arrow-down.svg +0 -0
- /package/{dist/icons → icons}/archive-box-x-mark.svg +0 -0
- /package/{dist/icons → icons}/archive-box.svg +0 -0
- /package/{dist/icons → icons}/arrow-down-circle.svg +0 -0
- /package/{dist/icons → icons}/arrow-down-left.svg +0 -0
- /package/{dist/icons → icons}/arrow-down-on-square-stack.svg +0 -0
- /package/{dist/icons → icons}/arrow-down-on-square.svg +0 -0
- /package/{dist/icons → icons}/arrow-down-right.svg +0 -0
- /package/{dist/icons → icons}/arrow-down-tray.svg +0 -0
- /package/{dist/icons → icons}/arrow-down.svg +0 -0
- /package/{dist/icons → icons}/arrow-left-circle.svg +0 -0
- /package/{dist/icons → icons}/arrow-left-end-on-rectangle.svg +0 -0
- /package/{dist/icons → icons}/arrow-left-on-rectangle.svg +0 -0
- /package/{dist/icons → icons}/arrow-left-start-on-rectangle.svg +0 -0
- /package/{dist/icons → icons}/arrow-left.svg +0 -0
- /package/{dist/icons → icons}/arrow-long-down.svg +0 -0
- /package/{dist/icons → icons}/arrow-long-left.svg +0 -0
- /package/{dist/icons → icons}/arrow-long-right.svg +0 -0
- /package/{dist/icons → icons}/arrow-long-up.svg +0 -0
- /package/{dist/icons → icons}/arrow-path-rounded-square.svg +0 -0
- /package/{dist/icons → icons}/arrow-path.svg +0 -0
- /package/{dist/icons → icons}/arrow-right-circle.svg +0 -0
- /package/{dist/icons → icons}/arrow-right-end-on-rectangle.svg +0 -0
- /package/{dist/icons → icons}/arrow-right-on-rectangle.svg +0 -0
- /package/{dist/icons → icons}/arrow-right-start-on-rectangle.svg +0 -0
- /package/{dist/icons → icons}/arrow-right.svg +0 -0
- /package/{dist/icons → icons}/arrow-small-down.svg +0 -0
- /package/{dist/icons → icons}/arrow-small-left.svg +0 -0
- /package/{dist/icons → icons}/arrow-small-right.svg +0 -0
- /package/{dist/icons → icons}/arrow-small-up.svg +0 -0
- /package/{dist/icons → icons}/arrow-top-right-on-square.svg +0 -0
- /package/{dist/icons → icons}/arrow-trending-down.svg +0 -0
- /package/{dist/icons → icons}/arrow-trending-up.svg +0 -0
- /package/{dist/icons → icons}/arrow-up-circle.svg +0 -0
- /package/{dist/icons → icons}/arrow-up-left.svg +0 -0
- /package/{dist/icons → icons}/arrow-up-on-square-stack.svg +0 -0
- /package/{dist/icons → icons}/arrow-up-on-square.svg +0 -0
- /package/{dist/icons → icons}/arrow-up-right.svg +0 -0
- /package/{dist/icons → icons}/arrow-up-tray.svg +0 -0
- /package/{dist/icons → icons}/arrow-up.svg +0 -0
- /package/{dist/icons → icons}/arrow-uturn-down.svg +0 -0
- /package/{dist/icons → icons}/arrow-uturn-left.svg +0 -0
- /package/{dist/icons → icons}/arrow-uturn-right.svg +0 -0
- /package/{dist/icons → icons}/arrow-uturn-up.svg +0 -0
- /package/{dist/icons → icons}/arrows-pointing-in.svg +0 -0
- /package/{dist/icons → icons}/arrows-pointing-out.svg +0 -0
- /package/{dist/icons → icons}/arrows-right-left.svg +0 -0
- /package/{dist/icons → icons}/arrows-up-down.svg +0 -0
- /package/{dist/icons → icons}/at-symbol.svg +0 -0
- /package/{dist/icons → icons}/backspace.svg +0 -0
- /package/{dist/icons → icons}/backward.svg +0 -0
- /package/{dist/icons → icons}/banknotes.svg +0 -0
- /package/{dist/icons → icons}/bars-2.svg +0 -0
- /package/{dist/icons → icons}/bars-3-bottom-left.svg +0 -0
- /package/{dist/icons → icons}/bars-3-bottom-right.svg +0 -0
- /package/{dist/icons → icons}/bars-3-center-left.svg +0 -0
- /package/{dist/icons → icons}/bars-3.svg +0 -0
- /package/{dist/icons → icons}/bars-4.svg +0 -0
- /package/{dist/icons → icons}/bars-arrow-down.svg +0 -0
- /package/{dist/icons → icons}/bars-arrow-up.svg +0 -0
- /package/{dist/icons → icons}/battery-0.svg +0 -0
- /package/{dist/icons → icons}/battery-100.svg +0 -0
- /package/{dist/icons → icons}/battery-50.svg +0 -0
- /package/{dist/icons → icons}/beaker.svg +0 -0
- /package/{dist/icons → icons}/bell-alert.svg +0 -0
- /package/{dist/icons → icons}/bell-slash.svg +0 -0
- /package/{dist/icons → icons}/bell-snooze.svg +0 -0
- /package/{dist/icons → icons}/bell.svg +0 -0
- /package/{dist/icons → icons}/bolt-slash.svg +0 -0
- /package/{dist/icons → icons}/bolt.svg +0 -0
- /package/{dist/icons → icons}/book-open.svg +0 -0
- /package/{dist/icons → icons}/bookmark-slash.svg +0 -0
- /package/{dist/icons → icons}/bookmark-square.svg +0 -0
- /package/{dist/icons → icons}/bookmark.svg +0 -0
- /package/{dist/icons → icons}/briefcase.svg +0 -0
- /package/{dist/icons → icons}/bug-ant.svg +0 -0
- /package/{dist/icons → icons}/building-library.svg +0 -0
- /package/{dist/icons → icons}/building-office-2.svg +0 -0
- /package/{dist/icons → icons}/building-office.svg +0 -0
- /package/{dist/icons → icons}/building-storefront.svg +0 -0
- /package/{dist/icons → icons}/cake.svg +0 -0
- /package/{dist/icons → icons}/calculator.svg +0 -0
- /package/{dist/icons → icons}/calendar-days.svg +0 -0
- /package/{dist/icons → icons}/calendar.svg +0 -0
- /package/{dist/icons → icons}/camera.svg +0 -0
- /package/{dist/icons → icons}/chart-bar-square.svg +0 -0
- /package/{dist/icons → icons}/chart-bar.svg +0 -0
- /package/{dist/icons → icons}/chart-pie.svg +0 -0
- /package/{dist/icons → icons}/chat-bubble-bottom-center-text.svg +0 -0
- /package/{dist/icons → icons}/chat-bubble-bottom-center.svg +0 -0
- /package/{dist/icons → icons}/chat-bubble-left-ellipsis.svg +0 -0
- /package/{dist/icons → icons}/chat-bubble-left-right.svg +0 -0
- /package/{dist/icons → icons}/chat-bubble-left.svg +0 -0
- /package/{dist/icons → icons}/chat-bubble-oval-left-ellipsis.svg +0 -0
- /package/{dist/icons → icons}/chat-bubble-oval-left.svg +0 -0
- /package/{dist/icons → icons}/check-badge.svg +0 -0
- /package/{dist/icons → icons}/check-circle.svg +0 -0
- /package/{dist/icons → icons}/check.svg +0 -0
- /package/{dist/icons → icons}/chevron-double-down.svg +0 -0
- /package/{dist/icons → icons}/chevron-double-left.svg +0 -0
- /package/{dist/icons → icons}/chevron-double-right.svg +0 -0
- /package/{dist/icons → icons}/chevron-double-up.svg +0 -0
- /package/{dist/icons → icons}/chevron-down.svg +0 -0
- /package/{dist/icons → icons}/chevron-left.svg +0 -0
- /package/{dist/icons → icons}/chevron-right.svg +0 -0
- /package/{dist/icons → icons}/chevron-up-down.svg +0 -0
- /package/{dist/icons → icons}/chevron-up.svg +0 -0
- /package/{dist/icons → icons}/circle-stack.svg +0 -0
- /package/{dist/icons → icons}/clipboard-document-check.svg +0 -0
- /package/{dist/icons → icons}/clipboard-document-list.svg +0 -0
- /package/{dist/icons → icons}/clipboard-document.svg +0 -0
- /package/{dist/icons → icons}/clipboard.svg +0 -0
- /package/{dist/icons → icons}/clock.svg +0 -0
- /package/{dist/icons → icons}/cloud-arrow-down.svg +0 -0
- /package/{dist/icons → icons}/cloud-arrow-up.svg +0 -0
- /package/{dist/icons → icons}/cloud.svg +0 -0
- /package/{dist/icons → icons}/code-bracket-square.svg +0 -0
- /package/{dist/icons → icons}/code-bracket.svg +0 -0
- /package/{dist/icons → icons}/cog-6-tooth.svg +0 -0
- /package/{dist/icons → icons}/cog-8-tooth.svg +0 -0
- /package/{dist/icons → icons}/cog.svg +0 -0
- /package/{dist/icons → icons}/command-line.svg +0 -0
- /package/{dist/icons → icons}/computer-desktop.svg +0 -0
- /package/{dist/icons → icons}/cpu-chip.svg +0 -0
- /package/{dist/icons → icons}/credit-card.svg +0 -0
- /package/{dist/icons → icons}/cube-transparent.svg +0 -0
- /package/{dist/icons → icons}/cube.svg +0 -0
- /package/{dist/icons → icons}/currency-bangladeshi.svg +0 -0
- /package/{dist/icons → icons}/currency-dollar.svg +0 -0
- /package/{dist/icons → icons}/currency-euro.svg +0 -0
- /package/{dist/icons → icons}/currency-pound.svg +0 -0
- /package/{dist/icons → icons}/currency-rupee.svg +0 -0
- /package/{dist/icons → icons}/currency-yen.svg +0 -0
- /package/{dist/icons → icons}/cursor-arrow-rays.svg +0 -0
- /package/{dist/icons → icons}/cursor-arrow-ripple.svg +0 -0
- /package/{dist/icons → icons}/device-phone-mobile.svg +0 -0
- /package/{dist/icons → icons}/device-tablet.svg +0 -0
- /package/{dist/icons → icons}/document-arrow-down.svg +0 -0
- /package/{dist/icons → icons}/document-arrow-up.svg +0 -0
- /package/{dist/icons → icons}/document-chart-bar.svg +0 -0
- /package/{dist/icons → icons}/document-check.svg +0 -0
- /package/{dist/icons → icons}/document-duplicate.svg +0 -0
- /package/{dist/icons → icons}/document-magnifying-glass.svg +0 -0
- /package/{dist/icons → icons}/document-minus.svg +0 -0
- /package/{dist/icons → icons}/document-plus.svg +0 -0
- /package/{dist/icons → icons}/document-text.svg +0 -0
- /package/{dist/icons → icons}/document.svg +0 -0
- /package/{dist/icons → icons}/ellipsis-horizontal-circle.svg +0 -0
- /package/{dist/icons → icons}/ellipsis-horizontal.svg +0 -0
- /package/{dist/icons → icons}/ellipsis-vertical.svg +0 -0
- /package/{dist/icons → icons}/envelope-open.svg +0 -0
- /package/{dist/icons → icons}/envelope.svg +0 -0
- /package/{dist/icons → icons}/exclamation-circle.svg +0 -0
- /package/{dist/icons → icons}/exclamation-triangle.svg +0 -0
- /package/{dist/icons → icons}/eye-dropper.svg +0 -0
- /package/{dist/icons → icons}/eye-slash.svg +0 -0
- /package/{dist/icons → icons}/eye.svg +0 -0
- /package/{dist/icons → icons}/face-frown.svg +0 -0
- /package/{dist/icons → icons}/face-smile.svg +0 -0
- /package/{dist/icons → icons}/film.svg +0 -0
- /package/{dist/icons → icons}/finger-print.svg +0 -0
- /package/{dist/icons → icons}/fire.svg +0 -0
- /package/{dist/icons → icons}/flag.svg +0 -0
- /package/{dist/icons → icons}/folder-arrow-down.svg +0 -0
- /package/{dist/icons → icons}/folder-minus.svg +0 -0
- /package/{dist/icons → icons}/folder-open.svg +0 -0
- /package/{dist/icons → icons}/folder-plus.svg +0 -0
- /package/{dist/icons → icons}/folder.svg +0 -0
- /package/{dist/icons → icons}/fork.svg +0 -0
- /package/{dist/icons → icons}/forward.svg +0 -0
- /package/{dist/icons → icons}/funnel.svg +0 -0
- /package/{dist/icons → icons}/gif.svg +0 -0
- /package/{dist/icons → icons}/gift-top.svg +0 -0
- /package/{dist/icons → icons}/gift.svg +0 -0
- /package/{dist/icons → icons}/github.svg +0 -0
- /package/{dist/icons → icons}/globe-alt.svg +0 -0
- /package/{dist/icons → icons}/globe-americas.svg +0 -0
- /package/{dist/icons → icons}/globe-asia-australia.svg +0 -0
- /package/{dist/icons → icons}/globe-europe-africa.svg +0 -0
- /package/{dist/icons → icons}/hand-raised.svg +0 -0
- /package/{dist/icons → icons}/hand-thumb-down.svg +0 -0
- /package/{dist/icons → icons}/hand-thumb-up.svg +0 -0
- /package/{dist/icons → icons}/hashtag.svg +0 -0
- /package/{dist/icons → icons}/heart.svg +0 -0
- /package/{dist/icons → icons}/home-modern.svg +0 -0
- /package/{dist/icons → icons}/home.svg +0 -0
- /package/{dist/icons → icons}/identification.svg +0 -0
- /package/{dist/icons → icons}/inbox-arrow-down.svg +0 -0
- /package/{dist/icons → icons}/inbox-stack.svg +0 -0
- /package/{dist/icons → icons}/inbox.svg +0 -0
- /package/{dist/icons → icons}/information-circle.svg +0 -0
- /package/{dist/icons → icons}/key.svg +0 -0
- /package/{dist/icons → icons}/language.svg +0 -0
- /package/{dist/icons → icons}/lifebuoy.svg +0 -0
- /package/{dist/icons → icons}/light-bulb.svg +0 -0
- /package/{dist/icons → icons}/link.svg +0 -0
- /package/{dist/icons → icons}/list-bullet.svg +0 -0
- /package/{dist/icons → icons}/lock-closed.svg +0 -0
- /package/{dist/icons → icons}/lock-open.svg +0 -0
- /package/{dist/icons → icons}/magnifying-glass-circle.svg +0 -0
- /package/{dist/icons → icons}/magnifying-glass-minus.svg +0 -0
- /package/{dist/icons → icons}/magnifying-glass-plus.svg +0 -0
- /package/{dist/icons → icons}/magnifying-glass.svg +0 -0
- /package/{dist/icons → icons}/map-pin.svg +0 -0
- /package/{dist/icons → icons}/map.svg +0 -0
- /package/{dist/icons → icons}/megaphone.svg +0 -0
- /package/{dist/icons → icons}/microphone.svg +0 -0
- /package/{dist/icons → icons}/minus-circle.svg +0 -0
- /package/{dist/icons → icons}/minus-small.svg +0 -0
- /package/{dist/icons → icons}/minus.svg +0 -0
- /package/{dist/icons → icons}/moon.svg +0 -0
- /package/{dist/icons → icons}/musical-note.svg +0 -0
- /package/{dist/icons → icons}/newspaper.svg +0 -0
- /package/{dist/icons → icons}/no-photography.svg +0 -0
- /package/{dist/icons → icons}/no-symbol.svg +0 -0
- /package/{dist/icons → icons}/paint-brush.svg +0 -0
- /package/{dist/icons → icons}/paper-airplane.svg +0 -0
- /package/{dist/icons → icons}/paper-clip.svg +0 -0
- /package/{dist/icons → icons}/pause-circle.svg +0 -0
- /package/{dist/icons → icons}/pause.svg +0 -0
- /package/{dist/icons → icons}/pencil-square.svg +0 -0
- /package/{dist/icons → icons}/pencil.svg +0 -0
- /package/{dist/icons → icons}/phone-arrow-down-left.svg +0 -0
- /package/{dist/icons → icons}/phone-arrow-up-right.svg +0 -0
- /package/{dist/icons → icons}/phone-x-mark.svg +0 -0
- /package/{dist/icons → icons}/phone.svg +0 -0
- /package/{dist/icons → icons}/photo.svg +0 -0
- /package/{dist/icons → icons}/play-circle.svg +0 -0
- /package/{dist/icons → icons}/play-pause.svg +0 -0
- /package/{dist/icons → icons}/play.svg +0 -0
- /package/{dist/icons → icons}/plus-circle.svg +0 -0
- /package/{dist/icons → icons}/plus-small.svg +0 -0
- /package/{dist/icons → icons}/plus.svg +0 -0
- /package/{dist/icons → icons}/power.svg +0 -0
- /package/{dist/icons → icons}/presentation-chart-bar.svg +0 -0
- /package/{dist/icons → icons}/presentation-chart-line.svg +0 -0
- /package/{dist/icons → icons}/printer.svg +0 -0
- /package/{dist/icons → icons}/puzzle-piece.svg +0 -0
- /package/{dist/icons → icons}/qr-code.svg +0 -0
- /package/{dist/icons → icons}/question-mark-circle.svg +0 -0
- /package/{dist/icons → icons}/queue-list.svg +0 -0
- /package/{dist/icons → icons}/radio.svg +0 -0
- /package/{dist/icons → icons}/receipt-percent.svg +0 -0
- /package/{dist/icons → icons}/receipt-refund.svg +0 -0
- /package/{dist/icons → icons}/rectangle-group.svg +0 -0
- /package/{dist/icons → icons}/rectangle-stack.svg +0 -0
- /package/{dist/icons → icons}/rocket-launch.svg +0 -0
- /package/{dist/icons → icons}/rss.svg +0 -0
- /package/{dist/icons → icons}/scale.svg +0 -0
- /package/{dist/icons → icons}/scissors.svg +0 -0
- /package/{dist/icons → icons}/server-stack.svg +0 -0
- /package/{dist/icons → icons}/server.svg +0 -0
- /package/{dist/icons → icons}/share.svg +0 -0
- /package/{dist/icons → icons}/shield-check.svg +0 -0
- /package/{dist/icons → icons}/shield-exclamation.svg +0 -0
- /package/{dist/icons → icons}/shopping-bag.svg +0 -0
- /package/{dist/icons → icons}/shopping-cart.svg +0 -0
- /package/{dist/icons → icons}/signal-slash.svg +0 -0
- /package/{dist/icons → icons}/signal.svg +0 -0
- /package/{dist/icons → icons}/sparkles.svg +0 -0
- /package/{dist/icons → icons}/speaker-wave.svg +0 -0
- /package/{dist/icons → icons}/speaker-x-mark.svg +0 -0
- /package/{dist/icons → icons}/square-2-stack.svg +0 -0
- /package/{dist/icons → icons}/square-3-stack-3d.svg +0 -0
- /package/{dist/icons → icons}/squares-2x2.svg +0 -0
- /package/{dist/icons → icons}/squares-plus.svg +0 -0
- /package/{dist/icons → icons}/star-solid.svg +0 -0
- /package/{dist/icons → icons}/star.svg +0 -0
- /package/{dist/icons → icons}/stop-circle.svg +0 -0
- /package/{dist/icons → icons}/stop.svg +0 -0
- /package/{dist/icons → icons}/sun.svg +0 -0
- /package/{dist/icons → icons}/swatch.svg +0 -0
- /package/{dist/icons → icons}/table-cells.svg +0 -0
- /package/{dist/icons → icons}/tag.svg +0 -0
- /package/{dist/icons → icons}/ticket.svg +0 -0
- /package/{dist/icons → icons}/trash.svg +0 -0
- /package/{dist/icons → icons}/trophy.svg +0 -0
- /package/{dist/icons → icons}/truck.svg +0 -0
- /package/{dist/icons → icons}/tv.svg +0 -0
- /package/{dist/icons → icons}/user-circle.svg +0 -0
- /package/{dist/icons → icons}/user-group.svg +0 -0
- /package/{dist/icons → icons}/user-minus.svg +0 -0
- /package/{dist/icons → icons}/user-plus.svg +0 -0
- /package/{dist/icons → icons}/user.svg +0 -0
- /package/{dist/icons → icons}/users.svg +0 -0
- /package/{dist/icons → icons}/variable.svg +0 -0
- /package/{dist/icons → icons}/video-camera-slash.svg +0 -0
- /package/{dist/icons → icons}/video-camera.svg +0 -0
- /package/{dist/icons → icons}/view-columns.svg +0 -0
- /package/{dist/icons → icons}/viewfinder-circle.svg +0 -0
- /package/{dist/icons → icons}/wallet.svg +0 -0
- /package/{dist/icons → icons}/wifi.svg +0 -0
- /package/{dist/icons → icons}/window.svg +0 -0
- /package/{dist/icons → icons}/wrench-screwdriver.svg +0 -0
- /package/{dist/icons → icons}/wrench.svg +0 -0
- /package/{dist/icons → icons}/x-circle.svg +0 -0
- /package/{dist/icons → icons}/x-mark.svg +0 -0
- /package/{dist/tailwindcss → tailwindcss}/tailwind.config.ts +0 -0
- /package/{dist/tailwindcss → tailwindcss}/utils/colors.ts +0 -0
- /package/{dist/tailwindcss → tailwindcss}/variables/breakpoints.ts +0 -0
- /package/{dist/tailwindcss → tailwindcss}/variables/colors.ts +0 -0
- /package/{dist/tailwindcss → tailwindcss}/variables/utilities.ts +0 -0
- /package/{dist/tailwindcss → tailwindcss}/variables/z-indexes.ts +0 -0
package/dist/chunks/{MazInputPhoneNumber.B173m1hd.mjs.map → MazInputPhoneNumber.BluSBPXE.mjs.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MazInputPhoneNumber.B173m1hd.mjs","sources":["../../src/components/MazInputPhoneNumber/default-locales.ts","../../src/components/MazInputPhoneNumber/useLibphonenumber.ts","../../src/components/MazInputPhoneNumber/useMazInputPhoneNumber.ts","../../src/components/MazInputPhoneNumber.vue"],"sourcesContent":["export const defaultLocales = {\n countrySelector: {\n placeholder: 'Country code',\n error: 'Choose country',\n searchPlaceholder: 'Search the country',\n },\n phoneInput: {\n placeholder: 'Phone number',\n example: 'Example:',\n },\n}\n","import type { Results } from '@components/MazInputPhoneNumber/types'\nimport {\n AsYouType,\n type CountryCode,\n type Examples,\n getCountries,\n getCountryCallingCode,\n getExampleNumber,\n isSupportedCountry,\n parsePhoneNumberFromString,\n} from 'libphonenumber-js'\nimport { ref } from 'vue'\n\nconst examples = ref<Examples>()\n\nfunction isCountryAvailable(locale: string) {\n try {\n const response = isSupportedCountry(locale)\n\n if (!response) {\n console.error(`[maz-ui](MazInputPhoneNumber) The code country \"${locale}\" is not available`)\n\n return false\n }\n\n return response\n }\n catch (error) {\n console.error(`[maz-ui](MazInputPhoneNumber) ${error}`)\n return false\n }\n}\n\nfunction getPhoneNumberResults({\n phoneNumber,\n countryCode,\n checkCountryCode = false,\n}: {\n phoneNumber?: string | undefined | null\n countryCode?: CountryCode | undefined | null\n checkCountryCode?: boolean\n}): Results {\n try {\n if (!phoneNumber) {\n return {\n isValid: false,\n countryCode,\n }\n }\n\n const parsedNumber = parsePhoneNumberFromString(phoneNumber, countryCode ?? undefined)\n const isValid = parsedNumber?.isValid() ?? false\n\n const isSameCountryCode = countryCode && checkCountryCode ? parsedNumber?.country && countryCode === parsedNumber.country : true\n\n return {\n isValid: isValid && !!isSameCountryCode,\n countryCode,\n parsedCountryCode: parsedNumber?.country,\n isPossible: parsedNumber?.isPossible(),\n countryCallingCode: parsedNumber?.countryCallingCode,\n nationalNumber: parsedNumber?.nationalNumber,\n type: parsedNumber?.getType(),\n formatInternational: parsedNumber?.formatInternational(),\n formatNational: parsedNumber?.formatNational(),\n uri: parsedNumber?.getURI(),\n e164: parsedNumber?.format('E.164'),\n rfc3966: parsedNumber?.format('RFC3966'),\n possibleCountries: parsedNumber?.getPossibleCountries(),\n phoneNumber,\n }\n }\n catch (error) {\n throw new Error(`[MazInputPhoneNumber](getResultsFromPhoneNumber) ${error}`)\n }\n}\n\nasync function getPhoneNumberExamplesFile() {\n const { default: data } = await import('libphonenumber-js/examples.mobile.json')\n\n return data\n}\n\nfunction getPhoneNumberExample(countryCode?: CountryCode | undefined | null) {\n try {\n if (!examples.value) {\n return\n }\n\n return countryCode ? getExampleNumber(countryCode, examples.value)?.formatNational() : undefined\n }\n catch (error) {\n console.error(`[maz-ui](MazInputPhoneNumber) ${error}`)\n }\n}\n\nfunction getAsYouTypeFormat(countryCode?: CountryCode | undefined | null, phoneNumber?: string | undefined | null): string | undefined {\n try {\n if (!phoneNumber || !countryCode) {\n return\n }\n\n const asYouTypeInstance = new AsYouType(countryCode)\n\n return asYouTypeInstance.input(phoneNumber)\n }\n catch (error) {\n throw new Error(`[MazInputPhoneNumber](getAsYouTypeFormat) ${error}`)\n }\n}\n\nfunction isSameCountryCallingCode(countryCode: CountryCode, countryCode2: CountryCode) {\n return getCountryCallingCode(countryCode) === getCountryCallingCode(countryCode2)\n}\n\nasync function loadExamples() {\n try {\n if (examples.value)\n return\n\n examples.value = await getPhoneNumberExamplesFile()\n }\n catch (error) {\n console.error('[maz-ui](MazInputPhoneNumber) while loading phone number examples file', error)\n }\n}\n\nexport function useLibphonenumber() {\n return {\n examples,\n getAsYouTypeFormat,\n getPhoneNumberResults,\n getPhoneNumberExamplesFile,\n getPhoneNumberExample,\n isSameCountryCallingCode,\n isCountryAvailable,\n getCountries,\n getCountryCallingCode,\n loadExamples,\n }\n}\n","import type { Country, IpWhoResponse } from '@components/MazInputPhoneNumber/types'\nimport { type CountryCode, getCountries, getCountryCallingCode } from 'libphonenumber-js'\n\nfunction getBrowserLocale() {\n if (typeof window === 'undefined') {\n return\n }\n\n const browserLocale = window.navigator.language\n\n if (!browserLocale) {\n return\n }\n\n let locale = browserLocale.slice(3, 7).toUpperCase()\n\n if (locale === '') {\n locale = browserLocale.slice(0, 2).toUpperCase()\n }\n\n if (locale === 'EN') {\n locale = 'US'\n }\n if (locale === 'JA') {\n locale = 'JP'\n }\n\n return {\n locale,\n browserLocale,\n }\n}\n\nlet displayNamesInstance: Intl.DisplayNames | undefined\nlet displayNamesLocale: string | undefined\n\nfunction getCountryName(\n locale: string,\n code: CountryCode | string,\n customCountriesNameListByIsoCode?: Record<CountryCode, string>,\n): string | undefined {\n if (customCountriesNameListByIsoCode?.[code]) {\n return customCountriesNameListByIsoCode[code]\n }\n\n if (displayNamesLocale !== locale || !displayNamesInstance) {\n displayNamesLocale = locale\n displayNamesInstance = new Intl.DisplayNames([locale], { type: 'region' })\n }\n\n return displayNamesInstance.of(code)\n}\n\nfunction getCountriesList(\n locale?: string,\n customCountriesNameListByIsoCode?: Record<CountryCode, string>,\n): Country[] | undefined {\n const countriesList: Country[] = []\n const isoList = getCountries()\n\n locale = locale ?? getBrowserLocale()?.browserLocale ?? 'en-US'\n\n for (const iso2 of isoList) {\n const name = getCountryName(locale, iso2, customCountriesNameListByIsoCode)\n\n if (name) {\n try {\n const dialCode = getCountryCallingCode(iso2)\n countriesList.push({\n iso2,\n dialCode,\n name,\n })\n }\n catch (error) {\n console.error(`[MazInputPhoneNumber](getCountryCallingCode) ${error}`)\n }\n }\n }\n\n return countriesList\n}\n\nasync function fetchCountryCode() {\n try {\n const reponse = await fetch('https://ipwho.is')\n const { country_code } = (await reponse.json()) as IpWhoResponse\n\n return country_code\n }\n catch (error) {\n throw new Error(`[MazInputPhoneNumber](fetchCountryCode) ${error}`)\n }\n}\n\nfunction sanitizePhoneNumber(input?: string | undefined | null) {\n if (!input) {\n return ''\n }\n const regex = new RegExp(/[^\\d ()+-]/g) // Keep only digits, (), - and + characters\n\n return input.replaceAll(regex, '').trim()\n}\n\nexport function useMazInputPhoneNumber() {\n return {\n sanitizePhoneNumber,\n fetchCountryCode,\n getBrowserLocale,\n getCountriesList,\n }\n}\n","<script lang=\"ts\" setup>\nimport type { MazInputPhoneNumberTranslations, Results } from '@components/MazInputPhoneNumber/types'\nimport type { Color, Position, Size } from '@components/types'\nimport type { CountryCode } from 'libphonenumber-js'\nimport { defaultLocales } from '@components/MazInputPhoneNumber/default-locales'\nimport { useLibphonenumber } from '@components/MazInputPhoneNumber/useLibphonenumber'\nimport { useMazInputPhoneNumber } from '@components/MazInputPhoneNumber/useMazInputPhoneNumber'\n\nimport { useInstanceUniqId } from '@composables/useInstanceUniqId'\nimport {\n type ComponentPublicInstance,\n computed,\n defineAsyncComponent,\n type HTMLAttributes,\n nextTick,\n onBeforeMount,\n onMounted,\n provide,\n ref,\n watch,\n} from 'vue'\n\ndefineOptions({\n name: 'MazInputPhoneNumber',\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<MazInputPhoneNumberProps>(), {\n class: undefined,\n style: undefined,\n listPosition: 'bottom left',\n color: 'primary',\n size: 'md',\n modelValue: undefined,\n /** @deprecated */\n defaultPhoneNumber: undefined,\n countryCode: undefined,\n /** @deprecated */\n defaultCountryCode: undefined,\n id: undefined,\n placeholder: undefined,\n label: undefined,\n preferredCountries: undefined,\n ignoredCountries: undefined,\n onlyCountries: undefined,\n translations: undefined,\n customCountriesList: undefined,\n countryLocale: undefined,\n countrySelectorWidth: '9rem',\n noFormattingAsYouType: false,\n autoFormat: true,\n excludeSelectors: undefined,\n orientation: 'responsive',\n searchThreshold: 0.75,\n noExample: false,\n countrySelectAttributes: () => ({\n name: 'country',\n autocomplete: 'off',\n }),\n phoneInputAttributes: () => ({\n name: 'phone',\n autocomplete: 'tel',\n inputmode: 'tel',\n }),\n})\n\nconst emits = defineEmits<{\n /**\n * emitted when country or phone number changes\n * @property {string} phoneNumber - phoneNumber formatted\n */\n 'update:model-value': [value: string | undefined | null]\n /**\n * emitted when selected country changes\n * @property {CountryCode} countryCode - Country code\n */\n 'country-code': [countryCode?: CountryCode | undefined | null]\n /**\n * emitted when country changes\n * @property {CountryCode} countryCode - Country code\n */\n 'update:country-code': [countryCode?: CountryCode | undefined | null]\n /**\n * emitted when country or phone number changes\n * @property {Results} results - metadata of current phone number\n * @deprecated use data instead\n */\n 'update': [results: Results]\n /**\n * emitted when country or phone number changes\n * @property {Results} results - metadata of current phone number\n */\n 'data': [results: Results]\n}>()\n\nconst CountrySelector = defineAsyncComponent(() => import('@components/MazInputPhoneNumber/CountrySelector.vue'))\nconst PhoneInput = defineAsyncComponent(() => import('@components/MazInputPhoneNumber/PhoneInput.vue'))\n\nexport interface MazInputPhoneNumberProps {\n /** Style attribut of the component root element */\n style?: HTMLAttributes['style']\n /** Class attribut of the component root element */\n class?: HTMLAttributes['class']\n /** @model Country calling code + telephone number in international format */\n modelValue?: string | undefined | null\n /** @deprecated */\n defaultPhoneNumber?: string | undefined | null\n /** @model Country code selected - Ex: \"FR\" */\n countryCode?: CountryCode | undefined | null\n /** @deprecated - use country-code or v-model:country-code */\n defaultCountryCode?: CountryCode | undefined | null\n /** Id of the component */\n id?: string\n /** Placeholder of the input */\n placeholder?: string\n /** label of the input */\n label?: string\n /** List of country codes to place first in the select list - Ex: ['FR', 'BE', 'GE'] */\n preferredCountries?: CountryCode[]\n /** List of country codes to be removed from the select list - Ex: ['FR', 'BE', 'GE'] */\n ignoredCountries?: CountryCode[]\n /** List of country codes to only have the countries selected in the select list - Ex: ['FR', 'BE', 'GE'] */\n onlyCountries?: CountryCode[]\n /** Locale strings of the component */\n translations?: Partial<MazInputPhoneNumberTranslations>\n /** Position where the list of countries will be opened */\n listPosition?: Position\n /** Component color applied - Ex: \"secondary\" */\n color?: Color\n /** Component size applied - Ex: \"sm\" */\n size?: Size\n /** Remove flags in country list */\n noFlags?: boolean\n /** Disable input */\n disabled?: boolean\n /** No show the phone number example */\n noExample?: boolean\n /** Disable search input in country list */\n noSearch?: boolean\n /**\n * Threshold of the search input in country list where 1 is a perfect match and 0 is a match with any character\n * @default 0.75\n */\n searchThreshold?: number\n /** By default the component use the browser locale to set the default country code if not country code is provided */\n noUseBrowserLocale?: boolean\n /** The component will make a request (https://ipwho.is) to get the location of the user and use it to set the default country code */\n fetchCountry?: boolean\n /** No show the country selector */\n noCountrySelector?: boolean\n /** Show country calling code in the country list */\n showCodeOnList?: boolean\n /** Replace country names */\n customCountriesList?: Record<CountryCode, string>\n /**\n * Disabled auto-format when phone is valid\n * @default true\n */\n autoFormat?: boolean\n /**\n * Disabled auto-format as you type\n * @default false\n * @deprecated use autoFormat instead\n */\n noFormattingAsYouType?: boolean\n /**\n * locale of country list - Ex: \"fr-FR\"\n * @default {string} browser locale\n */\n countryLocale?: string\n /** Disable validation error UI */\n noValidationError?: boolean\n /** Disable validation success UI */\n noValidationSuccess?: boolean\n /** Add success UI */\n success?: boolean\n /** Add error UI */\n error?: boolean\n /** Will replace the calling code by the country name in the country selector */\n countrySelectorDisplayName?: boolean\n /** Choose the width of the country selector */\n countrySelectorWidth?: string\n /** The input will be displayed in full width */\n block?: boolean\n /** Exclude selectors to close country selector list - usefull when you using custom flag */\n excludeSelectors?: string[]\n /**\n * Orientation of the inputs in the component\n * @default \"responsive\"\n * @values \"row\" | \"col\" | \"responsive\"\n */\n orientation?: 'row' | 'col' | 'responsive'\n /**\n * Meta attributes of the country input\n * @default `{Record<string, unknown>}` `{ autocomplete: 'off', name: 'country' }`\n */\n countrySelectAttributes?: Record<string, unknown>\n /**\n * Meta attributes of the phone number input\n * @default `{Record<string, unknown>}` `{ autocomplete: 'tel', name: 'phone', inputmode: 'tel' }`\n */\n phoneInputAttributes?: Record<string, unknown>\n}\n\n/** Composables */\nconst { fetchCountryCode, getBrowserLocale } = useMazInputPhoneNumber()\nconst { isCountryAvailable, getPhoneNumberResults } = useLibphonenumber()\n\nconst instanceId = useInstanceUniqId({\n componentName: 'MazInputPhoneNumber',\n providedId: props.id,\n})\n\n/** Models */\n\nconst phoneNumber = ref<string | undefined | null>()\nconst selectedCountry = ref<CountryCode | undefined | null>()\n\n/** State */\nconst isPhoneNumberInternalUpdate = ref(false)\nconst isCountryInternalUpdate = ref(false)\nconst locales = computed(() => ({\n ...defaultLocales,\n ...props.translations,\n}))\nconst hasAutoFormat = computed(() => props.autoFormat && !props.noFormattingAsYouType)\n\nconst results = ref<Results>({\n isValid: false,\n countryCode: props.countryCode ?? props.defaultCountryCode,\n phoneNumber: props.modelValue,\n})\nconst PhoneInputRef = ref<ComponentPublicInstance>()\n\n/** Logic */\n\nonBeforeMount(async () => {\n if ((props.countryCode || props.defaultCountryCode) && !selectedCountry.value) {\n onCountryChanged({ countryCode: props.countryCode ?? props.defaultCountryCode })\n }\n\n if (props.fetchCountry && !selectedCountry.value) {\n const countryCode = await fetchCountryCode()\n onCountryChanged({ countryCode: countryCode as CountryCode })\n }\n})\n\nonMounted(() => {\n if (!selectedCountry.value && !props.noUseBrowserLocale) {\n const countryCode = getBrowserLocale()?.locale\n onCountryChanged({ countryCode: countryCode as CountryCode })\n }\n})\n\nfunction updateTheResults({\n phone = phoneNumber.value || props.modelValue,\n countryCode = selectedCountry.value,\n checkCountryCode = false,\n}: {\n phone?: string | undefined | null\n countryCode?: CountryCode | undefined | null\n checkCountryCode?: boolean\n}) {\n results.value = getPhoneNumberResults({\n phoneNumber: phone,\n countryCode,\n checkCountryCode,\n })\n}\n\nfunction getPhoneNumberInput() {\n return PhoneInputRef.value?.$el.querySelector('input') as HTMLInputElement | undefined\n}\n\nasync function selectPhoneNumberInput() {\n await nextTick()\n getPhoneNumberInput()?.select()\n}\n\nfunction setSelectedCountry(countryCode?: string | undefined | null) {\n if (!countryCode) {\n return\n }\n\n if (!isCountryAvailable(countryCode)) {\n console.warn(`[MazInputPhoneNumber] Country code not available: \"${countryCode}\"`)\n selectedCountry.value = undefined\n return\n }\n\n selectedCountry.value = countryCode as CountryCode\n}\n\nfunction onPhoneNumberChanged({\n newPhoneNumber,\n}: {\n newPhoneNumber?: string | undefined | null\n}) {\n updateTheResults({ phone: newPhoneNumber })\n\n if (results.value.parsedCountryCode && results.value.parsedCountryCode !== selectedCountry.value) {\n onCountryChanged({\n countryCode: results.value.parsedCountryCode,\n updateResults: false,\n })\n }\n\n if (results.value.isValid && hasAutoFormat.value) {\n phoneNumber.value = results.value.formatNational?.trim().replaceAll(new RegExp(/\\D/g), '')\n }\n else {\n phoneNumber.value = newPhoneNumber\n }\n\n isPhoneNumberInternalUpdate.value = true\n\n if (results.value.e164) {\n emits('update:model-value', results.value.e164)\n }\n else {\n emits('update:model-value', results.value.phoneNumber)\n }\n\n setTimeout(() => {\n isPhoneNumberInternalUpdate.value = false\n }, 0)\n}\n\nfunction onCountryChanged({\n countryCode,\n updateResults = true,\n selectPhoneNumber = false,\n}: {\n countryCode?: CountryCode | undefined | null\n updateResults?: boolean\n selectPhoneNumber?: boolean\n}) {\n if (!countryCode) {\n selectedCountry.value = undefined\n return\n }\n\n isCountryInternalUpdate.value = true\n\n if (countryCode !== selectedCountry.value) {\n setSelectedCountry(countryCode)\n }\n\n if (updateResults) {\n updateTheResults({\n countryCode: selectedCountry.value,\n checkCountryCode: true,\n })\n }\n\n const code = results.value.countryCode || results.value.parsedCountryCode\n emits('country-code', code)\n emits('update:country-code', code)\n\n if (selectPhoneNumber && !results.value.isValid) {\n selectPhoneNumberInput()\n }\n\n setTimeout(() => {\n isCountryInternalUpdate.value = false\n }, 0)\n}\n\n/** Watchers */\n\nwatch(\n () => props.modelValue ?? props.defaultPhoneNumber,\n (value, oldValue) => {\n if (!isPhoneNumberInternalUpdate.value && value !== oldValue && value !== phoneNumber.value) {\n onPhoneNumberChanged({ newPhoneNumber: value })\n }\n },\n { immediate: true },\n)\nwatch(\n () => props.countryCode ?? props.defaultCountryCode,\n (value, oldValue) => {\n if (!isCountryInternalUpdate.value && value && value !== oldValue && value !== selectedCountry.value) {\n onCountryChanged({ countryCode: value })\n }\n },\n { immediate: true },\n)\nwatch(\n results,\n (value) => {\n emits('update', value)\n emits('data', value)\n },\n { immediate: true },\n)\n\n/** Inject */\nexport interface MazInputPhoneNumberInjectedData {\n selectedCountry: typeof selectedCountry\n phoneNumber: typeof phoneNumber\n results: typeof results\n}\n\nprovide<MazInputPhoneNumberInjectedData>('data', {\n selectedCountry,\n phoneNumber,\n results,\n})\n</script>\n\n<template>\n <div\n class=\"m-phone-number-input m-reset-css\"\n :class=\"[props.class, { '--block': block }, orientation ? `--${orientation}` : undefined]\"\n :style\n >\n <CountrySelector\n v-if=\"!noCountrySelector\"\n :id=\"instanceId\"\n v-bind=\"countrySelectAttributes\"\n :model-value=\"selectedCountry\"\n :color\n :size\n :country-locale\n :country-selector-display-name\n :custom-countries-list\n :ignored-countries\n :list-position\n :no-flags\n :no-search\n :exclude-selectors\n :error=\"error || (!noValidationError ? !!phoneNumber && !selectedCountry : false)\"\n :success=\"success || (!noValidationSuccess ? results?.isValid : false)\"\n :locales\n :disabled\n :search-threshold\n :show-code-on-list\n :only-countries\n :preferred-countries\n :width=\"countrySelectorWidth\"\n @update:model-value=\"onCountryChanged({ countryCode: $event, selectPhoneNumber: true })\"\n >\n <template #no-results>\n <!--\n @slot Replace the \"no results\" icon in the country selector list\n -->\n <slot name=\"no-results\" />\n </template>\n <template #selector-flag=\"{ countryCode: codeCountry }\">\n <!--\n @slot Country selector flag\n @binding {String} country-code current selected country code Ex: `\"FR\"`\n -->\n <slot name=\"selector-flag\" :country-code=\"codeCountry\" />\n </template>\n <template #country-list-flag=\"{ isSelected, option }\">\n <!--\n @slot Country list flag\n @binding {String} country-code country code of option Ex: `\"FR\"`\n @binding {{ iso2: string; dialCode: string; name: string; }} option country data\n @binding {Boolean} is-selected `true` if option is selected\n -->\n <slot\n name=\"country-list-flag\"\n :country-code=\"option.iso2\"\n :option=\"option\"\n :is-selected=\"isSelected\"\n />\n </template>\n </CountrySelector>\n\n <PhoneInput\n :id=\"instanceId\"\n ref=\"PhoneInputRef\"\n :model-value=\"phoneNumber\"\n v-bind=\"{ ...$attrs, ...phoneInputAttributes }\"\n :color\n :size\n :auto-format=\"hasAutoFormat\"\n :no-example\n block\n :disabled\n :has-radius=\"!noCountrySelector\"\n :success=\"success || (!noValidationSuccess ? results.isValid : false)\"\n :error=\"error || (!noValidationError ? !!phoneNumber && !results.isValid : false)\"\n :locales\n :label\n :placeholder\n @update:model-value=\"onPhoneNumberChanged({ newPhoneNumber: $event })\"\n />\n </div>\n</template>\n\n<style lang=\"postcss\" scoped>\n .m-phone-number-input {\n @apply maz-relative maz-inline-flex maz-items-center maz-align-top;\n\n &.--block {\n @apply maz-w-full;\n }\n\n &.--col {\n @apply maz-flex-col;\n }\n\n &.--responsive {\n @apply maz-flex-col mob-m:maz-flex-row;\n }\n}\n</style>\n"],"names":["defaultLocales","examples","ref","isCountryAvailable","locale","response","isSupportedCountry","error","getPhoneNumberResults","phoneNumber","countryCode","checkCountryCode","parsedNumber","parsePhoneNumberFromString","isValid","isSameCountryCode","getPhoneNumberExamplesFile","data","getPhoneNumberExample","_a","getExampleNumber","getAsYouTypeFormat","AsYouType","isSameCountryCallingCode","countryCode2","getCountryCallingCode","loadExamples","useLibphonenumber","getCountries","getBrowserLocale","browserLocale","displayNamesInstance","displayNamesLocale","getCountryName","code","customCountriesNameListByIsoCode","getCountriesList","countriesList","isoList","iso2","name","dialCode","fetchCountryCode","reponse","country_code","sanitizePhoneNumber","input","regex","useMazInputPhoneNumber","props","__props","emits","__emit","CountrySelector","defineAsyncComponent","PhoneInput","instanceId","useInstanceUniqId","selectedCountry","isPhoneNumberInternalUpdate","isCountryInternalUpdate","locales","computed","hasAutoFormat","results","PhoneInputRef","onBeforeMount","onCountryChanged","onMounted","updateTheResults","phone","getPhoneNumberInput","selectPhoneNumberInput","nextTick","setSelectedCountry","onPhoneNumberChanged","newPhoneNumber","updateResults","selectPhoneNumber","watch","value","oldValue","provide"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MazInputPhoneNumber.BluSBPXE.mjs","sources":["../../src/components/MazInputPhoneNumber/default-locales.ts","../../src/components/MazInputPhoneNumber/useLibphonenumber.ts","../../src/components/MazInputPhoneNumber/useMazInputPhoneNumber.ts","../../src/components/MazInputPhoneNumber.vue"],"sourcesContent":["export const defaultLocales = {\n countrySelector: {\n placeholder: 'Country code',\n error: 'Choose country',\n searchPlaceholder: 'Search the country',\n },\n phoneInput: {\n placeholder: 'Phone number',\n example: 'Example:',\n },\n}\n","import type { Results } from './types'\nimport {\n AsYouType,\n type CountryCode,\n type Examples,\n getCountries,\n getCountryCallingCode,\n getExampleNumber,\n isSupportedCountry,\n parsePhoneNumberFromString,\n} from 'libphonenumber-js'\nimport { ref } from 'vue'\n\nconst examples = ref<Examples>()\n\nfunction isCountryAvailable(locale: string) {\n try {\n const response = isSupportedCountry(locale)\n\n if (!response) {\n console.error(`[maz-ui](MazInputPhoneNumber) The code country \"${locale}\" is not available`)\n\n return false\n }\n\n return response\n }\n catch (error) {\n console.error(`[maz-ui](MazInputPhoneNumber) ${error}`)\n return false\n }\n}\n\nfunction getPhoneNumberResults({\n phoneNumber,\n countryCode,\n checkCountryCode = false,\n}: {\n phoneNumber?: string | undefined | null\n countryCode?: CountryCode | undefined | null\n checkCountryCode?: boolean\n}): Results {\n try {\n if (!phoneNumber) {\n return {\n isValid: false,\n countryCode,\n }\n }\n\n const parsedNumber = parsePhoneNumberFromString(phoneNumber, countryCode ?? undefined)\n const isValid = parsedNumber?.isValid() ?? false\n\n const isSameCountryCode = countryCode && checkCountryCode ? parsedNumber?.country && countryCode === parsedNumber.country : true\n\n return {\n isValid: isValid && !!isSameCountryCode,\n countryCode,\n parsedCountryCode: parsedNumber?.country,\n isPossible: parsedNumber?.isPossible(),\n countryCallingCode: parsedNumber?.countryCallingCode,\n nationalNumber: parsedNumber?.nationalNumber,\n type: parsedNumber?.getType(),\n formatInternational: parsedNumber?.formatInternational(),\n formatNational: parsedNumber?.formatNational(),\n uri: parsedNumber?.getURI(),\n e164: parsedNumber?.format('E.164'),\n rfc3966: parsedNumber?.format('RFC3966'),\n possibleCountries: parsedNumber?.getPossibleCountries(),\n phoneNumber,\n }\n }\n catch (error) {\n throw new Error(`[MazInputPhoneNumber](getResultsFromPhoneNumber) ${error}`)\n }\n}\n\nasync function getPhoneNumberExamplesFile() {\n const { default: data } = await import('libphonenumber-js/examples.mobile.json')\n\n return data\n}\n\nfunction getPhoneNumberExample(countryCode?: CountryCode | undefined | null) {\n try {\n if (!examples.value) {\n return\n }\n\n return countryCode ? getExampleNumber(countryCode, examples.value)?.formatNational() : undefined\n }\n catch (error) {\n console.error(`[maz-ui](MazInputPhoneNumber) ${error}`)\n }\n}\n\nfunction getAsYouTypeFormat(countryCode?: CountryCode | undefined | null, phoneNumber?: string | undefined | null): string | undefined {\n try {\n if (!phoneNumber || !countryCode) {\n return\n }\n\n const asYouTypeInstance = new AsYouType(countryCode)\n\n return asYouTypeInstance.input(phoneNumber)\n }\n catch (error) {\n throw new Error(`[MazInputPhoneNumber](getAsYouTypeFormat) ${error}`)\n }\n}\n\nfunction isSameCountryCallingCode(countryCode: CountryCode, countryCode2: CountryCode) {\n return getCountryCallingCode(countryCode) === getCountryCallingCode(countryCode2)\n}\n\nasync function loadExamples() {\n try {\n if (examples.value)\n return\n\n examples.value = await getPhoneNumberExamplesFile()\n }\n catch (error) {\n console.error('[maz-ui](MazInputPhoneNumber) while loading phone number examples file', error)\n }\n}\n\nexport function useLibphonenumber() {\n return {\n examples,\n getAsYouTypeFormat,\n getPhoneNumberResults,\n getPhoneNumberExamplesFile,\n getPhoneNumberExample,\n isSameCountryCallingCode,\n isCountryAvailable,\n getCountries,\n getCountryCallingCode,\n loadExamples,\n }\n}\n","import type { Country, IpWhoResponse } from './types'\nimport { type CountryCode, getCountries, getCountryCallingCode } from 'libphonenumber-js'\n\nfunction getBrowserLocale() {\n if (typeof window === 'undefined') {\n return\n }\n\n const browserLocale = window.navigator.language\n\n if (!browserLocale) {\n return\n }\n\n let locale = browserLocale.slice(3, 7).toUpperCase()\n\n if (locale === '') {\n locale = browserLocale.slice(0, 2).toUpperCase()\n }\n\n if (locale === 'EN') {\n locale = 'US'\n }\n if (locale === 'JA') {\n locale = 'JP'\n }\n\n return {\n locale,\n browserLocale,\n }\n}\n\nlet displayNamesInstance: Intl.DisplayNames | undefined\nlet displayNamesLocale: string | undefined\n\nfunction getCountryName(\n locale: string,\n code: CountryCode | string,\n customCountriesNameListByIsoCode?: Record<CountryCode, string>,\n): string | undefined {\n if (customCountriesNameListByIsoCode?.[code]) {\n return customCountriesNameListByIsoCode[code]\n }\n\n if (displayNamesLocale !== locale || !displayNamesInstance) {\n displayNamesLocale = locale\n displayNamesInstance = new Intl.DisplayNames([locale], { type: 'region' })\n }\n\n return displayNamesInstance.of(code)\n}\n\nfunction getCountriesList(\n locale?: string,\n customCountriesNameListByIsoCode?: Record<CountryCode, string>,\n): Country[] | undefined {\n const countriesList: Country[] = []\n const isoList = getCountries()\n\n locale = locale ?? getBrowserLocale()?.browserLocale ?? 'en-US'\n\n for (const iso2 of isoList) {\n const name = getCountryName(locale, iso2, customCountriesNameListByIsoCode)\n\n if (name) {\n try {\n const dialCode = getCountryCallingCode(iso2)\n countriesList.push({\n iso2,\n dialCode,\n name,\n })\n }\n catch (error) {\n console.error(`[MazInputPhoneNumber](getCountryCallingCode) ${error}`)\n }\n }\n }\n\n return countriesList\n}\n\nasync function fetchCountryCode() {\n try {\n const reponse = await fetch('https://ipwho.is')\n const { country_code } = (await reponse.json()) as IpWhoResponse\n\n return country_code\n }\n catch (error) {\n throw new Error(`[MazInputPhoneNumber](fetchCountryCode) ${error}`)\n }\n}\n\nfunction sanitizePhoneNumber(input?: string | undefined | null) {\n if (!input) {\n return ''\n }\n const regex = new RegExp(/[^\\d ()+-]/g) // Keep only digits, (), - and + characters\n\n return input.replaceAll(regex, '').trim()\n}\n\nexport function useMazInputPhoneNumber() {\n return {\n sanitizePhoneNumber,\n fetchCountryCode,\n getBrowserLocale,\n getCountriesList,\n }\n}\n","<script lang=\"ts\" setup>\nimport type { CountryCode } from 'libphonenumber-js'\nimport type { MazInputPhoneNumberTranslations, Results } from './MazInputPhoneNumber/types'\nimport type { Color, Position, Size } from './types'\nimport {\n type ComponentPublicInstance,\n computed,\n defineAsyncComponent,\n type HTMLAttributes,\n nextTick,\n onBeforeMount,\n onMounted,\n provide,\n ref,\n watch,\n} from 'vue'\nimport { useInstanceUniqId } from '../composables/useInstanceUniqId'\nimport { defaultLocales } from './MazInputPhoneNumber/default-locales'\n\nimport { useLibphonenumber } from './MazInputPhoneNumber/useLibphonenumber'\nimport { useMazInputPhoneNumber } from './MazInputPhoneNumber/useMazInputPhoneNumber'\n\ndefineOptions({\n name: 'MazInputPhoneNumber',\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<MazInputPhoneNumberProps>(), {\n class: undefined,\n style: undefined,\n listPosition: 'bottom left',\n color: 'primary',\n size: 'md',\n modelValue: undefined,\n /** @deprecated */\n defaultPhoneNumber: undefined,\n countryCode: undefined,\n /** @deprecated */\n defaultCountryCode: undefined,\n id: undefined,\n placeholder: undefined,\n label: undefined,\n preferredCountries: undefined,\n ignoredCountries: undefined,\n onlyCountries: undefined,\n translations: undefined,\n customCountriesList: undefined,\n countryLocale: undefined,\n countrySelectorWidth: '9rem',\n noFormattingAsYouType: false,\n autoFormat: true,\n excludeSelectors: undefined,\n orientation: 'responsive',\n searchThreshold: 0.75,\n noExample: false,\n countrySelectAttributes: () => ({\n name: 'country',\n autocomplete: 'off',\n }),\n phoneInputAttributes: () => ({\n name: 'phone',\n autocomplete: 'tel',\n inputmode: 'tel',\n }),\n})\n\nconst emits = defineEmits<{\n /**\n * emitted when country or phone number changes\n * @property {string} phoneNumber - phoneNumber formatted\n */\n 'update:model-value': [value: string | undefined | null]\n /**\n * emitted when selected country changes\n * @property {CountryCode} countryCode - Country code\n */\n 'country-code': [countryCode?: CountryCode | undefined | null]\n /**\n * emitted when country changes\n * @property {CountryCode} countryCode - Country code\n */\n 'update:country-code': [countryCode?: CountryCode | undefined | null]\n /**\n * emitted when country or phone number changes\n * @property {Results} results - metadata of current phone number\n * @deprecated use data instead\n */\n 'update': [results: Results]\n /**\n * emitted when country or phone number changes\n * @property {Results} results - metadata of current phone number\n */\n 'data': [results: Results]\n}>()\n\nconst CountrySelector = defineAsyncComponent(() => import('./MazInputPhoneNumber/CountrySelector.vue'))\nconst PhoneInput = defineAsyncComponent(() => import('./MazInputPhoneNumber/PhoneInput.vue'))\n\nexport interface MazInputPhoneNumberProps {\n /** Style attribut of the component root element */\n style?: HTMLAttributes['style']\n /** Class attribut of the component root element */\n class?: HTMLAttributes['class']\n /** @model Country calling code + telephone number in international format */\n modelValue?: string | undefined | null\n /** @deprecated */\n defaultPhoneNumber?: string | undefined | null\n /** @model Country code selected - Ex: \"FR\" */\n countryCode?: CountryCode | undefined | null\n /** @deprecated - use country-code or v-model:country-code */\n defaultCountryCode?: CountryCode | undefined | null\n /** Id of the component */\n id?: string\n /** Placeholder of the input */\n placeholder?: string\n /** label of the input */\n label?: string\n /** List of country codes to place first in the select list - Ex: ['FR', 'BE', 'GE'] */\n preferredCountries?: CountryCode[]\n /** List of country codes to be removed from the select list - Ex: ['FR', 'BE', 'GE'] */\n ignoredCountries?: CountryCode[]\n /** List of country codes to only have the countries selected in the select list - Ex: ['FR', 'BE', 'GE'] */\n onlyCountries?: CountryCode[]\n /** Locale strings of the component */\n translations?: Partial<MazInputPhoneNumberTranslations>\n /** Position where the list of countries will be opened */\n listPosition?: Position\n /** Component color applied - Ex: \"secondary\" */\n color?: Color\n /** Component size applied - Ex: \"sm\" */\n size?: Size\n /** Remove flags in country list */\n noFlags?: boolean\n /** Disable input */\n disabled?: boolean\n /** No show the phone number example */\n noExample?: boolean\n /** Disable search input in country list */\n noSearch?: boolean\n /**\n * Threshold of the search input in country list where 1 is a perfect match and 0 is a match with any character\n * @default 0.75\n */\n searchThreshold?: number\n /** By default the component use the browser locale to set the default country code if not country code is provided */\n noUseBrowserLocale?: boolean\n /** The component will make a request (https://ipwho.is) to get the location of the user and use it to set the default country code */\n fetchCountry?: boolean\n /** No show the country selector */\n noCountrySelector?: boolean\n /** Show country calling code in the country list */\n showCodeOnList?: boolean\n /** Replace country names */\n customCountriesList?: Record<CountryCode, string>\n /**\n * Disabled auto-format when phone is valid\n * @default true\n */\n autoFormat?: boolean\n /**\n * Disabled auto-format as you type\n * @default false\n * @deprecated use autoFormat instead\n */\n noFormattingAsYouType?: boolean\n /**\n * locale of country list - Ex: \"fr-FR\"\n * @default {string} browser locale\n */\n countryLocale?: string\n /** Disable validation error UI */\n noValidationError?: boolean\n /** Disable validation success UI */\n noValidationSuccess?: boolean\n /** Add success UI */\n success?: boolean\n /** Add error UI */\n error?: boolean\n /** Will replace the calling code by the country name in the country selector */\n countrySelectorDisplayName?: boolean\n /** Choose the width of the country selector */\n countrySelectorWidth?: string\n /** The input will be displayed in full width */\n block?: boolean\n /** Exclude selectors to close country selector list - usefull when you using custom flag */\n excludeSelectors?: string[]\n /**\n * Orientation of the inputs in the component\n * @default \"responsive\"\n * @values \"row\" | \"col\" | \"responsive\"\n */\n orientation?: 'row' | 'col' | 'responsive'\n /**\n * Meta attributes of the country input\n * @default `{Record<string, unknown>}` `{ autocomplete: 'off', name: 'country' }`\n */\n countrySelectAttributes?: Record<string, unknown>\n /**\n * Meta attributes of the phone number input\n * @default `{Record<string, unknown>}` `{ autocomplete: 'tel', name: 'phone', inputmode: 'tel' }`\n */\n phoneInputAttributes?: Record<string, unknown>\n}\n\n/** Composables */\nconst { fetchCountryCode, getBrowserLocale } = useMazInputPhoneNumber()\nconst { isCountryAvailable, getPhoneNumberResults } = useLibphonenumber()\n\nconst instanceId = useInstanceUniqId({\n componentName: 'MazInputPhoneNumber',\n providedId: props.id,\n})\n\n/** Models */\n\nconst phoneNumber = ref<string | undefined | null>()\nconst selectedCountry = ref<CountryCode | undefined | null>()\n\n/** State */\nconst isPhoneNumberInternalUpdate = ref(false)\nconst isCountryInternalUpdate = ref(false)\nconst locales = computed(() => ({\n ...defaultLocales,\n ...props.translations,\n}))\nconst hasAutoFormat = computed(() => props.autoFormat && !props.noFormattingAsYouType)\n\nconst results = ref<Results>({\n isValid: false,\n countryCode: props.countryCode ?? props.defaultCountryCode,\n phoneNumber: props.modelValue,\n})\nconst PhoneInputRef = ref<ComponentPublicInstance>()\n\n/** Logic */\n\nonBeforeMount(async () => {\n if ((props.countryCode || props.defaultCountryCode) && !selectedCountry.value) {\n onCountryChanged({ countryCode: props.countryCode ?? props.defaultCountryCode })\n }\n\n if (props.fetchCountry && !selectedCountry.value) {\n const countryCode = await fetchCountryCode()\n onCountryChanged({ countryCode: countryCode as CountryCode })\n }\n})\n\nonMounted(() => {\n if (!selectedCountry.value && !props.noUseBrowserLocale) {\n const countryCode = getBrowserLocale()?.locale\n onCountryChanged({ countryCode: countryCode as CountryCode })\n }\n})\n\nfunction updateTheResults({\n phone = phoneNumber.value || props.modelValue,\n countryCode = selectedCountry.value,\n checkCountryCode = false,\n}: {\n phone?: string | undefined | null\n countryCode?: CountryCode | undefined | null\n checkCountryCode?: boolean\n}) {\n results.value = getPhoneNumberResults({\n phoneNumber: phone,\n countryCode,\n checkCountryCode,\n })\n}\n\nfunction getPhoneNumberInput() {\n return PhoneInputRef.value?.$el.querySelector('input') as HTMLInputElement | undefined\n}\n\nasync function selectPhoneNumberInput() {\n await nextTick()\n getPhoneNumberInput()?.select()\n}\n\nfunction setSelectedCountry(countryCode?: string | undefined | null) {\n if (!countryCode) {\n return\n }\n\n if (!isCountryAvailable(countryCode)) {\n console.warn(`[MazInputPhoneNumber] Country code not available: \"${countryCode}\"`)\n selectedCountry.value = undefined\n return\n }\n\n selectedCountry.value = countryCode as CountryCode\n}\n\nfunction onPhoneNumberChanged({\n newPhoneNumber,\n}: {\n newPhoneNumber?: string | undefined | null\n}) {\n updateTheResults({ phone: newPhoneNumber })\n\n if (results.value.parsedCountryCode && results.value.parsedCountryCode !== selectedCountry.value) {\n onCountryChanged({\n countryCode: results.value.parsedCountryCode,\n updateResults: false,\n })\n }\n\n if (results.value.isValid && hasAutoFormat.value) {\n phoneNumber.value = results.value.formatNational?.trim().replaceAll(new RegExp(/\\D/g), '')\n }\n else {\n phoneNumber.value = newPhoneNumber\n }\n\n isPhoneNumberInternalUpdate.value = true\n\n if (results.value.e164) {\n emits('update:model-value', results.value.e164)\n }\n else {\n emits('update:model-value', results.value.phoneNumber)\n }\n\n setTimeout(() => {\n isPhoneNumberInternalUpdate.value = false\n }, 0)\n}\n\nfunction onCountryChanged({\n countryCode,\n updateResults = true,\n selectPhoneNumber = false,\n}: {\n countryCode?: CountryCode | undefined | null\n updateResults?: boolean\n selectPhoneNumber?: boolean\n}) {\n if (!countryCode) {\n selectedCountry.value = undefined\n return\n }\n\n isCountryInternalUpdate.value = true\n\n if (countryCode !== selectedCountry.value) {\n setSelectedCountry(countryCode)\n }\n\n if (updateResults) {\n updateTheResults({\n countryCode: selectedCountry.value,\n checkCountryCode: true,\n })\n }\n\n const code = results.value.countryCode || results.value.parsedCountryCode\n emits('country-code', code)\n emits('update:country-code', code)\n\n if (selectPhoneNumber && !results.value.isValid) {\n selectPhoneNumberInput()\n }\n\n setTimeout(() => {\n isCountryInternalUpdate.value = false\n }, 0)\n}\n\n/** Watchers */\n\nwatch(\n () => props.modelValue ?? props.defaultPhoneNumber,\n (value, oldValue) => {\n if (!isPhoneNumberInternalUpdate.value && value !== oldValue && value !== phoneNumber.value) {\n onPhoneNumberChanged({ newPhoneNumber: value })\n }\n },\n { immediate: true },\n)\nwatch(\n () => props.countryCode ?? props.defaultCountryCode,\n (value, oldValue) => {\n if (!isCountryInternalUpdate.value && value && value !== oldValue && value !== selectedCountry.value) {\n onCountryChanged({ countryCode: value })\n }\n },\n { immediate: true },\n)\nwatch(\n results,\n (value) => {\n emits('update', value)\n emits('data', value)\n },\n { immediate: true },\n)\n\n/** Inject */\nexport interface MazInputPhoneNumberInjectedData {\n selectedCountry: typeof selectedCountry\n phoneNumber: typeof phoneNumber\n results: typeof results\n}\n\nprovide<MazInputPhoneNumberInjectedData>('data', {\n selectedCountry,\n phoneNumber,\n results,\n})\n</script>\n\n<template>\n <div\n class=\"m-phone-number-input m-reset-css\"\n :class=\"[props.class, { '--block': block }, orientation ? `--${orientation}` : undefined]\"\n :style\n >\n <CountrySelector\n v-if=\"!noCountrySelector\"\n :id=\"instanceId\"\n v-bind=\"countrySelectAttributes\"\n :model-value=\"selectedCountry\"\n :color\n :size\n :country-locale\n :country-selector-display-name\n :custom-countries-list\n :ignored-countries\n :list-position\n :no-flags\n :no-search\n :exclude-selectors\n :error=\"error || (!noValidationError ? !!phoneNumber && !selectedCountry : false)\"\n :success=\"success || (!noValidationSuccess ? results?.isValid : false)\"\n :locales\n :disabled\n :search-threshold\n :show-code-on-list\n :only-countries\n :preferred-countries\n :width=\"countrySelectorWidth\"\n @update:model-value=\"onCountryChanged({ countryCode: $event, selectPhoneNumber: true })\"\n >\n <template #no-results>\n <!--\n @slot Replace the \"no results\" icon in the country selector list\n -->\n <slot name=\"no-results\" />\n </template>\n <template #selector-flag=\"{ countryCode: codeCountry }\">\n <!--\n @slot Country selector flag\n @binding {String} country-code current selected country code Ex: `\"FR\"`\n -->\n <slot name=\"selector-flag\" :country-code=\"codeCountry\" />\n </template>\n <template #country-list-flag=\"{ isSelected, option }\">\n <!--\n @slot Country list flag\n @binding {String} country-code country code of option Ex: `\"FR\"`\n @binding {{ iso2: string; dialCode: string; name: string; }} option country data\n @binding {Boolean} is-selected `true` if option is selected\n -->\n <slot\n name=\"country-list-flag\"\n :country-code=\"option.iso2\"\n :option=\"option\"\n :is-selected=\"isSelected\"\n />\n </template>\n </CountrySelector>\n\n <PhoneInput\n :id=\"instanceId\"\n ref=\"PhoneInputRef\"\n :model-value=\"phoneNumber\"\n v-bind=\"{ ...$attrs, ...phoneInputAttributes }\"\n :color\n :size\n :auto-format=\"hasAutoFormat\"\n :no-example\n block\n :disabled\n :has-radius=\"!noCountrySelector\"\n :success=\"success || (!noValidationSuccess ? results.isValid : false)\"\n :error=\"error || (!noValidationError ? !!phoneNumber && !results.isValid : false)\"\n :locales\n :label\n :placeholder\n @update:model-value=\"onPhoneNumberChanged({ newPhoneNumber: $event })\"\n />\n </div>\n</template>\n\n<style lang=\"postcss\" scoped>\n .m-phone-number-input {\n @apply maz-relative maz-inline-flex maz-items-center maz-align-top;\n\n &.--block {\n @apply maz-w-full;\n }\n\n &.--col {\n @apply maz-flex-col;\n }\n\n &.--responsive {\n @apply maz-flex-col mob-m:maz-flex-row;\n }\n}\n</style>\n"],"names":["defaultLocales","examples","ref","isCountryAvailable","locale","response","isSupportedCountry","error","getPhoneNumberResults","phoneNumber","countryCode","checkCountryCode","parsedNumber","parsePhoneNumberFromString","isValid","isSameCountryCode","getPhoneNumberExamplesFile","data","getPhoneNumberExample","_a","getExampleNumber","getAsYouTypeFormat","AsYouType","isSameCountryCallingCode","countryCode2","getCountryCallingCode","loadExamples","useLibphonenumber","getCountries","getBrowserLocale","browserLocale","displayNamesInstance","displayNamesLocale","getCountryName","code","customCountriesNameListByIsoCode","getCountriesList","countriesList","isoList","iso2","name","dialCode","fetchCountryCode","reponse","country_code","sanitizePhoneNumber","input","regex","useMazInputPhoneNumber","props","__props","emits","__emit","CountrySelector","defineAsyncComponent","PhoneInput","instanceId","useInstanceUniqId","selectedCountry","isPhoneNumberInternalUpdate","isCountryInternalUpdate","locales","computed","hasAutoFormat","results","PhoneInputRef","onBeforeMount","onCountryChanged","onMounted","updateTheResults","phone","getPhoneNumberInput","selectPhoneNumberInput","nextTick","setSelectedCountry","onPhoneNumberChanged","newPhoneNumber","updateResults","selectPhoneNumber","watch","value","oldValue","provide"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";require('../assets/MazInputPhoneNumber.DKac4ZYj.css');const n=require("vue"),c=require("libphonenumber-js"),q=require("../composables/useInstanceUniqId.cjs"),Y=require("./_plugin-vue_export-helper.BHFhmbuH.cjs"),D={countrySelector:{placeholder:"Country code",error:"Choose country",searchPlaceholder:"Search the country"},phoneInput:{placeholder:"Phone number",example:"Example:"}},C=n.ref();function J(t){try{const r=c.isSupportedCountry(t);return r||(console.error(`[maz-ui](MazInputPhoneNumber) The code country "${t}" is not available`),!1)}catch(r){return console.error(`[maz-ui](MazInputPhoneNumber) ${r}`),!1}}function O({phoneNumber:t,countryCode:r,checkCountryCode:l=!1}){try{if(!t)return{isValid:!1,countryCode:r};const o=c.parsePhoneNumberFromString(t,r??void 0),p=(o==null?void 0:o.isValid())??!1,f=r&&l?(o==null?void 0:o.country)&&r===o.country:!0;return{isValid:p&&!!f,countryCode:r,parsedCountryCode:o==null?void 0:o.country,isPossible:o==null?void 0:o.isPossible(),countryCallingCode:o==null?void 0:o.countryCallingCode,nationalNumber:o==null?void 0:o.nationalNumber,type:o==null?void 0:o.getType(),formatInternational:o==null?void 0:o.formatInternational(),formatNational:o==null?void 0:o.formatNational(),uri:o==null?void 0:o.getURI(),e164:o==null?void 0:o.format("E.164"),rfc3966:o==null?void 0:o.format("RFC3966"),possibleCountries:o==null?void 0:o.getPossibleCountries(),phoneNumber:t}}catch(o){throw new Error(`[MazInputPhoneNumber](getResultsFromPhoneNumber) ${o}`)}}async function E(){const{default:t}=await Promise.resolve().then(()=>require("./examples.mobile.json.CHzJNb4E.cjs"));return t}function W(t){var r;try{return C.value&&t?(r=c.getExampleNumber(t,C.value))==null?void 0:r.formatNational():void 0}catch(l){console.error(`[maz-ui](MazInputPhoneNumber) ${l}`)}}function j(t,r){try{return!r||!t?void 0:new c.AsYouType(t).input(r)}catch(l){throw new Error(`[MazInputPhoneNumber](getAsYouTypeFormat) ${l}`)}}function H(t,r){return c.getCountryCallingCode(t)===c.getCountryCallingCode(r)}async function G(){try{if(C.value)return;C.value=await E()}catch(t){console.error("[maz-ui](MazInputPhoneNumber) while loading phone number examples file",t)}}function M(){return{examples:C,getAsYouTypeFormat:j,getPhoneNumberResults:O,getPhoneNumberExamplesFile:E,getPhoneNumberExample:W,isSameCountryCallingCode:H,isCountryAvailable:J,getCountries:c.getCountries,getCountryCallingCode:c.getCountryCallingCode,loadExamples:G}}function T(){if(typeof window>"u")return;const t=window.navigator.language;if(!t)return;let r=t.slice(3,7).toUpperCase();return r===""&&(r=t.slice(0,2).toUpperCase()),r==="EN"&&(r="US"),r==="JA"&&(r="JP"),{locale:r,browserLocale:t}}let P,A;function K(t,r,l){return l!=null&&l[r]?l[r]:((A!==t||!P)&&(A=t,P=new Intl.DisplayNames([t],{type:"region"})),P.of(r))}function Q(t,r){var p;const l=[],o=c.getCountries();t=t??((p=T())==null?void 0:p.browserLocale)??"en-US";for(const f of o){const v=K(t,f,r);if(v)try{const m=c.getCountryCallingCode(f);l.push({iso2:f,dialCode:m,name:v})}catch(m){console.error(`[MazInputPhoneNumber](getCountryCallingCode) ${m}`)}}return l}async function X(){try{const t=await fetch("https://ipwho.is"),{country_code:r}=await t.json();return r}catch(t){throw new Error(`[MazInputPhoneNumber](fetchCountryCode) ${t}`)}}function Z(t){if(!t)return"";const r=new RegExp(/[^\d ()+-]/g);return t.replaceAll(r,"").trim()}function L(){return{sanitizePhoneNumber:Z,fetchCountryCode:X,getBrowserLocale:T,getCountriesList:Q}}const x=n.defineComponent({name:"MazInputPhoneNumber",inheritAttrs:!1,__name:"MazInputPhoneNumber",props:{style:{default:void 0},class:{default:void 0},modelValue:{default:void 0},defaultPhoneNumber:{default:void 0},countryCode:{default:void 0},defaultCountryCode:{default:void 0},id:{default:void 0},placeholder:{default:void 0},label:{default:void 0},preferredCountries:{default:void 0},ignoredCountries:{default:void 0},onlyCountries:{default:void 0},translations:{default:void 0},listPosition:{default:"bottom left"},color:{default:"primary"},size:{default:"md"},noFlags:{type:Boolean},disabled:{type:Boolean},noExample:{type:Boolean,default:!1},noSearch:{type:Boolean},searchThreshold:{default:.75},noUseBrowserLocale:{type:Boolean},fetchCountry:{type:Boolean},noCountrySelector:{type:Boolean},showCodeOnList:{type:Boolean},customCountriesList:{default:void 0},autoFormat:{type:Boolean,default:!0},noFormattingAsYouType:{type:Boolean,default:!1},countryLocale:{default:void 0},noValidationError:{type:Boolean},noValidationSuccess:{type:Boolean},success:{type:Boolean},error:{type:Boolean},countrySelectorDisplayName:{type:Boolean},countrySelectorWidth:{default:"9rem"},block:{type:Boolean},excludeSelectors:{default:void 0},orientation:{default:"responsive"},countrySelectAttributes:{default:()=>({name:"country",autocomplete:"off"})},phoneInputAttributes:{default:()=>({name:"phone",autocomplete:"tel",inputmode:"tel"})}},emits:["update:model-value","country-code","update:country-code","update","data"],setup(t,{emit:r}){const l=t,o=r,p=n.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./CountrySelector.mFGaqpPf.cjs"))),f=n.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./PhoneInput.D5DG4S60.cjs"))),{fetchCountryCode:v,getBrowserLocale:m}=L(),{isCountryAvailable:$,getPhoneNumberResults:F}=M(),w=q.useInstanceUniqId({componentName:"MazInputPhoneNumber",providedId:l.id}),d=n.ref(),s=n.ref(),g=n.ref(!1),b=n.ref(!1),I=n.computed(()=>({...D,...l.translations})),S=n.computed(()=>l.autoFormat&&!l.noFormattingAsYouType),a=n.ref({isValid:!1,countryCode:l.countryCode??l.defaultCountryCode,phoneNumber:l.modelValue}),z=n.ref();n.onBeforeMount(async()=>{if((l.countryCode||l.defaultCountryCode)&&!s.value&&y({countryCode:l.countryCode??l.defaultCountryCode}),l.fetchCountry&&!s.value){const e=await v();y({countryCode:e})}}),n.onMounted(()=>{var e;if(!s.value&&!l.noUseBrowserLocale){const u=(e=m())==null?void 0:e.locale;y({countryCode:u})}});function V({phone:e=d.value||l.modelValue,countryCode:u=s.value,checkCountryCode:h=!1}){a.value=F({phoneNumber:e,countryCode:u,checkCountryCode:h})}function U(){var e;return(e=z.value)==null?void 0:e.$el.querySelector("input")}async function k(){var e;await n.nextTick(),(e=U())==null||e.select()}function R(e){if(e){if(!$(e)){console.warn(`[MazInputPhoneNumber] Country code not available: "${e}"`),s.value=void 0;return}s.value=e}}function B({newPhoneNumber:e}){var u;V({phone:e}),a.value.parsedCountryCode&&a.value.parsedCountryCode!==s.value&&y({countryCode:a.value.parsedCountryCode,updateResults:!1}),a.value.isValid&&S.value?d.value=(u=a.value.formatNational)==null?void 0:u.trim().replaceAll(new RegExp(/\D/g),""):d.value=e,g.value=!0,a.value.e164?o("update:model-value",a.value.e164):o("update:model-value",a.value.phoneNumber),setTimeout(()=>{g.value=!1},0)}function y({countryCode:e,updateResults:u=!0,selectPhoneNumber:h=!1}){if(!e){s.value=void 0;return}b.value=!0,e!==s.value&&R(e),u&&V({countryCode:s.value,checkCountryCode:!0});const i=a.value.countryCode||a.value.parsedCountryCode;o("country-code",i),o("update:country-code",i),h&&!a.value.isValid&&k(),setTimeout(()=>{b.value=!1},0)}return n.watch(()=>l.modelValue??l.defaultPhoneNumber,(e,u)=>{!g.value&&e!==u&&e!==d.value&&B({newPhoneNumber:e})},{immediate:!0}),n.watch(()=>l.countryCode??l.defaultCountryCode,(e,u)=>{!b.value&&e&&e!==u&&e!==s.value&&y({countryCode:e})},{immediate:!0}),n.watch(a,e=>{o("update",e),o("data",e)},{immediate:!0}),n.provide("data",{selectedCountry:s,phoneNumber:d,results:a}),(e,u)=>{var h;return n.openBlock(),n.createElementBlock("div",{class:n.normalizeClass(["m-phone-number-input m-reset-css",[l.class,{"--block":e.block},e.orientation?`--${e.orientation}`:void 0]]),style:n.normalizeStyle(e.style)},[e.noCountrySelector?n.createCommentVNode("",!0):(n.openBlock(),n.createBlock(n.unref(p),n.mergeProps({key:0,id:n.unref(w)},e.countrySelectAttributes,{"model-value":s.value,color:e.color,size:e.size,"country-locale":e.countryLocale,"country-selector-display-name":e.countrySelectorDisplayName,"custom-countries-list":e.customCountriesList,"ignored-countries":e.ignoredCountries,"list-position":e.listPosition,"no-flags":e.noFlags,"no-search":e.noSearch,"exclude-selectors":e.excludeSelectors,error:e.error||(e.noValidationError?!1:!!d.value&&!s.value),success:e.success||(e.noValidationSuccess?!1:(h=a.value)==null?void 0:h.isValid),locales:I.value,disabled:e.disabled,"search-threshold":e.searchThreshold,"show-code-on-list":e.showCodeOnList,"only-countries":e.onlyCountries,"preferred-countries":e.preferredCountries,width:e.countrySelectorWidth,"onUpdate:modelValue":u[0]||(u[0]=i=>y({countryCode:i,selectPhoneNumber:!0}))}),{"no-results":n.withCtx(()=>[n.renderSlot(e.$slots,"no-results",{},void 0,!0)]),"selector-flag":n.withCtx(({countryCode:i})=>[n.renderSlot(e.$slots,"selector-flag",{countryCode:i},void 0,!0)]),"country-list-flag":n.withCtx(({isSelected:i,option:N})=>[n.renderSlot(e.$slots,"country-list-flag",{countryCode:N.iso2,option:N,isSelected:i},void 0,!0)]),_:3},16,["id","model-value","color","size","country-locale","country-selector-display-name","custom-countries-list","ignored-countries","list-position","no-flags","no-search","exclude-selectors","error","success","locales","disabled","search-threshold","show-code-on-list","only-countries","preferred-countries","width"])),n.createVNode(n.unref(f),n.mergeProps({id:n.unref(w),ref_key:"PhoneInputRef",ref:z,"model-value":d.value},{...e.$attrs,...e.phoneInputAttributes},{color:e.color,size:e.size,"auto-format":S.value,"no-example":e.noExample,block:"",disabled:e.disabled,"has-radius":!e.noCountrySelector,success:e.success||(e.noValidationSuccess?!1:a.value.isValid),error:e.error||(e.noValidationError?!1:!!d.value&&!a.value.isValid),locales:I.value,label:e.label,placeholder:e.placeholder,"onUpdate:modelValue":u[1]||(u[1]=i=>B({newPhoneNumber:i}))}),null,16,["id","model-value","color","size","auto-format","no-example","disabled","has-radius","success","error","locales","label","placeholder"])],6)}}}),_=Y._export_sfc(x,[["__scopeId","data-v-7d4b0f6a"]]);exports.MazInputPhoneNumber=_;exports.useLibphonenumber=M;exports.useMazInputPhoneNumber=L;
|
|
2
|
-
//# sourceMappingURL=MazInputPhoneNumber.
|
|
1
|
+
"use strict";require('../assets/MazInputPhoneNumber.Ill3zwW5.css');const n=require("vue"),q=require("../composables/useInstanceUniqId.cjs"),c=require("libphonenumber-js"),Y=require("./_plugin-vue_export-helper.BHFhmbuH.cjs"),D={countrySelector:{placeholder:"Country code",error:"Choose country",searchPlaceholder:"Search the country"},phoneInput:{placeholder:"Phone number",example:"Example:"}},C=n.ref();function J(t){try{const r=c.isSupportedCountry(t);return r||(console.error(`[maz-ui](MazInputPhoneNumber) The code country "${t}" is not available`),!1)}catch(r){return console.error(`[maz-ui](MazInputPhoneNumber) ${r}`),!1}}function O({phoneNumber:t,countryCode:r,checkCountryCode:l=!1}){try{if(!t)return{isValid:!1,countryCode:r};const o=c.parsePhoneNumberFromString(t,r??void 0),p=(o==null?void 0:o.isValid())??!1,f=r&&l?(o==null?void 0:o.country)&&r===o.country:!0;return{isValid:p&&!!f,countryCode:r,parsedCountryCode:o==null?void 0:o.country,isPossible:o==null?void 0:o.isPossible(),countryCallingCode:o==null?void 0:o.countryCallingCode,nationalNumber:o==null?void 0:o.nationalNumber,type:o==null?void 0:o.getType(),formatInternational:o==null?void 0:o.formatInternational(),formatNational:o==null?void 0:o.formatNational(),uri:o==null?void 0:o.getURI(),e164:o==null?void 0:o.format("E.164"),rfc3966:o==null?void 0:o.format("RFC3966"),possibleCountries:o==null?void 0:o.getPossibleCountries(),phoneNumber:t}}catch(o){throw new Error(`[MazInputPhoneNumber](getResultsFromPhoneNumber) ${o}`)}}async function E(){const{default:t}=await Promise.resolve().then(()=>require("./examples.mobile.json.CHzJNb4E.cjs"));return t}function W(t){var r;try{return C.value&&t?(r=c.getExampleNumber(t,C.value))==null?void 0:r.formatNational():void 0}catch(l){console.error(`[maz-ui](MazInputPhoneNumber) ${l}`)}}function j(t,r){try{return!r||!t?void 0:new c.AsYouType(t).input(r)}catch(l){throw new Error(`[MazInputPhoneNumber](getAsYouTypeFormat) ${l}`)}}function H(t,r){return c.getCountryCallingCode(t)===c.getCountryCallingCode(r)}async function G(){try{if(C.value)return;C.value=await E()}catch(t){console.error("[maz-ui](MazInputPhoneNumber) while loading phone number examples file",t)}}function M(){return{examples:C,getAsYouTypeFormat:j,getPhoneNumberResults:O,getPhoneNumberExamplesFile:E,getPhoneNumberExample:W,isSameCountryCallingCode:H,isCountryAvailable:J,getCountries:c.getCountries,getCountryCallingCode:c.getCountryCallingCode,loadExamples:G}}function T(){if(typeof window>"u")return;const t=window.navigator.language;if(!t)return;let r=t.slice(3,7).toUpperCase();return r===""&&(r=t.slice(0,2).toUpperCase()),r==="EN"&&(r="US"),r==="JA"&&(r="JP"),{locale:r,browserLocale:t}}let P,A;function K(t,r,l){return l!=null&&l[r]?l[r]:((A!==t||!P)&&(A=t,P=new Intl.DisplayNames([t],{type:"region"})),P.of(r))}function Q(t,r){var p;const l=[],o=c.getCountries();t=t??((p=T())==null?void 0:p.browserLocale)??"en-US";for(const f of o){const v=K(t,f,r);if(v)try{const m=c.getCountryCallingCode(f);l.push({iso2:f,dialCode:m,name:v})}catch(m){console.error(`[MazInputPhoneNumber](getCountryCallingCode) ${m}`)}}return l}async function X(){try{const t=await fetch("https://ipwho.is"),{country_code:r}=await t.json();return r}catch(t){throw new Error(`[MazInputPhoneNumber](fetchCountryCode) ${t}`)}}function Z(t){if(!t)return"";const r=new RegExp(/[^\d ()+-]/g);return t.replaceAll(r,"").trim()}function L(){return{sanitizePhoneNumber:Z,fetchCountryCode:X,getBrowserLocale:T,getCountriesList:Q}}const x=n.defineComponent({name:"MazInputPhoneNumber",inheritAttrs:!1,__name:"MazInputPhoneNumber",props:{style:{default:void 0},class:{default:void 0},modelValue:{default:void 0},defaultPhoneNumber:{default:void 0},countryCode:{default:void 0},defaultCountryCode:{default:void 0},id:{default:void 0},placeholder:{default:void 0},label:{default:void 0},preferredCountries:{default:void 0},ignoredCountries:{default:void 0},onlyCountries:{default:void 0},translations:{default:void 0},listPosition:{default:"bottom left"},color:{default:"primary"},size:{default:"md"},noFlags:{type:Boolean},disabled:{type:Boolean},noExample:{type:Boolean,default:!1},noSearch:{type:Boolean},searchThreshold:{default:.75},noUseBrowserLocale:{type:Boolean},fetchCountry:{type:Boolean},noCountrySelector:{type:Boolean},showCodeOnList:{type:Boolean},customCountriesList:{default:void 0},autoFormat:{type:Boolean,default:!0},noFormattingAsYouType:{type:Boolean,default:!1},countryLocale:{default:void 0},noValidationError:{type:Boolean},noValidationSuccess:{type:Boolean},success:{type:Boolean},error:{type:Boolean},countrySelectorDisplayName:{type:Boolean},countrySelectorWidth:{default:"9rem"},block:{type:Boolean},excludeSelectors:{default:void 0},orientation:{default:"responsive"},countrySelectAttributes:{default:()=>({name:"country",autocomplete:"off"})},phoneInputAttributes:{default:()=>({name:"phone",autocomplete:"tel",inputmode:"tel"})}},emits:["update:model-value","country-code","update:country-code","update","data"],setup(t,{emit:r}){const l=t,o=r,p=n.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./CountrySelector.1nlVeBqW.cjs"))),f=n.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./PhoneInput.wXP8tsCy.cjs"))),{fetchCountryCode:v,getBrowserLocale:m}=L(),{isCountryAvailable:$,getPhoneNumberResults:F}=M(),w=q.useInstanceUniqId({componentName:"MazInputPhoneNumber",providedId:l.id}),d=n.ref(),s=n.ref(),g=n.ref(!1),b=n.ref(!1),I=n.computed(()=>({...D,...l.translations})),S=n.computed(()=>l.autoFormat&&!l.noFormattingAsYouType),a=n.ref({isValid:!1,countryCode:l.countryCode??l.defaultCountryCode,phoneNumber:l.modelValue}),z=n.ref();n.onBeforeMount(async()=>{if((l.countryCode||l.defaultCountryCode)&&!s.value&&y({countryCode:l.countryCode??l.defaultCountryCode}),l.fetchCountry&&!s.value){const e=await v();y({countryCode:e})}}),n.onMounted(()=>{var e;if(!s.value&&!l.noUseBrowserLocale){const u=(e=m())==null?void 0:e.locale;y({countryCode:u})}});function V({phone:e=d.value||l.modelValue,countryCode:u=s.value,checkCountryCode:h=!1}){a.value=F({phoneNumber:e,countryCode:u,checkCountryCode:h})}function U(){var e;return(e=z.value)==null?void 0:e.$el.querySelector("input")}async function k(){var e;await n.nextTick(),(e=U())==null||e.select()}function R(e){if(e){if(!$(e)){console.warn(`[MazInputPhoneNumber] Country code not available: "${e}"`),s.value=void 0;return}s.value=e}}function B({newPhoneNumber:e}){var u;V({phone:e}),a.value.parsedCountryCode&&a.value.parsedCountryCode!==s.value&&y({countryCode:a.value.parsedCountryCode,updateResults:!1}),a.value.isValid&&S.value?d.value=(u=a.value.formatNational)==null?void 0:u.trim().replaceAll(new RegExp(/\D/g),""):d.value=e,g.value=!0,a.value.e164?o("update:model-value",a.value.e164):o("update:model-value",a.value.phoneNumber),setTimeout(()=>{g.value=!1},0)}function y({countryCode:e,updateResults:u=!0,selectPhoneNumber:h=!1}){if(!e){s.value=void 0;return}b.value=!0,e!==s.value&&R(e),u&&V({countryCode:s.value,checkCountryCode:!0});const i=a.value.countryCode||a.value.parsedCountryCode;o("country-code",i),o("update:country-code",i),h&&!a.value.isValid&&k(),setTimeout(()=>{b.value=!1},0)}return n.watch(()=>l.modelValue??l.defaultPhoneNumber,(e,u)=>{!g.value&&e!==u&&e!==d.value&&B({newPhoneNumber:e})},{immediate:!0}),n.watch(()=>l.countryCode??l.defaultCountryCode,(e,u)=>{!b.value&&e&&e!==u&&e!==s.value&&y({countryCode:e})},{immediate:!0}),n.watch(a,e=>{o("update",e),o("data",e)},{immediate:!0}),n.provide("data",{selectedCountry:s,phoneNumber:d,results:a}),(e,u)=>{var h;return n.openBlock(),n.createElementBlock("div",{class:n.normalizeClass(["m-phone-number-input m-reset-css",[l.class,{"--block":e.block},e.orientation?`--${e.orientation}`:void 0]]),style:n.normalizeStyle(e.style)},[e.noCountrySelector?n.createCommentVNode("",!0):(n.openBlock(),n.createBlock(n.unref(p),n.mergeProps({key:0,id:n.unref(w)},e.countrySelectAttributes,{"model-value":s.value,color:e.color,size:e.size,"country-locale":e.countryLocale,"country-selector-display-name":e.countrySelectorDisplayName,"custom-countries-list":e.customCountriesList,"ignored-countries":e.ignoredCountries,"list-position":e.listPosition,"no-flags":e.noFlags,"no-search":e.noSearch,"exclude-selectors":e.excludeSelectors,error:e.error||(e.noValidationError?!1:!!d.value&&!s.value),success:e.success||(e.noValidationSuccess?!1:(h=a.value)==null?void 0:h.isValid),locales:I.value,disabled:e.disabled,"search-threshold":e.searchThreshold,"show-code-on-list":e.showCodeOnList,"only-countries":e.onlyCountries,"preferred-countries":e.preferredCountries,width:e.countrySelectorWidth,"onUpdate:modelValue":u[0]||(u[0]=i=>y({countryCode:i,selectPhoneNumber:!0}))}),{"no-results":n.withCtx(()=>[n.renderSlot(e.$slots,"no-results",{},void 0,!0)]),"selector-flag":n.withCtx(({countryCode:i})=>[n.renderSlot(e.$slots,"selector-flag",{countryCode:i},void 0,!0)]),"country-list-flag":n.withCtx(({isSelected:i,option:N})=>[n.renderSlot(e.$slots,"country-list-flag",{countryCode:N.iso2,option:N,isSelected:i},void 0,!0)]),_:3},16,["id","model-value","color","size","country-locale","country-selector-display-name","custom-countries-list","ignored-countries","list-position","no-flags","no-search","exclude-selectors","error","success","locales","disabled","search-threshold","show-code-on-list","only-countries","preferred-countries","width"])),n.createVNode(n.unref(f),n.mergeProps({id:n.unref(w),ref_key:"PhoneInputRef",ref:z,"model-value":d.value},{...e.$attrs,...e.phoneInputAttributes},{color:e.color,size:e.size,"auto-format":S.value,"no-example":e.noExample,block:"",disabled:e.disabled,"has-radius":!e.noCountrySelector,success:e.success||(e.noValidationSuccess?!1:a.value.isValid),error:e.error||(e.noValidationError?!1:!!d.value&&!a.value.isValid),locales:I.value,label:e.label,placeholder:e.placeholder,"onUpdate:modelValue":u[1]||(u[1]=i=>B({newPhoneNumber:i}))}),null,16,["id","model-value","color","size","auto-format","no-example","disabled","has-radius","success","error","locales","label","placeholder"])],6)}}}),_=Y._export_sfc(x,[["__scopeId","data-v-0079aa2b"]]);exports.MazInputPhoneNumber=_;exports.useLibphonenumber=M;exports.useMazInputPhoneNumber=L;
|
|
2
|
+
//# sourceMappingURL=MazInputPhoneNumber.TorVuc9s.cjs.map
|
package/dist/chunks/{MazInputPhoneNumber.EZVh1Yx5.cjs.map → MazInputPhoneNumber.TorVuc9s.cjs.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MazInputPhoneNumber.EZVh1Yx5.cjs","sources":["../../src/components/MazInputPhoneNumber/default-locales.ts","../../src/components/MazInputPhoneNumber/useLibphonenumber.ts","../../src/components/MazInputPhoneNumber/useMazInputPhoneNumber.ts","../../src/components/MazInputPhoneNumber.vue"],"sourcesContent":["export const defaultLocales = {\n countrySelector: {\n placeholder: 'Country code',\n error: 'Choose country',\n searchPlaceholder: 'Search the country',\n },\n phoneInput: {\n placeholder: 'Phone number',\n example: 'Example:',\n },\n}\n","import type { Results } from '@components/MazInputPhoneNumber/types'\nimport {\n AsYouType,\n type CountryCode,\n type Examples,\n getCountries,\n getCountryCallingCode,\n getExampleNumber,\n isSupportedCountry,\n parsePhoneNumberFromString,\n} from 'libphonenumber-js'\nimport { ref } from 'vue'\n\nconst examples = ref<Examples>()\n\nfunction isCountryAvailable(locale: string) {\n try {\n const response = isSupportedCountry(locale)\n\n if (!response) {\n console.error(`[maz-ui](MazInputPhoneNumber) The code country \"${locale}\" is not available`)\n\n return false\n }\n\n return response\n }\n catch (error) {\n console.error(`[maz-ui](MazInputPhoneNumber) ${error}`)\n return false\n }\n}\n\nfunction getPhoneNumberResults({\n phoneNumber,\n countryCode,\n checkCountryCode = false,\n}: {\n phoneNumber?: string | undefined | null\n countryCode?: CountryCode | undefined | null\n checkCountryCode?: boolean\n}): Results {\n try {\n if (!phoneNumber) {\n return {\n isValid: false,\n countryCode,\n }\n }\n\n const parsedNumber = parsePhoneNumberFromString(phoneNumber, countryCode ?? undefined)\n const isValid = parsedNumber?.isValid() ?? false\n\n const isSameCountryCode = countryCode && checkCountryCode ? parsedNumber?.country && countryCode === parsedNumber.country : true\n\n return {\n isValid: isValid && !!isSameCountryCode,\n countryCode,\n parsedCountryCode: parsedNumber?.country,\n isPossible: parsedNumber?.isPossible(),\n countryCallingCode: parsedNumber?.countryCallingCode,\n nationalNumber: parsedNumber?.nationalNumber,\n type: parsedNumber?.getType(),\n formatInternational: parsedNumber?.formatInternational(),\n formatNational: parsedNumber?.formatNational(),\n uri: parsedNumber?.getURI(),\n e164: parsedNumber?.format('E.164'),\n rfc3966: parsedNumber?.format('RFC3966'),\n possibleCountries: parsedNumber?.getPossibleCountries(),\n phoneNumber,\n }\n }\n catch (error) {\n throw new Error(`[MazInputPhoneNumber](getResultsFromPhoneNumber) ${error}`)\n }\n}\n\nasync function getPhoneNumberExamplesFile() {\n const { default: data } = await import('libphonenumber-js/examples.mobile.json')\n\n return data\n}\n\nfunction getPhoneNumberExample(countryCode?: CountryCode | undefined | null) {\n try {\n if (!examples.value) {\n return\n }\n\n return countryCode ? getExampleNumber(countryCode, examples.value)?.formatNational() : undefined\n }\n catch (error) {\n console.error(`[maz-ui](MazInputPhoneNumber) ${error}`)\n }\n}\n\nfunction getAsYouTypeFormat(countryCode?: CountryCode | undefined | null, phoneNumber?: string | undefined | null): string | undefined {\n try {\n if (!phoneNumber || !countryCode) {\n return\n }\n\n const asYouTypeInstance = new AsYouType(countryCode)\n\n return asYouTypeInstance.input(phoneNumber)\n }\n catch (error) {\n throw new Error(`[MazInputPhoneNumber](getAsYouTypeFormat) ${error}`)\n }\n}\n\nfunction isSameCountryCallingCode(countryCode: CountryCode, countryCode2: CountryCode) {\n return getCountryCallingCode(countryCode) === getCountryCallingCode(countryCode2)\n}\n\nasync function loadExamples() {\n try {\n if (examples.value)\n return\n\n examples.value = await getPhoneNumberExamplesFile()\n }\n catch (error) {\n console.error('[maz-ui](MazInputPhoneNumber) while loading phone number examples file', error)\n }\n}\n\nexport function useLibphonenumber() {\n return {\n examples,\n getAsYouTypeFormat,\n getPhoneNumberResults,\n getPhoneNumberExamplesFile,\n getPhoneNumberExample,\n isSameCountryCallingCode,\n isCountryAvailable,\n getCountries,\n getCountryCallingCode,\n loadExamples,\n }\n}\n","import type { Country, IpWhoResponse } from '@components/MazInputPhoneNumber/types'\nimport { type CountryCode, getCountries, getCountryCallingCode } from 'libphonenumber-js'\n\nfunction getBrowserLocale() {\n if (typeof window === 'undefined') {\n return\n }\n\n const browserLocale = window.navigator.language\n\n if (!browserLocale) {\n return\n }\n\n let locale = browserLocale.slice(3, 7).toUpperCase()\n\n if (locale === '') {\n locale = browserLocale.slice(0, 2).toUpperCase()\n }\n\n if (locale === 'EN') {\n locale = 'US'\n }\n if (locale === 'JA') {\n locale = 'JP'\n }\n\n return {\n locale,\n browserLocale,\n }\n}\n\nlet displayNamesInstance: Intl.DisplayNames | undefined\nlet displayNamesLocale: string | undefined\n\nfunction getCountryName(\n locale: string,\n code: CountryCode | string,\n customCountriesNameListByIsoCode?: Record<CountryCode, string>,\n): string | undefined {\n if (customCountriesNameListByIsoCode?.[code]) {\n return customCountriesNameListByIsoCode[code]\n }\n\n if (displayNamesLocale !== locale || !displayNamesInstance) {\n displayNamesLocale = locale\n displayNamesInstance = new Intl.DisplayNames([locale], { type: 'region' })\n }\n\n return displayNamesInstance.of(code)\n}\n\nfunction getCountriesList(\n locale?: string,\n customCountriesNameListByIsoCode?: Record<CountryCode, string>,\n): Country[] | undefined {\n const countriesList: Country[] = []\n const isoList = getCountries()\n\n locale = locale ?? getBrowserLocale()?.browserLocale ?? 'en-US'\n\n for (const iso2 of isoList) {\n const name = getCountryName(locale, iso2, customCountriesNameListByIsoCode)\n\n if (name) {\n try {\n const dialCode = getCountryCallingCode(iso2)\n countriesList.push({\n iso2,\n dialCode,\n name,\n })\n }\n catch (error) {\n console.error(`[MazInputPhoneNumber](getCountryCallingCode) ${error}`)\n }\n }\n }\n\n return countriesList\n}\n\nasync function fetchCountryCode() {\n try {\n const reponse = await fetch('https://ipwho.is')\n const { country_code } = (await reponse.json()) as IpWhoResponse\n\n return country_code\n }\n catch (error) {\n throw new Error(`[MazInputPhoneNumber](fetchCountryCode) ${error}`)\n }\n}\n\nfunction sanitizePhoneNumber(input?: string | undefined | null) {\n if (!input) {\n return ''\n }\n const regex = new RegExp(/[^\\d ()+-]/g) // Keep only digits, (), - and + characters\n\n return input.replaceAll(regex, '').trim()\n}\n\nexport function useMazInputPhoneNumber() {\n return {\n sanitizePhoneNumber,\n fetchCountryCode,\n getBrowserLocale,\n getCountriesList,\n }\n}\n","<script lang=\"ts\" setup>\nimport type { MazInputPhoneNumberTranslations, Results } from '@components/MazInputPhoneNumber/types'\nimport type { Color, Position, Size } from '@components/types'\nimport type { CountryCode } from 'libphonenumber-js'\nimport { defaultLocales } from '@components/MazInputPhoneNumber/default-locales'\nimport { useLibphonenumber } from '@components/MazInputPhoneNumber/useLibphonenumber'\nimport { useMazInputPhoneNumber } from '@components/MazInputPhoneNumber/useMazInputPhoneNumber'\n\nimport { useInstanceUniqId } from '@composables/useInstanceUniqId'\nimport {\n type ComponentPublicInstance,\n computed,\n defineAsyncComponent,\n type HTMLAttributes,\n nextTick,\n onBeforeMount,\n onMounted,\n provide,\n ref,\n watch,\n} from 'vue'\n\ndefineOptions({\n name: 'MazInputPhoneNumber',\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<MazInputPhoneNumberProps>(), {\n class: undefined,\n style: undefined,\n listPosition: 'bottom left',\n color: 'primary',\n size: 'md',\n modelValue: undefined,\n /** @deprecated */\n defaultPhoneNumber: undefined,\n countryCode: undefined,\n /** @deprecated */\n defaultCountryCode: undefined,\n id: undefined,\n placeholder: undefined,\n label: undefined,\n preferredCountries: undefined,\n ignoredCountries: undefined,\n onlyCountries: undefined,\n translations: undefined,\n customCountriesList: undefined,\n countryLocale: undefined,\n countrySelectorWidth: '9rem',\n noFormattingAsYouType: false,\n autoFormat: true,\n excludeSelectors: undefined,\n orientation: 'responsive',\n searchThreshold: 0.75,\n noExample: false,\n countrySelectAttributes: () => ({\n name: 'country',\n autocomplete: 'off',\n }),\n phoneInputAttributes: () => ({\n name: 'phone',\n autocomplete: 'tel',\n inputmode: 'tel',\n }),\n})\n\nconst emits = defineEmits<{\n /**\n * emitted when country or phone number changes\n * @property {string} phoneNumber - phoneNumber formatted\n */\n 'update:model-value': [value: string | undefined | null]\n /**\n * emitted when selected country changes\n * @property {CountryCode} countryCode - Country code\n */\n 'country-code': [countryCode?: CountryCode | undefined | null]\n /**\n * emitted when country changes\n * @property {CountryCode} countryCode - Country code\n */\n 'update:country-code': [countryCode?: CountryCode | undefined | null]\n /**\n * emitted when country or phone number changes\n * @property {Results} results - metadata of current phone number\n * @deprecated use data instead\n */\n 'update': [results: Results]\n /**\n * emitted when country or phone number changes\n * @property {Results} results - metadata of current phone number\n */\n 'data': [results: Results]\n}>()\n\nconst CountrySelector = defineAsyncComponent(() => import('@components/MazInputPhoneNumber/CountrySelector.vue'))\nconst PhoneInput = defineAsyncComponent(() => import('@components/MazInputPhoneNumber/PhoneInput.vue'))\n\nexport interface MazInputPhoneNumberProps {\n /** Style attribut of the component root element */\n style?: HTMLAttributes['style']\n /** Class attribut of the component root element */\n class?: HTMLAttributes['class']\n /** @model Country calling code + telephone number in international format */\n modelValue?: string | undefined | null\n /** @deprecated */\n defaultPhoneNumber?: string | undefined | null\n /** @model Country code selected - Ex: \"FR\" */\n countryCode?: CountryCode | undefined | null\n /** @deprecated - use country-code or v-model:country-code */\n defaultCountryCode?: CountryCode | undefined | null\n /** Id of the component */\n id?: string\n /** Placeholder of the input */\n placeholder?: string\n /** label of the input */\n label?: string\n /** List of country codes to place first in the select list - Ex: ['FR', 'BE', 'GE'] */\n preferredCountries?: CountryCode[]\n /** List of country codes to be removed from the select list - Ex: ['FR', 'BE', 'GE'] */\n ignoredCountries?: CountryCode[]\n /** List of country codes to only have the countries selected in the select list - Ex: ['FR', 'BE', 'GE'] */\n onlyCountries?: CountryCode[]\n /** Locale strings of the component */\n translations?: Partial<MazInputPhoneNumberTranslations>\n /** Position where the list of countries will be opened */\n listPosition?: Position\n /** Component color applied - Ex: \"secondary\" */\n color?: Color\n /** Component size applied - Ex: \"sm\" */\n size?: Size\n /** Remove flags in country list */\n noFlags?: boolean\n /** Disable input */\n disabled?: boolean\n /** No show the phone number example */\n noExample?: boolean\n /** Disable search input in country list */\n noSearch?: boolean\n /**\n * Threshold of the search input in country list where 1 is a perfect match and 0 is a match with any character\n * @default 0.75\n */\n searchThreshold?: number\n /** By default the component use the browser locale to set the default country code if not country code is provided */\n noUseBrowserLocale?: boolean\n /** The component will make a request (https://ipwho.is) to get the location of the user and use it to set the default country code */\n fetchCountry?: boolean\n /** No show the country selector */\n noCountrySelector?: boolean\n /** Show country calling code in the country list */\n showCodeOnList?: boolean\n /** Replace country names */\n customCountriesList?: Record<CountryCode, string>\n /**\n * Disabled auto-format when phone is valid\n * @default true\n */\n autoFormat?: boolean\n /**\n * Disabled auto-format as you type\n * @default false\n * @deprecated use autoFormat instead\n */\n noFormattingAsYouType?: boolean\n /**\n * locale of country list - Ex: \"fr-FR\"\n * @default {string} browser locale\n */\n countryLocale?: string\n /** Disable validation error UI */\n noValidationError?: boolean\n /** Disable validation success UI */\n noValidationSuccess?: boolean\n /** Add success UI */\n success?: boolean\n /** Add error UI */\n error?: boolean\n /** Will replace the calling code by the country name in the country selector */\n countrySelectorDisplayName?: boolean\n /** Choose the width of the country selector */\n countrySelectorWidth?: string\n /** The input will be displayed in full width */\n block?: boolean\n /** Exclude selectors to close country selector list - usefull when you using custom flag */\n excludeSelectors?: string[]\n /**\n * Orientation of the inputs in the component\n * @default \"responsive\"\n * @values \"row\" | \"col\" | \"responsive\"\n */\n orientation?: 'row' | 'col' | 'responsive'\n /**\n * Meta attributes of the country input\n * @default `{Record<string, unknown>}` `{ autocomplete: 'off', name: 'country' }`\n */\n countrySelectAttributes?: Record<string, unknown>\n /**\n * Meta attributes of the phone number input\n * @default `{Record<string, unknown>}` `{ autocomplete: 'tel', name: 'phone', inputmode: 'tel' }`\n */\n phoneInputAttributes?: Record<string, unknown>\n}\n\n/** Composables */\nconst { fetchCountryCode, getBrowserLocale } = useMazInputPhoneNumber()\nconst { isCountryAvailable, getPhoneNumberResults } = useLibphonenumber()\n\nconst instanceId = useInstanceUniqId({\n componentName: 'MazInputPhoneNumber',\n providedId: props.id,\n})\n\n/** Models */\n\nconst phoneNumber = ref<string | undefined | null>()\nconst selectedCountry = ref<CountryCode | undefined | null>()\n\n/** State */\nconst isPhoneNumberInternalUpdate = ref(false)\nconst isCountryInternalUpdate = ref(false)\nconst locales = computed(() => ({\n ...defaultLocales,\n ...props.translations,\n}))\nconst hasAutoFormat = computed(() => props.autoFormat && !props.noFormattingAsYouType)\n\nconst results = ref<Results>({\n isValid: false,\n countryCode: props.countryCode ?? props.defaultCountryCode,\n phoneNumber: props.modelValue,\n})\nconst PhoneInputRef = ref<ComponentPublicInstance>()\n\n/** Logic */\n\nonBeforeMount(async () => {\n if ((props.countryCode || props.defaultCountryCode) && !selectedCountry.value) {\n onCountryChanged({ countryCode: props.countryCode ?? props.defaultCountryCode })\n }\n\n if (props.fetchCountry && !selectedCountry.value) {\n const countryCode = await fetchCountryCode()\n onCountryChanged({ countryCode: countryCode as CountryCode })\n }\n})\n\nonMounted(() => {\n if (!selectedCountry.value && !props.noUseBrowserLocale) {\n const countryCode = getBrowserLocale()?.locale\n onCountryChanged({ countryCode: countryCode as CountryCode })\n }\n})\n\nfunction updateTheResults({\n phone = phoneNumber.value || props.modelValue,\n countryCode = selectedCountry.value,\n checkCountryCode = false,\n}: {\n phone?: string | undefined | null\n countryCode?: CountryCode | undefined | null\n checkCountryCode?: boolean\n}) {\n results.value = getPhoneNumberResults({\n phoneNumber: phone,\n countryCode,\n checkCountryCode,\n })\n}\n\nfunction getPhoneNumberInput() {\n return PhoneInputRef.value?.$el.querySelector('input') as HTMLInputElement | undefined\n}\n\nasync function selectPhoneNumberInput() {\n await nextTick()\n getPhoneNumberInput()?.select()\n}\n\nfunction setSelectedCountry(countryCode?: string | undefined | null) {\n if (!countryCode) {\n return\n }\n\n if (!isCountryAvailable(countryCode)) {\n console.warn(`[MazInputPhoneNumber] Country code not available: \"${countryCode}\"`)\n selectedCountry.value = undefined\n return\n }\n\n selectedCountry.value = countryCode as CountryCode\n}\n\nfunction onPhoneNumberChanged({\n newPhoneNumber,\n}: {\n newPhoneNumber?: string | undefined | null\n}) {\n updateTheResults({ phone: newPhoneNumber })\n\n if (results.value.parsedCountryCode && results.value.parsedCountryCode !== selectedCountry.value) {\n onCountryChanged({\n countryCode: results.value.parsedCountryCode,\n updateResults: false,\n })\n }\n\n if (results.value.isValid && hasAutoFormat.value) {\n phoneNumber.value = results.value.formatNational?.trim().replaceAll(new RegExp(/\\D/g), '')\n }\n else {\n phoneNumber.value = newPhoneNumber\n }\n\n isPhoneNumberInternalUpdate.value = true\n\n if (results.value.e164) {\n emits('update:model-value', results.value.e164)\n }\n else {\n emits('update:model-value', results.value.phoneNumber)\n }\n\n setTimeout(() => {\n isPhoneNumberInternalUpdate.value = false\n }, 0)\n}\n\nfunction onCountryChanged({\n countryCode,\n updateResults = true,\n selectPhoneNumber = false,\n}: {\n countryCode?: CountryCode | undefined | null\n updateResults?: boolean\n selectPhoneNumber?: boolean\n}) {\n if (!countryCode) {\n selectedCountry.value = undefined\n return\n }\n\n isCountryInternalUpdate.value = true\n\n if (countryCode !== selectedCountry.value) {\n setSelectedCountry(countryCode)\n }\n\n if (updateResults) {\n updateTheResults({\n countryCode: selectedCountry.value,\n checkCountryCode: true,\n })\n }\n\n const code = results.value.countryCode || results.value.parsedCountryCode\n emits('country-code', code)\n emits('update:country-code', code)\n\n if (selectPhoneNumber && !results.value.isValid) {\n selectPhoneNumberInput()\n }\n\n setTimeout(() => {\n isCountryInternalUpdate.value = false\n }, 0)\n}\n\n/** Watchers */\n\nwatch(\n () => props.modelValue ?? props.defaultPhoneNumber,\n (value, oldValue) => {\n if (!isPhoneNumberInternalUpdate.value && value !== oldValue && value !== phoneNumber.value) {\n onPhoneNumberChanged({ newPhoneNumber: value })\n }\n },\n { immediate: true },\n)\nwatch(\n () => props.countryCode ?? props.defaultCountryCode,\n (value, oldValue) => {\n if (!isCountryInternalUpdate.value && value && value !== oldValue && value !== selectedCountry.value) {\n onCountryChanged({ countryCode: value })\n }\n },\n { immediate: true },\n)\nwatch(\n results,\n (value) => {\n emits('update', value)\n emits('data', value)\n },\n { immediate: true },\n)\n\n/** Inject */\nexport interface MazInputPhoneNumberInjectedData {\n selectedCountry: typeof selectedCountry\n phoneNumber: typeof phoneNumber\n results: typeof results\n}\n\nprovide<MazInputPhoneNumberInjectedData>('data', {\n selectedCountry,\n phoneNumber,\n results,\n})\n</script>\n\n<template>\n <div\n class=\"m-phone-number-input m-reset-css\"\n :class=\"[props.class, { '--block': block }, orientation ? `--${orientation}` : undefined]\"\n :style\n >\n <CountrySelector\n v-if=\"!noCountrySelector\"\n :id=\"instanceId\"\n v-bind=\"countrySelectAttributes\"\n :model-value=\"selectedCountry\"\n :color\n :size\n :country-locale\n :country-selector-display-name\n :custom-countries-list\n :ignored-countries\n :list-position\n :no-flags\n :no-search\n :exclude-selectors\n :error=\"error || (!noValidationError ? !!phoneNumber && !selectedCountry : false)\"\n :success=\"success || (!noValidationSuccess ? results?.isValid : false)\"\n :locales\n :disabled\n :search-threshold\n :show-code-on-list\n :only-countries\n :preferred-countries\n :width=\"countrySelectorWidth\"\n @update:model-value=\"onCountryChanged({ countryCode: $event, selectPhoneNumber: true })\"\n >\n <template #no-results>\n <!--\n @slot Replace the \"no results\" icon in the country selector list\n -->\n <slot name=\"no-results\" />\n </template>\n <template #selector-flag=\"{ countryCode: codeCountry }\">\n <!--\n @slot Country selector flag\n @binding {String} country-code current selected country code Ex: `\"FR\"`\n -->\n <slot name=\"selector-flag\" :country-code=\"codeCountry\" />\n </template>\n <template #country-list-flag=\"{ isSelected, option }\">\n <!--\n @slot Country list flag\n @binding {String} country-code country code of option Ex: `\"FR\"`\n @binding {{ iso2: string; dialCode: string; name: string; }} option country data\n @binding {Boolean} is-selected `true` if option is selected\n -->\n <slot\n name=\"country-list-flag\"\n :country-code=\"option.iso2\"\n :option=\"option\"\n :is-selected=\"isSelected\"\n />\n </template>\n </CountrySelector>\n\n <PhoneInput\n :id=\"instanceId\"\n ref=\"PhoneInputRef\"\n :model-value=\"phoneNumber\"\n v-bind=\"{ ...$attrs, ...phoneInputAttributes }\"\n :color\n :size\n :auto-format=\"hasAutoFormat\"\n :no-example\n block\n :disabled\n :has-radius=\"!noCountrySelector\"\n :success=\"success || (!noValidationSuccess ? results.isValid : false)\"\n :error=\"error || (!noValidationError ? !!phoneNumber && !results.isValid : false)\"\n :locales\n :label\n :placeholder\n @update:model-value=\"onPhoneNumberChanged({ newPhoneNumber: $event })\"\n />\n </div>\n</template>\n\n<style lang=\"postcss\" scoped>\n .m-phone-number-input {\n @apply maz-relative maz-inline-flex maz-items-center maz-align-top;\n\n &.--block {\n @apply maz-w-full;\n }\n\n &.--col {\n @apply maz-flex-col;\n }\n\n &.--responsive {\n @apply maz-flex-col mob-m:maz-flex-row;\n }\n}\n</style>\n"],"names":["defaultLocales","examples","ref","isCountryAvailable","locale","response","isSupportedCountry","error","getPhoneNumberResults","phoneNumber","countryCode","checkCountryCode","parsedNumber","parsePhoneNumberFromString","isValid","isSameCountryCode","getPhoneNumberExamplesFile","data","getPhoneNumberExample","getExampleNumber","getAsYouTypeFormat","AsYouType","isSameCountryCallingCode","countryCode2","getCountryCallingCode","loadExamples","useLibphonenumber","getCountries","getBrowserLocale","browserLocale","displayNamesInstance","displayNamesLocale","getCountryName","code","customCountriesNameListByIsoCode","getCountriesList","countriesList","isoList","_a","iso2","name","dialCode","fetchCountryCode","reponse","country_code","sanitizePhoneNumber","input","regex","useMazInputPhoneNumber","props","__props","emits","__emit","CountrySelector","defineAsyncComponent","PhoneInput","instanceId","useInstanceUniqId","selectedCountry","isPhoneNumberInternalUpdate","isCountryInternalUpdate","locales","computed","hasAutoFormat","results","PhoneInputRef","onBeforeMount","onCountryChanged","onMounted","updateTheResults","phone","getPhoneNumberInput","selectPhoneNumberInput","nextTick","setSelectedCountry","onPhoneNumberChanged","newPhoneNumber","updateResults","selectPhoneNumber","watch","value","oldValue","provide"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MazInputPhoneNumber.TorVuc9s.cjs","sources":["../../src/components/MazInputPhoneNumber/default-locales.ts","../../src/components/MazInputPhoneNumber/useLibphonenumber.ts","../../src/components/MazInputPhoneNumber/useMazInputPhoneNumber.ts","../../src/components/MazInputPhoneNumber.vue"],"sourcesContent":["export const defaultLocales = {\n countrySelector: {\n placeholder: 'Country code',\n error: 'Choose country',\n searchPlaceholder: 'Search the country',\n },\n phoneInput: {\n placeholder: 'Phone number',\n example: 'Example:',\n },\n}\n","import type { Results } from './types'\nimport {\n AsYouType,\n type CountryCode,\n type Examples,\n getCountries,\n getCountryCallingCode,\n getExampleNumber,\n isSupportedCountry,\n parsePhoneNumberFromString,\n} from 'libphonenumber-js'\nimport { ref } from 'vue'\n\nconst examples = ref<Examples>()\n\nfunction isCountryAvailable(locale: string) {\n try {\n const response = isSupportedCountry(locale)\n\n if (!response) {\n console.error(`[maz-ui](MazInputPhoneNumber) The code country \"${locale}\" is not available`)\n\n return false\n }\n\n return response\n }\n catch (error) {\n console.error(`[maz-ui](MazInputPhoneNumber) ${error}`)\n return false\n }\n}\n\nfunction getPhoneNumberResults({\n phoneNumber,\n countryCode,\n checkCountryCode = false,\n}: {\n phoneNumber?: string | undefined | null\n countryCode?: CountryCode | undefined | null\n checkCountryCode?: boolean\n}): Results {\n try {\n if (!phoneNumber) {\n return {\n isValid: false,\n countryCode,\n }\n }\n\n const parsedNumber = parsePhoneNumberFromString(phoneNumber, countryCode ?? undefined)\n const isValid = parsedNumber?.isValid() ?? false\n\n const isSameCountryCode = countryCode && checkCountryCode ? parsedNumber?.country && countryCode === parsedNumber.country : true\n\n return {\n isValid: isValid && !!isSameCountryCode,\n countryCode,\n parsedCountryCode: parsedNumber?.country,\n isPossible: parsedNumber?.isPossible(),\n countryCallingCode: parsedNumber?.countryCallingCode,\n nationalNumber: parsedNumber?.nationalNumber,\n type: parsedNumber?.getType(),\n formatInternational: parsedNumber?.formatInternational(),\n formatNational: parsedNumber?.formatNational(),\n uri: parsedNumber?.getURI(),\n e164: parsedNumber?.format('E.164'),\n rfc3966: parsedNumber?.format('RFC3966'),\n possibleCountries: parsedNumber?.getPossibleCountries(),\n phoneNumber,\n }\n }\n catch (error) {\n throw new Error(`[MazInputPhoneNumber](getResultsFromPhoneNumber) ${error}`)\n }\n}\n\nasync function getPhoneNumberExamplesFile() {\n const { default: data } = await import('libphonenumber-js/examples.mobile.json')\n\n return data\n}\n\nfunction getPhoneNumberExample(countryCode?: CountryCode | undefined | null) {\n try {\n if (!examples.value) {\n return\n }\n\n return countryCode ? getExampleNumber(countryCode, examples.value)?.formatNational() : undefined\n }\n catch (error) {\n console.error(`[maz-ui](MazInputPhoneNumber) ${error}`)\n }\n}\n\nfunction getAsYouTypeFormat(countryCode?: CountryCode | undefined | null, phoneNumber?: string | undefined | null): string | undefined {\n try {\n if (!phoneNumber || !countryCode) {\n return\n }\n\n const asYouTypeInstance = new AsYouType(countryCode)\n\n return asYouTypeInstance.input(phoneNumber)\n }\n catch (error) {\n throw new Error(`[MazInputPhoneNumber](getAsYouTypeFormat) ${error}`)\n }\n}\n\nfunction isSameCountryCallingCode(countryCode: CountryCode, countryCode2: CountryCode) {\n return getCountryCallingCode(countryCode) === getCountryCallingCode(countryCode2)\n}\n\nasync function loadExamples() {\n try {\n if (examples.value)\n return\n\n examples.value = await getPhoneNumberExamplesFile()\n }\n catch (error) {\n console.error('[maz-ui](MazInputPhoneNumber) while loading phone number examples file', error)\n }\n}\n\nexport function useLibphonenumber() {\n return {\n examples,\n getAsYouTypeFormat,\n getPhoneNumberResults,\n getPhoneNumberExamplesFile,\n getPhoneNumberExample,\n isSameCountryCallingCode,\n isCountryAvailable,\n getCountries,\n getCountryCallingCode,\n loadExamples,\n }\n}\n","import type { Country, IpWhoResponse } from './types'\nimport { type CountryCode, getCountries, getCountryCallingCode } from 'libphonenumber-js'\n\nfunction getBrowserLocale() {\n if (typeof window === 'undefined') {\n return\n }\n\n const browserLocale = window.navigator.language\n\n if (!browserLocale) {\n return\n }\n\n let locale = browserLocale.slice(3, 7).toUpperCase()\n\n if (locale === '') {\n locale = browserLocale.slice(0, 2).toUpperCase()\n }\n\n if (locale === 'EN') {\n locale = 'US'\n }\n if (locale === 'JA') {\n locale = 'JP'\n }\n\n return {\n locale,\n browserLocale,\n }\n}\n\nlet displayNamesInstance: Intl.DisplayNames | undefined\nlet displayNamesLocale: string | undefined\n\nfunction getCountryName(\n locale: string,\n code: CountryCode | string,\n customCountriesNameListByIsoCode?: Record<CountryCode, string>,\n): string | undefined {\n if (customCountriesNameListByIsoCode?.[code]) {\n return customCountriesNameListByIsoCode[code]\n }\n\n if (displayNamesLocale !== locale || !displayNamesInstance) {\n displayNamesLocale = locale\n displayNamesInstance = new Intl.DisplayNames([locale], { type: 'region' })\n }\n\n return displayNamesInstance.of(code)\n}\n\nfunction getCountriesList(\n locale?: string,\n customCountriesNameListByIsoCode?: Record<CountryCode, string>,\n): Country[] | undefined {\n const countriesList: Country[] = []\n const isoList = getCountries()\n\n locale = locale ?? getBrowserLocale()?.browserLocale ?? 'en-US'\n\n for (const iso2 of isoList) {\n const name = getCountryName(locale, iso2, customCountriesNameListByIsoCode)\n\n if (name) {\n try {\n const dialCode = getCountryCallingCode(iso2)\n countriesList.push({\n iso2,\n dialCode,\n name,\n })\n }\n catch (error) {\n console.error(`[MazInputPhoneNumber](getCountryCallingCode) ${error}`)\n }\n }\n }\n\n return countriesList\n}\n\nasync function fetchCountryCode() {\n try {\n const reponse = await fetch('https://ipwho.is')\n const { country_code } = (await reponse.json()) as IpWhoResponse\n\n return country_code\n }\n catch (error) {\n throw new Error(`[MazInputPhoneNumber](fetchCountryCode) ${error}`)\n }\n}\n\nfunction sanitizePhoneNumber(input?: string | undefined | null) {\n if (!input) {\n return ''\n }\n const regex = new RegExp(/[^\\d ()+-]/g) // Keep only digits, (), - and + characters\n\n return input.replaceAll(regex, '').trim()\n}\n\nexport function useMazInputPhoneNumber() {\n return {\n sanitizePhoneNumber,\n fetchCountryCode,\n getBrowserLocale,\n getCountriesList,\n }\n}\n","<script lang=\"ts\" setup>\nimport type { CountryCode } from 'libphonenumber-js'\nimport type { MazInputPhoneNumberTranslations, Results } from './MazInputPhoneNumber/types'\nimport type { Color, Position, Size } from './types'\nimport {\n type ComponentPublicInstance,\n computed,\n defineAsyncComponent,\n type HTMLAttributes,\n nextTick,\n onBeforeMount,\n onMounted,\n provide,\n ref,\n watch,\n} from 'vue'\nimport { useInstanceUniqId } from '../composables/useInstanceUniqId'\nimport { defaultLocales } from './MazInputPhoneNumber/default-locales'\n\nimport { useLibphonenumber } from './MazInputPhoneNumber/useLibphonenumber'\nimport { useMazInputPhoneNumber } from './MazInputPhoneNumber/useMazInputPhoneNumber'\n\ndefineOptions({\n name: 'MazInputPhoneNumber',\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<MazInputPhoneNumberProps>(), {\n class: undefined,\n style: undefined,\n listPosition: 'bottom left',\n color: 'primary',\n size: 'md',\n modelValue: undefined,\n /** @deprecated */\n defaultPhoneNumber: undefined,\n countryCode: undefined,\n /** @deprecated */\n defaultCountryCode: undefined,\n id: undefined,\n placeholder: undefined,\n label: undefined,\n preferredCountries: undefined,\n ignoredCountries: undefined,\n onlyCountries: undefined,\n translations: undefined,\n customCountriesList: undefined,\n countryLocale: undefined,\n countrySelectorWidth: '9rem',\n noFormattingAsYouType: false,\n autoFormat: true,\n excludeSelectors: undefined,\n orientation: 'responsive',\n searchThreshold: 0.75,\n noExample: false,\n countrySelectAttributes: () => ({\n name: 'country',\n autocomplete: 'off',\n }),\n phoneInputAttributes: () => ({\n name: 'phone',\n autocomplete: 'tel',\n inputmode: 'tel',\n }),\n})\n\nconst emits = defineEmits<{\n /**\n * emitted when country or phone number changes\n * @property {string} phoneNumber - phoneNumber formatted\n */\n 'update:model-value': [value: string | undefined | null]\n /**\n * emitted when selected country changes\n * @property {CountryCode} countryCode - Country code\n */\n 'country-code': [countryCode?: CountryCode | undefined | null]\n /**\n * emitted when country changes\n * @property {CountryCode} countryCode - Country code\n */\n 'update:country-code': [countryCode?: CountryCode | undefined | null]\n /**\n * emitted when country or phone number changes\n * @property {Results} results - metadata of current phone number\n * @deprecated use data instead\n */\n 'update': [results: Results]\n /**\n * emitted when country or phone number changes\n * @property {Results} results - metadata of current phone number\n */\n 'data': [results: Results]\n}>()\n\nconst CountrySelector = defineAsyncComponent(() => import('./MazInputPhoneNumber/CountrySelector.vue'))\nconst PhoneInput = defineAsyncComponent(() => import('./MazInputPhoneNumber/PhoneInput.vue'))\n\nexport interface MazInputPhoneNumberProps {\n /** Style attribut of the component root element */\n style?: HTMLAttributes['style']\n /** Class attribut of the component root element */\n class?: HTMLAttributes['class']\n /** @model Country calling code + telephone number in international format */\n modelValue?: string | undefined | null\n /** @deprecated */\n defaultPhoneNumber?: string | undefined | null\n /** @model Country code selected - Ex: \"FR\" */\n countryCode?: CountryCode | undefined | null\n /** @deprecated - use country-code or v-model:country-code */\n defaultCountryCode?: CountryCode | undefined | null\n /** Id of the component */\n id?: string\n /** Placeholder of the input */\n placeholder?: string\n /** label of the input */\n label?: string\n /** List of country codes to place first in the select list - Ex: ['FR', 'BE', 'GE'] */\n preferredCountries?: CountryCode[]\n /** List of country codes to be removed from the select list - Ex: ['FR', 'BE', 'GE'] */\n ignoredCountries?: CountryCode[]\n /** List of country codes to only have the countries selected in the select list - Ex: ['FR', 'BE', 'GE'] */\n onlyCountries?: CountryCode[]\n /** Locale strings of the component */\n translations?: Partial<MazInputPhoneNumberTranslations>\n /** Position where the list of countries will be opened */\n listPosition?: Position\n /** Component color applied - Ex: \"secondary\" */\n color?: Color\n /** Component size applied - Ex: \"sm\" */\n size?: Size\n /** Remove flags in country list */\n noFlags?: boolean\n /** Disable input */\n disabled?: boolean\n /** No show the phone number example */\n noExample?: boolean\n /** Disable search input in country list */\n noSearch?: boolean\n /**\n * Threshold of the search input in country list where 1 is a perfect match and 0 is a match with any character\n * @default 0.75\n */\n searchThreshold?: number\n /** By default the component use the browser locale to set the default country code if not country code is provided */\n noUseBrowserLocale?: boolean\n /** The component will make a request (https://ipwho.is) to get the location of the user and use it to set the default country code */\n fetchCountry?: boolean\n /** No show the country selector */\n noCountrySelector?: boolean\n /** Show country calling code in the country list */\n showCodeOnList?: boolean\n /** Replace country names */\n customCountriesList?: Record<CountryCode, string>\n /**\n * Disabled auto-format when phone is valid\n * @default true\n */\n autoFormat?: boolean\n /**\n * Disabled auto-format as you type\n * @default false\n * @deprecated use autoFormat instead\n */\n noFormattingAsYouType?: boolean\n /**\n * locale of country list - Ex: \"fr-FR\"\n * @default {string} browser locale\n */\n countryLocale?: string\n /** Disable validation error UI */\n noValidationError?: boolean\n /** Disable validation success UI */\n noValidationSuccess?: boolean\n /** Add success UI */\n success?: boolean\n /** Add error UI */\n error?: boolean\n /** Will replace the calling code by the country name in the country selector */\n countrySelectorDisplayName?: boolean\n /** Choose the width of the country selector */\n countrySelectorWidth?: string\n /** The input will be displayed in full width */\n block?: boolean\n /** Exclude selectors to close country selector list - usefull when you using custom flag */\n excludeSelectors?: string[]\n /**\n * Orientation of the inputs in the component\n * @default \"responsive\"\n * @values \"row\" | \"col\" | \"responsive\"\n */\n orientation?: 'row' | 'col' | 'responsive'\n /**\n * Meta attributes of the country input\n * @default `{Record<string, unknown>}` `{ autocomplete: 'off', name: 'country' }`\n */\n countrySelectAttributes?: Record<string, unknown>\n /**\n * Meta attributes of the phone number input\n * @default `{Record<string, unknown>}` `{ autocomplete: 'tel', name: 'phone', inputmode: 'tel' }`\n */\n phoneInputAttributes?: Record<string, unknown>\n}\n\n/** Composables */\nconst { fetchCountryCode, getBrowserLocale } = useMazInputPhoneNumber()\nconst { isCountryAvailable, getPhoneNumberResults } = useLibphonenumber()\n\nconst instanceId = useInstanceUniqId({\n componentName: 'MazInputPhoneNumber',\n providedId: props.id,\n})\n\n/** Models */\n\nconst phoneNumber = ref<string | undefined | null>()\nconst selectedCountry = ref<CountryCode | undefined | null>()\n\n/** State */\nconst isPhoneNumberInternalUpdate = ref(false)\nconst isCountryInternalUpdate = ref(false)\nconst locales = computed(() => ({\n ...defaultLocales,\n ...props.translations,\n}))\nconst hasAutoFormat = computed(() => props.autoFormat && !props.noFormattingAsYouType)\n\nconst results = ref<Results>({\n isValid: false,\n countryCode: props.countryCode ?? props.defaultCountryCode,\n phoneNumber: props.modelValue,\n})\nconst PhoneInputRef = ref<ComponentPublicInstance>()\n\n/** Logic */\n\nonBeforeMount(async () => {\n if ((props.countryCode || props.defaultCountryCode) && !selectedCountry.value) {\n onCountryChanged({ countryCode: props.countryCode ?? props.defaultCountryCode })\n }\n\n if (props.fetchCountry && !selectedCountry.value) {\n const countryCode = await fetchCountryCode()\n onCountryChanged({ countryCode: countryCode as CountryCode })\n }\n})\n\nonMounted(() => {\n if (!selectedCountry.value && !props.noUseBrowserLocale) {\n const countryCode = getBrowserLocale()?.locale\n onCountryChanged({ countryCode: countryCode as CountryCode })\n }\n})\n\nfunction updateTheResults({\n phone = phoneNumber.value || props.modelValue,\n countryCode = selectedCountry.value,\n checkCountryCode = false,\n}: {\n phone?: string | undefined | null\n countryCode?: CountryCode | undefined | null\n checkCountryCode?: boolean\n}) {\n results.value = getPhoneNumberResults({\n phoneNumber: phone,\n countryCode,\n checkCountryCode,\n })\n}\n\nfunction getPhoneNumberInput() {\n return PhoneInputRef.value?.$el.querySelector('input') as HTMLInputElement | undefined\n}\n\nasync function selectPhoneNumberInput() {\n await nextTick()\n getPhoneNumberInput()?.select()\n}\n\nfunction setSelectedCountry(countryCode?: string | undefined | null) {\n if (!countryCode) {\n return\n }\n\n if (!isCountryAvailable(countryCode)) {\n console.warn(`[MazInputPhoneNumber] Country code not available: \"${countryCode}\"`)\n selectedCountry.value = undefined\n return\n }\n\n selectedCountry.value = countryCode as CountryCode\n}\n\nfunction onPhoneNumberChanged({\n newPhoneNumber,\n}: {\n newPhoneNumber?: string | undefined | null\n}) {\n updateTheResults({ phone: newPhoneNumber })\n\n if (results.value.parsedCountryCode && results.value.parsedCountryCode !== selectedCountry.value) {\n onCountryChanged({\n countryCode: results.value.parsedCountryCode,\n updateResults: false,\n })\n }\n\n if (results.value.isValid && hasAutoFormat.value) {\n phoneNumber.value = results.value.formatNational?.trim().replaceAll(new RegExp(/\\D/g), '')\n }\n else {\n phoneNumber.value = newPhoneNumber\n }\n\n isPhoneNumberInternalUpdate.value = true\n\n if (results.value.e164) {\n emits('update:model-value', results.value.e164)\n }\n else {\n emits('update:model-value', results.value.phoneNumber)\n }\n\n setTimeout(() => {\n isPhoneNumberInternalUpdate.value = false\n }, 0)\n}\n\nfunction onCountryChanged({\n countryCode,\n updateResults = true,\n selectPhoneNumber = false,\n}: {\n countryCode?: CountryCode | undefined | null\n updateResults?: boolean\n selectPhoneNumber?: boolean\n}) {\n if (!countryCode) {\n selectedCountry.value = undefined\n return\n }\n\n isCountryInternalUpdate.value = true\n\n if (countryCode !== selectedCountry.value) {\n setSelectedCountry(countryCode)\n }\n\n if (updateResults) {\n updateTheResults({\n countryCode: selectedCountry.value,\n checkCountryCode: true,\n })\n }\n\n const code = results.value.countryCode || results.value.parsedCountryCode\n emits('country-code', code)\n emits('update:country-code', code)\n\n if (selectPhoneNumber && !results.value.isValid) {\n selectPhoneNumberInput()\n }\n\n setTimeout(() => {\n isCountryInternalUpdate.value = false\n }, 0)\n}\n\n/** Watchers */\n\nwatch(\n () => props.modelValue ?? props.defaultPhoneNumber,\n (value, oldValue) => {\n if (!isPhoneNumberInternalUpdate.value && value !== oldValue && value !== phoneNumber.value) {\n onPhoneNumberChanged({ newPhoneNumber: value })\n }\n },\n { immediate: true },\n)\nwatch(\n () => props.countryCode ?? props.defaultCountryCode,\n (value, oldValue) => {\n if (!isCountryInternalUpdate.value && value && value !== oldValue && value !== selectedCountry.value) {\n onCountryChanged({ countryCode: value })\n }\n },\n { immediate: true },\n)\nwatch(\n results,\n (value) => {\n emits('update', value)\n emits('data', value)\n },\n { immediate: true },\n)\n\n/** Inject */\nexport interface MazInputPhoneNumberInjectedData {\n selectedCountry: typeof selectedCountry\n phoneNumber: typeof phoneNumber\n results: typeof results\n}\n\nprovide<MazInputPhoneNumberInjectedData>('data', {\n selectedCountry,\n phoneNumber,\n results,\n})\n</script>\n\n<template>\n <div\n class=\"m-phone-number-input m-reset-css\"\n :class=\"[props.class, { '--block': block }, orientation ? `--${orientation}` : undefined]\"\n :style\n >\n <CountrySelector\n v-if=\"!noCountrySelector\"\n :id=\"instanceId\"\n v-bind=\"countrySelectAttributes\"\n :model-value=\"selectedCountry\"\n :color\n :size\n :country-locale\n :country-selector-display-name\n :custom-countries-list\n :ignored-countries\n :list-position\n :no-flags\n :no-search\n :exclude-selectors\n :error=\"error || (!noValidationError ? !!phoneNumber && !selectedCountry : false)\"\n :success=\"success || (!noValidationSuccess ? results?.isValid : false)\"\n :locales\n :disabled\n :search-threshold\n :show-code-on-list\n :only-countries\n :preferred-countries\n :width=\"countrySelectorWidth\"\n @update:model-value=\"onCountryChanged({ countryCode: $event, selectPhoneNumber: true })\"\n >\n <template #no-results>\n <!--\n @slot Replace the \"no results\" icon in the country selector list\n -->\n <slot name=\"no-results\" />\n </template>\n <template #selector-flag=\"{ countryCode: codeCountry }\">\n <!--\n @slot Country selector flag\n @binding {String} country-code current selected country code Ex: `\"FR\"`\n -->\n <slot name=\"selector-flag\" :country-code=\"codeCountry\" />\n </template>\n <template #country-list-flag=\"{ isSelected, option }\">\n <!--\n @slot Country list flag\n @binding {String} country-code country code of option Ex: `\"FR\"`\n @binding {{ iso2: string; dialCode: string; name: string; }} option country data\n @binding {Boolean} is-selected `true` if option is selected\n -->\n <slot\n name=\"country-list-flag\"\n :country-code=\"option.iso2\"\n :option=\"option\"\n :is-selected=\"isSelected\"\n />\n </template>\n </CountrySelector>\n\n <PhoneInput\n :id=\"instanceId\"\n ref=\"PhoneInputRef\"\n :model-value=\"phoneNumber\"\n v-bind=\"{ ...$attrs, ...phoneInputAttributes }\"\n :color\n :size\n :auto-format=\"hasAutoFormat\"\n :no-example\n block\n :disabled\n :has-radius=\"!noCountrySelector\"\n :success=\"success || (!noValidationSuccess ? results.isValid : false)\"\n :error=\"error || (!noValidationError ? !!phoneNumber && !results.isValid : false)\"\n :locales\n :label\n :placeholder\n @update:model-value=\"onPhoneNumberChanged({ newPhoneNumber: $event })\"\n />\n </div>\n</template>\n\n<style lang=\"postcss\" scoped>\n .m-phone-number-input {\n @apply maz-relative maz-inline-flex maz-items-center maz-align-top;\n\n &.--block {\n @apply maz-w-full;\n }\n\n &.--col {\n @apply maz-flex-col;\n }\n\n &.--responsive {\n @apply maz-flex-col mob-m:maz-flex-row;\n }\n}\n</style>\n"],"names":["defaultLocales","examples","ref","isCountryAvailable","locale","response","isSupportedCountry","error","getPhoneNumberResults","phoneNumber","countryCode","checkCountryCode","parsedNumber","parsePhoneNumberFromString","isValid","isSameCountryCode","getPhoneNumberExamplesFile","data","getPhoneNumberExample","getExampleNumber","getAsYouTypeFormat","AsYouType","isSameCountryCallingCode","countryCode2","getCountryCallingCode","loadExamples","useLibphonenumber","getCountries","getBrowserLocale","browserLocale","displayNamesInstance","displayNamesLocale","getCountryName","code","customCountriesNameListByIsoCode","getCountriesList","countriesList","isoList","_a","iso2","name","dialCode","fetchCountryCode","reponse","country_code","sanitizePhoneNumber","input","regex","useMazInputPhoneNumber","props","__props","emits","__emit","CountrySelector","defineAsyncComponent","PhoneInput","instanceId","useInstanceUniqId","selectedCountry","isPhoneNumberInternalUpdate","isCountryInternalUpdate","locales","computed","hasAutoFormat","results","PhoneInputRef","onBeforeMount","onCountryChanged","onMounted","updateTheResults","phone","getPhoneNumberInput","selectPhoneNumberInput","nextTick","setSelectedCountry","onPhoneNumberChanged","newPhoneNumber","updateResults","selectPhoneNumber","watch","value","oldValue","provide"],"mappings":"2KAAaA,EAAiB,CAC5B,gBAAiB,CACf,YAAa,eACb,MAAO,iBACP,kBAAmB,oBACrB,EACA,WAAY,CACV,YAAa,eACb,QAAS,UAAA,CAEb,ECGMC,EAAWC,EAAAA,IAAc,EAE/B,SAASC,EAAmBC,EAAgB,CACtC,GAAA,CACI,MAAAC,EAAWC,qBAAmBF,CAAM,EAE1C,OAAKC,IACK,QAAA,MAAM,mDAAmDD,CAAM,oBAAoB,EAEpF,UAKJG,EAAO,CACJ,eAAA,MAAM,iCAAiCA,CAAK,EAAE,EAC/C,EAAA,CAEX,CAEA,SAASC,EAAsB,CAC7B,YAAAC,EACA,YAAAC,EACA,iBAAAC,EAAmB,EACrB,EAIY,CACN,GAAA,CACF,GAAI,CAACF,EACI,MAAA,CACL,QAAS,GACT,YAAAC,CACF,EAGF,MAAME,EAAeC,EAAA,2BAA2BJ,EAAaC,GAAe,MAAS,EAC/EI,GAAUF,GAAA,YAAAA,EAAc,YAAa,GAErCG,EAAoBL,GAAeC,GAAmBC,GAAA,YAAAA,EAAc,UAAWF,IAAgBE,EAAa,QAAU,GAErH,MAAA,CACL,QAASE,GAAW,CAAC,CAACC,EACtB,YAAAL,EACA,kBAAmBE,GAAA,YAAAA,EAAc,QACjC,WAAYA,GAAA,YAAAA,EAAc,aAC1B,mBAAoBA,GAAA,YAAAA,EAAc,mBAClC,eAAgBA,GAAA,YAAAA,EAAc,eAC9B,KAAMA,GAAA,YAAAA,EAAc,UACpB,oBAAqBA,GAAA,YAAAA,EAAc,sBACnC,eAAgBA,GAAA,YAAAA,EAAc,iBAC9B,IAAKA,GAAA,YAAAA,EAAc,SACnB,KAAMA,GAAA,YAAAA,EAAc,OAAO,SAC3B,QAASA,GAAA,YAAAA,EAAc,OAAO,WAC9B,kBAAmBA,GAAA,YAAAA,EAAc,uBACjC,YAAAH,CACF,QAEKF,EAAO,CACZ,MAAM,IAAI,MAAM,oDAAoDA,CAAK,EAAE,CAAA,CAE/E,CAEA,eAAeS,GAA6B,CAC1C,KAAM,CAAE,QAASC,GAAS,MAAM,QAAO,QAAA,EAAA,KAAA,IAAA,QAAA,qCAAwC,CAAA,EAExE,OAAAA,CACT,CAEA,SAASC,EAAsBR,EAA8C,OACvE,GAAA,CACE,OAACT,EAAS,OAIPS,GAAcS,EAAAA,EAAiB,iBAAAT,EAAaT,EAAS,KAAK,IAA5CkB,YAAAA,EAA+C,iBAHlE,aAKGZ,EAAO,CACJ,QAAA,MAAM,iCAAiCA,CAAK,EAAE,CAAA,CAE1D,CAEA,SAASa,EAAmBV,EAA8CD,EAA6D,CACjI,GAAA,CACE,MAAA,CAACA,GAAe,CAACC,EACnB,OAGwB,IAAIW,EAAA,UAAUX,CAAW,EAE1B,MAAMD,CAAW,QAErCF,EAAO,CACZ,MAAM,IAAI,MAAM,6CAA6CA,CAAK,EAAE,CAAA,CAExE,CAEA,SAASe,EAAyBZ,EAA0Ba,EAA2B,CACrF,OAAOC,wBAAsBd,CAAW,IAAMc,EAAAA,sBAAsBD,CAAY,CAClF,CAEA,eAAeE,GAAe,CACxB,GAAA,CACF,GAAIxB,EAAS,MACX,OAEOA,EAAA,MAAQ,MAAMe,EAA2B,QAE7CT,EAAO,CACJ,QAAA,MAAM,yEAA0EA,CAAK,CAAA,CAEjG,CAEO,SAASmB,GAAoB,CAC3B,MAAA,CACL,SAAAzB,EACA,mBAAAmB,EACA,sBAAAZ,EACA,2BAAAQ,EACA,sBAAAE,EACA,yBAAAI,EACA,mBAAAnB,EAAA,aACAwB,EAAA,aAAA,sBACAH,EAAA,sBACA,aAAAC,CACF,CACF,CCzIA,SAASG,GAAmB,CACtB,GAAA,OAAO,OAAW,IACpB,OAGI,MAAAC,EAAgB,OAAO,UAAU,SAEvC,GAAI,CAACA,EACH,OAGF,IAAIzB,EAASyB,EAAc,MAAM,EAAG,CAAC,EAAE,YAAY,EAEnD,OAAIzB,IAAW,KACbA,EAASyB,EAAc,MAAM,EAAG,CAAC,EAAE,YAAY,GAG7CzB,IAAW,OACJA,EAAA,MAEPA,IAAW,OACJA,EAAA,MAGJ,CACL,OAAAA,EACA,cAAAyB,CACF,CACF,CAEA,IAAIC,EACAC,EAEJ,SAASC,EACP5B,EACA6B,EACAC,EACoB,CAChB,OAAAA,GAAA,MAAAA,EAAmCD,GAC9BC,EAAiCD,CAAI,IAG1CF,IAAuB3B,GAAU,CAAC0B,KACfC,EAAA3B,EACE0B,EAAA,IAAI,KAAK,aAAa,CAAC1B,CAAM,EAAG,CAAE,KAAM,SAAU,GAGpE0B,EAAqB,GAAGG,CAAI,EACrC,CAEA,SAASE,EACP/B,EACA8B,EACuB,OACvB,MAAME,EAA2B,CAAC,EAC5BC,EAAUV,EAAAA,aAAa,EAEpBvB,EAAAA,KAAUkC,EAAAV,EAAiB,IAAjB,YAAAU,EAAoB,gBAAiB,QAExD,UAAWC,KAAQF,EAAS,CAC1B,MAAMG,EAAOR,EAAe5B,EAAQmC,EAAML,CAAgC,EAE1E,GAAIM,EACE,GAAA,CACI,MAAAC,EAAWjB,wBAAsBe,CAAI,EAC3CH,EAAc,KAAK,CACjB,KAAAG,EACA,SAAAE,EACA,KAAAD,CAAA,CACD,QAEIjC,EAAO,CACJ,QAAA,MAAM,gDAAgDA,CAAK,EAAE,CAAA,CAEzE,CAGK,OAAA6B,CACT,CAEA,eAAeM,GAAmB,CAC5B,GAAA,CACI,MAAAC,EAAU,MAAM,MAAM,kBAAkB,EACxC,CAAE,aAAAC,CAAA,EAAkB,MAAMD,EAAQ,KAAK,EAEtC,OAAAC,QAEFrC,EAAO,CACZ,MAAM,IAAI,MAAM,2CAA2CA,CAAK,EAAE,CAAA,CAEtE,CAEA,SAASsC,EAAoBC,EAAmC,CAC9D,GAAI,CAACA,EACI,MAAA,GAEH,MAAAC,EAAQ,IAAI,OAAO,aAAa,EAEtC,OAAOD,EAAM,WAAWC,EAAO,EAAE,EAAE,KAAK,CAC1C,CAEO,SAASC,GAAyB,CAChC,MAAA,CACL,oBAAAH,EACA,iBAAAH,EACA,iBAAAd,EACA,iBAAAO,CACF,CACF,y/CCpFA,MAAMc,EAAQC,EAuCRC,EAAQC,EA6BRC,EAAkBC,EAAAA,qBAAqB,IAAM,QAAA,QAAA,EAAA,KAAA,IAAA,QAAO,gCAA2C,CAAA,CAAC,EAChGC,EAAaD,EAAAA,qBAAqB,IAAM,QAAA,QAAA,EAAA,KAAA,IAAA,QAAO,2BAAsC,CAAA,CAAC,EA6GtF,CAAE,iBAAAZ,EAAkB,iBAAAd,CAAiB,EAAIoB,EAAuB,EAChE,CAAE,mBAAA7C,EAAoB,sBAAAK,CAAsB,EAAIkB,EAAkB,EAElE8B,EAAaC,EAAAA,kBAAkB,CACnC,cAAe,sBACf,WAAYR,EAAM,EAAA,CACnB,EAIKxC,EAAcP,EAAAA,IAA+B,EAC7CwD,EAAkBxD,EAAAA,IAAoC,EAGtDyD,EAA8BzD,MAAI,EAAK,EACvC0D,EAA0B1D,MAAI,EAAK,EACnC2D,EAAUC,EAAAA,SAAS,KAAO,CAC9B,GAAG9D,EACH,GAAGiD,EAAM,YAAA,EACT,EACIc,EAAgBD,EAAAA,SAAS,IAAMb,EAAM,YAAc,CAACA,EAAM,qBAAqB,EAE/Ee,EAAU9D,EAAAA,IAAa,CAC3B,QAAS,GACT,YAAa+C,EAAM,aAAeA,EAAM,mBACxC,YAAaA,EAAM,UAAA,CACpB,EACKgB,EAAgB/D,EAAAA,IAA6B,EAInDgE,EAAAA,cAAc,SAAY,CAKxB,IAJKjB,EAAM,aAAeA,EAAM,qBAAuB,CAACS,EAAgB,OACtES,EAAiB,CAAE,YAAalB,EAAM,aAAeA,EAAM,mBAAoB,EAG7EA,EAAM,cAAgB,CAACS,EAAgB,MAAO,CAC1C,MAAAhD,EAAc,MAAMgC,EAAiB,EAC1ByB,EAAA,CAAE,YAAAzD,EAAyC,CAAA,CAC9D,CACD,EAED0D,EAAAA,UAAU,IAAM,OACd,GAAI,CAACV,EAAgB,OAAS,CAACT,EAAM,mBAAoB,CACjD,MAAAvC,GAAc4B,EAAAV,MAAA,YAAAU,EAAoB,OACvB6B,EAAA,CAAE,YAAAzD,EAAyC,CAAA,CAC9D,CACD,EAED,SAAS2D,EAAiB,CACxB,MAAAC,EAAQ7D,EAAY,OAASwC,EAAM,WACnC,YAAAvC,EAAcgD,EAAgB,MAC9B,iBAAA/C,EAAmB,EAAA,EAKlB,CACDqD,EAAQ,MAAQxD,EAAsB,CACpC,YAAa8D,EACb,YAAA5D,EACA,iBAAAC,CAAA,CACD,CAAA,CAGH,SAAS4D,GAAsB,OAC7B,OAAOjC,EAAA2B,EAAc,QAAd,YAAA3B,EAAqB,IAAI,cAAc,QAAO,CAGvD,eAAekC,GAAyB,OACtC,MAAMC,WAAS,GACfnC,EAAAiC,EAAA,IAAA,MAAAjC,EAAuB,QAAO,CAGhC,SAASoC,EAAmBhE,EAAyC,CACnE,GAAKA,EAID,IAAA,CAACP,EAAmBO,CAAW,EAAG,CAC5B,QAAA,KAAK,sDAAsDA,CAAW,GAAG,EACjFgD,EAAgB,MAAQ,OACxB,MAAA,CAGFA,EAAgB,MAAQhD,EAAA,CAG1B,SAASiE,EAAqB,CAC5B,eAAAC,CAAA,EAGC,OACgBP,EAAA,CAAE,MAAOO,EAAgB,EAEtCZ,EAAQ,MAAM,mBAAqBA,EAAQ,MAAM,oBAAsBN,EAAgB,OACxES,EAAA,CACf,YAAaH,EAAQ,MAAM,kBAC3B,cAAe,EAAA,CAChB,EAGCA,EAAQ,MAAM,SAAWD,EAAc,MAC7BtD,EAAA,OAAQ6B,EAAA0B,EAAQ,MAAM,iBAAd,YAAA1B,EAA8B,OAAO,WAAW,IAAI,OAAO,KAAK,EAAG,IAGvF7B,EAAY,MAAQmE,EAGtBjB,EAA4B,MAAQ,GAEhCK,EAAQ,MAAM,KACVb,EAAA,qBAAsBa,EAAQ,MAAM,IAAI,EAGxCb,EAAA,qBAAsBa,EAAQ,MAAM,WAAW,EAGvD,WAAW,IAAM,CACfL,EAA4B,MAAQ,IACnC,CAAC,CAAA,CAGN,SAASQ,EAAiB,CACxB,YAAAzD,EACA,cAAAmE,EAAgB,GAChB,kBAAAC,EAAoB,EAAA,EAKnB,CACD,GAAI,CAACpE,EAAa,CAChBgD,EAAgB,MAAQ,OACxB,MAAA,CAGFE,EAAwB,MAAQ,GAE5BlD,IAAgBgD,EAAgB,OAClCgB,EAAmBhE,CAAW,EAG5BmE,GACeR,EAAA,CACf,YAAaX,EAAgB,MAC7B,iBAAkB,EAAA,CACnB,EAGH,MAAMzB,EAAO+B,EAAQ,MAAM,aAAeA,EAAQ,MAAM,kBACxDb,EAAM,eAAgBlB,CAAI,EAC1BkB,EAAM,sBAAuBlB,CAAI,EAE7B6C,GAAqB,CAACd,EAAQ,MAAM,SACfQ,EAAA,EAGzB,WAAW,IAAM,CACfZ,EAAwB,MAAQ,IAC/B,CAAC,CAAA,CAKNmB,OAAAA,EAAA,MACE,IAAM9B,EAAM,YAAcA,EAAM,mBAChC,CAAC+B,EAAOC,IAAa,CACf,CAACtB,EAA4B,OAASqB,IAAUC,GAAYD,IAAUvE,EAAY,OAC/DkE,EAAA,CAAE,eAAgBK,EAAO,CAElD,EACA,CAAE,UAAW,EAAK,CACpB,EACAD,EAAA,MACE,IAAM9B,EAAM,aAAeA,EAAM,mBACjC,CAAC+B,EAAOC,IAAa,CACf,CAACrB,EAAwB,OAASoB,GAASA,IAAUC,GAAYD,IAAUtB,EAAgB,OAC5ES,EAAA,CAAE,YAAaa,EAAO,CAE3C,EACA,CAAE,UAAW,EAAK,CACpB,EACAD,EAAA,MACEf,EACCgB,GAAU,CACT7B,EAAM,SAAU6B,CAAK,EACrB7B,EAAM,OAAQ6B,CAAK,CACrB,EACA,CAAE,UAAW,EAAK,CACpB,EASAE,EAAAA,QAAyC,OAAQ,CAC/C,gBAAAxB,EACA,YAAAjD,EACA,QAAAuD,CAAA,CACD"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { defineComponent as w, defineAsyncComponent as k, ref as p, watch as B, computed as a, onMounted as F, openBlock as h, createBlock as A, withKeys as P, withCtx as T, renderSlot as z, createVNode as C, unref as E, createCommentVNode as S, nextTick as M } from "vue";
|
|
2
|
-
import O from "../
|
|
3
|
-
import
|
|
2
|
+
import { currency as O } from "../filters/currency.mjs";
|
|
3
|
+
import j from "../components/MazInput.mjs";
|
|
4
4
|
const U = /* @__PURE__ */ w({
|
|
5
5
|
__name: "MazInputPrice",
|
|
6
6
|
props: {
|
|
@@ -25,7 +25,7 @@ const U = /* @__PURE__ */ w({
|
|
|
25
25
|
var e;
|
|
26
26
|
return (e = t.modelValue) == null ? void 0 : e.toString();
|
|
27
27
|
}), c = a(() => t.modelValue), m = a(
|
|
28
|
-
() => typeof c.value == "number" ?
|
|
28
|
+
() => typeof c.value == "number" ? O(c.value, t.locale, { ...t.currencyOptions, currency: t.currency }) : void 0
|
|
29
29
|
);
|
|
30
30
|
function i(e) {
|
|
31
31
|
const o = typeof e == "string" && e.startsWith("-");
|
|
@@ -57,7 +57,7 @@ const U = /* @__PURE__ */ w({
|
|
|
57
57
|
function d(e) {
|
|
58
58
|
u.value = i(e);
|
|
59
59
|
}
|
|
60
|
-
return (e, o) => (h(), A(
|
|
60
|
+
return (e, o) => (h(), A(j, {
|
|
61
61
|
"model-value": V.value,
|
|
62
62
|
class: "maz-input-price m-reset-css",
|
|
63
63
|
block: e.block,
|
|
@@ -83,4 +83,4 @@ const U = /* @__PURE__ */ w({
|
|
|
83
83
|
export {
|
|
84
84
|
U as _
|
|
85
85
|
};
|
|
86
|
-
//# sourceMappingURL=MazInputPrice.vue_vue_type_script_setup_true_lang.
|
|
86
|
+
//# sourceMappingURL=MazInputPrice.vue_vue_type_script_setup_true_lang.C873_Haj.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MazInputPrice.vue_vue_type_script_setup_true_lang.C873_Haj.mjs","sources":["../../src/components/MazInputPrice.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed, defineAsyncComponent, nextTick, onMounted, ref, watch } from 'vue'\nimport { currency as currencyFilter, type FilterCurrencyOptions } from '../filters/currency'\nimport MazInput from './MazInput.vue'\n\nconst props = withDefaults(defineProps<MazInputPriceProps>(), {\n modelValue: undefined,\n currency: 'EUR',\n locale: 'fr-FR',\n min: Number.NEGATIVE_INFINITY,\n max: Number.POSITIVE_INFINITY,\n noIcon: false,\n})\n\nconst emits = defineEmits<{\n 'update:model-value': [value: number | undefined]\n 'input': [value: number | undefined]\n 'formatted': [value: string | undefined]\n 'blur': [value: Event]\n 'focus': [value: Event]\n}>()\n\nconst BanknotesIcon = defineAsyncComponent(() => import('../../icons/banknotes.svg'))\n\nexport interface MazInputPriceProps {\n /** @model The value of the input */\n modelValue?: number\n /** The currency to use */\n currency?: string\n /** The locale to use */\n locale?: string\n /** The minimum value that the input can accept */\n min?: number\n /** The maximum value that the input can accept */\n max?: number\n /** The input will be displayed without icon */\n noIcon?: boolean\n /** The input will be displayed in full width */\n block?: boolean\n /** Will display the input in error state. */\n error?: boolean\n /** The hint text to display below the input. */\n hint?: string\n /** Will display the input in success state. */\n success?: boolean\n /** Will display the input in warning state. */\n warning?: boolean\n /** Options for the currency helper - [see](https://maz-ui.com/helpers/currency) */\n currencyOptions?: Omit<FilterCurrencyOptions, 'currency'>\n}\n\nconst internalValue = ref<number | undefined>(getAdjustedPrice(props.modelValue))\nwatch(() => props.modelValue, updateInternalValue)\n\nconst isActive = ref(false)\nconst valueString = computed<string | undefined>(() => {\n return props.modelValue?.toString()\n})\nconst valueNumber = computed<number | undefined>(() => {\n return props.modelValue\n})\n\nconst priceFormatted = computed(() =>\n typeof valueNumber.value === 'number' ? currencyFilter(valueNumber.value, props.locale, { ...props.currencyOptions, currency: props.currency }) : undefined,\n)\n\nfunction getAdjustedPrice(value?: string | number) {\n const isNegative = typeof value === 'string' && value.startsWith('-')\n\n let newValue = typeof value === 'string'\n ? Number.parseFloat(value.replace(',', '.').replaceAll(/[^\\d.]/g, ''))\n : value\n\n newValue = isNegative && newValue ? -newValue : newValue\n\n if (typeof newValue !== 'number' || Number.isNaN(newValue))\n newValue = undefined\n if (newValue && newValue < props.min)\n newValue = props.min\n if (newValue && newValue > props.max)\n newValue = props.max\n\n return newValue\n}\n\nconst displayPrice = computed(() => {\n if (isActive.value)\n return valueString.value\n if (typeof props.modelValue === 'number')\n return priceFormatted.value\n\n return undefined\n})\n\nasync function emitValues(newValue?: string | number) {\n const adjustedPrice = getAdjustedPrice(newValue)\n emits('update:model-value', adjustedPrice)\n\n await nextTick()\n emits('formatted', priceFormatted.value)\n}\n\nonMounted(() => {\n emitValues(props.modelValue)\n})\n\nfunction onBlur(event: Event) {\n isActive.value = false\n emitValues(internalValue.value)\n emits('blur', event)\n}\nfunction onFocus(event: Event) {\n isActive.value = true\n emits('focus', event)\n}\nfunction onInput() {\n emits('input', internalValue.value)\n}\nfunction updateInternalValue(value?: string | number) {\n internalValue.value = getAdjustedPrice(value)\n}\n</script>\n\n<template>\n <MazInput\n :model-value=\"displayPrice\"\n class=\"maz-input-price m-reset-css\"\n :block\n :error\n :success\n :warning\n :hint\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n @input=\"onInput\"\n @keydown.enter=\"emitValues(internalValue)\"\n @update:model-value=\"updateInternalValue($event)\"\n >\n <template #left-icon>\n <slot v-if=\"!noIcon\" name=\"left-icon\">\n <BanknotesIcon class=\"maz-text-xl\" />\n </slot>\n </template>\n </MazInput>\n</template>\n"],"names":["props","__props","emits","__emit","BanknotesIcon","defineAsyncComponent","internalValue","ref","getAdjustedPrice","watch","updateInternalValue","isActive","valueString","computed","_a","valueNumber","priceFormatted","currencyFilter","value","isNegative","newValue","displayPrice","emitValues","adjustedPrice","nextTick","onMounted","onBlur","event","onFocus","onInput"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAKA,UAAMA,IAAQC,GASRC,IAAQC,GAQRC,IAAgBC,EAAqB,MAAM,OAAO,0BAA2B,CAAC,GA6B9EC,IAAgBC,EAAwBC,EAAiBR,EAAM,UAAU,CAAC;AAC1E,IAAAS,EAAA,MAAMT,EAAM,YAAYU,CAAmB;AAE3C,UAAAC,IAAWJ,EAAI,EAAK,GACpBK,IAAcC,EAA6B,MAAM;;AAC9C,cAAAC,IAAAd,EAAM,eAAN,gBAAAc,EAAkB;AAAA,IAAS,CACnC,GACKC,IAAcF,EAA6B,MACxCb,EAAM,UACd,GAEKgB,IAAiBH;AAAA,MAAS,MAC9B,OAAOE,EAAY,SAAU,WAAWE,EAAeF,EAAY,OAAOf,EAAM,QAAQ,EAAE,GAAGA,EAAM,iBAAiB,UAAUA,EAAM,SAAU,CAAA,IAAI;AAAA,IACpJ;AAEA,aAASQ,EAAiBU,GAAyB;AACjD,YAAMC,IAAa,OAAOD,KAAU,YAAYA,EAAM,WAAW,GAAG;AAEpE,UAAIE,IAAW,OAAOF,KAAU,WAC5B,OAAO,WAAWA,EAAM,QAAQ,KAAK,GAAG,EAAE,WAAW,WAAW,EAAE,CAAC,IACnEA;AAEO,aAAAE,IAAAD,KAAcC,IAAW,CAACA,IAAWA,IAE5C,OAAOA,KAAa,YAAY,OAAO,MAAMA,CAAQ,OAC5CA,IAAA,SACTA,KAAYA,IAAWpB,EAAM,QAC/BoB,IAAWpB,EAAM,MACfoB,KAAYA,IAAWpB,EAAM,QAC/BoB,IAAWpB,EAAM,MAEZoB;AAAA,IAAA;AAGH,UAAAC,IAAeR,EAAS,MAAM;AAClC,UAAIF,EAAS;AACX,eAAOC,EAAY;AACjB,UAAA,OAAOZ,EAAM,cAAe;AAC9B,eAAOgB,EAAe;AAAA,IAEjB,CACR;AAED,mBAAeM,EAAWF,GAA4B;AAC9C,YAAAG,IAAgBf,EAAiBY,CAAQ;AAC/C,MAAAlB,EAAM,sBAAsBqB,CAAa,GAEzC,MAAMC,EAAS,GACTtB,EAAA,aAAac,EAAe,KAAK;AAAA,IAAA;AAGzC,IAAAS,EAAU,MAAM;AACd,MAAAH,EAAWtB,EAAM,UAAU;AAAA,IAAA,CAC5B;AAED,aAAS0B,EAAOC,GAAc;AAC5B,MAAAhB,EAAS,QAAQ,IACjBW,EAAWhB,EAAc,KAAK,GAC9BJ,EAAM,QAAQyB,CAAK;AAAA,IAAA;AAErB,aAASC,EAAQD,GAAc;AAC7B,MAAAhB,EAAS,QAAQ,IACjBT,EAAM,SAASyB,CAAK;AAAA,IAAA;AAEtB,aAASE,IAAU;AACX,MAAA3B,EAAA,SAASI,EAAc,KAAK;AAAA,IAAA;AAEpC,aAASI,EAAoBQ,GAAyB;AACtC,MAAAZ,EAAA,QAAQE,EAAiBU,CAAK;AAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const n=require("vue"),g=require("../
|
|
2
|
-
//# sourceMappingURL=MazInputPrice.vue_vue_type_script_setup_true_lang.
|
|
1
|
+
"use strict";const n=require("vue"),g=require("../filters/currency.cjs"),w=require("../components/MazInput.cjs"),k=n.defineComponent({__name:"MazInputPrice",props:{modelValue:{default:void 0},currency:{default:"EUR"},locale:{default:"fr-FR"},min:{default:Number.NEGATIVE_INFINITY},max:{default:Number.POSITIVE_INFINITY},noIcon:{type:Boolean,default:!1},block:{type:Boolean},error:{type:Boolean},hint:{},success:{type:Boolean},warning:{type:Boolean},currencyOptions:{}},emits:["update:model-value","input","formatted","blur","focus"],setup(f,{emit:p}){const o=f,u=p,v=n.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./banknotes.CdkS5KVY.cjs"))),l=n.ref(c(o.modelValue));n.watch(()=>o.modelValue,d);const a=n.ref(!1),y=n.computed(()=>{var e;return(e=o.modelValue)==null?void 0:e.toString()}),i=n.computed(()=>o.modelValue),m=n.computed(()=>typeof i.value=="number"?g.currency(i.value,o.locale,{...o.currencyOptions,currency:o.currency}):void 0);function c(e){const r=typeof e=="string"&&e.startsWith("-");let t=typeof e=="string"?Number.parseFloat(e.replace(",",".").replaceAll(/[^\d.]/g,"")):e;return t=r&&t?-t:t,(typeof t!="number"||Number.isNaN(t))&&(t=void 0),t&&t<o.min&&(t=o.min),t&&t>o.max&&(t=o.max),t}const I=n.computed(()=>{if(a.value)return y.value;if(typeof o.modelValue=="number")return m.value});async function s(e){const r=c(e);u("update:model-value",r),await n.nextTick(),u("formatted",m.value)}n.onMounted(()=>{s(o.modelValue)});function V(e){a.value=!1,s(l.value),u("blur",e)}function N(e){a.value=!0,u("focus",e)}function b(){u("input",l.value)}function d(e){l.value=c(e)}return(e,r)=>(n.openBlock(),n.createBlock(w.default,{"model-value":I.value,class:"maz-input-price m-reset-css",block:e.block,error:e.error,success:e.success,warning:e.warning,hint:e.hint,onFocus:N,onBlur:V,onInput:b,onKeydown:r[0]||(r[0]=n.withKeys(t=>s(l.value),["enter"])),"onUpdate:modelValue":r[1]||(r[1]=t=>d(t))},{"left-icon":n.withCtx(()=>[e.noIcon?n.createCommentVNode("",!0):n.renderSlot(e.$slots,"left-icon",{key:0},()=>[n.createVNode(n.unref(v),{class:"maz-text-xl"})])]),_:3},8,["model-value","block","error","success","warning","hint"]))}});exports._sfc_main=k;
|
|
2
|
+
//# sourceMappingURL=MazInputPrice.vue_vue_type_script_setup_true_lang.Ovh3fdmh.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MazInputPrice.vue_vue_type_script_setup_true_lang.Ovh3fdmh.cjs","sources":["../../src/components/MazInputPrice.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed, defineAsyncComponent, nextTick, onMounted, ref, watch } from 'vue'\nimport { currency as currencyFilter, type FilterCurrencyOptions } from '../filters/currency'\nimport MazInput from './MazInput.vue'\n\nconst props = withDefaults(defineProps<MazInputPriceProps>(), {\n modelValue: undefined,\n currency: 'EUR',\n locale: 'fr-FR',\n min: Number.NEGATIVE_INFINITY,\n max: Number.POSITIVE_INFINITY,\n noIcon: false,\n})\n\nconst emits = defineEmits<{\n 'update:model-value': [value: number | undefined]\n 'input': [value: number | undefined]\n 'formatted': [value: string | undefined]\n 'blur': [value: Event]\n 'focus': [value: Event]\n}>()\n\nconst BanknotesIcon = defineAsyncComponent(() => import('../../icons/banknotes.svg'))\n\nexport interface MazInputPriceProps {\n /** @model The value of the input */\n modelValue?: number\n /** The currency to use */\n currency?: string\n /** The locale to use */\n locale?: string\n /** The minimum value that the input can accept */\n min?: number\n /** The maximum value that the input can accept */\n max?: number\n /** The input will be displayed without icon */\n noIcon?: boolean\n /** The input will be displayed in full width */\n block?: boolean\n /** Will display the input in error state. */\n error?: boolean\n /** The hint text to display below the input. */\n hint?: string\n /** Will display the input in success state. */\n success?: boolean\n /** Will display the input in warning state. */\n warning?: boolean\n /** Options for the currency helper - [see](https://maz-ui.com/helpers/currency) */\n currencyOptions?: Omit<FilterCurrencyOptions, 'currency'>\n}\n\nconst internalValue = ref<number | undefined>(getAdjustedPrice(props.modelValue))\nwatch(() => props.modelValue, updateInternalValue)\n\nconst isActive = ref(false)\nconst valueString = computed<string | undefined>(() => {\n return props.modelValue?.toString()\n})\nconst valueNumber = computed<number | undefined>(() => {\n return props.modelValue\n})\n\nconst priceFormatted = computed(() =>\n typeof valueNumber.value === 'number' ? currencyFilter(valueNumber.value, props.locale, { ...props.currencyOptions, currency: props.currency }) : undefined,\n)\n\nfunction getAdjustedPrice(value?: string | number) {\n const isNegative = typeof value === 'string' && value.startsWith('-')\n\n let newValue = typeof value === 'string'\n ? Number.parseFloat(value.replace(',', '.').replaceAll(/[^\\d.]/g, ''))\n : value\n\n newValue = isNegative && newValue ? -newValue : newValue\n\n if (typeof newValue !== 'number' || Number.isNaN(newValue))\n newValue = undefined\n if (newValue && newValue < props.min)\n newValue = props.min\n if (newValue && newValue > props.max)\n newValue = props.max\n\n return newValue\n}\n\nconst displayPrice = computed(() => {\n if (isActive.value)\n return valueString.value\n if (typeof props.modelValue === 'number')\n return priceFormatted.value\n\n return undefined\n})\n\nasync function emitValues(newValue?: string | number) {\n const adjustedPrice = getAdjustedPrice(newValue)\n emits('update:model-value', adjustedPrice)\n\n await nextTick()\n emits('formatted', priceFormatted.value)\n}\n\nonMounted(() => {\n emitValues(props.modelValue)\n})\n\nfunction onBlur(event: Event) {\n isActive.value = false\n emitValues(internalValue.value)\n emits('blur', event)\n}\nfunction onFocus(event: Event) {\n isActive.value = true\n emits('focus', event)\n}\nfunction onInput() {\n emits('input', internalValue.value)\n}\nfunction updateInternalValue(value?: string | number) {\n internalValue.value = getAdjustedPrice(value)\n}\n</script>\n\n<template>\n <MazInput\n :model-value=\"displayPrice\"\n class=\"maz-input-price m-reset-css\"\n :block\n :error\n :success\n :warning\n :hint\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n @input=\"onInput\"\n @keydown.enter=\"emitValues(internalValue)\"\n @update:model-value=\"updateInternalValue($event)\"\n >\n <template #left-icon>\n <slot v-if=\"!noIcon\" name=\"left-icon\">\n <BanknotesIcon class=\"maz-text-xl\" />\n </slot>\n </template>\n </MazInput>\n</template>\n"],"names":["props","__props","emits","__emit","BanknotesIcon","defineAsyncComponent","internalValue","ref","getAdjustedPrice","watch","updateInternalValue","isActive","valueString","computed","_a","valueNumber","priceFormatted","currencyFilter","value","isNegative","newValue","displayPrice","emitValues","adjustedPrice","nextTick","onMounted","onBlur","event","onFocus","onInput"],"mappings":"uiBAKA,MAAMA,EAAQC,EASRC,EAAQC,EAQRC,EAAgBC,EAAAA,qBAAqB,IAAM,QAAA,QAAA,EAAA,KAAA,IAAA,QAAO,0BAA2B,CAAA,CAAC,EA6B9EC,EAAgBC,EAAA,IAAwBC,EAAiBR,EAAM,UAAU,CAAC,EAC1ES,EAAAA,MAAA,IAAMT,EAAM,WAAYU,CAAmB,EAE3C,MAAAC,EAAWJ,MAAI,EAAK,EACpBK,EAAcC,EAAAA,SAA6B,IAAM,OAC9C,OAAAC,EAAAd,EAAM,aAAN,YAAAc,EAAkB,UAAS,CACnC,EACKC,EAAcF,EAAAA,SAA6B,IACxCb,EAAM,UACd,EAEKgB,EAAiBH,EAAA,SAAS,IAC9B,OAAOE,EAAY,OAAU,SAAWE,EAAAA,SAAeF,EAAY,MAAOf,EAAM,OAAQ,CAAE,GAAGA,EAAM,gBAAiB,SAAUA,EAAM,QAAU,CAAA,EAAI,MACpJ,EAEA,SAASQ,EAAiBU,EAAyB,CACjD,MAAMC,EAAa,OAAOD,GAAU,UAAYA,EAAM,WAAW,GAAG,EAEpE,IAAIE,EAAW,OAAOF,GAAU,SAC5B,OAAO,WAAWA,EAAM,QAAQ,IAAK,GAAG,EAAE,WAAW,UAAW,EAAE,CAAC,EACnEA,EAEO,OAAAE,EAAAD,GAAcC,EAAW,CAACA,EAAWA,GAE5C,OAAOA,GAAa,UAAY,OAAO,MAAMA,CAAQ,KAC5CA,EAAA,QACTA,GAAYA,EAAWpB,EAAM,MAC/BoB,EAAWpB,EAAM,KACfoB,GAAYA,EAAWpB,EAAM,MAC/BoB,EAAWpB,EAAM,KAEZoB,CAAA,CAGH,MAAAC,EAAeR,EAAAA,SAAS,IAAM,CAClC,GAAIF,EAAS,MACX,OAAOC,EAAY,MACjB,GAAA,OAAOZ,EAAM,YAAe,SAC9B,OAAOgB,EAAe,KAEjB,CACR,EAED,eAAeM,EAAWF,EAA4B,CAC9C,MAAAG,EAAgBf,EAAiBY,CAAQ,EAC/ClB,EAAM,qBAAsBqB,CAAa,EAEzC,MAAMC,WAAS,EACTtB,EAAA,YAAac,EAAe,KAAK,CAAA,CAGzCS,EAAAA,UAAU,IAAM,CACdH,EAAWtB,EAAM,UAAU,CAAA,CAC5B,EAED,SAAS0B,EAAOC,EAAc,CAC5BhB,EAAS,MAAQ,GACjBW,EAAWhB,EAAc,KAAK,EAC9BJ,EAAM,OAAQyB,CAAK,CAAA,CAErB,SAASC,EAAQD,EAAc,CAC7BhB,EAAS,MAAQ,GACjBT,EAAM,QAASyB,CAAK,CAAA,CAEtB,SAASE,GAAU,CACX3B,EAAA,QAASI,EAAc,KAAK,CAAA,CAEpC,SAASI,EAAoBQ,EAAyB,CACtCZ,EAAA,MAAQE,EAAiBU,CAAK,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";require('../assets/MazPicker.fY2qT4ER.css');const o=require("vue"),$=require("./_plugin-vue_export-helper.BHFhmbuH.cjs"),ae=require("../filters/capitalize.cjs"),H=require("../filters/date.cjs"),r=require("dayjs"),oe=require("dayjs/plugin/weekday"),ne=require("../composables/useInstanceUniqId.cjs"),re=require("../directives/vClickOutside.cjs"),le=require("./chevron-down.DdnENkzR.cjs"),ie=require("dayjs/plugin/customParseFormat"),se=require("dayjs/plugin/isBetween"),de={class:"m-picker-container__wrapper"},ue=o.defineComponent({__name:"MazPickerContainer",props:{modelValue:{type:[String,Object],default:void 0},calendarDate:{type:String,required:!0},color:{type:String,required:!0},locale:{type:String,required:!0},noHeader:{type:Boolean,default:!1},firstDayOfWeek:{type:Number,required:!0},double:{type:Boolean,required:!0},hasDate:{type:Boolean,required:!0},minDate:{type:String,default:void 0},maxDate:{type:String,default:void 0},inline:{type:Boolean,required:!0},noShortcuts:{type:Boolean,required:!0},shortcuts:{type:Array,required:!0},shortcut:{type:String,default:void 0},hasTime:{type:Boolean,required:!0},isOpen:{type:Boolean,required:!0},format:{type:String,required:!0},isHour12:{type:Boolean,required:!0},formatterOptions:{type:Object,required:!0},minuteInterval:{type:Number,required:!0},disabled:{type:Boolean,required:!0},disabledWeekly:{type:Array,required:!0},disabledHours:{type:Array,required:!0},disabledDates:{type:Array,required:!0}},emits:["update:model-value","update:calendar-date","close"],setup(a,{emit:l}){const e=a,u=l,m=o.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./MazPickerCalendar.CVZ8VoYr.cjs"))),b=o.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./MazPickerHeader.l7NcmiGH.cjs"))),y=o.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./MazPickerTime.7cxq-Qac.cjs"))),f=o.computed({get:()=>e.modelValue,set:h=>{u("update:model-value",h)}}),v=o.computed({get:()=>e.calendarDate,set:h=>u("update:calendar-date",h)});return(h,s)=>(o.openBlock(),o.createElementBlock("div",{class:o.normalizeClass(["m-picker-container",{"--has-double":a.double,"--is-inline":a.inline,"--has-date":a.hasDate}])},[a.noHeader?o.createCommentVNode("",!0):(o.openBlock(),o.createBlock(o.unref(b),{key:0,color:a.color,"has-time":a.hasTime,"model-value":a.modelValue,locale:a.locale,"calendar-date":v.value,"has-date":a.hasDate,"formatter-options":a.formatterOptions,double:a.double,"no-shortcuts":a.noShortcuts,class:"m-picker-container__header"},null,8,["color","has-time","model-value","locale","calendar-date","has-date","formatter-options","double","no-shortcuts"])),o.createElementVNode("div",de,[a.hasDate?(o.openBlock(),o.createBlock(o.unref(m),{key:0,modelValue:f.value,"onUpdate:modelValue":s[0]||(s[0]=c=>f.value=c),"calendar-date":v.value,"onUpdate:calendarDate":s[1]||(s[1]=c=>v.value=c),color:a.color,locale:a.locale,"has-time":a.hasTime,double:a.double,"min-date":a.minDate,"max-date":a.maxDate,"first-day-of-week":a.firstDayOfWeek,disabled:a.disabled,"disabled-weekly":a.disabledWeekly,"disabled-dates":a.disabledDates,shortcuts:a.shortcuts,shortcut:a.shortcut,"no-shortcuts":a.noShortcuts,class:"m-picker-container__calendar"},null,8,["modelValue","calendar-date","color","locale","has-time","double","min-date","max-date","first-day-of-week","disabled","disabled-weekly","disabled-dates","shortcuts","shortcut","no-shortcuts"])):o.createCommentVNode("",!0),a.hasTime?(o.openBlock(),o.createBlock(o.unref(y),{key:1,modelValue:f.value,"onUpdate:modelValue":s[2]||(s[2]=c=>f.value=c),"calendar-date":v.value,"onUpdate:calendarDate":s[3]||(s[3]=c=>v.value=c),"is-open":a.isOpen,color:a.color,locale:a.locale,"min-date":a.minDate,"max-date":a.maxDate,"has-date":a.hasDate,format:a.format,disabled:a.disabled,"disabled-hours":a.disabledHours,"minute-interval":a.minuteInterval,"formatter-options":a.formatterOptions,"is-hour12":a.isHour12,class:"m-picker-container__time"},null,8,["modelValue","calendar-date","is-open","color","locale","min-date","max-date","has-date","format","disabled","disabled-hours","minute-interval","formatter-options","is-hour12"])):o.createCommentVNode("",!0)])],2))}}),ce=$._export_sfc(ue,[["__scopeId","data-v-191bea30"]]);r.extend(oe);function E({value:a,locale:l,options:e}){return a?ae.capitalize(H.date(a,l,e)):void 0}function me({value:a,locale:l,options:e}){const u=E({value:a.start,locale:l,options:e}),m=E({value:a.end,locale:l,options:e});return u||m?`${u||"..."} - ${m||"..."}`:void 0}function fe(a){return r(a).startOf("month").day()}function ve(a,l){const e=r().locale(a),u=[];for(let m=0;m<7;m++){const b=e.day(m+l).toDate(),y=H.date(b,a,{weekday:"short"});u.push(y)}return u}function ye(a){return r(a).daysInMonth()}function he(a){return r().isSame(a,"date")}function De(a,l,e){return r(a).isSame(l,e)}function U(a,l){return r(a).day()===l}function I(a,l="YYYY-MM-DD"){if(a)return r(a).format(l)}function be(a,l="YYYY-MM-DD"){return{start:I(a.start,l),end:I(a.end,l)}}function P({value:a,minDate:l,maxDate:e,format:u}){return l&&r(a).isBefore(l)?{newValue:l,newCurrentDate:r(l,u).format()}:e&&r(a).isAfter(e)?{newValue:e,newCurrentDate:r(e,u).format()}:{newValue:void 0,newCurrentDate:void 0}}function B({value:a,disabledWeekly:l}){return l.some(e=>U(a,e))}function C({value:a,disabledDates:l}){return l.some(e=>r(a).isSame(r(e),"date"))}const pe=function(a,l,e=0,u=!0){a.scrollTo({top:l.offsetTop-e,behavior:u?"smooth":"auto"})};function ke(a,l){return a.reduce((e,u)=>Math.abs(u-l)<Math.abs(e-l)?u:e)}function Ye(){try{return typeof window>"u"?void 0:window.navigator.language}catch(a){throw new Error(`[MazInputPhoneNumber] (browserLocale) ${a}`)}}async function we(){try{const a=await fetch("https://ipwho.is"),{country_code:l}=await a.json();return l}catch(a){console.error(`[maz-ui](MazPicker)(fetchCountryCode) ${a}`)}}const Me=o.defineComponent({inheritAttrs:!1,__name:"MazPicker",props:{id:{},style:{default:void 0},class:{default:void 0},modelValue:{default:void 0},format:{default:"YYYY-MM-DD"},open:{type:Boolean,default:!1},label:{default:void 0},placeholder:{default:void 0},inputDateStyle:{default:()=>({dateStyle:"full"})},inputDateTransformer:{type:Function,default:void 0},locale:{default:void 0},noHeader:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},firstDayOfWeek:{default:0},autoClose:{type:Boolean,default:!1},customElementSelector:{default:void 0},double:{type:Boolean,default:!1},inline:{type:Boolean,default:!1},color:{default:"primary"},pickerPosition:{default:void 0},time:{type:Boolean,default:!1},onlyTime:{type:Boolean,default:!1},minuteInterval:{default:5},noUseBrowserLocale:{type:Boolean,default:!1},noFetchLocal:{type:Boolean,default:!1},noShortcuts:{type:Boolean,default:!1},shortcuts:{default:()=>[{label:"Last 7 days",identifier:"last7Days",value:{start:r().subtract(6,"day").format("YYYY-MM-DD"),end:r().format("YYYY-MM-DD")}},{label:"Last 30 days",identifier:"last30Days",value:{start:r().subtract(29,"day").format("YYYY-MM-DD"),end:r().format("YYYY-MM-DD")}},{label:"This week",identifier:"thisWeek",value:{start:r().startOf("week").format("YYYY-MM-DD"),end:r().endOf("week").format("YYYY-MM-DD")}},{label:"Last week",identifier:"lastWeek",value:{start:r().subtract(1,"week").startOf("week").format("YYYY-MM-DD"),end:r().subtract(1,"week").endOf("week").format("YYYY-MM-DD")}},{label:"This month",identifier:"thisMonth",value:{start:r().set("date",1).format("YYYY-MM-DD"),end:r().set("date",r().daysInMonth()).format("YYYY-MM-DD")}},{label:"This year",identifier:"thisYear",value:{start:r().startOf("year").format("YYYY-MM-DD"),end:r().endOf("year").format("YYYY-MM-DD")}},{label:"Last year",identifier:"lastYear",value:{start:r().subtract(1,"year").startOf("year").format("YYYY-MM-DD"),end:r().subtract(1,"year").endOf("year").format("YYYY-MM-DD")}}]},shortcut:{default:void 0},minDate:{default:void 0},maxDate:{default:void 0},disabledWeekly:{default:()=>[]},disabledDates:{default:()=>[]},disabledHours:{default:()=>[]},block:{type:Boolean}},emits:["update:model-value","close"],setup(a,{emit:l}){const e=a,u=l;r.extend(ie),r.extend(se);const m=o.defineAsyncComponent(()=>Promise.resolve().then(()=>require("../components/MazInput.cjs"))),b=ne.useInstanceUniqId({componentName:"MazPicker",providedId:e.id}),y=o.ref(e.locale),f=o.computed(()=>e.locale??y.value??"en-US"),v=o.computed(()=>`mazPickerContainer-${b.value}`),h=o.ref(),s=o.computed({get:()=>e.modelValue&&typeof e.modelValue=="object"?{start:e.modelValue.start?r(e.modelValue.start,e.format).format():void 0,end:e.modelValue.end?r(e.modelValue.end,e.format).format():void 0}:e.modelValue?r(e.modelValue,e.format).format():void 0,set:t=>{if(e.disabled)return;Y(t);const n=typeof t=="object";e.autoClose&&(!n||n&&t.end)&&S()}}),c=o.computed(()=>e.time||e.onlyTime),F=o.computed(()=>e.double&&!e.onlyTime),x=o.computed(()=>!e.onlyTime),R=o.computed(()=>typeof s.value=="object");o.onBeforeMount(()=>{R.value&&c.value&&console.error("[maz-ui](MazPicker) You can't use time picker with range picker"),c.value&&!(e.format.includes("h")||e.format.includes("H"))&&console.error('[maz-ui](MazPicker) When you use the time picker, you must provided a format with time - Ex: "YYYY-MM-DD HH:mm"'),e.format.includes("h")&&!(e.format.includes("a")||e.format.includes("A"))&&console.error('[maz-ui](MazPicker) if you use the 12 format "h" or "hh", you must add "a" or "A" at the end of the format - Ex: "YYYY-MM-DD hh:mm a"')});function G(t){const n=(typeof t=="object"?t.start:t)??r().format();return e.minDate&&r(n).isBefore(e.minDate)?e.minDate:e.maxDate&&r(n).isAfter(e.maxDate)?e.minDate??e.maxDate:n}const w=o.ref(G(s.value)),L=o.computed(()=>e.format.includes("a")||e.format.includes("A")||e.format.includes("h")),p=o.computed(()=>({...e.inputDateStyle,timeStyle:e.inputDateStyle.timeStyle??c.value?"short":void 0,hour12:c.value?e.inputDateStyle.hour12??L.value:void 0})),J=o.computed(()=>{if(!s.value)return;let t;return e.onlyTime?t=s.value?H.date(r(s.value).format(),f.value,{timeStyle:p.value.timeStyle,hour12:p.value.hour12}):void 0:typeof s.value=="object"?t=me({value:s.value,locale:f.value,options:p.value}):t=E({value:r(s.value).format(),locale:f.value,options:p.value}),e.inputDateTransformer&&t?e.inputDateTransformer({formattedDate:t,value:e.modelValue,locale:f.value}):t}),D=o.ref(!1),M=o.ref(!1),g=o.ref({vertical:"bottom",horizontal:"left"}),k=o.computed(()=>(D.value||e.open||M.value)&&!e.disabled||e.inline),q=o.ref(!1);o.onMounted(async()=>{if(q.value=!0,e.customElementSelector&&Z(e.customElementSelector),!e.locale){const t=Ye();if(!e.noUseBrowserLocale&&t)y.value=t;else if(!e.noFetchLocal){const n=await we();n&&(y.value=n)}}}),o.onUnmounted(()=>{e.customElementSelector&&_(e.customElementSelector)});async function K(){if(e.pickerPosition){const t=e.pickerPosition.includes("right")?"right":"left",n=e.pickerPosition.includes("top")?"top":"bottom";return{horizontal:t,vertical:n}}else return{horizontal:"left",vertical:await Q(h.value)}}async function Q(t){if(typeof window>"u")return"bottom";const n=30;await o.nextTick();const i=document.querySelector(`#${v.value}`),d=t==null?void 0:t.getBoundingClientRect(),V=window.innerHeight,A=((i==null?void 0:i.clientHeight)??0)-n,z=(d&&V-d.bottom)??0,T=(d&&d.top)??0,ee=z&&z>=A,te=T&&T>=A;return!ee&&(te||T>=z)?"top":"bottom"}function S(){D.value=!1,M.value=!1,u("close")}function X(){e.customElementSelector||S()}function N(){M.value=!M.value}function Z(t){const n=document.querySelector(t);if(n)n.addEventListener("click",N);else throw new Error(`[maz-ui](MazPicker) impossible to find custom element with selector "${t}"`)}function _(t){const n=document.querySelector(t);n==null||n.removeEventListener("click",N)}function W(t){if(e.minDate||e.maxDate){if(typeof t=="string"){const{newValue:n,newCurrentDate:i}=P({value:t,minDate:e.minDate,maxDate:e.maxDate,format:e.format});n&&Y(n),i&&O(i)}else if(typeof t=="object"&&(t.start||t.end)){let n=t.start,i=t.end;if(t.start){const{newValue:d,newCurrentDate:V}=P({value:t.start,minDate:e.minDate,maxDate:e.maxDate,format:e.format});d&&(n=d),V&&O(V)}if(t.end){const{newValue:d}=P({value:t.end,minDate:e.minDate,maxDate:e.maxDate,format:e.format});d&&(i=d)}Y({start:n,end:i})}}}function O(t){t&&!r(w.value).isSame(t,"month")&&(w.value=t)}function Y(t){if(typeof t=="object"){const n=be(t,e.format);u("update:model-value",n),n.start&&O(n.start)}else u("update:model-value",I(t,e.format))}o.watch(()=>[s.value,e.minDate,e.maxDate],(t,n)=>{const i=t[0],d=n==null?void 0:n[0];typeof i=="object"&&(i.start||i.end)?(!d||typeof d=="object"&&(d.start!==i.start||d.end!==i.end))&&(Y(i),W(i)):typeof i=="string"&&i!==d&&(Y(i),W(i))},{immediate:!0});function j(t){t.code==="Escape"&&k.value&&(t.preventDefault(),S())}return o.watch(()=>k.value,async t=>{t?(g.value=await K(),!e.inline&&q.value&&document.addEventListener("keydown",j)):!e.inline&&q.value&&document.removeEventListener("keydown",j)},{immediate:!0}),o.watch(()=>[s.value,e.disabledWeekly,e.disabledDates],t=>{const n=t[0],i=t[1],d=t[2];typeof n=="object"&&(n.start||n.end)?((n.start&&B({value:n.start,disabledWeekly:i})||n.start&&C({value:n.start,disabledDates:d})||n.end&&B({value:n.end,disabledWeekly:i})||n.end&&C({value:n.end,disabledDates:d}))&&(s.value={start:void 0,end:void 0}),(n.end&&B({value:n.end,disabledWeekly:i})||n.end&&C({value:n.end,disabledDates:d}))&&(s.value={start:n.start,end:void 0})):typeof n=="string"&&(B({value:n,disabledWeekly:i})||C({value:n,disabledDates:d}))&&(s.value=void 0)},{immediate:!0}),(t,n)=>o.withDirectives((o.openBlock(),o.createElementBlock("div",{ref_key:"MazPicker",ref:h,class:o.normalizeClass(["m-picker m-reset-css",[`m-picker--${t.color}`,`m-picker--${g.value.vertical}`,`m-picker--${g.value.horizontal}`,{"--is-open":k.value,"--is-disabled":t.disabled,"--block":t.block},e.class]]),role:"none",style:o.normalizeStyle(t.style)},[!t.customElementSelector&&!t.inline?(o.openBlock(),o.createBlock(o.unref(m),o.mergeProps({key:0,"model-value":J.value,readonly:""},t.$attrs,{block:"",autocomplete:"off",class:"m-picker__input",label:t.label,disabled:t.disabled,placeholder:t.placeholder,color:t.color,onClick:n[1]||(n[1]=i=>D.value=!D.value)}),{"right-icon":o.withCtx(()=>[o.createElementVNode("button",{type:"button",tabindex:"-1",class:"m-picker__button",onClick:n[0]||(n[0]=i=>D.value=!D.value)},[o.createVNode(o.unref(le.default),{class:"m-picker__button__chevron maz-text-lg"})])]),_:1},16,["model-value","label","disabled","placeholder","color"])):o.createCommentVNode("",!0),o.createVNode(o.Transition,{name:g.value.vertical==="top"?"maz-slideinvert":"maz-slide"},{default:o.withCtx(()=>[o.withDirectives(o.createVNode(ce,{id:v.value,modelValue:s.value,"onUpdate:modelValue":n[2]||(n[2]=i=>s.value=i),"calendar-date":w.value,"onUpdate:calendarDate":n[3]||(n[3]=i=>w.value=i),"is-open":k.value,color:t.color,locale:f.value,"has-date":x.value,double:F.value,"has-time":c.value,"formatter-options":p.value,"no-header":t.noHeader,"min-date":t.minDate,format:t.format,"is-hour12":L.value,"max-date":t.maxDate,"disabled-weekly":t.disabledWeekly,inline:t.inline,"first-day-of-week":t.firstDayOfWeek,shortcuts:t.shortcuts,shortcut:t.shortcut,disabled:t.disabled,"disabled-hours":t.disabledHours,"disabled-dates":t.disabledDates,"minute-interval":t.minuteInterval,"no-shortcuts":t.noShortcuts,onClose:S},null,8,["id","modelValue","calendar-date","is-open","color","locale","has-date","double","has-time","formatter-options","no-header","min-date","format","is-hour12","max-date","disabled-weekly","inline","first-day-of-week","shortcuts","shortcut","disabled","disabled-hours","disabled-dates","minute-interval","no-shortcuts"]),[[o.vShow,k.value]])]),_:1},8,["name"])],6)),[[o.unref(re.vClickOutside),X]])}}),ge=$._export_sfc(Me,[["__scopeId","data-v-4758f2b5"]]);exports.MazPicker=ge;exports.findNearestNumberInList=ke;exports.getDaysInMonth=ye;exports.getDaysOfWeek=ve;exports.getFirstDayOfMonth=fe;exports.isSameDate=De;exports.isSameDay=U;exports.isToday=he;exports.scrollToTarget=pe;
|
|
2
|
-
//# sourceMappingURL=MazPicker.
|
|
1
|
+
"use strict";require('../assets/MazPicker.oSzqOK82.css');const o=require("vue"),r=require("dayjs"),ae=require("dayjs/plugin/customParseFormat"),oe=require("dayjs/plugin/isBetween"),ne=require("./chevron-down.DdnENkzR.cjs"),re=require("../composables/useInstanceUniqId.cjs"),le=require("../directives/vClickOutside.cjs"),H=require("../filters/date.cjs"),$=require("./_plugin-vue_export-helper.BHFhmbuH.cjs"),ie=require("dayjs/plugin/weekday"),se=require("../filters/capitalize.cjs"),de={class:"m-picker-container__wrapper"},ue=o.defineComponent({__name:"MazPickerContainer",props:{modelValue:{type:[String,Object],default:void 0},calendarDate:{type:String,required:!0},color:{type:String,required:!0},locale:{type:String,required:!0},noHeader:{type:Boolean,default:!1},firstDayOfWeek:{type:Number,required:!0},double:{type:Boolean,required:!0},hasDate:{type:Boolean,required:!0},minDate:{type:String,default:void 0},maxDate:{type:String,default:void 0},inline:{type:Boolean,required:!0},noShortcuts:{type:Boolean,required:!0},shortcuts:{type:Array,required:!0},shortcut:{type:String,default:void 0},hasTime:{type:Boolean,required:!0},isOpen:{type:Boolean,required:!0},format:{type:String,required:!0},isHour12:{type:Boolean,required:!0},formatterOptions:{type:Object,required:!0},minuteInterval:{type:Number,required:!0},disabled:{type:Boolean,required:!0},disabledWeekly:{type:Array,required:!0},disabledHours:{type:Array,required:!0},disabledDates:{type:Array,required:!0}},emits:["update:model-value","update:calendar-date","close"],setup(a,{emit:l}){const e=a,u=l,m=o.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./MazPickerCalendar.CEJcAKlj.cjs"))),b=o.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./MazPickerHeader.COT92ysE.cjs"))),y=o.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./MazPickerTime.wlOm39gv.cjs"))),f=o.computed({get:()=>e.modelValue,set:h=>{u("update:model-value",h)}}),v=o.computed({get:()=>e.calendarDate,set:h=>u("update:calendar-date",h)});return(h,s)=>(o.openBlock(),o.createElementBlock("div",{class:o.normalizeClass(["m-picker-container",{"--has-double":a.double,"--is-inline":a.inline,"--has-date":a.hasDate}])},[a.noHeader?o.createCommentVNode("",!0):(o.openBlock(),o.createBlock(o.unref(b),{key:0,color:a.color,"has-time":a.hasTime,"model-value":a.modelValue,locale:a.locale,"calendar-date":v.value,"has-date":a.hasDate,"formatter-options":a.formatterOptions,double:a.double,"no-shortcuts":a.noShortcuts,class:"m-picker-container__header"},null,8,["color","has-time","model-value","locale","calendar-date","has-date","formatter-options","double","no-shortcuts"])),o.createElementVNode("div",de,[a.hasDate?(o.openBlock(),o.createBlock(o.unref(m),{key:0,modelValue:f.value,"onUpdate:modelValue":s[0]||(s[0]=c=>f.value=c),"calendar-date":v.value,"onUpdate:calendarDate":s[1]||(s[1]=c=>v.value=c),color:a.color,locale:a.locale,"has-time":a.hasTime,double:a.double,"min-date":a.minDate,"max-date":a.maxDate,"first-day-of-week":a.firstDayOfWeek,disabled:a.disabled,"disabled-weekly":a.disabledWeekly,"disabled-dates":a.disabledDates,shortcuts:a.shortcuts,shortcut:a.shortcut,"no-shortcuts":a.noShortcuts,class:"m-picker-container__calendar"},null,8,["modelValue","calendar-date","color","locale","has-time","double","min-date","max-date","first-day-of-week","disabled","disabled-weekly","disabled-dates","shortcuts","shortcut","no-shortcuts"])):o.createCommentVNode("",!0),a.hasTime?(o.openBlock(),o.createBlock(o.unref(y),{key:1,modelValue:f.value,"onUpdate:modelValue":s[2]||(s[2]=c=>f.value=c),"calendar-date":v.value,"onUpdate:calendarDate":s[3]||(s[3]=c=>v.value=c),"is-open":a.isOpen,color:a.color,locale:a.locale,"min-date":a.minDate,"max-date":a.maxDate,"has-date":a.hasDate,format:a.format,disabled:a.disabled,"disabled-hours":a.disabledHours,"minute-interval":a.minuteInterval,"formatter-options":a.formatterOptions,"is-hour12":a.isHour12,class:"m-picker-container__time"},null,8,["modelValue","calendar-date","is-open","color","locale","min-date","max-date","has-date","format","disabled","disabled-hours","minute-interval","formatter-options","is-hour12"])):o.createCommentVNode("",!0)])],2))}}),ce=$._export_sfc(ue,[["__scopeId","data-v-d0527303"]]);r.extend(ie);function E({value:a,locale:l,options:e}){return a?se.capitalize(H.date(a,l,e)):void 0}function me({value:a,locale:l,options:e}){const u=E({value:a.start,locale:l,options:e}),m=E({value:a.end,locale:l,options:e});return u||m?`${u||"..."} - ${m||"..."}`:void 0}function fe(a){return r(a).startOf("month").day()}function ve(a,l){const e=r().locale(a),u=[];for(let m=0;m<7;m++){const b=e.day(m+l).toDate(),y=H.date(b,a,{weekday:"short"});u.push(y)}return u}function ye(a){return r(a).daysInMonth()}function he(a){return r().isSame(a,"date")}function De(a,l,e){return r(a).isSame(l,e)}function U(a,l){return r(a).day()===l}function I(a,l="YYYY-MM-DD"){if(a)return r(a).format(l)}function be(a,l="YYYY-MM-DD"){return{start:I(a.start,l),end:I(a.end,l)}}function P({value:a,minDate:l,maxDate:e,format:u}){return l&&r(a).isBefore(l)?{newValue:l,newCurrentDate:r(l,u).format()}:e&&r(a).isAfter(e)?{newValue:e,newCurrentDate:r(e,u).format()}:{newValue:void 0,newCurrentDate:void 0}}function B({value:a,disabledWeekly:l}){return l.some(e=>U(a,e))}function C({value:a,disabledDates:l}){return l.some(e=>r(a).isSame(r(e),"date"))}const pe=function(a,l,e=0,u=!0){a.scrollTo({top:l.offsetTop-e,behavior:u?"smooth":"auto"})};function ke(a,l){return a.reduce((e,u)=>Math.abs(u-l)<Math.abs(e-l)?u:e)}function Ye(){try{return typeof window>"u"?void 0:window.navigator.language}catch(a){throw new Error(`[MazInputPhoneNumber] (browserLocale) ${a}`)}}async function we(){try{const a=await fetch("https://ipwho.is"),{country_code:l}=await a.json();return l}catch(a){console.error(`[maz-ui](MazPicker)(fetchCountryCode) ${a}`)}}const Me=o.defineComponent({inheritAttrs:!1,__name:"MazPicker",props:{id:{},style:{default:void 0},class:{default:void 0},modelValue:{default:void 0},format:{default:"YYYY-MM-DD"},open:{type:Boolean,default:!1},label:{default:void 0},placeholder:{default:void 0},inputDateStyle:{default:()=>({dateStyle:"full"})},inputDateTransformer:{type:Function,default:void 0},locale:{default:void 0},noHeader:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},firstDayOfWeek:{default:0},autoClose:{type:Boolean,default:!1},customElementSelector:{default:void 0},double:{type:Boolean,default:!1},inline:{type:Boolean,default:!1},color:{default:"primary"},pickerPosition:{default:void 0},time:{type:Boolean,default:!1},onlyTime:{type:Boolean,default:!1},minuteInterval:{default:5},noUseBrowserLocale:{type:Boolean,default:!1},noFetchLocal:{type:Boolean,default:!1},noShortcuts:{type:Boolean,default:!1},shortcuts:{default:()=>[{label:"Last 7 days",identifier:"last7Days",value:{start:r().subtract(6,"day").format("YYYY-MM-DD"),end:r().format("YYYY-MM-DD")}},{label:"Last 30 days",identifier:"last30Days",value:{start:r().subtract(29,"day").format("YYYY-MM-DD"),end:r().format("YYYY-MM-DD")}},{label:"This week",identifier:"thisWeek",value:{start:r().startOf("week").format("YYYY-MM-DD"),end:r().endOf("week").format("YYYY-MM-DD")}},{label:"Last week",identifier:"lastWeek",value:{start:r().subtract(1,"week").startOf("week").format("YYYY-MM-DD"),end:r().subtract(1,"week").endOf("week").format("YYYY-MM-DD")}},{label:"This month",identifier:"thisMonth",value:{start:r().set("date",1).format("YYYY-MM-DD"),end:r().set("date",r().daysInMonth()).format("YYYY-MM-DD")}},{label:"This year",identifier:"thisYear",value:{start:r().startOf("year").format("YYYY-MM-DD"),end:r().endOf("year").format("YYYY-MM-DD")}},{label:"Last year",identifier:"lastYear",value:{start:r().subtract(1,"year").startOf("year").format("YYYY-MM-DD"),end:r().subtract(1,"year").endOf("year").format("YYYY-MM-DD")}}]},shortcut:{default:void 0},minDate:{default:void 0},maxDate:{default:void 0},disabledWeekly:{default:()=>[]},disabledDates:{default:()=>[]},disabledHours:{default:()=>[]},block:{type:Boolean}},emits:["update:model-value","close"],setup(a,{emit:l}){const e=a,u=l;r.extend(ae),r.extend(oe);const m=o.defineAsyncComponent(()=>Promise.resolve().then(()=>require("../components/MazInput.cjs"))),b=re.useInstanceUniqId({componentName:"MazPicker",providedId:e.id}),y=o.ref(e.locale),f=o.computed(()=>e.locale??y.value??"en-US"),v=o.computed(()=>`mazPickerContainer-${b.value}`),h=o.ref(),s=o.computed({get:()=>e.modelValue&&typeof e.modelValue=="object"?{start:e.modelValue.start?r(e.modelValue.start,e.format).format():void 0,end:e.modelValue.end?r(e.modelValue.end,e.format).format():void 0}:e.modelValue?r(e.modelValue,e.format).format():void 0,set:t=>{if(e.disabled)return;Y(t);const n=typeof t=="object";e.autoClose&&(!n||n&&t.end)&&S()}}),c=o.computed(()=>e.time||e.onlyTime),F=o.computed(()=>e.double&&!e.onlyTime),x=o.computed(()=>!e.onlyTime),R=o.computed(()=>typeof s.value=="object");o.onBeforeMount(()=>{R.value&&c.value&&console.error("[maz-ui](MazPicker) You can't use time picker with range picker"),c.value&&!(e.format.includes("h")||e.format.includes("H"))&&console.error('[maz-ui](MazPicker) When you use the time picker, you must provided a format with time - Ex: "YYYY-MM-DD HH:mm"'),e.format.includes("h")&&!(e.format.includes("a")||e.format.includes("A"))&&console.error('[maz-ui](MazPicker) if you use the 12 format "h" or "hh", you must add "a" or "A" at the end of the format - Ex: "YYYY-MM-DD hh:mm a"')});function G(t){const n=(typeof t=="object"?t.start:t)??r().format();return e.minDate&&r(n).isBefore(e.minDate)?e.minDate:e.maxDate&&r(n).isAfter(e.maxDate)?e.minDate??e.maxDate:n}const w=o.ref(G(s.value)),L=o.computed(()=>e.format.includes("a")||e.format.includes("A")||e.format.includes("h")),p=o.computed(()=>({...e.inputDateStyle,timeStyle:e.inputDateStyle.timeStyle??c.value?"short":void 0,hour12:c.value?e.inputDateStyle.hour12??L.value:void 0})),J=o.computed(()=>{if(!s.value)return;let t;return e.onlyTime?t=s.value?H.date(r(s.value).format(),f.value,{timeStyle:p.value.timeStyle,hour12:p.value.hour12}):void 0:typeof s.value=="object"?t=me({value:s.value,locale:f.value,options:p.value}):t=E({value:r(s.value).format(),locale:f.value,options:p.value}),e.inputDateTransformer&&t?e.inputDateTransformer({formattedDate:t,value:e.modelValue,locale:f.value}):t}),D=o.ref(!1),M=o.ref(!1),g=o.ref({vertical:"bottom",horizontal:"left"}),k=o.computed(()=>(D.value||e.open||M.value)&&!e.disabled||e.inline),q=o.ref(!1);o.onMounted(async()=>{if(q.value=!0,e.customElementSelector&&Z(e.customElementSelector),!e.locale){const t=Ye();if(!e.noUseBrowserLocale&&t)y.value=t;else if(!e.noFetchLocal){const n=await we();n&&(y.value=n)}}}),o.onUnmounted(()=>{e.customElementSelector&&_(e.customElementSelector)});async function K(){if(e.pickerPosition){const t=e.pickerPosition.includes("right")?"right":"left",n=e.pickerPosition.includes("top")?"top":"bottom";return{horizontal:t,vertical:n}}else return{horizontal:"left",vertical:await Q(h.value)}}async function Q(t){if(typeof window>"u")return"bottom";const n=30;await o.nextTick();const i=document.querySelector(`#${v.value}`),d=t==null?void 0:t.getBoundingClientRect(),V=window.innerHeight,A=((i==null?void 0:i.clientHeight)??0)-n,z=(d&&V-d.bottom)??0,T=(d&&d.top)??0,ee=z&&z>=A,te=T&&T>=A;return!ee&&(te||T>=z)?"top":"bottom"}function S(){D.value=!1,M.value=!1,u("close")}function X(){e.customElementSelector||S()}function N(){M.value=!M.value}function Z(t){const n=document.querySelector(t);if(n)n.addEventListener("click",N);else throw new Error(`[maz-ui](MazPicker) impossible to find custom element with selector "${t}"`)}function _(t){const n=document.querySelector(t);n==null||n.removeEventListener("click",N)}function W(t){if(e.minDate||e.maxDate){if(typeof t=="string"){const{newValue:n,newCurrentDate:i}=P({value:t,minDate:e.minDate,maxDate:e.maxDate,format:e.format});n&&Y(n),i&&O(i)}else if(typeof t=="object"&&(t.start||t.end)){let n=t.start,i=t.end;if(t.start){const{newValue:d,newCurrentDate:V}=P({value:t.start,minDate:e.minDate,maxDate:e.maxDate,format:e.format});d&&(n=d),V&&O(V)}if(t.end){const{newValue:d}=P({value:t.end,minDate:e.minDate,maxDate:e.maxDate,format:e.format});d&&(i=d)}Y({start:n,end:i})}}}function O(t){t&&!r(w.value).isSame(t,"month")&&(w.value=t)}function Y(t){if(typeof t=="object"){const n=be(t,e.format);u("update:model-value",n),n.start&&O(n.start)}else u("update:model-value",I(t,e.format))}o.watch(()=>[s.value,e.minDate,e.maxDate],(t,n)=>{const i=t[0],d=n==null?void 0:n[0];typeof i=="object"&&(i.start||i.end)?(!d||typeof d=="object"&&(d.start!==i.start||d.end!==i.end))&&(Y(i),W(i)):typeof i=="string"&&i!==d&&(Y(i),W(i))},{immediate:!0});function j(t){t.code==="Escape"&&k.value&&(t.preventDefault(),S())}return o.watch(()=>k.value,async t=>{t?(g.value=await K(),!e.inline&&q.value&&document.addEventListener("keydown",j)):!e.inline&&q.value&&document.removeEventListener("keydown",j)},{immediate:!0}),o.watch(()=>[s.value,e.disabledWeekly,e.disabledDates],t=>{const n=t[0],i=t[1],d=t[2];typeof n=="object"&&(n.start||n.end)?((n.start&&B({value:n.start,disabledWeekly:i})||n.start&&C({value:n.start,disabledDates:d})||n.end&&B({value:n.end,disabledWeekly:i})||n.end&&C({value:n.end,disabledDates:d}))&&(s.value={start:void 0,end:void 0}),(n.end&&B({value:n.end,disabledWeekly:i})||n.end&&C({value:n.end,disabledDates:d}))&&(s.value={start:n.start,end:void 0})):typeof n=="string"&&(B({value:n,disabledWeekly:i})||C({value:n,disabledDates:d}))&&(s.value=void 0)},{immediate:!0}),(t,n)=>o.withDirectives((o.openBlock(),o.createElementBlock("div",{ref_key:"MazPicker",ref:h,class:o.normalizeClass(["m-picker m-reset-css",[`m-picker--${t.color}`,`m-picker--${g.value.vertical}`,`m-picker--${g.value.horizontal}`,{"--is-open":k.value,"--is-disabled":t.disabled,"--block":t.block},e.class]]),role:"none",style:o.normalizeStyle(t.style)},[!t.customElementSelector&&!t.inline?(o.openBlock(),o.createBlock(o.unref(m),o.mergeProps({key:0,"model-value":J.value,readonly:""},t.$attrs,{block:"",autocomplete:"off",class:"m-picker__input",label:t.label,disabled:t.disabled,placeholder:t.placeholder,color:t.color,onClick:n[1]||(n[1]=i=>D.value=!D.value)}),{"right-icon":o.withCtx(()=>[o.createElementVNode("button",{type:"button",tabindex:"-1",class:"m-picker__button",onClick:n[0]||(n[0]=i=>D.value=!D.value)},[o.createVNode(o.unref(ne.default),{class:"m-picker__button__chevron maz-text-lg"})])]),_:1},16,["model-value","label","disabled","placeholder","color"])):o.createCommentVNode("",!0),o.createVNode(o.Transition,{name:g.value.vertical==="top"?"maz-slideinvert":"maz-slide"},{default:o.withCtx(()=>[o.withDirectives(o.createVNode(ce,{id:v.value,modelValue:s.value,"onUpdate:modelValue":n[2]||(n[2]=i=>s.value=i),"calendar-date":w.value,"onUpdate:calendarDate":n[3]||(n[3]=i=>w.value=i),"is-open":k.value,color:t.color,locale:f.value,"has-date":x.value,double:F.value,"has-time":c.value,"formatter-options":p.value,"no-header":t.noHeader,"min-date":t.minDate,format:t.format,"is-hour12":L.value,"max-date":t.maxDate,"disabled-weekly":t.disabledWeekly,inline:t.inline,"first-day-of-week":t.firstDayOfWeek,shortcuts:t.shortcuts,shortcut:t.shortcut,disabled:t.disabled,"disabled-hours":t.disabledHours,"disabled-dates":t.disabledDates,"minute-interval":t.minuteInterval,"no-shortcuts":t.noShortcuts,onClose:S},null,8,["id","modelValue","calendar-date","is-open","color","locale","has-date","double","has-time","formatter-options","no-header","min-date","format","is-hour12","max-date","disabled-weekly","inline","first-day-of-week","shortcuts","shortcut","disabled","disabled-hours","disabled-dates","minute-interval","no-shortcuts"]),[[o.vShow,k.value]])]),_:1},8,["name"])],6)),[[o.unref(le.vClickOutside),X]])}}),ge=$._export_sfc(Me,[["__scopeId","data-v-cf47615c"]]);exports.MazPicker=ge;exports.findNearestNumberInList=ke;exports.getDaysInMonth=ye;exports.getDaysOfWeek=ve;exports.getFirstDayOfMonth=fe;exports.isSameDate=De;exports.isSameDay=U;exports.isToday=he;exports.scrollToTarget=pe;
|
|
2
|
+
//# sourceMappingURL=MazPicker.D2ra6fVy.cjs.map
|