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.

1 lines 12.4 kB
{"version":3,"file":"utils.mjs","sources":["../../../../../../node_modules/markdown-it/lib/common/utils.mjs"],"sourcesContent":["// Utilities\n//\n\nimport * as mdurl from 'mdurl'\nimport * as ucmicro from 'uc.micro'\nimport { decodeHTML } from 'entities'\n\nfunction _class (obj) { return Object.prototype.toString.call(obj) }\n\nfunction isString (obj) { return _class(obj) === '[object String]' }\n\nconst _hasOwnProperty = Object.prototype.hasOwnProperty\n\nfunction has (object, key) {\n return _hasOwnProperty.call(object, key)\n}\n\n// Merge objects\n//\nfunction assign (obj /* from1, from2, from3, ... */) {\n const sources = Array.prototype.slice.call(arguments, 1)\n\n sources.forEach(function (source) {\n if (!source) { return }\n\n if (typeof source !== 'object') {\n throw new TypeError(source + 'must be object')\n }\n\n Object.keys(source).forEach(function (key) {\n obj[key] = source[key]\n })\n })\n\n return obj\n}\n\n// Remove element from array and put another array at those position.\n// Useful for some operations with tokens\nfunction arrayReplaceAt (src, pos, newElements) {\n return [].concat(src.slice(0, pos), newElements, src.slice(pos + 1))\n}\n\nfunction isValidEntityCode (c) {\n /* eslint no-bitwise:0 */\n // broken sequence\n if (c >= 0xD800 && c <= 0xDFFF) { return false }\n // never used\n if (c >= 0xFDD0 && c <= 0xFDEF) { return false }\n if ((c & 0xFFFF) === 0xFFFF || (c & 0xFFFF) === 0xFFFE) { return false }\n // control codes\n if (c >= 0x00 && c <= 0x08) { return false }\n if (c === 0x0B) { return false }\n if (c >= 0x0E && c <= 0x1F) { return false }\n if (c >= 0x7F && c <= 0x9F) { return false }\n // out of range\n if (c > 0x10FFFF) { return false }\n return true\n}\n\nfunction fromCodePoint (c) {\n /* eslint no-bitwise:0 */\n if (c > 0xffff) {\n c -= 0x10000\n const surrogate1 = 0xd800 + (c >> 10)\n const surrogate2 = 0xdc00 + (c & 0x3ff)\n\n return String.fromCharCode(surrogate1, surrogate2)\n }\n return String.fromCharCode(c)\n}\n\nconst UNESCAPE_MD_RE = /\\\\([!\"#$%&'()*+,\\-./:;<=>?@[\\\\\\]^_`{|}~])/g\nconst ENTITY_RE = /&([a-z#][a-z0-9]{1,31});/gi\nconst UNESCAPE_ALL_RE = new RegExp(UNESCAPE_MD_RE.source + '|' + ENTITY_RE.source, 'gi')\n\nconst DIGITAL_ENTITY_TEST_RE = /^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))$/i\n\nfunction replaceEntityPattern (match, name) {\n if (name.charCodeAt(0) === 0x23/* # */ && DIGITAL_ENTITY_TEST_RE.test(name)) {\n const code = name[1].toLowerCase() === 'x'\n ? parseInt(name.slice(2), 16)\n : parseInt(name.slice(1), 10)\n\n if (isValidEntityCode(code)) {\n return fromCodePoint(code)\n }\n\n return match\n }\n\n const decoded = decodeHTML(match)\n if (decoded !== match) {\n return decoded\n }\n\n return match\n}\n\n/* function replaceEntities(str) {\n if (str.indexOf('&') < 0) { return str; }\n\n return str.replace(ENTITY_RE, replaceEntityPattern);\n} */\n\nfunction unescapeMd (str) {\n if (str.indexOf('\\\\') < 0) { return str }\n return str.replace(UNESCAPE_MD_RE, '$1')\n}\n\nfunction unescapeAll (str) {\n if (str.indexOf('\\\\') < 0 && str.indexOf('&') < 0) { return str }\n\n return str.replace(UNESCAPE_ALL_RE, function (match, escaped, entity) {\n if (escaped) { return escaped }\n return replaceEntityPattern(match, entity)\n })\n}\n\nconst HTML_ESCAPE_TEST_RE = /[&<>\"]/\nconst HTML_ESCAPE_REPLACE_RE = /[&<>\"]/g\nconst HTML_REPLACEMENTS = {\n '&': '&amp;',\n '<': '&lt;',\n '>': '&gt;',\n '\"': '&quot;'\n}\n\nfunction replaceUnsafeChar (ch) {\n return HTML_REPLACEMENTS[ch]\n}\n\nfunction escapeHtml (str) {\n if (HTML_ESCAPE_TEST_RE.test(str)) {\n return str.replace(HTML_ESCAPE_REPLACE_RE, replaceUnsafeChar)\n }\n return str\n}\n\nconst REGEXP_ESCAPE_RE = /[.?*+^$[\\]\\\\(){}|-]/g\n\nfunction escapeRE (str) {\n return str.replace(REGEXP_ESCAPE_RE, '\\\\$&')\n}\n\nfunction isSpace (code) {\n switch (code) {\n case 0x09:\n case 0x20:\n return true\n }\n return false\n}\n\n// Zs (unicode class) || [\\t\\f\\v\\r\\n]\nfunction isWhiteSpace (code) {\n if (code >= 0x2000 && code <= 0x200A) { return true }\n switch (code) {\n case 0x09: // \\t\n case 0x0A: // \\n\n case 0x0B: // \\v\n case 0x0C: // \\f\n case 0x0D: // \\r\n case 0x20:\n case 0xA0:\n case 0x1680:\n case 0x202F:\n case 0x205F:\n case 0x3000:\n return true\n }\n return false\n}\n\n/* eslint-disable max-len */\n\n// Currently without astral characters support.\nfunction isPunctChar (ch) {\n return ucmicro.P.test(ch) || ucmicro.S.test(ch)\n}\n\n// Markdown ASCII punctuation characters.\n//\n// !, \", #, $, %, &, ', (, ), *, +, ,, -, ., /, :, ;, <, =, >, ?, @, [, \\, ], ^, _, `, {, |, }, or ~\n// http://spec.commonmark.org/0.15/#ascii-punctuation-character\n//\n// Don't confuse with unicode punctuation !!! It lacks some chars in ascii range.\n//\nfunction isMdAsciiPunct (ch) {\n switch (ch) {\n case 0x21/* ! */:\n case 0x22/* \" */:\n case 0x23/* # */:\n case 0x24/* $ */:\n case 0x25/* % */:\n case 0x26/* & */:\n case 0x27/* ' */:\n case 0x28/* ( */:\n case 0x29/* ) */:\n case 0x2A/* * */:\n case 0x2B/* + */:\n case 0x2C/* , */:\n case 0x2D/* - */:\n case 0x2E/* . */:\n case 0x2F/* / */:\n case 0x3A/* : */:\n case 0x3B/* ; */:\n case 0x3C/* < */:\n case 0x3D/* = */:\n case 0x3E/* > */:\n case 0x3F/* ? */:\n case 0x40/* @ */:\n case 0x5B/* [ */:\n case 0x5C/* \\ */:\n case 0x5D/* ] */:\n case 0x5E/* ^ */:\n case 0x5F/* _ */:\n case 0x60/* ` */:\n case 0x7B/* { */:\n case 0x7C/* | */:\n case 0x7D/* } */:\n case 0x7E/* ~ */:\n return true\n default:\n return false\n }\n}\n\n// Hepler to unify [reference labels].\n//\nfunction normalizeReference (str) {\n // Trim and collapse whitespace\n //\n str = str.trim().replace(/\\s+/g, ' ')\n\n // In node v10 'ẞ'.toLowerCase() === 'Ṿ', which is presumed to be a bug\n // fixed in v12 (couldn't find any details).\n //\n // So treat this one as a special case\n // (remove this when node v10 is no longer supported).\n //\n if ('ẞ'.toLowerCase() === 'Ṿ') {\n str = str.replace(/ẞ/g, 'ß')\n }\n\n // .toLowerCase().toUpperCase() should get rid of all differences\n // between letter variants.\n //\n // Simple .toLowerCase() doesn't normalize 125 code points correctly,\n // and .toUpperCase doesn't normalize 6 of them (list of exceptions:\n // İ, ϴ, ẞ, Ω, K, Å - those are already uppercased, but have differently\n // uppercased versions).\n //\n // Here's an example showing how it happens. Lets take greek letter omega:\n // uppercase U+0398 (Θ), U+03f4 (ϴ) and lowercase U+03b8 (θ), U+03d1 (ϑ)\n //\n // Unicode entries:\n // 0398;GREEK CAPITAL LETTER THETA;Lu;0;L;;;;;N;;;;03B8;\n // 03B8;GREEK SMALL LETTER THETA;Ll;0;L;;;;;N;;;0398;;0398\n // 03D1;GREEK THETA SYMBOL;Ll;0;L;<compat> 03B8;;;;N;GREEK SMALL LETTER SCRIPT THETA;;0398;;0398\n // 03F4;GREEK CAPITAL THETA SYMBOL;Lu;0;L;<compat> 0398;;;;N;;;;03B8;\n //\n // Case-insensitive comparison should treat all of them as equivalent.\n //\n // But .toLowerCase() doesn't change ϑ (it's already lowercase),\n // and .toUpperCase() doesn't change ϴ (already uppercase).\n //\n // Applying first lower then upper case normalizes any character:\n // '\\u0398\\u03f4\\u03b8\\u03d1'.toLowerCase().toUpperCase() === '\\u0398\\u0398\\u0398\\u0398'\n //\n // Note: this is equivalent to unicode case folding; unicode normalization\n // is a different step that is not required here.\n //\n // Final result should be uppercased, because it's later stored in an object\n // (this avoid a conflict with Object.prototype members,\n // most notably, `__proto__`)\n //\n return str.toLowerCase().toUpperCase()\n}\n\n// Re-export libraries commonly used in both markdown-it and its plugins,\n// so plugins won't have to depend on them explicitly, which reduces their\n// bundled size (e.g. a browser build).\n//\nconst lib = { mdurl, ucmicro }\n\nexport {\n lib,\n assign,\n isString,\n has,\n unescapeMd,\n unescapeAll,\n isValidEntityCode,\n fromCodePoint,\n escapeHtml,\n arrayReplaceAt,\n isSpace,\n isWhiteSpace,\n isMdAsciiPunct,\n isPunctChar,\n escapeRE,\n normalizeReference\n}\n"],"names":["_class","obj","isString","_hasOwnProperty","has","object","key","assign","source","arrayReplaceAt","src","pos","newElements","isValidEntityCode","c","fromCodePoint","surrogate1","surrogate2","UNESCAPE_MD_RE","ENTITY_RE","UNESCAPE_ALL_RE","DIGITAL_ENTITY_TEST_RE","replaceEntityPattern","match","name","code","decoded","decodeHTML","unescapeMd","str","unescapeAll","escaped","entity","HTML_ESCAPE_TEST_RE","HTML_ESCAPE_REPLACE_RE","HTML_REPLACEMENTS","replaceUnsafeChar","ch","escapeHtml","REGEXP_ESCAPE_RE","escapeRE","isSpace","isWhiteSpace","isPunctChar","ucmicro.P","ucmicro.S","isMdAsciiPunct","normalizeReference","lib","mdurl","ucmicro"],"mappings":"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","x_google_ignoreList":[0]}