UNPKG

vue-files-preview-inno

Version:

A tool for previewing files such as doc, excel, pdf, image, markdown, txt, audio, and video and so on.

63 lines (62 loc) 2.03 kB
const h = {}; function l(s) { let n = h[s]; if (n) return n; n = h[s] = []; for (let e = 0; e < 128; e++) { const t = String.fromCharCode(e); n.push(t); } for (let e = 0; e < s.length; e++) { const t = s.charCodeAt(e); n[t] = "%" + ("0" + t.toString(16).toUpperCase()).slice(-2); } return n; } function u(s, n) { typeof n != "string" && (n = u.defaultChars); const e = l(n); return s.replace(/(%[a-f0-9]{2})+/gi, function(t) { let r = ""; for (let f = 0, a = t.length; f < a; f += 3) { const o = parseInt(t.slice(f + 1, f + 3), 16); if (o < 128) { r += e[o]; continue; } if ((o & 224) === 192 && f + 3 < a) { const c = parseInt(t.slice(f + 4, f + 6), 16); if ((c & 192) === 128) { const i = o << 6 & 1984 | c & 63; i < 128 ? r += "��" : r += String.fromCharCode(i), f += 3; continue; } } if ((o & 240) === 224 && f + 6 < a) { const c = parseInt(t.slice(f + 4, f + 6), 16), i = parseInt(t.slice(f + 7, f + 9), 16); if ((c & 192) === 128 && (i & 192) === 128) { const x = o << 12 & 61440 | c << 6 & 4032 | i & 63; x < 2048 || x >= 55296 && x <= 57343 ? r += "���" : r += String.fromCharCode(x), f += 6; continue; } } if ((o & 248) === 240 && f + 9 < a) { const c = parseInt(t.slice(f + 4, f + 6), 16), i = parseInt(t.slice(f + 7, f + 9), 16), x = parseInt(t.slice(f + 10, f + 12), 16); if ((c & 192) === 128 && (i & 192) === 128 && (x & 192) === 128) { let C = o << 18 & 1835008 | c << 12 & 258048 | i << 6 & 4032 | x & 63; C < 65536 || C > 1114111 ? r += "����" : (C -= 65536, r += String.fromCharCode(55296 + (C >> 10), 56320 + (C & 1023))), f += 9; continue; } } r += "�"; } return r; }); } u.defaultChars = ";/?:@&=+$,#"; u.componentChars = ""; export { u as default }; //# sourceMappingURL=decode.mjs.map