vue-files-preview-inno
Version:
A tool for previewing files such as doc, excel, pdf, image, markdown, txt, audio, and video and so on.
329 lines (328 loc) • 11.4 kB
JavaScript
import { __exports as K } from "../../../../_virtual/sax.mjs";
import "./conventions.mjs";
import { __exports as ee } from "../../../../_virtual/conventions.mjs";
var y = ee.NAMESPACE, R = /[A-Z_a-z\xC0-\xD6\xD8-\xF6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/, Q = new RegExp("[\\-\\.0-9" + R.source.slice(1, -1) + "\\u00B7\\u0300-\\u036F\\u203F-\\u2040]"), z = new RegExp("^" + R.source + Q.source + "*(?::" + R.source + Q.source + "*)?$"), _ = 0, T = 1, C = 2, D = 3, F = 4, k = 5, L = 6, P = 7;
function O(e, r) {
this.message = e, this.locator = r, Error.captureStackTrace && Error.captureStackTrace(this, O);
}
O.prototype = new Error();
O.prototype.name = O.name;
function S() {
}
S.prototype = {
parse: function(e, r, i) {
var a = this.domBuilder;
a.startDocument(), W(r, r = {}), re(
e,
r,
i,
a,
this.errorHandler
), a.endDocument();
}
};
function re(e, r, i, a, t) {
function u(o) {
if (o > 65535) {
o -= 65536;
var g = 55296 + (o >> 10), B = 56320 + (o & 1023);
return String.fromCharCode(g, B);
} else
return String.fromCharCode(o);
}
function f(o) {
var g = o.slice(1, -1);
return g in i ? i[g] : g.charAt(0) === "#" ? u(parseInt(g.substr(1).replace("x", "0x"))) : (t.error("entity not found:" + o), o);
}
function l(o) {
if (o > m) {
var g = e.substring(m, o).replace(/&#?\w+;/g, f);
v && n(m), a.characters(g, 0, o - m), m = o;
}
}
function n(o, g) {
for (; o >= c && (g = h.exec(e)); )
s = g.index, c = s + g[0].length, v.lineNumber++;
v.columnNumber = o - s + 1;
}
for (var s = 0, c = 0, h = /.*(?:\r\n?|\n)|.*$/g, v = a.locator, E = [{ currentNSMap: r }], $ = {}, m = 0; ; ) {
try {
var p = e.indexOf("<", m);
if (p < 0) {
if (!e.substr(m).match(/^\s*$/)) {
var U = a.doc, V = U.createTextNode(e.substr(m));
U.appendChild(V), a.currentElement = V;
}
return;
}
switch (p > m && l(p), e.charAt(p + 1)) {
case "/":
var b = e.indexOf(">", p + 3), x = e.substring(p + 2, b).replace(/[ \t\n\r]+$/g, ""), A = E.pop();
b < 0 ? (x = e.substring(p + 2).replace(/[\s<].*/, ""), t.error("end tag name: " + x + " is not complete:" + A.tagName), b = p + 1 + x.length) : x.match(/\s</) && (x = x.replace(/[\s<].*/, ""), t.error("end tag name: " + x + " maybe not complete"), b = p + 1 + x.length);
var N = A.localNSMap, X = A.tagName == x, q = X || A.tagName && A.tagName.toLowerCase() == x.toLowerCase();
if (q) {
if (a.endElement(A.uri, A.localName, x), N)
for (var j in N)
Object.prototype.hasOwnProperty.call(N, j) && a.endPrefixMapping(j);
X || t.fatalError("end tag name: " + x + " is not match the current start tagName:" + A.tagName);
} else
E.push(A);
b++;
break;
case "?":
v && n(p), b = se(e, p, a);
break;
case "!":
v && n(p), b = ne(e, p, a, t);
break;
default:
v && n(p);
var w = new Y(), d = E[E.length - 1].currentNSMap, b = ie(e, p, w, d, f, t), G = w.length;
if (!w.closed && ae(e, b, w.tagName, $) && (w.closed = !0, i.nbsp || t.warning("unclosed xml attribute")), v && G) {
for (var H = Z(v, {}), I = 0; I < G; I++) {
var M = w[I];
n(M.offset), M.locator = Z(v, {});
}
a.locator = H, J(w, a, d) && E.push(w), a.locator = v;
} else
J(w, a, d) && E.push(w);
y.isHTML(w.uri) && !w.closed ? b = te(e, b, w.tagName, f, a) : b++;
}
} catch (o) {
if (o instanceof O)
throw o;
t.error("element parse error: " + o), b = -1;
}
b > m ? m = b : l(Math.max(p, m) + 1);
}
}
function Z(e, r) {
return r.lineNumber = e.lineNumber, r.columnNumber = e.columnNumber, r;
}
function ie(e, r, i, a, t, u) {
function f(v, E, $) {
i.attributeNames.hasOwnProperty(v) && u.fatalError("Attribute " + v + " redefined"), i.addValue(v, E, $);
}
for (var l, n, s = ++r, c = _; ; ) {
var h = e.charAt(s);
switch (h) {
case "=":
if (c === T)
l = e.slice(r, s), c = D;
else if (c === C)
c = D;
else
throw new Error("attribute equal must after attrName");
break;
case "'":
case '"':
if (c === D || c === T)
if (c === T && (u.warning('attribute value must after "="'), l = e.slice(r, s)), r = s + 1, s = e.indexOf(h, r), s > 0)
n = e.slice(r, s).replace(/&#?\w+;/g, t), f(l, n, r - 1), c = k;
else
throw new Error("attribute value no end '" + h + "' match");
else if (c == F)
n = e.slice(r, s).replace(/&#?\w+;/g, t), f(l, n, r), u.warning('attribute "' + l + '" missed start quot(' + h + ")!!"), r = s + 1, c = k;
else
throw new Error('attribute value must after "="');
break;
case "/":
switch (c) {
case _:
i.setTagName(e.slice(r, s));
case k:
case L:
case P:
c = P, i.closed = !0;
case F:
case T:
break;
case C:
i.closed = !0;
break;
default:
throw new Error("attribute invalid close char('/')");
}
break;
case "":
return u.error("unexpected end of input"), c == _ && i.setTagName(e.slice(r, s)), s;
case ">":
switch (c) {
case _:
i.setTagName(e.slice(r, s));
case k:
case L:
case P:
break;
case F:
case T:
n = e.slice(r, s), n.slice(-1) === "/" && (i.closed = !0, n = n.slice(0, -1));
case C:
c === C && (n = l), c == F ? (u.warning('attribute "' + n + '" missed quot(")!'), f(l, n.replace(/&#?\w+;/g, t), r)) : ((!y.isHTML(a[""]) || !n.match(/^(?:disabled|checked|selected)$/i)) && u.warning('attribute "' + n + '" missed value!! "' + n + '" instead!!'), f(n, n, r));
break;
case D:
throw new Error("attribute value missed!!");
}
return s;
case "":
h = " ";
default:
if (h <= " ")
switch (c) {
case _:
i.setTagName(e.slice(r, s)), c = L;
break;
case T:
l = e.slice(r, s), c = C;
break;
case F:
var n = e.slice(r, s).replace(/&#?\w+;/g, t);
u.warning('attribute "' + n + '" missed quot(")!!'), f(l, n, r);
case k:
c = L;
break;
}
else
switch (c) {
case C:
i.tagName, (!y.isHTML(a[""]) || !l.match(/^(?:disabled|checked|selected)$/i)) && u.warning('attribute "' + l + '" missed value!! "' + l + '" instead2!!'), f(l, l, r), r = s, c = T;
break;
case k:
u.warning('attribute space is required"' + l + '"!!');
case L:
c = T, r = s;
break;
case D:
c = F, r = s;
break;
case P:
throw new Error("elements closed character '/' and '>' must be connected to");
}
}
s++;
}
}
function J(e, r, i) {
for (var a = e.tagName, t = null, h = e.length; h--; ) {
var u = e[h], f = u.qName, l = u.value, v = f.indexOf(":");
if (v > 0)
var n = u.prefix = f.slice(0, v), s = f.slice(v + 1), c = n === "xmlns" && s;
else
s = f, n = null, c = f === "xmlns" && "";
u.localName = s, c !== !1 && (t == null && (t = {}, W(i, i = {})), i[c] = t[c] = l, u.uri = y.XMLNS, r.startPrefixMapping(c, l));
}
for (var h = e.length; h--; ) {
u = e[h];
var n = u.prefix;
n && (n === "xml" && (u.uri = y.XML), n !== "xmlns" && (u.uri = i[n || ""]));
}
var v = a.indexOf(":");
v > 0 ? (n = e.prefix = a.slice(0, v), s = e.localName = a.slice(v + 1)) : (n = null, s = e.localName = a);
var E = e.uri = i[n || ""];
if (r.startElement(E, s, a, e), e.closed) {
if (r.endElement(E, s, a), t)
for (n in t)
Object.prototype.hasOwnProperty.call(t, n) && r.endPrefixMapping(n);
} else
return e.currentNSMap = i, e.localNSMap = t, !0;
}
function te(e, r, i, a, t) {
if (/^(?:script|textarea)$/i.test(i)) {
var u = e.indexOf("</" + i + ">", r), f = e.substring(r + 1, u);
if (/[&<]/.test(f))
return /^script$/i.test(i) ? (t.characters(f, 0, f.length), u) : (f = f.replace(/&#?\w+;/g, a), t.characters(f, 0, f.length), u);
}
return r + 1;
}
function ae(e, r, i, a) {
var t = a[i];
return t == null && (t = e.lastIndexOf("</" + i + ">"), t < r && (t = e.lastIndexOf("</" + i)), a[i] = t), t < r;
}
function W(e, r) {
for (var i in e)
Object.prototype.hasOwnProperty.call(e, i) && (r[i] = e[i]);
}
function ne(e, r, i, a) {
var t = e.charAt(r + 2);
switch (t) {
case "-":
if (e.charAt(r + 3) === "-") {
var u = e.indexOf("-->", r + 4);
return u > r ? (i.comment(e, r + 4, u - r - 4), u + 3) : (a.error("Unclosed comment"), -1);
} else
return -1;
default:
if (e.substr(r + 3, 6) == "CDATA[") {
var u = e.indexOf("]]>", r + 9);
return i.startCDATA(), i.characters(e, r + 9, u - r - 9), i.endCDATA(), u + 3;
}
var f = ce(e, r), l = f.length;
if (l > 1 && /!doctype/i.test(f[0][0])) {
var n = f[1][0], s = !1, c = !1;
l > 3 && (/^public$/i.test(f[2][0]) ? (s = f[3][0], c = l > 4 && f[4][0]) : /^system$/i.test(f[2][0]) && (c = f[3][0]));
var h = f[l - 1];
return i.startDTD(n, s, c), i.endDTD(), h.index + h[0].length;
}
}
return -1;
}
function se(e, r, i) {
var a = e.indexOf("?>", r);
if (a) {
var t = e.substring(r, a).match(/^<\?(\S*)\s*([\s\S]*?)\s*$/);
return t ? (t[0].length, i.processingInstruction(t[1], t[2]), a + 2) : -1;
}
return -1;
}
function Y() {
this.attributeNames = {};
}
Y.prototype = {
setTagName: function(e) {
if (!z.test(e))
throw new Error("invalid tagName:" + e);
this.tagName = e;
},
addValue: function(e, r, i) {
if (!z.test(e))
throw new Error("invalid attribute:" + e);
this.attributeNames[e] = this.length, this[this.length++] = { qName: e, value: r, offset: i };
},
length: 0,
getLocalName: function(e) {
return this[e].localName;
},
getLocator: function(e) {
return this[e].locator;
},
getQName: function(e) {
return this[e].qName;
},
getURI: function(e) {
return this[e].uri;
},
getValue: function(e) {
return this[e].value;
}
// ,getIndex:function(uri, localName)){
// if(localName){
//
// }else{
// var qName = uri
// }
// },
// getValue:function(){return this.getValue(this.getIndex.apply(this,arguments))},
// getType:function(uri,localName){}
// getType:function(i){},
};
function ce(e, r) {
var i, a = [], t = /'[^']+'|"[^"]+"|[^\s<>\/=]+=?|(\/?\s*>|<)/g;
for (t.lastIndex = r, t.exec(e); i = t.exec(e); )
if (a.push(i), i[1]) return a;
}
K.XMLReader = S;
K.ParseError = O;
export {
K as default
};
//# sourceMappingURL=sax.mjs.map