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.
Files changed (802) hide show
  1. package/dist/assets/{CountrySelector.Cnqbl3xF.css → CountrySelector.BQiHy60b.css} +1 -1
  2. package/dist/assets/{MazAccordion.DaqF3ZAX.css → MazAccordion.BE-38uDK.css} +1 -1
  3. package/dist/assets/{MazAnimatedCounter.DYYlw_wl.css → MazAnimatedCounter.ButbqlDb.css} +1 -1
  4. package/dist/assets/{MazAnimatedText.Dk4QO4xF.css → MazAnimatedText.BM3XYGO2.css} +1 -1
  5. package/dist/assets/{MazAvatar.L1UreldR.css → MazAvatar.udTL0S0c.css} +1 -1
  6. package/dist/assets/{MazBadge.RMWNkgZL.css → MazBadge.Cgfo0F7e.css} +1 -1
  7. package/dist/assets/{MazBottomSheet.Dqr-kpLb.css → MazBottomSheet.FbcAQBpM.css} +1 -1
  8. package/dist/assets/MazBtn.Bz7wwOFh.css +1 -0
  9. package/dist/assets/{MazCard.Cod9pIM4.css → MazCard.BayiNvpH.css} +1 -1
  10. package/dist/assets/{MazCardSpotlight.DuZac0w4.css → MazCardSpotlight.Y7PEY9QV.css} +1 -1
  11. package/dist/assets/{MazCarousel.BQIrqJ8T.css → MazCarousel.CB32PQvq.css} +1 -1
  12. package/dist/assets/{MazCheckbox.BQVJ7EUB.css → MazCheckbox.5EI5lIDK.css} +1 -1
  13. package/dist/assets/{MazChecklist.5ArDAEhG.css → MazChecklist.BGnIiTsI.css} +1 -1
  14. package/dist/assets/{MazCircularProgressBar.DywLXEfR.css → MazCircularProgressBar.0-JvCHgE.css} +1 -1
  15. package/dist/assets/{MazDialog.BLzdH8aa.css → MazDialog.BJMxj6he.css} +1 -1
  16. package/dist/assets/{MazDrawer.Cu4KVc_z.css → MazDrawer.BqaLe_QM.css} +1 -1
  17. package/dist/assets/{MazFullscreenLoader.DTW_WUM6.css → MazFullscreenLoader.Dkg4LB9B.css} +1 -1
  18. package/dist/assets/MazGallery.BoPDBMcv.css +1 -0
  19. package/dist/assets/MazInput.DMFoUNTH.css +1 -0
  20. package/dist/assets/MazInputCode.C0rRpNFq.css +1 -0
  21. package/dist/assets/{MazInputPhoneNumber.DKac4ZYj.css → MazInputPhoneNumber.Ill3zwW5.css} +1 -1
  22. package/dist/assets/{MazInputTags.eygPFBJC.css → MazInputTags.ewDauXwM.css} +1 -1
  23. package/dist/assets/{MazLazyImg.BvztvWbf.css → MazLazyImg.B6kyFMu0.css} +1 -1
  24. package/dist/assets/MazLink.C905PoWd.css +1 -0
  25. package/dist/assets/MazLoadingBar.BVDaL2oq.css +1 -0
  26. package/dist/assets/{MazPagination.DSYY_yu7.css → MazPagination.DxqlYYDI.css} +1 -1
  27. package/dist/assets/MazPicker.oSzqOK82.css +1 -0
  28. package/dist/assets/{MazPickerCalendar.K1FbevcF.css → MazPickerCalendar.9hsvH81G.css} +1 -1
  29. package/dist/assets/MazPickerCalendarMonth.DoG1aIdE.css +1 -0
  30. package/dist/assets/{MazPickerCalendarSwitcher.23EFP_7Y.css → MazPickerCalendarSwitcher.Cwm0pn-f.css} +1 -1
  31. package/dist/assets/{MazPickerHeader.CfwpRnA1.css → MazPickerHeader.BH5Uy1iP.css} +1 -1
  32. package/dist/assets/{MazPickerMonthSwitcher.Cl1WlZpR.css → MazPickerMonthSwitcher.D9wXQnld.css} +1 -1
  33. package/dist/assets/{MazPickerShortcuts.B1ASAi7L.css → MazPickerShortcuts.CLZ4NUtN.css} +1 -1
  34. package/dist/assets/{MazPickerTime.5J3qaKGo.css → MazPickerTime.B-Ym15z4.css} +1 -1
  35. package/dist/assets/{MazPickerYearSwitcher.Bt0efux6.css → MazPickerYearSwitcher.9YqgG2Jv.css} +1 -1
  36. package/dist/assets/{MazPullToRefresh.BdvKaU9N.css → MazPullToRefresh.BSBm9qbV.css} +1 -1
  37. package/dist/assets/{MazRadio.zYTBn9Pj.css → MazRadio.OJL8pfy2.css} +1 -1
  38. package/dist/assets/{MazRadioButtons.CIq38oX6.css → MazRadioButtons.u111N9bH.css} +1 -1
  39. package/dist/assets/MazReadingProgressBar.CT2EjYkv.css +1 -0
  40. package/dist/assets/{MazSelect.CH_76PSg.css → MazSelect.DG-B1UJ6.css} +1 -1
  41. package/dist/assets/{MazSlider.D08gO9DD.css → MazSlider.KrU-f4K4.css} +1 -1
  42. package/dist/assets/MazSpinner.C2jmWJte.css +1 -0
  43. package/dist/assets/{MazStepper.BE3Mm9rm.css → MazStepper.CFdY5O1y.css} +1 -1
  44. package/dist/assets/MazTable.uvNQLDVh.css +1 -0
  45. package/dist/assets/MazTableCell.DCsBuRdY.css +1 -0
  46. package/dist/assets/MazTableRow.B4o1JJ00.css +1 -0
  47. package/dist/assets/MazTableTitle.CA6gYzgP.css +1 -0
  48. package/dist/assets/{MazTabsBar.-q3BbMXe.css → MazTabsBar.Bfij2njx.css} +1 -1
  49. package/dist/assets/{MazTabsContentItem.C0ygFU51.css → MazTabsContentItem.C9kvAsC7.css} +1 -1
  50. package/dist/assets/{MazTextarea.QTMu0OQv.css → MazTextarea.BML1BVBM.css} +1 -1
  51. package/dist/assets/PhoneInput.BBnKae_d.css +1 -0
  52. package/dist/assets/{fullscreen-img.hjNozahA.css → fullscreen-img.Dnt1uj_5.css} +1 -1
  53. package/dist/assets/{toaster.C9zhIkIO.css → toaster.BfTrtY6B.css} +1 -1
  54. package/dist/chunks/{CountrySelector.mFGaqpPf.cjs → CountrySelector.1nlVeBqW.cjs} +2 -2
  55. package/dist/chunks/CountrySelector.1nlVeBqW.cjs.map +1 -0
  56. package/dist/chunks/{CountrySelector.C5XZelLY.mjs → CountrySelector.qQCR0FE6.mjs} +14 -14
  57. package/dist/chunks/CountrySelector.qQCR0FE6.mjs.map +1 -0
  58. package/dist/chunks/MazDialogPromise.vue_vue_type_script_setup_true_lang.CS5GU9Q2.cjs.map +1 -1
  59. package/dist/chunks/MazDialogPromise.vue_vue_type_script_setup_true_lang.bPYjg0yY.mjs.map +1 -1
  60. package/dist/chunks/MazDropdown.vue_vue_type_script_setup_true_lang.B5kO0VJW.mjs.map +1 -1
  61. package/dist/chunks/MazDropdown.vue_vue_type_script_setup_true_lang.DLWmXVjB.cjs.map +1 -1
  62. package/dist/chunks/MazIcon.vue_vue_type_script_setup_true_lang.C5NwBerh.cjs.map +1 -1
  63. package/dist/chunks/MazIcon.vue_vue_type_script_setup_true_lang.CLoEj0Zf.mjs.map +1 -1
  64. 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
  65. package/dist/chunks/MazInputNumber.vue_vue_type_script_setup_true_lang.BM2uHjda.cjs.map +1 -0
  66. 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
  67. package/dist/chunks/MazInputNumber.vue_vue_type_script_setup_true_lang.CsH-SPhu.mjs.map +1 -0
  68. package/dist/chunks/{MazInputPhoneNumber.B173m1hd.mjs → MazInputPhoneNumber.BluSBPXE.mjs} +10 -10
  69. package/dist/chunks/{MazInputPhoneNumber.B173m1hd.mjs.map → MazInputPhoneNumber.BluSBPXE.mjs.map} +1 -1
  70. package/dist/chunks/{MazInputPhoneNumber.EZVh1Yx5.cjs → MazInputPhoneNumber.TorVuc9s.cjs} +2 -2
  71. package/dist/chunks/{MazInputPhoneNumber.EZVh1Yx5.cjs.map → MazInputPhoneNumber.TorVuc9s.cjs.map} +1 -1
  72. 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
  73. package/dist/chunks/MazInputPrice.vue_vue_type_script_setup_true_lang.C873_Haj.mjs.map +1 -0
  74. 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
  75. package/dist/chunks/MazInputPrice.vue_vue_type_script_setup_true_lang.Ovh3fdmh.cjs.map +1 -0
  76. package/dist/chunks/{MazPicker.BZE8cw36.cjs → MazPicker.D2ra6fVy.cjs} +2 -2
  77. package/dist/chunks/MazPicker.D2ra6fVy.cjs.map +1 -0
  78. package/dist/chunks/{MazPicker.DCnOkRvv.mjs → MazPicker.hoqM5DbN.mjs} +20 -20
  79. package/dist/chunks/MazPicker.hoqM5DbN.mjs.map +1 -0
  80. package/dist/chunks/{MazPickerCalendar.NeYLrtl-.mjs → MazPickerCalendar.Ban3DAo1.mjs} +4 -4
  81. package/dist/chunks/MazPickerCalendar.Ban3DAo1.mjs.map +1 -0
  82. package/dist/chunks/{MazPickerCalendar.CVZ8VoYr.cjs → MazPickerCalendar.CEJcAKlj.cjs} +2 -2
  83. package/dist/chunks/MazPickerCalendar.CEJcAKlj.cjs.map +1 -0
  84. package/dist/chunks/{MazPickerCalendarMonth.rnaiDHFM.mjs → MazPickerCalendarMonth.D4Ink4If.mjs} +14 -14
  85. package/dist/chunks/MazPickerCalendarMonth.D4Ink4If.mjs.map +1 -0
  86. package/dist/chunks/{MazPickerCalendarMonth.DpvQC45k.cjs → MazPickerCalendarMonth.DBDcSR1B.cjs} +2 -2
  87. package/dist/chunks/MazPickerCalendarMonth.DBDcSR1B.cjs.map +1 -0
  88. package/dist/chunks/{MazPickerCalendarSwitcher.DC2wff_J.cjs → MazPickerCalendarSwitcher.CyjRYcya.cjs} +2 -2
  89. package/dist/chunks/MazPickerCalendarSwitcher.CyjRYcya.cjs.map +1 -0
  90. package/dist/chunks/{MazPickerCalendarSwitcher.DFGrD6Cr.mjs → MazPickerCalendarSwitcher.DTDyFG7S.mjs} +19 -19
  91. package/dist/chunks/MazPickerCalendarSwitcher.DTDyFG7S.mjs.map +1 -0
  92. package/dist/chunks/{MazPickerHeader.B7YY9SJI.mjs → MazPickerHeader.C1asX8dz.mjs} +8 -8
  93. package/dist/chunks/MazPickerHeader.C1asX8dz.mjs.map +1 -0
  94. package/dist/chunks/{MazPickerHeader.l7NcmiGH.cjs → MazPickerHeader.COT92ysE.cjs} +2 -2
  95. package/dist/chunks/MazPickerHeader.COT92ysE.cjs.map +1 -0
  96. package/dist/chunks/{MazPickerMonthSwitcher.CbplWFfL.cjs → MazPickerMonthSwitcher.Cw82Rq9C.cjs} +2 -2
  97. package/dist/chunks/MazPickerMonthSwitcher.Cw82Rq9C.cjs.map +1 -0
  98. package/dist/chunks/{MazPickerMonthSwitcher.CAPx3PCt.mjs → MazPickerMonthSwitcher.jPGBQm-N.mjs} +9 -9
  99. package/dist/chunks/MazPickerMonthSwitcher.jPGBQm-N.mjs.map +1 -0
  100. package/dist/chunks/{MazPickerShortcuts.Bawm0q33.mjs → MazPickerShortcuts.Dvs1sJMi.mjs} +3 -3
  101. package/dist/chunks/MazPickerShortcuts.Dvs1sJMi.mjs.map +1 -0
  102. package/dist/chunks/{MazPickerShortcuts.LxFs0Y6N.cjs → MazPickerShortcuts.GUfnNHPI.cjs} +2 -2
  103. package/dist/chunks/MazPickerShortcuts.GUfnNHPI.cjs.map +1 -0
  104. package/dist/chunks/{MazPickerTime.C27aFPPw.mjs → MazPickerTime.C1LitEcr.mjs} +5 -5
  105. package/dist/chunks/MazPickerTime.C1LitEcr.mjs.map +1 -0
  106. package/dist/chunks/{MazPickerTime.7cxq-Qac.cjs → MazPickerTime.wlOm39gv.cjs} +2 -2
  107. package/dist/chunks/MazPickerTime.wlOm39gv.cjs.map +1 -0
  108. package/dist/chunks/{MazPickerYearSwitcher.Dku2IMIJ.cjs → MazPickerYearSwitcher.CPREj35R.cjs} +2 -2
  109. package/dist/chunks/MazPickerYearSwitcher.CPREj35R.cjs.map +1 -0
  110. package/dist/chunks/{MazPickerYearSwitcher.DMBOaMYy.mjs → MazPickerYearSwitcher.D_onf-0L.mjs} +17 -17
  111. package/dist/chunks/MazPickerYearSwitcher.D_onf-0L.mjs.map +1 -0
  112. package/dist/chunks/MazSwitch.vue_vue_type_script_setup_true_lang.C74s_H37.cjs.map +1 -1
  113. package/dist/chunks/MazSwitch.vue_vue_type_script_setup_true_lang.jyNV3g3U.mjs.map +1 -1
  114. 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
  115. package/dist/chunks/MazTable.vue_vue_type_style_index_0_scoped_cd8655c9_lang.BnCH1CvT.cjs.map +1 -0
  116. 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
  117. package/dist/chunks/MazTable.vue_vue_type_style_index_0_scoped_cd8655c9_lang.Dj2OkfOV.mjs.map +1 -0
  118. package/dist/chunks/MazTabsContent.vue_vue_type_script_setup_true_lang.BGqO0ynq.mjs.map +1 -1
  119. package/dist/chunks/MazTabsContent.vue_vue_type_script_setup_true_lang.DariT_zv.cjs.map +1 -1
  120. package/dist/chunks/{PhoneInput.9GQJbL9x.mjs → PhoneInput.DYm0yzgy.mjs} +11 -11
  121. package/dist/chunks/PhoneInput.DYm0yzgy.mjs.map +1 -0
  122. package/dist/chunks/{PhoneInput.D5DG4S60.cjs → PhoneInput.wXP8tsCy.cjs} +2 -2
  123. package/dist/chunks/PhoneInput.wXP8tsCy.cjs.map +1 -0
  124. package/dist/chunks/arrow-top-right-on-square.PZtr8Zs0.cjs.map +1 -1
  125. package/dist/chunks/arrow-top-right-on-square.wYk3YJI_.mjs.map +1 -1
  126. package/dist/chunks/arrow-up.CDxvryQT.cjs.map +1 -1
  127. package/dist/chunks/arrow-up.HdMpMK4c.mjs.map +1 -1
  128. package/dist/chunks/banknotes.CQ9Qxg-e.mjs.map +1 -1
  129. package/dist/chunks/banknotes.CdkS5KVY.cjs.map +1 -1
  130. package/dist/chunks/check-circle.D3i-p-t3.cjs.map +1 -1
  131. package/dist/chunks/check-circle.DhFkXzgc.mjs.map +1 -1
  132. package/dist/chunks/check.B-gxQRxL.mjs.map +1 -1
  133. package/dist/chunks/check._ETzZCli.cjs.map +1 -1
  134. package/dist/chunks/chevron-double-left.C1WkQBYN.mjs.map +1 -1
  135. package/dist/chunks/chevron-double-left.D2o-BlKu.cjs.map +1 -1
  136. package/dist/chunks/chevron-down.CWWH3GZ1.mjs.map +1 -1
  137. package/dist/chunks/chevron-down.DdnENkzR.cjs.map +1 -1
  138. package/dist/chunks/chevron-left.BYUi62el.cjs.map +1 -1
  139. package/dist/chunks/chevron-left.njfuF_Vt.mjs.map +1 -1
  140. package/dist/chunks/chevron-right.B0RH9GgM.cjs.map +1 -1
  141. package/dist/chunks/chevron-right.CEEKGU2c.mjs.map +1 -1
  142. package/dist/chunks/ellipsis-horizontal.BKw73_U9.mjs.map +1 -1
  143. package/dist/chunks/ellipsis-horizontal.C28slEaT.cjs.map +1 -1
  144. package/dist/chunks/exclamation-circle.BXs0Yj0f.cjs.map +1 -1
  145. package/dist/chunks/exclamation-circle.D4z1YE7G.mjs.map +1 -1
  146. package/dist/chunks/exclamation-triangle.BtW3be9S.cjs.map +1 -1
  147. package/dist/chunks/exclamation-triangle.DiZZcE2l.mjs.map +1 -1
  148. package/dist/chunks/eye-slash.BrQSe1kT.mjs.map +1 -1
  149. package/dist/chunks/eye-slash.C65GdgwJ.cjs.map +1 -1
  150. package/dist/chunks/eye.CzqaR8eU.cjs.map +1 -1
  151. package/dist/chunks/eye.yaEU50DN.mjs.map +1 -1
  152. package/dist/chunks/{fullscreen-img.directive.CrLLYi0D.mjs → fullscreen-img.directive.CEBhPyiD.mjs} +22 -22
  153. package/dist/chunks/fullscreen-img.directive.CEBhPyiD.mjs.map +1 -0
  154. package/dist/chunks/{fullscreen-img.directive.CeREtf7H.cjs → fullscreen-img.directive.CK-8DToy.cjs} +2 -2
  155. package/dist/chunks/fullscreen-img.directive.CK-8DToy.cjs.map +1 -0
  156. package/dist/chunks/information-circle.89FseEuJ.cjs.map +1 -1
  157. package/dist/chunks/information-circle.CEsJ8VHx.mjs.map +1 -1
  158. package/dist/chunks/lazy-img.directive.BeENE6S9.cjs.map +1 -1
  159. package/dist/chunks/lazy-img.directive.DqXA0UFo.mjs.map +1 -1
  160. package/dist/chunks/link.CUxj8BQ5.cjs.map +1 -1
  161. package/dist/chunks/link.qHT4E8pY.mjs.map +1 -1
  162. package/dist/chunks/magnifying-glass.6EkSEo-G.mjs.map +1 -1
  163. package/dist/chunks/magnifying-glass.CSf_M2wG.cjs.map +1 -1
  164. package/dist/chunks/minus.B8s20I4l.cjs.map +1 -1
  165. package/dist/chunks/minus.BHEyT7J2.mjs.map +1 -1
  166. package/dist/chunks/no-photography.B6pz0xMN.mjs.map +1 -1
  167. package/dist/chunks/no-photography.BJX8HSus.mjs.map +1 -1
  168. package/dist/chunks/no-photography.BPChQgKp.cjs.map +1 -1
  169. package/dist/chunks/no-photography.CLNgmzDi.cjs.map +1 -1
  170. package/dist/chunks/no-symbol.D1DeANDx.cjs.map +1 -1
  171. package/dist/chunks/no-symbol.DqVEpOgn.mjs.map +1 -1
  172. package/dist/chunks/pencil.Cl_0Egfc.mjs.map +1 -1
  173. package/dist/chunks/pencil.TIXFeSep.cjs.map +1 -1
  174. package/dist/chunks/plus.CNCGxFPJ.mjs.map +1 -1
  175. package/dist/chunks/plus.CbUgaWqj.cjs.map +1 -1
  176. package/dist/chunks/trash.hx3p13ce.cjs.map +1 -1
  177. package/dist/chunks/trash.lmwqE3cE.mjs.map +1 -1
  178. package/dist/chunks/{utils.Bex2hM45.mjs → utils.BxNCknPj.mjs} +11 -11
  179. package/dist/chunks/utils.BxNCknPj.mjs.map +1 -0
  180. package/dist/chunks/{utils.vGzCTXH5.cjs → utils.K864VNFX.cjs} +2 -2
  181. package/dist/chunks/utils.K864VNFX.cjs.map +1 -0
  182. package/dist/chunks/x-mark.DTWA3lfG.mjs.map +1 -1
  183. package/dist/chunks/x-mark.Dz-FO7Es.cjs.map +1 -1
  184. package/dist/components/MazAccordion.cjs +1 -1
  185. package/dist/components/MazAccordion.cjs.map +1 -1
  186. package/dist/components/MazAccordion.mjs +13 -13
  187. package/dist/components/MazAccordion.mjs.map +1 -1
  188. package/dist/components/MazAnimatedCounter.cjs +1 -1
  189. package/dist/components/MazAnimatedCounter.cjs.map +1 -1
  190. package/dist/components/MazAnimatedCounter.mjs +2 -2
  191. package/dist/components/MazAnimatedCounter.mjs.map +1 -1
  192. package/dist/components/MazAnimatedText.cjs +1 -1
  193. package/dist/components/MazAnimatedText.cjs.map +1 -1
  194. package/dist/components/MazAnimatedText.mjs +11 -11
  195. package/dist/components/MazAnimatedText.mjs.map +1 -1
  196. package/dist/components/MazAvatar.cjs +1 -1
  197. package/dist/components/MazAvatar.cjs.map +1 -1
  198. package/dist/components/MazAvatar.mjs +2 -2
  199. package/dist/components/MazAvatar.mjs.map +1 -1
  200. package/dist/components/MazBadge.cjs +1 -1
  201. package/dist/components/MazBadge.mjs +2 -2
  202. package/dist/components/MazBottomSheet.cjs +1 -1
  203. package/dist/components/MazBottomSheet.cjs.map +1 -1
  204. package/dist/components/MazBottomSheet.mjs +10 -10
  205. package/dist/components/MazBottomSheet.mjs.map +1 -1
  206. package/dist/components/MazBtn.cjs +1 -1
  207. package/dist/components/MazBtn.cjs.map +1 -1
  208. package/dist/components/MazBtn.mjs +2 -2
  209. package/dist/components/MazBtn.mjs.map +1 -1
  210. package/dist/components/MazCard.cjs +1 -1
  211. package/dist/components/MazCard.cjs.map +1 -1
  212. package/dist/components/MazCard.mjs +2 -2
  213. package/dist/components/MazCard.mjs.map +1 -1
  214. package/dist/components/MazCardSpotlight.cjs +1 -1
  215. package/dist/components/MazCardSpotlight.cjs.map +1 -1
  216. package/dist/components/MazCardSpotlight.mjs +2 -2
  217. package/dist/components/MazCardSpotlight.mjs.map +1 -1
  218. package/dist/components/MazCarousel.cjs +1 -1
  219. package/dist/components/MazCarousel.cjs.map +1 -1
  220. package/dist/components/MazCarousel.mjs +2 -2
  221. package/dist/components/MazCarousel.mjs.map +1 -1
  222. package/dist/components/MazCheckbox.cjs +1 -1
  223. package/dist/components/MazCheckbox.cjs.map +1 -1
  224. package/dist/components/MazCheckbox.mjs +6 -6
  225. package/dist/components/MazCheckbox.mjs.map +1 -1
  226. package/dist/components/MazChecklist.cjs +1 -1
  227. package/dist/components/MazChecklist.cjs.map +1 -1
  228. package/dist/components/MazChecklist.mjs +3 -3
  229. package/dist/components/MazChecklist.mjs.map +1 -1
  230. package/dist/components/MazCircularProgressBar.cjs +1 -1
  231. package/dist/components/MazCircularProgressBar.cjs.map +1 -1
  232. package/dist/components/MazCircularProgressBar.mjs +2 -2
  233. package/dist/components/MazCircularProgressBar.mjs.map +1 -1
  234. package/dist/components/MazDialog.cjs +1 -1
  235. package/dist/components/MazDialog.cjs.map +1 -1
  236. package/dist/components/MazDialog.mjs +2 -2
  237. package/dist/components/MazDialog.mjs.map +1 -1
  238. package/dist/components/MazDrawer.cjs +1 -1
  239. package/dist/components/MazDrawer.cjs.map +1 -1
  240. package/dist/components/MazDrawer.mjs +8 -8
  241. package/dist/components/MazDrawer.mjs.map +1 -1
  242. package/dist/components/MazDropzone.cjs.map +1 -1
  243. package/dist/components/MazDropzone.mjs.map +1 -1
  244. package/dist/components/MazFullscreenLoader.cjs +1 -1
  245. package/dist/components/MazFullscreenLoader.cjs.map +1 -1
  246. package/dist/components/MazFullscreenLoader.mjs +2 -2
  247. package/dist/components/MazFullscreenLoader.mjs.map +1 -1
  248. package/dist/components/MazGallery.cjs +1 -1
  249. package/dist/components/MazGallery.cjs.map +1 -1
  250. package/dist/components/MazGallery.mjs +3 -3
  251. package/dist/components/MazGallery.mjs.map +1 -1
  252. package/dist/components/MazInput.cjs +1 -1
  253. package/dist/components/MazInput.cjs.map +1 -1
  254. package/dist/components/MazInput.mjs +2 -2
  255. package/dist/components/MazInput.mjs.map +1 -1
  256. package/dist/components/MazInputCode.cjs +1 -1
  257. package/dist/components/MazInputCode.cjs.map +1 -1
  258. package/dist/components/MazInputCode.mjs +5 -5
  259. package/dist/components/MazInputCode.mjs.map +1 -1
  260. package/dist/components/MazInputNumber.cjs +1 -1
  261. package/dist/components/MazInputNumber.mjs +1 -1
  262. package/dist/components/MazInputPhoneNumber.cjs +1 -1
  263. package/dist/components/MazInputPhoneNumber.mjs +1 -1
  264. package/dist/components/MazInputPrice.cjs +1 -1
  265. package/dist/components/MazInputPrice.mjs +1 -1
  266. package/dist/components/MazInputTags.cjs +1 -1
  267. package/dist/components/MazInputTags.cjs.map +1 -1
  268. package/dist/components/MazInputTags.mjs +8 -8
  269. package/dist/components/MazInputTags.mjs.map +1 -1
  270. package/dist/components/MazLazyImg.cjs +1 -1
  271. package/dist/components/MazLazyImg.cjs.map +1 -1
  272. package/dist/components/MazLazyImg.mjs +5 -5
  273. package/dist/components/MazLazyImg.mjs.map +1 -1
  274. package/dist/components/MazLink.cjs +1 -1
  275. package/dist/components/MazLink.cjs.map +1 -1
  276. package/dist/components/MazLink.mjs +2 -2
  277. package/dist/components/MazLink.mjs.map +1 -1
  278. package/dist/components/MazLoadingBar.cjs +1 -1
  279. package/dist/components/MazLoadingBar.cjs.map +1 -1
  280. package/dist/components/MazLoadingBar.mjs +4 -4
  281. package/dist/components/MazLoadingBar.mjs.map +1 -1
  282. package/dist/components/MazPagination.cjs +1 -1
  283. package/dist/components/MazPagination.cjs.map +1 -1
  284. package/dist/components/MazPagination.mjs +2 -2
  285. package/dist/components/MazPagination.mjs.map +1 -1
  286. package/dist/components/MazPicker.cjs +1 -1
  287. package/dist/components/MazPicker.mjs +1 -1
  288. package/dist/components/MazPullToRefresh.cjs +1 -1
  289. package/dist/components/MazPullToRefresh.cjs.map +1 -1
  290. package/dist/components/MazPullToRefresh.mjs +2 -2
  291. package/dist/components/MazPullToRefresh.mjs.map +1 -1
  292. package/dist/components/MazRadio.cjs +1 -1
  293. package/dist/components/MazRadio.cjs.map +1 -1
  294. package/dist/components/MazRadio.mjs +7 -7
  295. package/dist/components/MazRadio.mjs.map +1 -1
  296. package/dist/components/MazRadioButtons.cjs +1 -1
  297. package/dist/components/MazRadioButtons.cjs.map +1 -1
  298. package/dist/components/MazRadioButtons.mjs +2 -2
  299. package/dist/components/MazRadioButtons.mjs.map +1 -1
  300. package/dist/components/MazReadingProgressBar.cjs +1 -1
  301. package/dist/components/MazReadingProgressBar.cjs.map +1 -1
  302. package/dist/components/MazReadingProgressBar.mjs +7 -7
  303. package/dist/components/MazReadingProgressBar.mjs.map +1 -1
  304. package/dist/components/MazSelect.cjs +1 -1
  305. package/dist/components/MazSelect.cjs.map +1 -1
  306. package/dist/components/MazSelect.mjs +7 -7
  307. package/dist/components/MazSelect.mjs.map +1 -1
  308. package/dist/components/MazSlider.cjs +1 -1
  309. package/dist/components/MazSlider.cjs.map +1 -1
  310. package/dist/components/MazSlider.mjs +11 -11
  311. package/dist/components/MazSlider.mjs.map +1 -1
  312. package/dist/components/MazSpinner.cjs +1 -1
  313. package/dist/components/MazSpinner.mjs +2 -2
  314. package/dist/components/MazStepper.cjs +1 -1
  315. package/dist/components/MazStepper.cjs.map +1 -1
  316. package/dist/components/MazStepper.mjs +22 -22
  317. package/dist/components/MazStepper.mjs.map +1 -1
  318. package/dist/components/MazTable.cjs +1 -1
  319. package/dist/components/MazTable.mjs +3 -3
  320. package/dist/components/MazTableCell.cjs +1 -1
  321. package/dist/components/MazTableCell.cjs.map +1 -1
  322. package/dist/components/MazTableCell.mjs +7 -7
  323. package/dist/components/MazTableCell.mjs.map +1 -1
  324. package/dist/components/MazTableRow.cjs +1 -1
  325. package/dist/components/MazTableRow.cjs.map +1 -1
  326. package/dist/components/MazTableRow.mjs +7 -7
  327. package/dist/components/MazTableRow.mjs.map +1 -1
  328. package/dist/components/MazTableTitle.cjs +1 -1
  329. package/dist/components/MazTableTitle.cjs.map +1 -1
  330. package/dist/components/MazTableTitle.mjs +3 -3
  331. package/dist/components/MazTableTitle.mjs.map +1 -1
  332. package/dist/components/MazTabsBar.cjs +1 -1
  333. package/dist/components/MazTabsBar.cjs.map +1 -1
  334. package/dist/components/MazTabsBar.mjs +2 -2
  335. package/dist/components/MazTabsBar.mjs.map +1 -1
  336. package/dist/components/MazTabsContentItem.cjs +1 -1
  337. package/dist/components/MazTabsContentItem.cjs.map +1 -1
  338. package/dist/components/MazTabsContentItem.mjs +2 -2
  339. package/dist/components/MazTabsContentItem.mjs.map +1 -1
  340. package/dist/components/MazTextarea.cjs +1 -1
  341. package/dist/components/MazTextarea.cjs.map +1 -1
  342. package/dist/components/MazTextarea.mjs +6 -6
  343. package/dist/components/MazTextarea.mjs.map +1 -1
  344. package/dist/composables/useAos.cjs.map +1 -1
  345. package/dist/composables/useAos.mjs.map +1 -1
  346. package/dist/composables/useBreakpoints.cjs.map +1 -1
  347. package/dist/composables/useBreakpoints.mjs.map +1 -1
  348. package/dist/composables/useDialog.cjs.map +1 -1
  349. package/dist/composables/useDialog.mjs.map +1 -1
  350. package/dist/composables/useFormField.cjs +1 -1
  351. package/dist/composables/useFormField.cjs.map +1 -1
  352. package/dist/composables/useFormField.mjs +19 -19
  353. package/dist/composables/useFormField.mjs.map +1 -1
  354. package/dist/composables/useFormValidator.cjs +1 -1
  355. package/dist/composables/useFormValidator.cjs.map +1 -1
  356. package/dist/composables/useFormValidator.mjs +11 -11
  357. package/dist/composables/useFormValidator.mjs.map +1 -1
  358. package/dist/composables/useIdleTimeout.cjs.map +1 -1
  359. package/dist/composables/useIdleTimeout.mjs.map +1 -1
  360. package/dist/composables/useStringMatching.cjs +1 -1
  361. package/dist/composables/useStringMatching.cjs.map +1 -1
  362. package/dist/composables/useStringMatching.mjs +1 -1
  363. package/dist/composables/useStringMatching.mjs.map +1 -1
  364. package/dist/composables/useSwipe.cjs +1 -1
  365. package/dist/composables/useSwipe.cjs.map +1 -1
  366. package/dist/composables/useSwipe.mjs +3 -3
  367. package/dist/composables/useSwipe.mjs.map +1 -1
  368. package/dist/composables/useThemeHandler.cjs +1 -1
  369. package/dist/composables/useThemeHandler.cjs.map +1 -1
  370. package/dist/composables/useThemeHandler.mjs +1 -1
  371. package/dist/composables/useThemeHandler.mjs.map +1 -1
  372. package/dist/composables/useToast.cjs.map +1 -1
  373. package/dist/composables/useToast.mjs.map +1 -1
  374. package/dist/composables/useUserVisibilty.cjs.map +1 -1
  375. package/dist/composables/useUserVisibilty.mjs.map +1 -1
  376. package/dist/composables/useWait.cjs.map +1 -1
  377. package/dist/composables/useWait.mjs.map +1 -1
  378. package/dist/composables/useWindowSize.cjs +1 -1
  379. package/dist/composables/useWindowSize.cjs.map +1 -1
  380. package/dist/composables/useWindowSize.mjs +5 -5
  381. package/dist/composables/useWindowSize.mjs.map +1 -1
  382. package/dist/css/main.css +1 -1
  383. package/dist/directives/vClickOutside.cjs.map +1 -1
  384. package/dist/directives/vClickOutside.mjs.map +1 -1
  385. package/dist/directives/vClosable.cjs.map +1 -1
  386. package/dist/directives/vClosable.mjs.map +1 -1
  387. package/dist/directives/vFullscreenImg.cjs +1 -1
  388. package/dist/directives/vFullscreenImg.mjs +1 -1
  389. package/dist/directives/vLazyImg.cjs.map +1 -1
  390. package/dist/directives/vLazyImg.mjs.map +1 -1
  391. package/dist/directives/vTooltip.cjs.map +1 -1
  392. package/dist/directives/vTooltip.mjs.map +1 -1
  393. package/dist/filters/pascalCase.cjs.map +1 -1
  394. package/dist/filters/pascalCase.mjs.map +1 -1
  395. package/dist/helpers/countryCodeToUnicodeFlag.cjs.map +1 -1
  396. package/dist/helpers/countryCodeToUnicodeFlag.mjs.map +1 -1
  397. package/dist/index.cjs +1 -1
  398. package/dist/index.mjs +5 -5
  399. package/dist/nuxt/module.d.mts +1 -1
  400. package/dist/nuxt/module.d.ts +1 -1
  401. package/dist/nuxt/module.json +1 -1
  402. package/dist/nuxt/module.mjs +13 -8
  403. package/dist/nuxt/runtime/plugins/dialog.js +2 -2
  404. package/dist/plugins/aos.cjs.map +1 -1
  405. package/dist/plugins/aos.mjs.map +1 -1
  406. package/dist/plugins/dialog.cjs.map +1 -1
  407. package/dist/plugins/dialog.mjs.map +1 -1
  408. package/dist/plugins/toaster.cjs +1 -1
  409. package/dist/plugins/toaster.cjs.map +1 -1
  410. package/dist/plugins/toaster.mjs +2 -2
  411. package/dist/plugins/toaster.mjs.map +1 -1
  412. package/dist/resolvers/UnpluginVueComponentsResolver.cjs.map +1 -1
  413. package/dist/resolvers/UnpluginVueComponentsResolver.mjs.map +1 -1
  414. package/dist/types/components/MazAvatar.vue.d.ts +1 -1
  415. package/dist/types/components/MazCard.vue.d.ts +1 -1
  416. package/dist/types/components/MazDialogPromise/useMazDialogPromise.d.ts +1 -1
  417. package/dist/types/components/MazDropdown.vue.d.ts +1 -1
  418. package/dist/types/components/MazInputPhoneNumber/CountrySelector.vue.d.ts +3 -3
  419. package/dist/types/components/MazInputPhoneNumber/types.d.ts +1 -1
  420. package/dist/types/components/MazInputPhoneNumber.vue.d.ts +1 -1
  421. package/dist/types/components/MazLazyImg.vue.d.ts +1 -1
  422. package/dist/types/components/MazLink.vue.d.ts +1 -1
  423. package/dist/types/components/MazPicker/MazPickerCalendar.vue.d.ts +1 -1
  424. package/dist/types/components/MazPicker/MazPickerCalendarMonth/MazPickerCalendarGrid.vue.d.ts +1 -1
  425. package/dist/types/components/MazPicker/MazPickerCalendarMonth/MazPickerCalendarMonth.vue.d.ts +1 -1
  426. package/dist/types/components/MazPicker/MazPickerContainer.vue.d.ts +1 -1
  427. package/dist/types/components/MazPicker/MazPickerHeader.vue.d.ts +1 -1
  428. package/dist/types/components/MazPicker/MazPickerShortcuts.vue.d.ts +1 -1
  429. package/dist/types/components/MazPicker/MazPickerTime.vue.d.ts +2 -2
  430. package/dist/types/components/MazPicker/utils.d.ts +1 -1
  431. package/dist/types/components/MazSlider.vue.d.ts +1 -1
  432. package/dist/types/components/constantes.d.ts +1 -2
  433. package/dist/types/components/types.d.ts +2 -1
  434. package/dist/types/composables/useFormField.d.ts +2 -2
  435. package/dist/types/composables/useFormValidator/types.d.ts +3 -3
  436. package/dist/types/composables/useFormValidator.d.ts +3 -3
  437. package/dist/types/directives/vClickOutside.d.ts +1 -1
  438. package/dist/types/directives/vClosable.d.ts +1 -1
  439. package/dist/types/directives/vLazyImg.d.ts +2 -1
  440. package/dist/types/directives/vTooltip.d.ts +1 -1
  441. package/package.json +6 -6
  442. package/{dist/tailwindcss → tailwindcss}/tailwind.css +1 -1
  443. package/dist/assets/MazBtn.7QWd6o3M.css +0 -1
  444. package/dist/assets/MazGallery.ChuEM3_y.css +0 -1
  445. package/dist/assets/MazInput.C5uUOQLJ.css +0 -1
  446. package/dist/assets/MazInputCode.C1Mlb3p3.css +0 -1
  447. package/dist/assets/MazLink.DQ7r1i9T.css +0 -1
  448. package/dist/assets/MazLoadingBar.C6sNjytz.css +0 -1
  449. package/dist/assets/MazPicker.fY2qT4ER.css +0 -1
  450. package/dist/assets/MazPickerCalendarMonth.GACBSeof.css +0 -1
  451. package/dist/assets/MazReadingProgressBar.CbqVvC8N.css +0 -1
  452. package/dist/assets/MazSpinner.DTuz1RdS.css +0 -1
  453. package/dist/assets/MazTable.D06R_2nI.css +0 -1
  454. package/dist/assets/MazTableCell.BDmda4j7.css +0 -1
  455. package/dist/assets/MazTableRow.Copw9RJN.css +0 -1
  456. package/dist/assets/MazTableTitle.Cspgmj1g.css +0 -1
  457. package/dist/assets/PhoneInput.utJQQXVJ.css +0 -1
  458. package/dist/bin/maz.mjs +0 -2
  459. package/dist/chunks/CountrySelector.C5XZelLY.mjs.map +0 -1
  460. package/dist/chunks/CountrySelector.mFGaqpPf.cjs.map +0 -1
  461. package/dist/chunks/MazInputNumber.vue_vue_type_script_setup_true_lang.Bbod2mLd.mjs.map +0 -1
  462. package/dist/chunks/MazInputNumber.vue_vue_type_script_setup_true_lang.DiawfWBC.cjs.map +0 -1
  463. package/dist/chunks/MazInputPrice.vue_vue_type_script_setup_true_lang.C3X2lwRl.mjs.map +0 -1
  464. package/dist/chunks/MazInputPrice.vue_vue_type_script_setup_true_lang.CCatmP_L.cjs.map +0 -1
  465. package/dist/chunks/MazPicker.BZE8cw36.cjs.map +0 -1
  466. package/dist/chunks/MazPicker.DCnOkRvv.mjs.map +0 -1
  467. package/dist/chunks/MazPickerCalendar.CVZ8VoYr.cjs.map +0 -1
  468. package/dist/chunks/MazPickerCalendar.NeYLrtl-.mjs.map +0 -1
  469. package/dist/chunks/MazPickerCalendarMonth.DpvQC45k.cjs.map +0 -1
  470. package/dist/chunks/MazPickerCalendarMonth.rnaiDHFM.mjs.map +0 -1
  471. package/dist/chunks/MazPickerCalendarSwitcher.DC2wff_J.cjs.map +0 -1
  472. package/dist/chunks/MazPickerCalendarSwitcher.DFGrD6Cr.mjs.map +0 -1
  473. package/dist/chunks/MazPickerHeader.B7YY9SJI.mjs.map +0 -1
  474. package/dist/chunks/MazPickerHeader.l7NcmiGH.cjs.map +0 -1
  475. package/dist/chunks/MazPickerMonthSwitcher.CAPx3PCt.mjs.map +0 -1
  476. package/dist/chunks/MazPickerMonthSwitcher.CbplWFfL.cjs.map +0 -1
  477. package/dist/chunks/MazPickerShortcuts.Bawm0q33.mjs.map +0 -1
  478. package/dist/chunks/MazPickerShortcuts.LxFs0Y6N.cjs.map +0 -1
  479. package/dist/chunks/MazPickerTime.7cxq-Qac.cjs.map +0 -1
  480. package/dist/chunks/MazPickerTime.C27aFPPw.mjs.map +0 -1
  481. package/dist/chunks/MazPickerYearSwitcher.DMBOaMYy.mjs.map +0 -1
  482. package/dist/chunks/MazPickerYearSwitcher.Dku2IMIJ.cjs.map +0 -1
  483. package/dist/chunks/MazTable.vue_vue_type_style_index_0_scoped_4101f1d3_lang.Ctmf2NVE.cjs.map +0 -1
  484. package/dist/chunks/MazTable.vue_vue_type_style_index_0_scoped_4101f1d3_lang.Dwkx-V96.mjs.map +0 -1
  485. package/dist/chunks/PhoneInput.9GQJbL9x.mjs.map +0 -1
  486. package/dist/chunks/PhoneInput.D5DG4S60.cjs.map +0 -1
  487. package/dist/chunks/fullscreen-img.directive.CeREtf7H.cjs.map +0 -1
  488. package/dist/chunks/fullscreen-img.directive.CrLLYi0D.mjs.map +0 -1
  489. package/dist/chunks/utils.Bex2hM45.mjs.map +0 -1
  490. package/dist/chunks/utils.vGzCTXH5.cjs.map +0 -1
  491. package/dist/types/tailwindcss/tailwind.config.d.ts +0 -121
  492. package/dist/types/tailwindcss/utils/colors.d.ts +0 -1
  493. package/dist/types/tailwindcss/variables/breakpoints.d.ts +0 -15
  494. package/dist/types/tailwindcss/variables/colors.d.ts +0 -32
  495. package/dist/types/tailwindcss/variables/utilities.d.ts +0 -22
  496. package/dist/types/tailwindcss/variables/z-indexes.d.ts +0 -14
  497. /package/{dist/icons → icons}/academic-cap.svg +0 -0
  498. /package/{dist/icons → icons}/adjustments-horizontal.svg +0 -0
  499. /package/{dist/icons → icons}/adjustments-vertical.svg +0 -0
  500. /package/{dist/icons → icons}/archive-box-arrow-down.svg +0 -0
  501. /package/{dist/icons → icons}/archive-box-x-mark.svg +0 -0
  502. /package/{dist/icons → icons}/archive-box.svg +0 -0
  503. /package/{dist/icons → icons}/arrow-down-circle.svg +0 -0
  504. /package/{dist/icons → icons}/arrow-down-left.svg +0 -0
  505. /package/{dist/icons → icons}/arrow-down-on-square-stack.svg +0 -0
  506. /package/{dist/icons → icons}/arrow-down-on-square.svg +0 -0
  507. /package/{dist/icons → icons}/arrow-down-right.svg +0 -0
  508. /package/{dist/icons → icons}/arrow-down-tray.svg +0 -0
  509. /package/{dist/icons → icons}/arrow-down.svg +0 -0
  510. /package/{dist/icons → icons}/arrow-left-circle.svg +0 -0
  511. /package/{dist/icons → icons}/arrow-left-end-on-rectangle.svg +0 -0
  512. /package/{dist/icons → icons}/arrow-left-on-rectangle.svg +0 -0
  513. /package/{dist/icons → icons}/arrow-left-start-on-rectangle.svg +0 -0
  514. /package/{dist/icons → icons}/arrow-left.svg +0 -0
  515. /package/{dist/icons → icons}/arrow-long-down.svg +0 -0
  516. /package/{dist/icons → icons}/arrow-long-left.svg +0 -0
  517. /package/{dist/icons → icons}/arrow-long-right.svg +0 -0
  518. /package/{dist/icons → icons}/arrow-long-up.svg +0 -0
  519. /package/{dist/icons → icons}/arrow-path-rounded-square.svg +0 -0
  520. /package/{dist/icons → icons}/arrow-path.svg +0 -0
  521. /package/{dist/icons → icons}/arrow-right-circle.svg +0 -0
  522. /package/{dist/icons → icons}/arrow-right-end-on-rectangle.svg +0 -0
  523. /package/{dist/icons → icons}/arrow-right-on-rectangle.svg +0 -0
  524. /package/{dist/icons → icons}/arrow-right-start-on-rectangle.svg +0 -0
  525. /package/{dist/icons → icons}/arrow-right.svg +0 -0
  526. /package/{dist/icons → icons}/arrow-small-down.svg +0 -0
  527. /package/{dist/icons → icons}/arrow-small-left.svg +0 -0
  528. /package/{dist/icons → icons}/arrow-small-right.svg +0 -0
  529. /package/{dist/icons → icons}/arrow-small-up.svg +0 -0
  530. /package/{dist/icons → icons}/arrow-top-right-on-square.svg +0 -0
  531. /package/{dist/icons → icons}/arrow-trending-down.svg +0 -0
  532. /package/{dist/icons → icons}/arrow-trending-up.svg +0 -0
  533. /package/{dist/icons → icons}/arrow-up-circle.svg +0 -0
  534. /package/{dist/icons → icons}/arrow-up-left.svg +0 -0
  535. /package/{dist/icons → icons}/arrow-up-on-square-stack.svg +0 -0
  536. /package/{dist/icons → icons}/arrow-up-on-square.svg +0 -0
  537. /package/{dist/icons → icons}/arrow-up-right.svg +0 -0
  538. /package/{dist/icons → icons}/arrow-up-tray.svg +0 -0
  539. /package/{dist/icons → icons}/arrow-up.svg +0 -0
  540. /package/{dist/icons → icons}/arrow-uturn-down.svg +0 -0
  541. /package/{dist/icons → icons}/arrow-uturn-left.svg +0 -0
  542. /package/{dist/icons → icons}/arrow-uturn-right.svg +0 -0
  543. /package/{dist/icons → icons}/arrow-uturn-up.svg +0 -0
  544. /package/{dist/icons → icons}/arrows-pointing-in.svg +0 -0
  545. /package/{dist/icons → icons}/arrows-pointing-out.svg +0 -0
  546. /package/{dist/icons → icons}/arrows-right-left.svg +0 -0
  547. /package/{dist/icons → icons}/arrows-up-down.svg +0 -0
  548. /package/{dist/icons → icons}/at-symbol.svg +0 -0
  549. /package/{dist/icons → icons}/backspace.svg +0 -0
  550. /package/{dist/icons → icons}/backward.svg +0 -0
  551. /package/{dist/icons → icons}/banknotes.svg +0 -0
  552. /package/{dist/icons → icons}/bars-2.svg +0 -0
  553. /package/{dist/icons → icons}/bars-3-bottom-left.svg +0 -0
  554. /package/{dist/icons → icons}/bars-3-bottom-right.svg +0 -0
  555. /package/{dist/icons → icons}/bars-3-center-left.svg +0 -0
  556. /package/{dist/icons → icons}/bars-3.svg +0 -0
  557. /package/{dist/icons → icons}/bars-4.svg +0 -0
  558. /package/{dist/icons → icons}/bars-arrow-down.svg +0 -0
  559. /package/{dist/icons → icons}/bars-arrow-up.svg +0 -0
  560. /package/{dist/icons → icons}/battery-0.svg +0 -0
  561. /package/{dist/icons → icons}/battery-100.svg +0 -0
  562. /package/{dist/icons → icons}/battery-50.svg +0 -0
  563. /package/{dist/icons → icons}/beaker.svg +0 -0
  564. /package/{dist/icons → icons}/bell-alert.svg +0 -0
  565. /package/{dist/icons → icons}/bell-slash.svg +0 -0
  566. /package/{dist/icons → icons}/bell-snooze.svg +0 -0
  567. /package/{dist/icons → icons}/bell.svg +0 -0
  568. /package/{dist/icons → icons}/bolt-slash.svg +0 -0
  569. /package/{dist/icons → icons}/bolt.svg +0 -0
  570. /package/{dist/icons → icons}/book-open.svg +0 -0
  571. /package/{dist/icons → icons}/bookmark-slash.svg +0 -0
  572. /package/{dist/icons → icons}/bookmark-square.svg +0 -0
  573. /package/{dist/icons → icons}/bookmark.svg +0 -0
  574. /package/{dist/icons → icons}/briefcase.svg +0 -0
  575. /package/{dist/icons → icons}/bug-ant.svg +0 -0
  576. /package/{dist/icons → icons}/building-library.svg +0 -0
  577. /package/{dist/icons → icons}/building-office-2.svg +0 -0
  578. /package/{dist/icons → icons}/building-office.svg +0 -0
  579. /package/{dist/icons → icons}/building-storefront.svg +0 -0
  580. /package/{dist/icons → icons}/cake.svg +0 -0
  581. /package/{dist/icons → icons}/calculator.svg +0 -0
  582. /package/{dist/icons → icons}/calendar-days.svg +0 -0
  583. /package/{dist/icons → icons}/calendar.svg +0 -0
  584. /package/{dist/icons → icons}/camera.svg +0 -0
  585. /package/{dist/icons → icons}/chart-bar-square.svg +0 -0
  586. /package/{dist/icons → icons}/chart-bar.svg +0 -0
  587. /package/{dist/icons → icons}/chart-pie.svg +0 -0
  588. /package/{dist/icons → icons}/chat-bubble-bottom-center-text.svg +0 -0
  589. /package/{dist/icons → icons}/chat-bubble-bottom-center.svg +0 -0
  590. /package/{dist/icons → icons}/chat-bubble-left-ellipsis.svg +0 -0
  591. /package/{dist/icons → icons}/chat-bubble-left-right.svg +0 -0
  592. /package/{dist/icons → icons}/chat-bubble-left.svg +0 -0
  593. /package/{dist/icons → icons}/chat-bubble-oval-left-ellipsis.svg +0 -0
  594. /package/{dist/icons → icons}/chat-bubble-oval-left.svg +0 -0
  595. /package/{dist/icons → icons}/check-badge.svg +0 -0
  596. /package/{dist/icons → icons}/check-circle.svg +0 -0
  597. /package/{dist/icons → icons}/check.svg +0 -0
  598. /package/{dist/icons → icons}/chevron-double-down.svg +0 -0
  599. /package/{dist/icons → icons}/chevron-double-left.svg +0 -0
  600. /package/{dist/icons → icons}/chevron-double-right.svg +0 -0
  601. /package/{dist/icons → icons}/chevron-double-up.svg +0 -0
  602. /package/{dist/icons → icons}/chevron-down.svg +0 -0
  603. /package/{dist/icons → icons}/chevron-left.svg +0 -0
  604. /package/{dist/icons → icons}/chevron-right.svg +0 -0
  605. /package/{dist/icons → icons}/chevron-up-down.svg +0 -0
  606. /package/{dist/icons → icons}/chevron-up.svg +0 -0
  607. /package/{dist/icons → icons}/circle-stack.svg +0 -0
  608. /package/{dist/icons → icons}/clipboard-document-check.svg +0 -0
  609. /package/{dist/icons → icons}/clipboard-document-list.svg +0 -0
  610. /package/{dist/icons → icons}/clipboard-document.svg +0 -0
  611. /package/{dist/icons → icons}/clipboard.svg +0 -0
  612. /package/{dist/icons → icons}/clock.svg +0 -0
  613. /package/{dist/icons → icons}/cloud-arrow-down.svg +0 -0
  614. /package/{dist/icons → icons}/cloud-arrow-up.svg +0 -0
  615. /package/{dist/icons → icons}/cloud.svg +0 -0
  616. /package/{dist/icons → icons}/code-bracket-square.svg +0 -0
  617. /package/{dist/icons → icons}/code-bracket.svg +0 -0
  618. /package/{dist/icons → icons}/cog-6-tooth.svg +0 -0
  619. /package/{dist/icons → icons}/cog-8-tooth.svg +0 -0
  620. /package/{dist/icons → icons}/cog.svg +0 -0
  621. /package/{dist/icons → icons}/command-line.svg +0 -0
  622. /package/{dist/icons → icons}/computer-desktop.svg +0 -0
  623. /package/{dist/icons → icons}/cpu-chip.svg +0 -0
  624. /package/{dist/icons → icons}/credit-card.svg +0 -0
  625. /package/{dist/icons → icons}/cube-transparent.svg +0 -0
  626. /package/{dist/icons → icons}/cube.svg +0 -0
  627. /package/{dist/icons → icons}/currency-bangladeshi.svg +0 -0
  628. /package/{dist/icons → icons}/currency-dollar.svg +0 -0
  629. /package/{dist/icons → icons}/currency-euro.svg +0 -0
  630. /package/{dist/icons → icons}/currency-pound.svg +0 -0
  631. /package/{dist/icons → icons}/currency-rupee.svg +0 -0
  632. /package/{dist/icons → icons}/currency-yen.svg +0 -0
  633. /package/{dist/icons → icons}/cursor-arrow-rays.svg +0 -0
  634. /package/{dist/icons → icons}/cursor-arrow-ripple.svg +0 -0
  635. /package/{dist/icons → icons}/device-phone-mobile.svg +0 -0
  636. /package/{dist/icons → icons}/device-tablet.svg +0 -0
  637. /package/{dist/icons → icons}/document-arrow-down.svg +0 -0
  638. /package/{dist/icons → icons}/document-arrow-up.svg +0 -0
  639. /package/{dist/icons → icons}/document-chart-bar.svg +0 -0
  640. /package/{dist/icons → icons}/document-check.svg +0 -0
  641. /package/{dist/icons → icons}/document-duplicate.svg +0 -0
  642. /package/{dist/icons → icons}/document-magnifying-glass.svg +0 -0
  643. /package/{dist/icons → icons}/document-minus.svg +0 -0
  644. /package/{dist/icons → icons}/document-plus.svg +0 -0
  645. /package/{dist/icons → icons}/document-text.svg +0 -0
  646. /package/{dist/icons → icons}/document.svg +0 -0
  647. /package/{dist/icons → icons}/ellipsis-horizontal-circle.svg +0 -0
  648. /package/{dist/icons → icons}/ellipsis-horizontal.svg +0 -0
  649. /package/{dist/icons → icons}/ellipsis-vertical.svg +0 -0
  650. /package/{dist/icons → icons}/envelope-open.svg +0 -0
  651. /package/{dist/icons → icons}/envelope.svg +0 -0
  652. /package/{dist/icons → icons}/exclamation-circle.svg +0 -0
  653. /package/{dist/icons → icons}/exclamation-triangle.svg +0 -0
  654. /package/{dist/icons → icons}/eye-dropper.svg +0 -0
  655. /package/{dist/icons → icons}/eye-slash.svg +0 -0
  656. /package/{dist/icons → icons}/eye.svg +0 -0
  657. /package/{dist/icons → icons}/face-frown.svg +0 -0
  658. /package/{dist/icons → icons}/face-smile.svg +0 -0
  659. /package/{dist/icons → icons}/film.svg +0 -0
  660. /package/{dist/icons → icons}/finger-print.svg +0 -0
  661. /package/{dist/icons → icons}/fire.svg +0 -0
  662. /package/{dist/icons → icons}/flag.svg +0 -0
  663. /package/{dist/icons → icons}/folder-arrow-down.svg +0 -0
  664. /package/{dist/icons → icons}/folder-minus.svg +0 -0
  665. /package/{dist/icons → icons}/folder-open.svg +0 -0
  666. /package/{dist/icons → icons}/folder-plus.svg +0 -0
  667. /package/{dist/icons → icons}/folder.svg +0 -0
  668. /package/{dist/icons → icons}/fork.svg +0 -0
  669. /package/{dist/icons → icons}/forward.svg +0 -0
  670. /package/{dist/icons → icons}/funnel.svg +0 -0
  671. /package/{dist/icons → icons}/gif.svg +0 -0
  672. /package/{dist/icons → icons}/gift-top.svg +0 -0
  673. /package/{dist/icons → icons}/gift.svg +0 -0
  674. /package/{dist/icons → icons}/github.svg +0 -0
  675. /package/{dist/icons → icons}/globe-alt.svg +0 -0
  676. /package/{dist/icons → icons}/globe-americas.svg +0 -0
  677. /package/{dist/icons → icons}/globe-asia-australia.svg +0 -0
  678. /package/{dist/icons → icons}/globe-europe-africa.svg +0 -0
  679. /package/{dist/icons → icons}/hand-raised.svg +0 -0
  680. /package/{dist/icons → icons}/hand-thumb-down.svg +0 -0
  681. /package/{dist/icons → icons}/hand-thumb-up.svg +0 -0
  682. /package/{dist/icons → icons}/hashtag.svg +0 -0
  683. /package/{dist/icons → icons}/heart.svg +0 -0
  684. /package/{dist/icons → icons}/home-modern.svg +0 -0
  685. /package/{dist/icons → icons}/home.svg +0 -0
  686. /package/{dist/icons → icons}/identification.svg +0 -0
  687. /package/{dist/icons → icons}/inbox-arrow-down.svg +0 -0
  688. /package/{dist/icons → icons}/inbox-stack.svg +0 -0
  689. /package/{dist/icons → icons}/inbox.svg +0 -0
  690. /package/{dist/icons → icons}/information-circle.svg +0 -0
  691. /package/{dist/icons → icons}/key.svg +0 -0
  692. /package/{dist/icons → icons}/language.svg +0 -0
  693. /package/{dist/icons → icons}/lifebuoy.svg +0 -0
  694. /package/{dist/icons → icons}/light-bulb.svg +0 -0
  695. /package/{dist/icons → icons}/link.svg +0 -0
  696. /package/{dist/icons → icons}/list-bullet.svg +0 -0
  697. /package/{dist/icons → icons}/lock-closed.svg +0 -0
  698. /package/{dist/icons → icons}/lock-open.svg +0 -0
  699. /package/{dist/icons → icons}/magnifying-glass-circle.svg +0 -0
  700. /package/{dist/icons → icons}/magnifying-glass-minus.svg +0 -0
  701. /package/{dist/icons → icons}/magnifying-glass-plus.svg +0 -0
  702. /package/{dist/icons → icons}/magnifying-glass.svg +0 -0
  703. /package/{dist/icons → icons}/map-pin.svg +0 -0
  704. /package/{dist/icons → icons}/map.svg +0 -0
  705. /package/{dist/icons → icons}/megaphone.svg +0 -0
  706. /package/{dist/icons → icons}/microphone.svg +0 -0
  707. /package/{dist/icons → icons}/minus-circle.svg +0 -0
  708. /package/{dist/icons → icons}/minus-small.svg +0 -0
  709. /package/{dist/icons → icons}/minus.svg +0 -0
  710. /package/{dist/icons → icons}/moon.svg +0 -0
  711. /package/{dist/icons → icons}/musical-note.svg +0 -0
  712. /package/{dist/icons → icons}/newspaper.svg +0 -0
  713. /package/{dist/icons → icons}/no-photography.svg +0 -0
  714. /package/{dist/icons → icons}/no-symbol.svg +0 -0
  715. /package/{dist/icons → icons}/paint-brush.svg +0 -0
  716. /package/{dist/icons → icons}/paper-airplane.svg +0 -0
  717. /package/{dist/icons → icons}/paper-clip.svg +0 -0
  718. /package/{dist/icons → icons}/pause-circle.svg +0 -0
  719. /package/{dist/icons → icons}/pause.svg +0 -0
  720. /package/{dist/icons → icons}/pencil-square.svg +0 -0
  721. /package/{dist/icons → icons}/pencil.svg +0 -0
  722. /package/{dist/icons → icons}/phone-arrow-down-left.svg +0 -0
  723. /package/{dist/icons → icons}/phone-arrow-up-right.svg +0 -0
  724. /package/{dist/icons → icons}/phone-x-mark.svg +0 -0
  725. /package/{dist/icons → icons}/phone.svg +0 -0
  726. /package/{dist/icons → icons}/photo.svg +0 -0
  727. /package/{dist/icons → icons}/play-circle.svg +0 -0
  728. /package/{dist/icons → icons}/play-pause.svg +0 -0
  729. /package/{dist/icons → icons}/play.svg +0 -0
  730. /package/{dist/icons → icons}/plus-circle.svg +0 -0
  731. /package/{dist/icons → icons}/plus-small.svg +0 -0
  732. /package/{dist/icons → icons}/plus.svg +0 -0
  733. /package/{dist/icons → icons}/power.svg +0 -0
  734. /package/{dist/icons → icons}/presentation-chart-bar.svg +0 -0
  735. /package/{dist/icons → icons}/presentation-chart-line.svg +0 -0
  736. /package/{dist/icons → icons}/printer.svg +0 -0
  737. /package/{dist/icons → icons}/puzzle-piece.svg +0 -0
  738. /package/{dist/icons → icons}/qr-code.svg +0 -0
  739. /package/{dist/icons → icons}/question-mark-circle.svg +0 -0
  740. /package/{dist/icons → icons}/queue-list.svg +0 -0
  741. /package/{dist/icons → icons}/radio.svg +0 -0
  742. /package/{dist/icons → icons}/receipt-percent.svg +0 -0
  743. /package/{dist/icons → icons}/receipt-refund.svg +0 -0
  744. /package/{dist/icons → icons}/rectangle-group.svg +0 -0
  745. /package/{dist/icons → icons}/rectangle-stack.svg +0 -0
  746. /package/{dist/icons → icons}/rocket-launch.svg +0 -0
  747. /package/{dist/icons → icons}/rss.svg +0 -0
  748. /package/{dist/icons → icons}/scale.svg +0 -0
  749. /package/{dist/icons → icons}/scissors.svg +0 -0
  750. /package/{dist/icons → icons}/server-stack.svg +0 -0
  751. /package/{dist/icons → icons}/server.svg +0 -0
  752. /package/{dist/icons → icons}/share.svg +0 -0
  753. /package/{dist/icons → icons}/shield-check.svg +0 -0
  754. /package/{dist/icons → icons}/shield-exclamation.svg +0 -0
  755. /package/{dist/icons → icons}/shopping-bag.svg +0 -0
  756. /package/{dist/icons → icons}/shopping-cart.svg +0 -0
  757. /package/{dist/icons → icons}/signal-slash.svg +0 -0
  758. /package/{dist/icons → icons}/signal.svg +0 -0
  759. /package/{dist/icons → icons}/sparkles.svg +0 -0
  760. /package/{dist/icons → icons}/speaker-wave.svg +0 -0
  761. /package/{dist/icons → icons}/speaker-x-mark.svg +0 -0
  762. /package/{dist/icons → icons}/square-2-stack.svg +0 -0
  763. /package/{dist/icons → icons}/square-3-stack-3d.svg +0 -0
  764. /package/{dist/icons → icons}/squares-2x2.svg +0 -0
  765. /package/{dist/icons → icons}/squares-plus.svg +0 -0
  766. /package/{dist/icons → icons}/star-solid.svg +0 -0
  767. /package/{dist/icons → icons}/star.svg +0 -0
  768. /package/{dist/icons → icons}/stop-circle.svg +0 -0
  769. /package/{dist/icons → icons}/stop.svg +0 -0
  770. /package/{dist/icons → icons}/sun.svg +0 -0
  771. /package/{dist/icons → icons}/swatch.svg +0 -0
  772. /package/{dist/icons → icons}/table-cells.svg +0 -0
  773. /package/{dist/icons → icons}/tag.svg +0 -0
  774. /package/{dist/icons → icons}/ticket.svg +0 -0
  775. /package/{dist/icons → icons}/trash.svg +0 -0
  776. /package/{dist/icons → icons}/trophy.svg +0 -0
  777. /package/{dist/icons → icons}/truck.svg +0 -0
  778. /package/{dist/icons → icons}/tv.svg +0 -0
  779. /package/{dist/icons → icons}/user-circle.svg +0 -0
  780. /package/{dist/icons → icons}/user-group.svg +0 -0
  781. /package/{dist/icons → icons}/user-minus.svg +0 -0
  782. /package/{dist/icons → icons}/user-plus.svg +0 -0
  783. /package/{dist/icons → icons}/user.svg +0 -0
  784. /package/{dist/icons → icons}/users.svg +0 -0
  785. /package/{dist/icons → icons}/variable.svg +0 -0
  786. /package/{dist/icons → icons}/video-camera-slash.svg +0 -0
  787. /package/{dist/icons → icons}/video-camera.svg +0 -0
  788. /package/{dist/icons → icons}/view-columns.svg +0 -0
  789. /package/{dist/icons → icons}/viewfinder-circle.svg +0 -0
  790. /package/{dist/icons → icons}/wallet.svg +0 -0
  791. /package/{dist/icons → icons}/wifi.svg +0 -0
  792. /package/{dist/icons → icons}/window.svg +0 -0
  793. /package/{dist/icons → icons}/wrench-screwdriver.svg +0 -0
  794. /package/{dist/icons → icons}/wrench.svg +0 -0
  795. /package/{dist/icons → icons}/x-circle.svg +0 -0
  796. /package/{dist/icons → icons}/x-mark.svg +0 -0
  797. /package/{dist/tailwindcss → tailwindcss}/tailwind.config.ts +0 -0
  798. /package/{dist/tailwindcss → tailwindcss}/utils/colors.ts +0 -0
  799. /package/{dist/tailwindcss → tailwindcss}/variables/breakpoints.ts +0 -0
  800. /package/{dist/tailwindcss → tailwindcss}/variables/colors.ts +0 -0
  801. /package/{dist/tailwindcss → tailwindcss}/variables/utilities.ts +0 -0
  802. /package/{dist/tailwindcss → tailwindcss}/variables/z-indexes.ts +0 -0
@@ -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":";;;;AAAO,MAAMA,KAAiB;AAAA,EAC5B,iBAAiB;AAAA,IACf,aAAa;AAAA,IACb,OAAO;AAAA,IACP,mBAAmB;AAAA,EACrB;AAAA,EACA,YAAY;AAAA,IACV,aAAa;AAAA,IACb,SAAS;AAAA,EAAA;AAEb,GCGMC,IAAWC,EAAc;AAE/B,SAASC,GAAmBC,GAAgB;AACtC,MAAA;AACI,UAAAC,IAAWC,GAAmBF,CAAM;AAE1C,WAAKC,MACK,QAAA,MAAM,mDAAmDD,CAAM,oBAAoB,GAEpF;AAAA,WAKJG,GAAO;AACJ,mBAAA,MAAM,iCAAiCA,CAAK,EAAE,GAC/C;AAAA,EAAA;AAEX;AAEA,SAASC,GAAsB;AAAA,EAC7B,aAAAC;AAAA,EACA,aAAAC;AAAA,EACA,kBAAAC,IAAmB;AACrB,GAIY;AACN,MAAA;AACF,QAAI,CAACF;AACI,aAAA;AAAA,QACL,SAAS;AAAA,QACT,aAAAC;AAAA,MACF;AAGF,UAAME,IAAeC,GAA2BJ,GAAaC,KAAe,MAAS,GAC/EI,KAAUF,KAAA,gBAAAA,EAAc,cAAa,IAErCG,IAAoBL,KAAeC,KAAmBC,KAAA,gBAAAA,EAAc,YAAWF,MAAgBE,EAAa,UAAU;AAErH,WAAA;AAAA,MACL,SAASE,KAAW,CAAC,CAACC;AAAA,MACtB,aAAAL;AAAA,MACA,mBAAmBE,KAAA,gBAAAA,EAAc;AAAA,MACjC,YAAYA,KAAA,gBAAAA,EAAc;AAAA,MAC1B,oBAAoBA,KAAA,gBAAAA,EAAc;AAAA,MAClC,gBAAgBA,KAAA,gBAAAA,EAAc;AAAA,MAC9B,MAAMA,KAAA,gBAAAA,EAAc;AAAA,MACpB,qBAAqBA,KAAA,gBAAAA,EAAc;AAAA,MACnC,gBAAgBA,KAAA,gBAAAA,EAAc;AAAA,MAC9B,KAAKA,KAAA,gBAAAA,EAAc;AAAA,MACnB,MAAMA,KAAA,gBAAAA,EAAc,OAAO;AAAA,MAC3B,SAASA,KAAA,gBAAAA,EAAc,OAAO;AAAA,MAC9B,mBAAmBA,KAAA,gBAAAA,EAAc;AAAA,MACjC,aAAAH;AAAA,IACF;AAAA,WAEKF,GAAO;AACZ,UAAM,IAAI,MAAM,oDAAoDA,CAAK,EAAE;AAAA,EAAA;AAE/E;AAEA,eAAeS,IAA6B;AAC1C,QAAM,EAAE,SAASC,MAAS,MAAM,OAAO,qCAAwC;AAExE,SAAAA;AACT;AAEA,SAASC,GAAsBR,GAA8C;;AACvE,MAAA;AACE,WAACT,EAAS,SAIPS,KAAcS,IAAAC,GAAiBV,GAAaT,EAAS,KAAK,MAA5C,gBAAAkB,EAA+C,mBAHlE;AAAA,WAKGZ,GAAO;AACJ,YAAA,MAAM,iCAAiCA,CAAK,EAAE;AAAA,EAAA;AAE1D;AAEA,SAASc,GAAmBX,GAA8CD,GAA6D;AACjI,MAAA;AACE,WAAA,CAACA,KAAe,CAACC,IACnB,SAGwB,IAAIY,GAAUZ,CAAW,EAE1B,MAAMD,CAAW;AAAA,WAErCF,GAAO;AACZ,UAAM,IAAI,MAAM,6CAA6CA,CAAK,EAAE;AAAA,EAAA;AAExE;AAEA,SAASgB,GAAyBb,GAA0Bc,GAA2B;AACrF,SAAOC,EAAsBf,CAAW,MAAMe,EAAsBD,CAAY;AAClF;AAEA,eAAeE,KAAe;AACxB,MAAA;AACF,QAAIzB,EAAS;AACX;AAEO,IAAAA,EAAA,QAAQ,MAAMe,EAA2B;AAAA,WAE7CT,GAAO;AACJ,YAAA,MAAM,0EAA0EA,CAAK;AAAA,EAAA;AAEjG;AAEO,SAASoB,KAAoB;AAC3B,SAAA;AAAA,IACL,UAAA1B;AAAA,IACA,oBAAAoB;AAAA,IACA,uBAAAb;AAAA,IACA,4BAAAQ;AAAA,IACA,uBAAAE;AAAA,IACA,0BAAAK;AAAA,IACA,oBAAApB;AAAA,IACA,cAAAyB;AAAA,IACA,uBAAAH;AAAA,IACA,cAAAC;AAAA,EACF;AACF;ACzIA,SAASG,IAAmB;AACtB,MAAA,OAAO,SAAW;AACpB;AAGI,QAAAC,IAAgB,OAAO,UAAU;AAEvC,MAAI,CAACA;AACH;AAGF,MAAI1B,IAAS0B,EAAc,MAAM,GAAG,CAAC,EAAE,YAAY;AAEnD,SAAI1B,MAAW,OACbA,IAAS0B,EAAc,MAAM,GAAG,CAAC,EAAE,YAAY,IAG7C1B,MAAW,SACJA,IAAA,OAEPA,MAAW,SACJA,IAAA,OAGJ;AAAA,IACL,QAAAA;AAAA,IACA,eAAA0B;AAAA,EACF;AACF;AAEA,IAAIC,GACAC;AAEJ,SAASC,GACP7B,GACA8B,GACAC,GACoB;AAChB,SAAAA,KAAA,QAAAA,EAAmCD,KAC9BC,EAAiCD,CAAI,MAG1CF,MAAuB5B,KAAU,CAAC2B,OACfC,IAAA5B,GACE2B,IAAA,IAAI,KAAK,aAAa,CAAC3B,CAAM,GAAG,EAAE,MAAM,UAAU,IAGpE2B,EAAqB,GAAGG,CAAI;AACrC;AAEA,SAASE,GACPhC,GACA+B,GACuB;;AACvB,QAAME,IAA2B,CAAC,GAC5BC,IAAUV,EAAa;AAEpB,EAAAxB,IAAAA,OAAUe,IAAAU,EAAiB,MAAjB,gBAAAV,EAAoB,kBAAiB;AAExD,aAAWoB,KAAQD,GAAS;AAC1B,UAAME,IAAOP,GAAe7B,GAAQmC,GAAMJ,CAAgC;AAE1E,QAAIK;AACE,UAAA;AACI,cAAAC,IAAWhB,EAAsBc,CAAI;AAC3C,QAAAF,EAAc,KAAK;AAAA,UACjB,MAAAE;AAAA,UACA,UAAAE;AAAA,UACA,MAAAD;AAAA,QAAA,CACD;AAAA,eAEIjC,GAAO;AACJ,gBAAA,MAAM,gDAAgDA,CAAK,EAAE;AAAA,MAAA;AAAA,EAEzE;AAGK,SAAA8B;AACT;AAEA,eAAeK,KAAmB;AAC5B,MAAA;AACI,UAAAC,IAAU,MAAM,MAAM,kBAAkB,GACxC,EAAE,cAAAC,EAAA,IAAkB,MAAMD,EAAQ,KAAK;AAEtC,WAAAC;AAAA,WAEFrC,GAAO;AACZ,UAAM,IAAI,MAAM,2CAA2CA,CAAK,EAAE;AAAA,EAAA;AAEtE;AAEA,SAASsC,GAAoBC,GAAmC;AAC9D,MAAI,CAACA;AACI,WAAA;AAEH,QAAAC,IAAQ,IAAI,OAAO,aAAa;AAEtC,SAAOD,EAAM,WAAWC,GAAO,EAAE,EAAE,KAAK;AAC1C;AAEO,SAASC,KAAyB;AAChC,SAAA;AAAA,IACL,qBAAAH;AAAA,IACA,kBAAAH;AAAA,IACA,kBAAAb;AAAA,IACA,kBAAAO;AAAA,EACF;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpFA,UAAMa,IAAQC,GAuCRC,IAAQC,GA6BRC,IAAkBC,EAAqB,MAAM,OAAO,gCAAqD,CAAC,GAC1GC,IAAaD,EAAqB,MAAM,OAAO,2BAAgD,CAAC,GA6GhG,EAAE,kBAAAZ,GAAkB,kBAAAb,EAAiB,IAAImB,GAAuB,GAChE,EAAE,oBAAA7C,GAAoB,uBAAAK,EAAsB,IAAImB,GAAkB,GAElE6B,IAAaC,GAAkB;AAAA,MACnC,eAAe;AAAA,MACf,YAAYR,EAAM;AAAA,IAAA,CACnB,GAIKxC,IAAcP,EAA+B,GAC7CwD,IAAkBxD,EAAoC,GAGtDyD,IAA8BzD,EAAI,EAAK,GACvC0D,IAA0B1D,EAAI,EAAK,GACnC2D,IAAUC,EAAS,OAAO;AAAA,MAC9B,GAAG9D;AAAA,MACH,GAAGiD,EAAM;AAAA,IAAA,EACT,GACIc,IAAgBD,EAAS,MAAMb,EAAM,cAAc,CAACA,EAAM,qBAAqB,GAE/Ee,IAAU9D,EAAa;AAAA,MAC3B,SAAS;AAAA,MACT,aAAa+C,EAAM,eAAeA,EAAM;AAAA,MACxC,aAAaA,EAAM;AAAA,IAAA,CACpB,GACKgB,IAAgB/D,EAA6B;AAInD,IAAAgE,EAAc,YAAY;AAKxB,WAJKjB,EAAM,eAAeA,EAAM,uBAAuB,CAACS,EAAgB,SACtES,EAAiB,EAAE,aAAalB,EAAM,eAAeA,EAAM,oBAAoB,GAG7EA,EAAM,gBAAgB,CAACS,EAAgB,OAAO;AAC1C,cAAAhD,IAAc,MAAMgC,EAAiB;AAC1B,QAAAyB,EAAA,EAAE,aAAAzD,GAAyC;AAAA,MAAA;AAAA,IAC9D,CACD,GAED0D,EAAU,MAAM;;AACd,UAAI,CAACV,EAAgB,SAAS,CAACT,EAAM,oBAAoB;AACjD,cAAAvC,KAAcS,IAAAU,QAAA,gBAAAV,EAAoB;AACvB,QAAAgD,EAAA,EAAE,aAAAzD,GAAyC;AAAA,MAAA;AAAA,IAC9D,CACD;AAED,aAAS2D,EAAiB;AAAA,MACxB,OAAAC,IAAQ7D,EAAY,SAASwC,EAAM;AAAA,MACnC,aAAAvC,IAAcgD,EAAgB;AAAA,MAC9B,kBAAA/C,IAAmB;AAAA,IAAA,GAKlB;AACD,MAAAqD,EAAQ,QAAQxD,EAAsB;AAAA,QACpC,aAAa8D;AAAA,QACb,aAAA5D;AAAA,QACA,kBAAAC;AAAA,MAAA,CACD;AAAA,IAAA;AAGH,aAAS4D,IAAsB;;AAC7B,cAAOpD,IAAA8C,EAAc,UAAd,gBAAA9C,EAAqB,IAAI,cAAc;AAAA,IAAO;AAGvD,mBAAeqD,IAAyB;;AACtC,YAAMC,GAAS,IACftD,IAAAoD,EAAA,MAAA,QAAApD,EAAuB;AAAA,IAAO;AAGhC,aAASuD,EAAmBhE,GAAyC;AACnE,UAAKA,GAID;AAAA,YAAA,CAACP,EAAmBO,CAAW,GAAG;AAC5B,kBAAA,KAAK,sDAAsDA,CAAW,GAAG,GACjFgD,EAAgB,QAAQ;AACxB;AAAA,QAAA;AAGF,QAAAA,EAAgB,QAAQhD;AAAA;AAAA,IAAA;AAG1B,aAASiE,EAAqB;AAAA,MAC5B,gBAAAC;AAAA,IAAA,GAGC;;AACgB,MAAAP,EAAA,EAAE,OAAOO,GAAgB,GAEtCZ,EAAQ,MAAM,qBAAqBA,EAAQ,MAAM,sBAAsBN,EAAgB,SACxES,EAAA;AAAA,QACf,aAAaH,EAAQ,MAAM;AAAA,QAC3B,eAAe;AAAA,MAAA,CAChB,GAGCA,EAAQ,MAAM,WAAWD,EAAc,QAC7BtD,EAAA,SAAQU,IAAA6C,EAAQ,MAAM,mBAAd,gBAAA7C,EAA8B,OAAO,WAAW,IAAI,OAAO,KAAK,GAAG,MAGvFV,EAAY,QAAQmE,GAGtBjB,EAA4B,QAAQ,IAEhCK,EAAQ,MAAM,OACVb,EAAA,sBAAsBa,EAAQ,MAAM,IAAI,IAGxCb,EAAA,sBAAsBa,EAAQ,MAAM,WAAW,GAGvD,WAAW,MAAM;AACf,QAAAL,EAA4B,QAAQ;AAAA,SACnC,CAAC;AAAA,IAAA;AAGN,aAASQ,EAAiB;AAAA,MACxB,aAAAzD;AAAA,MACA,eAAAmE,IAAgB;AAAA,MAChB,mBAAAC,IAAoB;AAAA,IAAA,GAKnB;AACD,UAAI,CAACpE,GAAa;AAChB,QAAAgD,EAAgB,QAAQ;AACxB;AAAA,MAAA;AAGF,MAAAE,EAAwB,QAAQ,IAE5BlD,MAAgBgD,EAAgB,SAClCgB,EAAmBhE,CAAW,GAG5BmE,KACeR,EAAA;AAAA,QACf,aAAaX,EAAgB;AAAA,QAC7B,kBAAkB;AAAA,MAAA,CACnB;AAGH,YAAMxB,IAAO8B,EAAQ,MAAM,eAAeA,EAAQ,MAAM;AACxD,MAAAb,EAAM,gBAAgBjB,CAAI,GAC1BiB,EAAM,uBAAuBjB,CAAI,GAE7B4C,KAAqB,CAACd,EAAQ,MAAM,WACfQ,EAAA,GAGzB,WAAW,MAAM;AACf,QAAAZ,EAAwB,QAAQ;AAAA,SAC/B,CAAC;AAAA,IAAA;AAKN,WAAAmB;AAAA,MACE,MAAM9B,EAAM,cAAcA,EAAM;AAAA,MAChC,CAAC+B,GAAOC,MAAa;AACnB,QAAI,CAACtB,EAA4B,SAASqB,MAAUC,KAAYD,MAAUvE,EAAY,SAC/DkE,EAAA,EAAE,gBAAgBK,GAAO;AAAA,MAElD;AAAA,MACA,EAAE,WAAW,GAAK;AAAA,IACpB,GACAD;AAAA,MACE,MAAM9B,EAAM,eAAeA,EAAM;AAAA,MACjC,CAAC+B,GAAOC,MAAa;AACf,QAAA,CAACrB,EAAwB,SAASoB,KAASA,MAAUC,KAAYD,MAAUtB,EAAgB,SAC5ES,EAAA,EAAE,aAAaa,GAAO;AAAA,MAE3C;AAAA,MACA,EAAE,WAAW,GAAK;AAAA,IACpB,GACAD;AAAA,MACEf;AAAA,MACA,CAACgB,MAAU;AACT,QAAA7B,EAAM,UAAU6B,CAAK,GACrB7B,EAAM,QAAQ6B,CAAK;AAAA,MACrB;AAAA,MACA,EAAE,WAAW,GAAK;AAAA,IACpB,GASAE,EAAyC,QAAQ;AAAA,MAC/C,iBAAAxB;AAAA,MACA,aAAAjD;AAAA,MACA,SAAAuD;AAAA,IAAA,CACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
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.EZVh1Yx5.cjs.map
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
@@ -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":"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"}
@@ -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 "../components/MazInput.mjs";
3
- import { currency as j } from "../filters/currency.mjs";
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" ? j(c.value, t.locale, { ...t.currencyOptions, currency: t.currency }) : void 0
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(O, {
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.C3X2lwRl.mjs.map
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("../components/MazInput.cjs"),w=require("../filters/currency.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"?w.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(g.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.CCatmP_L.cjs.map
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.BZE8cw36.cjs.map
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