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.
- package/components/MazAvatar.d.ts +156 -149
- package/components/MazAvatar.mjs +656 -0
- package/components/MazAvatar.umd.js +2 -0
- package/components/MazBackdrop.d.ts +89 -89
- package/components/MazBackdrop.mjs +140 -0
- package/components/MazBackdrop.umd.js +2 -0
- package/components/MazBadge.d.ts +73 -68
- package/components/MazBadge.mjs +61 -0
- package/components/MazBadge.umd.js +2 -0
- package/components/MazBottomSheet.d.ts +36 -29
- package/components/MazBottomSheet.mjs +553 -0
- package/components/MazBottomSheet.umd.js +2 -0
- package/components/MazBtn.d.ts +178 -171
- package/components/MazBtn.mjs +371 -0
- package/components/MazBtn.umd.js +2 -0
- package/components/MazCard.d.ts +194 -183
- package/components/MazCard.mjs +1390 -0
- package/components/MazCard.umd.js +2 -0
- package/components/MazCarousel.d.ts +24 -16
- package/components/MazCarousel.mjs +469 -0
- package/components/MazCarousel.umd.js +2 -0
- package/components/MazChart/includes.d.ts +11 -11
- package/components/MazChart.d.ts +114 -114
- package/components/MazChart.mjs +135 -0
- package/components/MazChart.umd.js +2 -0
- package/components/MazCheckbox.d.ts +54 -49
- package/components/MazCheckbox.mjs +86 -0
- package/components/MazCheckbox.umd.js +2 -0
- package/components/MazDialog.d.ts +40 -29
- package/components/MazDialog.mjs +566 -0
- package/components/MazDialog.umd.js +2 -0
- package/components/MazDialogPromise/use-maz-dialog-promise.d.ts +30 -30
- package/components/MazDialogPromise.d.ts +36 -28
- package/components/MazDialogPromise.mjs +692 -0
- package/components/MazDialogPromise.umd.js +2 -0
- package/components/MazDrawer.d.ts +69 -59
- package/components/MazDrawer.mjs +572 -0
- package/components/MazDrawer.umd.js +2 -0
- package/components/MazDropzone.d.ts +128 -128
- package/components/MazDropzone.mjs +369 -0
- package/components/MazDropzone.umd.js +2 -0
- package/components/MazGallery.d.ts +144 -144
- package/components/MazGallery.mjs +948 -0
- package/components/MazGallery.umd.js +2 -0
- package/components/MazIcon.d.ts +64 -66
- package/components/MazIcon.mjs +161 -0
- package/components/MazIcon.umd.js +2 -0
- package/components/MazInput.d.ts +276 -276
- package/components/MazInput.mjs +750 -0
- package/components/MazInput.umd.js +2 -0
- package/components/MazInputNumber.d.ts +65 -67
- package/components/MazInputNumber.mjs +857 -0
- package/components/MazInputNumber.umd.js +2 -0
- package/components/MazInputPrice.d.ts +69 -64
- package/components/MazInputPrice.mjs +889 -0
- package/components/MazInputPrice.umd.js +2 -0
- package/components/MazInputTags.d.ts +94 -96
- package/components/MazInputTags.mjs +904 -0
- package/components/MazInputTags.umd.js +2 -0
- package/components/MazLazyImg.d.ts +85 -80
- package/components/MazLazyImg.mjs +376 -0
- package/components/MazLazyImg.umd.js +2 -0
- package/components/MazPhoneNumberInput/constantes/locales.d.ts +12 -12
- package/components/MazPhoneNumberInput/types.d.ts +21 -21
- package/components/MazPhoneNumberInput/utils/countries-name-list-by-iso-code.d.ts +2 -2
- package/components/MazPhoneNumberInput/utils/index.d.ts +12 -12
- package/components/MazPhoneNumberInput.d.ts +253 -255
- package/components/MazPhoneNumberInput.mjs +1904 -0
- package/components/MazPhoneNumberInput.umd.js +2 -0
- package/components/MazPicker/MazPickerCalendar.vue.d.ts +135 -137
- package/components/MazPicker/MazPickerCalendarMonth/MazPickerCalendarDays.vue.d.ts +20 -22
- package/components/MazPicker/MazPickerCalendarMonth/MazPickerCalendarGrid.vue.d.ts +112 -114
- package/components/MazPicker/MazPickerCalendarMonth/MazPickerCalendarMonth.vue.d.ts +122 -124
- package/components/MazPicker/MazPickerCalendarSwitcher.vue.d.ts +36 -38
- package/components/MazPicker/MazPickerContainer.vue.d.ts +210 -212
- package/components/MazPicker/MazPickerFooter.vue.d.ts +16 -0
- package/components/MazPicker/MazPickerHeader.vue.d.ts +82 -84
- package/components/MazPicker/MazPickerMonthSwitcher.vue.d.ts +41 -43
- package/components/MazPicker/MazPickerShortcuts.vue.d.ts +60 -62
- package/components/MazPicker/MazPickerTime.vue.d.ts +127 -129
- package/components/MazPicker/MazPickerYearSwitcher.vue.d.ts +33 -35
- package/components/MazPicker/types.d.ts +15 -15
- package/components/MazPicker/utils.d.ts +54 -54
- package/components/MazPicker.d.ts +311 -313
- package/components/MazPicker.mjs +2942 -0
- package/components/MazPicker.umd.js +2 -0
- package/components/MazRadioButtons.d.ts +77 -69
- package/components/MazRadioButtons.mjs +80 -0
- package/components/MazRadioButtons.umd.js +2 -0
- package/components/MazSelect.d.ts +185 -176
- package/components/MazSelect.mjs +1082 -0
- package/components/MazSelect.umd.js +2 -0
- package/components/MazSlider/utils.d.ts +15 -15
- package/components/MazSlider.d.ts +94 -96
- package/components/MazSlider.mjs +377 -0
- package/components/MazSlider.umd.js +2 -0
- package/components/MazSpinner.d.ts +28 -30
- package/components/MazSpinner.mjs +59 -0
- package/components/MazSpinner.umd.js +2 -0
- package/components/MazStepper.d.ts +71 -73
- package/components/MazStepper.mjs +227 -0
- package/components/MazStepper.umd.js +2 -0
- package/components/MazSwitch.d.ts +54 -56
- package/components/MazSwitch.mjs +61 -0
- package/components/MazSwitch.umd.js +2 -0
- package/components/MazTabsBar.d.ts +47 -49
- package/components/MazTabsBar.mjs +470 -0
- package/components/MazTabsBar.umd.js +2 -0
- package/components/MazTabsContent.d.ts +21 -16
- package/components/MazTabsContent.mjs +89 -0
- package/components/MazTabsContent.umd.js +2 -0
- package/components/MazTabsContentItem.d.ts +19 -14
- package/components/MazTabsContentItem.mjs +61 -0
- package/components/MazTabsContentItem.umd.js +2 -0
- package/components/MazTextarea/textarea-autogrow.d.ts +9 -9
- package/components/MazTextarea.d.ts +123 -125
- package/components/MazTextarea.mjs +260 -0
- package/components/MazTextarea.umd.js +2 -0
- package/components/MazTransitionExpand.d.ts +9 -4
- package/components/MazTransitionExpand.mjs +62 -0
- package/components/MazTransitionExpand.umd.js +2 -0
- package/components/index.d.ts +33 -34
- package/components/index.mjs +35 -0
- package/components/index.umd.js +35 -0
- package/components/no_photo-410a8f01.mjs +4 -0
- package/components/types.d.ts +17 -17
- package/css/main.css +1 -1
- package/maz-ui.d.ts +234 -231
- package/modules/maz-ui.mjs +1892 -0
- package/modules/maz-ui.umd.js +2 -0
- package/modules/no_photo-410a8f01.mjs +4 -0
- package/package.json +45 -54
- package/tailwindcss/tailwind.config.js +6 -7
- package/tailwindcss/utils/colors.js +1 -3
- package/tailwindcss/variables/breakpoints.js +1 -2
- package/tailwindcss/variables/utilities.js +1 -2
- package/tailwindcss/variables/z-indexes.js +1 -1
- package/components/MazArrowIcon.d.ts +0 -43
- package/components/MazArrowIcon.js +0 -1
- package/components/MazAvatar.js +0 -3
- package/components/MazBackdrop.js +0 -3
- package/components/MazBadge.js +0 -1
- package/components/MazBottomSheet.js +0 -3
- package/components/MazBtn.js +0 -3
- package/components/MazCard.js +0 -3
- package/components/MazCarousel.js +0 -3
- package/components/MazChart.js +0 -1
- package/components/MazCheckbox.js +0 -1
- package/components/MazDialog.js +0 -3
- package/components/MazDialogPromise.js +0 -3
- package/components/MazDrawer.js +0 -3
- package/components/MazDropzone.js +0 -3
- package/components/MazGallery.js +0 -3
- package/components/MazIcon.js +0 -3
- package/components/MazInput.js +0 -3
- package/components/MazInputNumber.js +0 -3
- package/components/MazInputPrice.js +0 -3
- package/components/MazInputTags.js +0 -3
- package/components/MazLazyImg.js +0 -3
- package/components/MazPhoneNumberInput.js +0 -3
- package/components/MazPicker.js +0 -3
- package/components/MazRadioButtons.js +0 -1
- package/components/MazSelect.js +0 -3
- package/components/MazSlider.js +0 -3
- package/components/MazSpinner.js +0 -1
- package/components/MazStepper.js +0 -1
- package/components/MazSwitch.js +0 -1
- package/components/MazTabsBar.js +0 -3
- package/components/MazTabsContent.js +0 -1
- package/components/MazTabsContentItem.js +0 -3
- package/components/MazTextarea.js +0 -1
- package/components/MazTransitionExpand.js +0 -1
- package/components/index.js +0 -36
- package/components/no_photo-a72545e4.js +0 -1
- package/modules/index.js +0 -3
- 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}));
|
package/components/MazIcon.d.ts
CHANGED
|
@@ -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
|
-
}, (
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
path: string;
|
|
61
|
-
name: string;
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
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}}})}));
|