maz-ui 3.4.5 → 3.6.1

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 (176) hide show
  1. package/components/MazAvatar.d.ts +156 -149
  2. package/components/MazAvatar.mjs +656 -0
  3. package/components/MazAvatar.umd.js +2 -0
  4. package/components/MazBackdrop.d.ts +89 -89
  5. package/components/MazBackdrop.mjs +140 -0
  6. package/components/MazBackdrop.umd.js +2 -0
  7. package/components/MazBadge.d.ts +73 -68
  8. package/components/MazBadge.mjs +61 -0
  9. package/components/MazBadge.umd.js +2 -0
  10. package/components/MazBottomSheet.d.ts +36 -29
  11. package/components/MazBottomSheet.mjs +553 -0
  12. package/components/MazBottomSheet.umd.js +2 -0
  13. package/components/MazBtn.d.ts +178 -171
  14. package/components/MazBtn.mjs +371 -0
  15. package/components/MazBtn.umd.js +2 -0
  16. package/components/MazCard.d.ts +194 -183
  17. package/components/MazCard.mjs +1390 -0
  18. package/components/MazCard.umd.js +2 -0
  19. package/components/MazCarousel.d.ts +24 -16
  20. package/components/MazCarousel.mjs +469 -0
  21. package/components/MazCarousel.umd.js +2 -0
  22. package/components/MazChart/includes.d.ts +11 -11
  23. package/components/MazChart.d.ts +114 -114
  24. package/components/MazChart.mjs +135 -0
  25. package/components/MazChart.umd.js +2 -0
  26. package/components/MazCheckbox.d.ts +54 -49
  27. package/components/MazCheckbox.mjs +86 -0
  28. package/components/MazCheckbox.umd.js +2 -0
  29. package/components/MazDialog.d.ts +40 -29
  30. package/components/MazDialog.mjs +566 -0
  31. package/components/MazDialog.umd.js +2 -0
  32. package/components/MazDialogPromise/use-maz-dialog-promise.d.ts +30 -30
  33. package/components/MazDialogPromise.d.ts +36 -28
  34. package/components/MazDialogPromise.mjs +692 -0
  35. package/components/MazDialogPromise.umd.js +2 -0
  36. package/components/MazDrawer.d.ts +69 -59
  37. package/components/MazDrawer.mjs +572 -0
  38. package/components/MazDrawer.umd.js +2 -0
  39. package/components/MazDropzone.d.ts +128 -128
  40. package/components/MazDropzone.mjs +369 -0
  41. package/components/MazDropzone.umd.js +2 -0
  42. package/components/MazGallery.d.ts +144 -144
  43. package/components/MazGallery.mjs +948 -0
  44. package/components/MazGallery.umd.js +2 -0
  45. package/components/MazIcon.d.ts +64 -66
  46. package/components/MazIcon.mjs +161 -0
  47. package/components/MazIcon.umd.js +2 -0
  48. package/components/MazInput.d.ts +276 -276
  49. package/components/MazInput.mjs +750 -0
  50. package/components/MazInput.umd.js +2 -0
  51. package/components/MazInputNumber.d.ts +65 -67
  52. package/components/MazInputNumber.mjs +857 -0
  53. package/components/MazInputNumber.umd.js +2 -0
  54. package/components/MazInputPrice.d.ts +69 -64
  55. package/components/MazInputPrice.mjs +889 -0
  56. package/components/MazInputPrice.umd.js +2 -0
  57. package/components/MazInputTags.d.ts +94 -96
  58. package/components/MazInputTags.mjs +904 -0
  59. package/components/MazInputTags.umd.js +2 -0
  60. package/components/MazLazyImg.d.ts +85 -80
  61. package/components/MazLazyImg.mjs +376 -0
  62. package/components/MazLazyImg.umd.js +2 -0
  63. package/components/MazPhoneNumberInput/constantes/locales.d.ts +12 -12
  64. package/components/MazPhoneNumberInput/types.d.ts +21 -21
  65. package/components/MazPhoneNumberInput/utils/countries-name-list-by-iso-code.d.ts +2 -2
  66. package/components/MazPhoneNumberInput/utils/index.d.ts +12 -12
  67. package/components/MazPhoneNumberInput.d.ts +253 -255
  68. package/components/MazPhoneNumberInput.mjs +1904 -0
  69. package/components/MazPhoneNumberInput.umd.js +2 -0
  70. package/components/MazPicker/MazPickerCalendar.vue.d.ts +135 -137
  71. package/components/MazPicker/MazPickerCalendarMonth/MazPickerCalendarDays.vue.d.ts +20 -22
  72. package/components/MazPicker/MazPickerCalendarMonth/MazPickerCalendarGrid.vue.d.ts +112 -114
  73. package/components/MazPicker/MazPickerCalendarMonth/MazPickerCalendarMonth.vue.d.ts +122 -124
  74. package/components/MazPicker/MazPickerCalendarSwitcher.vue.d.ts +36 -38
  75. package/components/MazPicker/MazPickerContainer.vue.d.ts +210 -212
  76. package/components/MazPicker/MazPickerFooter.vue.d.ts +16 -0
  77. package/components/MazPicker/MazPickerHeader.vue.d.ts +82 -84
  78. package/components/MazPicker/MazPickerMonthSwitcher.vue.d.ts +41 -43
  79. package/components/MazPicker/MazPickerShortcuts.vue.d.ts +60 -62
  80. package/components/MazPicker/MazPickerTime.vue.d.ts +127 -129
  81. package/components/MazPicker/MazPickerYearSwitcher.vue.d.ts +33 -35
  82. package/components/MazPicker/types.d.ts +15 -15
  83. package/components/MazPicker/utils.d.ts +54 -54
  84. package/components/MazPicker.d.ts +311 -313
  85. package/components/MazPicker.mjs +2942 -0
  86. package/components/MazPicker.umd.js +2 -0
  87. package/components/MazRadioButtons.d.ts +77 -69
  88. package/components/MazRadioButtons.mjs +80 -0
  89. package/components/MazRadioButtons.umd.js +2 -0
  90. package/components/MazSelect.d.ts +185 -176
  91. package/components/MazSelect.mjs +1082 -0
  92. package/components/MazSelect.umd.js +2 -0
  93. package/components/MazSlider/utils.d.ts +15 -15
  94. package/components/MazSlider.d.ts +94 -96
  95. package/components/MazSlider.mjs +377 -0
  96. package/components/MazSlider.umd.js +2 -0
  97. package/components/MazSpinner.d.ts +28 -30
  98. package/components/MazSpinner.mjs +59 -0
  99. package/components/MazSpinner.umd.js +2 -0
  100. package/components/MazStepper.d.ts +71 -73
  101. package/components/MazStepper.mjs +227 -0
  102. package/components/MazStepper.umd.js +2 -0
  103. package/components/MazSwitch.d.ts +54 -56
  104. package/components/MazSwitch.mjs +61 -0
  105. package/components/MazSwitch.umd.js +2 -0
  106. package/components/MazTabsBar.d.ts +47 -49
  107. package/components/MazTabsBar.mjs +470 -0
  108. package/components/MazTabsBar.umd.js +2 -0
  109. package/components/MazTabsContent.d.ts +21 -16
  110. package/components/MazTabsContent.mjs +89 -0
  111. package/components/MazTabsContent.umd.js +2 -0
  112. package/components/MazTabsContentItem.d.ts +19 -14
  113. package/components/MazTabsContentItem.mjs +61 -0
  114. package/components/MazTabsContentItem.umd.js +2 -0
  115. package/components/MazTextarea/textarea-autogrow.d.ts +9 -9
  116. package/components/MazTextarea.d.ts +123 -125
  117. package/components/MazTextarea.mjs +260 -0
  118. package/components/MazTextarea.umd.js +2 -0
  119. package/components/MazTransitionExpand.d.ts +9 -4
  120. package/components/MazTransitionExpand.mjs +62 -0
  121. package/components/MazTransitionExpand.umd.js +2 -0
  122. package/components/index.d.ts +33 -34
  123. package/components/index.mjs +35 -0
  124. package/components/index.umd.js +35 -0
  125. package/components/no_photo-410a8f01.mjs +4 -0
  126. package/components/types.d.ts +17 -17
  127. package/css/main.css +1 -1
  128. package/maz-ui.d.ts +234 -231
  129. package/modules/maz-ui.mjs +1892 -0
  130. package/modules/maz-ui.umd.js +2 -0
  131. package/modules/no_photo-410a8f01.mjs +4 -0
  132. package/package.json +45 -54
  133. package/tailwindcss/tailwind.config.js +6 -7
  134. package/tailwindcss/utils/colors.js +1 -3
  135. package/tailwindcss/variables/breakpoints.js +1 -2
  136. package/tailwindcss/variables/utilities.js +1 -2
  137. package/tailwindcss/variables/z-indexes.js +1 -1
  138. package/components/MazArrowIcon.d.ts +0 -43
  139. package/components/MazArrowIcon.js +0 -1
  140. package/components/MazAvatar.js +0 -3
  141. package/components/MazBackdrop.js +0 -3
  142. package/components/MazBadge.js +0 -1
  143. package/components/MazBottomSheet.js +0 -3
  144. package/components/MazBtn.js +0 -3
  145. package/components/MazCard.js +0 -3
  146. package/components/MazCarousel.js +0 -3
  147. package/components/MazChart.js +0 -1
  148. package/components/MazCheckbox.js +0 -1
  149. package/components/MazDialog.js +0 -3
  150. package/components/MazDialogPromise.js +0 -3
  151. package/components/MazDrawer.js +0 -3
  152. package/components/MazDropzone.js +0 -3
  153. package/components/MazGallery.js +0 -3
  154. package/components/MazIcon.js +0 -3
  155. package/components/MazInput.js +0 -3
  156. package/components/MazInputNumber.js +0 -3
  157. package/components/MazInputPrice.js +0 -3
  158. package/components/MazInputTags.js +0 -3
  159. package/components/MazLazyImg.js +0 -3
  160. package/components/MazPhoneNumberInput.js +0 -3
  161. package/components/MazPicker.js +0 -3
  162. package/components/MazRadioButtons.js +0 -1
  163. package/components/MazSelect.js +0 -3
  164. package/components/MazSlider.js +0 -3
  165. package/components/MazSpinner.js +0 -1
  166. package/components/MazStepper.js +0 -1
  167. package/components/MazSwitch.js +0 -1
  168. package/components/MazTabsBar.js +0 -3
  169. package/components/MazTabsContent.js +0 -1
  170. package/components/MazTabsContentItem.js +0 -3
  171. package/components/MazTextarea.js +0 -1
  172. package/components/MazTransitionExpand.js +0 -1
  173. package/components/index.js +0 -36
  174. package/components/no_photo-a72545e4.js +0 -1
  175. package/modules/index.js +0 -3
  176. package/modules/no_photo-a72545e4.js +0 -1
@@ -0,0 +1,2 @@
1
+ (function(){"use strict";try{if(typeof document!="undefined"){var a=document.createElement("style");a.appendChild(document.createTextNode(".m-gallery[data-v-680a27a0]{position:relative;overflow:hidden}.m-gallery__hidden[data-v-680a27a0]{display:none}.m-gallery__item[data-v-680a27a0]{position:absolute;top:0px;margin:0;height:50%;width:100%;overflow:hidden;border-left-width:2px;border-color:transparent;padding:0}.m-gallery__item--1[data-v-680a27a0]{left:0;height:100%}.m-gallery__item--1[data-v-680a27a0]:not(:last-child){width:50%}.m-gallery__item--2[data-v-680a27a0]{left:50%;width:50%;height:50%}.m-gallery__item--2[data-v-680a27a0]:last-child{height:100%}.m-gallery__item--2[data-v-680a27a0]:nth-last-child(4){width:25%}.m-gallery__item--3[data-v-680a27a0]{top:50%;left:50%;width:25%}.m-gallery__item--3[data-v-680a27a0]:last-child{width:50%}.m-gallery__item--3[data-v-680a27a0]:nth-last-child(3){top:0;left:75%}.m-gallery__item--4[data-v-680a27a0]{border-top-width:2px;border-color:transparent;top:50%;left:50%;width:25%}.m-gallery__item--4[data-v-680a27a0]:last-child{left:75%;width:25%}.m-gallery__item--5[data-v-680a27a0]{border-top-width:2px;border-color:transparent;top:50%;left:75%;width:25%}.m-gallery__item[data-v-680a27a0]:first-child{border-left:0}.m-gallery__item--3[data-v-680a27a0]:last-child,.m-gallery__item--3[data-v-680a27a0]:nth-last-child(2),.m-gallery__item--4[data-v-680a27a0]:last-child,.m-gallery__item--5[data-v-680a27a0]{border-top-width:2px;border-color:transparent}.m-gallery__item__image[data-v-680a27a0]{height:100%;max-width:100%;width:100%;background-position:center center;background-size:cover;background-repeat:no-repeat;background-color:#0000007f}.m-gallery__remaining-layer[data-v-680a27a0]{position:absolute;top:0;bottom:0;right:0;left:0}.m-gallery__remaining-layer a span[data-v-680a27a0]{color:#fff;font-size:2rem}")),document.head.appendChild(a)}}catch(t){console.error("vite-plugin-css-injected-by-js",t)}})();
2
+ var __defProp=Object.defineProperty,__defNormalProp=(e,t,s)=>t in e?__defProp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,__publicField=(e,t,s)=>(__defNormalProp(e,"symbol"!=typeof t?t+"":t,s),s);!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("vue")):"function"==typeof define&&define.amd?define(["vue"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).MazGallery=t(e.Vue)}(this,(function(e){"use strict";const t={close:'<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M0 0h24v24H0z" fill="none"/><path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>',next:'<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M0 0h24v24H0z" fill="none"/><path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/></svg>',previous:'<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M0 0h24v24H0z" fill="none"/><path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"/></svg>',spinner:'<svg width="40px" height="40px" version="1.1" xmlns="http://www.w3.org/2000/svg" fill="currentColor" x="0px" y="0px" viewBox="0 0 50 50" xml:space="preserve" class="maz-zoom-img__loader__svg" data-v-6d1cb50c=""><path d="M43.935,25.145c0-10.318-8.364-18.683-18.683-18.683c-10.318,0-18.683,8.365-18.683,18.683h4.068c0-8.071,6.543-14.615,14.615-14.615c8.072,0,14.615,6.543,14.615,14.615H43.935z"></path></svg>'};class s{constructor(e){if(__publicField(this,"options"),__publicField(this,"loader"),__publicField(this,"wrapper"),__publicField(this,"img"),__publicField(this,"keydownHandler"),__publicField(this,"onImgLoadedCallback"),__publicField(this,"buttonsAdded"),__publicField(this,"defaultOptions",{scale:!0,blur:!0,disabled:!1}),__publicField(this,"mouseEnterListener"),__publicField(this,"mouseLeaveListener"),__publicField(this,"renderPreviewListener"),!e.value)throw new Error('[MazUI](zoom-img) Image path must be defined. Ex: `v-zoom-img="<PATH_TO_IMAGE>"`');if("object"==typeof e.value&&!e.value.src)throw new Error("[maz-ui](zoom-img) src of image must be provided");this.buttonsAdded=!1,this.options=this.buildOptions(e),this.keydownHandler=this.keydownLister.bind(this),this.loader=this.getLoader(),this.wrapper=document.createElement("div"),this.wrapper.classList.add("maz-zoom-img__wrapper"),this.wrapper.prepend(this.loader),this.img=document.createElement("img"),this.onImgLoadedCallback=this.onImgLoaded.bind(this),this.imgEventHandler(!0)}buildOptions(e){return{...this.defaultOptions,..."object"==typeof e.value?e.value:{src:e.value}}}get allInstances(){return[...document.querySelectorAll(".maz-zoom-img-instance")]}create(e){this.options.disabled||(e.style.cursor="pointer",setTimeout((()=>e.classList.add("maz-zoom-img-instance"))),e.setAttribute("data-src",this.options.src),this.options.alt&&e.setAttribute("data-alt",this.options.alt),e.style.transition="all 300ms ease-in-out",this.mouseEnterListener=()=>this.mouseEnter(e),this.mouseLeaveListener=()=>this.mouseLeave(e),this.renderPreviewListener=()=>this.renderPreview(e,this.options),e.addEventListener("mouseenter",this.mouseEnterListener),e.addEventListener("mouseleave",this.mouseLeaveListener),e.addEventListener("click",this.renderPreviewListener))}update(e){this.options=this.buildOptions(e)}remove(e){this.imgEventHandler(!1),e.removeEventListener("mouseenter",this.mouseEnterListener),e.removeEventListener("mouseleave",this.mouseLeaveListener),e.removeEventListener("click",this.renderPreviewListener),e.classList.remove("maz-zoom-img-instance"),e.removeAttribute("data-src"),e.removeAttribute("data-alt"),e.style.cursor=""}renderPreview(e,t){e.classList.add("maz-is-open"),this.addStyle("\n.maz-zoom-img {\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n padding: 2.5rem;\n z-index: 1050;\n background-color: hsla(238, 15%, 40%, 0.7);\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n}\n\n.maz-zoom-img,\n.maz-zoom-img * {\n box-sizing: border-box;\n}\n\n.maz-zoom-img .maz-zoom-img__wrapper {\n position: relative;\n display: flex;\n justify-content: center;\n align-items: center;\n min-width: 0;\n min-height: 0;\n max-width: 100%;\n max-height: 100%;\n transition: all 300ms ease-in-out;\n opacity: 0;\n transform: scale(0.5);\n}\n\n.maz-zoom-img.maz-animate .maz-zoom-img__wrapper {\n opacity: 1;\n transform: scale(1);\n}\n\n.maz-zoom-img.maz-animate .maz-zoom-img__loader {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: hsla(238, 15%, 40%, 0.7);\n border-radius: 1rem;\n z-index: 2;\n min-width: 60px;\n min-height: 60px;\n}\n.maz-zoom-img.maz-animate .maz-zoom-img__loader[hidden] {\n display: none;\n}\n\n@-webkit-keyframes spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n}\n\n@keyframes spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n}\n\n.maz-zoom-img.maz-animate .maz-zoom-img__loader__svg {\n animation: spin .6s linear infinite;\n}\n\n.maz-zoom-img img {\n max-width: 100%;\n max-height: 100%;\n min-width: 0;\n border-radius: 1rem;\n}\n\n.maz-zoom-img .maz-zoom-btn {\n margin: 0 auto;\n border: none;\n background-color: hsla(0, 0%, 7%, 0.5);\n box-shadow: 0 0 0.5rem 0 hsla(0, 0%, 0%, 0.2);\n height: 2.2rem;\n min-height: 2.2rem;\n width: 2.2rem;\n min-width: 2.2rem;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 2.2rem;\n cursor: pointer;\n flex: 0 0 auto;\n outline: none;\n}\n\n.maz-zoom-img .maz-zoom-btn svg {\n fill: white;\n}\n\n.maz-zoom-img .maz-zoom-btn.maz-zoom-btn--close {\n position: absolute;\n top: 0.5rem;\n right: 0.5rem;\n z-index: 1;\n}\n\n.maz-zoom-img .maz-zoom-btn.maz-zoom-btn--previous {\n position: absolute;\n left: 0.5rem;\n z-index: 1;\n}\n\n.maz-zoom-img .maz-zoom-btn.maz-zoom-btn--next {\n position: absolute;\n right: 0.5rem;\n z-index: 1;\n}\n\n.maz-zoom-img .maz-zoom-btn:hover {\n background-color: hsl(0, 0%, 0%);\n}");const s=document.createElement("div");s.classList.add("maz-zoom-img"),s.setAttribute("id","MazImgPreviewFullsize"),s.addEventListener("click",(e=>{s.isEqualNode(e.target)&&this.closePreview()})),"object"==typeof t&&(this.img.setAttribute("src",t.src),t.alt&&this.img.setAttribute("alt",t.alt),this.img.id="MazImgElement"),this.wrapper.append(this.img),s.append(this.wrapper),document.body.append(s),this.keyboardEventHandler(!0),setTimeout((()=>{s&&s.classList.add("maz-animate")}),100)}onImgLoaded(){this.wrapper.style.width=`${this.img.width}px`,this.wrapper.style.minWidth="200px",this.loader.hidden=!0;const e=this.getButton(),t=[],s=this.allInstances.length>1;if(!this.buttonsAdded){if(this.buttonsAdded=!0,s){const e=this.getButton("previous"),s=this.getButton("next");t.push(e,s)}this.wrapper.append(e),s&&(this.wrapper.prepend(t[0]),this.wrapper.append(t[1]))}}getLoader(){const e=document.createElement("div");return e.classList.add("maz-zoom-img__loader"),e.innerHTML=t.spinner,e}mouseLeave(e){this.options.scale&&(e.style.transform=""),this.options.blur&&(e.style.filter=""),e.style.zIndex=""}mouseEnter(e){e.style.zIndex="1",this.options.scale&&(e.style.transform="scale(1.1)"),this.options.blur&&(e.style.filter="blur(2px)")}keydownLister(e){e.preventDefault(),"Escape"!==e.key&&" "!==e.key||this.closePreview(),"ArrowLeft"!==e.key&&"ArrowRight"!==e.key||this.nextPreviousImage("ArrowRight"===e.key)}getButton(e="close"){const s=document.createElement("button");return s.innerHTML=t[e],s.addEventListener("click",(()=>{"close"===e?this.closePreview():this.allInstances&&this.nextPreviousImage("next"===e)})),s.classList.add("maz-zoom-btn"),s.classList.add(`maz-zoom-btn--${e}`),s}closePreview(){const e=document.querySelector("#MazImgPreviewFullsize"),t=document.querySelector("#MazPreviewStyle"),s=document.querySelector(".maz-zoom-img-instance.maz-is-open");s&&s.classList.remove("maz-is-open"),e&&e.classList.remove("maz-animate"),this.keyboardEventHandler(!1),setTimeout((()=>{e&&e.remove(),t&&t.remove()}),300)}getNewInstanceIndex(e){return e<0?this.allInstances.length-1:e>=this.allInstances.length?0:e}nextPreviousImage(e){const t=e,s=document.querySelector(".maz-zoom-img-instance.maz-is-open");if(s){const e=this.allInstances.indexOf(s),i=t?e+1:e-1,o=this.allInstances[this.getNewInstanceIndex(i)];o&&this.useNextInstance(s,o)}}useNextInstance(e,t){e.classList.remove("maz-is-open"),t.classList.add("maz-is-open");const s=t.getAttribute("data-src"),i=t.getAttribute("data-alt");this.wrapper.style.width="",this.loader.hidden=!1,s&&this.img.setAttribute("src",s),i&&this.img.setAttribute("alt",i)}addStyle(e){const t=document.createElement("style");t.id="MazPreviewStyle",t.textContent=e,document.head.append(t)}keyboardEventHandler(e){if(e)return document.addEventListener("keydown",this.keydownHandler);document.removeEventListener("keydown",this.keydownHandler)}imgEventHandler(e){if(e)return this.img.addEventListener("load",this.onImgLoadedCallback);this.img.removeEventListener("load",this.onImgLoadedCallback)}}let i;const o={created(e,t){i=new s(t),i.create(e)},updated(e,t){i.update(t)},unmounted(e){i.remove(e)}},n={baseClass:"m-lazy-img",loadedClass:"m-lazy-loaded",loadingClass:"m-lazy-loading",errorClass:"m-lazy-error",noPhotoClass:"m-lazy-no-photo",noPhoto:!1,observerOnce:!0,loadOnce:!1,noUseErrorPhoto:!1,observerOptions:{threshold:.1}};class a{constructor(e={}){__publicField(this,"observers",[]),__publicField(this,"defaultOptions",n),__publicField(this,"options"),__publicField(this,"onImgLoadedCallback"),__publicField(this,"onImgErrorCallback"),__publicField(this,"hasImgLoaded",!1),this.options=this.buildOptions(e),this.onImgLoadedCallback=this.imageIsLoaded.bind(this),this.onImgErrorCallback=this.imageHasError.bind(this)}async loadErrorPhoto(){const{default:e}=await Promise.resolve().then((()=>L));return e}buildOptions(e){return{...this.defaultOptions,...e,observerOptions:{...this.defaultOptions.observerOptions,...e.observerOptions}}}removeClass(e,t){e.classList.remove(t)}addClass(e,t){e.classList.add(t)}removeAllStateClasses(e){this.removeClass(e,this.options.loadedClass),this.removeClass(e,this.options.loadingClass),this.removeClass(e,this.options.errorClass),this.removeClass(e,this.options.noPhotoClass)}setBaseClass(e){this.addClass(e,this.options.baseClass)}imageIsLoading(e){var t,s;this.addClass(e,this.options.loadingClass),null==(s=(t=this.options).onLoading)||s.call(t,e)}imageHasNoPhoto(e){this.removeClass(e,this.options.loadingClass),this.addClass(e,this.options.noPhotoClass),this.setDefaultPhoto(e)}imageIsLoaded(e){var t,s;this.hasImgLoaded=!0,this.removeClass(e,this.options.loadingClass),this.addClass(e,this.options.loadedClass),null==(s=(t=this.options).onLoaded)||s.call(t,e)}imageHasError(e,t){var s,i;console.warn("[maz-ui][MazLazyImg] Error while loading image",t),this.removeClass(e,this.options.loadingClass),this.addClass(e,this.options.errorClass),null==(i=(s=this.options).onError)||i.call(s,e),this.setDefaultPhoto(e)}getImageUrl(e,t){const s=this.getImgElement(e).getAttribute("data-src");if(s)return s;const i="object"==typeof t.value?t.value.src:t.value;return i||console.warn("[maz-ui][MazLazyImg] src url is not defined"),i}async setPictureSourceUrls(e){const t=e.querySelectorAll("source");if(t.length>0)for await(const s of t){const e=s.getAttribute("data-srcset");e?s.srcset=e:console.warn('[maz-ui][MazLazyImg] the "[data-srcset]" attribute is not provided on "<source />"')}else console.warn('[maz-ui][MazLazyImg] No "<source />" elements provided into the "<picture />" element'),this.imageHasError(e)}hasBgImgMode(e){return"bg-image"===e.arg}isPictureElement(e){return e instanceof HTMLPictureElement}getImgElement(e){return this.isPictureElement(e)?e.querySelector("img"):e}async setDefaultPhoto(e){if(this.options.noUseErrorPhoto)return;const t=this.options.errorPhoto??await this.loadErrorPhoto(),s=e.querySelectorAll("source");if(s.length>0)for await(const i of s)i.srcset=t;else this.setImgSrc(e,t)}addEventListenerToImg(e){const t=this.getImgElement(e);t.addEventListener("load",(()=>this.onImgLoadedCallback(e)),{once:!0}),t.addEventListener("error",(t=>this.onImgErrorCallback(e,t)),{once:!0})}async loadImage(e,t){if(this.imageIsLoading(e),this.isPictureElement(e))this.addEventListenerToImg(e),await this.setPictureSourceUrls(e);else{const s=this.getImageUrl(e,t);if(!s)return this.imageHasError(e);this.hasBgImgMode(t)?(e.style.backgroundImage=`url('${s}')`,this.imageIsLoaded(e)):(this.addEventListenerToImg(e),this.setImgSrc(e,s))}}setImgSrc(e,t){this.getImgElement(e).src=t}handleIntersectionObserver(e,t,s,i){var o,n;this.observers.push(i);for(const a of s)if(a.isIntersecting){if(null==(n=(o=this.options).onIntersecting)||n.call(o,a.target),this.options.observerOnce&&i.unobserve(e),this.options.loadOnce&&this.hasImgLoaded)return;this.loadImage(e,t)}}createObserver(e,t){const s=this.options.observerOptions;new IntersectionObserver(((s,i)=>{this.handleIntersectionObserver(e,t,s,i)}),s).observe(e)}async imageHandler(e,t,s){if("update"===s)for await(const i of this.observers)i.unobserve(e);window.IntersectionObserver?this.createObserver(e,t):this.loadImage(e,t)}async bindUpdateHandler(e,t,s){if(this.options.noPhoto)return this.imageHasNoPhoto(e);await this.imageHandler(e,t,s)}async add(e,t){if(this.hasBgImgMode(t)&&this.isPictureElement(e))throw new Error('[MazLazyImg] You can\'t use the "bg-image" mode with "<picture />" element');setTimeout((()=>this.setBaseClass(e)),0),e.getAttribute("src")||this.setImgSrc(e,"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"),await this.bindUpdateHandler(e,t,"bind")}async update(e,t){t.value!==t.oldValue&&(this.hasImgLoaded=!1,this.removeAllStateClasses(e),await this.bindUpdateHandler(e,t,"update"))}remove(e,t){this.hasImgLoaded=!1,this.hasBgImgMode(t)&&(e.style.backgroundImage=""),this.removeAllStateClasses(e);for(const s of this.observers)s.unobserve(e);this.observers=[]}}let r;const l={created(e,t){const s="object"==typeof t.value?t.value:{};r=new a(s),r.add(e,t)},updated(e,t){r.update(e,t)},unmounted(e,t){r.remove(e,t)}};const m=["innerHTML"],d=e.defineComponent({__name:"MazIcon",props:{src:{type:String,default:void 0},path:{type:String,default:void 0},name:{type:String,default:void 0},size:{type:String,default:"1.5rem"},title:{type:String,default:void 0},transformSource:{type:Function,default:e=>e}},emits:["loaded","unloaded","error"],setup(t,{emit:s}){const i=t,o={},n=e.ref(),a=e.ref(),r=()=>{try{return function(t,s){const i=e.inject(t,s);if(!i)throw new Error(`[maz-ui](injectStrict) Could not resolve ${t}`);return i}("mazIconPath")}catch{return}},l=e.computed((()=>i.path??r())),d=e.computed((()=>i.src?i.src:l.value?`${l.value}/${i.name}.svg`:`/${i.name}.svg`));e.onMounted((()=>{i.name||i.src||console.error('[maz-ui](MazIcon) you should provide "name" or "src" as prop')}));const c=e=>{const t={},s=e.attributes;if(!s)return t;for(let i=s.length-1;i>=0;i--)t[s[i].name]=s[i].value;return t},u=e=>{let t=e.cloneNode(!0);return t=i.transformSource(e),i.title&&((e,t)=>{const s=e.querySelectorAll("title");if(s.length>0)s[0].textContent=t;else{const s=document.createElementNS("http://www.w3.org/2000/svg","title");s.textContent=t,e.append(s)}})(t,i.title),e.innerHTML},g=e=>new Promise(((t,s)=>{const o=new XMLHttpRequest;o.open("GET",e,!0),o.addEventListener("load",(()=>{if(o.status>=200&&o.status<400)try{const e=new DOMParser;let n=e.parseFromString(o.responseText,"text/xml").querySelectorAll("svg")[0];n?(n=i.transformSource(n),t(n)):s(new Error('Loaded file is not valid SVG"'))}catch(e){s(e)}else s(new Error("Error loading SVG"))})),o.addEventListener("error",(()=>s())),o.send()}));return e.watchEffect((()=>(async t=>{o[t]||(o[t]=g(t));try{n.value=await o[t],await e.nextTick(),s("loaded",a.value)}catch(i){n.value&&(n.value=void 0,s("unloaded")),delete o[t],s("error",i)}})(d.value))),(s,i)=>{return n.value?(e.openBlock(),e.createElementBlock("svg",e.mergeProps({key:0,ref_key:"svgElem",ref:a,width:"1em",height:"1em"},{...c(n.value),...(o=s.$attrs,Object.keys(o).reduce(((e,t)=>(!1!==o[t]&&null!==o[t]&&void 0!==o[t]&&(e[t]=o[t]),e)),{}))},{style:`font-size: ${t.size}`,innerHTML:u(n.value)}),null,16,m)):e.createCommentVNode("",!0);var o}}}),c=e.defineComponent({components:{MazIcon:d},directives:{"zoom-img":o,"lazy-img":l},props:{images:{type:Array,default:()=>[]},imagesShownCount:{type:Number,default:5},noRemaining:{type:Boolean,default:!1},height:{type:[Number,String],default:150},noHeight:{type:Boolean,default:!1},width:{type:[Number,String],default:"100%"},noWidth:{type:Boolean,default:!1},noRadius:{type:Boolean,default:!1},noZoom:{type:Boolean,default:!1},hasEmptyLayer:{type:Boolean,default:!0},lazy:{type:Boolean,default:!0},blur:{type:Boolean,default:!0},scale:{type:Boolean,default:!0}},setup(t){e.onBeforeMount((()=>{t.imagesShownCount>5&&console.warn('[MazUI](m-gallery) The maximum of "images-shown-count" is 5')}));const s=e.computed((()=>{const{height:e,width:s,noWidth:i,noHeight:o}=t;return{...i?{}:{flex:"0 0 "+typeof s=="number"?`${s}px`:s,width:"number"==typeof s?`${s}px`:s},...o?{}:{height:"number"==typeof e?`${e}px`:`${e}`,minHeight:"number"==typeof e?`${e}px`:`${e}`}}})),i=e.computed((()=>t.imagesShownCount<=5?t.imagesShownCount:5)),o=e.computed((()=>t.images.length-(t.images.length<i.value?t.images.length:i.value))),n=e.computed((()=>t.images.map((e=>"object"==typeof e?e:{src:e,alt:void 0})))),a=e.computed((()=>n.value.slice(0,i.value))),r=e.computed((()=>n.value.slice(i.value,t.images.length)));return{sizeStyle:s,imagesCount:i,shouldHaveRemainingLayer:e=>o.value&&e+1===a.value.length&&!t.noRemaining,imagesShown:a,numberImagesRemaining:o,imagesHidden:r,NoPhotographyIcon:"data:image/svg+xml;base64,PHN2ZwogIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAyNCAyNCIKICB2aWV3Qm94PSIwIDAgMjQgMjQiCiAgZmlsbD0iY3VycmVudENvbG9yIgo+CiAgPGc+CiAgICA8cmVjdCBmaWxsPSJub25lIiBoZWlnaHQ9IjI0IiB3aWR0aD0iMjQiIC8+CiAgICA8Zz4KICAgICAgPHBhdGgKICAgICAgICBkPSJNOC45LDYuMDdMNy40OCw0LjY2TDksM2g2bDEuODMsMkgyMGMxLjEsMCwyLDAuOSwyLDJ2MTJjMCwwLjA1LTAuMDEsMC4xLTAuMDIsMC4xNkwyMCwxNy4xN1Y3aC00LjA1bC0xLjgzLTJIOS44OCBMOC45LDYuMDd6IE0yMC40OSwyMy4zMUwxOC4xNywyMUg0Yy0xLjEsMC0yLTAuOS0yLTJWN2MwLTAuNTksMC4yNy0xLjEyLDAuNjgtMS40OWwtMi0yTDIuMSwyLjFsMTkuOCwxOS44TDIwLjQ5LDIzLjMxeiBNOS4xOSwxMi4wMkM5LjA4LDEyLjMzLDksMTIuNjUsOSwxM2MwLDEuNjYsMS4zNCwzLDMsM2MwLjM1LDAsMC42Ny0wLjA4LDAuOTgtMC4xOUw5LjE5LDEyLjAyeiBNMTYuMTcsMTlsLTEuNjgtMS42OCBDMTMuNzYsMTcuNzUsMTIuOTEsMTgsMTIsMThjLTIuNzYsMC01LTIuMjQtNS01YzAtMC45MSwwLjI1LTEuNzYsMC42OC0yLjQ5TDQuMTcsN0g0djEySDE2LjE3eiBNMTQuODEsMTEuOThsMi4wNywyLjA3IEMxNi45NiwxMy43MSwxNywxMy4zNiwxNywxM2MwLTIuNzYtMi4yNC01LTUtNWMtMC4zNiwwLTAuNzEsMC4wNC0xLjA2LDAuMTJsMi4wNywyLjA3QzEzLjg1LDEwLjQ5LDE0LjUxLDExLjE1LDE0LjgxLDExLjk4eiIKICAgICAgLz4KICAgIDwvZz4KICA8L2c+Cjwvc3ZnPgo="}}}),u={class:"m-gallery__wrapper maz-flex maz-flex-1"},g=["alt"],h={key:0,class:"m-gallery__remaining-layer maz-flex maz-bg-overlay maz-flex-center"},p={class:"maz-text-2xl maz-text-white"};const y=((e,t)=>{const s=e.__vccOpts||e;for(const[i,o]of t)s[i]=o;return s})(c,[["render",function(t,s,i,o,n,a){const r=e.resolveComponent("MazIcon"),l=e.resolveDirective("zoom-img"),m=e.resolveDirective("lazy-img");return t.images.length>0||t.hasEmptyLayer?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["m-gallery maz-flex",{"maz-rounded-xl":!t.noRadius}]),style:e.normalizeStyle([t.sizeStyle])},[e.createElementVNode("section",u,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.imagesShown,((s,i)=>(e.openBlock(),e.createElementBlock("figure",{key:i,class:e.normalizeClass(["m-gallery__item !maz-my-0 maz-flex maz-flex-center",[`m-gallery__item--${i+1}`]])},[e.withDirectives(e.createElementVNode("img",{class:"m-gallery__item__image maz-flex-1",src:"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",alt:s.alt},null,8,g),[[l,{src:s.src,alt:s.alt,disabled:t.noZoom||t.shouldHaveRemainingLayer(i),blur:t.blur,scale:t.scale}],[m,{src:s.src,disabled:!t.lazy},"bg-image"]]),t.shouldHaveRemainingLayer(i)?e.withDirectives((e.openBlock(),e.createElementBlock("div",h,[e.createElementVNode("span",p,"+"+e.toDisplayString(t.numberImagesRemaining),1)])),[[l,{src:s.src,alt:s.alt,disabled:t.noZoom,blur:!1,scale:t.scale}]]):e.createCommentVNode("",!0)],2)))),128)),t.hasEmptyLayer&&0===t.images.length?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["flex-center maz-flex maz-w-full maz-bg-color-light maz-text-normal",{"maz-rounded-xl":!t.noRadius}]),style:e.normalizeStyle([t.sizeStyle])},[e.createVNode(r,{src:t.NoPhotographyIcon,size:"2rem"},null,8,["src"])],6)):e.createCommentVNode("",!0)]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.imagesHidden,((s,i)=>e.withDirectives((e.openBlock(),e.createElementBlock("div",{key:i,class:"m-gallery__hidden"})),[[l,{src:s.src,disabled:t.noZoom}]]))),128))],6)):e.createCommentVNode("",!0)}],["__scopeId","data-v-680a27a0"]]),L=Object.freeze(Object.defineProperty({__proto__:null,default:"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjQ4cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjQ4cHgiIGZpbGw9IiNjZGNkY2QiPgogIDxnPgogICAgPHJlY3QgZmlsbD0ibm9uZSIgaGVpZ2h0PSIyNCIgd2lkdGg9IjI0Ii8+CiAgICA8Zz4KICAgICAgPHBhdGggZD0iTTguOSw2LjA3TDcuNDgsNC42Nkw5LDNoNmwxLjgzLDJIMjBjMS4xLDAsMiwwLjksMiwydjEyYzAsMC4wNS0wLjAxLDAuMS0wLjAyLDAuMTZMMjAsMTcuMTdWN2gtNC4wNWwtMS44My0ySDkuODggTDguOSw2LjA3eiBNMjAuNDksMjMuMzFMMTguMTcsMjFINGMtMS4xLDAtMi0wLjktMi0yVjdjMC0wLjU5LDAuMjctMS4xMiwwLjY4LTEuNDlsLTItMkwyLjEsMi4xbDE5LjgsMTkuOEwyMC40OSwyMy4zMXogTTkuMTksMTIuMDJDOS4wOCwxMi4zMyw5LDEyLjY1LDksMTNjMCwxLjY2LDEuMzQsMywzLDNjMC4zNSwwLDAuNjctMC4wOCwwLjk4LTAuMTlMOS4xOSwxMi4wMnogTTE2LjE3LDE5bC0xLjY4LTEuNjggQzEzLjc2LDE3Ljc1LDEyLjkxLDE4LDEyLDE4Yy0yLjc2LDAtNS0yLjI0LTUtNWMwLTAuOTEsMC4yNS0xLjc2LDAuNjgtMi40OUw0LjE3LDdINHYxMkgxNi4xN3ogTTE0LjgxLDExLjk4bDIuMDcsMi4wNyBDMTYuOTYsMTMuNzEsMTcsMTMuMzYsMTcsMTNjMC0yLjc2LTIuMjQtNS01LTVjLTAuMzYsMC0wLjcxLDAuMDQtMS4wNiwwLjEybDIuMDcsMi4wN0MxMy44NSwxMC40OSwxNC41MSwxMS4xNSwxNC44MSwxMS45OHoiLz4KICAgIDwvZz4KICA8L2c+Cjwvc3ZnPg=="},Symbol.toStringTag,{value:"Module"}));return y}));
@@ -1,66 +1,64 @@
1
- import type { PropType } from 'vue';
2
- declare const _default: import("vue").DefineComponent<{
3
- src: {
4
- type: StringConstructor;
5
- default: undefined;
6
- };
7
- path: {
8
- type: StringConstructor;
9
- default: undefined;
10
- };
11
- name: {
12
- type: StringConstructor;
13
- default: undefined;
14
- };
15
- size: {
16
- type: StringConstructor;
17
- default: string;
18
- };
19
- title: {
20
- type: StringConstructor;
21
- default: undefined;
22
- };
23
- transformSource: {
24
- type: PropType<(param: SVGElement) => SVGElement>;
25
- default: (svg: SVGElement) => SVGElement;
26
- };
27
- }, (_ctx: any, _cache: any) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
28
- [key: string]: any;
29
- }>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("loaded" | "unloaded" | "error")[], "loaded" | "unloaded" | "error", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
30
- src: {
31
- type: StringConstructor;
32
- default: undefined;
33
- };
34
- path: {
35
- type: StringConstructor;
36
- default: undefined;
37
- };
38
- name: {
39
- type: StringConstructor;
40
- default: undefined;
41
- };
42
- size: {
43
- type: StringConstructor;
44
- default: string;
45
- };
46
- title: {
47
- type: StringConstructor;
48
- default: undefined;
49
- };
50
- transformSource: {
51
- type: PropType<(param: SVGElement) => SVGElement>;
52
- default: (svg: SVGElement) => SVGElement;
53
- };
54
- }>> & {
55
- onLoaded?: ((...args: any[]) => any) | undefined;
56
- onUnloaded?: ((...args: any[]) => any) | undefined;
57
- onError?: ((...args: any[]) => any) | undefined;
58
- }, {
59
- src: string;
60
- path: string;
61
- name: string;
62
- size: string;
63
- title: string;
64
- transformSource: (param: SVGElement) => SVGElement;
65
- }>;
66
- export default _default;
1
+ import type { PropType } from 'vue';
2
+ declare const _default: import("vue").DefineComponent<{
3
+ src: {
4
+ type: StringConstructor;
5
+ default: undefined;
6
+ };
7
+ path: {
8
+ type: StringConstructor;
9
+ default: undefined;
10
+ };
11
+ name: {
12
+ type: StringConstructor;
13
+ default: undefined;
14
+ };
15
+ size: {
16
+ type: StringConstructor;
17
+ default: string;
18
+ };
19
+ title: {
20
+ type: StringConstructor;
21
+ default: undefined;
22
+ };
23
+ transformSource: {
24
+ type: PropType<(param: SVGElement) => SVGElement>;
25
+ default: (svg: SVGElement) => SVGElement;
26
+ };
27
+ }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("error" | "loaded" | "unloaded")[], "error" | "loaded" | "unloaded", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
28
+ src: {
29
+ type: StringConstructor;
30
+ default: undefined;
31
+ };
32
+ path: {
33
+ type: StringConstructor;
34
+ default: undefined;
35
+ };
36
+ name: {
37
+ type: StringConstructor;
38
+ default: undefined;
39
+ };
40
+ size: {
41
+ type: StringConstructor;
42
+ default: string;
43
+ };
44
+ title: {
45
+ type: StringConstructor;
46
+ default: undefined;
47
+ };
48
+ transformSource: {
49
+ type: PropType<(param: SVGElement) => SVGElement>;
50
+ default: (svg: SVGElement) => SVGElement;
51
+ };
52
+ }>> & {
53
+ onLoaded?: ((...args: any[]) => any) | undefined;
54
+ onError?: ((...args: any[]) => any) | undefined;
55
+ onUnloaded?: ((...args: any[]) => any) | undefined;
56
+ }, {
57
+ src: string;
58
+ title: string;
59
+ size: string;
60
+ path: string;
61
+ name: string;
62
+ transformSource: (param: SVGElement) => SVGElement;
63
+ }>;
64
+ export default _default;
@@ -0,0 +1,161 @@
1
+ (function(){"use strict";try{if(typeof document!="undefined"){var e=document.createElement("style");e.appendChild(document.createTextNode("")),document.head.appendChild(e)}}catch(t){console.error("vite-plugin-css-injected-by-js",t)}})();
2
+ import { inject, defineComponent, ref, computed, onMounted, watchEffect, openBlock, createElementBlock, mergeProps, createCommentVNode, nextTick } from "vue";
3
+ function injectStrict(key, fallback) {
4
+ const resolved = inject(key, fallback);
5
+ if (!resolved) {
6
+ throw new Error(`[maz-ui](injectStrict) Could not resolve ${key}`);
7
+ }
8
+ return resolved;
9
+ }
10
+ const _hoisted_1 = ["innerHTML"];
11
+ const _sfc_main = /* @__PURE__ */ defineComponent({
12
+ __name: "MazIcon",
13
+ props: {
14
+ src: { type: String, default: void 0 },
15
+ path: { type: String, default: void 0 },
16
+ name: { type: String, default: void 0 },
17
+ size: { type: String, default: "1.5rem" },
18
+ title: { type: String, default: void 0 },
19
+ transformSource: {
20
+ type: Function,
21
+ default: (svg) => svg
22
+ }
23
+ },
24
+ emits: ["loaded", "unloaded", "error"],
25
+ setup(__props, { emit: emits }) {
26
+ const props = __props;
27
+ const cache = {};
28
+ const svgElSource = ref();
29
+ const svgElem = ref();
30
+ const getMazIconPath = () => {
31
+ try {
32
+ return injectStrict("mazIconPath");
33
+ } catch {
34
+ return void 0;
35
+ }
36
+ };
37
+ const iconPath = computed(() => props.path ?? getMazIconPath());
38
+ const fullSrc = computed(() => {
39
+ if (props.src) {
40
+ return props.src;
41
+ } else if (iconPath.value) {
42
+ return `${iconPath.value}/${props.name}.svg`;
43
+ } else {
44
+ return `/${props.name}.svg`;
45
+ }
46
+ });
47
+ onMounted(() => {
48
+ if (!props.name && !props.src) {
49
+ console.error(
50
+ '[maz-ui](MazIcon) you should provide "name" or "src" as prop'
51
+ );
52
+ }
53
+ });
54
+ const setTitle = (svg, title) => {
55
+ const titleTags = svg.querySelectorAll("title");
56
+ if (titleTags.length > 0) {
57
+ titleTags[0].textContent = title;
58
+ } else {
59
+ const titleEl = document.createElementNS(
60
+ "http://www.w3.org/2000/svg",
61
+ "title"
62
+ );
63
+ titleEl.textContent = title;
64
+ svg.append(titleEl);
65
+ }
66
+ };
67
+ const filterAttrs = (attrs) => {
68
+ return Object.keys(attrs).reduce((result, key) => {
69
+ if (attrs[key] !== false && attrs[key] !== null && attrs[key] !== void 0) {
70
+ result[key] = attrs[key];
71
+ }
72
+ return result;
73
+ }, {});
74
+ };
75
+ const getSvgAttrs = (svgEl) => {
76
+ const svgAttrs = {};
77
+ const attrs = svgEl.attributes;
78
+ if (!attrs) {
79
+ return svgAttrs;
80
+ }
81
+ for (let i = attrs.length - 1; i >= 0; i--) {
82
+ svgAttrs[attrs[i].name] = attrs[i].value;
83
+ }
84
+ return svgAttrs;
85
+ };
86
+ const getSvgContent = (svgEl) => {
87
+ let svgElNode = svgEl.cloneNode(true);
88
+ svgElNode = props.transformSource(svgEl);
89
+ if (props.title) {
90
+ setTitle(svgElNode, props.title);
91
+ }
92
+ return svgEl.innerHTML;
93
+ };
94
+ const getSource = async (src) => {
95
+ if (!cache[src]) {
96
+ cache[src] = download(src);
97
+ }
98
+ try {
99
+ svgElSource.value = await cache[src];
100
+ await nextTick();
101
+ emits("loaded", svgElem.value);
102
+ } catch (error) {
103
+ if (svgElSource.value) {
104
+ svgElSource.value = void 0;
105
+ emits("unloaded");
106
+ }
107
+ delete cache[src];
108
+ emits("error", error);
109
+ }
110
+ };
111
+ const download = (url) => {
112
+ return new Promise((resolve, reject) => {
113
+ const request = new XMLHttpRequest();
114
+ request.open("GET", url, true);
115
+ request.addEventListener("load", () => {
116
+ if (request.status >= 200 && request.status < 400) {
117
+ try {
118
+ const parser = new DOMParser();
119
+ const result = parser.parseFromString(
120
+ request.responseText,
121
+ "text/xml"
122
+ );
123
+ let svgEl = result.querySelectorAll("svg")[0];
124
+ if (svgEl) {
125
+ svgEl = props.transformSource(svgEl);
126
+ resolve(svgEl);
127
+ } else {
128
+ reject(new Error('Loaded file is not valid SVG"'));
129
+ }
130
+ } catch (error) {
131
+ reject(error);
132
+ }
133
+ } else {
134
+ reject(new Error("Error loading SVG"));
135
+ }
136
+ });
137
+ request.addEventListener("error", () => reject());
138
+ request.send();
139
+ });
140
+ };
141
+ watchEffect(() => getSource(fullSrc.value));
142
+ return (_ctx, _cache) => {
143
+ return svgElSource.value ? (openBlock(), createElementBlock("svg", mergeProps({
144
+ key: 0,
145
+ ref_key: "svgElem",
146
+ ref: svgElem,
147
+ width: "1em",
148
+ height: "1em"
149
+ }, {
150
+ ...getSvgAttrs(svgElSource.value),
151
+ ...filterAttrs(_ctx.$attrs)
152
+ }, {
153
+ style: `font-size: ${__props.size}`,
154
+ innerHTML: getSvgContent(svgElSource.value)
155
+ }), null, 16, _hoisted_1)) : createCommentVNode("", true);
156
+ };
157
+ }
158
+ });
159
+ export {
160
+ _sfc_main as default
161
+ };
@@ -0,0 +1,2 @@
1
+ (function(){"use strict";try{if(typeof document!="undefined"){var e=document.createElement("style");e.appendChild(document.createTextNode("")),document.head.appendChild(e)}}catch(t){console.error("vite-plugin-css-injected-by-js",t)}})();
2
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("vue")):"function"==typeof define&&define.amd?define(["vue"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).MazIcon=t(e.Vue)}(this,(function(e){"use strict";const t=["innerHTML"];return e.defineComponent({__name:"MazIcon",props:{src:{type:String,default:void 0},path:{type:String,default:void 0},name:{type:String,default:void 0},size:{type:String,default:"1.5rem"},title:{type:String,default:void 0},transformSource:{type:Function,default:e=>e}},emits:["loaded","unloaded","error"],setup(r,{emit:n}){const o=r,a={},l=e.ref(),i=e.ref(),u=()=>{try{return function(t,r){const n=e.inject(t,r);if(!n)throw new Error(`[maz-ui](injectStrict) Could not resolve ${t}`);return n}("mazIconPath")}catch{return}},s=e.computed((()=>o.path??u())),c=e.computed((()=>o.src?o.src:s.value?`${s.value}/${o.name}.svg`:`/${o.name}.svg`));e.onMounted((()=>{o.name||o.src||console.error('[maz-ui](MazIcon) you should provide "name" or "src" as prop')}));const d=e=>{const t={},r=e.attributes;if(!r)return t;for(let n=r.length-1;n>=0;n--)t[r[n].name]=r[n].value;return t},f=e=>{let t=e.cloneNode(!0);return t=o.transformSource(e),o.title&&((e,t)=>{const r=e.querySelectorAll("title");if(r.length>0)r[0].textContent=t;else{const r=document.createElementNS("http://www.w3.org/2000/svg","title");r.textContent=t,e.append(r)}})(t,o.title),e.innerHTML},m=e=>new Promise(((t,r)=>{const n=new XMLHttpRequest;n.open("GET",e,!0),n.addEventListener("load",(()=>{if(n.status>=200&&n.status<400)try{const e=new DOMParser;let a=e.parseFromString(n.responseText,"text/xml").querySelectorAll("svg")[0];a?(a=o.transformSource(a),t(a)):r(new Error('Loaded file is not valid SVG"'))}catch(e){r(e)}else r(new Error("Error loading SVG"))})),n.addEventListener("error",(()=>r())),n.send()}));return e.watchEffect((()=>(async t=>{a[t]||(a[t]=m(t));try{l.value=await a[t],await e.nextTick(),n("loaded",i.value)}catch(r){l.value&&(l.value=void 0,n("unloaded")),delete a[t],n("error",r)}})(c.value))),(n,o)=>{return l.value?(e.openBlock(),e.createElementBlock("svg",e.mergeProps({key:0,ref_key:"svgElem",ref:i,width:"1em",height:"1em"},{...d(l.value),...(a=n.$attrs,Object.keys(a).reduce(((e,t)=>(!1!==a[t]&&null!==a[t]&&void 0!==a[t]&&(e[t]=a[t]),e)),{}))},{style:`font-size: ${r.size}`,innerHTML:f(l.value)}),null,16,t)):e.createCommentVNode("",!0);var a}}})}));