vue-files-preview-inno
Version:
A tool for previewing files such as doc, excel, pdf, image, markdown, txt, audio, and video and so on.
1 lines • 5.27 kB
Source Map (JSON)
{"version":3,"file":"decode.mjs","sources":["../../../../../node_modules/mdurl/lib/decode.mjs"],"sourcesContent":["/* eslint-disable no-bitwise */\n\nconst decodeCache = {}\n\nfunction getDecodeCache (exclude) {\n let cache = decodeCache[exclude]\n if (cache) { return cache }\n\n cache = decodeCache[exclude] = []\n\n for (let i = 0; i < 128; i++) {\n const ch = String.fromCharCode(i)\n cache.push(ch)\n }\n\n for (let i = 0; i < exclude.length; i++) {\n const ch = exclude.charCodeAt(i)\n cache[ch] = '%' + ('0' + ch.toString(16).toUpperCase()).slice(-2)\n }\n\n return cache\n}\n\n// Decode percent-encoded string.\n//\nfunction decode (string, exclude) {\n if (typeof exclude !== 'string') {\n exclude = decode.defaultChars\n }\n\n const cache = getDecodeCache(exclude)\n\n return string.replace(/(%[a-f0-9]{2})+/gi, function (seq) {\n let result = ''\n\n for (let i = 0, l = seq.length; i < l; i += 3) {\n const b1 = parseInt(seq.slice(i + 1, i + 3), 16)\n\n if (b1 < 0x80) {\n result += cache[b1]\n continue\n }\n\n if ((b1 & 0xE0) === 0xC0 && (i + 3 < l)) {\n // 110xxxxx 10xxxxxx\n const b2 = parseInt(seq.slice(i + 4, i + 6), 16)\n\n if ((b2 & 0xC0) === 0x80) {\n const chr = ((b1 << 6) & 0x7C0) | (b2 & 0x3F)\n\n if (chr < 0x80) {\n result += '\\ufffd\\ufffd'\n } else {\n result += String.fromCharCode(chr)\n }\n\n i += 3\n continue\n }\n }\n\n if ((b1 & 0xF0) === 0xE0 && (i + 6 < l)) {\n // 1110xxxx 10xxxxxx 10xxxxxx\n const b2 = parseInt(seq.slice(i + 4, i + 6), 16)\n const b3 = parseInt(seq.slice(i + 7, i + 9), 16)\n\n if ((b2 & 0xC0) === 0x80 && (b3 & 0xC0) === 0x80) {\n const chr = ((b1 << 12) & 0xF000) | ((b2 << 6) & 0xFC0) | (b3 & 0x3F)\n\n if (chr < 0x800 || (chr >= 0xD800 && chr <= 0xDFFF)) {\n result += '\\ufffd\\ufffd\\ufffd'\n } else {\n result += String.fromCharCode(chr)\n }\n\n i += 6\n continue\n }\n }\n\n if ((b1 & 0xF8) === 0xF0 && (i + 9 < l)) {\n // 111110xx 10xxxxxx 10xxxxxx 10xxxxxx\n const b2 = parseInt(seq.slice(i + 4, i + 6), 16)\n const b3 = parseInt(seq.slice(i + 7, i + 9), 16)\n const b4 = parseInt(seq.slice(i + 10, i + 12), 16)\n\n if ((b2 & 0xC0) === 0x80 && (b3 & 0xC0) === 0x80 && (b4 & 0xC0) === 0x80) {\n let chr = ((b1 << 18) & 0x1C0000) | ((b2 << 12) & 0x3F000) | ((b3 << 6) & 0xFC0) | (b4 & 0x3F)\n\n if (chr < 0x10000 || chr > 0x10FFFF) {\n result += '\\ufffd\\ufffd\\ufffd\\ufffd'\n } else {\n chr -= 0x10000\n result += String.fromCharCode(0xD800 + (chr >> 10), 0xDC00 + (chr & 0x3FF))\n }\n\n i += 9\n continue\n }\n }\n\n result += '\\ufffd'\n }\n\n return result\n })\n}\n\ndecode.defaultChars = ';/?:@&=+$,#'\ndecode.componentChars = ''\n\nexport default decode\n"],"names":["decodeCache","getDecodeCache","exclude","cache","i","ch","decode","string","seq","result","l","b1","b2","chr","b3","b4"],"mappings":"AAEA,MAAMA,IAAc,CAAA;AAEpB,SAASC,EAAgBC,GAAS;AAChC,MAAIC,IAAQH,EAAYE,CAAO;AAC/B,MAAIC;AAAS,WAAOA;AAEpB,EAAAA,IAAQH,EAAYE,CAAO,IAAI,CAAA;AAE/B,WAASE,IAAI,GAAGA,IAAI,KAAKA,KAAK;AAC5B,UAAMC,IAAK,OAAO,aAAaD,CAAC;AAChC,IAAAD,EAAM,KAAKE,CAAE;AAAA,EACf;AAEA,WAASD,IAAI,GAAGA,IAAIF,EAAQ,QAAQE,KAAK;AACvC,UAAMC,IAAKH,EAAQ,WAAWE,CAAC;AAC/B,IAAAD,EAAME,CAAE,IAAI,OAAO,MAAMA,EAAG,SAAS,EAAE,EAAE,YAAW,GAAI,MAAM,EAAE;AAAA,EAClE;AAEA,SAAOF;AACT;AAIA,SAASG,EAAQC,GAAQL,GAAS;AAChC,EAAI,OAAOA,KAAY,aACrBA,IAAUI,EAAO;AAGnB,QAAMH,IAAQF,EAAeC,CAAO;AAEpC,SAAOK,EAAO,QAAQ,qBAAqB,SAAUC,GAAK;AACxD,QAAIC,IAAS;AAEb,aAASL,IAAI,GAAGM,IAAIF,EAAI,QAAQJ,IAAIM,GAAGN,KAAK,GAAG;AAC7C,YAAMO,IAAK,SAASH,EAAI,MAAMJ,IAAI,GAAGA,IAAI,CAAC,GAAG,EAAE;AAE/C,UAAIO,IAAK,KAAM;AACb,QAAAF,KAAUN,EAAMQ,CAAE;AAClB;AAAA,MACF;AAEA,WAAKA,IAAK,SAAU,OAASP,IAAI,IAAIM,GAAI;AAEvC,cAAME,IAAK,SAASJ,EAAI,MAAMJ,IAAI,GAAGA,IAAI,CAAC,GAAG,EAAE;AAE/C,aAAKQ,IAAK,SAAU,KAAM;AACxB,gBAAMC,IAAQF,KAAM,IAAK,OAAUC,IAAK;AAExC,UAAIC,IAAM,MACRJ,KAAU,OAEVA,KAAU,OAAO,aAAaI,CAAG,GAGnCT,KAAK;AACL;AAAA,QACF;AAAA,MACF;AAEA,WAAKO,IAAK,SAAU,OAASP,IAAI,IAAIM,GAAI;AAEvC,cAAME,IAAK,SAASJ,EAAI,MAAMJ,IAAI,GAAGA,IAAI,CAAC,GAAG,EAAE,GACzCU,IAAK,SAASN,EAAI,MAAMJ,IAAI,GAAGA,IAAI,CAAC,GAAG,EAAE;AAE/C,aAAKQ,IAAK,SAAU,QAASE,IAAK,SAAU,KAAM;AAChD,gBAAMD,IAAQF,KAAM,KAAM,QAAYC,KAAM,IAAK,OAAUE,IAAK;AAEhE,UAAID,IAAM,QAAUA,KAAO,SAAUA,KAAO,QAC1CJ,KAAU,QAEVA,KAAU,OAAO,aAAaI,CAAG,GAGnCT,KAAK;AACL;AAAA,QACF;AAAA,MACF;AAEA,WAAKO,IAAK,SAAU,OAASP,IAAI,IAAIM,GAAI;AAEvC,cAAME,IAAK,SAASJ,EAAI,MAAMJ,IAAI,GAAGA,IAAI,CAAC,GAAG,EAAE,GACzCU,IAAK,SAASN,EAAI,MAAMJ,IAAI,GAAGA,IAAI,CAAC,GAAG,EAAE,GACzCW,IAAK,SAASP,EAAI,MAAMJ,IAAI,IAAIA,IAAI,EAAE,GAAG,EAAE;AAEjD,aAAKQ,IAAK,SAAU,QAASE,IAAK,SAAU,QAASC,IAAK,SAAU,KAAM;AACxE,cAAIF,IAAQF,KAAM,KAAM,UAAcC,KAAM,KAAM,SAAaE,KAAM,IAAK,OAAUC,IAAK;AAEzF,UAAIF,IAAM,SAAWA,IAAM,UACzBJ,KAAU,UAEVI,KAAO,OACPJ,KAAU,OAAO,aAAa,SAAUI,KAAO,KAAK,SAAUA,IAAM,KAAM,IAG5ET,KAAK;AACL;AAAA,QACF;AAAA,MACF;AAEA,MAAAK,KAAU;AAAA,IACZ;AAEA,WAAOA;AAAA,EACT,CAAC;AACH;AAEAH,EAAO,eAAe;AACtBA,EAAO,iBAAiB;","x_google_ignoreList":[0]}