import{a9 as M,u as W,aa as T,c as y,d as q,r as I,O as F,o as U,M as D}from"./CmTSwR0m.js";const B=/#/g,G=/&/g,X=/\//g,J=/\?/g,Q=/\+/g,V=/%7c/gi,k=/%252f/gi;function Z(e){return encodeURI(""+e).replace(V,"|")}function P(e){return Z(e).replace(B,"%23").replace(J,"%3F").replace(k,"%2F").replace(G,"%26").replace(Q,"%2B")}function x(e){return P(e).replace(X,"%2F")}const Y=/^[\s\w\0+.-]{2,}:([/\\]{1,2})/,K=/^[\s\w\0+.-]{2,}:([/\\]{2})?/,ee=/^([/\\]\s*){2,}[^/\\]/;function _(e,t={}){return typeof t=="boolean"&&(t={acceptRelative:t}),t.strict?Y.test(e):K.test(e)||(t.acceptRelative?ee.test(e):!1)}function te(e="",t){return e.endsWith("/")?e:e+"/"}function ie(e=""){return e.startsWith("/")}function re(e=""){return ie(e)?e:"/"+e}function ne(e){return e&&e!=="/"}const oe=/^\.?\//;function S(e,...t){let r=e||"";for(const i of t.filter(n=>ne(n)))if(r){const n=i.replace(oe,"");r=te(r)+n}else r=i;return r}function j(e="",t){const r=e.match(/^[\s\0]*(blob:|data:|javascript:|vbscript:)(.*)/i);if(r){const[,u,p=""]=r;return{protocol:u.toLowerCase(),pathname:p,href:u+p,auth:"",host:"",search:"",hash:""}}if(!_(e,{acceptRelative:!0}))return t?j(t+e):A(e);const[,i="",n,o=""]=e.replace(/\\/g,"/").match(/^[\s\0]*([\w+.-]{2,}:)?\/\/([^/@]+@)?(.*)/)||[],[,s="",c=""]=o.match(/([^#/?]*)(.*)?/)||[],{pathname:d,search:l,hash:f}=A(c.replace(/\/(?=[A-Za-z]:)/,""));return{protocol:i.toLowerCase(),auth:n?n.slice(0,Math.max(0,n.length-1)):"",host:s,pathname:d,search:l,hash:f}}function A(e=""){const[t="",r="",i=""]=(e.match(/([^#?]*)(\?[^#]*)?(#.*)?/)||[]).splice(1);return{pathname:t,search:r,hash:i}}async function se(e,t){return await ae(t).catch(i=>(console.error("Failed to get image meta for "+t,i+""),{width:0,height:0,ratio:0}))}async function ae(e){if(typeof Image>"u")throw new TypeError("Image not supported");return new Promise((t,r)=>{const i=new Image;i.onload=()=>{const n={width:i.width,height:i.height,ratio:i.width/i.height};t(n)},i.onerror=n=>r(n),i.src=e})}function O(e){return t=>t?e[t]||t:e.missingValue}function ce({formatter:e,keyMap:t,joinWith:r="/",valueMap:i}={}){e||(e=(o,s)=>`${o}=${s}`),t&&typeof t!="function"&&(t=O(t));const n=i||{};return Object.keys(n).forEach(o=>{typeof n[o]!="function"&&(n[o]=O(n[o]))}),(o={})=>Object.entries(o).filter(([c,d])=>typeof d<"u").map(([c,d])=>{const l=n[c];return typeof l=="function"&&(d=l(o[c])),c=typeof t=="function"?t(c):c,e(c,d)}).join(r)}function m(e=""){if(typeof e=="number")return e;if(typeof e=="string"&&e.replace("px","").match(/^\d+$/g))return parseInt(e,10)}function de(e=""){if(e===void 0||!e.length)return[];const t=new Set;for(const r of e.split(" ")){const i=parseInt(r.replace("x",""));i&&t.add(i)}return Array.from(t)}function le(e){if(e.length===0)throw new Error("`densities` must not be empty, configure to `1` to render regular size only (DPR 1.0)")}function fe(e){const t={};if(typeof e=="string")for(const r of e.split(/[\s,]+/).filter(i=>i)){const i=r.split(":");i.length!==2?t["1px"]=i[0].trim():t[i[0].trim()]=i[1].trim()}else Object.assign(t,e);return t}function ue(e){const t={options:e},r=(n,o={})=>N(t,n,o),i=(n,o={},s={})=>r(n,{...s,modifiers:M(o,s.modifiers||{})}).url;for(const n in e.presets)i[n]=(o,s,c)=>i(o,s,{...e.presets[n],...c});return i.options=e,i.getImage=r,i.getMeta=(n,o)=>he(t,n,o),i.getSizes=(n,o)=>ve(t,n,o),t.$img=i,i}async function he(e,t,r){const i=N(e,t,{...r});return typeof i.getMeta=="function"?await i.getMeta():await se(e,i.url)}function N(e,t,r){var l,f;if(typeof t!="string"||t==="")throw new TypeError(`input must be a string (received ${typeof t}: ${JSON.stringify(t)})`);if(t.startsWith("data:"))return{url:t};const{provider:i,defaults:n}=ge(e,r.provider||e.options.provider),o=me(e,r.preset);if(t=_(t)?t:re(t),!i.supportsAlias)for(const u in e.options.alias)t.startsWith(u)&&(t=S(e.options.alias[u],t.substr(u.length)));if(i.validateDomains&&_(t)){const u=j(t).host;if(!e.options.domains.find(p=>p===u))return{url:t}}const s=M(r,o,n);s.modifiers={...s.modifiers};const c=s.modifiers.format;(l=s.modifiers)!=null&&l.width&&(s.modifiers.width=m(s.modifiers.width)),(f=s.modifiers)!=null&&f.height&&(s.modifiers.height=m(s.modifiers.height));const d=i.getImage(t,s,e);return d.format=d.format||c||"",d}function ge(e,t){const r=e.options.providers[t];if(!r)throw new Error("Unknown provider: "+t);return r}function me(e,t){if(!t)return{};if(!e.options.presets[t])throw new Error("Unknown preset: "+t);return e.options.presets[t]}function ve(e,t,r){var g,b,E,R,z;const i=m((g=r.modifiers)==null?void 0:g.width),n=m((b=r.modifiers)==null?void 0:b.height),o=fe(r.sizes),s=(E=r.densities)!=null&&E.trim()?de(r.densities.trim()):e.options.densities;le(s);const c=i&&n?n/i:0,d=[],l=[];if(Object.keys(o).length>=1){for(const h in o){const v=$(h,String(o[h]),n,c,e);if(v!==void 0){d.push({size:v.size,screenMaxWidth:v.screenMaxWidth,media:`(max-width: ${v.screenMaxWidth}px)`});for(const w of s)l.push({width:v._cWidth*w,src:L(e,t,r,v,w)})}}pe(d)}else for(const h of s){const v=Object.keys(o)[0];let w=$(v,String(o[v]),n,c,e);w===void 0&&(w={size:"",screenMaxWidth:0,_cWidth:(R=r.modifiers)==null?void 0:R.width,_cHeight:(z=r.modifiers)==null?void 0:z.height}),l.push({width:h,src:L(e,t,r,w,h)})}ye(l);const f=l[l.length-1],u=d.length?d.map(h=>`${h.media?h.media+" ":""}${h.size}`).join(", "):void 0,p=u?"w":"x",a=l.map(h=>`${h.src} ${h.width}${p}`).join(", ");return{sizes:u,srcset:a,src:f==null?void 0:f.src}}function $(e,t,r,i,n){const o=n.options.screens&&n.options.screens[e]||parseInt(e),s=t.endsWith("vw");if(!s&&/^\d+$/.test(t)&&(t=t+"px"),!s&&!t.endsWith("px"))return;let c=parseInt(t);if(!o||!c)return;s&&(c=Math.round(c/100*o));const d=i?Math.round(c*i):r;return{size:t,screenMaxWidth:o,_cWidth:c,_cHeight:d}}function L(e,t,r,i,n){return e.$img(t,{...r.modifiers,width:i._cWidth?i._cWidth*n:void 0,height:i._cHeight?i._cHeight*n:void 0},r)}function pe(e){var r;e.sort((i,n)=>i.screenMaxWidth-n.screenMaxWidth);let t=null;for(let i=e.length-1;i>=0;i--){const n=e[i];n.media===t&&e.splice(i,1),t=n.media}for(let i=0;ir.width-i.width);let t=null;for(let r=e.length-1;r>=0;r--){const i=e[r];i.width===t&&e.splice(r,1),t=i.width}}const we=ce({keyMap:{format:"f",fit:"fit",width:"w",height:"h",resize:"s",quality:"q",background:"b"},joinWith:"&",formatter:(e,t)=>x(e)+"_"+x(t)}),_e=(e,{modifiers:t={},baseURL:r}={},i)=>{t.width&&t.height&&(t.resize=`${t.width}x${t.height}`,delete t.width,delete t.height);const n=we(t)||"_";return r||(r=S(i.options.nuxt.baseURL,"/_ipx")),{url:S(r,n,P(e))}},Se=!0,be=!0,Ee=Object.freeze(Object.defineProperty({__proto__:null,getImage:_e,supportsAlias:be,validateDomains:Se},Symbol.toStringTag,{value:"Module"})),H={screens:{xs:320,sm:640,md:768,lg:1024,xl:1280,xxl:1536,"2xl":1536},presets:{},provider:"ipx",domains:[],alias:{},densities:[1,2],format:["webp"]};H.providers={ipx:{provider:Ee,defaults:{}}};const C=()=>{const e=T(),t=W();return t.$img||t._img||(t._img=ue({...H,nuxt:{baseURL:e.app.baseURL}}))},Re={src:{type:String,required:!0},format:{type:String,default:void 0},quality:{type:[Number,String],default:void 0},background:{type:String,default:void 0},fit:{type:String,default:void 0},modifiers:{type:Object,default:void 0},preset:{type:String,default:void 0},provider:{type:String,default:void 0},sizes:{type:[Object,String],default:void 0},densities:{type:String,default:void 0},preload:{type:Boolean,default:void 0},width:{type:[String,Number],default:void 0},height:{type:[String,Number],default:void 0},alt:{type:String,default:void 0},referrerpolicy:{type:String,default:void 0},usemap:{type:String,default:void 0},longdesc:{type:String,default:void 0},ismap:{type:Boolean,default:void 0},loading:{type:String,default:void 0,validator:e=>["lazy","eager"].includes(e)},crossorigin:{type:[Boolean,String],default:void 0,validator:e=>["anonymous","use-credentials","",!0,!1].includes(e)},decoding:{type:String,default:void 0,validator:e=>["async","auto","sync"].includes(e)},nonce:{type:[String],default:void 0}},ze=e=>{const t=y(()=>({provider:e.provider,preset:e.preset})),r=y(()=>({width:m(e.width),height:m(e.height),alt:e.alt,referrerpolicy:e.referrerpolicy,usemap:e.usemap,longdesc:e.longdesc,ismap:e.ismap,crossorigin:e.crossorigin===!0?"anonymous":e.crossorigin||void 0,loading:e.loading,decoding:e.decoding,nonce:e.nonce})),i=C(),n=y(()=>({...e.modifiers,width:m(e.width),height:m(e.height),format:e.format,quality:e.quality||i.options.quality,background:e.background,fit:e.fit}));return{options:t,attrs:r,modifiers:n}},Ie={...Re,placeholder:{type:[Boolean,String,Number,Array],default:void 0}},Ae=q({name:"NuxtImg",props:Ie,emits:["load","error"],setup:(e,t)=>{const r=C(),i=ze(e),n=I(!1),o=y(()=>r.getSizes(e.src,{...i.options.value,sizes:e.sizes,densities:e.densities,modifiers:{...i.modifiers.value,width:m(e.width),height:m(e.height)}})),s=y(()=>{const a={...i.attrs.value,"data-nuxt-img":""};return(!e.placeholder||n.value)&&(a.sizes=o.value.sizes,a.srcset=o.value.srcset),a}),c=y(()=>{let a=e.placeholder;if(a===""&&(a=!0),!a||n.value)return!1;if(typeof a=="string")return a;const g=Array.isArray(a)?a:typeof a=="number"?[a,a]:[10,10];return r(e.src,{...i.modifiers.value,width:g[0],height:g[1],quality:g[2]||50,blur:g[3]||3},i.options.value)}),d=y(()=>e.sizes?o.value.src:r(e.src,i.modifiers.value,i.options.value)),l=y(()=>c.value?c.value:d.value);if(e.preload){const a=Object.values(o.value).every(g=>g);F({link:[{rel:"preload",as:"image",nonce:e.nonce,...a?{href:o.value.src,imagesizes:o.value.sizes,imagesrcset:o.value.srcset}:{href:l.value}}]})}const f=I(),p=W().isHydrating;return U(()=>{if(c.value){const a=new Image;a.src=d.value,e.sizes&&(a.sizes=o.value.sizes||"",a.srcset=o.value.srcset),a.onload=g=>{n.value=!0,t.emit("load",g)};return}f.value&&(f.value.complete&&p&&(f.value.getAttribute("data-error")?t.emit("error",new Event("error")):t.emit("load",new Event("load"))),f.value.onload=a=>{t.emit("load",a)},f.value.onerror=a=>{t.emit("error",a)})}),()=>D("img",{ref:f,src:l.value,...s.value,...t.attrs})}});export{Ae as _};