import{a4 as b,aH as q,aI as j,aJ as L,aa as O,a5 as x,a9 as P,l as p,aK as R,aL as C,U,o as H,c as B,m as z,r as T,ae as X,Y as D}from"./fO2_7PTR.js";async function F(e,t){return await J(t).catch(r=>(console.error("Failed to get image meta for "+t,r+""),{width:0,height:0,ratio:0}))}async function J(e){if(typeof Image>"u")throw new TypeError("Image not supported");return new Promise((t,i)=>{const r=new Image;r.onload=()=>{const s={width:r.width,height:r.height,ratio:r.width/r.height};t(s)},r.onerror=s=>i(s),r.src=e})}function Q(e=""){if(e===void 0||!e.length)return[];const t=new Set;for(const i of e.split(" ")){const r=Number.parseInt(i.replace("x",""));r&&t.add(r)}return Array.from(t)}function V(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 y(e=""){if(typeof e=="number")return e;if(typeof e=="string"&&e.replace("px","").match(/^\d+$/g))return Number.parseInt(e,10)}function Y(e){const t={};if(typeof e=="string")for(const i of e.split(/[\s,]+/).filter(r=>r)){const r=i.split(":");r.length!==2?t["1px"]=r[0].trim():t[r[0].trim()]=r[1].trim()}else Object.assign(t,e);return t}function K(e){const t={options:e},i=(s,o={})=>$(t,s,o),r=((s,o,d)=>i(s,b({modifiers:o},d)).url);for(const s in e.presets)r[s]=((o,d,a)=>r(o,d,{...e.presets[s],...a}));return r.options=e,r.getImage=i,r.getMeta=((s,o)=>Z(t,s,o)),r.getSizes=((s,o)=>ee(t,s,o)),t.$img=r,r}async function Z(e,t,i){const r=$(e,t,{...i});return typeof r.getMeta=="function"?await r.getMeta():await F(e,r.url)}function $(e,t,i){if(t&&typeof t!="string")throw new TypeError(`input must be a string (received ${typeof t}: ${JSON.stringify(t)})`);if(!t||t.startsWith("data:"))return{url:t};const{setup:r,defaults:s}=G(e,i.provider||e.options.provider),o=r(),d=k(e,i.preset);if(t=q(t)?t:j(t),!o.supportsAlias){for(const u in e.options.alias)if(t.startsWith(u)){const m=e.options.alias[u];m&&(t=L(m,t.slice(u.length)))}}if(o.validateDomains&&q(t)){const u=O(t).host;if(!e.options.domains.find(m=>m===u))return{url:t}}const a=b(i,d,s),g={...a,modifiers:{...a.modifiers,width:a.modifiers?.width?y(a.modifiers.width):void 0,height:a.modifiers?.height?y(a.modifiers.height):void 0}},f=o.getImage(t,g,e);return f.format||=g.modifiers.format||"",f}function G(e,t){const i=e.options.providers[t];if(!i)throw new Error("Unknown provider: "+t);return i}function k(e,t){if(!t)return{};if(!e.options.presets[t])throw new Error("Unknown preset: "+t);return e.options.presets[t]}function ee(e,t,i){const r=k(e,i.preset),s=b(i,r),o=y(s.modifiers?.width),d=y(s.modifiers?.height),a=s.sizes?Y(s.sizes):{},g=s.densities?.trim(),f=g?Q(g):e.options.densities;V(f);const u=o&&d?d/o:0,m=[],h=[];if(Object.keys(a).length>=1){for(const c in a){const n=I(c,String(a[c]),d,u,e);if(n!==void 0){m.push({size:n.size,screenMaxWidth:n.screenMaxWidth,media:`(max-width: ${n.screenMaxWidth}px)`});for(const l of f)h.push({width:n._cWidth*l,src:M(e,t,i,n,l)})}}te(m)}else for(const c of f){const n=Object.keys(a)[0];let l=n?I(n,String(a[n]),d,u,e):void 0;l===void 0&&(l={size:"",screenMaxWidth:0,_cWidth:i.modifiers?.width,_cHeight:i.modifiers?.height}),h.push({width:c,src:M(e,t,i,l,c)})}re(h);const w=h[h.length-1],v=m.length?m.map(c=>`${c.media?c.media+" ":""}${c.size}`).join(", "):void 0,S=v?"w":"x",_=h.map(c=>`${c.src} ${c.width}${S}`).join(", ");return{sizes:v,srcset:_,src:w?.src}}function I(e,t,i,r,s){const o=s.options.screens&&s.options.screens[e]||Number.parseInt(e),d=t.endsWith("vw");if(!d&&/^\d+$/.test(t)&&(t=t+"px"),!d&&!t.endsWith("px"))return;let a=Number.parseInt(t);if(!o||!a)return;d&&(a=Math.round(a/100*o));const g=r?Math.round(a*r):i;return{size:t,screenMaxWidth:o,_cWidth:a,_cHeight:g}}function M(e,t,i,r,s){return e.$img(t,{...i.modifiers,width:r._cWidth?r._cWidth*s:void 0,height:r._cHeight?r._cHeight*s:void 0},i)}function te(e){e.sort((i,r)=>i.screenMaxWidth-r.screenMaxWidth);let t=null;for(let i=e.length-1;i>=0;i--){const r=e[i];r.media===t&&e.splice(i,1),t=r.media}for(let i=0;ii.width-r.width);let t=null;for(let i=e.length-1;i>=0;i--){const r=e[i];r.width===t&&e.splice(i,1),t=r.width}}function ie(e){let t;return()=>t||(t=typeof e=="function"?e():e,t)}const se=ie({getImage:e=>({url:e})}),ne={screens:{sm:640,md:768,lg:1024,xl:1280,"2xl":1536},presets:{},provider:"none",domains:[],alias:{},densities:[1,2],format:["webp"],provider:"none",providers:{none:{setup:se,defaults:{}}}},W=e=>{const t=P(),i=x();return i.$img||i._img||(i._img=K({...ne,event:i.ssrContext?.event,nuxt:{baseURL:t.app.baseURL},runtimeConfig:t}))};function oe(e){performance?.mark?.("mark_feature_usage",{detail:{feature:e}})}const ae=e=>{const t=W(),i=p(()=>({provider:e.provider,preset:e.preset})),r=p(()=>({width:y(e.width),height:y(e.height),crossorigin:e.crossorigin===!0?"anonymous":e.crossorigin||void 0,nonce:e.nonce})),s=p(()=>({...e.modifiers,width:e.width,height:e.height,format:e.format,quality:e.quality||t.options.quality,background:e.background,fit:e.fit}));return{providerOptions:i,normalizedAttrs:r,imageModifiers:s}},ce=["src"],de={__name:"NuxtImg",props:{custom:{type:Boolean,required:!1},placeholder:{type:[Boolean,String,Number,Array],required:!1},placeholderClass:{type:String,required:!1},src:{type:String,required:!1},format:{type:String,required:!1},quality:{type:[String,Number],required:!1},background:{type:String,required:!1},fit:{type:String,required:!1},modifiers:{type:Object,required:!1},preset:{type:String,required:!1},provider:{type:null,required:!1},sizes:{type:[String,Object],required:!1},densities:{type:String,required:!1},preload:{type:[Boolean,Object],required:!1},width:{type:[String,Number],required:!1},height:{type:[String,Number],required:!1},crossorigin:{type:[String,Boolean],required:!1},nonce:{type:String,required:!1}},emits:["load","error"],setup(e,{expose:t,emit:i}){const r=e,s=i,o=W(),{providerOptions:d,normalizedAttrs:a,imageModifiers:g}=ae(r),f=p(()=>o.getSizes(r.src,{...d.value,sizes:r.sizes,densities:r.densities,modifiers:g.value})),u=D(!1),m=R(),h=p(()=>({...a.value,"data-nuxt-img":"",...!r.placeholder||u.value?{sizes:f.value.sizes,srcset:f.value.srcset}:{},...m})),w=p(()=>{if(u.value)return!1;const n=r.placeholder===""?[10,10]:r.placeholder;if(!n)return!1;if(typeof n=="string")return n;const[l=10,N=l,A=50,E=3]=Array.isArray(n)?n:typeof n=="number"?[n]:[];return o(r.src,{...g.value,width:l,height:N,quality:A,blur:E},d.value)}),v=p(()=>r.sizes?f.value.src:o(r.src,g.value,d.value)),S=p(()=>w.value||v.value),_=x().isHydrating,c=C("imgEl");return t({imgEl:c}),U(()=>{if(w.value||r.custom){const n=new Image;v.value&&(n.src=v.value),r.sizes&&(n.sizes=f.value.sizes||"",n.srcset=f.value.srcset),n.decode?n.decode().then(()=>{u.value=!0,s("load",new Event("load"))}).catch(l=>{s("error",l)}):(n.onload=l=>{u.value=!0,s("load",l)},n.onerror=l=>{s("error",l)}),oe("nuxt-image");return}c.value&&(c.value.complete&&_&&(c.value.getAttribute("data-error")?s("error",new Event("error")):s("load",new Event("load"))),c.value.onload=n=>{s("load",n)},c.value.onerror=n=>{s("error",n)})}),(n,l)=>e.custom?T(n.$slots,"default",X(z({key:1},{imgAttrs:h.value,isLoaded:u.value,src:S.value}))):(H(),B("img",z({key:0,ref_key:"imgEl",ref:c,class:w.value?e.placeholderClass:void 0},h.value,{src:S.value}),null,16,ce))}},ue=Object.assign(de,{__name:"NuxtImg"});export{ue as _};