maz-ui 4.0.0-alpha.4 → 4.0.0-alpha.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (435) 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/{fullscreen-img.directive.CrLLYi0D.mjs → fullscreen-img.directive.CEBhPyiD.mjs} +22 -22
  125. package/dist/chunks/fullscreen-img.directive.CEBhPyiD.mjs.map +1 -0
  126. package/dist/chunks/{fullscreen-img.directive.CeREtf7H.cjs → fullscreen-img.directive.CK-8DToy.cjs} +2 -2
  127. package/dist/chunks/fullscreen-img.directive.CK-8DToy.cjs.map +1 -0
  128. package/dist/chunks/lazy-img.directive.BeENE6S9.cjs.map +1 -1
  129. package/dist/chunks/lazy-img.directive.DqXA0UFo.mjs.map +1 -1
  130. package/dist/chunks/{utils.Bex2hM45.mjs → utils.BxNCknPj.mjs} +11 -11
  131. package/dist/chunks/utils.BxNCknPj.mjs.map +1 -0
  132. package/dist/chunks/{utils.vGzCTXH5.cjs → utils.K864VNFX.cjs} +2 -2
  133. package/dist/chunks/utils.K864VNFX.cjs.map +1 -0
  134. package/dist/components/MazAccordion.cjs +1 -1
  135. package/dist/components/MazAccordion.cjs.map +1 -1
  136. package/dist/components/MazAccordion.mjs +13 -13
  137. package/dist/components/MazAccordion.mjs.map +1 -1
  138. package/dist/components/MazAnimatedCounter.cjs +1 -1
  139. package/dist/components/MazAnimatedCounter.cjs.map +1 -1
  140. package/dist/components/MazAnimatedCounter.mjs +2 -2
  141. package/dist/components/MazAnimatedCounter.mjs.map +1 -1
  142. package/dist/components/MazAnimatedText.cjs +1 -1
  143. package/dist/components/MazAnimatedText.cjs.map +1 -1
  144. package/dist/components/MazAnimatedText.mjs +11 -11
  145. package/dist/components/MazAnimatedText.mjs.map +1 -1
  146. package/dist/components/MazAvatar.cjs +1 -1
  147. package/dist/components/MazAvatar.cjs.map +1 -1
  148. package/dist/components/MazAvatar.mjs +2 -2
  149. package/dist/components/MazAvatar.mjs.map +1 -1
  150. package/dist/components/MazBadge.cjs +1 -1
  151. package/dist/components/MazBadge.mjs +2 -2
  152. package/dist/components/MazBottomSheet.cjs +1 -1
  153. package/dist/components/MazBottomSheet.cjs.map +1 -1
  154. package/dist/components/MazBottomSheet.mjs +10 -10
  155. package/dist/components/MazBottomSheet.mjs.map +1 -1
  156. package/dist/components/MazBtn.cjs +1 -1
  157. package/dist/components/MazBtn.cjs.map +1 -1
  158. package/dist/components/MazBtn.mjs +2 -2
  159. package/dist/components/MazBtn.mjs.map +1 -1
  160. package/dist/components/MazCard.cjs +1 -1
  161. package/dist/components/MazCard.cjs.map +1 -1
  162. package/dist/components/MazCard.mjs +2 -2
  163. package/dist/components/MazCard.mjs.map +1 -1
  164. package/dist/components/MazCardSpotlight.cjs +1 -1
  165. package/dist/components/MazCardSpotlight.cjs.map +1 -1
  166. package/dist/components/MazCardSpotlight.mjs +2 -2
  167. package/dist/components/MazCardSpotlight.mjs.map +1 -1
  168. package/dist/components/MazCarousel.cjs +1 -1
  169. package/dist/components/MazCarousel.cjs.map +1 -1
  170. package/dist/components/MazCarousel.mjs +2 -2
  171. package/dist/components/MazCarousel.mjs.map +1 -1
  172. package/dist/components/MazCheckbox.cjs +1 -1
  173. package/dist/components/MazCheckbox.cjs.map +1 -1
  174. package/dist/components/MazCheckbox.mjs +6 -6
  175. package/dist/components/MazCheckbox.mjs.map +1 -1
  176. package/dist/components/MazChecklist.cjs +1 -1
  177. package/dist/components/MazChecklist.cjs.map +1 -1
  178. package/dist/components/MazChecklist.mjs +3 -3
  179. package/dist/components/MazChecklist.mjs.map +1 -1
  180. package/dist/components/MazCircularProgressBar.cjs +1 -1
  181. package/dist/components/MazCircularProgressBar.cjs.map +1 -1
  182. package/dist/components/MazCircularProgressBar.mjs +2 -2
  183. package/dist/components/MazCircularProgressBar.mjs.map +1 -1
  184. package/dist/components/MazDialog.cjs +1 -1
  185. package/dist/components/MazDialog.cjs.map +1 -1
  186. package/dist/components/MazDialog.mjs +2 -2
  187. package/dist/components/MazDialog.mjs.map +1 -1
  188. package/dist/components/MazDrawer.cjs +1 -1
  189. package/dist/components/MazDrawer.cjs.map +1 -1
  190. package/dist/components/MazDrawer.mjs +8 -8
  191. package/dist/components/MazDrawer.mjs.map +1 -1
  192. package/dist/components/MazDropzone.cjs.map +1 -1
  193. package/dist/components/MazDropzone.mjs.map +1 -1
  194. package/dist/components/MazFullscreenLoader.cjs +1 -1
  195. package/dist/components/MazFullscreenLoader.cjs.map +1 -1
  196. package/dist/components/MazFullscreenLoader.mjs +2 -2
  197. package/dist/components/MazFullscreenLoader.mjs.map +1 -1
  198. package/dist/components/MazGallery.cjs +1 -1
  199. package/dist/components/MazGallery.cjs.map +1 -1
  200. package/dist/components/MazGallery.mjs +3 -3
  201. package/dist/components/MazGallery.mjs.map +1 -1
  202. package/dist/components/MazInput.cjs +1 -1
  203. package/dist/components/MazInput.cjs.map +1 -1
  204. package/dist/components/MazInput.mjs +2 -2
  205. package/dist/components/MazInput.mjs.map +1 -1
  206. package/dist/components/MazInputCode.cjs +1 -1
  207. package/dist/components/MazInputCode.cjs.map +1 -1
  208. package/dist/components/MazInputCode.mjs +5 -5
  209. package/dist/components/MazInputCode.mjs.map +1 -1
  210. package/dist/components/MazInputNumber.cjs +1 -1
  211. package/dist/components/MazInputNumber.mjs +1 -1
  212. package/dist/components/MazInputPhoneNumber.cjs +1 -1
  213. package/dist/components/MazInputPhoneNumber.mjs +1 -1
  214. package/dist/components/MazInputPrice.cjs +1 -1
  215. package/dist/components/MazInputPrice.mjs +1 -1
  216. package/dist/components/MazInputTags.cjs +1 -1
  217. package/dist/components/MazInputTags.cjs.map +1 -1
  218. package/dist/components/MazInputTags.mjs +8 -8
  219. package/dist/components/MazInputTags.mjs.map +1 -1
  220. package/dist/components/MazLazyImg.cjs +1 -1
  221. package/dist/components/MazLazyImg.cjs.map +1 -1
  222. package/dist/components/MazLazyImg.mjs +5 -5
  223. package/dist/components/MazLazyImg.mjs.map +1 -1
  224. package/dist/components/MazLink.cjs +1 -1
  225. package/dist/components/MazLink.cjs.map +1 -1
  226. package/dist/components/MazLink.mjs +2 -2
  227. package/dist/components/MazLink.mjs.map +1 -1
  228. package/dist/components/MazLoadingBar.cjs +1 -1
  229. package/dist/components/MazLoadingBar.cjs.map +1 -1
  230. package/dist/components/MazLoadingBar.mjs +4 -4
  231. package/dist/components/MazLoadingBar.mjs.map +1 -1
  232. package/dist/components/MazPagination.cjs +1 -1
  233. package/dist/components/MazPagination.cjs.map +1 -1
  234. package/dist/components/MazPagination.mjs +2 -2
  235. package/dist/components/MazPagination.mjs.map +1 -1
  236. package/dist/components/MazPicker.cjs +1 -1
  237. package/dist/components/MazPicker.mjs +1 -1
  238. package/dist/components/MazPullToRefresh.cjs +1 -1
  239. package/dist/components/MazPullToRefresh.cjs.map +1 -1
  240. package/dist/components/MazPullToRefresh.mjs +2 -2
  241. package/dist/components/MazPullToRefresh.mjs.map +1 -1
  242. package/dist/components/MazRadio.cjs +1 -1
  243. package/dist/components/MazRadio.cjs.map +1 -1
  244. package/dist/components/MazRadio.mjs +7 -7
  245. package/dist/components/MazRadio.mjs.map +1 -1
  246. package/dist/components/MazRadioButtons.cjs +1 -1
  247. package/dist/components/MazRadioButtons.cjs.map +1 -1
  248. package/dist/components/MazRadioButtons.mjs +2 -2
  249. package/dist/components/MazRadioButtons.mjs.map +1 -1
  250. package/dist/components/MazReadingProgressBar.cjs +1 -1
  251. package/dist/components/MazReadingProgressBar.cjs.map +1 -1
  252. package/dist/components/MazReadingProgressBar.mjs +7 -7
  253. package/dist/components/MazReadingProgressBar.mjs.map +1 -1
  254. package/dist/components/MazSelect.cjs +1 -1
  255. package/dist/components/MazSelect.cjs.map +1 -1
  256. package/dist/components/MazSelect.mjs +7 -7
  257. package/dist/components/MazSelect.mjs.map +1 -1
  258. package/dist/components/MazSlider.cjs +1 -1
  259. package/dist/components/MazSlider.cjs.map +1 -1
  260. package/dist/components/MazSlider.mjs +11 -11
  261. package/dist/components/MazSlider.mjs.map +1 -1
  262. package/dist/components/MazSpinner.cjs +1 -1
  263. package/dist/components/MazSpinner.mjs +2 -2
  264. package/dist/components/MazStepper.cjs +1 -1
  265. package/dist/components/MazStepper.cjs.map +1 -1
  266. package/dist/components/MazStepper.mjs +22 -22
  267. package/dist/components/MazStepper.mjs.map +1 -1
  268. package/dist/components/MazTable.cjs +1 -1
  269. package/dist/components/MazTable.mjs +3 -3
  270. package/dist/components/MazTableCell.cjs +1 -1
  271. package/dist/components/MazTableCell.cjs.map +1 -1
  272. package/dist/components/MazTableCell.mjs +7 -7
  273. package/dist/components/MazTableCell.mjs.map +1 -1
  274. package/dist/components/MazTableRow.cjs +1 -1
  275. package/dist/components/MazTableRow.cjs.map +1 -1
  276. package/dist/components/MazTableRow.mjs +7 -7
  277. package/dist/components/MazTableRow.mjs.map +1 -1
  278. package/dist/components/MazTableTitle.cjs +1 -1
  279. package/dist/components/MazTableTitle.cjs.map +1 -1
  280. package/dist/components/MazTableTitle.mjs +3 -3
  281. package/dist/components/MazTableTitle.mjs.map +1 -1
  282. package/dist/components/MazTabsBar.cjs +1 -1
  283. package/dist/components/MazTabsBar.cjs.map +1 -1
  284. package/dist/components/MazTabsBar.mjs +2 -2
  285. package/dist/components/MazTabsBar.mjs.map +1 -1
  286. package/dist/components/MazTabsContentItem.cjs +1 -1
  287. package/dist/components/MazTabsContentItem.cjs.map +1 -1
  288. package/dist/components/MazTabsContentItem.mjs +2 -2
  289. package/dist/components/MazTabsContentItem.mjs.map +1 -1
  290. package/dist/components/MazTextarea.cjs +1 -1
  291. package/dist/components/MazTextarea.cjs.map +1 -1
  292. package/dist/components/MazTextarea.mjs +6 -6
  293. package/dist/components/MazTextarea.mjs.map +1 -1
  294. package/dist/composables/useAos.cjs.map +1 -1
  295. package/dist/composables/useAos.mjs.map +1 -1
  296. package/dist/composables/useDialog.cjs.map +1 -1
  297. package/dist/composables/useDialog.mjs.map +1 -1
  298. package/dist/composables/useFormField.cjs +1 -1
  299. package/dist/composables/useFormField.cjs.map +1 -1
  300. package/dist/composables/useFormField.mjs +19 -19
  301. package/dist/composables/useFormField.mjs.map +1 -1
  302. package/dist/composables/useFormValidator.cjs +1 -1
  303. package/dist/composables/useFormValidator.cjs.map +1 -1
  304. package/dist/composables/useFormValidator.mjs +11 -11
  305. package/dist/composables/useFormValidator.mjs.map +1 -1
  306. package/dist/composables/useIdleTimeout.cjs.map +1 -1
  307. package/dist/composables/useIdleTimeout.mjs.map +1 -1
  308. package/dist/composables/useStringMatching.cjs +1 -1
  309. package/dist/composables/useStringMatching.cjs.map +1 -1
  310. package/dist/composables/useStringMatching.mjs +1 -1
  311. package/dist/composables/useStringMatching.mjs.map +1 -1
  312. package/dist/composables/useSwipe.cjs +1 -1
  313. package/dist/composables/useSwipe.cjs.map +1 -1
  314. package/dist/composables/useSwipe.mjs +3 -3
  315. package/dist/composables/useSwipe.mjs.map +1 -1
  316. package/dist/composables/useThemeHandler.cjs +1 -1
  317. package/dist/composables/useThemeHandler.cjs.map +1 -1
  318. package/dist/composables/useThemeHandler.mjs +1 -1
  319. package/dist/composables/useThemeHandler.mjs.map +1 -1
  320. package/dist/composables/useToast.cjs.map +1 -1
  321. package/dist/composables/useToast.mjs.map +1 -1
  322. package/dist/composables/useUserVisibilty.cjs.map +1 -1
  323. package/dist/composables/useUserVisibilty.mjs.map +1 -1
  324. package/dist/composables/useWait.cjs.map +1 -1
  325. package/dist/composables/useWait.mjs.map +1 -1
  326. package/dist/composables/useWindowSize.cjs +1 -1
  327. package/dist/composables/useWindowSize.cjs.map +1 -1
  328. package/dist/composables/useWindowSize.mjs +5 -5
  329. package/dist/composables/useWindowSize.mjs.map +1 -1
  330. package/dist/directives/vClickOutside.cjs.map +1 -1
  331. package/dist/directives/vClickOutside.mjs.map +1 -1
  332. package/dist/directives/vClosable.cjs.map +1 -1
  333. package/dist/directives/vClosable.mjs.map +1 -1
  334. package/dist/directives/vFullscreenImg.cjs +1 -1
  335. package/dist/directives/vFullscreenImg.mjs +1 -1
  336. package/dist/directives/vLazyImg.cjs.map +1 -1
  337. package/dist/directives/vLazyImg.mjs.map +1 -1
  338. package/dist/directives/vTooltip.cjs.map +1 -1
  339. package/dist/directives/vTooltip.mjs.map +1 -1
  340. package/dist/filters/pascalCase.cjs.map +1 -1
  341. package/dist/filters/pascalCase.mjs.map +1 -1
  342. package/dist/helpers/countryCodeToUnicodeFlag.cjs.map +1 -1
  343. package/dist/helpers/countryCodeToUnicodeFlag.mjs.map +1 -1
  344. package/dist/index.cjs +1 -1
  345. package/dist/index.mjs +5 -5
  346. package/dist/nuxt/module.d.mts +1 -1
  347. package/dist/nuxt/module.d.ts +1 -1
  348. package/dist/nuxt/module.json +1 -1
  349. package/dist/nuxt/module.mjs +13 -8
  350. package/dist/nuxt/runtime/plugins/dialog.js +2 -2
  351. package/dist/plugins/aos.cjs.map +1 -1
  352. package/dist/plugins/aos.mjs.map +1 -1
  353. package/dist/plugins/dialog.cjs.map +1 -1
  354. package/dist/plugins/dialog.mjs.map +1 -1
  355. package/dist/plugins/toaster.cjs +1 -1
  356. package/dist/plugins/toaster.cjs.map +1 -1
  357. package/dist/plugins/toaster.mjs +2 -2
  358. package/dist/plugins/toaster.mjs.map +1 -1
  359. package/dist/resolvers/UnpluginVueComponentsResolver.cjs.map +1 -1
  360. package/dist/resolvers/UnpluginVueComponentsResolver.mjs.map +1 -1
  361. package/dist/types/components/MazAvatar.vue.d.ts +1 -1
  362. package/dist/types/components/MazCard.vue.d.ts +1 -1
  363. package/dist/types/components/MazDialogPromise/useMazDialogPromise.d.ts +1 -1
  364. package/dist/types/components/MazDropdown.vue.d.ts +1 -1
  365. package/dist/types/components/MazInputPhoneNumber/CountrySelector.vue.d.ts +3 -3
  366. package/dist/types/components/MazInputPhoneNumber/types.d.ts +1 -1
  367. package/dist/types/components/MazInputPhoneNumber.vue.d.ts +1 -1
  368. package/dist/types/components/MazLazyImg.vue.d.ts +1 -1
  369. package/dist/types/components/MazLink.vue.d.ts +1 -1
  370. package/dist/types/components/MazPicker/MazPickerCalendar.vue.d.ts +1 -1
  371. package/dist/types/components/MazPicker/MazPickerCalendarMonth/MazPickerCalendarGrid.vue.d.ts +1 -1
  372. package/dist/types/components/MazPicker/MazPickerCalendarMonth/MazPickerCalendarMonth.vue.d.ts +1 -1
  373. package/dist/types/components/MazPicker/MazPickerContainer.vue.d.ts +1 -1
  374. package/dist/types/components/MazPicker/MazPickerHeader.vue.d.ts +1 -1
  375. package/dist/types/components/MazPicker/MazPickerShortcuts.vue.d.ts +1 -1
  376. package/dist/types/components/MazPicker/MazPickerTime.vue.d.ts +2 -2
  377. package/dist/types/components/MazPicker/utils.d.ts +1 -1
  378. package/dist/types/components/MazSlider.vue.d.ts +1 -1
  379. package/dist/types/components/constantes.d.ts +1 -2
  380. package/dist/types/components/types.d.ts +2 -1
  381. package/dist/types/composables/useFormField.d.ts +2 -2
  382. package/dist/types/composables/useFormValidator/types.d.ts +3 -3
  383. package/dist/types/composables/useFormValidator.d.ts +3 -3
  384. package/dist/types/directives/vClickOutside.d.ts +1 -1
  385. package/dist/types/directives/vClosable.d.ts +1 -1
  386. package/dist/types/directives/vLazyImg.d.ts +2 -1
  387. package/dist/types/directives/vTooltip.d.ts +1 -1
  388. package/package.json +3 -4
  389. package/dist/assets/MazBtn.7QWd6o3M.css +0 -1
  390. package/dist/assets/MazGallery.ChuEM3_y.css +0 -1
  391. package/dist/assets/MazInput.C5uUOQLJ.css +0 -1
  392. package/dist/assets/MazInputCode.C1Mlb3p3.css +0 -1
  393. package/dist/assets/MazLink.DQ7r1i9T.css +0 -1
  394. package/dist/assets/MazLoadingBar.C6sNjytz.css +0 -1
  395. package/dist/assets/MazPicker.fY2qT4ER.css +0 -1
  396. package/dist/assets/MazPickerCalendarMonth.GACBSeof.css +0 -1
  397. package/dist/assets/MazReadingProgressBar.CbqVvC8N.css +0 -1
  398. package/dist/assets/MazSpinner.DTuz1RdS.css +0 -1
  399. package/dist/assets/MazTable.D06R_2nI.css +0 -1
  400. package/dist/assets/MazTableCell.BDmda4j7.css +0 -1
  401. package/dist/assets/MazTableRow.Copw9RJN.css +0 -1
  402. package/dist/assets/MazTableTitle.Cspgmj1g.css +0 -1
  403. package/dist/assets/PhoneInput.utJQQXVJ.css +0 -1
  404. package/dist/chunks/CountrySelector.C5XZelLY.mjs.map +0 -1
  405. package/dist/chunks/CountrySelector.mFGaqpPf.cjs.map +0 -1
  406. package/dist/chunks/MazInputNumber.vue_vue_type_script_setup_true_lang.Bbod2mLd.mjs.map +0 -1
  407. package/dist/chunks/MazInputNumber.vue_vue_type_script_setup_true_lang.DiawfWBC.cjs.map +0 -1
  408. package/dist/chunks/MazInputPrice.vue_vue_type_script_setup_true_lang.C3X2lwRl.mjs.map +0 -1
  409. package/dist/chunks/MazInputPrice.vue_vue_type_script_setup_true_lang.CCatmP_L.cjs.map +0 -1
  410. package/dist/chunks/MazPicker.BZE8cw36.cjs.map +0 -1
  411. package/dist/chunks/MazPicker.DCnOkRvv.mjs.map +0 -1
  412. package/dist/chunks/MazPickerCalendar.CVZ8VoYr.cjs.map +0 -1
  413. package/dist/chunks/MazPickerCalendar.NeYLrtl-.mjs.map +0 -1
  414. package/dist/chunks/MazPickerCalendarMonth.DpvQC45k.cjs.map +0 -1
  415. package/dist/chunks/MazPickerCalendarMonth.rnaiDHFM.mjs.map +0 -1
  416. package/dist/chunks/MazPickerCalendarSwitcher.DC2wff_J.cjs.map +0 -1
  417. package/dist/chunks/MazPickerCalendarSwitcher.DFGrD6Cr.mjs.map +0 -1
  418. package/dist/chunks/MazPickerHeader.B7YY9SJI.mjs.map +0 -1
  419. package/dist/chunks/MazPickerHeader.l7NcmiGH.cjs.map +0 -1
  420. package/dist/chunks/MazPickerMonthSwitcher.CAPx3PCt.mjs.map +0 -1
  421. package/dist/chunks/MazPickerMonthSwitcher.CbplWFfL.cjs.map +0 -1
  422. package/dist/chunks/MazPickerShortcuts.Bawm0q33.mjs.map +0 -1
  423. package/dist/chunks/MazPickerShortcuts.LxFs0Y6N.cjs.map +0 -1
  424. package/dist/chunks/MazPickerTime.7cxq-Qac.cjs.map +0 -1
  425. package/dist/chunks/MazPickerTime.C27aFPPw.mjs.map +0 -1
  426. package/dist/chunks/MazPickerYearSwitcher.DMBOaMYy.mjs.map +0 -1
  427. package/dist/chunks/MazPickerYearSwitcher.Dku2IMIJ.cjs.map +0 -1
  428. package/dist/chunks/MazTable.vue_vue_type_style_index_0_scoped_4101f1d3_lang.Ctmf2NVE.cjs.map +0 -1
  429. package/dist/chunks/MazTable.vue_vue_type_style_index_0_scoped_4101f1d3_lang.Dwkx-V96.mjs.map +0 -1
  430. package/dist/chunks/PhoneInput.9GQJbL9x.mjs.map +0 -1
  431. package/dist/chunks/PhoneInput.D5DG4S60.cjs.map +0 -1
  432. package/dist/chunks/fullscreen-img.directive.CeREtf7H.cjs.map +0 -1
  433. package/dist/chunks/fullscreen-img.directive.CrLLYi0D.mjs.map +0 -1
  434. package/dist/chunks/utils.Bex2hM45.mjs.map +0 -1
  435. package/dist/chunks/utils.vGzCTXH5.cjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MazTable.vue_vue_type_style_index_0_scoped_cd8655c9_lang.Dj2OkfOV.mjs","sources":["../../src/components/MazTable.vue"],"sourcesContent":["<script lang=\"ts\">\n/* eslint-disable import/first */\nexport interface HeadersEnriched {\n label: string\n key?: string\n sortable?: boolean\n hidden?: boolean\n srOnly?: boolean\n width?: string\n maxWidth?: string\n classes?: ThHTMLAttributes['class']\n scope?: ThHTMLAttributes['scope']\n align?: ThHTMLAttributes['align']\n rowspan?: ThHTMLAttributes['rowspan']\n colspan?: ThHTMLAttributes['colspan']\n headers?: ThHTMLAttributes['headers']\n}\n\ntype HeadersNormalized = HeadersEnriched & {\n thHeaders?: ThHTMLAttributes['headers']\n sorted?: 'ASC' | 'DESC'\n}\n\nexport type Row<T extends Row<T>> = Record<string, any> & {\n selected?: boolean\n action?: (row: T) => unknown\n classes?: HTMLAttributes['class']\n}\n\nexport type Header = string | HeadersEnriched\n\nexport interface MazTableTranslations {\n searchByAllLabel?: string\n searchByPlaceholder?: string\n searchPlaceholder?: string\n paginationAllLabel?: string\n noResults?: string\n actionHeader?: string\n paginationRowsPerPage?: string\n paginationOf?: string\n}\n\nexport interface MazTableProps<T extends Row<T>> {\n /** class of the table element */\n tableClass?: HTMLAttributes['class']\n /** style of the table element */\n tableStyle?: StyleValue\n /** v-model of the table - list of selected rows */\n modelValue?: (string | boolean | number)[]\n /**\n * size of the table\n * @values `'xl' | 'lg' | 'md' | 'sm' | 'xs' | 'mini'`\n * @default `'md'`\n */\n size?: Size\n /**\n * Size of the search inputs\n * @values `'xl' | 'lg' | 'md' | 'sm' | 'xs' | 'mini'`\n */\n inputSize?: Size\n /** title of the table */\n title?: string\n /** headers of the table */\n headers?: Header[]\n /** allow sort feature to all columns */\n sortable?: boolean\n /** align all headers */\n headersAlign?: ThHTMLAttributes['align']\n /** rows of the table - type: `Record<string, string | boolean | number>[]` ; */\n rows?: T[]\n /** add hover effect on rows */\n hoverable?: boolean\n /** enable search feature into the table header */\n search?: boolean\n /** disabled search in rows - useful to filtering data yourself or make search request to server */\n noSearchInRow?: boolean\n /** placeholder of the search input */\n searchPlaceholder?: string\n /** Disabled search by column (remove select input \"search by\") */\n noSearchBy?: boolean\n /** placeholder of the search by select */\n searchByPlaceholder?: string\n /** label of the search by of all options */\n searchByAllLabel?: string\n /** search query in input */\n searchQuery?: string\n /** add background color to odd rows */\n backgroundOdd?: boolean\n /** add background color to even rows */\n backgroundEven?: boolean\n /** add shodow to the table */\n elevation?: boolean\n /** no divider between rows */\n divider?: boolean\n /** caption of the table */\n caption?: string\n /**\n * caption side\n * @values `'top' | 'bottom'`\n */\n captionSide?: 'top' | 'bottom'\n /** add pagination into the table footer */\n pagination?: boolean\n /** current page of pagination */\n page?: number\n /** number of items per page */\n pageSize?: number\n /** pages count */\n totalPages?: number\n /** label of the pagination all option */\n paginationAllLabel?: string\n /** no paginate rows - useful to make paginate request with your server */\n noPaginateRows?: boolean\n /** total number of items */\n totalItems?: number\n /** loading state */\n loading?: boolean\n /** Enable selection of rows */\n selectable?: boolean\n /** Enable selection of rows - key of the selected row */\n selectedKey?: string\n /**\n * table layout\n * @values `'auto' | 'fixed'`\n */\n tableLayout?: 'auto' | 'fixed'\n /** color of the loading bar */\n color?: Color\n /**\n * translations\n * @default `{ searchByAllLabel: 'All', searchByPlaceholder: 'Search by', searchPlaceholder: 'Search', paginationAllLabel: 'All', noResults: 'No results' }`\n * @type {Translations}\n */\n translations?: MazTableTranslations\n /**\n * Size radius of the component's border\n * @values `'none' | 'sm' | 'md' | 'lg' | 'xl' | 'full'`\n * @default 'lg'\n */\n roundedSize?: 'none' | 'sm' | 'md' | 'lg' | 'xl' | 'full'\n /**\n * Enable scrollable on table\n * @default `false`\n */\n scrollable?: boolean\n}\n\nexport interface MazTableProvide {\n size: Ref<Size>\n hoverable: Ref<boolean>\n backgroundEven: Ref<boolean>\n backgroundOdd: Ref<boolean>\n}\n\nexport const mazTableKey = 'maz-table' as const\n</script>\n\n<script lang=\"ts\" setup generic=\"T extends Row<T>\">\nimport type { MazSelectOption } from './MazSelect.vue'\nimport type { Color, Size } from './types'\n\nimport {\n computed,\n defineAsyncComponent,\n type HTMLAttributes,\n onBeforeMount,\n provide,\n type Ref,\n ref,\n type StyleValue,\n type ThHTMLAttributes,\n toRefs,\n useSlots,\n watch,\n} from 'vue'\n\nconst props = withDefaults(defineProps<MazTableProps<T>>(), {\n tableClass: undefined,\n tableStyle: undefined,\n modelValue: undefined,\n title: undefined,\n size: 'md',\n rows: undefined,\n searchQuery: undefined,\n headers: undefined,\n headersAlign: 'left',\n caption: undefined,\n page: 1,\n pageSize: 20,\n totalItems: undefined,\n selectedKey: undefined,\n captionSide: 'bottom',\n tableLayout: undefined,\n searchPlaceholder: 'Search',\n searchByPlaceholder: 'Search by',\n searchByAllLabel: 'All',\n paginationAllLabel: 'All',\n color: 'primary',\n totalPages: undefined,\n roundedSize: 'lg',\n scrollable: false,\n})\nconst emits = defineEmits<{\n /**\n * emitted when a row is selected\n * @property {(Row | string | number | boolean)[]} value list of selected rows (if selectedKey is defined, it will be the value of the selectedKey of the row)\n */\n (event: 'update:model-value', value: (Row<T> | string | number | boolean)[] | undefined): void\n /**\n * emitted when enter a value in the search input\n * @property {string} searchQuery search query\n */\n (event: 'update:search-query', searchQuery: string | undefined): void\n /**\n * emitted when the current page of the pagination change\n * @property {number} page current page\n */\n (event: 'update:page', page: number): void\n /**\n * emitted when the page size of the pagination change\n * @property {number} pageSize current page size\n */\n (event: 'update:page-size', pageSize: number): void\n}>()\n\nconst MazBtn = defineAsyncComponent(() => import('./MazBtn.vue'))\nconst MazCheckbox = defineAsyncComponent(() => import('./MazCheckbox.vue'))\nconst MazInput = defineAsyncComponent(() => import('./MazInput.vue'))\nconst MazLoadingBar = defineAsyncComponent(() => import('./MazLoadingBar.vue'))\nconst MazSelect = defineAsyncComponent(() => import('./MazSelect.vue'))\nconst MazTableCell = defineAsyncComponent(() => import('./MazTableCell.vue'))\nconst MazTableRow = defineAsyncComponent(() => import('./MazTableRow.vue'))\nconst MazTableTitle = defineAsyncComponent(() => import('./MazTableTitle.vue'))\n\nconst ArrowIcon = defineAsyncComponent(() => import('../../icons/arrow-up.svg'))\nconst ChevronDoubleIcon = defineAsyncComponent(() => import('../../icons/chevron-double-left.svg'))\nconst ChevronIcon = defineAsyncComponent(() => import('../../icons/chevron-left.svg'))\nconst SearchIcon = defineAsyncComponent(() => import('../../icons/magnifying-glass.svg'))\n\nconst defaultTranslations: Required<MazTableTranslations> = {\n noResults: 'No results',\n actionHeader: 'Actions',\n searchByAllLabel: 'All',\n searchByPlaceholder: 'Search by',\n searchPlaceholder: 'Search',\n paginationAllLabel: 'All',\n paginationRowsPerPage: 'Rows per page',\n paginationOf: 'of',\n}\n\nconst t = computed<Required<MazTableTranslations>>(() => {\n const { translations, searchByAllLabel, searchByPlaceholder, searchPlaceholder, paginationAllLabel } = props\n\n return {\n ...defaultTranslations,\n ...translations,\n searchByAllLabel,\n searchByPlaceholder,\n searchPlaceholder,\n paginationAllLabel,\n }\n})\n\nconst hasDivider = computed<boolean>(\n () => props.divider && !props.backgroundEven && !props.backgroundOdd,\n)\n\nconst { size, hoverable, backgroundEven, backgroundOdd } = toRefs(props)\n\nprovide<MazTableProvide>(mazTableKey, {\n size,\n hoverable,\n backgroundEven,\n backgroundOdd,\n})\n\nconst rowsNormalized = ref<T[]>(getNormalizedRows())\n\nconst isSelectable = computed<boolean>(() => props.selectable || !!props.selectedKey)\n\nconst currentPage = ref(props.page)\nwatch(\n () => props.page,\n (value) => {\n currentPage.value = value\n },\n)\nconst currentPageModel = computed({\n get: () => currentPage.value,\n set: (value) => {\n currentPage.value = value\n emits('update:page', value)\n },\n})\n\nconst pageSizeOptions = computed<MazSelectOption[]>(() => [\n { label: t.value.paginationAllLabel, value: Number.POSITIVE_INFINITY },\n { label: 5, value: 5 },\n { label: 10, value: 10 },\n { label: 20, value: 20 },\n { label: 50, value: 50 },\n { label: 100, value: 100 },\n { label: 200, value: 200 },\n])\nconst pageSizeModelInternal = ref(props.pageSize)\nwatch(\n () => props.pageSize,\n (value) => {\n pageSizeModelInternal.value = value\n },\n)\nconst pageSizeModel = computed({\n get: () => pageSizeModelInternal.value,\n set: (value) => {\n pageSizeModelInternal.value = value\n emits('update:page-size', value)\n },\n})\n\nconst totalPagesInternal = computed(() => {\n return props.totalPages\n ?? (pageSizeModel.value === Number.POSITIVE_INFINITY || !props.rows?.length)\n ? 1\n : Math.ceil(props.rows.length / pageSizeModel.value)\n})\n\nfunction firstPage() {\n currentPageModel.value = 1\n}\nfunction lastPage() {\n currentPageModel.value = totalPagesInternal.value\n}\n\nfunction previousPage() {\n currentPageModel.value = currentPageModel.value - 1\n}\nfunction nextPage() {\n currentPageModel.value = currentPageModel.value + 1\n}\n\nconst rowsOfPage = computed(() => {\n if (\n !props.pagination\n || props.noPaginateRows\n || pageSizeModel.value === Number.POSITIVE_INFINITY\n ) {\n return rowsNormalized.value\n }\n\n const start = (currentPage.value - 1) * pageSizeModel.value\n const end = start + pageSizeModel.value\n\n return rowsNormalized.value.slice(start, end)\n})\n\nwatch(\n () => [props.rows, props.modelValue],\n () => {\n rowsNormalized.value = getNormalizedRows()\n },\n)\n\nconst sortedColumnIndex = ref<number>()\nconst sortType = ref<'ASC' | 'DESC'>()\n\nconst headersNormalized = ref<HeadersNormalized[]>(getNormalizedHeaders())\n\nconst searchByKey = ref<string>()\nconst searchByOptions = computed<MazSelectOption[]>(() => [\n { label: props.searchByAllLabel, value: null },\n ...headersNormalized.value.map((header) => {\n return {\n label: header.label,\n value: header.key,\n }\n }),\n])\n\nconst searchQueryModelInternal = ref(props.searchQuery)\nwatch(\n () => props.searchQuery,\n (value) => {\n searchQueryModelInternal.value = value\n },\n)\nconst searchQueryModel = computed({\n get: () => searchQueryModelInternal.value,\n set: (value) => {\n searchQueryModelInternal.value = value\n emits('update:search-query', value)\n },\n})\n\nfunction getSortedRows(rows: T[]) {\n return [...rows].sort((a, b) => {\n if (sortedColumnIndex.value === undefined || sortType.value === undefined)\n return 0\n\n const aValue = a[headersNormalized.value[sortedColumnIndex.value].key as string]\n const bValue = b[headersNormalized.value[sortedColumnIndex.value].key as string]\n\n // Comparez les valeurs en fonction du type de données\n if (typeof aValue === 'string' && typeof bValue === 'string') {\n return sortType.value === 'ASC'\n ? aValue.localeCompare(bValue)\n : bValue.localeCompare(aValue)\n }\n else {\n return sortType.value === 'ASC' ? aValue - bValue : bValue - aValue\n }\n })\n}\n\nfunction getFilteredRows(rows: T[]) {\n if (props.noSearchInRow || typeof searchQueryModel.value !== 'string')\n return rowsOfPage.value\n\n const query = searchQueryModel.value.toLowerCase()\n\n return [...rows].filter((row) => {\n if (searchByKey.value) {\n return String(row[searchByKey.value]).toLowerCase().includes(query)\n }\n\n return Object.values(row).some((value) => {\n if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n return String(value).toLowerCase().includes(query)\n }\n\n return false\n })\n })\n}\n\nconst rowsFiltered = computed<T[]>(() => {\n const filteredResults = getFilteredRows(rowsOfPage.value as T[])\n\n return getSortedRows(filteredResults as T[])\n})\n\nconst slots = useSlots()\n\nconst hasHeader = computed<boolean>(() => props.search || !!props.title || !!slots.title)\nconst hasFooter = computed<boolean>(() => props.pagination)\n\nfunction getNormalizedHeaders(): HeadersNormalized[] {\n return (\n props.headers?.map(header =>\n typeof header === 'string'\n ? { label: header, align: props.headersAlign }\n : { align: props.headersAlign, thHeaders: header.headers, ...header },\n ) ?? []\n )\n}\n\nfunction getNormalizedRows(): T[] {\n return (\n props.rows?.map(row => ({\n selected: props.modelValue?.includes(props.selectedKey ? row[props.selectedKey] : row),\n ...row,\n })) ?? []\n )\n}\n\nfunction sortColumn(columnIndex: number) {\n if (columnIndex === sortedColumnIndex.value) {\n const sortTypeValue = sortType.value === 'DESC' ? 'ASC' : undefined\n sortType.value\n = sortType.value === undefined ? 'DESC' : sortTypeValue\n }\n else {\n sortType.value = 'DESC'\n }\n sortedColumnIndex.value = sortType.value === undefined ? undefined : columnIndex\n}\n\nconst allSelected = computed<boolean>({\n get: () => {\n return rowsFiltered.value.every(row => row.selected) ?? false\n },\n set: selectAll,\n})\n\nfunction selectAll(value: boolean) {\n for (const row of rowsFiltered.value) {\n row.selected = value\n }\n\n emitValues()\n}\n\nfunction selectRow(value: boolean, index: number) {\n rowsFiltered.value[index].selected = value\n\n emitValues()\n}\n\nfunction emitValues(selectedRows?: (T | string | number | boolean)[]) {\n selectedRows = selectedRows ?? getSelectedRows()\n\n const rows = selectedRows?.length ? selectedRows : undefined\n\n emits('update:model-value', rows)\n}\n\nfunction getSelectedRows(): (T | string | number | boolean)[] {\n // if (props.selectedKey === undefined) {\n // return\n // }\n\n return rowsFiltered.value\n .filter(row => row.selected)\n .map(row => (props.selectedKey ? row[props.selectedKey] : row))\n}\n\nonBeforeMount(() => {\n const selectedRows = getSelectedRows()\n\n if (selectedRows?.length) {\n emitValues(selectedRows)\n }\n})\n</script>\n\n<template>\n <div class=\"m-table m-reset-css\" :class=\"{ '--has-header': hasHeader }\">\n <div v-if=\"hasHeader\" class=\"m-table-header\">\n <div v-if=\"title || $slots.title\" class=\"m-table-spacer\">\n <slot name=\"title\">\n <span class=\"m-table-header-title\">\n {{ title }}\n </span>\n </slot>\n </div>\n\n <div v-if=\"search\" class=\"m-table-header-search\">\n <MazSelect\n v-if=\"!noSearchBy\"\n v-model=\"searchByKey\"\n :rounded-size\n :color\n :style=\"{ width: '8rem' }\"\n :placeholder=\"t.searchByPlaceholder\"\n :size=\"inputSize ?? size\"\n :options=\"searchByOptions\"\n />\n <MazInput\n v-model=\"searchQueryModel\"\n :size=\"inputSize ?? size\"\n :rounded-size\n :color\n :debounce=\"300\"\n :placeholder=\"t.searchPlaceholder\"\n :left-icon=\"SearchIcon\"\n />\n </div>\n </div>\n <div\n class=\"m-table-wrapper\" :class=\"[`--rounded-${roundedSize}`, {\n '--scrollable': scrollable,\n }]\"\n >\n <table\n :class=\"[{ '--elevation': elevation, '--has-layout': tableLayout }, tableClass]\"\n :style=\"tableStyle\"\n >\n <caption v-if=\"caption || $slots.caption\">\n <!--\n @slot caption - add caption on top or bottom of the table\n -->\n <slot name=\"caption\">\n {{ caption }}\n </slot>\n </caption>\n\n <thead v-if=\"headersNormalized\">\n <!--\n @slot thead - content in thead element\n -->\n <slot name=\"thead\">\n <MazTableRow no-hoverable>\n <MazTableTitle\n v-if=\"isSelectable\"\n align=\"left\"\n :class=\"`--${size}`\"\n class=\"m-table-select-column\"\n >\n <MazCheckbox v-model=\"allSelected\" size=\"sm\" />\n </MazTableTitle>\n <MazTableTitle\n v-for=\"(header, columnIndex) in headersNormalized\"\n :key=\"columnIndex\"\n :scope=\"header.scope\"\n :align=\"header.align\"\n :rowspan=\"header.rowspan\"\n :colspan=\"header.colspan\"\n :headers=\"header.thHeaders\"\n :style=\"{ width: header.width, textAlign: header.align }\"\n class=\"maz-group\"\n :class=\"[\n { '--hidden': header.hidden, '--sortable': header.sortable ?? sortable },\n header.classes,\n `--${size}`,\n ]\"\n @click=\"(header.sortable ?? sortable) && sortColumn(columnIndex)\"\n >\n <span :class=\"{ 'maz-sr-only': header.srOnly }\">\n <!--\n @slot header - replace column header\n @binding {Object} header - header data\n @binding {String} label - header label\n -->\n <slot name=\"header\" :header=\"header\" :label=\"header.label\">\n <!--\n @slot header-label-{key} - replace column header label\n @binding {Object} header - header data\n @binding {String} label - header label\n -->\n <slot :name=\"`header-label-${header.key}`\" :header=\"header\" :label=\"header.label\">\n {{ header.label }}\n </slot>\n\n <div v-if=\"header.sortable ?? sortable\" class=\"m-table-sort-icon-wrapper\">\n <ArrowIcon\n class=\"m-table-sort-icon maz-hidden group-hover:maz-block\"\n :class=\"{\n '--sorted': columnIndex === sortedColumnIndex,\n '--up': sortType === 'DESC',\n '--down': sortType === 'ASC',\n }\"\n />\n </div>\n </slot>\n </span>\n </MazTableTitle>\n <MazTableTitle v-if=\"$slots.actions\" align=\"left\" :class=\"`--${size}`\">\n <!--\n @slot actions-header - replace text of actions header\n -->\n <slot name=\"actions-header\">\n {{ t.actionHeader }}\n </slot>\n </MazTableTitle>\n </MazTableRow>\n </slot>\n </thead>\n\n <MazLoadingBar v-if=\"loading\" :color=\"color\" class=\"!maz-absolute\" />\n\n <tbody :class=\"{ '--divider': hasDivider }\">\n <slot>\n <template v-if=\"rowsFiltered.length > 0\">\n <MazTableRow\n v-for=\"(row, rowIndex) in rowsFiltered\"\n :key=\"rowIndex\"\n :class=\"row.classes\"\n @click=\"row.action && row.action(row)\"\n >\n <MazTableCell v-if=\"isSelectable\" class=\"m-table-select-column\">\n <!--\n @slot select - replace checkbox component\n @binding {Object} row - row data\n @binding {Boolean} selected - if selected or not\n -->\n <slot name=\"select\" :row=\"row\" :selected=\"row.selected\">\n <MazCheckbox\n size=\"sm\"\n :model-value=\"row.selected\"\n @update:model-value=\"selectRow($event, rowIndex)\"\n />\n </slot>\n </MazTableCell>\n <MazTableCell\n v-for=\"({ key, align, classes }, dataIndex) in headersNormalized\"\n :key=\"dataIndex\"\n :align=\"align\"\n :class=\"classes\"\n >\n <!--\n @slot cell - replace all row cells\n @binding {Object} row - row data\n @binding {Boolean} value - cell value\n -->\n <slot v-if=\"key\" name=\"cell\" :row=\"row\" :value=\"row[key]\">\n <!--\n @slot cell-{key} - replace row cells of column\n @binding {Object} row - row data\n @binding {Boolean} value - cell value\n -->\n <slot :name=\"`cell-${key}`\" :row=\"row\" :value=\"row[key]\">\n {{ row[key] }}\n </slot>\n </slot>\n </MazTableCell>\n <MazTableCell v-if=\"$slots.actions\">\n <!--\n @slot actions - will add actions column\n @binding {Object} row - row data\n -->\n <slot name=\"actions\" :row=\"row\" />\n </MazTableCell>\n </MazTableRow>\n </template>\n <template v-else>\n <MazTableRow>\n <MazTableCell\n :colspan=\"\n headersNormalized.length + (isSelectable ? 1 : 0) + ($slots.actions ? 1 : 0)\n \"\n >\n <!--\n @slot no-results - replace no results\n -->\n <slot name=\"no-results\">\n <p class=\"maz-text-center maz-text-muted\">\n <!--\n @slot no-results-text - replace no results test only\n -->\n <slot name=\"no-results-text\">\n {{ t.noResults }}\n </slot>\n </p>\n </slot>\n </MazTableCell>\n </MazTableRow>\n </template>\n </slot>\n </tbody>\n </table>\n </div>\n\n <div v-if=\"hasFooter\" class=\"m-table-footer\">\n <div class=\"m-table-spacer\" />\n\n <div v-if=\"pagination\" class=\"m-table-footer-pagination\">\n <div class=\"m-table-footer-pagination-items-per-page\">\n <span class=\"maz-hidden maz-text-sm tab-s:maz-block\"> {{ t.paginationRowsPerPage }} </span>\n <MazSelect\n v-model=\"pageSizeModel\"\n :options=\"pageSizeOptions\"\n :rounded-size\n :size=\"inputSize ?? size\"\n :color=\"color\"\n list-position=\"top\"\n :style=\"{ width: '5rem' }\"\n />\n </div>\n\n <span v-if=\"totalPagesInternal\" class=\"maz-whitespace-nowrap maz-text-sm\">\n {{ currentPageModel }} - {{ rowsFiltered.length }} {{ t.paginationOf }} {{ totalPagesInternal }}\n </span>\n\n <div class=\"m-table-footer-pagination-buttons\">\n <MazBtn\n :disabled=\"currentPageModel === 1\"\n :size=\"inputSize ?? size\"\n color=\"transparent\"\n :rounded-size\n no-elevation\n @click=\"firstPage\"\n >\n <ChevronDoubleIcon class=\"maz-text-base\" />\n </MazBtn>\n\n <MazBtn\n :disabled=\"currentPageModel === 1\"\n :size=\"inputSize ?? size\"\n color=\"transparent\"\n :rounded-size\n no-elevation\n @click=\"previousPage\"\n >\n <ChevronIcon class=\"maz-text-base\" />\n </MazBtn>\n <MazBtn\n :disabled=\"currentPageModel === totalPagesInternal\"\n :size=\"inputSize ?? size\"\n color=\"transparent\"\n :rounded-size\n no-elevation\n @click=\"nextPage\"\n >\n <ChevronIcon class=\"maz-rotate-180 maz-text-base\" />\n </MazBtn>\n\n <MazBtn\n :disabled=\"currentPageModel === totalPagesInternal\"\n :size=\"inputSize ?? size\"\n color=\"transparent\"\n :rounded-size\n no-elevation\n @click=\"lastPage\"\n >\n <ChevronDoubleIcon class=\"maz-rotate-180 maz-text-base\" />\n </MazBtn>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<style lang=\"postcss\" scoped>\n .m-table {\n @apply maz-relative maz-max-w-full;\n\n &-header {\n @apply maz-flex maz-max-w-full maz-items-center maz-justify-between maz-gap-2 maz-bg-color maz-py-2;\n\n &-search {\n @apply maz-flex maz-items-center maz-gap-2;\n }\n\n &-title {\n @apply maz-font-semibold;\n }\n }\n\n &-footer {\n @apply maz-flex maz-max-w-full maz-justify-between maz-gap-2 maz-bg-color maz-p-2;\n\n &-pagination {\n @apply maz-flex maz-items-center maz-gap-4;\n\n &-buttons {\n @apply maz-flex maz-items-center maz-gap-1;\n }\n\n &-items-per-page {\n @apply maz-flex maz-items-center maz-gap-1;\n }\n }\n }\n\n &-wrapper {\n @apply maz-border maz-border-solid maz-border-color-light;\n\n &.--scrollable {\n @apply maz-overflow-auto;\n }\n\n &:not(.--rounded-none) {\n @apply maz-rounded-xl;\n }\n\n &.--rounded-sm {\n @apply maz-rounded-sm;\n\n table {\n @apply maz-rounded-sm;\n\n thead tr:hover:first-child {\n @apply maz-rounded-b-sm;\n\n th:first-child {\n @apply maz-rounded-tl-sm;\n }\n\n th:last-child {\n @apply maz-rounded-tr-sm;\n }\n }\n\n tbody tr:hover:last-child {\n @apply maz-rounded-b-sm;\n\n td:first-child {\n @apply maz-rounded-bl-sm;\n }\n\n td:last-child {\n @apply maz-rounded-br-sm;\n }\n }\n }\n }\n\n &.--rounded-md {\n @apply maz-rounded-md;\n\n table {\n @apply maz-rounded-md;\n\n thead tr:hover:first-child {\n @apply maz-rounded-b-md;\n\n th:first-child {\n @apply maz-rounded-tl-md;\n }\n\n th:last-child {\n @apply maz-rounded-tr-md;\n }\n }\n\n tbody tr:hover:last-child {\n @apply maz-rounded-b-md;\n\n td:first-child {\n @apply maz-rounded-bl-md;\n }\n\n td:last-child {\n @apply maz-rounded-br-md;\n }\n }\n }\n }\n\n &.--rounded-lg {\n @apply maz-rounded-lg;\n\n table {\n @apply maz-rounded-lg;\n\n thead tr:hover:first-child {\n @apply maz-rounded-b-lg;\n\n th:first-child {\n @apply maz-rounded-tl-lg;\n }\n\n th:last-child {\n @apply maz-rounded-tr-lg;\n }\n }\n\n tbody tr:hover:last-child {\n @apply maz-rounded-b-lg;\n\n td:first-child {\n @apply maz-rounded-bl-lg;\n }\n\n td:last-child {\n @apply maz-rounded-br-lg;\n }\n }\n }\n }\n\n &.--rounded-xl {\n @apply maz-rounded-xl;\n\n table {\n @apply maz-rounded-xl;\n\n thead tr:hover:first-child {\n @apply maz-rounded-b-xl;\n\n th:first-child {\n @apply maz-rounded-tl-xl;\n }\n\n th:last-child {\n @apply maz-rounded-tr-xl;\n }\n }\n\n tbody tr:hover:last-child {\n @apply maz-rounded-b-xl;\n\n td:first-child {\n @apply maz-rounded-bl-xl;\n }\n\n td:last-child {\n @apply maz-rounded-br-xl;\n }\n }\n }\n }\n }\n\n &.--has-header {\n @apply maz-rounded;\n }\n\n &:not(.--has-header) {\n table {\n @apply maz-rounded;\n }\n }\n\n table {\n @apply maz-table maz-w-full maz-border-collapse maz-bg-color;\n\n table-layout: v-bind('tableLayout');\n\n &.--has-layout {\n @apply maz-w-full;\n }\n\n &.--elevation {\n @apply maz-elevation;\n }\n\n & .m-table-select-column {\n @apply maz-w-[2.9rem];\n }\n\n caption {\n @apply maz-p-3;\n\n caption-side: v-bind('captionSide');\n }\n\n thead {\n @apply maz-break-all maz-border-b maz-border-color-light;\n\n th {\n @apply maz-gap-2 maz-break-all maz-font-normal maz-text-muted maz-tracking-tight;\n\n &.--hidden {\n @apply maz-hidden;\n }\n\n &.--sortable {\n @apply maz-cursor-pointer hover:maz-bg-color-dark;\n }\n\n &.--xl {\n @apply maz-px-5 maz-py-5 maz-text-lg;\n }\n\n &.--lg {\n @apply maz-px-4 maz-py-4 maz-text-base;\n }\n\n &.--md {\n @apply maz-px-3 maz-py-3 maz-text-sm;\n }\n\n &.--sm {\n @apply maz-px-2 maz-py-2 maz-text-xs;\n }\n\n &.--xs {\n @apply maz-px-1 maz-py-1 maz-text-xs;\n }\n\n &.--mini {\n @apply maz-px-0.5 maz-py-0.5 maz-text-xs;\n }\n\n span {\n @apply maz-inline-flex maz-items-center maz-gap-1;\n\n .m-table-sort-icon-wrapper {\n @apply maz-h-4 maz-w-4;\n }\n\n .m-table-sort-icon {\n @apply maz-text-muted maz-transition-transform maz-duration-300 maz-ease-out;\n\n &.--sorted {\n @apply maz-block maz-text-normal;\n\n &.--up {\n @apply maz-rotate-0;\n }\n\n &.--down {\n @apply maz-rotate-180;\n }\n }\n }\n }\n }\n }\n\n tbody {\n &.--divider {\n @apply maz-divide-y maz-divide-color-light;\n }\n }\n }\n}\n</style>\n"],"names":["mazTableKey","props","__props","emits","__emit","MazBtn","defineAsyncComponent","MazCheckbox","MazInput","MazLoadingBar","MazSelect","MazTableCell","MazTableRow","MazTableTitle","ArrowIcon","ChevronDoubleIcon","ChevronIcon","SearchIcon","defaultTranslations","t","computed","translations","searchByAllLabel","searchByPlaceholder","searchPlaceholder","paginationAllLabel","hasDivider","size","hoverable","backgroundEven","backgroundOdd","toRefs","provide","rowsNormalized","ref","getNormalizedRows","isSelectable","currentPage","watch","value","currentPageModel","pageSizeOptions","pageSizeModelInternal","pageSizeModel","totalPagesInternal","_a","firstPage","lastPage","previousPage","nextPage","rowsOfPage","start","end","sortedColumnIndex","sortType","headersNormalized","getNormalizedHeaders","searchByKey","searchByOptions","header","searchQueryModelInternal","searchQueryModel","getSortedRows","rows","b","aValue","bValue","getFilteredRows","query","row","rowsFiltered","filteredResults","slots","useSlots","hasHeader","hasFooter","sortColumn","columnIndex","sortTypeValue","allSelected","selectAll","emitValues","selectRow","index","selectedRows","getSelectedRows","onBeforeMount"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"MazTabsContent.vue_vue_type_script_setup_true_lang.BGqO0ynq.mjs","sources":["../../src/components/MazTabsContent.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { MazTabsProvide } from '@components/MazTabs.vue'\nimport { debounce } from '@helpers/debounce'\nimport { injectStrict } from '@helpers/injectStrict'\nimport { ref, watch } from 'vue'\n\nconst hideOverflow = ref(false)\n\nconst { currentTab } = injectStrict<MazTabsProvide>('maz-tabs')\n\nconst allowOverFlow = debounce(() => {\n hideOverflow.value = false\n}, 700)\n\nfunction setOverflowHiddenTemp() {\n hideOverflow.value = true\n allowOverFlow()\n}\n\nwatch(\n () => currentTab.value,\n () => setOverflowHiddenTemp(),\n { immediate: true },\n)\n</script>\n\n<template>\n <div class=\"m-tabs-content m-reset-css maz-relative\" :class=\"{ 'maz-overflow-hidden': hideOverflow }\">\n <slot />\n </div>\n</template>\n"],"names":["hideOverflow","ref","currentTab","injectStrict","allowOverFlow","debounce","setOverflowHiddenTemp","watch"],"mappings":";;;;;;AAMM,UAAAA,IAAeC,EAAI,EAAK,GAExB,EAAE,YAAAC,EAAA,IAAeC,EAA6B,UAAU,GAExDC,IAAgBC,EAAS,MAAM;AACnC,MAAAL,EAAa,QAAQ;AAAA,OACpB,GAAG;AAEN,aAASM,IAAwB;AAC/B,MAAAN,EAAa,QAAQ,IACPI,EAAA;AAAA,IAAA;AAGhB,WAAAG;AAAA,MACE,MAAML,EAAW;AAAA,MACjB,MAAMI,EAAsB;AAAA,MAC5B,EAAE,WAAW,GAAK;AAAA,IACpB;;;;;;;"}
1
+ {"version":3,"file":"MazTabsContent.vue_vue_type_script_setup_true_lang.BGqO0ynq.mjs","sources":["../../src/components/MazTabsContent.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { MazTabsProvide } from './MazTabs.vue'\nimport { ref, watch } from 'vue'\nimport { debounce } from '../helpers/debounce'\nimport { injectStrict } from '../helpers/injectStrict'\n\nconst hideOverflow = ref(false)\n\nconst { currentTab } = injectStrict<MazTabsProvide>('maz-tabs')\n\nconst allowOverFlow = debounce(() => {\n hideOverflow.value = false\n}, 700)\n\nfunction setOverflowHiddenTemp() {\n hideOverflow.value = true\n allowOverFlow()\n}\n\nwatch(\n () => currentTab.value,\n () => setOverflowHiddenTemp(),\n { immediate: true },\n)\n</script>\n\n<template>\n <div class=\"m-tabs-content m-reset-css maz-relative\" :class=\"{ 'maz-overflow-hidden': hideOverflow }\">\n <slot />\n </div>\n</template>\n"],"names":["hideOverflow","ref","currentTab","injectStrict","allowOverFlow","debounce","setOverflowHiddenTemp","watch"],"mappings":";;;;;;AAMM,UAAAA,IAAeC,EAAI,EAAK,GAExB,EAAE,YAAAC,EAAA,IAAeC,EAA6B,UAAU,GAExDC,IAAgBC,EAAS,MAAM;AACnC,MAAAL,EAAa,QAAQ;AAAA,OACpB,GAAG;AAEN,aAASM,IAAwB;AAC/B,MAAAN,EAAa,QAAQ,IACPI,EAAA;AAAA,IAAA;AAGhB,WAAAG;AAAA,MACE,MAAML,EAAW;AAAA,MACjB,MAAMI,EAAsB;AAAA,MAC5B,EAAE,WAAW,GAAK;AAAA,IACpB;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"MazTabsContent.vue_vue_type_script_setup_true_lang.DariT_zv.cjs","sources":["../../src/components/MazTabsContent.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { MazTabsProvide } from '@components/MazTabs.vue'\nimport { debounce } from '@helpers/debounce'\nimport { injectStrict } from '@helpers/injectStrict'\nimport { ref, watch } from 'vue'\n\nconst hideOverflow = ref(false)\n\nconst { currentTab } = injectStrict<MazTabsProvide>('maz-tabs')\n\nconst allowOverFlow = debounce(() => {\n hideOverflow.value = false\n}, 700)\n\nfunction setOverflowHiddenTemp() {\n hideOverflow.value = true\n allowOverFlow()\n}\n\nwatch(\n () => currentTab.value,\n () => setOverflowHiddenTemp(),\n { immediate: true },\n)\n</script>\n\n<template>\n <div class=\"m-tabs-content m-reset-css maz-relative\" :class=\"{ 'maz-overflow-hidden': hideOverflow }\">\n <slot />\n </div>\n</template>\n"],"names":["hideOverflow","ref","currentTab","injectStrict","allowOverFlow","debounce","setOverflowHiddenTemp","watch"],"mappings":"wKAMM,MAAAA,EAAeC,MAAI,EAAK,EAExB,CAAE,WAAAC,CAAA,EAAeC,EAAA,aAA6B,UAAU,EAExDC,EAAgBC,EAAAA,SAAS,IAAM,CACnCL,EAAa,MAAQ,IACpB,GAAG,EAEN,SAASM,GAAwB,CAC/BN,EAAa,MAAQ,GACPI,EAAA,CAAA,CAGhBG,OAAAA,EAAA,MACE,IAAML,EAAW,MACjB,IAAMI,EAAsB,EAC5B,CAAE,UAAW,EAAK,CACpB"}
1
+ {"version":3,"file":"MazTabsContent.vue_vue_type_script_setup_true_lang.DariT_zv.cjs","sources":["../../src/components/MazTabsContent.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { MazTabsProvide } from './MazTabs.vue'\nimport { ref, watch } from 'vue'\nimport { debounce } from '../helpers/debounce'\nimport { injectStrict } from '../helpers/injectStrict'\n\nconst hideOverflow = ref(false)\n\nconst { currentTab } = injectStrict<MazTabsProvide>('maz-tabs')\n\nconst allowOverFlow = debounce(() => {\n hideOverflow.value = false\n}, 700)\n\nfunction setOverflowHiddenTemp() {\n hideOverflow.value = true\n allowOverFlow()\n}\n\nwatch(\n () => currentTab.value,\n () => setOverflowHiddenTemp(),\n { immediate: true },\n)\n</script>\n\n<template>\n <div class=\"m-tabs-content m-reset-css maz-relative\" :class=\"{ 'maz-overflow-hidden': hideOverflow }\">\n <slot />\n </div>\n</template>\n"],"names":["hideOverflow","ref","currentTab","injectStrict","allowOverFlow","debounce","setOverflowHiddenTemp","watch"],"mappings":"wKAMM,MAAAA,EAAeC,MAAI,EAAK,EAExB,CAAE,WAAAC,CAAA,EAAeC,EAAA,aAA6B,UAAU,EAExDC,EAAgBC,EAAAA,SAAS,IAAM,CACnCL,EAAa,MAAQ,IACpB,GAAG,EAEN,SAASM,GAAwB,CAC/BN,EAAa,MAAQ,GACPI,EAAA,CAAA,CAGhBG,OAAAA,EAAA,MACE,IAAML,EAAW,MACjB,IAAMI,EAAsB,EAC5B,CAAE,UAAW,EAAK,CACpB"}
@@ -1,9 +1,9 @@
1
- import { defineComponent as B, mergeModels as h, useModel as g, computed as u, ref as P, onMounted as F, openBlock as V, createBlock as I, mergeProps as z, unref as N } from "vue";
2
- import E from "../components/MazInput.mjs";
3
- import { a as M, u as $ } from "./MazInputPhoneNumber.B173m1hd.mjs";
4
- import { injectStrict as C } from "../helpers/injectStrict.mjs";
1
+ import { defineComponent as f, mergeModels as h, useModel as g, computed as u, ref as P, onMounted as F, openBlock as V, createBlock as I, mergeProps as z, unref as N } from "vue";
2
+ import { injectStrict as E } from "../helpers/injectStrict.mjs";
3
+ import M from "../components/MazInput.mjs";
4
+ import { a as $, u as C } from "./MazInputPhoneNumber.BluSBPXE.mjs";
5
5
  import { _ as L } from "./_plugin-vue_export-helper.CHgC5LLL.mjs";
6
- import '../assets/PhoneInput.utJQQXVJ.css';const S = /* @__PURE__ */ B({
6
+ import '../assets/PhoneInput.BBnKae_d.css';const S = /* @__PURE__ */ f({
7
7
  __name: "PhoneInput",
8
8
  props: /* @__PURE__ */ h({
9
9
  style: {},
@@ -49,7 +49,7 @@ import '../assets/PhoneInput.utJQQXVJ.css';const S = /* @__PURE__ */ B({
49
49
  }),
50
50
  emits: ["update:modelValue"],
51
51
  setup(l) {
52
- const { getPhoneNumberExample: p, getAsYouTypeFormat: m, loadExamples: c } = M(), { sanitizePhoneNumber: y } = $(), { results: n, selectedCountry: s } = C("data"), r = g(l, "modelValue"), v = u(() => {
52
+ const { getPhoneNumberExample: p, getAsYouTypeFormat: m, loadExamples: c } = $(), { sanitizePhoneNumber: y } = C(), { results: n, selectedCountry: s } = E("data"), r = g(l, "modelValue"), v = u(() => {
53
53
  const e = n.value.isValid ? n.value.formatNational : r.value;
54
54
  return m(s.value, e) || e;
55
55
  }), t = P(!1), d = u({
@@ -73,14 +73,14 @@ import '../assets/PhoneInput.utJQQXVJ.css';const S = /* @__PURE__ */ B({
73
73
  const a = b(s.value);
74
74
  return (o = n.value) != null && o.isValid || !a ? e : a;
75
75
  }
76
- }), f = u(() => l.placeholder ? { placeholder: i.value } : { label: i.value });
76
+ }), B = u(() => l.placeholder ? { placeholder: i.value } : { label: i.value });
77
77
  return F(() => {
78
78
  l.noExample || c();
79
- }), (e, o) => (V(), I(E, z({
79
+ }), (e, o) => (V(), I(M, z({
80
80
  id: e.id,
81
81
  modelValue: d.value,
82
82
  "onUpdate:modelValue": o[0] || (o[0] = (a) => d.value = a)
83
- }, { ...e.$attrs, ...f.value }, {
83
+ }, { ...e.$attrs, ...B.value }, {
84
84
  disabled: e.disabled,
85
85
  color: e.color,
86
86
  error: e.error,
@@ -100,8 +100,8 @@ import '../assets/PhoneInput.utJQQXVJ.css';const S = /* @__PURE__ */ B({
100
100
  onBlur: o[2] || (o[2] = (a) => t.value = !1)
101
101
  }), null, 16, ["id", "modelValue", "disabled", "color", "error", "size", "success", "name", "inputmode", "autocomplete", "class"]));
102
102
  }
103
- }), A = /* @__PURE__ */ L(S, [["__scopeId", "data-v-f91473ad"]]);
103
+ }), A = /* @__PURE__ */ L(S, [["__scopeId", "data-v-c8556160"]]);
104
104
  export {
105
105
  A as default
106
106
  };
107
- //# sourceMappingURL=PhoneInput.9GQJbL9x.mjs.map
107
+ //# sourceMappingURL=PhoneInput.DYm0yzgy.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PhoneInput.DYm0yzgy.mjs","sources":["../../src/components/MazInputPhoneNumber/PhoneInput.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { CountryCode } from 'libphonenumber-js'\nimport type { MazInputPhoneNumberInjectedData } from '../MazInputPhoneNumber.vue'\nimport type { MazInputPhoneNumberTranslations } from './types'\nimport { computed, onMounted, ref } from 'vue'\nimport { injectStrict } from '../../helpers/injectStrict'\nimport MazInput, { type MazInputProps } from '../MazInput.vue'\nimport { useLibphonenumber } from './useLibphonenumber'\nimport { useMazInputPhoneNumber } from './useMazInputPhoneNumber'\n\ntype PhoneInputProps = Omit<MazInputProps, 'modelValue'> & {\n id: string\n locales: MazInputPhoneNumberTranslations\n noExample: boolean\n hasRadius: boolean\n autoFormat: boolean\n}\n\nconst { placeholder, label, noExample, locales, autoFormat, name, inputmode, autocomplete } = defineProps<PhoneInputProps>()\n\nconst { getPhoneNumberExample, getAsYouTypeFormat, loadExamples } = useLibphonenumber()\nconst { sanitizePhoneNumber } = useMazInputPhoneNumber()\nconst { results, selectedCountry } = injectStrict<MazInputPhoneNumberInjectedData>('data')\n\nconst modelValue = defineModel<string | undefined | null>()\n\nconst asYouTypeFormatted = computed(() => {\n const phoneNumberToFormat = results.value.isValid ? results.value.formatNational : modelValue.value\n return getAsYouTypeFormat(selectedCountry.value, phoneNumberToFormat) || phoneNumberToFormat\n})\n\nconst inputFocused = ref(false)\nconst displayedPhoneNumber = computed({\n get: () => !inputFocused.value && autoFormat ? asYouTypeFormatted.value : modelValue.value,\n set: (value) => {\n modelValue.value = sanitizePhoneNumber(value)\n },\n})\n\nfunction getCountryPhoneNumberExample(selectedCountry?: CountryCode | undefined | null) {\n const example = getPhoneNumberExample(selectedCountry)\n return example ? `${locales.phoneInput.example} ${example}` : undefined\n}\nconst inputLabelOrPlaceholder = computed(() => {\n if (label || placeholder) {\n return label || placeholder\n }\n\n const defaultPlaceholder = locales.phoneInput.placeholder\n\n if (noExample || !inputFocused.value) {\n return defaultPlaceholder\n }\n else {\n const phoneExample = getCountryPhoneNumberExample(selectedCountry.value)\n return results.value?.isValid || !phoneExample ? defaultPlaceholder : phoneExample\n }\n})\n\nconst inputProps = computed(() => {\n return placeholder\n ? { placeholder: inputLabelOrPlaceholder.value }\n : { label: inputLabelOrPlaceholder.value }\n})\n\nonMounted(() => {\n if (!noExample)\n loadExamples()\n})\n</script>\n\n<template>\n <MazInput\n :id\n v-model=\"displayedPhoneNumber\"\n v-bind=\"{ ...$attrs, ...inputProps }\"\n :disabled\n :color\n :error\n :size\n :success\n :name\n :inputmode\n :autocomplete\n class=\"m-phone-input\"\n :class=\"[\n {\n '--border-radius': hasRadius,\n '--error': error || !results.isValid,\n '--focused': inputFocused,\n },\n ]\"\n @focus=\"inputFocused = true\"\n @blur=\"inputFocused = false\"\n />\n</template>\n\n<style lang=\"postcss\" scoped>\n.m-phone-input {\n @apply maz-min-w-52 maz-flex-1;\n\n &.--error,\n &.--focused {\n @apply maz-z-1;\n }\n}\n\n/** RESPONSIVE */\n.m-phone-number-input {\n &.--responsive .m-phone-input {\n @apply -maz-mt-0.5 maz-flex-none mob-m:-maz-ml-0.5 mob-m:maz-mt-0 mob-m:maz-flex-auto;\n\n &.--border-radius {\n &:deep(.m-input-wrapper) {\n @apply maz-rounded-t-none mob-m:maz-rounded-l-none mob-m:maz-rounded-tr;\n }\n }\n }\n\n &.--row .m-phone-input {\n @apply -maz-ml-0.5;\n\n &.--border-radius {\n &:deep(.m-input-wrapper) {\n @apply maz-rounded-l-none;\n }\n }\n }\n\n &.--col .m-phone-input {\n @apply -maz-mt-0.5 maz-ml-0 maz-flex-none;\n\n &.--border-radius {\n &:deep(.m-input-wrapper) {\n @apply maz-rounded-t-none maz-rounded-bl;\n }\n }\n }\n}\n</style>\n"],"names":["getPhoneNumberExample","getAsYouTypeFormat","loadExamples","useLibphonenumber","sanitizePhoneNumber","useMazInputPhoneNumber","results","selectedCountry","injectStrict","modelValue","_useModel","__props","asYouTypeFormatted","computed","phoneNumberToFormat","inputFocused","ref","displayedPhoneNumber","value","getCountryPhoneNumberExample","example","inputLabelOrPlaceholder","defaultPlaceholder","phoneExample","_a","inputProps","onMounted"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBA,UAAM,EAAE,uBAAAA,GAAuB,oBAAAC,GAAoB,cAAAC,EAAA,IAAiBC,EAAkB,GAChF,EAAE,qBAAAC,EAAoB,IAAIC,EAAuB,GACjD,EAAE,SAAAC,GAAS,iBAAAC,MAAoBC,EAA8C,MAAM,GAEnFC,IAAaC,EAAuCC,GAAA,YAAA,GAEpDC,IAAqBC,EAAS,MAAM;AACxC,YAAMC,IAAsBR,EAAQ,MAAM,UAAUA,EAAQ,MAAM,iBAAiBG,EAAW;AAC9F,aAAOR,EAAmBM,EAAgB,OAAOO,CAAmB,KAAKA;AAAA,IAAA,CAC1E,GAEKC,IAAeC,EAAI,EAAK,GACxBC,IAAuBJ,EAAS;AAAA,MACpC,KAAK,MAAM,CAACE,EAAa,SAASJ,EAAU,aAAGC,EAAmB,QAAQH,EAAW;AAAA,MACrF,KAAK,CAACS,MAAU;AACH,QAAAT,EAAA,QAAQL,EAAoBc,CAAK;AAAA,MAAA;AAAA,IAC9C,CACD;AAED,aAASC,EAA6BZ,GAAkD;AAChF,YAAAa,IAAUpB,EAAsBO,CAAe;AAC9C,aAAAa,IAAU,GAAGT,EAAO,QAAC,WAAW,OAAO,IAAIS,CAAO,KAAK;AAAA,IAAA;AAE1D,UAAAC,IAA0BR,EAAS,MAAM;;AACzC,UAAAF,EAAA,SAASA,EAAW;AACf,eAAAA,EAAA,SAASA,EAAA;AAGZ,YAAAW,IAAqBX,UAAQ,WAAW;AAE9C,UAAIA,EAAA,aAAa,CAACI,EAAa;AACtB,eAAAO;AAEJ;AACG,cAAAC,IAAeJ,EAA6BZ,EAAgB,KAAK;AACvE,gBAAOiB,IAAAlB,EAAQ,UAAR,QAAAkB,EAAe,WAAW,CAACD,IAAeD,IAAqBC;AAAA,MAAA;AAAA,IACxE,CACD,GAEKE,IAAaZ,EAAS,MACnBF,EAAA,cACH,EAAE,aAAaU,EAAwB,UACvC,EAAE,OAAOA,EAAwB,MAAM,CAC5C;AAED,WAAAK,EAAU,MAAM;AACd,MAAKf,EAAS,aACCT,EAAA;AAAA,IAAA,CAChB;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('../assets/PhoneInput.utJQQXVJ.css');const o=require("vue"),f=require("../components/MazInput.cjs"),p=require("./MazInputPhoneNumber.EZVh1Yx5.cjs"),g=require("../helpers/injectStrict.cjs"),P=require("./_plugin-vue_export-helper.BHFhmbuH.cjs"),V=o.defineComponent({__name:"PhoneInput",props:o.mergeModels({style:{},class:{},placeholder:{},label:{},topLabel:{},assistiveText:{},name:{},color:{},type:{},required:{type:Boolean},disabled:{type:Boolean},readonly:{type:Boolean},id:{},error:{type:Boolean},success:{type:Boolean},warning:{type:Boolean},hint:{},inputClasses:{},noBorder:{type:Boolean},noRadius:{type:Boolean},inputmode:{},size:{},debounce:{type:[Boolean,Number]},debounceDelay:{},validButton:{type:Boolean},validButtonLoading:{type:Boolean},autoFocus:{type:Boolean},borderActive:{type:Boolean},leftIcon:{type:[String,Function,Object]},rightIcon:{type:[String,Function,Object]},roundedSize:{},block:{type:Boolean},autocomplete:{},locales:{},noExample:{type:Boolean},hasRadius:{type:Boolean},autoFormat:{type:Boolean}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(t){const{getPhoneNumberExample:c,getAsYouTypeFormat:m,loadExamples:y}=p.useLibphonenumber(),{sanitizePhoneNumber:b}=p.useMazInputPhoneNumber(),{results:u,selectedCountry:s}=g.injectStrict("data"),r=o.useModel(t,"modelValue"),v=o.computed(()=>{const e=u.value.isValid?u.value.formatNational:r.value;return m(s.value,e)||e}),a=o.ref(!1),d=o.computed({get:()=>!a.value&&t.autoFormat?v.value:r.value,set:e=>{r.value=b(e)}});function B(e){const l=c(e);return l?`${t.locales.phoneInput.example} ${l}`:void 0}const i=o.computed(()=>{var l;if(t.label||t.placeholder)return t.label||t.placeholder;const e=t.locales.phoneInput.placeholder;if(t.noExample||!a.value)return e;{const n=B(s.value);return(l=u.value)!=null&&l.isValid||!n?e:n}}),h=o.computed(()=>t.placeholder?{placeholder:i.value}:{label:i.value});return o.onMounted(()=>{t.noExample||y()}),(e,l)=>(o.openBlock(),o.createBlock(f.default,o.mergeProps({id:e.id,modelValue:d.value,"onUpdate:modelValue":l[0]||(l[0]=n=>d.value=n)},{...e.$attrs,...h.value},{disabled:e.disabled,color:e.color,error:e.error,size:e.size,success:e.success,name:e.name,inputmode:e.inputmode,autocomplete:e.autocomplete,class:["m-phone-input",[{"--border-radius":e.hasRadius,"--error":e.error||!o.unref(u).isValid,"--focused":a.value}]],onFocus:l[1]||(l[1]=n=>a.value=!0),onBlur:l[2]||(l[2]=n=>a.value=!1)}),null,16,["id","modelValue","disabled","color","error","size","success","name","inputmode","autocomplete","class"]))}}),F=P._export_sfc(V,[["__scopeId","data-v-f91473ad"]]);exports.default=F;
2
- //# sourceMappingURL=PhoneInput.D5DG4S60.cjs.map
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('../assets/PhoneInput.BBnKae_d.css');const o=require("vue"),f=require("../helpers/injectStrict.cjs"),g=require("../components/MazInput.cjs"),p=require("./MazInputPhoneNumber.TorVuc9s.cjs"),P=require("./_plugin-vue_export-helper.BHFhmbuH.cjs"),V=o.defineComponent({__name:"PhoneInput",props:o.mergeModels({style:{},class:{},placeholder:{},label:{},topLabel:{},assistiveText:{},name:{},color:{},type:{},required:{type:Boolean},disabled:{type:Boolean},readonly:{type:Boolean},id:{},error:{type:Boolean},success:{type:Boolean},warning:{type:Boolean},hint:{},inputClasses:{},noBorder:{type:Boolean},noRadius:{type:Boolean},inputmode:{},size:{},debounce:{type:[Boolean,Number]},debounceDelay:{},validButton:{type:Boolean},validButtonLoading:{type:Boolean},autoFocus:{type:Boolean},borderActive:{type:Boolean},leftIcon:{type:[String,Function,Object]},rightIcon:{type:[String,Function,Object]},roundedSize:{},block:{type:Boolean},autocomplete:{},locales:{},noExample:{type:Boolean},hasRadius:{type:Boolean},autoFormat:{type:Boolean}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(t){const{getPhoneNumberExample:c,getAsYouTypeFormat:m,loadExamples:y}=p.useLibphonenumber(),{sanitizePhoneNumber:b}=p.useMazInputPhoneNumber(),{results:u,selectedCountry:s}=f.injectStrict("data"),r=o.useModel(t,"modelValue"),v=o.computed(()=>{const e=u.value.isValid?u.value.formatNational:r.value;return m(s.value,e)||e}),a=o.ref(!1),d=o.computed({get:()=>!a.value&&t.autoFormat?v.value:r.value,set:e=>{r.value=b(e)}});function B(e){const l=c(e);return l?`${t.locales.phoneInput.example} ${l}`:void 0}const i=o.computed(()=>{var l;if(t.label||t.placeholder)return t.label||t.placeholder;const e=t.locales.phoneInput.placeholder;if(t.noExample||!a.value)return e;{const n=B(s.value);return(l=u.value)!=null&&l.isValid||!n?e:n}}),h=o.computed(()=>t.placeholder?{placeholder:i.value}:{label:i.value});return o.onMounted(()=>{t.noExample||y()}),(e,l)=>(o.openBlock(),o.createBlock(g.default,o.mergeProps({id:e.id,modelValue:d.value,"onUpdate:modelValue":l[0]||(l[0]=n=>d.value=n)},{...e.$attrs,...h.value},{disabled:e.disabled,color:e.color,error:e.error,size:e.size,success:e.success,name:e.name,inputmode:e.inputmode,autocomplete:e.autocomplete,class:["m-phone-input",[{"--border-radius":e.hasRadius,"--error":e.error||!o.unref(u).isValid,"--focused":a.value}]],onFocus:l[1]||(l[1]=n=>a.value=!0),onBlur:l[2]||(l[2]=n=>a.value=!1)}),null,16,["id","modelValue","disabled","color","error","size","success","name","inputmode","autocomplete","class"]))}}),F=P._export_sfc(V,[["__scopeId","data-v-c8556160"]]);exports.default=F;
2
+ //# sourceMappingURL=PhoneInput.wXP8tsCy.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PhoneInput.wXP8tsCy.cjs","sources":["../../src/components/MazInputPhoneNumber/PhoneInput.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { CountryCode } from 'libphonenumber-js'\nimport type { MazInputPhoneNumberInjectedData } from '../MazInputPhoneNumber.vue'\nimport type { MazInputPhoneNumberTranslations } from './types'\nimport { computed, onMounted, ref } from 'vue'\nimport { injectStrict } from '../../helpers/injectStrict'\nimport MazInput, { type MazInputProps } from '../MazInput.vue'\nimport { useLibphonenumber } from './useLibphonenumber'\nimport { useMazInputPhoneNumber } from './useMazInputPhoneNumber'\n\ntype PhoneInputProps = Omit<MazInputProps, 'modelValue'> & {\n id: string\n locales: MazInputPhoneNumberTranslations\n noExample: boolean\n hasRadius: boolean\n autoFormat: boolean\n}\n\nconst { placeholder, label, noExample, locales, autoFormat, name, inputmode, autocomplete } = defineProps<PhoneInputProps>()\n\nconst { getPhoneNumberExample, getAsYouTypeFormat, loadExamples } = useLibphonenumber()\nconst { sanitizePhoneNumber } = useMazInputPhoneNumber()\nconst { results, selectedCountry } = injectStrict<MazInputPhoneNumberInjectedData>('data')\n\nconst modelValue = defineModel<string | undefined | null>()\n\nconst asYouTypeFormatted = computed(() => {\n const phoneNumberToFormat = results.value.isValid ? results.value.formatNational : modelValue.value\n return getAsYouTypeFormat(selectedCountry.value, phoneNumberToFormat) || phoneNumberToFormat\n})\n\nconst inputFocused = ref(false)\nconst displayedPhoneNumber = computed({\n get: () => !inputFocused.value && autoFormat ? asYouTypeFormatted.value : modelValue.value,\n set: (value) => {\n modelValue.value = sanitizePhoneNumber(value)\n },\n})\n\nfunction getCountryPhoneNumberExample(selectedCountry?: CountryCode | undefined | null) {\n const example = getPhoneNumberExample(selectedCountry)\n return example ? `${locales.phoneInput.example} ${example}` : undefined\n}\nconst inputLabelOrPlaceholder = computed(() => {\n if (label || placeholder) {\n return label || placeholder\n }\n\n const defaultPlaceholder = locales.phoneInput.placeholder\n\n if (noExample || !inputFocused.value) {\n return defaultPlaceholder\n }\n else {\n const phoneExample = getCountryPhoneNumberExample(selectedCountry.value)\n return results.value?.isValid || !phoneExample ? defaultPlaceholder : phoneExample\n }\n})\n\nconst inputProps = computed(() => {\n return placeholder\n ? { placeholder: inputLabelOrPlaceholder.value }\n : { label: inputLabelOrPlaceholder.value }\n})\n\nonMounted(() => {\n if (!noExample)\n loadExamples()\n})\n</script>\n\n<template>\n <MazInput\n :id\n v-model=\"displayedPhoneNumber\"\n v-bind=\"{ ...$attrs, ...inputProps }\"\n :disabled\n :color\n :error\n :size\n :success\n :name\n :inputmode\n :autocomplete\n class=\"m-phone-input\"\n :class=\"[\n {\n '--border-radius': hasRadius,\n '--error': error || !results.isValid,\n '--focused': inputFocused,\n },\n ]\"\n @focus=\"inputFocused = true\"\n @blur=\"inputFocused = false\"\n />\n</template>\n\n<style lang=\"postcss\" scoped>\n.m-phone-input {\n @apply maz-min-w-52 maz-flex-1;\n\n &.--error,\n &.--focused {\n @apply maz-z-1;\n }\n}\n\n/** RESPONSIVE */\n.m-phone-number-input {\n &.--responsive .m-phone-input {\n @apply -maz-mt-0.5 maz-flex-none mob-m:-maz-ml-0.5 mob-m:maz-mt-0 mob-m:maz-flex-auto;\n\n &.--border-radius {\n &:deep(.m-input-wrapper) {\n @apply maz-rounded-t-none mob-m:maz-rounded-l-none mob-m:maz-rounded-tr;\n }\n }\n }\n\n &.--row .m-phone-input {\n @apply -maz-ml-0.5;\n\n &.--border-radius {\n &:deep(.m-input-wrapper) {\n @apply maz-rounded-l-none;\n }\n }\n }\n\n &.--col .m-phone-input {\n @apply -maz-mt-0.5 maz-ml-0 maz-flex-none;\n\n &.--border-radius {\n &:deep(.m-input-wrapper) {\n @apply maz-rounded-t-none maz-rounded-bl;\n }\n }\n }\n}\n</style>\n"],"names":["getPhoneNumberExample","getAsYouTypeFormat","loadExamples","useLibphonenumber","sanitizePhoneNumber","useMazInputPhoneNumber","results","selectedCountry","injectStrict","modelValue","_useModel","__props","asYouTypeFormatted","computed","phoneNumberToFormat","inputFocused","ref","displayedPhoneNumber","value","getCountryPhoneNumberExample","example","inputLabelOrPlaceholder","defaultPlaceholder","phoneExample","_a","inputProps","onMounted"],"mappings":"qnCAoBA,KAAM,CAAE,sBAAAA,EAAuB,mBAAAC,EAAoB,aAAAC,CAAA,EAAiBC,EAAAA,kBAAkB,EAChF,CAAE,oBAAAC,CAAoB,EAAIC,yBAAuB,EACjD,CAAE,QAAAC,EAAS,gBAAAC,GAAoBC,EAAAA,aAA8C,MAAM,EAEnFC,EAAaC,EAAAA,SAAuCC,EAAA,YAAA,EAEpDC,EAAqBC,EAAAA,SAAS,IAAM,CACxC,MAAMC,EAAsBR,EAAQ,MAAM,QAAUA,EAAQ,MAAM,eAAiBG,EAAW,MAC9F,OAAOR,EAAmBM,EAAgB,MAAOO,CAAmB,GAAKA,CAAA,CAC1E,EAEKC,EAAeC,MAAI,EAAK,EACxBC,EAAuBJ,EAAAA,SAAS,CACpC,IAAK,IAAM,CAACE,EAAa,OAASJ,EAAU,WAAGC,EAAmB,MAAQH,EAAW,MACrF,IAAMS,GAAU,CACHT,EAAA,MAAQL,EAAoBc,CAAK,CAAA,CAC9C,CACD,EAED,SAASC,EAA6BZ,EAAkD,CAChF,MAAAa,EAAUpB,EAAsBO,CAAe,EAC9C,OAAAa,EAAU,GAAGT,EAAO,QAAC,WAAW,OAAO,IAAIS,CAAO,GAAK,MAAA,CAE1D,MAAAC,EAA0BR,EAAAA,SAAS,IAAM,OACzC,GAAAF,EAAA,OAASA,EAAW,YACf,OAAAA,EAAA,OAASA,EAAA,YAGZ,MAAAW,EAAqBX,UAAQ,WAAW,YAE9C,GAAIA,EAAA,WAAa,CAACI,EAAa,MACtB,OAAAO,EAEJ,CACG,MAAAC,EAAeJ,EAA6BZ,EAAgB,KAAK,EACvE,OAAOiB,EAAAlB,EAAQ,QAAR,MAAAkB,EAAe,SAAW,CAACD,EAAeD,EAAqBC,CAAA,CACxE,CACD,EAEKE,EAAaZ,EAAAA,SAAS,IACnBF,EAAA,YACH,CAAE,YAAaU,EAAwB,OACvC,CAAE,MAAOA,EAAwB,KAAM,CAC5C,EAEDK,OAAAA,EAAAA,UAAU,IAAM,CACTf,EAAS,WACCT,EAAA,CAAA,CAChB"}
@@ -1,11 +1,11 @@
1
- import '../assets/fullscreen-img.hjNozahA.css';var ue = Object.defineProperty;
1
+ import '../assets/fullscreen-img.Dnt1uj_5.css';var ue = Object.defineProperty;
2
2
  var ce = (l, e, s) => e in l ? ue(l, e, { enumerable: !0, configurable: !0, writable: !0, value: s }) : l[e] = s;
3
3
  var f = (l, e, s) => ce(l, typeof e != "symbol" ? e + "" : e, s);
4
4
  import { mount as me } from "../helpers/mountComponent.mjs";
5
- import { defineComponent as de, defineAsyncComponent as X, ref as u, reactive as ve, computed as j, watch as fe, onMounted as pe, onBeforeUnmount as he, openBlock as H, createElementBlock as $, withModifiers as h, withKeys as ge, createVNode as I, unref as _, createCommentVNode as Y, createElementVNode as B, normalizeClass as ye, withDirectives as we, vShow as Le } from "vue";
6
- import be from "../components/MazSpinner.mjs";
7
- import { checkAvailability as Ee } from "../helpers/checkAvailability.mjs";
8
- import { _ as Ie } from "./_plugin-vue_export-helper.CHgC5LLL.mjs";
5
+ import { defineComponent as de, defineAsyncComponent as X, ref as u, reactive as ve, computed as j, watch as fe, onMounted as pe, onBeforeUnmount as he, openBlock as H, createElementBlock as $, withModifiers as h, withKeys as ge, createVNode as b, unref as _, createCommentVNode as Y, createElementVNode as B, normalizeClass as ye, withDirectives as we, vShow as Le } from "vue";
6
+ import Ee from "../components/MazSpinner.mjs";
7
+ import { checkAvailability as Ie } from "../helpers/checkAvailability.mjs";
8
+ import { _ as be } from "./_plugin-vue_export-helper.CHgC5LLL.mjs";
9
9
  const xe = ["onKeypress"], ke = { class: "m-fullscreen-img-scroller" }, Ae = ["src", "alt"], Ce = /* @__PURE__ */ de({
10
10
  __name: "MazFullscreenImg",
11
11
  props: {
@@ -27,9 +27,9 @@ const xe = ["onKeypress"], ke = { class: "m-fullscreen-img-scroller" }, Ae = ["s
27
27
  const s = l, r = e, k = X(() => import("./x-mark.DTWA3lfG.mjs")), g = X(() => import("./chevron-left.njfuF_Vt.mjs")), A = u(!1), y = u(!1), w = u(!1), C = u(!1), c = u(!1), v = ve({
28
28
  running: !1,
29
29
  ended: !1
30
- }), z = u(s.clickedElement), G = j(() => s.clickedElement.getBoundingClientRect()), L = u(), P = u(s.src), M = u(s.alt), W = u(), a = u(), b = u(!0), J = j(() => ({
30
+ }), z = u(s.clickedElement), G = j(() => s.clickedElement.getBoundingClientRect()), L = u(), P = u(s.src), M = u(s.alt), W = u(), a = u(), E = u(!0), J = j(() => ({
31
31
  "--is-zoomed": c.value,
32
- "--invisible": b.value,
32
+ "--invisible": E.value,
33
33
  "--absolute": !c.value
34
34
  }));
35
35
  function Q() {
@@ -43,11 +43,11 @@ const xe = ["onKeypress"], ke = { class: "m-fullscreen-img-scroller" }, Ae = ["s
43
43
  },
44
44
  { immediate: !0 }
45
45
  );
46
- function E() {
46
+ function I() {
47
47
  r("before-close"), ie();
48
48
  }
49
49
  function D(t) {
50
- t.key === "Escape" && (t.preventDefault(), E()), (t.key === "ArrowLeft" || t.key === "ArrowRight") && (t.preventDefault(), O(t.key === "ArrowRight" ? "next" : "previous"));
50
+ t.key === "Escape" && (t.preventDefault(), I()), (t.key === "ArrowLeft" || t.key === "ArrowRight") && (t.preventDefault(), O(t.key === "ArrowRight" ? "next" : "previous"));
51
51
  }
52
52
  function ee() {
53
53
  document.documentElement.classList.add("--m-fullscreen-open");
@@ -67,14 +67,14 @@ const xe = ["onKeypress"], ke = { class: "m-fullscreen-img-scroller" }, Ae = ["s
67
67
  M.value = i, P.value = o ?? P.value;
68
68
  }
69
69
  function O(t) {
70
- b.value = !0;
70
+ E.value = !0;
71
71
  const n = document.querySelector(
72
72
  `.m-fullscreen-img-instance.${s.openInstanceClass}`
73
73
  );
74
74
  if (n) {
75
75
  const o = N(), i = o.indexOf(n), m = t === "next" ? i + 1 : i - 1, d = o[ne(o, m)];
76
- z.value = d, d && se(n, d), r(t), A.value = !1, y.value = !0, Ee(() => A.value === !0, () => {
77
- b.value = !1, c.value ? R() : p();
76
+ z.value = d, d && se(n, d), r(t), A.value = !1, y.value = !0, Ie(() => A.value === !0, () => {
77
+ E.value = !1, c.value ? R() : p();
78
78
  }, {
79
79
  expectedValue: !0,
80
80
  interval: 100,
@@ -95,7 +95,7 @@ const xe = ["onKeypress"], ke = { class: "m-fullscreen-img-scroller" }, Ae = ["s
95
95
  }
96
96
  function V(t) {
97
97
  var o;
98
- v.running = !0, b.value = !1;
98
+ v.running = !0, E.value = !1;
99
99
  const n = (o = a.value) == null ? void 0 : o.animate(t, {
100
100
  duration: s.animation.duration,
101
101
  easing: s.animation.easing
@@ -193,8 +193,8 @@ const xe = ["onKeypress"], ke = { class: "m-fullscreen-img-scroller" }, Ae = ["s
193
193
  role: "button",
194
194
  class: "m-fullscreen-img m-reset-css",
195
195
  tabindex: "0",
196
- onClick: h(E, ["stop"]),
197
- onKeypress: ge(h(E, ["prevent"]), ["esc"])
196
+ onClick: h(I, ["stop"]),
197
+ onKeypress: ge(h(I, ["prevent"]), ["esc"])
198
198
  }, [
199
199
  w.value && C.value ? (H(), $("button", {
200
200
  key: 0,
@@ -202,7 +202,7 @@ const xe = ["onKeypress"], ke = { class: "m-fullscreen-img-scroller" }, Ae = ["s
202
202
  class: "m-fullscreen-btn --next",
203
203
  onClick: n[0] || (n[0] = h((o) => O("next"), ["stop"]))
204
204
  }, [
205
- I(_(g), { class: "maz-rotate-180" })
205
+ b(_(g), { class: "maz-rotate-180" })
206
206
  ])) : Y("", !0),
207
207
  w.value && C.value ? (H(), $("button", {
208
208
  key: 1,
@@ -210,14 +210,14 @@ const xe = ["onKeypress"], ke = { class: "m-fullscreen-img-scroller" }, Ae = ["s
210
210
  class: "m-fullscreen-btn --previous",
211
211
  onClick: n[1] || (n[1] = h((o) => O("previous"), ["stop"]))
212
212
  }, [
213
- I(_(g))
213
+ b(_(g))
214
214
  ])) : Y("", !0),
215
215
  B("button", {
216
216
  type: "button",
217
217
  class: "m-fullscreen-btn --close",
218
- onClick: E
218
+ onClick: I
219
219
  }, [
220
- I(_(k))
220
+ b(_(k))
221
221
  ]),
222
222
  B("div", ke, [
223
223
  B("img", {
@@ -230,13 +230,13 @@ const xe = ["onKeypress"], ke = { class: "m-fullscreen-img-scroller" }, Ae = ["s
230
230
  onLoad: Q,
231
231
  onClick: n[2] || (n[2] = h((o) => t.zoom && oe(), ["stop"]))
232
232
  }, null, 42, Ae),
233
- we(I(be, { class: "m-fullscreen-img-loader" }, null, 512), [
233
+ we(b(Ee, { class: "m-fullscreen-img-loader" }, null, 512), [
234
234
  [Le, y.value]
235
235
  ])
236
236
  ])
237
237
  ], 40, xe));
238
238
  }
239
- }), ze = /* @__PURE__ */ Ie(Ce, [["__scopeId", "data-v-3b977d1e"]]), U = "m-fullscreen-is-open";
239
+ }), ze = /* @__PURE__ */ be(Ce, [["__scopeId", "data-v-9d1598d9"]]), U = "m-fullscreen-is-open";
240
240
  class Pe {
241
241
  constructor() {
242
242
  f(this, "options");
@@ -326,4 +326,4 @@ const Be = {
326
326
  export {
327
327
  Be as d
328
328
  };
329
- //# sourceMappingURL=fullscreen-img.directive.CrLLYi0D.mjs.map
329
+ //# sourceMappingURL=fullscreen-img.directive.CEBhPyiD.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fullscreen-img.directive.CEBhPyiD.mjs","sources":["../../src/directives/vFullscreenImg/MazFullscreenImg.vue","../../src/directives/vFullscreenImg/fullscreen-img.handler.ts","../../src/directives/vFullscreenImg/fullscreen-img.directive.ts"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { HTMLAttributes } from 'vue'\nimport { computed, defineAsyncComponent, onBeforeUnmount, onMounted, reactive, ref, watch } from 'vue'\nimport MazSpinner from '../../components/MazSpinner.vue'\n\nimport { checkAvailability } from '../../helpers/checkAvailability'\n\nconst props = withDefaults(defineProps<MazFullscreenImgProps>(), {\n zoom: true,\n offset: undefined,\n destroy: undefined,\n alt: undefined,\n animation: () => ({\n duration: 300,\n easing: 'ease-in-out',\n }),\n clickedElementBounds: undefined,\n openInstanceClass: 'm-fullscreen-img-instance',\n})\n\nconst emits = defineEmits(['close', 'previous', 'next', 'before-close'])\n\nconst XMark = defineAsyncComponent(() => import('../../../icons/x-mark.svg'))\nconst ChevronLeft = defineAsyncComponent(() => import('../../../icons/chevron-left.svg'))\n\nexport interface MazFullscreenImgProps {\n src: string\n clickedElementBounds?: {\n top: number\n left: number\n height: number\n width: number\n }\n offset?: number\n animation?: {\n duration?: number\n easing?: string\n }\n openInstanceClass?: string\n clickedElement: HTMLElement\n destroy?: () => void\n alt?: string | null\n zoom?: boolean\n}\n\nconst imageLoaded = ref(false)\nconst showLoader = ref(false)\nconst loadedOnce = ref(false)\nconst hasMultipleInstances = ref(false)\nconst isZoomed = ref(false)\nconst animationState = reactive({\n running: false,\n ended: false,\n})\n\nconst currentClickedElement = ref(props.clickedElement)\nconst currentClickedElementBounds = computed(() => props.clickedElement.getBoundingClientRect())\nconst isLandscapeImage = ref()\n\nconst currentSrc = ref(props.src)\nconst currentAlt = ref<string | null | undefined>(props.alt)\n\nconst FullscreenImgElement = ref<HTMLDivElement>()\nconst ImgElement = ref<HTMLImageElement>()\nconst hideImage = ref(true)\n\nconst imageZoomClasses = computed<HTMLAttributes['class']>(() => {\n return {\n '--is-zoomed': isZoomed.value,\n '--invisible': hideImage.value,\n '--absolute': !isZoomed.value,\n }\n})\n\nfunction onImageLoaded() {\n if (ImgElement.value) {\n isLandscapeImage.value = ImgElement.value?.naturalWidth > ImgElement.value?.naturalHeight\n }\n\n imageLoaded.value = true\n showLoader.value = false\n loadedOnce.value = true\n}\n\nwatch(\n loadedOnce,\n (value) => {\n if (value) {\n openFullscreen()\n }\n },\n { immediate: true },\n)\n\nfunction close() {\n emits('before-close')\n closeFullscreen()\n}\n\nfunction keydownLister(e: KeyboardEvent) {\n if (e.key === 'Escape') {\n e.preventDefault()\n close()\n }\n\n if (e.key === 'ArrowLeft' || e.key === 'ArrowRight') {\n e.preventDefault()\n nextPreviousImage(e.key === 'ArrowRight' ? 'next' : 'previous')\n }\n}\n\nfunction addClassToDocument() {\n document.documentElement.classList.add('--m-fullscreen-open')\n}\n\nfunction removeClassFromDocument() {\n document.documentElement.classList.remove('--m-fullscreen-open')\n}\n\nfunction getAllInstances(): HTMLElement[] {\n return [...document.querySelectorAll('.m-fullscreen-img-instance')] as HTMLElement[]\n}\n\nfunction getNewInstanceIndex(allInstances: HTMLElement[], newInstanceIndex: number): number {\n if (newInstanceIndex < 0) {\n return allInstances.length - 1\n }\n if (newInstanceIndex >= allInstances.length) {\n return 0\n }\n return newInstanceIndex\n}\n\nfunction useNextInstance(currentInstance: HTMLElement, nextInstance: HTMLElement) {\n currentInstance.classList.remove(props.openInstanceClass)\n nextInstance.classList.add(props.openInstanceClass)\n\n const src: string | null = nextInstance.getAttribute('data-src')\n const alt: string | null = nextInstance.getAttribute('data-alt')\n\n currentAlt.value = alt\n currentSrc.value = src ?? currentSrc.value\n}\n\nfunction nextPreviousImage(which: 'next' | 'previous'): void {\n hideImage.value = true\n\n const currentInstance: HTMLElement | null = document.querySelector(\n `.m-fullscreen-img-instance.${props.openInstanceClass}`,\n )\n\n if (currentInstance) {\n const allInstances = getAllInstances()\n const currentInstanceIndex = allInstances.indexOf(currentInstance)\n const newInstanceIndex\n = which === 'next' ? currentInstanceIndex + 1 : currentInstanceIndex - 1\n\n const nextInstance = allInstances[getNewInstanceIndex(allInstances, newInstanceIndex)]\n currentClickedElement.value = nextInstance\n\n if (nextInstance) {\n useNextInstance(currentInstance, nextInstance)\n }\n\n emits(which)\n\n imageLoaded.value = false\n showLoader.value = true\n\n checkAvailability(() => imageLoaded.value === true, () => {\n hideImage.value = false\n if (isZoomed.value) {\n setZoomStyles()\n }\n else {\n setEndAnimationStyles()\n }\n }, {\n expectedValue: true,\n interval: 100,\n maxAttempts: 50,\n })\n }\n}\n\nfunction setZoomStyles() {\n const imgElement = ImgElement.value\n\n if (!imgElement) {\n console.error('[maz-ui](vFullscreenImg) ImgElement is not defined')\n return\n }\n\n imgElement.style.removeProperty('max-width')\n imgElement.style.removeProperty('max-height')\n imgElement?.style.removeProperty('top')\n imgElement?.style.removeProperty('left')\n\n if (!isLandscapeImage.value) {\n imgElement.style.width = `100vw`\n imgElement.style.removeProperty('height')\n }\n else {\n imgElement.style.height = `100vh`\n imgElement.style.removeProperty('width')\n }\n}\n\nfunction toggleZoom() {\n if (isZoomed.value) {\n isZoomed.value = !isZoomed.value\n setEndAnimationStyles()\n }\n else {\n isZoomed.value = !isZoomed.value\n setZoomStyles()\n }\n}\n\nfunction runAnimation(frames: Keyframe[] | PropertyIndexedKeyframes) {\n animationState.running = true\n hideImage.value = false\n\n const animation = ImgElement.value?.animate(frames, {\n duration: props.animation.duration,\n easing: props.animation.easing,\n })\n\n if (!animation) {\n console.error('[maz-ui](vFullscreenImg) animation is not defined')\n animationState.running = false\n animationState.ended = true\n return\n }\n\n return animation\n}\n\nfunction getPositionsOfClikedElement(offset = props.offset ?? 0) {\n const width = currentClickedElement.value.clientWidth || 1\n const height = currentClickedElement.value.clientHeight || 1\n\n const windowWidth = window.innerWidth\n const windowHeight = window.innerHeight\n\n const scale = Math.min(\n (windowWidth - 2 * offset) / width,\n (windowHeight - 2 * offset) / height,\n )\n\n const centerX = (windowWidth - width * scale) / 2\n const centerY = (windowHeight - height * scale) / 2\n\n return {\n centerX,\n centerY,\n width,\n height,\n scale,\n }\n}\n\nfunction getAnimationFrames({ trigger }: { trigger: 'open' | 'close' }) {\n const { width, height, scale, centerX, centerY } = getPositionsOfClikedElement()\n\n const { top, left, width: clickedElementWidth, height: clickedElementHeight } = currentClickedElementBounds.value\n\n const frames = [\n {\n top: `${top}px`,\n left: `${left}px`,\n width: `${clickedElementWidth}px`,\n height: `${clickedElementHeight}px`,\n opacity: 0,\n },\n {\n top: `${centerY}px`,\n left: `${centerX}px`,\n width: `${width * scale}px`,\n height: `${height * scale}px`,\n opacity: 1,\n },\n ]\n\n return {\n frames: trigger === 'open' ? frames : frames.reverse(),\n }\n}\n\nfunction setEndAnimationStyles() {\n const { height, width, scale } = getPositionsOfClikedElement()\n\n const finalStyles = isLandscapeImage.value\n ? {\n width: `${width * scale}px`,\n maxHeight: `${height * scale}px`,\n }\n : {\n height: `${height * scale}px`,\n maxWidth: `${width * scale}px`,\n }\n\n if (!ImgElement.value) {\n console.error('[maz-ui](vFullscreenImg) ImgElement is not defined')\n return\n }\n\n if (isLandscapeImage.value) {\n ImgElement.value.style.removeProperty('height')\n ImgElement.value.style.removeProperty('maxHeight')\n }\n else {\n ImgElement.value.style.removeProperty('width')\n ImgElement.value.style.removeProperty('maxWidth')\n }\n\n Object.assign(ImgElement.value.style, finalStyles)\n}\n\nfunction openFullscreen() {\n const { frames } = getAnimationFrames({\n trigger: 'open',\n })\n\n const openAnimation = runAnimation(frames)\n\n if (!openAnimation) {\n console.error('[maz-ui](vFullscreenImg) open animation is not defined')\n setEndAnimationStyles()\n return\n }\n\n openAnimation.onfinish = () => {\n setEndAnimationStyles()\n animationState.running = false\n animationState.ended = true\n }\n}\n\nfunction closeFullscreen() {\n const { frames } = getAnimationFrames({\n trigger: 'close',\n })\n\n const closeAnimation = runAnimation(frames)\n\n function onFinish() {\n emits('close')\n FullscreenImgElement.value?.remove()\n props.destroy?.()\n animationState.running = false\n animationState.ended = true\n }\n\n if (!closeAnimation) {\n console.error('[maz-ui](vFullscreenImg) close animation is not defined')\n onFinish()\n return\n }\n\n closeAnimation.onfinish = onFinish\n}\n\nfunction onResizeWindow() {\n if (!isZoomed.value) {\n setEndAnimationStyles()\n }\n}\n\nonMounted(() => {\n showLoader.value = true\n document.addEventListener('keydown', keydownLister)\n window.addEventListener('resize', onResizeWindow)\n addClassToDocument()\n hasMultipleInstances.value = getAllInstances().length > 1\n})\n\nonBeforeUnmount(() => {\n document.removeEventListener('keydown', keydownLister)\n window.removeEventListener('resize', onResizeWindow)\n removeClassFromDocument()\n})\n</script>\n\n<template>\n <div\n ref=\"FullscreenImgElement\"\n role=\"button\"\n class=\"m-fullscreen-img m-reset-css\"\n tabindex=\"0\"\n @click.stop=\"close\"\n @keypress.esc.prevent=\"close\"\n >\n <button\n v-if=\"loadedOnce && hasMultipleInstances\"\n type=\"button\"\n class=\"m-fullscreen-btn --next\"\n @click.stop=\"nextPreviousImage('next')\"\n >\n <ChevronLeft class=\"maz-rotate-180\" />\n </button>\n <button\n v-if=\"loadedOnce && hasMultipleInstances\"\n type=\"button\"\n class=\"m-fullscreen-btn --previous\"\n @click.stop=\"nextPreviousImage('previous')\"\n >\n <ChevronLeft />\n </button>\n\n <button type=\"button\" class=\"m-fullscreen-btn --close\" @click=\"close\">\n <XMark />\n </button>\n\n <div class=\"m-fullscreen-img-scroller\">\n <!-- eslint-disable-next-line vuejs-accessibility/no-static-element-interactions, vuejs-accessibility/click-events-have-key-events -->\n <img\n ref=\"ImgElement\"\n :src=\"currentSrc\"\n :alt=\"currentAlt ?? undefined\"\n tabindex=\"0\"\n :class=\"[imageZoomClasses]\"\n @load=\"onImageLoaded\"\n @click.stop=\"zoom && toggleZoom()\"\n >\n\n <MazSpinner v-show=\"showLoader\" class=\"m-fullscreen-img-loader\" />\n </div>\n </div>\n</template>\n\n<style lang=\"postcss\">\n html.--m-fullscreen-open {\n @apply maz-h-screen maz-overflow-hidden;\n}\n</style>\n\n<style lang=\"postcss\" scoped>\n .m-fullscreen-img {\n @apply maz-fixed maz-inset-0 maz-z-default-backdrop maz-h-screen maz-w-screen maz-items-center maz-bg-overlay maz-outline-none maz-backdrop-blur;\n\n .m-fullscreen-img-scroller {\n @apply maz-flex maz-h-screen maz-w-screen maz-overflow-auto maz-flex-center;\n }\n\n img {\n @apply maz-z-2 maz-outline-none maz-cursor-zoom-in maz-object-center maz-object-contain;\n\n &.--is-zoomed {\n @apply maz-cursor-zoom-out;\n }\n\n &.--invisible {\n @apply maz-invisible;\n }\n\n &.--absolute {\n @apply maz-absolute;\n }\n }\n\n .m-fullscreen-img-loader {\n @apply maz-absolute maz-text-2xl maz-z-15;\n }\n\n .m-fullscreen-btn {\n @apply maz-absolute maz-z-15 maz-flex maz-h-20 maz-w-[7%] maz-min-w-[5em] maz-cursor-pointer maz-p-4 maz-transition-colors maz-duration-200;\n\n svg {\n @apply maz-text-3xl maz-transition-transform maz-duration-300 maz-ease-in-out;\n }\n\n &:hover {\n svg {\n @apply maz-scale-150;\n }\n }\n\n &.--close {\n @apply maz-right-0 maz-top-0 maz-items-start maz-justify-end;\n }\n\n &.--previous {\n @apply maz-left-0 maz-top-1/2 maz-h-screen maz--translate-y-1/2 maz-transform maz-items-center maz-justify-start;\n }\n\n &.--next {\n @apply maz-right-0 maz-top-1/2 maz-h-screen maz--translate-y-1/2 maz-transform maz-items-center maz-justify-end;\n }\n }\n}\n</style>\n","import type { DirectiveBinding } from 'vue'\n\nimport type { MazFullscreenImgProps } from './MazFullscreenImg.vue'\nimport { mount } from '../../helpers/mountComponent'\nimport MazFullscreenImg from './MazFullscreenImg.vue'\n\nexport interface vFullscreenImgOptions {\n disabled?: boolean\n scaleOnHover?: boolean\n blurOnHover?: boolean\n zoom?: boolean\n offset?: number\n animation?: {\n duration?: number\n easing?: string\n }\n}\n\ninterface vFullscreenImgBindingOptions extends vFullscreenImgOptions {\n src: string\n alt?: string | null\n}\n\nexport type vFullscreenImgBindingValue = string | vFullscreenImgBindingOptions | undefined\n\nexport type vFullscreenImgBinding = DirectiveBinding<vFullscreenImgBindingValue>\n\nconst STATE_OPEN_CLASS = 'm-fullscreen-is-open'\n\nexport class FullscreenImgHandler {\n private options: vFullscreenImgBindingOptions\n private defaultOptions: vFullscreenImgOptions = {\n scaleOnHover: false,\n blurOnHover: false,\n disabled: false,\n zoom: true,\n offset: 80,\n animation: {\n duration: 300,\n easing: 'ease-in-out',\n },\n }\n\n private mouseEnterListener: () => void\n private mouseLeaveListener: () => void\n private renderPreviewListener: () => void\n\n private buildOptions(\n el: HTMLElement,\n binding: vFullscreenImgBinding,\n ): vFullscreenImgBindingOptions {\n const options\n = typeof binding.value === 'object' ? binding.value : { src: binding.value, alt: undefined }\n\n const src = options?.src ?? this.getImgSrc(el)\n const alt = options?.alt ?? this.getImgAlt(el)\n\n return {\n ...this.defaultOptions,\n ...options,\n src,\n alt,\n }\n }\n\n get allInstances(): HTMLElement[] {\n return [...document.querySelectorAll('.m-fullscreen-img-instance')] as HTMLElement[]\n }\n\n private getImgSrc(el: HTMLElement) {\n const imgSrc = this.options?.src || el.getAttribute('src') || el.getAttribute('data-src')\n\n if (!imgSrc) {\n throw new Error(\n '[maz-ui](fullscreen-img) src of image must be provided by `v-fullscreen=\"\"`, `v-fullscreen=\"{ src: \"\" }\"`, `src=\"\"` or `data-src=\"\"` atributes',\n )\n }\n\n return imgSrc\n }\n\n private getImgAlt(el: HTMLElement) {\n return this.options?.alt || el.getAttribute('alt') || el.getAttribute('data-alt')\n }\n\n public create(el: HTMLElement, binding: vFullscreenImgBinding) {\n this.options = this.buildOptions(el, binding)\n\n if (this.options.disabled)\n return\n\n el.style.cursor = 'move'\n\n if (this.options.scaleOnHover || this.options.blurOnHover) {\n el.style.transition = 'all 200ms ease-in-out'\n }\n\n /**\n * Set class & data attribute to use it with previous & next functions\n */\n el.classList.add('m-fullscreen-img-instance')\n\n el.setAttribute('data-src', this.getImgSrc(el))\n\n const alt = this.getImgAlt(el)\n if (alt) {\n el.setAttribute('data-alt', alt)\n }\n\n this.mouseEnterListener = () => this.mouseEnter(el)\n this.mouseLeaveListener = () => this.mouseLeave(el)\n this.renderPreviewListener = () => this.renderPreview(el)\n\n el.addEventListener('mouseenter', this.mouseEnterListener)\n el.addEventListener('mouseleave', this.mouseLeaveListener)\n el.addEventListener('click', this.renderPreviewListener)\n }\n\n public update(el: HTMLElement, binding: vFullscreenImgBinding): void {\n this.options = this.buildOptions(el, binding)\n }\n\n public remove(el: HTMLElement): void {\n el.removeEventListener('mouseenter', this.mouseEnterListener)\n el.removeEventListener('mouseleave', this.mouseLeaveListener)\n el.removeEventListener('click', this.renderPreviewListener)\n\n el.classList.remove('m-fullscreen-img-instance')\n\n el.style.cursor = ''\n }\n\n private renderPreview(el: HTMLElement) {\n el.classList.add(STATE_OPEN_CLASS)\n\n return mount<typeof MazFullscreenImg, MazFullscreenImgProps>(MazFullscreenImg, {\n props: {\n ...this.options,\n openInstanceClass: STATE_OPEN_CLASS,\n clickedElement: el,\n clickedElementBounds: el.getBoundingClientRect(),\n },\n addDestroyInProps: true,\n })\n }\n\n private mouseLeave(el: HTMLElement): void {\n if (this.options.scaleOnHover)\n el.style.transform = ''\n if (this.options.blurOnHover)\n el.style.filter = ''\n el.style.zIndex = ''\n }\n\n private mouseEnter(el: HTMLElement): void {\n el.style.zIndex = '1'\n if (this.options.scaleOnHover)\n el.style.transform = 'scale(1.04)'\n if (this.options.blurOnHover)\n el.style.filter = 'blur(3px)'\n }\n}\n","import type { ObjectDirective } from 'vue'\nimport { FullscreenImgHandler, type vFullscreenImgBindingValue } from './fullscreen-img.handler'\n\nlet instance: FullscreenImgHandler\n\nconst directive = {\n mounted(el: HTMLElement, binding) {\n instance = new FullscreenImgHandler()\n return instance.create(el, binding)\n },\n updated(el: HTMLElement, binding) {\n return instance.update(el, binding)\n },\n unmounted(el: HTMLElement) {\n return instance.remove(el)\n },\n} satisfies ObjectDirective<HTMLElement, vFullscreenImgBindingValue>\n\nexport { directive as vFullscreenImg }\n"],"names":["props","__props","emits","__emit","XMark","defineAsyncComponent","ChevronLeft","imageLoaded","ref","showLoader","loadedOnce","hasMultipleInstances","isZoomed","animationState","reactive","currentClickedElement","currentClickedElementBounds","computed","isLandscapeImage","currentSrc","currentAlt","FullscreenImgElement","ImgElement","hideImage","imageZoomClasses","onImageLoaded","_a","_b","watch","value","openFullscreen","close","closeFullscreen","keydownLister","e","nextPreviousImage","addClassToDocument","removeClassFromDocument","getAllInstances","getNewInstanceIndex","allInstances","newInstanceIndex","useNextInstance","currentInstance","nextInstance","src","alt","which","currentInstanceIndex","checkAvailability","setZoomStyles","setEndAnimationStyles","imgElement","toggleZoom","runAnimation","frames","animation","getPositionsOfClikedElement","offset","width","height","windowWidth","windowHeight","scale","centerX","centerY","getAnimationFrames","trigger","top","left","clickedElementWidth","clickedElementHeight","finalStyles","openAnimation","closeAnimation","onFinish","onResizeWindow","onMounted","onBeforeUnmount","STATE_OPEN_CLASS","FullscreenImgHandler","__publicField","el","binding","options","imgSrc","mount","MazFullscreenImg","instance","directive"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";require('../assets/fullscreen-img.hjNozahA.css');var ee=Object.defineProperty;var te=(a,e,r)=>e in a?ee(a,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):a[e]=r;var v=(a,e,r)=>te(a,typeof e!="symbol"?e+"":e,r);const ne=require("../helpers/mountComponent.cjs"),n=require("vue"),se=require("../components/MazSpinner.cjs"),re=require("../helpers/checkAvailability.cjs"),oe=require("./_plugin-vue_export-helper.BHFhmbuH.cjs"),ie=["onKeypress"],le={class:"m-fullscreen-img-scroller"},ae=["src","alt"],ue=n.defineComponent({__name:"MazFullscreenImg",props:{src:{},clickedElementBounds:{default:void 0},offset:{default:void 0},animation:{default:()=>({duration:300,easing:"ease-in-out"})},openInstanceClass:{default:"m-fullscreen-img-instance"},clickedElement:{},destroy:{type:Function,default:void 0},alt:{default:void 0},zoom:{type:Boolean,default:!0}},emits:["close","previous","next","before-close"],setup(a,{emit:e}){const r=a,i=e,I=n.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./x-mark.Dz-FO7Es.cjs"))),h=n.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./chevron-left.BYUi62el.cjs"))),k=n.ref(!1),g=n.ref(!1),y=n.ref(!1),x=n.ref(!1),c=n.ref(!1),f=n.reactive({running:!1,ended:!1}),A=n.ref(r.clickedElement),D=n.computed(()=>r.clickedElement.getBoundingClientRect()),w=n.ref(),C=n.ref(r.src),_=n.ref(r.alt),H=n.ref(),u=n.ref(),L=n.ref(!0),R=n.computed(()=>({"--is-zoomed":c.value,"--invisible":L.value,"--absolute":!c.value}));function Z(){var t,s;u.value&&(w.value=((t=u.value)==null?void 0:t.naturalWidth)>((s=u.value)==null?void 0:s.naturalHeight)),k.value=!0,g.value=!1,y.value=!0}n.watch(y,t=>{t&&U()},{immediate:!0});function E(){i("before-close"),G()}function S(t){t.key==="Escape"&&(t.preventDefault(),E()),(t.key==="ArrowLeft"||t.key==="ArrowRight")&&(t.preventDefault(),P(t.key==="ArrowRight"?"next":"previous"))}function K(){document.documentElement.classList.add("--m-fullscreen-open")}function T(){document.documentElement.classList.remove("--m-fullscreen-open")}function F(){return[...document.querySelectorAll(".m-fullscreen-img-instance")]}function X(t,s){return s<0?t.length-1:s>=t.length?0:s}function j(t,s){t.classList.remove(r.openInstanceClass),s.classList.add(r.openInstanceClass);const o=s.getAttribute("data-src"),l=s.getAttribute("data-alt");_.value=l,C.value=o??C.value}function P(t){L.value=!0;const s=document.querySelector(`.m-fullscreen-img-instance.${r.openInstanceClass}`);if(s){const o=F(),l=o.indexOf(s),m=t==="next"?l+1:l-1,d=o[X(o,m)];A.value=d,d&&j(s,d),i(t),k.value=!1,g.value=!0,re.checkAvailability(()=>k.value===!0,()=>{L.value=!1,c.value?$():p()},{expectedValue:!0,interval:100,maxAttempts:50})}}function $(){const t=u.value;if(!t){console.error("[maz-ui](vFullscreenImg) ImgElement is not defined");return}t.style.removeProperty("max-width"),t.style.removeProperty("max-height"),t==null||t.style.removeProperty("top"),t==null||t.style.removeProperty("left"),w.value?(t.style.height="100vh",t.style.removeProperty("width")):(t.style.width="100vw",t.style.removeProperty("height"))}function Y(){c.value?(c.value=!c.value,p()):(c.value=!c.value,$())}function B(t){var o;f.running=!0,L.value=!1;const s=(o=u.value)==null?void 0:o.animate(t,{duration:r.animation.duration,easing:r.animation.easing});if(!s){console.error("[maz-ui](vFullscreenImg) animation is not defined"),f.running=!1,f.ended=!0;return}return s}function M(t=r.offset??0){const s=A.value.clientWidth||1,o=A.value.clientHeight||1,l=window.innerWidth,m=window.innerHeight,d=Math.min((l-2*t)/s,(m-2*t)/o),z=(l-s*d)/2,O=(m-o*d)/2;return{centerX:z,centerY:O,width:s,height:o,scale:d}}function N({trigger:t}){const{width:s,height:o,scale:l,centerX:m,centerY:d}=M(),{top:z,left:O,width:J,height:Q}=D.value,q=[{top:`${z}px`,left:`${O}px`,width:`${J}px`,height:`${Q}px`,opacity:0},{top:`${d}px`,left:`${m}px`,width:`${s*l}px`,height:`${o*l}px`,opacity:1}];return{frames:t==="open"?q:q.reverse()}}function p(){const{height:t,width:s,scale:o}=M(),l=w.value?{width:`${s*o}px`,maxHeight:`${t*o}px`}:{height:`${t*o}px`,maxWidth:`${s*o}px`};if(!u.value){console.error("[maz-ui](vFullscreenImg) ImgElement is not defined");return}w.value?(u.value.style.removeProperty("height"),u.value.style.removeProperty("maxHeight")):(u.value.style.removeProperty("width"),u.value.style.removeProperty("maxWidth")),Object.assign(u.value.style,l)}function U(){const{frames:t}=N({trigger:"open"}),s=B(t);if(!s){console.error("[maz-ui](vFullscreenImg) open animation is not defined"),p();return}s.onfinish=()=>{p(),f.running=!1,f.ended=!0}}function G(){const{frames:t}=N({trigger:"close"}),s=B(t);function o(){var l,m;i("close"),(l=H.value)==null||l.remove(),(m=r.destroy)==null||m.call(r),f.running=!1,f.ended=!0}if(!s){console.error("[maz-ui](vFullscreenImg) close animation is not defined"),o();return}s.onfinish=o}function V(){c.value||p()}return n.onMounted(()=>{g.value=!0,document.addEventListener("keydown",S),window.addEventListener("resize",V),K(),x.value=F().length>1}),n.onBeforeUnmount(()=>{document.removeEventListener("keydown",S),window.removeEventListener("resize",V),T()}),(t,s)=>(n.openBlock(),n.createElementBlock("div",{ref_key:"FullscreenImgElement",ref:H,role:"button",class:"m-fullscreen-img m-reset-css",tabindex:"0",onClick:n.withModifiers(E,["stop"]),onKeypress:n.withKeys(n.withModifiers(E,["prevent"]),["esc"])},[y.value&&x.value?(n.openBlock(),n.createElementBlock("button",{key:0,type:"button",class:"m-fullscreen-btn --next",onClick:s[0]||(s[0]=n.withModifiers(o=>P("next"),["stop"]))},[n.createVNode(n.unref(h),{class:"maz-rotate-180"})])):n.createCommentVNode("",!0),y.value&&x.value?(n.openBlock(),n.createElementBlock("button",{key:1,type:"button",class:"m-fullscreen-btn --previous",onClick:s[1]||(s[1]=n.withModifiers(o=>P("previous"),["stop"]))},[n.createVNode(n.unref(h))])):n.createCommentVNode("",!0),n.createElementVNode("button",{type:"button",class:"m-fullscreen-btn --close",onClick:E},[n.createVNode(n.unref(I))]),n.createElementVNode("div",le,[n.createElementVNode("img",{ref_key:"ImgElement",ref:u,src:C.value,alt:_.value??void 0,tabindex:"0",class:n.normalizeClass([R.value]),onLoad:Z,onClick:s[2]||(s[2]=n.withModifiers(o=>t.zoom&&Y(),["stop"]))},null,42,ae),n.withDirectives(n.createVNode(se.default,{class:"m-fullscreen-img-loader"},null,512),[[n.vShow,g.value]])])],40,ie))}}),ce=oe._export_sfc(ue,[["__scopeId","data-v-3b977d1e"]]),W="m-fullscreen-is-open";class me{constructor(){v(this,"options");v(this,"defaultOptions",{scaleOnHover:!1,blurOnHover:!1,disabled:!1,zoom:!0,offset:80,animation:{duration:300,easing:"ease-in-out"}});v(this,"mouseEnterListener");v(this,"mouseLeaveListener");v(this,"renderPreviewListener")}buildOptions(e,r){const i=typeof r.value=="object"?r.value:{src:r.value,alt:void 0},I=(i==null?void 0:i.src)??this.getImgSrc(e),h=(i==null?void 0:i.alt)??this.getImgAlt(e);return{...this.defaultOptions,...i,src:I,alt:h}}get allInstances(){return[...document.querySelectorAll(".m-fullscreen-img-instance")]}getImgSrc(e){var i;const r=((i=this.options)==null?void 0:i.src)||e.getAttribute("src")||e.getAttribute("data-src");if(!r)throw new Error('[maz-ui](fullscreen-img) src of image must be provided by `v-fullscreen=""`, `v-fullscreen="{ src: "" }"`, `src=""` or `data-src=""` atributes');return r}getImgAlt(e){var r;return((r=this.options)==null?void 0:r.alt)||e.getAttribute("alt")||e.getAttribute("data-alt")}create(e,r){if(this.options=this.buildOptions(e,r),this.options.disabled)return;e.style.cursor="move",(this.options.scaleOnHover||this.options.blurOnHover)&&(e.style.transition="all 200ms ease-in-out"),e.classList.add("m-fullscreen-img-instance"),e.setAttribute("data-src",this.getImgSrc(e));const i=this.getImgAlt(e);i&&e.setAttribute("data-alt",i),this.mouseEnterListener=()=>this.mouseEnter(e),this.mouseLeaveListener=()=>this.mouseLeave(e),this.renderPreviewListener=()=>this.renderPreview(e),e.addEventListener("mouseenter",this.mouseEnterListener),e.addEventListener("mouseleave",this.mouseLeaveListener),e.addEventListener("click",this.renderPreviewListener)}update(e,r){this.options=this.buildOptions(e,r)}remove(e){e.removeEventListener("mouseenter",this.mouseEnterListener),e.removeEventListener("mouseleave",this.mouseLeaveListener),e.removeEventListener("click",this.renderPreviewListener),e.classList.remove("m-fullscreen-img-instance"),e.style.cursor=""}renderPreview(e){return e.classList.add(W),ne.mount(ce,{props:{...this.options,openInstanceClass:W,clickedElement:e,clickedElementBounds:e.getBoundingClientRect()},addDestroyInProps:!0})}mouseLeave(e){this.options.scaleOnHover&&(e.style.transform=""),this.options.blurOnHover&&(e.style.filter=""),e.style.zIndex=""}mouseEnter(e){e.style.zIndex="1",this.options.scaleOnHover&&(e.style.transform="scale(1.04)"),this.options.blurOnHover&&(e.style.filter="blur(3px)")}}let b;const de={mounted(a,e){return b=new me,b.create(a,e)},updated(a,e){return b.update(a,e)},unmounted(a){return b.remove(a)}};exports.directive=de;
2
- //# sourceMappingURL=fullscreen-img.directive.CeREtf7H.cjs.map
1
+ "use strict";require('../assets/fullscreen-img.Dnt1uj_5.css');var ee=Object.defineProperty;var te=(a,e,r)=>e in a?ee(a,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):a[e]=r;var v=(a,e,r)=>te(a,typeof e!="symbol"?e+"":e,r);const ne=require("../helpers/mountComponent.cjs"),n=require("vue"),se=require("../components/MazSpinner.cjs"),re=require("../helpers/checkAvailability.cjs"),oe=require("./_plugin-vue_export-helper.BHFhmbuH.cjs"),ie=["onKeypress"],le={class:"m-fullscreen-img-scroller"},ae=["src","alt"],ue=n.defineComponent({__name:"MazFullscreenImg",props:{src:{},clickedElementBounds:{default:void 0},offset:{default:void 0},animation:{default:()=>({duration:300,easing:"ease-in-out"})},openInstanceClass:{default:"m-fullscreen-img-instance"},clickedElement:{},destroy:{type:Function,default:void 0},alt:{default:void 0},zoom:{type:Boolean,default:!0}},emits:["close","previous","next","before-close"],setup(a,{emit:e}){const r=a,i=e,I=n.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./x-mark.Dz-FO7Es.cjs"))),h=n.defineAsyncComponent(()=>Promise.resolve().then(()=>require("./chevron-left.BYUi62el.cjs"))),k=n.ref(!1),g=n.ref(!1),y=n.ref(!1),x=n.ref(!1),c=n.ref(!1),f=n.reactive({running:!1,ended:!1}),A=n.ref(r.clickedElement),D=n.computed(()=>r.clickedElement.getBoundingClientRect()),w=n.ref(),C=n.ref(r.src),_=n.ref(r.alt),H=n.ref(),u=n.ref(),L=n.ref(!0),R=n.computed(()=>({"--is-zoomed":c.value,"--invisible":L.value,"--absolute":!c.value}));function Z(){var t,s;u.value&&(w.value=((t=u.value)==null?void 0:t.naturalWidth)>((s=u.value)==null?void 0:s.naturalHeight)),k.value=!0,g.value=!1,y.value=!0}n.watch(y,t=>{t&&U()},{immediate:!0});function E(){i("before-close"),G()}function S(t){t.key==="Escape"&&(t.preventDefault(),E()),(t.key==="ArrowLeft"||t.key==="ArrowRight")&&(t.preventDefault(),P(t.key==="ArrowRight"?"next":"previous"))}function K(){document.documentElement.classList.add("--m-fullscreen-open")}function T(){document.documentElement.classList.remove("--m-fullscreen-open")}function F(){return[...document.querySelectorAll(".m-fullscreen-img-instance")]}function X(t,s){return s<0?t.length-1:s>=t.length?0:s}function j(t,s){t.classList.remove(r.openInstanceClass),s.classList.add(r.openInstanceClass);const o=s.getAttribute("data-src"),l=s.getAttribute("data-alt");_.value=l,C.value=o??C.value}function P(t){L.value=!0;const s=document.querySelector(`.m-fullscreen-img-instance.${r.openInstanceClass}`);if(s){const o=F(),l=o.indexOf(s),m=t==="next"?l+1:l-1,d=o[X(o,m)];A.value=d,d&&j(s,d),i(t),k.value=!1,g.value=!0,re.checkAvailability(()=>k.value===!0,()=>{L.value=!1,c.value?$():p()},{expectedValue:!0,interval:100,maxAttempts:50})}}function $(){const t=u.value;if(!t){console.error("[maz-ui](vFullscreenImg) ImgElement is not defined");return}t.style.removeProperty("max-width"),t.style.removeProperty("max-height"),t==null||t.style.removeProperty("top"),t==null||t.style.removeProperty("left"),w.value?(t.style.height="100vh",t.style.removeProperty("width")):(t.style.width="100vw",t.style.removeProperty("height"))}function Y(){c.value?(c.value=!c.value,p()):(c.value=!c.value,$())}function B(t){var o;f.running=!0,L.value=!1;const s=(o=u.value)==null?void 0:o.animate(t,{duration:r.animation.duration,easing:r.animation.easing});if(!s){console.error("[maz-ui](vFullscreenImg) animation is not defined"),f.running=!1,f.ended=!0;return}return s}function M(t=r.offset??0){const s=A.value.clientWidth||1,o=A.value.clientHeight||1,l=window.innerWidth,m=window.innerHeight,d=Math.min((l-2*t)/s,(m-2*t)/o),z=(l-s*d)/2,O=(m-o*d)/2;return{centerX:z,centerY:O,width:s,height:o,scale:d}}function N({trigger:t}){const{width:s,height:o,scale:l,centerX:m,centerY:d}=M(),{top:z,left:O,width:J,height:Q}=D.value,q=[{top:`${z}px`,left:`${O}px`,width:`${J}px`,height:`${Q}px`,opacity:0},{top:`${d}px`,left:`${m}px`,width:`${s*l}px`,height:`${o*l}px`,opacity:1}];return{frames:t==="open"?q:q.reverse()}}function p(){const{height:t,width:s,scale:o}=M(),l=w.value?{width:`${s*o}px`,maxHeight:`${t*o}px`}:{height:`${t*o}px`,maxWidth:`${s*o}px`};if(!u.value){console.error("[maz-ui](vFullscreenImg) ImgElement is not defined");return}w.value?(u.value.style.removeProperty("height"),u.value.style.removeProperty("maxHeight")):(u.value.style.removeProperty("width"),u.value.style.removeProperty("maxWidth")),Object.assign(u.value.style,l)}function U(){const{frames:t}=N({trigger:"open"}),s=B(t);if(!s){console.error("[maz-ui](vFullscreenImg) open animation is not defined"),p();return}s.onfinish=()=>{p(),f.running=!1,f.ended=!0}}function G(){const{frames:t}=N({trigger:"close"}),s=B(t);function o(){var l,m;i("close"),(l=H.value)==null||l.remove(),(m=r.destroy)==null||m.call(r),f.running=!1,f.ended=!0}if(!s){console.error("[maz-ui](vFullscreenImg) close animation is not defined"),o();return}s.onfinish=o}function V(){c.value||p()}return n.onMounted(()=>{g.value=!0,document.addEventListener("keydown",S),window.addEventListener("resize",V),K(),x.value=F().length>1}),n.onBeforeUnmount(()=>{document.removeEventListener("keydown",S),window.removeEventListener("resize",V),T()}),(t,s)=>(n.openBlock(),n.createElementBlock("div",{ref_key:"FullscreenImgElement",ref:H,role:"button",class:"m-fullscreen-img m-reset-css",tabindex:"0",onClick:n.withModifiers(E,["stop"]),onKeypress:n.withKeys(n.withModifiers(E,["prevent"]),["esc"])},[y.value&&x.value?(n.openBlock(),n.createElementBlock("button",{key:0,type:"button",class:"m-fullscreen-btn --next",onClick:s[0]||(s[0]=n.withModifiers(o=>P("next"),["stop"]))},[n.createVNode(n.unref(h),{class:"maz-rotate-180"})])):n.createCommentVNode("",!0),y.value&&x.value?(n.openBlock(),n.createElementBlock("button",{key:1,type:"button",class:"m-fullscreen-btn --previous",onClick:s[1]||(s[1]=n.withModifiers(o=>P("previous"),["stop"]))},[n.createVNode(n.unref(h))])):n.createCommentVNode("",!0),n.createElementVNode("button",{type:"button",class:"m-fullscreen-btn --close",onClick:E},[n.createVNode(n.unref(I))]),n.createElementVNode("div",le,[n.createElementVNode("img",{ref_key:"ImgElement",ref:u,src:C.value,alt:_.value??void 0,tabindex:"0",class:n.normalizeClass([R.value]),onLoad:Z,onClick:s[2]||(s[2]=n.withModifiers(o=>t.zoom&&Y(),["stop"]))},null,42,ae),n.withDirectives(n.createVNode(se.default,{class:"m-fullscreen-img-loader"},null,512),[[n.vShow,g.value]])])],40,ie))}}),ce=oe._export_sfc(ue,[["__scopeId","data-v-9d1598d9"]]),W="m-fullscreen-is-open";class me{constructor(){v(this,"options");v(this,"defaultOptions",{scaleOnHover:!1,blurOnHover:!1,disabled:!1,zoom:!0,offset:80,animation:{duration:300,easing:"ease-in-out"}});v(this,"mouseEnterListener");v(this,"mouseLeaveListener");v(this,"renderPreviewListener")}buildOptions(e,r){const i=typeof r.value=="object"?r.value:{src:r.value,alt:void 0},I=(i==null?void 0:i.src)??this.getImgSrc(e),h=(i==null?void 0:i.alt)??this.getImgAlt(e);return{...this.defaultOptions,...i,src:I,alt:h}}get allInstances(){return[...document.querySelectorAll(".m-fullscreen-img-instance")]}getImgSrc(e){var i;const r=((i=this.options)==null?void 0:i.src)||e.getAttribute("src")||e.getAttribute("data-src");if(!r)throw new Error('[maz-ui](fullscreen-img) src of image must be provided by `v-fullscreen=""`, `v-fullscreen="{ src: "" }"`, `src=""` or `data-src=""` atributes');return r}getImgAlt(e){var r;return((r=this.options)==null?void 0:r.alt)||e.getAttribute("alt")||e.getAttribute("data-alt")}create(e,r){if(this.options=this.buildOptions(e,r),this.options.disabled)return;e.style.cursor="move",(this.options.scaleOnHover||this.options.blurOnHover)&&(e.style.transition="all 200ms ease-in-out"),e.classList.add("m-fullscreen-img-instance"),e.setAttribute("data-src",this.getImgSrc(e));const i=this.getImgAlt(e);i&&e.setAttribute("data-alt",i),this.mouseEnterListener=()=>this.mouseEnter(e),this.mouseLeaveListener=()=>this.mouseLeave(e),this.renderPreviewListener=()=>this.renderPreview(e),e.addEventListener("mouseenter",this.mouseEnterListener),e.addEventListener("mouseleave",this.mouseLeaveListener),e.addEventListener("click",this.renderPreviewListener)}update(e,r){this.options=this.buildOptions(e,r)}remove(e){e.removeEventListener("mouseenter",this.mouseEnterListener),e.removeEventListener("mouseleave",this.mouseLeaveListener),e.removeEventListener("click",this.renderPreviewListener),e.classList.remove("m-fullscreen-img-instance"),e.style.cursor=""}renderPreview(e){return e.classList.add(W),ne.mount(ce,{props:{...this.options,openInstanceClass:W,clickedElement:e,clickedElementBounds:e.getBoundingClientRect()},addDestroyInProps:!0})}mouseLeave(e){this.options.scaleOnHover&&(e.style.transform=""),this.options.blurOnHover&&(e.style.filter=""),e.style.zIndex=""}mouseEnter(e){e.style.zIndex="1",this.options.scaleOnHover&&(e.style.transform="scale(1.04)"),this.options.blurOnHover&&(e.style.filter="blur(3px)")}}let b;const de={mounted(a,e){return b=new me,b.create(a,e)},updated(a,e){return b.update(a,e)},unmounted(a){return b.remove(a)}};exports.directive=de;
2
+ //# sourceMappingURL=fullscreen-img.directive.CK-8DToy.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fullscreen-img.directive.CK-8DToy.cjs","sources":["../../src/directives/vFullscreenImg/MazFullscreenImg.vue","../../src/directives/vFullscreenImg/fullscreen-img.handler.ts","../../src/directives/vFullscreenImg/fullscreen-img.directive.ts"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { HTMLAttributes } from 'vue'\nimport { computed, defineAsyncComponent, onBeforeUnmount, onMounted, reactive, ref, watch } from 'vue'\nimport MazSpinner from '../../components/MazSpinner.vue'\n\nimport { checkAvailability } from '../../helpers/checkAvailability'\n\nconst props = withDefaults(defineProps<MazFullscreenImgProps>(), {\n zoom: true,\n offset: undefined,\n destroy: undefined,\n alt: undefined,\n animation: () => ({\n duration: 300,\n easing: 'ease-in-out',\n }),\n clickedElementBounds: undefined,\n openInstanceClass: 'm-fullscreen-img-instance',\n})\n\nconst emits = defineEmits(['close', 'previous', 'next', 'before-close'])\n\nconst XMark = defineAsyncComponent(() => import('../../../icons/x-mark.svg'))\nconst ChevronLeft = defineAsyncComponent(() => import('../../../icons/chevron-left.svg'))\n\nexport interface MazFullscreenImgProps {\n src: string\n clickedElementBounds?: {\n top: number\n left: number\n height: number\n width: number\n }\n offset?: number\n animation?: {\n duration?: number\n easing?: string\n }\n openInstanceClass?: string\n clickedElement: HTMLElement\n destroy?: () => void\n alt?: string | null\n zoom?: boolean\n}\n\nconst imageLoaded = ref(false)\nconst showLoader = ref(false)\nconst loadedOnce = ref(false)\nconst hasMultipleInstances = ref(false)\nconst isZoomed = ref(false)\nconst animationState = reactive({\n running: false,\n ended: false,\n})\n\nconst currentClickedElement = ref(props.clickedElement)\nconst currentClickedElementBounds = computed(() => props.clickedElement.getBoundingClientRect())\nconst isLandscapeImage = ref()\n\nconst currentSrc = ref(props.src)\nconst currentAlt = ref<string | null | undefined>(props.alt)\n\nconst FullscreenImgElement = ref<HTMLDivElement>()\nconst ImgElement = ref<HTMLImageElement>()\nconst hideImage = ref(true)\n\nconst imageZoomClasses = computed<HTMLAttributes['class']>(() => {\n return {\n '--is-zoomed': isZoomed.value,\n '--invisible': hideImage.value,\n '--absolute': !isZoomed.value,\n }\n})\n\nfunction onImageLoaded() {\n if (ImgElement.value) {\n isLandscapeImage.value = ImgElement.value?.naturalWidth > ImgElement.value?.naturalHeight\n }\n\n imageLoaded.value = true\n showLoader.value = false\n loadedOnce.value = true\n}\n\nwatch(\n loadedOnce,\n (value) => {\n if (value) {\n openFullscreen()\n }\n },\n { immediate: true },\n)\n\nfunction close() {\n emits('before-close')\n closeFullscreen()\n}\n\nfunction keydownLister(e: KeyboardEvent) {\n if (e.key === 'Escape') {\n e.preventDefault()\n close()\n }\n\n if (e.key === 'ArrowLeft' || e.key === 'ArrowRight') {\n e.preventDefault()\n nextPreviousImage(e.key === 'ArrowRight' ? 'next' : 'previous')\n }\n}\n\nfunction addClassToDocument() {\n document.documentElement.classList.add('--m-fullscreen-open')\n}\n\nfunction removeClassFromDocument() {\n document.documentElement.classList.remove('--m-fullscreen-open')\n}\n\nfunction getAllInstances(): HTMLElement[] {\n return [...document.querySelectorAll('.m-fullscreen-img-instance')] as HTMLElement[]\n}\n\nfunction getNewInstanceIndex(allInstances: HTMLElement[], newInstanceIndex: number): number {\n if (newInstanceIndex < 0) {\n return allInstances.length - 1\n }\n if (newInstanceIndex >= allInstances.length) {\n return 0\n }\n return newInstanceIndex\n}\n\nfunction useNextInstance(currentInstance: HTMLElement, nextInstance: HTMLElement) {\n currentInstance.classList.remove(props.openInstanceClass)\n nextInstance.classList.add(props.openInstanceClass)\n\n const src: string | null = nextInstance.getAttribute('data-src')\n const alt: string | null = nextInstance.getAttribute('data-alt')\n\n currentAlt.value = alt\n currentSrc.value = src ?? currentSrc.value\n}\n\nfunction nextPreviousImage(which: 'next' | 'previous'): void {\n hideImage.value = true\n\n const currentInstance: HTMLElement | null = document.querySelector(\n `.m-fullscreen-img-instance.${props.openInstanceClass}`,\n )\n\n if (currentInstance) {\n const allInstances = getAllInstances()\n const currentInstanceIndex = allInstances.indexOf(currentInstance)\n const newInstanceIndex\n = which === 'next' ? currentInstanceIndex + 1 : currentInstanceIndex - 1\n\n const nextInstance = allInstances[getNewInstanceIndex(allInstances, newInstanceIndex)]\n currentClickedElement.value = nextInstance\n\n if (nextInstance) {\n useNextInstance(currentInstance, nextInstance)\n }\n\n emits(which)\n\n imageLoaded.value = false\n showLoader.value = true\n\n checkAvailability(() => imageLoaded.value === true, () => {\n hideImage.value = false\n if (isZoomed.value) {\n setZoomStyles()\n }\n else {\n setEndAnimationStyles()\n }\n }, {\n expectedValue: true,\n interval: 100,\n maxAttempts: 50,\n })\n }\n}\n\nfunction setZoomStyles() {\n const imgElement = ImgElement.value\n\n if (!imgElement) {\n console.error('[maz-ui](vFullscreenImg) ImgElement is not defined')\n return\n }\n\n imgElement.style.removeProperty('max-width')\n imgElement.style.removeProperty('max-height')\n imgElement?.style.removeProperty('top')\n imgElement?.style.removeProperty('left')\n\n if (!isLandscapeImage.value) {\n imgElement.style.width = `100vw`\n imgElement.style.removeProperty('height')\n }\n else {\n imgElement.style.height = `100vh`\n imgElement.style.removeProperty('width')\n }\n}\n\nfunction toggleZoom() {\n if (isZoomed.value) {\n isZoomed.value = !isZoomed.value\n setEndAnimationStyles()\n }\n else {\n isZoomed.value = !isZoomed.value\n setZoomStyles()\n }\n}\n\nfunction runAnimation(frames: Keyframe[] | PropertyIndexedKeyframes) {\n animationState.running = true\n hideImage.value = false\n\n const animation = ImgElement.value?.animate(frames, {\n duration: props.animation.duration,\n easing: props.animation.easing,\n })\n\n if (!animation) {\n console.error('[maz-ui](vFullscreenImg) animation is not defined')\n animationState.running = false\n animationState.ended = true\n return\n }\n\n return animation\n}\n\nfunction getPositionsOfClikedElement(offset = props.offset ?? 0) {\n const width = currentClickedElement.value.clientWidth || 1\n const height = currentClickedElement.value.clientHeight || 1\n\n const windowWidth = window.innerWidth\n const windowHeight = window.innerHeight\n\n const scale = Math.min(\n (windowWidth - 2 * offset) / width,\n (windowHeight - 2 * offset) / height,\n )\n\n const centerX = (windowWidth - width * scale) / 2\n const centerY = (windowHeight - height * scale) / 2\n\n return {\n centerX,\n centerY,\n width,\n height,\n scale,\n }\n}\n\nfunction getAnimationFrames({ trigger }: { trigger: 'open' | 'close' }) {\n const { width, height, scale, centerX, centerY } = getPositionsOfClikedElement()\n\n const { top, left, width: clickedElementWidth, height: clickedElementHeight } = currentClickedElementBounds.value\n\n const frames = [\n {\n top: `${top}px`,\n left: `${left}px`,\n width: `${clickedElementWidth}px`,\n height: `${clickedElementHeight}px`,\n opacity: 0,\n },\n {\n top: `${centerY}px`,\n left: `${centerX}px`,\n width: `${width * scale}px`,\n height: `${height * scale}px`,\n opacity: 1,\n },\n ]\n\n return {\n frames: trigger === 'open' ? frames : frames.reverse(),\n }\n}\n\nfunction setEndAnimationStyles() {\n const { height, width, scale } = getPositionsOfClikedElement()\n\n const finalStyles = isLandscapeImage.value\n ? {\n width: `${width * scale}px`,\n maxHeight: `${height * scale}px`,\n }\n : {\n height: `${height * scale}px`,\n maxWidth: `${width * scale}px`,\n }\n\n if (!ImgElement.value) {\n console.error('[maz-ui](vFullscreenImg) ImgElement is not defined')\n return\n }\n\n if (isLandscapeImage.value) {\n ImgElement.value.style.removeProperty('height')\n ImgElement.value.style.removeProperty('maxHeight')\n }\n else {\n ImgElement.value.style.removeProperty('width')\n ImgElement.value.style.removeProperty('maxWidth')\n }\n\n Object.assign(ImgElement.value.style, finalStyles)\n}\n\nfunction openFullscreen() {\n const { frames } = getAnimationFrames({\n trigger: 'open',\n })\n\n const openAnimation = runAnimation(frames)\n\n if (!openAnimation) {\n console.error('[maz-ui](vFullscreenImg) open animation is not defined')\n setEndAnimationStyles()\n return\n }\n\n openAnimation.onfinish = () => {\n setEndAnimationStyles()\n animationState.running = false\n animationState.ended = true\n }\n}\n\nfunction closeFullscreen() {\n const { frames } = getAnimationFrames({\n trigger: 'close',\n })\n\n const closeAnimation = runAnimation(frames)\n\n function onFinish() {\n emits('close')\n FullscreenImgElement.value?.remove()\n props.destroy?.()\n animationState.running = false\n animationState.ended = true\n }\n\n if (!closeAnimation) {\n console.error('[maz-ui](vFullscreenImg) close animation is not defined')\n onFinish()\n return\n }\n\n closeAnimation.onfinish = onFinish\n}\n\nfunction onResizeWindow() {\n if (!isZoomed.value) {\n setEndAnimationStyles()\n }\n}\n\nonMounted(() => {\n showLoader.value = true\n document.addEventListener('keydown', keydownLister)\n window.addEventListener('resize', onResizeWindow)\n addClassToDocument()\n hasMultipleInstances.value = getAllInstances().length > 1\n})\n\nonBeforeUnmount(() => {\n document.removeEventListener('keydown', keydownLister)\n window.removeEventListener('resize', onResizeWindow)\n removeClassFromDocument()\n})\n</script>\n\n<template>\n <div\n ref=\"FullscreenImgElement\"\n role=\"button\"\n class=\"m-fullscreen-img m-reset-css\"\n tabindex=\"0\"\n @click.stop=\"close\"\n @keypress.esc.prevent=\"close\"\n >\n <button\n v-if=\"loadedOnce && hasMultipleInstances\"\n type=\"button\"\n class=\"m-fullscreen-btn --next\"\n @click.stop=\"nextPreviousImage('next')\"\n >\n <ChevronLeft class=\"maz-rotate-180\" />\n </button>\n <button\n v-if=\"loadedOnce && hasMultipleInstances\"\n type=\"button\"\n class=\"m-fullscreen-btn --previous\"\n @click.stop=\"nextPreviousImage('previous')\"\n >\n <ChevronLeft />\n </button>\n\n <button type=\"button\" class=\"m-fullscreen-btn --close\" @click=\"close\">\n <XMark />\n </button>\n\n <div class=\"m-fullscreen-img-scroller\">\n <!-- eslint-disable-next-line vuejs-accessibility/no-static-element-interactions, vuejs-accessibility/click-events-have-key-events -->\n <img\n ref=\"ImgElement\"\n :src=\"currentSrc\"\n :alt=\"currentAlt ?? undefined\"\n tabindex=\"0\"\n :class=\"[imageZoomClasses]\"\n @load=\"onImageLoaded\"\n @click.stop=\"zoom && toggleZoom()\"\n >\n\n <MazSpinner v-show=\"showLoader\" class=\"m-fullscreen-img-loader\" />\n </div>\n </div>\n</template>\n\n<style lang=\"postcss\">\n html.--m-fullscreen-open {\n @apply maz-h-screen maz-overflow-hidden;\n}\n</style>\n\n<style lang=\"postcss\" scoped>\n .m-fullscreen-img {\n @apply maz-fixed maz-inset-0 maz-z-default-backdrop maz-h-screen maz-w-screen maz-items-center maz-bg-overlay maz-outline-none maz-backdrop-blur;\n\n .m-fullscreen-img-scroller {\n @apply maz-flex maz-h-screen maz-w-screen maz-overflow-auto maz-flex-center;\n }\n\n img {\n @apply maz-z-2 maz-outline-none maz-cursor-zoom-in maz-object-center maz-object-contain;\n\n &.--is-zoomed {\n @apply maz-cursor-zoom-out;\n }\n\n &.--invisible {\n @apply maz-invisible;\n }\n\n &.--absolute {\n @apply maz-absolute;\n }\n }\n\n .m-fullscreen-img-loader {\n @apply maz-absolute maz-text-2xl maz-z-15;\n }\n\n .m-fullscreen-btn {\n @apply maz-absolute maz-z-15 maz-flex maz-h-20 maz-w-[7%] maz-min-w-[5em] maz-cursor-pointer maz-p-4 maz-transition-colors maz-duration-200;\n\n svg {\n @apply maz-text-3xl maz-transition-transform maz-duration-300 maz-ease-in-out;\n }\n\n &:hover {\n svg {\n @apply maz-scale-150;\n }\n }\n\n &.--close {\n @apply maz-right-0 maz-top-0 maz-items-start maz-justify-end;\n }\n\n &.--previous {\n @apply maz-left-0 maz-top-1/2 maz-h-screen maz--translate-y-1/2 maz-transform maz-items-center maz-justify-start;\n }\n\n &.--next {\n @apply maz-right-0 maz-top-1/2 maz-h-screen maz--translate-y-1/2 maz-transform maz-items-center maz-justify-end;\n }\n }\n}\n</style>\n","import type { DirectiveBinding } from 'vue'\n\nimport type { MazFullscreenImgProps } from './MazFullscreenImg.vue'\nimport { mount } from '../../helpers/mountComponent'\nimport MazFullscreenImg from './MazFullscreenImg.vue'\n\nexport interface vFullscreenImgOptions {\n disabled?: boolean\n scaleOnHover?: boolean\n blurOnHover?: boolean\n zoom?: boolean\n offset?: number\n animation?: {\n duration?: number\n easing?: string\n }\n}\n\ninterface vFullscreenImgBindingOptions extends vFullscreenImgOptions {\n src: string\n alt?: string | null\n}\n\nexport type vFullscreenImgBindingValue = string | vFullscreenImgBindingOptions | undefined\n\nexport type vFullscreenImgBinding = DirectiveBinding<vFullscreenImgBindingValue>\n\nconst STATE_OPEN_CLASS = 'm-fullscreen-is-open'\n\nexport class FullscreenImgHandler {\n private options: vFullscreenImgBindingOptions\n private defaultOptions: vFullscreenImgOptions = {\n scaleOnHover: false,\n blurOnHover: false,\n disabled: false,\n zoom: true,\n offset: 80,\n animation: {\n duration: 300,\n easing: 'ease-in-out',\n },\n }\n\n private mouseEnterListener: () => void\n private mouseLeaveListener: () => void\n private renderPreviewListener: () => void\n\n private buildOptions(\n el: HTMLElement,\n binding: vFullscreenImgBinding,\n ): vFullscreenImgBindingOptions {\n const options\n = typeof binding.value === 'object' ? binding.value : { src: binding.value, alt: undefined }\n\n const src = options?.src ?? this.getImgSrc(el)\n const alt = options?.alt ?? this.getImgAlt(el)\n\n return {\n ...this.defaultOptions,\n ...options,\n src,\n alt,\n }\n }\n\n get allInstances(): HTMLElement[] {\n return [...document.querySelectorAll('.m-fullscreen-img-instance')] as HTMLElement[]\n }\n\n private getImgSrc(el: HTMLElement) {\n const imgSrc = this.options?.src || el.getAttribute('src') || el.getAttribute('data-src')\n\n if (!imgSrc) {\n throw new Error(\n '[maz-ui](fullscreen-img) src of image must be provided by `v-fullscreen=\"\"`, `v-fullscreen=\"{ src: \"\" }\"`, `src=\"\"` or `data-src=\"\"` atributes',\n )\n }\n\n return imgSrc\n }\n\n private getImgAlt(el: HTMLElement) {\n return this.options?.alt || el.getAttribute('alt') || el.getAttribute('data-alt')\n }\n\n public create(el: HTMLElement, binding: vFullscreenImgBinding) {\n this.options = this.buildOptions(el, binding)\n\n if (this.options.disabled)\n return\n\n el.style.cursor = 'move'\n\n if (this.options.scaleOnHover || this.options.blurOnHover) {\n el.style.transition = 'all 200ms ease-in-out'\n }\n\n /**\n * Set class & data attribute to use it with previous & next functions\n */\n el.classList.add('m-fullscreen-img-instance')\n\n el.setAttribute('data-src', this.getImgSrc(el))\n\n const alt = this.getImgAlt(el)\n if (alt) {\n el.setAttribute('data-alt', alt)\n }\n\n this.mouseEnterListener = () => this.mouseEnter(el)\n this.mouseLeaveListener = () => this.mouseLeave(el)\n this.renderPreviewListener = () => this.renderPreview(el)\n\n el.addEventListener('mouseenter', this.mouseEnterListener)\n el.addEventListener('mouseleave', this.mouseLeaveListener)\n el.addEventListener('click', this.renderPreviewListener)\n }\n\n public update(el: HTMLElement, binding: vFullscreenImgBinding): void {\n this.options = this.buildOptions(el, binding)\n }\n\n public remove(el: HTMLElement): void {\n el.removeEventListener('mouseenter', this.mouseEnterListener)\n el.removeEventListener('mouseleave', this.mouseLeaveListener)\n el.removeEventListener('click', this.renderPreviewListener)\n\n el.classList.remove('m-fullscreen-img-instance')\n\n el.style.cursor = ''\n }\n\n private renderPreview(el: HTMLElement) {\n el.classList.add(STATE_OPEN_CLASS)\n\n return mount<typeof MazFullscreenImg, MazFullscreenImgProps>(MazFullscreenImg, {\n props: {\n ...this.options,\n openInstanceClass: STATE_OPEN_CLASS,\n clickedElement: el,\n clickedElementBounds: el.getBoundingClientRect(),\n },\n addDestroyInProps: true,\n })\n }\n\n private mouseLeave(el: HTMLElement): void {\n if (this.options.scaleOnHover)\n el.style.transform = ''\n if (this.options.blurOnHover)\n el.style.filter = ''\n el.style.zIndex = ''\n }\n\n private mouseEnter(el: HTMLElement): void {\n el.style.zIndex = '1'\n if (this.options.scaleOnHover)\n el.style.transform = 'scale(1.04)'\n if (this.options.blurOnHover)\n el.style.filter = 'blur(3px)'\n }\n}\n","import type { ObjectDirective } from 'vue'\nimport { FullscreenImgHandler, type vFullscreenImgBindingValue } from './fullscreen-img.handler'\n\nlet instance: FullscreenImgHandler\n\nconst directive = {\n mounted(el: HTMLElement, binding) {\n instance = new FullscreenImgHandler()\n return instance.create(el, binding)\n },\n updated(el: HTMLElement, binding) {\n return instance.update(el, binding)\n },\n unmounted(el: HTMLElement) {\n return instance.remove(el)\n },\n} satisfies ObjectDirective<HTMLElement, vFullscreenImgBindingValue>\n\nexport { directive as vFullscreenImg }\n"],"names":["props","__props","emits","__emit","XMark","defineAsyncComponent","ChevronLeft","imageLoaded","ref","showLoader","loadedOnce","hasMultipleInstances","isZoomed","animationState","reactive","currentClickedElement","currentClickedElementBounds","computed","isLandscapeImage","currentSrc","currentAlt","FullscreenImgElement","ImgElement","hideImage","imageZoomClasses","onImageLoaded","_a","_b","watch","value","openFullscreen","close","closeFullscreen","keydownLister","e","nextPreviousImage","addClassToDocument","removeClassFromDocument","getAllInstances","getNewInstanceIndex","allInstances","newInstanceIndex","useNextInstance","currentInstance","nextInstance","src","alt","which","currentInstanceIndex","checkAvailability","setZoomStyles","setEndAnimationStyles","imgElement","toggleZoom","runAnimation","frames","animation","getPositionsOfClikedElement","offset","width","height","windowWidth","windowHeight","scale","centerX","centerY","getAnimationFrames","trigger","top","left","clickedElementWidth","clickedElementHeight","finalStyles","openAnimation","closeAnimation","onFinish","onResizeWindow","onMounted","onBeforeUnmount","STATE_OPEN_CLASS","FullscreenImgHandler","__publicField","el","binding","options","imgSrc","mount","MazFullscreenImg","instance","directive"],"mappings":"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"}