UNPKG

xframelib

Version:

The accumulated front-end development foundation library originates from projects and serves projects.

451 lines (450 loc) 13 kB
var e = Object.defineProperty; /** * @license * Copyright 2019 Google LLC * SPDX-License-Identifier: Apache-2.0 */ const r = Symbol("Comlink.proxy"), t = Symbol("Comlink.endpoint"), n = Symbol("Comlink.releaseProxy"), a = Symbol("Comlink.finalizer"), o = Symbol("Comlink.thrown"), i = (e) => "object" == typeof e && null !== e || "function" == typeof e, s = /* @__PURE__ */ new Map([["proxy", { canHandle: (e) => i(e) && e[r], serialize(e) { const { port1: r, port2: t } = new MessageChannel(); return c(e, r), [t, [t]]; }, deserialize: (e) => (e.start(), function(e) { const r = /* @__PURE__ */ new Map(); return e.addEventListener("message", function(e) { const { data: t } = e; if (!t || !t.id) return; const n = r.get(t.id); if (n) try { n(t); } finally { r.delete(t.id); } }), p(e, r, [], void 0); }(e)) }], ["throw", { canHandle: (e) => i(e) && o in e, serialize({ value: e }) { let r; return r = e instanceof Error ? { isError: !0, value: { message: e.message, name: e.name, stack: e.stack } } : { isError: !1, value: e }, [r, []]; }, deserialize(e) { if (e.isError) throw Object.assign(new Error(e.value.message), e.value); throw e.value; } }]]); function c(e, t = globalThis, n = ["*"]) { t.addEventListener("message", function i(s) { if (!s || !s.data) return; if (!function(e, r) { for (const t of e) { if (r === t || "*" === t) return !0; if (t instanceof RegExp && t.test(r)) return !0; } return !1; }(n, s.origin)) return void console.warn(`Invalid origin '${s.origin}' for comlink proxy`); const { id: f, type: l, path: h } = Object.assign({ path: [] }, s.data), g = (s.data.argumentList || []).map(v); let p; try { const t = h.slice(0, -1).reduce((e, r) => e[r], e), n = h.reduce((e, r) => e[r], e); switch (l) { case "GET": p = n; break; case "SET": t[h.slice(-1)[0]] = v(s.data.value), p = !0; break; case "APPLY": p = n.apply(t, g); break; case "CONSTRUCT": p = function(e) { return Object.assign(e, { [r]: !0 }); }(new n(...g)); break; case "ENDPOINT": { const { port1: r, port2: t } = new MessageChannel(); c(e, t), p = function(e, r) { return w.set(e, r), e; }(r, [r]); } break; case "RELEASE": p = void 0; break; default: return; } } catch (e) { p = { value: e, [o]: 0 }; } Promise.resolve(p).catch((e) => ({ value: e, [o]: 0 })).then((r) => { const [n, o] = y(r); t.postMessage(Object.assign(Object.assign({}, n), { id: f }), o), "RELEASE" === l && (t.removeEventListener("message", i), u(t), a in e && "function" == typeof e[a] && e[a]()); }).catch((e) => { const [r, n] = y({ value: /* @__PURE__ */ new TypeError("Unserializable return value"), [o]: 0 }); t.postMessage(Object.assign(Object.assign({}, r), { id: f }), n); }); }), t.start && t.start(); } function u(e) { (function(e) { return "MessagePort" === e.constructor.name; })(e) && e.close(); } function f(e) { if (e) throw new Error("Proxy has been released and is not useable"); } function l(e) { return m(e, /* @__PURE__ */ new Map(), { type: "RELEASE" }).then(() => { u(e); }); } const h = /* @__PURE__ */ new WeakMap(), g = "FinalizationRegistry" in globalThis && new FinalizationRegistry((e) => { const r = (h.get(e) || 0) - 1; h.set(e, r), 0 === r && l(e); }); function p(e, r, a = [], o = function() {}) { let i = !1; const s = new Proxy(o, { get(t, o) { if (f(i), o === n) return () => { (function(e) { g && g.unregister(e); })(s), l(e), r.clear(), i = !0; }; if ("then" === o) { if (0 === a.length) return { then: () => s }; const t = m(e, r, { type: "GET", path: a.map((e) => e.toString()) }).then(v); return t.then.bind(t); } return p(e, r, [...a, o]); }, set(t, n, o) { f(i); const [s, c] = y(o); return m(e, r, { type: "SET", path: [...a, n].map((e) => e.toString()), value: s }, c).then(v); }, apply(n, o, s) { f(i); const c = a[a.length - 1]; if (c === t) return m(e, r, { type: "ENDPOINT" }).then(v); if ("bind" === c) return p(e, r, a.slice(0, -1)); const [u, l] = d(s); return m(e, r, { type: "APPLY", path: a.map((e) => e.toString()), argumentList: u }, l).then(v); }, construct(t, n) { f(i); const [o, s] = d(n); return m(e, r, { type: "CONSTRUCT", path: a.map((e) => e.toString()), argumentList: o }, s).then(v); } }); return function(e, r) { const t = (h.get(r) || 0) + 1; h.set(r, t), g && g.register(e, r, e); }(s, e), s; } function d(e) { const r = e.map(y); return [r.map((e) => e[0]), (t = r.map((e) => e[1]), Array.prototype.concat.apply([], t))]; var t; } const w = /* @__PURE__ */ new WeakMap(); function y(e) { for (const [r, t] of s) if (t.canHandle(e)) { const [n, a] = t.serialize(e); return [{ type: "HANDLER", name: r, value: n }, a]; } return [{ type: "RAW", value: e }, w.get(e) || []]; } function v(e) { switch (e.type) { case "HANDLER": return s.get(e.name).deserialize(e.value); case "RAW": return e.value; } } function m(e, r, t, n) { return new Promise((a) => { const o = new Array(4).fill(0).map(() => Math.floor(Math.random() * Number.MAX_SAFE_INTEGER).toString(16)).join("-"); r.set(o, a), e.start && e.start(), e.postMessage(Object.assign({ id: o }, t), n); }); } let b = !0; try { String.fromCharCode.apply(String, [1, 2]); } catch (e) { b = !1, Object.defineProperty(Array.prototype, "subarray", { value: Array.prototype.slice }); } var E = 2654435769; function S(e, r) { var t = e.length, n = t << 2; if (r) { var a = e[t - 1]; if (a < (n -= 4) - 3 || a > n) return null; n = a; } for (var o = new Uint8Array(n), i = 0; i < n; ++i) o[i] = e[i >> 2] >> ((3 & i) << 3); return o; } function C(e, r) { var t, n = e.length, a = n >> 2; 3 & n && ++a, r ? (t = new Uint32Array(a + 1))[a] = n : t = new Uint32Array(a); for (var o = 0; o < n; ++o) t[o >> 2] |= e[o] << ((3 & o) << 3); return t; } function U(e) { return 4294967295 & e; } function A(e, r, t, n, a, o) { return (t >>> 5 ^ r << 2) + (r >>> 3 ^ t << 4) ^ (e ^ r) + (o[3 & n ^ a] ^ t); } function T(e) { if (e.length < 16) { var r = /* @__PURE__ */ new Uint8Array(16); r.set(e), e = r; } return e; } function k(e) { for (var r = e.length, t = new Uint8Array(3 * r), n = 0, a = 0; a < r; a++) { var o = e.charCodeAt(a); if (o < 128) t[n++] = o; else if (o < 2048) t[n++] = 192 | o >> 6, t[n++] = 128 | 63 & o; else { if (!(o < 55296 || o > 57343)) { if (a + 1 < r) { var i = e.charCodeAt(a + 1); if (o < 56320 && 56320 <= i && i <= 57343) { var s = 65536 + ((1023 & o) << 10 | 1023 & i); t[n++] = 240 | s >> 18, t[n++] = 128 | s >> 12 & 63, t[n++] = 128 | s >> 6 & 63, t[n++] = 128 | 63 & s, a++; continue; } } throw new Error("Malformed string"); } t[n++] = 224 | o >> 12, t[n++] = 128 | o >> 6 & 63, t[n++] = 128 | 63 & o; } } return t.subarray(0, n); } function M(e) { var r = e.length; return 0 === r ? "" : r < 32767 ? function(e, r) { for (var t = new Array(r), n = 0, a = 0, o = e.length; n < r && a < o; n++) { var i = e[a++]; switch (i >> 4) { case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: t[n] = i; break; case 12: case 13: if (!(a < o)) throw new Error("Unfinished UTF-8 octet sequence"); t[n] = (31 & i) << 6 | 63 & e[a++]; break; case 14: if (!(a + 1 < o)) throw new Error("Unfinished UTF-8 octet sequence"); t[n] = (15 & i) << 12 | (63 & e[a++]) << 6 | 63 & e[a++]; break; case 15: if (!(a + 2 < o)) throw new Error("Unfinished UTF-8 octet sequence"); var s = ((7 & i) << 18 | (63 & e[a++]) << 12 | (63 & e[a++]) << 6 | 63 & e[a++]) - 65536; if (!(0 <= s && s <= 1048575)) throw new Error("Character outside valid Unicode range: 0x" + s.toString(16)); t[n++] = s >> 10 & 1023 | 55296, t[n] = 1023 & s | 56320; break; default: throw new Error("Bad UTF-8 encoding 0x" + i.toString(16)); } } return n < r && (t.length = n), String.fromCharCode.apply(String, t); }(e, r) : function(e, r) { for (var t = [], n = new Array(32768), a = 0, o = 0, i = e.length; a < r && o < i; a++) { var s = e[o++]; switch (s >> 4) { case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: n[a] = s; break; case 12: case 13: if (!(o < i)) throw new Error("Unfinished UTF-8 octet sequence"); n[a] = (31 & s) << 6 | 63 & e[o++]; break; case 14: if (!(o + 1 < i)) throw new Error("Unfinished UTF-8 octet sequence"); n[a] = (15 & s) << 12 | (63 & e[o++]) << 6 | 63 & e[o++]; break; case 15: if (!(o + 2 < i)) throw new Error("Unfinished UTF-8 octet sequence"); var c = ((7 & s) << 18 | (63 & e[o++]) << 12 | (63 & e[o++]) << 6 | 63 & e[o++]) - 65536; if (!(0 <= c && c <= 1048575)) throw new Error("Character outside valid Unicode range: 0x" + c.toString(16)); n[a++] = c >> 10 & 1023 | 55296, n[a] = 1023 & c | 56320; break; default: throw new Error("Bad UTF-8 encoding 0x" + s.toString(16)); } if (a >= 32766) { var u = a + 1; n.length = u, t.push(String.fromCharCode.apply(String, n)), r -= u, a = -1; } } return a > 0 && (n.length = a, t.push(String.fromCharCode.apply(String, n))), t.join(""); }(e, r); } function O(e, r) { return "string" == typeof e && (e = k(e)), "string" == typeof r && (r = k(r)), null == e || 0 === e.length ? e : S(function(e, r) { var t, n, a, o, i = e.length, s = i - 1, c = e[s], u = 0; for (o = 0 | Math.floor(6 + 52 / i); o > 0; --o) { for (n = (u = U(u + E)) >>> 2 & 3, a = 0; a < s; ++a) t = e[a + 1], c = e[a] = U(e[a] + A(u, t, c, a, n, r)); t = e[0], c = e[s] = U(e[s] + A(u, t, c, s, n, r)); } return e; }(C(e, !0), C(T(r), !1)), !1); } function x(e, r) { return globalThis.btoa(function(e) { var r = e.length; if (0 === r) return ""; var t = b ? e : function(e) { for (var r = e.length, t = new Array(e.length), n = 0; n < r; ++n) t[n] = e[n]; return t; }(e); if (r < 65535) return String.fromCharCode.apply(String, t); for (var n = 32767 & r, a = r >> 15, o = new Array(n ? a + 1 : a), i = 0; i < a; ++i) o[i] = String.fromCharCode.apply(String, t.subarray(i << 15, i + 1 << 15)); return n && (o[a] = String.fromCharCode.apply(String, t.subarray(a << 15, r))), o.join(""); }(O(e, r))); } function R(e, r) { return "string" == typeof e && (e = function(e) { for (var r = globalThis.atob(e), t = r.length, n = new Uint8Array(t), a = 0; a < t; a++) n[a] = r.charCodeAt(a); return n; }(e)), "string" == typeof r && (r = k(r)), null == e || 0 === e.length ? e : S(function(e, r) { var t, n, a, o, i = e.length, s = i - 1, c = e[0]; for (n = U(Math.floor(6 + 52 / i) * E); 0 !== n; n = U(n - E)) { for (a = n >>> 2 & 3, o = s; o > 0; --o) t = e[o - 1], c = e[o] = U(e[o] - A(n, c, t, o, a, r)); t = e[s], c = e[0] = U(e[0] - A(n, c, t, 0, a, r)); } return e; }(C(e, !1), C(T(r), !1)), !0); } function L(e, r) { return M(R(e, r)); } function j(e, r) { return e.filter(function(e) { return -1 == r.indexOf(e); }); } function P(e, r) { return e.filter(function(e) { return r.indexOf(e) > -1; }); } function N(e, r = 0, t = 0, n = 2) { if (!e || 4 != e.length) return; const a = (e[2] - e[0]) / n, o = (e[3] - e[1]) / n, i = e[0] + r * a, s = e[3] - t * o, c = i + a, u = s - o; return [ [i, s], [c, s], [c, u], [i, u] ]; } async function z(e, r, t, n = 1024) { const a = await fetch(r); if (!a) throw new Error("加载失败:" + r); let o = await a.blob(); if (!o) throw new Error("Blob数据对象为空!"); const i = await createImageBitmap(o); o = null; const s = Math.ceil(i.width / n), c = Math.ceil(i.height / n), u = Math.max(s, c), f = u, l = u, h = i.width / f, g = i.height / l, p = new OffscreenCanvas(h, g), d = p.getContext("2d"); if (!d) throw new Error("获取canvas的Context对象为空!"); const w = [], y = { id: e, width: i.width, height: i.height, maxUnitSize: n, colNum: f, rowNum: l, items: w }; for (let v = 0; v < l; v++) for (let r = 0; r < f; r++) { d.clearRect(0, 0, p.width, p.height), d.drawImage(i, r * h, v * g, h, g, 0, 0, h, g); const n = await p.convertToBlob(), a = URL.createObjectURL(n), o = { id: `${e}_${v}_${r}`, coords: N(t, r, v, u), imgURL: a }; w.push(o); } return y; } c(((r, t) => { let n = {}; for (var a in r) e(n, a, { get: r[a], enumerable: !0 }); return t || e(n, Symbol.toStringTag, { value: "Module" }), n; })({ decrypt: () => R, decryptToString: () => L, encrypt: () => O, encryptToString: () => x, getIntersect: () => P, getMinus: () => j, loadBigImage: () => z, toBytes: () => k, toString: () => M }));