import{ae as L,ap as I,z as O,j as y,P as S,i as K,F as v,aI as j,bd as A}from"./index-i_vOnwSy.js";const x=(t,r,e)=>{if(t==null||r==null)return-1;if(!r.length)return 0;t=t.toString().toLocaleLowerCase(),r=r.toString().toLocaleLowerCase();const l=[];let f=t.indexOf(r);for(;~f;)l.push([f,f+r.length]),f=t.indexOf(r,f+r.length);return l.length?l:-1};function _(t,r){if(!(t==null||typeof t=="boolean"||t===-1))return typeof t=="number"?[[t,t+r.length]]:Array.isArray(t[0])?t:[t]}const C=L({customFilter:Function,customKeyFilter:Object,filterKeys:[Array,String],filterMode:{type:String,default:"intersection"},noFilter:Boolean},"filter");function P(t,r,e){var m;const l=[],f=(e==null?void 0:e.default)??x,u=e!=null&&e.filterKeys?j(e.filterKeys):!1,a=Object.keys((e==null?void 0:e.customKeyFilter)??{}).length;if(!(t!=null&&t.length))return l;e:for(let n=0;n<t.length;n++){const[s,M=s]=j(t[n]),d={},i={};let c=-1;if((r||a>0)&&!(e!=null&&e.noFilter)){if(typeof s=="object"){const k=u||Object.keys(M);for(const g of k){const w=A(M,g),b=(m=e==null?void 0:e.customKeyFilter)==null?void 0:m[g];if(c=b?b(w,r,s):f(w,r,s),c!==-1&&c!==!1)b?d[g]=_(c,r):i[g]=_(c,r);else if((e==null?void 0:e.filterMode)==="every")continue e}}else c=f(s,r,s),c!==-1&&c!==!1&&(i.title=_(c,r));const h=Object.keys(i).length,F=Object.keys(d).length;if(!h&&!F||(e==null?void 0:e.filterMode)==="union"&&F!==a&&!h||(e==null?void 0:e.filterMode)==="intersection"&&(F!==a||!h))continue}l.push({index:n,matches:{...i,...d}})}return l}function E(t,r,e,l){const f=I([]),u=I(new Map),a=O(()=>l!=null&&l.transform?y(r).map(n=>[n,l.transform(n)]):y(r));S(()=>{const n=typeof e=="function"?e():y(e),s=typeof n!="string"&&typeof n!="number"?"":String(n),M=P(a.value,s,{customKeyFilter:{...t.customKeyFilter,...y(l==null?void 0:l.customKeyFilter)},default:t.customFilter,filterKeys:t.filterKeys,filterMode:t.filterMode,noFilter:t.noFilter}),d=y(r),i=[],c=new Map;M.forEach(h=>{let{index:F,matches:k}=h;const g=d[F];i.push(g),c.set(g.value,k)}),f.value=i,u.value=c});function m(n){return u.value.get(n.value)}return{filteredItems:f,filteredMatches:u,getMatches:m}}function R(t,r,e){return e==null||!e.length?r:e.map((l,f)=>{const u=f===0?0:e[f-1][1],a=[K("span",{class:`${t}__unmask`},[r.slice(u,l[0])]),K("span",{class:`${t}__mask`},[r.slice(l[0],l[1])])];return f===e.length-1&&a.push(K("span",{class:`${t}__unmask`},[r.slice(l[1])])),K(v,null,[a])})}export{R as h,C as m,E as u};