spotmark
Version:
A lightweight, customizable text highlighting library that illuminates matches in a content.
2 lines • 2.4 kB
JavaScript
var H=Object.defineProperty;var n=Object.getOwnPropertySymbols;var S=Object.prototype.hasOwnProperty,O=Object.prototype.propertyIsEnumerable;var g=(r,t,e)=>t in r?H(r,t,{enumerable:true,configurable:true,writable:true,value:e}):r[t]=e,s=(r,t)=>{for(var e in t||(t={}))S.call(t,e)&&g(r,e,t[e]);if(n)for(var e of n(t))O.call(t,e)&&g(r,e,t[e]);return r};var a={caseSensitive:false,className:"text-highlight",diacritics:true,ignorePunctuation:false,matchAll:true,separateWordSearch:true,tag:"span"},c=["a\xE0\xE1\u1EA3\xE3\u1EA1\u0103\u1EB1\u1EAF\u1EB3\u1EB5\u1EB7\xE2\u1EA7\u1EA5\u1EA9\u1EAB\u1EAD\xE4\xE5\u0101\u0105\xE6","c\xE7\u0107\u010D","d\u0111\u010F","e\xE8\xE9\u1EBB\u1EBD\u1EB9\xEA\u1EC1\u1EBF\u1EC3\u1EC5\u1EC7\xEB\u011B\u0113\u0119","i\xEC\xED\u1EC9\u0129\u1ECB\xEE\xEF\u012B","l\u0142","n\xF1\u0148\u0144","o\xF2\xF3\u1ECF\xF5\u1ECD\xF4\u1ED3\u1ED1\u1ED5\u1ED7\u1ED9\u01A1\u1EDF\u1EE1\u1EDB\u1EDD\u1EE3\xF6\xF8\u014D\u0153","r\u0159","s\u0161\u015B\u0219\u015F","t\u0165\u021B\u0163","u\xF9\xFA\u1EE7\u0169\u1EE5\u01B0\u1EEB\u1EE9\u1EED\u1EEF\u1EF1\xFB\xFC\u016F\u016B","y\xFD\u1EF3\u1EF7\u1EF9\u1EF5\xFF","z\u017E\u017C\u017A"],p=["-","[","]","{","}","(",")","*","+","?",".",",","\\","^","$","|","#"];var l=r=>p.includes(r),h=r=>`\\${r}`,f=r=>{if(!r)return "";let t=r.toLowerCase(),e=c.find(i=>i.includes(t));return e?r===t?`[${e}]`:`[${e.toUpperCase()}]`:r},u=r=>[r.matchAll&&"g",r.ignorePunctuation&&"u",!r.caseSensitive&&"i"].filter(Boolean).join("");var x=r=>{let t=r.split(/\s+/).filter(Boolean);if(!t.length)throw new Error("Invalid query: No valid words found after processing");return t.join("|")},A=(r,t)=>{if(l(r))return h(r);let e=t.diacritics?f(r):r;return t.ignorePunctuation&&(e+="[\\p{P}]*"),e},m=(r,t)=>{if(!r)throw new Error("Invalid query: Query must be a non-empty string");try{let i=Array.from(r).map(o=>A(o,t)).join("");return t.separateWordSearch?x(i):i}catch(e){throw new Error(`Failed to process query: ${e instanceof Error?e.message:"Unknown error"}`)}};var w=r=>{let t=s(s({},a),r);return (e,i)=>{if(!e||typeof e!="string")return "";if(!i||typeof i!="string")return e;try{let o=m(i,t),d=u(t),y=new RegExp(o,d);return e.replace(y,C=>`<${t.tag} class="${t.className}">${C}</${t.tag}>`)}catch(o){return console.error("Failed to perform text replacement:",o),e}}};export{w as createHighlighter};//# sourceMappingURL=index.mjs.map
//# sourceMappingURL=index.mjs.map