1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5625],{5625:(e,a,t)=>{t.r(a),t.d(a,{default:()=>d});var r=t(4568),s=t(7620);let l={"&":"&","<":"<",">":">",'"':""","'":"'"},n={"&":"&","<":"<",">":">",""":'"',"'":"'","'":"'","/":"/"};var c=t(6972);let o=[{value:"json",label:"JSON"},{value:"html",label:"HTML"},{value:"url",label:"URL"},{value:"unicode",label:"Unicode"},{value:"backslash",label:"Backslash"}];function d(){let[e,a]=(0,s.useState)(""),[t,d]=(0,s.useState)(""),[u,i]=(0,s.useState)("json"),[g,m]=(0,s.useState)("");return(0,r.jsxs)("div",{className:"space-y-4",children:[(0,r.jsxs)("div",{className:"flex gap-2 items-center flex-wrap",children:[(0,r.jsx)("button",{onClick:()=>{try{m(""),d(function(e,a){switch(a){case"json":return JSON.stringify(e).slice(1,-1);case"html":return e.replace(/[&<>"']/g,e=>l[e]||e);case"url":return encodeURIComponent(e);case"unicode":return Array.from(e).map(e=>{let a=e.codePointAt(0);return a>127?a>65535?"\\u{".concat(a.toString(16),"}"):"\\u".concat(a.toString(16).padStart(4,"0")):e}).join("");case"backslash":return e.replace(/\\/g,"\\\\").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t").replace(/\0/g,"\\0")}}(e,u))}catch(e){m(e.message),d("")}},className:"px-4 py-2 bg-blue-600 text-white rounded hover:bg-blue-700 transition",children:"Escape"}),(0,r.jsx)("button",{onClick:()=>{try{m(""),d(function(e,a){switch(a){case"json":return JSON.parse('"'.concat(e,'"'));case"html":return e.replace(/&|<|>|"|'|'|//g,e=>n[e]||e);case"url":return decodeURIComponent(e);case"unicode":return e.replace(/\\u\{([0-9a-fA-F]+)\}/g,(e,a)=>String.fromCodePoint(parseInt(a,16))).replace(/\\u([0-9a-fA-F]{4})/g,(e,a)=>String.fromCharCode(parseInt(a,16)));case"backslash":let t="",r=0;for(;r<e.length;)if("\\"===e[r]&&r+1<e.length)switch(e[r+1]){case"n":t+="\n",r+=2;break;case"r":t+="\r",r+=2;break;case"t":t+=" ",r+=2;break;case"0":t+="\0",r+=2;break;case"\\":t+="\\",r+=2;break;default:t+=e[r+1],r+=2}else t+=e[r],r++;return t}}(e,u))}catch(e){m(e.message),d("")}},className:"px-4 py-2 bg-green-600 text-white rounded hover:bg-green-700 transition",children:"Unescape"}),(0,r.jsxs)("label",{className:"flex items-center gap-1 text-sm text-gray-600 dark:text-gray-400",children:["Mode:",(0,r.jsx)("select",{value:u,onChange:e=>i(e.target.value),className:"border rounded px-2 py-1 bg-white dark:bg-gray-800 dark:border-gray-600",children:o.map(e=>(0,r.jsx)("option",{value:e.value,children:e.label},e.value))})]})]}),g&&(0,r.jsx)("div",{className:"text-red-500 text-sm bg-red-50 dark:bg-red-900/20 p-2 rounded",children:g}),(0,r.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{className:"block text-sm font-medium mb-1 text-gray-700 dark:text-gray-300",children:"Input"}),(0,r.jsx)("textarea",{value:e,onChange:e=>a(e.target.value),className:"w-full h-80 p-3 font-mono text-sm border rounded-lg bg-white dark:bg-gray-800 dark:border-gray-600 focus:ring-2 focus:ring-blue-500 focus:outline-none",placeholder:"Enter text to escape or unescape..."})]}),(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:"flex justify-between items-center mb-1",children:[(0,r.jsx)("label",{className:"text-sm font-medium text-gray-700 dark:text-gray-300",children:"Output"}),(0,r.jsx)(c.A,{text:t})]}),(0,r.jsx)("textarea",{readOnly:!0,value:t,className:"w-full h-80 p-3 font-mono text-sm border rounded-lg bg-gray-50 dark:bg-gray-900 dark:border-gray-600"})]})]})]})}},6972:(e,a,t)=>{t.d(a,{A:()=>n});var r=t(4568),s=t(7620);async function l(e){try{return await navigator.clipboard.writeText(e),!0}catch(t){let a=document.createElement("textarea");a.value=e,a.style.position="fixed",a.style.opacity="0",document.body.appendChild(a),a.select();try{return document.execCommand("copy"),!0}catch(e){return!1}finally{document.body.removeChild(a)}}}function n(e){let{text:a,label:t="Copy"}=e,[n,c]=(0,s.useState)(!1),o=async()=>{await l(a)&&(c(!0),setTimeout(()=>c(!1),2e3))};return(0,r.jsx)("button",{onClick:o,disabled:!a,className:"px-3 py-1 text-sm border rounded hover:bg-gray-100 dark:hover:bg-gray-700 dark:border-gray-600 transition disabled:opacity-50",children:n?"Copied!":t})}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.