|
@@ -0,0 +1,2665 @@
|
|
|
+! function(t, e) {
|
|
|
+ "object" == typeof exports && "undefined" != typeof module ? e(exports) : "function" == typeof define && define
|
|
|
+ .amd ? define(["exports"], e) : e((t = "undefined" != typeof globalThis ? globalThis : t || self).Painter = {})
|
|
|
+}(this, (function(t) {
|
|
|
+ "use strict";
|
|
|
+ var e = function() {
|
|
|
+ return e = Object.assign || function(t) {
|
|
|
+ for (var e, i = 1, n = arguments.length; i < n; i++)
|
|
|
+ for (var r in e = arguments[i]) Object.prototype.hasOwnProperty.call(e, r) && (t[r] = e[
|
|
|
+ r]);
|
|
|
+ return t
|
|
|
+ }, e.apply(this, arguments)
|
|
|
+ };
|
|
|
+
|
|
|
+ function i(t, e, i, n) {
|
|
|
+ return new(i || (i = Promise))((function(r, o) {
|
|
|
+ function s(t) {
|
|
|
+ try {
|
|
|
+ h(n.next(t))
|
|
|
+ } catch (t) {
|
|
|
+ o(t)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ function a(t) {
|
|
|
+ try {
|
|
|
+ h(n.throw(t))
|
|
|
+ } catch (t) {
|
|
|
+ o(t)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ function h(t) {
|
|
|
+ var e;
|
|
|
+ t.done ? r(t.value) : (e = t.value, e instanceof i ? e : new i((function(t) {
|
|
|
+ t(e)
|
|
|
+ }))).then(s, a)
|
|
|
+ }
|
|
|
+ h((n = n.apply(t, e || [])).next())
|
|
|
+ }))
|
|
|
+ }
|
|
|
+
|
|
|
+ function n(t, e) {
|
|
|
+ var i, n, r, o, s = {
|
|
|
+ label: 0,
|
|
|
+ sent: function() {
|
|
|
+ if (1 & r[0]) throw r[1];
|
|
|
+ return r[1]
|
|
|
+ },
|
|
|
+ trys: [],
|
|
|
+ ops: []
|
|
|
+ };
|
|
|
+ return o = {
|
|
|
+ next: a(0),
|
|
|
+ throw: a(1),
|
|
|
+ return: a(2)
|
|
|
+ }, "function" == typeof Symbol && (o[Symbol.iterator] = function() {
|
|
|
+ return this
|
|
|
+ }), o;
|
|
|
+
|
|
|
+ function a(o) {
|
|
|
+ return function(a) {
|
|
|
+ return function(o) {
|
|
|
+ if (i) throw new TypeError("Generator is already executing.");
|
|
|
+ for (; s;) try {
|
|
|
+ if (i = 1, n && (r = 2 & o[0] ? n.return : o[0] ? n.throw || ((r = n
|
|
|
+ .return) && r.call(n), 0) : n.next) && !(r = r.call(n, o[1])).done)
|
|
|
+ return r;
|
|
|
+ switch (n = 0, r && (o = [2 & o[0], r.value]), o[0]) {
|
|
|
+ case 0:
|
|
|
+ case 1:
|
|
|
+ r = o;
|
|
|
+ break;
|
|
|
+ case 4:
|
|
|
+ return s.label++, {
|
|
|
+ value: o[1],
|
|
|
+ done: !1
|
|
|
+ };
|
|
|
+ case 5:
|
|
|
+ s.label++, n = o[1], o = [0];
|
|
|
+ continue;
|
|
|
+ case 7:
|
|
|
+ o = s.ops.pop(), s.trys.pop();
|
|
|
+ continue;
|
|
|
+ default:
|
|
|
+ if (!(r = s.trys, (r = r.length > 0 && r[r.length - 1]) || 6 !== o[
|
|
|
+ 0] && 2 !== o[0])) {
|
|
|
+ s = 0;
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ if (3 === o[0] && (!r || o[1] > r[0] && o[1] < r[3])) {
|
|
|
+ s.label = o[1];
|
|
|
+ break
|
|
|
+ }
|
|
|
+ if (6 === o[0] && s.label < r[1]) {
|
|
|
+ s.label = r[1], r = o;
|
|
|
+ break
|
|
|
+ }
|
|
|
+ if (r && s.label < r[2]) {
|
|
|
+ s.label = r[2], s.ops.push(o);
|
|
|
+ break
|
|
|
+ }
|
|
|
+ r[2] && s.ops.pop(), s.trys.pop();
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ o = e.call(t, s)
|
|
|
+ } catch (t) {
|
|
|
+ o = [6, t], n = 0
|
|
|
+ } finally {
|
|
|
+ i = r = 0
|
|
|
+ }
|
|
|
+ if (5 & o[0]) throw o[1];
|
|
|
+ return {
|
|
|
+ value: o[0] ? o[1] : void 0,
|
|
|
+ done: !0
|
|
|
+ }
|
|
|
+ }([o, a])
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ var r = {
|
|
|
+ MP_WEIXIN: "mp-weixin",
|
|
|
+ MP_QQ: "mp-qq",
|
|
|
+ MP_ALIPAY: "mp-alipay",
|
|
|
+ MP_BAIDU: "mp-baidu",
|
|
|
+ MP_TOUTIAO: "mp-toutiao",
|
|
|
+ MP_DINGDING: "mp-dingding",
|
|
|
+ H5: "h5",
|
|
|
+ WEB: "web",
|
|
|
+ PLUS: "plus"
|
|
|
+ },
|
|
|
+ o = ["contentSize", "clientSize", "borderSize", "offsetSize"],
|
|
|
+ s = "row",
|
|
|
+ a = "column",
|
|
|
+ h = "top",
|
|
|
+ d = "middle",
|
|
|
+ c = "bottom",
|
|
|
+ l = "left",
|
|
|
+ f = "center",
|
|
|
+ u = "right",
|
|
|
+ p = "view",
|
|
|
+ g = "text",
|
|
|
+ v = "image",
|
|
|
+ y = "qrcode",
|
|
|
+ b = "block",
|
|
|
+ x = "inline-block",
|
|
|
+ m = "none",
|
|
|
+ w = "flex",
|
|
|
+ S = "absolute",
|
|
|
+ z = "fixed",
|
|
|
+ M = "transparent",
|
|
|
+ B = "fill",
|
|
|
+ k = {
|
|
|
+ display: b,
|
|
|
+ color: "#000000",
|
|
|
+ lineHeight: "1.4em",
|
|
|
+ fontSize: 14,
|
|
|
+ fontWeight: 400,
|
|
|
+ fontFamily: "sans-serif",
|
|
|
+ lineCap: "butt",
|
|
|
+ flexDirection: s,
|
|
|
+ flexWrap: "nowrap",
|
|
|
+ textAlign: "left",
|
|
|
+ alignItems: "flex-start",
|
|
|
+ justifyContent: "flex-start",
|
|
|
+ position: "static",
|
|
|
+ transformOrigin: "center center"
|
|
|
+ },
|
|
|
+ I = {
|
|
|
+ upx2px: function(t) {
|
|
|
+ return window.innerWidth / 750 * t
|
|
|
+ },
|
|
|
+ getSystemInfoSync: function() {
|
|
|
+ return {
|
|
|
+ screenWidth: window.innerWidth
|
|
|
+ }
|
|
|
+ },
|
|
|
+ getImageInfo: function(t) {
|
|
|
+ var e = t.src,
|
|
|
+ i = t.success,
|
|
|
+ n = t.fail,
|
|
|
+ r = new Image;
|
|
|
+ r.onload = function() {
|
|
|
+ i({
|
|
|
+ width: r.naturalWidth,
|
|
|
+ height: r.naturalHeight,
|
|
|
+ path: r.src,
|
|
|
+ src: e
|
|
|
+ })
|
|
|
+ }, r.onerror = n, r.src = e
|
|
|
+ }
|
|
|
+ },
|
|
|
+ P = "object",
|
|
|
+ W = "undefined",
|
|
|
+ R = typeof window == P ? typeof uni == W || typeof uni !== W && !uni.addInterceptor ? r.WEB : r.H5 :
|
|
|
+ typeof swan == P ? r.MP_BAIDU : typeof tt == P ? r.MP_TOUTIAO : typeof plus === P ? r.PLUS :
|
|
|
+ typeof wx == P ? r.MP_WEIXIN : void 0,
|
|
|
+ L = R == r.MP_WEIXIN ? wx : typeof uni != W ? uni.getImageInfo ? {
|
|
|
+ upx2px: function(t) {
|
|
|
+ return uni.upx2px(t)
|
|
|
+ },
|
|
|
+ getSystemInfoSync: function() {
|
|
|
+ return uni.getSystemInfoSync()
|
|
|
+ },
|
|
|
+ getImageInfo: function(t) {
|
|
|
+ return uni.getImageInfo(t)
|
|
|
+ },
|
|
|
+ downloadFile: function(t) {
|
|
|
+ return uni.downloadFile(t)
|
|
|
+ }
|
|
|
+ } : Object.assign(uni, I) : typeof window != W ? I : uni;
|
|
|
+ if (!L.upx2px) {
|
|
|
+ var O = ((L.getSystemInfoSync && uni.getSystemInfoSync()).screenWidth || 375) / 750;
|
|
|
+ L.upx2px = function(t) {
|
|
|
+ return O * t
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ function T(t) {
|
|
|
+ return /^-?\d+(\.\d+)?$/.test(t)
|
|
|
+ }
|
|
|
+
|
|
|
+ function A(t, e, i) {
|
|
|
+ if ("number" == typeof t) return t;
|
|
|
+ if (T(t)) return 1 * t;
|
|
|
+ if ("string" == typeof t) {
|
|
|
+ var n = /^-?([0-9]+)?([.]{1}[0-9]+){0,1}(em|rpx|px|%)$/g.exec(t);
|
|
|
+ if (!t || !n) return 0;
|
|
|
+ var r = n[3];
|
|
|
+ t = parseFloat(t);
|
|
|
+ var o = 0;
|
|
|
+ return "rpx" === r ? o = L.upx2px(t) : "px" === r ? o = 1 * t : "%" === r && e ? o = t * A(e) /
|
|
|
+ 100 : "em" === r && e && (o = t * A(e || 14)), 1 * o.toFixed(2)
|
|
|
+ }
|
|
|
+ return 0
|
|
|
+ }
|
|
|
+
|
|
|
+ function F(t) {
|
|
|
+ return /%$/.test(t)
|
|
|
+ }
|
|
|
+ var j = function(t) {
|
|
|
+ return !(!t || !t.startsWith("linear") && !t.startsWith("radial"))
|
|
|
+ },
|
|
|
+ C = function(t, e, i, n, r, o) {
|
|
|
+ t.startsWith("linear") ? function(t, e, i, n, r, o) {
|
|
|
+ for (var s = function(t, e, i, n, r) {
|
|
|
+ void 0 === n && (n = 0);
|
|
|
+ void 0 === r && (r = 0);
|
|
|
+ var o = t.match(/([-]?\d{1,3})deg/),
|
|
|
+ s = o && o[1] ? parseFloat(o[1]) : 0;
|
|
|
+ s >= 360 && (s -= 360);
|
|
|
+ s < 0 && (s += 360);
|
|
|
+ if (0 === (s = Math.round(s))) return {
|
|
|
+ x0: Math.round(e / 2) + n,
|
|
|
+ y0: i + r,
|
|
|
+ x1: Math.round(e / 2) + n,
|
|
|
+ y1: r
|
|
|
+ };
|
|
|
+ if (180 === s) return {
|
|
|
+ x0: Math.round(e / 2) + n,
|
|
|
+ y0: r,
|
|
|
+ x1: Math.round(e / 2) + n,
|
|
|
+ y1: i + r
|
|
|
+ };
|
|
|
+ if (90 === s) return {
|
|
|
+ x0: n,
|
|
|
+ y0: Math.round(i / 2) + r,
|
|
|
+ x1: e + n,
|
|
|
+ y1: Math.round(i / 2) + r
|
|
|
+ };
|
|
|
+ if (270 === s) return {
|
|
|
+ x0: e + n,
|
|
|
+ y0: Math.round(i / 2) + r,
|
|
|
+ x1: n,
|
|
|
+ y1: Math.round(i / 2) + r
|
|
|
+ };
|
|
|
+ var a = Math.round(180 * Math.asin(e / Math.sqrt(Math.pow(e, 2) + Math.pow(i,
|
|
|
+ 2))) / Math.PI);
|
|
|
+ if (s === a) return {
|
|
|
+ x0: n,
|
|
|
+ y0: i + r,
|
|
|
+ x1: e + n,
|
|
|
+ y1: r
|
|
|
+ };
|
|
|
+ if (s === 180 - a) return {
|
|
|
+ x0: n,
|
|
|
+ y0: r,
|
|
|
+ x1: e + n,
|
|
|
+ y1: i + r
|
|
|
+ };
|
|
|
+ if (s === 180 + a) return {
|
|
|
+ x0: e + n,
|
|
|
+ y0: r,
|
|
|
+ x1: n,
|
|
|
+ y1: i + r
|
|
|
+ };
|
|
|
+ if (s === 360 - a) return {
|
|
|
+ x0: e + n,
|
|
|
+ y0: i + r,
|
|
|
+ x1: n,
|
|
|
+ y1: r
|
|
|
+ };
|
|
|
+ var h = 0,
|
|
|
+ d = 0,
|
|
|
+ c = 0,
|
|
|
+ l = 0;
|
|
|
+ if (s < a || s > 180 - a && s < 180 || s > 180 && s < 180 + a || s > 360 - a) {
|
|
|
+ var f = s * Math.PI / 180,
|
|
|
+ u = s < a || s > 360 - a ? i / 2 : -i / 2,
|
|
|
+ p = Math.tan(f) * u,
|
|
|
+ g = s < a || s > 180 - a && s < 180 ? e / 2 - p : -e / 2 - p;
|
|
|
+ h = -(c = p + (v = Math.pow(Math.sin(f), 2) * g)), d = -(l = u + v / Math
|
|
|
+ .tan(f))
|
|
|
+ }
|
|
|
+ if (s > a && s < 90 || s > 90 && s < 90 + a || s > 180 + a && s < 270 || s >
|
|
|
+ 270 && s < 360 - a) {
|
|
|
+ var v;
|
|
|
+ f = (90 - s) * Math.PI / 180, p = s > a && s < 90 || s > 90 && s < 90 + a ?
|
|
|
+ e / 2 : -e / 2, u = Math.tan(f) * p, g = s > a && s < 90 || s > 270 &&
|
|
|
+ s < 360 - a ? i / 2 - u : -i / 2 - u;
|
|
|
+ h = -(c = p + (v = Math.pow(Math.sin(f), 2) * g) / Math.tan(f)), d = -(l =
|
|
|
+ u + v)
|
|
|
+ }
|
|
|
+ return h = Math.round(h + e / 2) + n, d = Math.round(i / 2 - d) + r, c = Math
|
|
|
+ .round(c + e / 2) + n, l = Math.round(i / 2 - l) + r, {
|
|
|
+ x0: h,
|
|
|
+ y0: d,
|
|
|
+ x1: c,
|
|
|
+ y1: l
|
|
|
+ }
|
|
|
+ }(r, t, e, i, n), a = s.x0, h = s.y0, d = s.x1, c = s.y1, l = o
|
|
|
+ .createLinearGradient(a, h, d, c), f = r.match(/linear-gradient\((.+)\)/)[1], u = E(
|
|
|
+ f.substring(f.indexOf(",") + 1)), p = 0; p < u.colors.length; p++) l
|
|
|
+ .addColorStop(u.percents[p], u.colors[p]);
|
|
|
+ o.setFillStyle(l)
|
|
|
+ }(e, i, n, r, t, o) : t.startsWith("radial") && function(t, e, i, n, r, o) {
|
|
|
+ for (var s = E(r.match(/radial-gradient\((.+)\)/)[1]), a = Math.round(t / 2) + i, h = Math
|
|
|
+ .round(e / 2) + n, d = o.createRadialGradient(a, h, 0, a, h, Math.max(t, e) / 2),
|
|
|
+ c = 0; c < s.colors.length; c++) d.addColorStop(s.percents[c], s.colors[c]);
|
|
|
+ o.setFillStyle(d)
|
|
|
+ }(e, i, n, r, t, o)
|
|
|
+ };
|
|
|
+
|
|
|
+ function E(t) {
|
|
|
+ for (var e = [], i = [], n = 0, r = t.substring(0, t.length - 1).split("%,"); n < r.length; n++) {
|
|
|
+ var o = r[n];
|
|
|
+ e.push(o.substring(0, o.lastIndexOf(" ")).trim()), i.push(o.substring(o.lastIndexOf(" "), o
|
|
|
+ .length) / 100)
|
|
|
+ }
|
|
|
+ return {
|
|
|
+ colors: e,
|
|
|
+ percents: i
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ function H(t, e, i) {
|
|
|
+ return e in t ? Object.defineProperty(t, e, {
|
|
|
+ value: i,
|
|
|
+ enumerable: !0,
|
|
|
+ configurable: !0,
|
|
|
+ writable: !0
|
|
|
+ }) : t[e] = i, t
|
|
|
+ }
|
|
|
+
|
|
|
+ function U() {
|
|
|
+ return U = Object.assign ? Object.assign.bind() : function(t) {
|
|
|
+ for (var e = 1; e < arguments.length; e++) {
|
|
|
+ var i = arguments[e];
|
|
|
+ for (var n in i) Object.prototype.hasOwnProperty.call(i, n) && (t[n] = i[n])
|
|
|
+ }
|
|
|
+ return t
|
|
|
+ }, U.apply(this, arguments)
|
|
|
+ }
|
|
|
+
|
|
|
+ function Y(t, e) {
|
|
|
+ return Y = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function(t, e) {
|
|
|
+ return t.__proto__ = e, t
|
|
|
+ }, Y(t, e)
|
|
|
+ }
|
|
|
+
|
|
|
+ function $(t, e) {
|
|
|
+ (null == e || e > t.length) && (e = t.length);
|
|
|
+ for (var i = 0, n = new Array(e); i < e; i++) n[i] = t[i];
|
|
|
+ return n
|
|
|
+ }
|
|
|
+
|
|
|
+ function D(t, e) {
|
|
|
+ var i = "undefined" != typeof Symbol && t[Symbol.iterator] || t["@@iterator"];
|
|
|
+ if (i) return (i = i.call(t)).next.bind(i);
|
|
|
+ if (Array.isArray(t) || (i = function(t, e) {
|
|
|
+ if (t) {
|
|
|
+ if ("string" == typeof t) return $(t, e);
|
|
|
+ var i = Object.prototype.toString.call(t).slice(8, -1);
|
|
|
+ return "Object" === i && t.constructor && (i = t.constructor.name), "Map" === i ||
|
|
|
+ "Set" === i ? Array.from(t) : "Arguments" === i ||
|
|
|
+ /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i) ? $(t, e) : void 0
|
|
|
+ }
|
|
|
+ }(t)) || e && t && "number" == typeof t.length) {
|
|
|
+ i && (t = i);
|
|
|
+ var n = 0;
|
|
|
+ return function() {
|
|
|
+ return n >= t.length ? {
|
|
|
+ done: !0
|
|
|
+ } : {
|
|
|
+ done: !1,
|
|
|
+ value: t[n++]
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ throw new TypeError(
|
|
|
+ "Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."
|
|
|
+ )
|
|
|
+ }
|
|
|
+
|
|
|
+ function _(t) {
|
|
|
+ return "number" == typeof t
|
|
|
+ }
|
|
|
+
|
|
|
+ function X(t) {
|
|
|
+ return "auto" === t || null === t
|
|
|
+ }
|
|
|
+
|
|
|
+ function N(t) {
|
|
|
+ return /%$/.test(t)
|
|
|
+ }
|
|
|
+ var V, G = 0,
|
|
|
+ q = function() {
|
|
|
+ function t() {
|
|
|
+ H(this, "elements", []), H(this, "afterElements", []), H(this, "beforeElements", []), H(this,
|
|
|
+ "ids", []), H(this, "width", 0), H(this, "height", 0), H(this, "top", 0), H(this,
|
|
|
+ "left", 0), H(this, "pre", null), H(this, "offsetX", 0), H(this, "offsetY", 0), G++,
|
|
|
+ this.id = G
|
|
|
+ }
|
|
|
+ var e = t.prototype;
|
|
|
+ return e.fixedBind = function(t, e) {
|
|
|
+ void 0 === e && (e = 0), this.container = e ? t.parent : t.root, this.container.fixedLine =
|
|
|
+ this, this.fixedAdd(t)
|
|
|
+ }, e.fixedAdd = function(t) {
|
|
|
+ this.elements.push(t);
|
|
|
+ var e = t.computedStyle.zIndex;
|
|
|
+ (void 0 === e ? 0 : e) >= 0 ? this.afterElements.push(t) : this.beforeElements.push(t), this
|
|
|
+ .refreshLayout()
|
|
|
+ }, e.bind = function(t) {
|
|
|
+ this.container = t.parent, this.container.line = null, this.container.lines ? (this
|
|
|
+ .container.lines.push(this), this.pre = this.getPreLine(), this.top = this.pre.top +
|
|
|
+ this.pre.height, this.left = this.container.contentSize.left) : (this.top = this
|
|
|
+ .container.contentSize.top, this.left = this.container.contentSize.left, this
|
|
|
+ .container.lines = [this]), this.isInline = t.isInline(), this.container.line =
|
|
|
+ this, this.outerWidth = t.parent && t.parent.contentSize.width ? t.parent.contentSize
|
|
|
+ .width : 1 / 0, this.add(t)
|
|
|
+ }, e.getPreLine = function() {
|
|
|
+ return this.container.lines[this.container.lines.length - 2]
|
|
|
+ }, e.canIEnter = function(t) {
|
|
|
+ return this.outerWidth || t.parent && t.parent.contentSize.width, !((100 * t.offsetSize
|
|
|
+ .width + 100 * this.width) / 100 > this.outerWidth) || (this.closeLine(), !1)
|
|
|
+ }, e.closeLine = function() {
|
|
|
+ delete this.container.line
|
|
|
+ }, e.add = function(t) {
|
|
|
+ this.ids.includes(t.id) || (this.ids.push(t.id), this.elements.push(t), this
|
|
|
+ .refreshWidthHeight(t))
|
|
|
+ }, e.refreshWidthHeight = function(t) {
|
|
|
+ t.offsetSize.height > this.height && (this.height = t.offsetSize.height), this.width += t
|
|
|
+ .offsetSize.width || 0, (this.container.lineMaxWidth || 0) < this.width && (this
|
|
|
+ .container.lineMaxWidth = this.width)
|
|
|
+ }, e.refreshXAlign = function() {
|
|
|
+ if (this.isInline) {
|
|
|
+ var t = this.container.contentSize.width - this.width,
|
|
|
+ e = this.container.style.textAlign;
|
|
|
+ "center" === e ? t /= 2 : "left" === e && (t = 0), this.offsetX = t
|
|
|
+ }
|
|
|
+ }, e.getOffsetY = function(t) {
|
|
|
+ if (!t || !t.style) return 0;
|
|
|
+ var e = (t.style || {}).verticalAlign;
|
|
|
+ return "bottom" === e ? this.height - t.contentSize.height : "middle" === e ? (this.height -
|
|
|
+ t.contentSize.height) / 2 : 0
|
|
|
+ }, e.layout = function(t, e) {
|
|
|
+ for (var i in this.refreshXAlign(), this.pre ? (this.top = this.pre.top + this.pre.height +
|
|
|
+ this.offsetY, this.left = e + this.offsetX) : (this.top = Math.max(this.top,
|
|
|
+ this.container.contentSize.top, t) + this.offsetY, this.left = Math.max(this
|
|
|
+ .left, this.container.contentSize.left, e) + this.offsetX), this.elements) {
|
|
|
+ var n = this.elements[i],
|
|
|
+ r = this.elements[i - 1],
|
|
|
+ o = this.getOffsetY(n);
|
|
|
+ n.style.top = this.top + o, n.style.left = r ? r.offsetSize.left + r.offsetSize.width :
|
|
|
+ this.left, n.getBoxPosition2()
|
|
|
+ }
|
|
|
+ }, e.refreshLayout = function() {
|
|
|
+ this.afterElements = this.afterElements.sort((function(t, e) {
|
|
|
+ return t.computedStyle.zIndex - e.computedStyle.zIndex
|
|
|
+ })), this.beforeElements = this.beforeElements.sort((function(t, e) {
|
|
|
+ return t.computedStyle.zIndex - e.computedStyle.zIndex
|
|
|
+ }))
|
|
|
+ }, t
|
|
|
+ }(),
|
|
|
+ J = ((V = {})[s] = {
|
|
|
+ width: "width",
|
|
|
+ contentWidth: "width",
|
|
|
+ x: "x",
|
|
|
+ y: "y",
|
|
|
+ contentX: "left",
|
|
|
+ height: "height",
|
|
|
+ contentHeight: "height",
|
|
|
+ marginLeft: "marginLeft"
|
|
|
+ }, V[a] = {
|
|
|
+ width: "height",
|
|
|
+ contentWidth: "height",
|
|
|
+ x: "y",
|
|
|
+ y: "x",
|
|
|
+ contentX: "top",
|
|
|
+ height: "width",
|
|
|
+ contentHeight: "width",
|
|
|
+ marginLeft: "marginTop"
|
|
|
+ }, V),
|
|
|
+ Q = function(t) {
|
|
|
+ var e, i;
|
|
|
+
|
|
|
+ function n() {
|
|
|
+ var e;
|
|
|
+ return H(function(t) {
|
|
|
+ if (void 0 === t) throw new ReferenceError(
|
|
|
+ "this hasn't been initialised - super() hasn't been called");
|
|
|
+ return t
|
|
|
+ }(e = t.call(this) || this), "outerWidth", 0), e.exactValue = 0, e.flexTotal = 0, e.key =
|
|
|
+ null, e
|
|
|
+ }
|
|
|
+ i = t, (e = n).prototype = Object.create(i.prototype), e.prototype.constructor = e, Y(e, i);
|
|
|
+ var r = n.prototype;
|
|
|
+ return r.bind = function(t) {
|
|
|
+ console.warn("[painter] flex-box 功能未完善谨慎使用"), this.container = t.parent, this.container
|
|
|
+ .line = this, this.container.lines ? (this.container.lines.push(this), this.pre = this
|
|
|
+ .getPreLine(), this.top = this.pre.top + this.pre.height, this.left = this.container
|
|
|
+ .contentSize.left) : (this.top = this.container.contentSize.top, this.left = this
|
|
|
+ .container.contentSize.left, this.container.lines = [this]), t.parent && (this.key =
|
|
|
+ J[t.parent.style.flexDirection]), this.initHeight(t), this.outerWidth = t.parent &&
|
|
|
+ t.parent.contentSize[this.key.contentWidth] ? t.parent.contentSize[this.key
|
|
|
+ .contentWidth] : 1 / 0, this.add(t)
|
|
|
+ }, r.add = function(t) {
|
|
|
+ this.ids.push(t.id), _(t.style.flex) ? this.flexTotal += t.style.flex : _(t.style[this.key
|
|
|
+ .width]) && (this.exactValue += t.contentSize[this.key.width]), this.elements.push(
|
|
|
+ t), this.refreshWidthHeight(t), t.next || this.closeLine()
|
|
|
+ }, r.closeLine = function() {
|
|
|
+ this.calcFlex()
|
|
|
+ }, r.initHeight = function(t) {
|
|
|
+ this[this.key.height] = 0
|
|
|
+ }, r.calcFlex = function() {
|
|
|
+ var t = this,
|
|
|
+ e = this.container.contentSize[this.key.contentWidth];
|
|
|
+ this.elements.forEach((function(i) {
|
|
|
+ var n = i.style.width || 0;
|
|
|
+ _(i.style.flex) && (n = i.style.flex / t.flexTotal * (e - t.exactValue)), i
|
|
|
+ .computedStyle[t.key.width] = n, delete i.line, delete i.lines, delete i
|
|
|
+ .lineMaxWidth, i.getBoxWidthHeight()
|
|
|
+ }))
|
|
|
+ }, r.refreshWidthHeight = function(t) {
|
|
|
+ this.container.style.alignItems && !t.style.alignSelf && (t.style.alignSelf = this.container
|
|
|
+ .style.alignItems), t.contentSize[this.key.height] > this[this.key.height] && (this[
|
|
|
+ this.key.height] = t.offsetSize[this.key.height]), this[this.key.width] += t
|
|
|
+ .offsetSize[this.key.width];
|
|
|
+ var e = Math.min(this[this.key.width], this.container.contentSize[this.key.width]);
|
|
|
+ (this.container.lineMaxWidth || 0) < e && (this.container.lineMaxWidth = e)
|
|
|
+ }, r.refreshXAlign = function() {
|
|
|
+ var t = this,
|
|
|
+ e = this.elements.reduce((function(e, i) {
|
|
|
+ return e + i.offsetSize[t.key.width]
|
|
|
+ }), 0),
|
|
|
+ i = this.outerWidth == 1 / 0 ? 0 : this.outerWidth - Math.max(this[this.key.width], e),
|
|
|
+ n = this.container.style.justifyContent;
|
|
|
+ "center" === n ? i /= 2 : "flex-start" === n ? i = 0 : ["space-between", "space-around"]
|
|
|
+ .includes(n) && (! function(e, i) {
|
|
|
+ void 0 === i && (i = 0), i /= t.elements.length + (e ? -1 : 1), t.elements
|
|
|
+ .forEach((function(n, r) {
|
|
|
+ var o;
|
|
|
+ e && !r || (n.style.margin ? n.style.margin[t.key.marginLeft] +=
|
|
|
+ i : n.style.margin = ((o = {})[t.key.marginLeft] = i, o)
|
|
|
+ )
|
|
|
+ })), i = 0
|
|
|
+ }("space-between" == n, i), i = 0), this.offsetX = i || 0, this.refreshYAlign()
|
|
|
+ }, r.refreshYAlign = function() {
|
|
|
+ if (1 == this.container.lines.length) return 0;
|
|
|
+ var t = this.container.lines.reduce((function(t, e) {
|
|
|
+ return t + e.height
|
|
|
+ }), 0);
|
|
|
+ if ("center" === this.container.style.alignItems) {
|
|
|
+ var e = (this.container.contentSize[this.key.contentHeight] - t) / (this.container.lines
|
|
|
+ .length + 1);
|
|
|
+ this.container.lines.forEach((function(t) {
|
|
|
+ t.offsetY = e
|
|
|
+ }))
|
|
|
+ }
|
|
|
+ if ("flex-end" === this.container.style.alignItems) {
|
|
|
+ var i = this.container.contentSize[this.key.contentHeight] - t;
|
|
|
+ this.container.lines[0].offsetY = i
|
|
|
+ }
|
|
|
+ }, r.getOffsetY = function(t) {
|
|
|
+ return this.container.lines.length > 1 ? 0 : "flex-end" === t.style.alignSelf ? this
|
|
|
+ .container.contentSize[this.key.contentHeight] - t.contentSize[this.key.height] :
|
|
|
+ "center" === t.style.alignSelf ? (this.container.contentSize[this.key.contentHeight] - t
|
|
|
+ .contentSize[this.key.height]) / 2 : 0
|
|
|
+ }, n
|
|
|
+ }(q),
|
|
|
+ Z = v,
|
|
|
+ K = g,
|
|
|
+ et = p,
|
|
|
+ it = y,
|
|
|
+ nt = b,
|
|
|
+ rt = x,
|
|
|
+ ot = w,
|
|
|
+ st = S,
|
|
|
+ at = z,
|
|
|
+ ht = 0,
|
|
|
+ dt = {
|
|
|
+ left: null,
|
|
|
+ top: null,
|
|
|
+ width: null,
|
|
|
+ height: null
|
|
|
+ },
|
|
|
+ ct = function() {
|
|
|
+ function t(t, e, i, n) {
|
|
|
+ var r = this;
|
|
|
+ H(this, "id", ht++), H(this, "style", {
|
|
|
+ left: null,
|
|
|
+ top: null,
|
|
|
+ width: null,
|
|
|
+ height: null
|
|
|
+ }), H(this, "computedStyle", {}), H(this, "originStyle", {}), H(this, "children", {}), H(
|
|
|
+ this, "layoutBox", U({}, dt)), H(this, "contentSize", U({}, dt)), H(this, "clientSize",
|
|
|
+ U({}, dt)), H(this, "borderSize", U({}, dt)), H(this, "offsetSize", U({}, dt)), this
|
|
|
+ .ctx = n, this.root = i, e && (this.parent = e), this.name = t.name || t.type, this
|
|
|
+ .attributes = this.getAttributes(t);
|
|
|
+ var o = this.getComputedStyle(t, e && e.computedStyle);
|
|
|
+ this.isAbsolute = o.position == st, this.isFixed = o.position == at, this.originStyle = o,
|
|
|
+ Object.keys(o).forEach((function(t) {
|
|
|
+ Object.defineProperty(r.style, t, {
|
|
|
+ configurable: !0,
|
|
|
+ enumerable: !0,
|
|
|
+ get: function() {
|
|
|
+ return o[t]
|
|
|
+ },
|
|
|
+ set: function(e) {
|
|
|
+ o[t] = e
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }));
|
|
|
+ var s = {
|
|
|
+ contentSize: U({}, this.contentSize),
|
|
|
+ clientSize: U({}, this.clientSize),
|
|
|
+ borderSize: U({}, this.borderSize),
|
|
|
+ offsetSize: U({}, this.offsetSize)
|
|
|
+ };
|
|
|
+ Object.keys(s).forEach((function(t) {
|
|
|
+ Object.keys(r[t]).forEach((function(e) {
|
|
|
+ Object.defineProperty(r[t], e, {
|
|
|
+ configurable: !0,
|
|
|
+ enumerable: !0,
|
|
|
+ get: function() {
|
|
|
+ return s[t][e]
|
|
|
+ },
|
|
|
+ set: function(i) {
|
|
|
+ s[t][e] = i
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }))
|
|
|
+ })), this.computedStyle = this.style
|
|
|
+ }
|
|
|
+ var e = t.prototype;
|
|
|
+ return e.add = function(t) {
|
|
|
+ t.parent = this, this.children[t.id] = t
|
|
|
+ }, e.getChildren = function() {
|
|
|
+ var t = this;
|
|
|
+ return Object.keys(this.children).map((function(e) {
|
|
|
+ return t.children[e]
|
|
|
+ }))
|
|
|
+ }, e.getLineRect = function(t, e) {
|
|
|
+ var i = {
|
|
|
+ width: 0,
|
|
|
+ height: 0
|
|
|
+ },
|
|
|
+ n = e ? e.lines : this.parent && this.parent.lines;
|
|
|
+ return n && n.find((function(e) {
|
|
|
+ return e.ids.includes(t)
|
|
|
+ })) || i
|
|
|
+ }, e.getComputedStyle = function(t, e) {
|
|
|
+ var i = ["color", "fontSize", "lineHeight", "verticalAlign", "fontWeight", "textAlign"],
|
|
|
+ n = t.css,
|
|
|
+ r = void 0 === n ? {} : n,
|
|
|
+ o = t.type,
|
|
|
+ s = void 0 === o ? et : o,
|
|
|
+ a = U({}, k);
|
|
|
+ if ([K, Z, it].includes(s) && !r.display && (a.display = rt), e)
|
|
|
+ for (var h = 0; h < i.length; h++) {
|
|
|
+ var d = i[h];
|
|
|
+ (r[d] || e[d]) && (r[d] = r[d] || e[d])
|
|
|
+ }
|
|
|
+ for (var c = function() {
|
|
|
+ var t = f[l],
|
|
|
+ e = r[t];
|
|
|
+ if (/-/.test(t) && (t = t.replace(/-([a-z])/g, (function(t, e) {
|
|
|
+ return e.toUpperCase()
|
|
|
+ })), a.key = e), /^(box|text)?shadow$/i.test(t)) {
|
|
|
+ var i = [];
|
|
|
+ return e.replace(/((\d+(rpx|px)?\s+?){3})(.+)/, (function() {
|
|
|
+ for (var t = arguments.length, e = new Array(t), n = 0; n <
|
|
|
+ t; n++) e[n] = arguments[n];
|
|
|
+ i = e[1].match(/\d+(rpx|px)?/g).map((function(t) {
|
|
|
+ return A(t)
|
|
|
+ })).concat(e[4])
|
|
|
+ })), /^text/.test(t) ? a.textShadow = i : a.boxShadow = i, "continue"
|
|
|
+ }
|
|
|
+ if (/^border/i.test(t) && !/radius$/i.test(t)) {
|
|
|
+ var n, o = t.match(/^border([BTRLa-z]+)?/)[0],
|
|
|
+ h = t.match(/[W|S|C][a-z]+/),
|
|
|
+ d = e.replace(/([\(,])\s+|\s+([\),])/g, "$1$2").split(" ").map((
|
|
|
+ function(t) {
|
|
|
+ return /^\d/.test(t) ? A(t, "") : t
|
|
|
+ }));
|
|
|
+ return a[o] = ((n = {})[o + "Width"] = T(d[0]) ? d[0] : 0, n[o + "Style"] =
|
|
|
+ d[1] || "solid", n[o + "Color"] = d[2] || "black", n), 1 == d
|
|
|
+ .length && h && (a[o][o + h[0]] = d[0]), "continue"
|
|
|
+ }
|
|
|
+ if (/^background(color)?$/i.test(t)) return a.backgroundColor = e, "continue";
|
|
|
+ if (/^objectPosition$/i.test(t)) return a[t] = e.split(" "), "continue";
|
|
|
+ if (/padding|margin|radius/i.test(t)) {
|
|
|
+ var c = /radius$/i.test(t),
|
|
|
+ u = c ? "borderRadius" : t.match(/[a-z]+/)[0],
|
|
|
+ p = [0, 0, 0, 0].map((function(t, e) {
|
|
|
+ return c ? ["borderTopLeftRadius", "borderTopRightRadius",
|
|
|
+ "borderBottomRightRadius", "borderBottomLeftRadius"
|
|
|
+ ][e] : [u + "Top", u + "Right", u + "Bottom", u +
|
|
|
+ "Left"][e]
|
|
|
+ })),
|
|
|
+ g = "margin";
|
|
|
+ if ("padding" === t || t === g || /^(border)?radius$/i.test(t)) {
|
|
|
+ var v, y = ("" + e).split(" ").map((function(e) {
|
|
|
+ return /^\d+(rpx|px)?$/.test(e) ? A(e) : t != g &&
|
|
|
+ /auto/.test(e) ? 0 : e
|
|
|
+ }), []) || [0],
|
|
|
+ b = c ? "borderRadius" : t,
|
|
|
+ x = y[0],
|
|
|
+ m = y[1],
|
|
|
+ w = y[2],
|
|
|
+ S = y[3];
|
|
|
+ a[b] = ((v = {})[p[0]] = X(x) ? 0 : x, v[p[1]] = T(m) || X(m) ? m : x,
|
|
|
+ v[p[2]] = X(T(w) ? w : x) ? 0 : T(w) ? w : x, v[p[3]] = T(S) ?
|
|
|
+ S : m || x, v)
|
|
|
+ } else {
|
|
|
+ var z;
|
|
|
+ if ("object" == typeof a[u]) a[u][t] = u == g && X(e) || N(e) ? e : A(
|
|
|
+ e);
|
|
|
+ else a[u] = ((z = {})[p[0]] = a[u] || 0, z[p[1]] = a[u] || 0, z[p[2]] =
|
|
|
+ a[u] || 0, z[p[3]] = a[u] || 0, z), a[u][t] = u == g && X(e) ||
|
|
|
+ N(e) ? e : A(e)
|
|
|
+ }
|
|
|
+ return "continue"
|
|
|
+ }
|
|
|
+ if (/^transform$/i.test(t)) return a[t] = {}, e.replace(
|
|
|
+ /([a-zA-Z]+)\(([0-9,-\.%rpxdeg\s]+)\)/g, (function(e, i, n) {
|
|
|
+ var o = n.split(",").map((function(t) {
|
|
|
+ return t.replace(/(^\s*)|(\s*$)/g, "")
|
|
|
+ })),
|
|
|
+ s = function(t, e) {
|
|
|
+ return t.includes("deg") ? 1 * t : e && !N(e) ? A(t,
|
|
|
+ e) : t
|
|
|
+ };
|
|
|
+ i.includes("matrix") ? a[t][i] = o.map((function(t) {
|
|
|
+ return 1 * t
|
|
|
+ })) : i.includes("rotate") ? a[t][i] = 1 * n.match(
|
|
|
+ /^-?\d+(\.\d+)?/)[0] : /[X, Y]/.test(i) ? a[t][i] =
|
|
|
+ /[X]/.test(i) ? s(o[0], r.width) : s(o[0], r.height) : (
|
|
|
+ a[t][i + "X"] = s(o[0], r.width), a[t][i + "Y"] = s(
|
|
|
+ o[1] || o[0], r.height))
|
|
|
+ })), "continue";
|
|
|
+ /^font$/i.test(t) && console.warn("font 不支持简写"), /^left|top$/i.test(t) && ![st,
|
|
|
+ at
|
|
|
+ ].includes(r.position) ? a[t] = 0 : a[t] = /^[\d\.]+(px|rpx)?$/.test(e) ? A(
|
|
|
+ e) : /em$/.test(e) && s == K ? A(e, r.fontSize) : e
|
|
|
+ }, l = 0, f = Object.keys(r); l < f.length; l++) c();
|
|
|
+ return a
|
|
|
+ }, e.setPosition = function(t, e) {
|
|
|
+ var i = {
|
|
|
+ left: "width",
|
|
|
+ top: "height",
|
|
|
+ right: "width",
|
|
|
+ bottom: "height"
|
|
|
+ };
|
|
|
+ Object.keys(i).forEach((function(n) {
|
|
|
+ var r = "right" == n ? "left" : "top";
|
|
|
+ ["right", "bottom"].includes(n) && void 0 !== t.style[n] && "number" !=
|
|
|
+ typeof t.originStyle[r] ? t.style[r] = e[i[n]] - t.offsetSize[i[n]] - A(
|
|
|
+ t.style[n], e[i[n]]) : t.style[n] = A(t.style[n], e[i[n]])
|
|
|
+ }))
|
|
|
+ }, e.getAttributes = function(t) {
|
|
|
+ var e = t.attributes || {};
|
|
|
+ return (t.url || t.src) && (e.src = e.src || t.url || t.src), t.replace && (e.replace = t
|
|
|
+ .replace), t.text && (e.text = t.text), e
|
|
|
+ }, e.getOffsetSize = function(t, e, i) {
|
|
|
+ void 0 === i && (i = o[3]);
|
|
|
+ var n = e || {},
|
|
|
+ r = n.margin,
|
|
|
+ s = (r = void 0 === r ? {} : r).marginLeft,
|
|
|
+ a = void 0 === s ? 0 : s,
|
|
|
+ h = r.marginTop,
|
|
|
+ d = void 0 === h ? 0 : h,
|
|
|
+ c = r.marginRight,
|
|
|
+ l = void 0 === c ? 0 : c,
|
|
|
+ f = r.marginBottom,
|
|
|
+ u = void 0 === f ? 0 : f,
|
|
|
+ p = n.padding,
|
|
|
+ g = (p = void 0 === p ? {} : p).paddingLeft,
|
|
|
+ v = void 0 === g ? 0 : g,
|
|
|
+ y = p.paddingTop,
|
|
|
+ b = void 0 === y ? 0 : y,
|
|
|
+ x = p.paddingRight,
|
|
|
+ m = void 0 === x ? 0 : x,
|
|
|
+ w = p.paddingBottom,
|
|
|
+ S = void 0 === w ? 0 : w,
|
|
|
+ z = n.border,
|
|
|
+ M = (z = void 0 === z ? {} : z).borderWidth,
|
|
|
+ B = void 0 === M ? 0 : M,
|
|
|
+ k = n.borderTop,
|
|
|
+ I = (k = void 0 === k ? {} : k).borderTopWidth,
|
|
|
+ P = void 0 === I ? B : I,
|
|
|
+ W = n.borderBottom,
|
|
|
+ R = (W = void 0 === W ? {} : W).borderBottomWidth,
|
|
|
+ L = void 0 === R ? B : R,
|
|
|
+ O = n.borderRight,
|
|
|
+ T = (O = void 0 === O ? {} : O).borderRightWidth,
|
|
|
+ A = void 0 === T ? B : T,
|
|
|
+ F = n.borderLeft,
|
|
|
+ j = (F = void 0 === F ? {} : F).borderLeftWidth,
|
|
|
+ C = void 0 === j ? B : j,
|
|
|
+ E = a < 0 && l < 0 ? Math.abs(a + l) : 0,
|
|
|
+ H = d < 0 && u < 0 ? Math.abs(d + u) : 0,
|
|
|
+ U = a >= 0 && l < 0,
|
|
|
+ Y = d >= 0 && u < 0;
|
|
|
+ return i == o[0] && (this[i].left = t.left + a + v + C + (U ? 2 * -l : 0), this[i].top = t
|
|
|
+ .top + d + b + P + (Y ? 2 * -u : 0), this[i].width = t.width + (this[i].widthAdd ?
|
|
|
+ 0 : E), this[i].height = t.height + (this[i].heightAdd ? 0 : H), this[i]
|
|
|
+ .widthAdd = E, this[i].heightAdd = H), i == o[1] && (this[i].left = t.left + a + C +
|
|
|
+ (U < 0 ? -l : 0), this[i].top = t.top + d + P + (Y ? -u : 0), this[i].width = t
|
|
|
+ .width + v + m, this[i].height = t.height + b + S), i == o[2] && (this[i].left = t
|
|
|
+ .left + a + C / 2 + (U < 0 ? -l : 0), this[i].top = t.top + d + P / 2 + (Y ? -u :
|
|
|
+ 0), this[i].width = t.width + v + m + C / 2 + A / 2, this[i].height = t.height + b +
|
|
|
+ S + L / 2 + P / 2), i == o[3] && (this[i].left = t.left + (U < 0 ? -l : 0), this[i]
|
|
|
+ .top = t.top + (Y ? -u : 0), this[i].width = t.width + v + m + C + A + a + l, this[
|
|
|
+ i].height = t.height + b + S + L + P + u + d), this[i]
|
|
|
+ }, e.layoutBoxUpdate = function(t, e, i, n) {
|
|
|
+ var r = this;
|
|
|
+ if (void 0 === i && (i = -1), "border-box" == e.boxSizing) {
|
|
|
+ var s = e || {},
|
|
|
+ a = s.border,
|
|
|
+ h = (a = void 0 === a ? {} : a).borderWidth,
|
|
|
+ d = void 0 === h ? 0 : h,
|
|
|
+ c = s.borderTop,
|
|
|
+ l = (c = void 0 === c ? {} : c).borderTopWidth,
|
|
|
+ f = void 0 === l ? d : l,
|
|
|
+ u = s.borderBottom,
|
|
|
+ p = (u = void 0 === u ? {} : u).borderBottomWidth,
|
|
|
+ g = void 0 === p ? d : p,
|
|
|
+ v = s.borderRight,
|
|
|
+ y = (v = void 0 === v ? {} : v).borderRightWidth,
|
|
|
+ b = void 0 === y ? d : y,
|
|
|
+ x = s.borderLeft,
|
|
|
+ m = (x = void 0 === x ? {} : x).borderLeftWidth,
|
|
|
+ w = void 0 === m ? d : m,
|
|
|
+ S = s.padding,
|
|
|
+ z = (S = void 0 === S ? {} : S).paddingTop,
|
|
|
+ M = void 0 === z ? 0 : z,
|
|
|
+ B = S.paddingRight,
|
|
|
+ k = void 0 === B ? 0 : B,
|
|
|
+ I = S.paddingBottom,
|
|
|
+ P = void 0 === I ? 0 : I,
|
|
|
+ W = S.paddingLeft,
|
|
|
+ R = void 0 === W ? 0 : W;
|
|
|
+ i || (t.width -= R + k + b + w), 1 !== i || n || (t.height -= M + P + f + g)
|
|
|
+ }
|
|
|
+ this.layoutBox && (o.forEach((function(i) {
|
|
|
+ return r.layoutBox[i] = r.getOffsetSize(t, e, i)
|
|
|
+ })), this.layoutBox = Object.assign({}, this.layoutBox, this.layoutBox.borderSize))
|
|
|
+ }, e.getBoxPosition2 = function() {
|
|
|
+ var t = this.computedStyle,
|
|
|
+ e = this.fixedLine,
|
|
|
+ i = this.lines,
|
|
|
+ n = t.left,
|
|
|
+ r = void 0 === n ? 0 : n,
|
|
|
+ o = t.top,
|
|
|
+ s = void 0 === o ? 0 : o,
|
|
|
+ a = t.padding || {},
|
|
|
+ h = a.paddingBottom,
|
|
|
+ d = void 0 === h ? 0 : h,
|
|
|
+ c = a.paddingRight,
|
|
|
+ l = void 0 === c ? 0 : c,
|
|
|
+ f = U({}, this.contentSize, {
|
|
|
+ left: r,
|
|
|
+ top: s
|
|
|
+ }),
|
|
|
+ u = this.contentSize.top - this.offsetSize.top,
|
|
|
+ p = this.contentSize.left - this.offsetSize.left;
|
|
|
+ if (this.root.fixedLine && !this.root.isDone) {
|
|
|
+ this.root.isDone = !0;
|
|
|
+ for (var g, v = D(this.root.fixedLine.elements); !(g = v()).done;) {
|
|
|
+ var y = g.value;
|
|
|
+ y.setPosition(y, this.root.offsetSize), y.getBoxPosition2()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (e)
|
|
|
+ for (var b, x = D(e.elements); !(b = x()).done;) {
|
|
|
+ var m = b.value;
|
|
|
+ m.setPosition(m, f), m.style.left += r + p + l, m.style.top += s + u + d, m
|
|
|
+ .getBoxPosition2()
|
|
|
+ }
|
|
|
+ if (i)
|
|
|
+ for (var w, S = D(i); !(w = S()).done;) {
|
|
|
+ w.value.layout(f.top + u, f.left + p)
|
|
|
+ }
|
|
|
+ return this.layoutBoxUpdate(f, t), this.layoutBox
|
|
|
+ }, e.getBoxState = function(t, e) {
|
|
|
+ return this.isBlock(t) || this.isBlock(e)
|
|
|
+ }, e.isBlock = function(t) {
|
|
|
+ return void 0 === t && (t = this), t && t.style.display == nt
|
|
|
+ }, e.isFlex = function(t) {
|
|
|
+ return void 0 === t && (t = this), t && t.style.display == ot
|
|
|
+ }, e.isInFlow = function() {
|
|
|
+ return !(this.isAbsolute || this.isFixed)
|
|
|
+ }, e.inFlexBox = function(t) {
|
|
|
+ return void 0 === t && (t = this), !!t.isInFlow() && (!!t.parent && (!(!t.parent || t.parent
|
|
|
+ .style.display !== ot) || void 0))
|
|
|
+ }, e.isInline = function(t) {
|
|
|
+ return void 0 === t && (t = this), t && t.style.display == rt
|
|
|
+ }, e.contrastSize = function(t, e, i) {
|
|
|
+ var n = t;
|
|
|
+ return i && (n = Math.min(n, i)), e && (n = Math.max(n, e)), n
|
|
|
+ }, e.measureText = function(t, e) {
|
|
|
+ var i = this.ctx.measureText(t),
|
|
|
+ n = i.width,
|
|
|
+ r = i.actualBoundingBoxAscent,
|
|
|
+ o = i.actualBoundingBoxDescent;
|
|
|
+ return {
|
|
|
+ ascent: r,
|
|
|
+ descent: o,
|
|
|
+ width: n,
|
|
|
+ fontHeight: r + o || .7 * e + 1
|
|
|
+ }
|
|
|
+ }, e.getBoxWidthHeight = function() {
|
|
|
+ var t = this,
|
|
|
+ e = this.name,
|
|
|
+ i = this.computedStyle,
|
|
|
+ n = this.attributes,
|
|
|
+ r = this.parent,
|
|
|
+ o = void 0 === r ? {} : r,
|
|
|
+ s = this.ctx,
|
|
|
+ a = this.getChildren(),
|
|
|
+ h = i.left,
|
|
|
+ d = void 0 === h ? 0 : h,
|
|
|
+ c = i.top,
|
|
|
+ l = void 0 === c ? 0 : c,
|
|
|
+ f = i.bottom,
|
|
|
+ u = i.right,
|
|
|
+ p = i.width,
|
|
|
+ g = void 0 === p ? 0 : p,
|
|
|
+ v = i.minWidth,
|
|
|
+ y = i.maxWidth,
|
|
|
+ b = i.minHeight,
|
|
|
+ x = i.maxHeight,
|
|
|
+ m = i.height,
|
|
|
+ w = void 0 === m ? 0 : m,
|
|
|
+ S = i.fontSize,
|
|
|
+ z = void 0 === S ? 14 : S,
|
|
|
+ M = i.fontWeight,
|
|
|
+ B = i.fontFamily,
|
|
|
+ k = i.fontStyle,
|
|
|
+ I = i.position,
|
|
|
+ P = i.lineClamp,
|
|
|
+ W = i.lineHeight,
|
|
|
+ R = i.padding,
|
|
|
+ L = void 0 === R ? {} : R,
|
|
|
+ O = i.margin,
|
|
|
+ T = void 0 === O ? {} : O,
|
|
|
+ F = i.border,
|
|
|
+ j = (F = void 0 === F ? {} : F).borderWidth,
|
|
|
+ C = void 0 === j ? 0 : j,
|
|
|
+ E = i.borderRight,
|
|
|
+ H = (E = void 0 === E ? {} : E).borderRightWidth,
|
|
|
+ U = void 0 === H ? C : H,
|
|
|
+ Y = i.borderLeft,
|
|
|
+ $ = (Y = void 0 === Y ? {} : Y).borderLeftWidth,
|
|
|
+ D = void 0 === $ ? C : $,
|
|
|
+ _ = o.contentSize && o.contentSize.width,
|
|
|
+ X = o.contentSize && o.contentSize.height;
|
|
|
+ if (N(g) && _ && (g = A(g, _)), N(g) && !_ && (g = null), N(w) && X && (w = A(w, X)), N(
|
|
|
+ w) && !X && (w = null), N(v) && _ && (v = A(v, _)), N(y) && _ && (y = A(y, _)), N(b) &&
|
|
|
+ X && (b = A(b, X)), N(x) && X && (x = A(x, X)), i.padding && _)
|
|
|
+ for (var V in i.padding) Object.hasOwnProperty.call(i.padding, V) && (i.padding[V] = A(i
|
|
|
+ .padding[V], _));
|
|
|
+ var G = L.paddingRight,
|
|
|
+ J = void 0 === G ? 0 : G,
|
|
|
+ tt = L.paddingLeft,
|
|
|
+ it = void 0 === tt ? 0 : tt;
|
|
|
+ if (i.margin && [i.margin.marginLeft, i.margin.marginRight].includes("auto"))
|
|
|
+ if (g) {
|
|
|
+ var nt = _ && _ - g - J - it - D - U || 0;
|
|
|
+ i.margin.marginLeft == i.margin.marginRight ? i.margin.marginLeft = i.margin
|
|
|
+ .marginRight = nt / 2 : "auto" == i.margin.marginLeft ? i.margin.marginLeft =
|
|
|
+ nt : i.margin.marginRight = nt
|
|
|
+ } else i.margin.marginLeft = i.margin.marginRight = 0;
|
|
|
+ var rt = T.marginRight,
|
|
|
+ ot = void 0 === rt ? 0 : rt,
|
|
|
+ at = T.marginLeft,
|
|
|
+ ht = {
|
|
|
+ width: g,
|
|
|
+ height: w,
|
|
|
+ left: 0,
|
|
|
+ top: 0
|
|
|
+ },
|
|
|
+ dt = it + J + D + U + (void 0 === at ? 0 : at) + ot;
|
|
|
+ if (e == K && !this.attributes.widths) {
|
|
|
+ var ct = n.text || "";
|
|
|
+ s.save(), s.setFonts({
|
|
|
+ fontFamily: B,
|
|
|
+ fontSize: z,
|
|
|
+ fontWeight: M,
|
|
|
+ fontStyle: k
|
|
|
+ });
|
|
|
+ var lt = new Map;
|
|
|
+ ct.split("\n").map((function(e) {
|
|
|
+ var i = e.split("").map((function(e) {
|
|
|
+ var i = lt.get(e);
|
|
|
+ if (i) return i;
|
|
|
+ var n = t.measureText(e, z).width;
|
|
|
+ return lt.set(e, n), n
|
|
|
+ })),
|
|
|
+ n = t.measureText(e, z),
|
|
|
+ r = n.fontHeight,
|
|
|
+ o = n.ascent,
|
|
|
+ s = n.descent;
|
|
|
+ t.attributes.fontHeight = r, t.attributes.ascent = o, t.attributes
|
|
|
+ .descent = s, t.attributes.widths || (t.attributes.widths = []), t
|
|
|
+ .attributes.widths.push({
|
|
|
+ widths: i,
|
|
|
+ total: i.reduce((function(t, e) {
|
|
|
+ return t + e
|
|
|
+ }), 0)
|
|
|
+ })
|
|
|
+ })), s.restore()
|
|
|
+ }
|
|
|
+ if (e == Z && null == g) {
|
|
|
+ var ft = n.width,
|
|
|
+ ut = n.height;
|
|
|
+ ht.width = this.contrastSize(Math.round(ft * w / ut) || 0, v, y), this.layoutBoxUpdate(
|
|
|
+ ht, i, 0)
|
|
|
+ }
|
|
|
+ if (e == K && null == g) {
|
|
|
+ var pt = this.attributes.widths,
|
|
|
+ gt = Math.max.apply(Math, pt.map((function(t) {
|
|
|
+ return t.total
|
|
|
+ })));
|
|
|
+ if (o && _ > 0 && (gt > _ || this.isBlock(this)) && !this.isAbsolute && !this.isFixed)
|
|
|
+ gt = _ - dt;
|
|
|
+ ht.width = this.contrastSize(gt, v, y), this.layoutBoxUpdate(ht, i, 0)
|
|
|
+ }
|
|
|
+ if (e == K && (o.style.flex || !this.attributes.lines)) {
|
|
|
+ var vt = this.attributes.widths.length;
|
|
|
+ this.attributes.widths.forEach((function(t) {
|
|
|
+ return t.widths.reduce((function(t, e, i) {
|
|
|
+ return t + e > ht.width ? (vt++, e) : t + e
|
|
|
+ }), 0)
|
|
|
+ })), vt = P && vt > P ? P : vt, this.attributes.lines = vt
|
|
|
+ }
|
|
|
+ if (e == Z && null == w) {
|
|
|
+ var yt = n.width,
|
|
|
+ bt = n.height;
|
|
|
+ ht.height = this.contrastSize(A(ht.width * bt / yt) || 0, b, x), this.layoutBoxUpdate(
|
|
|
+ ht, i, 1)
|
|
|
+ }
|
|
|
+ e == K && null == w && (W = A(W, z), ht.height = this.contrastSize(A(this.attributes.lines *
|
|
|
+ W), b, x), this.layoutBoxUpdate(ht, i, 1, !0)), o && o.children && _ && ([et, K]
|
|
|
+ .includes(e) && this.isFlex() || e == et && this.isBlock(this) && this.isInFlow()
|
|
|
+ ) && (ht.width = this.contrastSize(_ - dt, v, y), this.layoutBoxUpdate(ht, i)), g &&
|
|
|
+ !N(g) && (ht.width = this.contrastSize(g, v, y), this.layoutBoxUpdate(ht, i, 0)), w && !
|
|
|
+ N(w) && (ht.height = this.contrastSize(ht.height, b, x), this.layoutBoxUpdate(ht, i,
|
|
|
+ 1));
|
|
|
+ var xt = 0;
|
|
|
+ if (a.length) {
|
|
|
+ var mt = null;
|
|
|
+ a.forEach((function(e, n) {
|
|
|
+ e.getBoxWidthHeight();
|
|
|
+ var r = a[n + 1];
|
|
|
+ if (r && r.isInFlow() && (e.next = r), e.isInFlow() && !e.inFlexBox()) {
|
|
|
+ var o = t.getBoxState(mt, e);
|
|
|
+ t.line && t.line.canIEnter(e) && !o ? t.line.add(e) : (new q).bind(
|
|
|
+ e), mt = e
|
|
|
+ } else e.inFlexBox() ? t.line && (t.line.canIEnter(e) || "nowrap" == i
|
|
|
+ .flexWrap) ? t.line.add(e) : (new Q).bind(e) : e.isFixed ? t
|
|
|
+ .root.fixedLine ? t.root.fixedLine.fixedAdd(e) : (new q).fixedBind(
|
|
|
+ e) : t.fixedLine ? t.fixedLine.fixedAdd(e) : (new q).fixedBind(
|
|
|
+ e, 1)
|
|
|
+ })), this.lines && (xt = this.lines.reduce((function(t, e) {
|
|
|
+ return t + e.height
|
|
|
+ }), 0))
|
|
|
+ }
|
|
|
+ var wt = 0,
|
|
|
+ St = 0;
|
|
|
+ if (!g && (this.isAbsolute || this.isFixed) && _) {
|
|
|
+ var zt = I == st ? _ : this.root.width,
|
|
|
+ Mt = zt - (N(d) ? A(d, zt) : d) - (N(u) ? A(u, zt) : u);
|
|
|
+ wt = i.left ? Mt : this.lineMaxWidth
|
|
|
+ }
|
|
|
+ if (!w && (null != l ? l : this.isAbsolute || this.isFixed && X)) {
|
|
|
+ var Bt = I == st ? X : this.root.height,
|
|
|
+ kt = Bt - (N(l) ? A(l, Bt) : l) - (N(f) ? A(f, Bt) : f);
|
|
|
+ St = i.top ? kt : 0
|
|
|
+ }
|
|
|
+ if (g && !N(g) || ht.width || (ht.width = wt || this.contrastSize((this.isBlock(this) && !
|
|
|
+ this.isInFlow() ? _ || o.lineMaxWidth : this.lineMaxWidth) || this
|
|
|
+ .lineMaxWidth, v, y), this.layoutBoxUpdate(ht, i, 0)), w || !xt && !St || (ht
|
|
|
+ .height = St || this.contrastSize(xt, b, x), this.layoutBoxUpdate(ht, i)), i
|
|
|
+ .borderRadius && this.borderSize && this.borderSize.width)
|
|
|
+ for (var V in i.borderRadius) Object.hasOwnProperty.call(i.borderRadius, V) && (i
|
|
|
+ .borderRadius[V] = A(i.borderRadius[V], this.borderSize.width));
|
|
|
+ return this.layoutBox
|
|
|
+ }, e.layout = function() {
|
|
|
+ return this.getBoxWidthHeight(), this.root.offsetSize = this.offsetSize, this
|
|
|
+ .getBoxPosition2(), this.offsetSize
|
|
|
+ }, t
|
|
|
+ }(),
|
|
|
+ lt = function() {
|
|
|
+ var t, e, i, n, r, o, s = [0, 11, 15, 19, 23, 27, 31, 16, 18, 20, 22, 24, 26, 28, 20, 22, 24, 24,
|
|
|
+ 26, 28, 28, 22, 24, 24, 26, 26, 28, 28, 24, 24, 26, 26, 26, 28, 28, 24, 26, 26, 26, 28, 28
|
|
|
+ ],
|
|
|
+ a = [3220, 1468, 2713, 1235, 3062, 1890, 2119, 1549, 2344, 2936, 1117, 2583, 1330, 2470, 1667,
|
|
|
+ 2249, 2028, 3780, 481, 4011, 142, 3098, 831, 3445, 592, 2517, 1776, 2234, 1951, 2827, 1070,
|
|
|
+ 2660, 1345, 3177
|
|
|
+ ],
|
|
|
+ h = [30660, 29427, 32170, 30877, 26159, 25368, 27713, 26998, 21522, 20773, 24188, 23371, 17913,
|
|
|
+ 16590, 20375, 19104, 13663, 12392, 16177, 14854, 9396, 8579, 11994, 11245, 5769, 5054, 7399,
|
|
|
+ 6608, 1890, 597, 3340, 2107
|
|
|
+ ],
|
|
|
+ d = [1, 0, 19, 7, 1, 0, 16, 10, 1, 0, 13, 13, 1, 0, 9, 17, 1, 0, 34, 10, 1, 0, 28, 16, 1, 0, 22,
|
|
|
+ 22, 1, 0, 16, 28, 1, 0, 55, 15, 1, 0, 44, 26, 2, 0, 17, 18, 2, 0, 13, 22, 1, 0, 80, 20, 2,
|
|
|
+ 0, 32, 18, 2, 0, 24, 26, 4, 0, 9, 16, 1, 0, 108, 26, 2, 0, 43, 24, 2, 2, 15, 18, 2, 2, 11,
|
|
|
+ 22, 2, 0, 68, 18, 4, 0, 27, 16, 4, 0, 19, 24, 4, 0, 15, 28, 2, 0, 78, 20, 4, 0, 31, 18, 2,
|
|
|
+ 4, 14, 18, 4, 1, 13, 26, 2, 0, 97, 24, 2, 2, 38, 22, 4, 2, 18, 22, 4, 2, 14, 26, 2, 0, 116,
|
|
|
+ 30, 3, 2, 36, 22, 4, 4, 16, 20, 4, 4, 12, 24, 2, 2, 68, 18, 4, 1, 43, 26, 6, 2, 19, 24, 6,
|
|
|
+ 2, 15, 28, 4, 0, 81, 20, 1, 4, 50, 30, 4, 4, 22, 28, 3, 8, 12, 24, 2, 2, 92, 24, 6, 2, 36,
|
|
|
+ 22, 4, 6, 20, 26, 7, 4, 14, 28, 4, 0, 107, 26, 8, 1, 37, 22, 8, 4, 20, 24, 12, 4, 11, 22, 3,
|
|
|
+ 1, 115, 30, 4, 5, 40, 24, 11, 5, 16, 20, 11, 5, 12, 24, 5, 1, 87, 22, 5, 5, 41, 24, 5, 7,
|
|
|
+ 24, 30, 11, 7, 12, 24, 5, 1, 98, 24, 7, 3, 45, 28, 15, 2, 19, 24, 3, 13, 15, 30, 1, 5, 107,
|
|
|
+ 28, 10, 1, 46, 28, 1, 15, 22, 28, 2, 17, 14, 28, 5, 1, 120, 30, 9, 4, 43, 26, 17, 1, 22, 28,
|
|
|
+ 2, 19, 14, 28, 3, 4, 113, 28, 3, 11, 44, 26, 17, 4, 21, 26, 9, 16, 13, 26, 3, 5, 107, 28, 3,
|
|
|
+ 13, 41, 26, 15, 5, 24, 30, 15, 10, 15, 28, 4, 4, 116, 28, 17, 0, 42, 26, 17, 6, 22, 28, 19,
|
|
|
+ 6, 16, 30, 2, 7, 111, 28, 17, 0, 46, 28, 7, 16, 24, 30, 34, 0, 13, 24, 4, 5, 121, 30, 4, 14,
|
|
|
+ 47, 28, 11, 14, 24, 30, 16, 14, 15, 30, 6, 4, 117, 30, 6, 14, 45, 28, 11, 16, 24, 30, 30, 2,
|
|
|
+ 16, 30, 8, 4, 106, 26, 8, 13, 47, 28, 7, 22, 24, 30, 22, 13, 15, 30, 10, 2, 114, 28, 19, 4,
|
|
|
+ 46, 28, 28, 6, 22, 28, 33, 4, 16, 30, 8, 4, 122, 30, 22, 3, 45, 28, 8, 26, 23, 30, 12, 28,
|
|
|
+ 15, 30, 3, 10, 117, 30, 3, 23, 45, 28, 4, 31, 24, 30, 11, 31, 15, 30, 7, 7, 116, 30, 21, 7,
|
|
|
+ 45, 28, 1, 37, 23, 30, 19, 26, 15, 30, 5, 10, 115, 30, 19, 10, 47, 28, 15, 25, 24, 30, 23,
|
|
|
+ 25, 15, 30, 13, 3, 115, 30, 2, 29, 46, 28, 42, 1, 24, 30, 23, 28, 15, 30, 17, 0, 115, 30,
|
|
|
+ 10, 23, 46, 28, 10, 35, 24, 30, 19, 35, 15, 30, 17, 1, 115, 30, 14, 21, 46, 28, 29, 19, 24,
|
|
|
+ 30, 11, 46, 15, 30, 13, 6, 115, 30, 14, 23, 46, 28, 44, 7, 24, 30, 59, 1, 16, 30, 12, 7,
|
|
|
+ 121, 30, 12, 26, 47, 28, 39, 14, 24, 30, 22, 41, 15, 30, 6, 14, 121, 30, 6, 34, 47, 28, 46,
|
|
|
+ 10, 24, 30, 2, 64, 15, 30, 17, 4, 122, 30, 29, 14, 46, 28, 49, 10, 24, 30, 24, 46, 15, 30,
|
|
|
+ 4, 18, 122, 30, 13, 32, 46, 28, 48, 14, 24, 30, 42, 32, 15, 30, 20, 4, 117, 30, 40, 7, 47,
|
|
|
+ 28, 43, 22, 24, 30, 10, 67, 15, 30, 19, 6, 118, 30, 18, 31, 47, 28, 34, 34, 24, 30, 20, 61,
|
|
|
+ 15, 30
|
|
|
+ ],
|
|
|
+ c = [255, 0, 1, 25, 2, 50, 26, 198, 3, 223, 51, 238, 27, 104, 199, 75, 4, 100, 224, 14, 52, 141,
|
|
|
+ 239, 129, 28, 193, 105, 248, 200, 8, 76, 113, 5, 138, 101, 47, 225, 36, 15, 33, 53, 147,
|
|
|
+ 142, 218, 240, 18, 130, 69, 29, 181, 194, 125, 106, 39, 249, 185, 201, 154, 9, 120, 77, 228,
|
|
|
+ 114, 166, 6, 191, 139, 98, 102, 221, 48, 253, 226, 152, 37, 179, 16, 145, 34, 136, 54, 208,
|
|
|
+ 148, 206, 143, 150, 219, 189, 241, 210, 19, 92, 131, 56, 70, 64, 30, 66, 182, 163, 195, 72,
|
|
|
+ 126, 110, 107, 58, 40, 84, 250, 133, 186, 61, 202, 94, 155, 159, 10, 21, 121, 43, 78, 212,
|
|
|
+ 229, 172, 115, 243, 167, 87, 7, 112, 192, 247, 140, 128, 99, 13, 103, 74, 222, 237, 49, 197,
|
|
|
+ 254, 24, 227, 165, 153, 119, 38, 184, 180, 124, 17, 68, 146, 217, 35, 32, 137, 46, 55, 63,
|
|
|
+ 209, 91, 149, 188, 207, 205, 144, 135, 151, 178, 220, 252, 190, 97, 242, 86, 211, 171, 20,
|
|
|
+ 42, 93, 158, 132, 60, 57, 83, 71, 109, 65, 162, 31, 45, 67, 216, 183, 123, 164, 118, 196,
|
|
|
+ 23, 73, 236, 127, 12, 111, 246, 108, 161, 59, 82, 41, 157, 85, 170, 251, 96, 134, 177, 187,
|
|
|
+ 204, 62, 90, 203, 89, 95, 176, 156, 169, 160, 81, 11, 245, 22, 235, 122, 117, 44, 215, 79,
|
|
|
+ 174, 213, 233, 230, 231, 173, 232, 116, 214, 244, 234, 168, 80, 88, 175
|
|
|
+ ],
|
|
|
+ l = [1, 2, 4, 8, 16, 32, 64, 128, 29, 58, 116, 232, 205, 135, 19, 38, 76, 152, 45, 90, 180, 117,
|
|
|
+ 234, 201, 143, 3, 6, 12, 24, 48, 96, 192, 157, 39, 78, 156, 37, 74, 148, 53, 106, 212, 181,
|
|
|
+ 119, 238, 193, 159, 35, 70, 140, 5, 10, 20, 40, 80, 160, 93, 186, 105, 210, 185, 111, 222,
|
|
|
+ 161, 95, 190, 97, 194, 153, 47, 94, 188, 101, 202, 137, 15, 30, 60, 120, 240, 253, 231, 211,
|
|
|
+ 187, 107, 214, 177, 127, 254, 225, 223, 163, 91, 182, 113, 226, 217, 175, 67, 134, 17, 34,
|
|
|
+ 68, 136, 13, 26, 52, 104, 208, 189, 103, 206, 129, 31, 62, 124, 248, 237, 199, 147, 59, 118,
|
|
|
+ 236, 197, 151, 51, 102, 204, 133, 23, 46, 92, 184, 109, 218, 169, 79, 158, 33, 66, 132, 21,
|
|
|
+ 42, 84, 168, 77, 154, 41, 82, 164, 85, 170, 73, 146, 57, 114, 228, 213, 183, 115, 230, 209,
|
|
|
+ 191, 99, 198, 145, 63, 126, 252, 229, 215, 179, 123, 246, 241, 255, 227, 219, 171, 75, 150,
|
|
|
+ 49, 98, 196, 149, 55, 110, 220, 165, 87, 174, 65, 130, 25, 50, 100, 200, 141, 7, 14, 28, 56,
|
|
|
+ 112, 224, 221, 167, 83, 166, 81, 162, 89, 178, 121, 242, 249, 239, 195, 155, 43, 86, 172,
|
|
|
+ 69, 138, 9, 18, 36, 72, 144, 61, 122, 244, 245, 247, 243, 251, 235, 203, 139, 11, 22, 44,
|
|
|
+ 88, 176, 125, 250, 233, 207, 131, 27, 54, 108, 216, 173, 71, 142, 0
|
|
|
+ ],
|
|
|
+ f = [],
|
|
|
+ u = [],
|
|
|
+ p = [],
|
|
|
+ g = [],
|
|
|
+ v = [],
|
|
|
+ y = 2;
|
|
|
+
|
|
|
+ function b(t, e) {
|
|
|
+ var i;
|
|
|
+ t > e && (i = t, t = e, e = i), i = e, i *= e, i += e, i >>= 1, g[i += t] = 1
|
|
|
+ }
|
|
|
+
|
|
|
+ function x(t, i) {
|
|
|
+ var n;
|
|
|
+ for (p[t + e * i] = 1, n = -2; n < 2; n++) p[t + n + e * (i - 2)] = 1, p[t - 2 + e * (i + n +
|
|
|
+ 1)] = 1, p[t + 2 + e * (i + n)] = 1, p[t + n + 1 + e * (i + 2)] = 1;
|
|
|
+ for (n = 0; n < 2; n++) b(t - 1, i + n), b(t + 1, i - n), b(t - n, i - 1), b(t + n, i + 1)
|
|
|
+ }
|
|
|
+
|
|
|
+ function m(t) {
|
|
|
+ for (; t >= 255;) t = ((t -= 255) >> 8) + (255 & t);
|
|
|
+ return t
|
|
|
+ }
|
|
|
+ var w = [];
|
|
|
+
|
|
|
+ function S(t, e, i, n) {
|
|
|
+ var r, o, s;
|
|
|
+ for (r = 0; r < n; r++) f[i + r] = 0;
|
|
|
+ for (r = 0; r < e; r++) {
|
|
|
+ if (255 != (s = c[f[t + r] ^ f[i]]))
|
|
|
+ for (o = 1; o < n; o++) f[i + o - 1] = f[i + o] ^ l[m(s + w[n - o])];
|
|
|
+ else
|
|
|
+ for (o = i; o < i + n; o++) f[o] = f[o + 1];
|
|
|
+ f[i + n - 1] = 255 == s ? 0 : l[m(s + w[0])]
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ function z(t, e) {
|
|
|
+ var i;
|
|
|
+ return t > e && (i = t, t = e, e = i), i = e, i += e * e, i >>= 1, g[i += t]
|
|
|
+ }
|
|
|
+
|
|
|
+ function M(t) {
|
|
|
+ var i, n, r, o;
|
|
|
+ switch (t) {
|
|
|
+ case 0:
|
|
|
+ for (n = 0; n < e; n++)
|
|
|
+ for (i = 0; i < e; i++) i + n & 1 || z(i, n) || (p[i + n * e] ^= 1);
|
|
|
+ break;
|
|
|
+ case 1:
|
|
|
+ for (n = 0; n < e; n++)
|
|
|
+ for (i = 0; i < e; i++) 1 & n || z(i, n) || (p[i + n * e] ^= 1);
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ for (n = 0; n < e; n++)
|
|
|
+ for (r = 0, i = 0; i < e; i++, r++) 3 == r && (r = 0), r || z(i, n) || (p[i + n *
|
|
|
+ e] ^= 1);
|
|
|
+ break;
|
|
|
+ case 3:
|
|
|
+ for (o = 0, n = 0; n < e; n++, o++)
|
|
|
+ for (3 == o && (o = 0), r = o, i = 0; i < e; i++, r++) 3 == r && (r = 0), r || z(i,
|
|
|
+ n) || (p[i + n * e] ^= 1);
|
|
|
+ break;
|
|
|
+ case 4:
|
|
|
+ for (n = 0; n < e; n++)
|
|
|
+ for (r = 0, o = n >> 1 & 1, i = 0; i < e; i++, r++) 3 == r && (r = 0, o = !o), o ||
|
|
|
+ z(i, n) || (p[i + n * e] ^= 1);
|
|
|
+ break;
|
|
|
+ case 5:
|
|
|
+ for (o = 0, n = 0; n < e; n++, o++)
|
|
|
+ for (3 == o && (o = 0), r = 0, i = 0; i < e; i++, r++) 3 == r && (r = 0), (i & n &
|
|
|
+ 1) + !(!r | !o) || z(i, n) || (p[i + n * e] ^= 1);
|
|
|
+ break;
|
|
|
+ case 6:
|
|
|
+ for (o = 0, n = 0; n < e; n++, o++)
|
|
|
+ for (3 == o && (o = 0), r = 0, i = 0; i < e; i++, r++) 3 == r && (r = 0), (i & n &
|
|
|
+ 1) + (r && r == o) & 1 || z(i, n) || (p[i + n * e] ^= 1);
|
|
|
+ break;
|
|
|
+ case 7:
|
|
|
+ for (o = 0, n = 0; n < e; n++, o++)
|
|
|
+ for (3 == o && (o = 0), r = 0, i = 0; i < e; i++, r++) 3 == r && (r = 0), (r && r ==
|
|
|
+ o) + (i + n & 1) & 1 || z(i, n) || (p[i + n * e] ^= 1)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ function B(t) {
|
|
|
+ var e, i = 0;
|
|
|
+ for (e = 0; e <= t; e++) v[e] >= 5 && (i += 3 + v[e] - 5);
|
|
|
+ for (e = 3; e < t - 1; e += 2) v[e - 2] == v[e + 2] && v[e + 2] == v[e - 1] && v[e - 1] == v[e +
|
|
|
+ 1] && 3 * v[e - 1] == v[e] && (0 == v[e - 3] || e + 3 > t || 3 * v[e - 3] >= 4 * v[e] ||
|
|
|
+ 3 * v[e + 3] >= 4 * v[e]) && (i += 40);
|
|
|
+ return i
|
|
|
+ }
|
|
|
+
|
|
|
+ function k() {
|
|
|
+ var t, i, n, r, o, s = 0,
|
|
|
+ a = 0;
|
|
|
+ for (i = 0; i < e - 1; i++)
|
|
|
+ for (t = 0; t < e - 1; t++)(p[t + e * i] && p[t + 1 + e * i] && p[t + e * (i + 1)] && p[t +
|
|
|
+ 1 + e * (i + 1)] || !(p[t + e * i] || p[t + 1 + e * i] || p[t + e * (i + 1)] ||
|
|
|
+ p[t + 1 + e * (i + 1)])) && (s += 3);
|
|
|
+ for (i = 0; i < e; i++) {
|
|
|
+ for (v[0] = 0, n = r = t = 0; t < e; t++)(o = p[t + e * i]) == r ? v[n]++ : v[++n] = 1, a +=
|
|
|
+ (r = o) ? 1 : -1;
|
|
|
+ s += B(n)
|
|
|
+ }
|
|
|
+ a < 0 && (a = -a);
|
|
|
+ var h = a,
|
|
|
+ d = 0;
|
|
|
+ for (h += h << 2, h <<= 1; h > e * e;) h -= e * e, d++;
|
|
|
+ for (s += 10 * d, t = 0; t < e; t++) {
|
|
|
+ for (v[0] = 0, n = r = i = 0; i < e; i++)(o = p[t + e * i]) == r ? v[n]++ : v[++n] = 1, r =
|
|
|
+ o;
|
|
|
+ s += B(n)
|
|
|
+ }
|
|
|
+ return s
|
|
|
+ }
|
|
|
+ var I = null;
|
|
|
+ return {
|
|
|
+ api: {
|
|
|
+ get ecclevel() {
|
|
|
+ return y
|
|
|
+ },
|
|
|
+ set ecclevel(t) {
|
|
|
+ y = t
|
|
|
+ },
|
|
|
+ get size() {
|
|
|
+ return _size
|
|
|
+ },
|
|
|
+ set size(t) {
|
|
|
+ _size = t
|
|
|
+ },
|
|
|
+ get canvas() {
|
|
|
+ return I
|
|
|
+ },
|
|
|
+ set canvas(t) {
|
|
|
+ I = t
|
|
|
+ },
|
|
|
+ getFrame: function(v) {
|
|
|
+ return function(v) {
|
|
|
+ var B, I, P, W, R, L, O, T;
|
|
|
+ W = v.length, t = 0;
|
|
|
+ do {
|
|
|
+ if (t++, P = 4 * (y - 1) + 16 * (t - 1), i = d[P++], n = d[P++], r = d[
|
|
|
+ P++], o = d[P], W <= (P = r * (i + n) + n - 3 + (t <= 9))) break
|
|
|
+ } while (t < 40);
|
|
|
+ for (e = 17 + 4 * t, R = r + (r + o) * (i + n) + n, W = 0; W < R; W++) u[
|
|
|
+ W] = 0;
|
|
|
+ for (f = v.slice(0), W = 0; W < e * e; W++) p[W] = 0;
|
|
|
+ for (W = 0; W < (e * (e + 1) + 1) / 2; W++) g[W] = 0;
|
|
|
+ for (W = 0; W < 3; W++) {
|
|
|
+ for (P = 0, I = 0, 1 == W && (P = e - 7), 2 == W && (I = e - 7), p[I +
|
|
|
+ 3 + e * (P + 3)] = 1, B = 0; B < 6; B++) p[I + B + e * P] = 1,
|
|
|
+ p[I + e * (P + B + 1)] = 1, p[I + 6 + e * (P + B)] = 1, p[I + B +
|
|
|
+ 1 + e * (P + 6)] = 1;
|
|
|
+ for (B = 1; B < 5; B++) b(I + B, P + 1), b(I + 1, P + B + 1), b(I + 5,
|
|
|
+ P + B), b(I + B + 1, P + 5);
|
|
|
+ for (B = 2; B < 4; B++) p[I + B + e * (P + 2)] = 1, p[I + 2 + e * (P +
|
|
|
+ B + 1)] = 1, p[I + 4 + e * (P + B)] = 1, p[I + B + 1 + e * (P +
|
|
|
+ 4)] = 1
|
|
|
+ }
|
|
|
+ if (t > 1)
|
|
|
+ for (W = s[t], I = e - 7;;) {
|
|
|
+ for (B = e - 7; B > W - 3 && (x(B, I), !(B < W));) B -= W;
|
|
|
+ if (I <= W + 9) break;
|
|
|
+ x(6, I -= W), x(I, 6)
|
|
|
+ }
|
|
|
+ for (p[8 + e * (e - 8)] = 1, I = 0; I < 7; I++) b(7, I), b(e - 8, I), b(7,
|
|
|
+ I + e - 7);
|
|
|
+ for (B = 0; B < 8; B++) b(B, 7), b(B + e - 8, 7), b(B, e - 8);
|
|
|
+ for (B = 0; B < 9; B++) b(B, 8);
|
|
|
+ for (B = 0; B < 8; B++) b(B + e - 8, 8), b(8, B);
|
|
|
+ for (I = 0; I < 7; I++) b(8, I + e - 7);
|
|
|
+ for (B = 0; B < e - 14; B++) 1 & B ? (b(8 + B, 6), b(6, 8 + B)) : (p[8 + B +
|
|
|
+ 6 * e] = 1, p[6 + e * (8 + B)] = 1);
|
|
|
+ if (t > 6)
|
|
|
+ for (W = a[t - 7], P = 17, B = 0; B < 6; B++)
|
|
|
+ for (I = 0; I < 3; I++, P--) 1 & (P > 11 ? t >> P - 12 : W >> P) ? (
|
|
|
+ p[5 - B + e * (2 - I + e - 11)] = 1, p[2 - I + e - 11 + e *
|
|
|
+ (5 - B)] = 1) : (b(5 - B, 2 - I + e - 11), b(2 - I + e -
|
|
|
+ 11, 5 - B));
|
|
|
+ for (I = 0; I < e; I++)
|
|
|
+ for (B = 0; B <= I; B++) p[B + e * I] && b(B, I);
|
|
|
+ for (R = f.length, L = 0; L < R; L++) u[L] = f.charCodeAt(L);
|
|
|
+ if (f = u.slice(0), R >= (B = r * (i + n) + n) - 2 && (R = B - 2, t > 9 &&
|
|
|
+ R--), L = R, t > 9) {
|
|
|
+ for (f[L + 2] = 0, f[L + 3] = 0; L--;) W = f[L], f[L + 3] |= 255 & W <<
|
|
|
+ 4, f[L + 2] = W >> 4;
|
|
|
+ f[2] |= 255 & R << 4, f[1] = R >> 4, f[0] = 64 | R >> 12
|
|
|
+ } else {
|
|
|
+ for (f[L + 1] = 0, f[L + 2] = 0; L--;) W = f[L], f[L + 2] |= 255 & W <<
|
|
|
+ 4, f[L + 1] = W >> 4;
|
|
|
+ f[1] |= 255 & R << 4, f[0] = 64 | R >> 4
|
|
|
+ }
|
|
|
+ for (L = R + 3 - (t < 10); L < B;) f[L++] = 236, f[L++] = 17;
|
|
|
+ for (w[0] = 1, L = 0; L < o; L++) {
|
|
|
+ for (w[L + 1] = 1, O = L; O > 0; O--) w[O] = w[O] ? w[O - 1] ^ l[m(c[w[
|
|
|
+ O]] + L)] : w[O - 1];
|
|
|
+ w[0] = l[m(c[w[0]] + L)]
|
|
|
+ }
|
|
|
+ for (L = 0; L <= o; L++) w[L] = c[w[L]];
|
|
|
+ for (P = B, I = 0, L = 0; L < i; L++) S(I, r, P, o), I += r, P += o;
|
|
|
+ for (L = 0; L < n; L++) S(I, r + 1, P, o), I += r + 1, P += o;
|
|
|
+ for (I = 0, L = 0; L < r; L++) {
|
|
|
+ for (O = 0; O < i; O++) u[I++] = f[L + O * r];
|
|
|
+ for (O = 0; O < n; O++) u[I++] = f[i * r + L + O * (r + 1)]
|
|
|
+ }
|
|
|
+ for (O = 0; O < n; O++) u[I++] = f[i * r + L + O * (r + 1)];
|
|
|
+ for (L = 0; L < o; L++)
|
|
|
+ for (O = 0; O < i + n; O++) u[I++] = f[B + L + O * o];
|
|
|
+ for (f = u, B = I = e - 1, P = R = 1, T = (r + o) * (i + n) + n, L = 0; L <
|
|
|
+ T; L++)
|
|
|
+ for (W = f[L], O = 0; O < 8; O++, W <<= 1) {
|
|
|
+ 128 & W && (p[B + e * I] = 1);
|
|
|
+ do {
|
|
|
+ R ? B-- : (B++, P ? 0 != I ? I-- : (P = !P, 6 == (B -= 2) && (
|
|
|
+ B--, I = 9)) : I != e - 1 ? I++ : (P = !P, 6 == (
|
|
|
+ B -= 2) && (B--, I -= 8))), R = !R
|
|
|
+ } while (z(B, I))
|
|
|
+ }
|
|
|
+ for (f = p.slice(0), W = 0, I = 3e4, P = 0; P < 8 && (M(P), (B = k()) < I &&
|
|
|
+ (I = B, W = P), 7 != W); P++) p = f.slice(0);
|
|
|
+ for (W != P && M(W), I = h[W + (y - 1 << 3)], P = 0; P < 8; P++, I >>= 1)
|
|
|
+ 1 & I && (p[e - 1 - P + 8 * e] = 1, P < 6 ? p[8 + e * P] = 1 : p[8 + e *
|
|
|
+ (P + 1)] = 1);
|
|
|
+ for (P = 0; P < 7; P++, I >>= 1) 1 & I && (p[8 + e * (e - 7 + P)] = 1, P ?
|
|
|
+ p[6 - P + 8 * e] = 1 : p[7 + 8 * e] = 1);
|
|
|
+ return p
|
|
|
+ }(v)
|
|
|
+ },
|
|
|
+ utf16to8: function(t) {
|
|
|
+ var e, i, n, r;
|
|
|
+ for (e = "", n = t.length, i = 0; i < n; i++)(r = t.charCodeAt(i)) >= 1 && r <=
|
|
|
+ 127 ? e += t.charAt(i) : r > 2047 ? (e += String.fromCharCode(224 | r >> 12 &
|
|
|
+ 15), e += String.fromCharCode(128 | r >> 6 & 63), e += String
|
|
|
+ .fromCharCode(128 | r >> 0 & 63)) : (e += String.fromCharCode(192 | r >> 6 &
|
|
|
+ 31), e += String.fromCharCode(128 | r >> 0 & 63));
|
|
|
+ return e
|
|
|
+ },
|
|
|
+ draw: function(t, i, n, r, o) {
|
|
|
+ i.drawView(n, r);
|
|
|
+ var s = i.ctx,
|
|
|
+ a = n.contentSize,
|
|
|
+ h = a.width,
|
|
|
+ d = a.height,
|
|
|
+ c = a.left,
|
|
|
+ l = a.top;
|
|
|
+ r.borderRadius, r.backgroundColor;
|
|
|
+ var f = r.color,
|
|
|
+ u = void 0 === f ? "#000000" : f;
|
|
|
+ r.border, n.contentSize.left, n.borderSize.left, n.contentSize.top, n.borderSize
|
|
|
+ .top;
|
|
|
+ if (y = o || y, s) {
|
|
|
+ s.save(), i.setOpacity(r), i.setTransform(n, r);
|
|
|
+ var p = Math.min(h, d);
|
|
|
+ t = this.utf16to8(t);
|
|
|
+ var g = this.getFrame(t),
|
|
|
+ v = p / e;
|
|
|
+ s.setFillStyle(u);
|
|
|
+ for (var b = 0; b < e; b++)
|
|
|
+ for (var x = 0; x < e; x++) g[x * e + b] && s.fillRect(c + v * b, l + v * x,
|
|
|
+ v, v);
|
|
|
+ s.restore(), i.setBorder(n, r)
|
|
|
+ } else console.warn("No canvas provided to draw QR code in!")
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }(),
|
|
|
+ ft = v,
|
|
|
+ ut = g,
|
|
|
+ pt = y,
|
|
|
+ gt = p,
|
|
|
+ vt = h,
|
|
|
+ yt = d,
|
|
|
+ bt = c,
|
|
|
+ xt = l,
|
|
|
+ mt = f,
|
|
|
+ wt = u,
|
|
|
+ St = function() {
|
|
|
+ function t(t) {
|
|
|
+ var e, i = this;
|
|
|
+ this.v = "1.9.3.5", this.id = null, this.pixelRatio = 1, this.width = 0, this.height = 0, this
|
|
|
+ .sleep = 1e3 / 30, this.count = 0, this.isRate = !1, this.isDraw = !0, this.isCache = !0,
|
|
|
+ this.fixed = "", this.useCORS = !1, this.imageBus = [], this.createImage = function(t, e) {
|
|
|
+ return new Promise((function(i, n) {
|
|
|
+ if (window) {
|
|
|
+ var r = new Image;
|
|
|
+ e && r.setAttribute("crossOrigin", "Anonymous"), r.src = t, r
|
|
|
+ .onload = function() {
|
|
|
+ i({
|
|
|
+ width: r.naturalWidth || r.width,
|
|
|
+ height: r.naturalHeight || r.height,
|
|
|
+ path: r,
|
|
|
+ src: this.src
|
|
|
+ })
|
|
|
+ }, r.onerror = function(t) {
|
|
|
+ n(t)
|
|
|
+ }
|
|
|
+ } else n({
|
|
|
+ fail: "getImageInfo fail",
|
|
|
+ src: t
|
|
|
+ })
|
|
|
+ }))
|
|
|
+ }, this.options = t, Object.assign(this, t), this.ctx = ((e = t.context).setFonts =
|
|
|
+ function(t) {
|
|
|
+ var i = t.fontFamily,
|
|
|
+ n = void 0 === i ? "sans-serif" : i,
|
|
|
+ o = t.fontSize,
|
|
|
+ s = void 0 === o ? 14 : o,
|
|
|
+ a = t.fontWeight,
|
|
|
+ h = void 0 === a ? "normal" : a,
|
|
|
+ d = t.fontStyle,
|
|
|
+ c = void 0 === d ? "normal" : d;
|
|
|
+ R == r.MP_TOUTIAO && (h = "bold" == h ? "bold" : "", c = "italic" == c ? "italic" :
|
|
|
+ ""), e.font = "".concat(c, " ").concat(h, " ").concat(Math.round(s), "px ")
|
|
|
+ .concat(n)
|
|
|
+ }, e.draw && e.setFillStyle ? e : Object.assign(e, {
|
|
|
+ setStrokeStyle: function(t) {
|
|
|
+ e.strokeStyle = t
|
|
|
+ },
|
|
|
+ setLineWidth: function(t) {
|
|
|
+ e.lineWidth = t
|
|
|
+ },
|
|
|
+ setLineCap: function(t) {
|
|
|
+ e.lineCap = t
|
|
|
+ },
|
|
|
+ setFillStyle: function(t) {
|
|
|
+ e.fillStyle = t
|
|
|
+ },
|
|
|
+ setFontSize: function(t) {
|
|
|
+ e.font = "".concat(String(t), "px sans-serif")
|
|
|
+ },
|
|
|
+ setGlobalAlpha: function(t) {
|
|
|
+ e.globalAlpha = t
|
|
|
+ },
|
|
|
+ setLineJoin: function(t) {
|
|
|
+ e.lineJoin = t
|
|
|
+ },
|
|
|
+ setTextAlign: function(t) {
|
|
|
+ e.textAlign = t
|
|
|
+ },
|
|
|
+ setMiterLimit: function(t) {
|
|
|
+ e.miterLimit = t
|
|
|
+ },
|
|
|
+ setShadow: function(t, i, n, r) {
|
|
|
+ e.shadowOffsetX = t, e.shadowOffsetY = i, e.shadowBlur = n, e
|
|
|
+ .shadowColor = r
|
|
|
+ },
|
|
|
+ setTextBaseline: function(t) {
|
|
|
+ e.textBaseline = t
|
|
|
+ },
|
|
|
+ createCircularGradient: function() {},
|
|
|
+ draw: function() {}
|
|
|
+ })), this.progress = 0, this.root = {
|
|
|
+ width: t.width,
|
|
|
+ height: t.height,
|
|
|
+ fontSizeRate: 1,
|
|
|
+ fixedLine: null
|
|
|
+ }, this.size = this.root;
|
|
|
+ var n = 0;
|
|
|
+ Object.defineProperty(this, "progress", {
|
|
|
+ configurable: !0,
|
|
|
+ set: function(t) {
|
|
|
+ n = t, i.lifecycle("onProgress", t / i.count)
|
|
|
+ },
|
|
|
+ get: function() {
|
|
|
+ return n || 0
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ return t.prototype.lifecycle = function(t, e) {
|
|
|
+ this.options.listen && this.options.listen[t] && this.options.listen[t](e)
|
|
|
+ }, t.prototype.setContext = function(t) {
|
|
|
+ t && (this.ctx = t)
|
|
|
+ }, t.prototype.init = function() {
|
|
|
+ (this.canvas.height || r.WEB == R) && (this.canvas.height = this.size.height * this
|
|
|
+ .pixelRatio, this.canvas.width = this.size.width * this.pixelRatio, this.ctx.scale(this
|
|
|
+ .pixelRatio, this.pixelRatio))
|
|
|
+ }, t.prototype.clear = function() {
|
|
|
+ this.ctx.clearRect(0, 0, this.size.width, this.size.height)
|
|
|
+ }, t.prototype.clipPath = function(t, e, i, n, r, o, s) {
|
|
|
+ void 0 === o && (o = !1), void 0 === s && (s = !1);
|
|
|
+ var a = this.ctx;
|
|
|
+ if (/polygon/.test(r)) {
|
|
|
+ var h = r.match(/-?\d+(rpx|px|%)?\s+-?\d+(rpx|px|%)?/g) || [];
|
|
|
+ a.beginPath(), h.map((function(r) {
|
|
|
+ var o = r.split(" "),
|
|
|
+ s = o[0],
|
|
|
+ a = o[1];
|
|
|
+ return [A(s, i) + t, A(a, n) + e]
|
|
|
+ })).forEach((function(t, e) {
|
|
|
+ 0 == e ? a.moveTo(t[0], t[1]) : a.lineTo(t[0], t[1])
|
|
|
+ })), a.closePath(), s && a.stroke(), o && a.fill()
|
|
|
+ }
|
|
|
+ }, t.prototype.roundRect = function(t, e, i, n, r, o, s) {
|
|
|
+ if (void 0 === o && (o = !1), void 0 === s && (s = !1), !(r < 0)) {
|
|
|
+ var a = this.ctx;
|
|
|
+ if (a.beginPath(), r) {
|
|
|
+ var h = r || {},
|
|
|
+ d = h.borderTopLeftRadius,
|
|
|
+ c = void 0 === d ? r || 0 : d,
|
|
|
+ l = h.borderTopRightRadius,
|
|
|
+ f = void 0 === l ? r || 0 : l,
|
|
|
+ u = h.borderBottomRightRadius,
|
|
|
+ p = void 0 === u ? r || 0 : u,
|
|
|
+ g = h.borderBottomLeftRadius,
|
|
|
+ v = void 0 === g ? r || 0 : g;
|
|
|
+ a.arc(t + i - p, e + n - p, p, 0, .5 * Math.PI), a.lineTo(t + v, e + n), a.arc(t +
|
|
|
+ v, e + n - v, v, .5 * Math.PI, Math.PI), a.lineTo(t, e + c), a.arc(t + c,
|
|
|
+ e + c, c, Math.PI, 1.5 * Math.PI), a.lineTo(t + i - f, e), a.arc(t + i - f,
|
|
|
+ e + f, f, 1.5 * Math.PI, 2 * Math.PI), a.lineTo(t + i, e + n - p)
|
|
|
+ } else a.rect(t, e, i, n);
|
|
|
+ a.closePath(), s && a.stroke(), o && a.fill()
|
|
|
+ }
|
|
|
+ }, t.prototype.setTransform = function(t, e) {
|
|
|
+ var i = e.transform,
|
|
|
+ n = e.transformOrigin,
|
|
|
+ r = this.ctx,
|
|
|
+ o = i || {},
|
|
|
+ s = o.scaleX,
|
|
|
+ a = void 0 === s ? 1 : s,
|
|
|
+ h = o.scaleY,
|
|
|
+ d = void 0 === h ? 1 : h,
|
|
|
+ c = o.translateX,
|
|
|
+ l = void 0 === c ? 0 : c,
|
|
|
+ f = o.translateY,
|
|
|
+ u = void 0 === f ? 0 : f,
|
|
|
+ p = o.rotate,
|
|
|
+ g = void 0 === p ? 0 : p,
|
|
|
+ v = o.skewX,
|
|
|
+ y = void 0 === v ? 0 : v,
|
|
|
+ b = o.skewY,
|
|
|
+ x = void 0 === b ? 0 : b,
|
|
|
+ m = t.left,
|
|
|
+ w = t.top,
|
|
|
+ S = t.width,
|
|
|
+ z = t.height;
|
|
|
+ l = A(l, S) || 0, u = A(u, z) || 0;
|
|
|
+ var M = {
|
|
|
+ top: A("0%", 1),
|
|
|
+ center: A("50%", 1),
|
|
|
+ bottom: A("100%", 1)
|
|
|
+ },
|
|
|
+ B = {
|
|
|
+ left: A("0%", 1),
|
|
|
+ center: A("50%", 1),
|
|
|
+ right: A("100%", 1)
|
|
|
+ };
|
|
|
+ if (n = n.split(" ").filter((function(t, e) {
|
|
|
+ return e < 2
|
|
|
+ })).reduce((function(t, e) {
|
|
|
+ if (/\d+/.test(e)) {
|
|
|
+ var i = A(e, 1) / (/px|rpx$/.test(e) ? T(t.x) ? z : S : 1);
|
|
|
+ return T(t.x) ? Object.assign(t, {
|
|
|
+ y: i
|
|
|
+ }) : Object.assign(t, {
|
|
|
+ x: i
|
|
|
+ })
|
|
|
+ }
|
|
|
+ return T(B[e]) && !T(t.x) ? Object.assign(t, {
|
|
|
+ x: B[e]
|
|
|
+ }) : Object.assign(t, {
|
|
|
+ y: M[e] || .5
|
|
|
+ })
|
|
|
+ }), {}), (l || u) && r.translate(l, u), (a || d) && r.scale(a, d), g) {
|
|
|
+ var k = m + S * n.x,
|
|
|
+ I = w + z * n.y;
|
|
|
+ r.translate(k, I), r.rotate(g * Math.PI / 180), r.translate(-k, -I)
|
|
|
+ }(y || x) && r.transform(1, Math.tan(x * Math.PI / 180), Math.tan(y * Math.PI / 180), 1, 0,
|
|
|
+ 0)
|
|
|
+ }, t.prototype.setBackground = function(t, e, i, n, o) {
|
|
|
+ var s = this.ctx;
|
|
|
+ t && t != M ? j(t) ? C(t, e, i, n, o, s) : s.setFillStyle(t) : [r.MP_TOUTIAO, r.MP_BAIDU]
|
|
|
+ .includes(R) ? s.setFillStyle("rgba(0,0,0,0)") : s.setFillStyle(M)
|
|
|
+ }, t.prototype.setShadow = function(t) {
|
|
|
+ var e = t.boxShadow,
|
|
|
+ i = void 0 === e ? [] : e,
|
|
|
+ n = this.ctx;
|
|
|
+ if (i.length) {
|
|
|
+ var r = i[0],
|
|
|
+ o = i[1],
|
|
|
+ s = i[2],
|
|
|
+ a = i[3];
|
|
|
+ n.setShadow(r, o, s, a)
|
|
|
+ }
|
|
|
+ }, t.prototype.setBorder = function(t, e) {
|
|
|
+ var i = this.ctx,
|
|
|
+ n = t.width,
|
|
|
+ r = t.height,
|
|
|
+ o = t.left,
|
|
|
+ s = t.top,
|
|
|
+ a = e.border,
|
|
|
+ h = e.borderBottom,
|
|
|
+ d = e.borderTop,
|
|
|
+ c = e.borderRight,
|
|
|
+ l = e.borderLeft,
|
|
|
+ f = e.borderRadius,
|
|
|
+ u = e.lineCap,
|
|
|
+ p = a || {},
|
|
|
+ g = p.borderWidth,
|
|
|
+ v = void 0 === g ? 0 : g,
|
|
|
+ y = p.borderStyle,
|
|
|
+ b = p.borderColor,
|
|
|
+ x = h || {},
|
|
|
+ m = x.borderBottomWidth,
|
|
|
+ w = void 0 === m ? v : m,
|
|
|
+ S = x.borderBottomStyle,
|
|
|
+ z = void 0 === S ? y : S,
|
|
|
+ M = x.borderBottomColor,
|
|
|
+ B = void 0 === M ? b : M,
|
|
|
+ k = d || {},
|
|
|
+ I = k.borderTopWidth,
|
|
|
+ P = void 0 === I ? v : I,
|
|
|
+ W = k.borderTopStyle,
|
|
|
+ L = void 0 === W ? y : W,
|
|
|
+ O = k.borderTopColor,
|
|
|
+ T = void 0 === O ? b : O,
|
|
|
+ A = c || {},
|
|
|
+ F = A.borderRightWidth,
|
|
|
+ j = void 0 === F ? v : F,
|
|
|
+ C = A.borderRightStyle,
|
|
|
+ E = void 0 === C ? y : C,
|
|
|
+ H = A.borderRightColor,
|
|
|
+ U = void 0 === H ? b : H,
|
|
|
+ Y = l || {},
|
|
|
+ $ = Y.borderLeftWidth,
|
|
|
+ D = void 0 === $ ? v : $,
|
|
|
+ _ = Y.borderLeftStyle,
|
|
|
+ X = void 0 === _ ? y : _,
|
|
|
+ N = Y.borderLeftColor,
|
|
|
+ V = void 0 === N ? b : N,
|
|
|
+ G = f || {},
|
|
|
+ q = G.borderTopLeftRadius,
|
|
|
+ J = void 0 === q ? f || 0 : q,
|
|
|
+ Q = G.borderTopRightRadius,
|
|
|
+ Z = void 0 === Q ? f || 0 : Q,
|
|
|
+ K = G.borderBottomRightRadius,
|
|
|
+ tt = void 0 === K ? f || 0 : K,
|
|
|
+ et = G.borderBottomLeftRadius,
|
|
|
+ it = void 0 === et ? f || 0 : et;
|
|
|
+ if (h || l || d || c || a) {
|
|
|
+ var nt = function(t, e, n) {
|
|
|
+ "dashed" == e ? /mp/.test(R) ? i.setLineDash([Math.ceil(4 * t / 3), Math.ceil(
|
|
|
+ 4 * t / 3)]) : i.setLineDash([Math.ceil(6 * t), Math.ceil(6 * t)]) :
|
|
|
+ "dotted" == e && i.setLineDash([t, t]), i.setStrokeStyle(n)
|
|
|
+ },
|
|
|
+ rt = function(t, e, n, r, o, s, a, h, d, c, l, f, p, g, v) {
|
|
|
+ i.save(), i.setLineCap(v ? "square" : u), i.setLineWidth(f), nt(f, p, g), i
|
|
|
+ .beginPath(), i.arc(t, e, a, Math.PI * d, Math.PI * c), i.lineTo(n, r), i
|
|
|
+ .arc(o, s, h, Math.PI * c, Math.PI * l), i.stroke(), i.restore()
|
|
|
+ };
|
|
|
+ if (i.save(), a && !h && !l && !d && !c) return i.setLineWidth(v), nt(v, y, b), this
|
|
|
+ .roundRect(o, s, n, r, f, !1, !!b), void i.restore();
|
|
|
+ w && rt(o + n - tt, s + r - tt, o + it, s + r, o + it, s + r - it, tt, it, .25, .5, .75,
|
|
|
+ w, z, B, D && j), D && rt(o + it, s + r - it, o, s + J, o + J, s + J, it, J,
|
|
|
+ .75, 1, 1.25, D, X, V, P && w), P && rt(o + J, s + J, o + n - Z, s, o + n - Z,
|
|
|
+ s + Z, J, Z, 1.25, 1.5, 1.75, P, L, T, D && j), j && rt(o + n - Z, s + Z, o + n,
|
|
|
+ s + r - tt, o + n - tt, s + r - tt, Z, tt, 1.75, 2, .25, j, E, U, P && w)
|
|
|
+ }
|
|
|
+ }, t.prototype.setOpacity = function(t) {
|
|
|
+ var e = t.opacity,
|
|
|
+ i = void 0 === e ? 1 : e;
|
|
|
+ this.ctx.setGlobalAlpha(i)
|
|
|
+ }, t.prototype.drawPattern = function(t, e, r) {
|
|
|
+ return i(this, void 0, void 0, (function() {
|
|
|
+ var i = this;
|
|
|
+ return n(this, (function(n) {
|
|
|
+ return [2, new Promise((function(n, o) {
|
|
|
+ i.drawView(e, r, !0, !1, !0);
|
|
|
+ var s = i,
|
|
|
+ a = s.ctx;
|
|
|
+ s.canvas;
|
|
|
+ var h = e.width,
|
|
|
+ d = e.height,
|
|
|
+ c = e.left,
|
|
|
+ l = e.top,
|
|
|
+ f = r || {},
|
|
|
+ u = f.borderRadius,
|
|
|
+ p = void 0 === u ? 0 : u,
|
|
|
+ g = f.backgroundImage,
|
|
|
+ v = f.backgroundRepeat,
|
|
|
+ y = void 0 === v ? "repeat" : v;
|
|
|
+ g && function(t) {
|
|
|
+ var o = a.createPattern(t.src,
|
|
|
+ y);
|
|
|
+ a.setFillStyle(o), i.roundRect(
|
|
|
+ c, l, h, d, p, !0, !1),
|
|
|
+ i.setBorder(e, r), n()
|
|
|
+ }(t)
|
|
|
+ }))]
|
|
|
+ }))
|
|
|
+ }))
|
|
|
+ }, t.prototype.drawView = function(t, e, i, n, r) {
|
|
|
+ void 0 === i && (i = !0), void 0 === n && (n = !0), void 0 === r && (r = !0);
|
|
|
+ var o = this.ctx,
|
|
|
+ s = t.width,
|
|
|
+ a = t.height,
|
|
|
+ h = t.left,
|
|
|
+ d = t.top,
|
|
|
+ c = e || {},
|
|
|
+ l = c.borderRadius,
|
|
|
+ f = void 0 === l ? 0 : l,
|
|
|
+ u = c.backgroundColor,
|
|
|
+ p = void 0 === u ? M : u,
|
|
|
+ g = c.overflow;
|
|
|
+ e.opacity && this.setOpacity(e), this.setTransform(t, e), r && (o.save(), this.setShadow(
|
|
|
+ e)), i && this.setBackground(p, s, a, h, d), e.clipPath ? this.clipPath(h, d, s, a, e
|
|
|
+ .clipPath, i, !1) : this.roundRect(h, d, s, a, f, i, !1), r && o.restore(), n &&
|
|
|
+ this.setBorder(t, e), "hidden" == g && o.clip()
|
|
|
+ }, t.prototype.drawImage = function(t, e, o, s) {
|
|
|
+ return void 0 === e && (e = {}), void 0 === o && (o = {}), void 0 === s && (s = !0), i(this,
|
|
|
+ void 0, void 0, (function() {
|
|
|
+ var a = this;
|
|
|
+ return n(this, (function(h) {
|
|
|
+ switch (h.label) {
|
|
|
+ case 0:
|
|
|
+ return [4, new Promise((function(h, d) {
|
|
|
+ return i(a, void 0, void 0, (
|
|
|
+ function() {
|
|
|
+ var i, a, d, c,
|
|
|
+ l, f, u, p,
|
|
|
+ g, v, y, b,
|
|
|
+ x, m, w, S,
|
|
|
+ z, k, I, P,
|
|
|
+ W, L = this;
|
|
|
+ return n(this, (
|
|
|
+ function(
|
|
|
+ n
|
|
|
+ ) {
|
|
|
+ return i =
|
|
|
+ this
|
|
|
+ .ctx,
|
|
|
+ a =
|
|
|
+ o
|
|
|
+ .borderRadius,
|
|
|
+ d =
|
|
|
+ void 0 ===
|
|
|
+ a ?
|
|
|
+ 0 :
|
|
|
+ a,
|
|
|
+ c =
|
|
|
+ o
|
|
|
+ .backgroundColor,
|
|
|
+ l =
|
|
|
+ void 0 ===
|
|
|
+ c ?
|
|
|
+ M :
|
|
|
+ c,
|
|
|
+ f =
|
|
|
+ o
|
|
|
+ .objectFit,
|
|
|
+ u =
|
|
|
+ void 0 ===
|
|
|
+ f ?
|
|
|
+ B :
|
|
|
+ f,
|
|
|
+ p =
|
|
|
+ o
|
|
|
+ .backgroundSize,
|
|
|
+ g =
|
|
|
+ void 0 ===
|
|
|
+ p ?
|
|
|
+ B :
|
|
|
+ p,
|
|
|
+ v =
|
|
|
+ o
|
|
|
+ .objectPosition,
|
|
|
+ y =
|
|
|
+ o
|
|
|
+ .backgroundPosition,
|
|
|
+ b =
|
|
|
+ o
|
|
|
+ .boxShadow,
|
|
|
+ o
|
|
|
+ .backgroundImage &&
|
|
|
+ (u = g,
|
|
|
+ v =
|
|
|
+ y
|
|
|
+ ),
|
|
|
+ b &&
|
|
|
+ this
|
|
|
+ .drawView(
|
|
|
+ e,
|
|
|
+ Object
|
|
|
+ .assign(
|
|
|
+ o, {
|
|
|
+ backgroundColor: l ||
|
|
|
+ b &&
|
|
|
+ (l ||
|
|
|
+ "#ffffff"
|
|
|
+ )
|
|
|
+ }
|
|
|
+ ),
|
|
|
+ !
|
|
|
+ 0,
|
|
|
+ !
|
|
|
+ 1,
|
|
|
+ !
|
|
|
+ 0
|
|
|
+ ),
|
|
|
+ x =
|
|
|
+ e
|
|
|
+ .width,
|
|
|
+ m =
|
|
|
+ e
|
|
|
+ .height,
|
|
|
+ w =
|
|
|
+ e
|
|
|
+ .left,
|
|
|
+ S =
|
|
|
+ e
|
|
|
+ .top,
|
|
|
+ i
|
|
|
+ .save(),
|
|
|
+ z =
|
|
|
+ e
|
|
|
+ .contentSize
|
|
|
+ .left -
|
|
|
+ e
|
|
|
+ .borderSize
|
|
|
+ .left,
|
|
|
+ k =
|
|
|
+ e
|
|
|
+ .contentSize
|
|
|
+ .top -
|
|
|
+ e
|
|
|
+ .borderSize
|
|
|
+ .top,
|
|
|
+ s ||
|
|
|
+ (this
|
|
|
+ .setOpacity(
|
|
|
+ o
|
|
|
+ ),
|
|
|
+ this
|
|
|
+ .setTransform(
|
|
|
+ e,
|
|
|
+ o
|
|
|
+ ),
|
|
|
+ this
|
|
|
+ .setBackground(
|
|
|
+ l,
|
|
|
+ x,
|
|
|
+ m,
|
|
|
+ w,
|
|
|
+ S
|
|
|
+ ),
|
|
|
+ this
|
|
|
+ .roundRect(
|
|
|
+ w,
|
|
|
+ S,
|
|
|
+ x,
|
|
|
+ m,
|
|
|
+ d,
|
|
|
+ !
|
|
|
+ !
|
|
|
+ (d ||
|
|
|
+ !
|
|
|
+ b &&
|
|
|
+ l
|
|
|
+ ),
|
|
|
+ !
|
|
|
+ 1
|
|
|
+ )
|
|
|
+ ),
|
|
|
+ w +=
|
|
|
+ z,
|
|
|
+ S +=
|
|
|
+ k,
|
|
|
+ i
|
|
|
+ .clip(),
|
|
|
+ I =
|
|
|
+ function(
|
|
|
+ t
|
|
|
+ ) {
|
|
|
+ if (u !==
|
|
|
+ B
|
|
|
+ ) {
|
|
|
+ var n =
|
|
|
+ function(
|
|
|
+ t,
|
|
|
+ e,
|
|
|
+ i
|
|
|
+ ) {
|
|
|
+ var n =
|
|
|
+ t
|
|
|
+ .objectFit,
|
|
|
+ r =
|
|
|
+ t
|
|
|
+ .objectPosition,
|
|
|
+ o =
|
|
|
+ e
|
|
|
+ .width /
|
|
|
+ e
|
|
|
+ .height,
|
|
|
+ s =
|
|
|
+ i
|
|
|
+ .width /
|
|
|
+ i
|
|
|
+ .height,
|
|
|
+ a =
|
|
|
+ 1;
|
|
|
+ "contain" ==
|
|
|
+ n && o >=
|
|
|
+ s ||
|
|
|
+ "cover" ==
|
|
|
+ n &&
|
|
|
+ o <
|
|
|
+ s ?
|
|
|
+ a =
|
|
|
+ e
|
|
|
+ .height /
|
|
|
+ i
|
|
|
+ .height :
|
|
|
+ ("contain" ==
|
|
|
+ n &&
|
|
|
+ o <
|
|
|
+ s ||
|
|
|
+ "cover" ==
|
|
|
+ n &&
|
|
|
+ o >=
|
|
|
+ s
|
|
|
+ ) &&
|
|
|
+ (a = e
|
|
|
+ .width /
|
|
|
+ i
|
|
|
+ .width
|
|
|
+ );
|
|
|
+ var h =
|
|
|
+ i
|
|
|
+ .width *
|
|
|
+ a,
|
|
|
+ d =
|
|
|
+ i
|
|
|
+ .height *
|
|
|
+ a,
|
|
|
+ c =
|
|
|
+ r ||
|
|
|
+ [],
|
|
|
+ l =
|
|
|
+ c[
|
|
|
+ 0],
|
|
|
+ f =
|
|
|
+ c[
|
|
|
+ 1],
|
|
|
+ u =
|
|
|
+ /^\d+px|rpx$/
|
|
|
+ .test(
|
|
|
+ l
|
|
|
+ ) ?
|
|
|
+ A(l, e
|
|
|
+ .width
|
|
|
+ ) :
|
|
|
+ (e.width -
|
|
|
+ h
|
|
|
+ ) *
|
|
|
+ (F(l) ?
|
|
|
+ A(l,
|
|
|
+ 1) :
|
|
|
+ {
|
|
|
+ left: 0,
|
|
|
+ center: .5,
|
|
|
+ right: 1
|
|
|
+ }
|
|
|
+ [l ||
|
|
|
+ "center"
|
|
|
+ ]
|
|
|
+ ),
|
|
|
+ p =
|
|
|
+ /^\d+px|rpx$/
|
|
|
+ .test(
|
|
|
+ f
|
|
|
+ ) ?
|
|
|
+ A(f, e
|
|
|
+ .height
|
|
|
+ ) :
|
|
|
+ (e.height -
|
|
|
+ d
|
|
|
+ ) *
|
|
|
+ (F(f) ?
|
|
|
+ A(f,
|
|
|
+ 1) :
|
|
|
+ {
|
|
|
+ top: 0,
|
|
|
+ center: .5,
|
|
|
+ bottom: 1
|
|
|
+ }
|
|
|
+ [f ||
|
|
|
+ "center"
|
|
|
+ ]
|
|
|
+ ),
|
|
|
+ g =
|
|
|
+ function(
|
|
|
+ t,
|
|
|
+ e
|
|
|
+ ) {
|
|
|
+ return [(t -
|
|
|
+ u) /
|
|
|
+ a,
|
|
|
+ (e -
|
|
|
+ p) /
|
|
|
+ a
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ v =
|
|
|
+ g(0,
|
|
|
+ 0),
|
|
|
+ y =
|
|
|
+ v[
|
|
|
+ 0],
|
|
|
+ b =
|
|
|
+ v[
|
|
|
+ 1],
|
|
|
+ x =
|
|
|
+ g(e.width,
|
|
|
+ e
|
|
|
+ .height
|
|
|
+ ),
|
|
|
+ m =
|
|
|
+ x[
|
|
|
+ 0],
|
|
|
+ w =
|
|
|
+ x[
|
|
|
+ 1];
|
|
|
+ return {
|
|
|
+ sx: Math
|
|
|
+ .max(
|
|
|
+ y,
|
|
|
+ 0
|
|
|
+ ),
|
|
|
+ sy: Math
|
|
|
+ .max(
|
|
|
+ b,
|
|
|
+ 0
|
|
|
+ ),
|
|
|
+ sw: Math
|
|
|
+ .min(
|
|
|
+ m -
|
|
|
+ y,
|
|
|
+ i
|
|
|
+ .width
|
|
|
+ ),
|
|
|
+ sh: Math
|
|
|
+ .min(
|
|
|
+ w -
|
|
|
+ b,
|
|
|
+ i
|
|
|
+ .height
|
|
|
+ ),
|
|
|
+ dx: Math
|
|
|
+ .max(
|
|
|
+ u,
|
|
|
+ 0
|
|
|
+ ),
|
|
|
+ dy: Math
|
|
|
+ .max(
|
|
|
+ p,
|
|
|
+ 0
|
|
|
+ ),
|
|
|
+ dw: Math
|
|
|
+ .min(
|
|
|
+ h,
|
|
|
+ e
|
|
|
+ .width
|
|
|
+ ),
|
|
|
+ dh: Math
|
|
|
+ .min(
|
|
|
+ d,
|
|
|
+ e
|
|
|
+ .height
|
|
|
+ )
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ({
|
|
|
+ objectFit: u,
|
|
|
+ objectPosition: v
|
|
|
+ },
|
|
|
+ e
|
|
|
+ .contentSize,
|
|
|
+ t
|
|
|
+ ),
|
|
|
+ o =
|
|
|
+ n
|
|
|
+ .sx,
|
|
|
+ s =
|
|
|
+ n
|
|
|
+ .sy,
|
|
|
+ a =
|
|
|
+ n
|
|
|
+ .sh,
|
|
|
+ h =
|
|
|
+ n
|
|
|
+ .sw,
|
|
|
+ d =
|
|
|
+ n
|
|
|
+ .dx,
|
|
|
+ c =
|
|
|
+ n
|
|
|
+ .dy,
|
|
|
+ l =
|
|
|
+ n
|
|
|
+ .dh,
|
|
|
+ f =
|
|
|
+ n
|
|
|
+ .dw;
|
|
|
+ R == r
|
|
|
+ .MP_BAIDU ?
|
|
|
+ i
|
|
|
+ .drawImage(
|
|
|
+ t
|
|
|
+ .src,
|
|
|
+ d +
|
|
|
+ w,
|
|
|
+ c +
|
|
|
+ S,
|
|
|
+ f,
|
|
|
+ l,
|
|
|
+ o,
|
|
|
+ s,
|
|
|
+ h,
|
|
|
+ a
|
|
|
+ ) :
|
|
|
+ i
|
|
|
+ .drawImage(
|
|
|
+ t
|
|
|
+ .src,
|
|
|
+ o,
|
|
|
+ s,
|
|
|
+ h,
|
|
|
+ a,
|
|
|
+ d +
|
|
|
+ w,
|
|
|
+ c +
|
|
|
+ S,
|
|
|
+ f,
|
|
|
+ l
|
|
|
+ )
|
|
|
+ } else
|
|
|
+ i
|
|
|
+ .drawImage(
|
|
|
+ t
|
|
|
+ .src,
|
|
|
+ w,
|
|
|
+ S,
|
|
|
+ x,
|
|
|
+ m
|
|
|
+ )
|
|
|
+ },
|
|
|
+ P =
|
|
|
+ function() {
|
|
|
+ i.restore(),
|
|
|
+ L
|
|
|
+ .drawView(
|
|
|
+ e,
|
|
|
+ o,
|
|
|
+ !
|
|
|
+ 1,
|
|
|
+ !
|
|
|
+ 0,
|
|
|
+ !
|
|
|
+ 1
|
|
|
+ ),
|
|
|
+ h(
|
|
|
+ 1)
|
|
|
+ },
|
|
|
+ W =
|
|
|
+ function(
|
|
|
+ t
|
|
|
+ ) {
|
|
|
+ I(t),
|
|
|
+ P()
|
|
|
+ },
|
|
|
+ W(
|
|
|
+ t),
|
|
|
+ [
|
|
|
+ 2]
|
|
|
+ }))
|
|
|
+ }))
|
|
|
+ }))];
|
|
|
+ case 1:
|
|
|
+ return h.sent(), [2]
|
|
|
+ }
|
|
|
+ }))
|
|
|
+ }))
|
|
|
+ }, t.prototype.drawText = function(t, e, i, n) {
|
|
|
+ var r = this.ctx,
|
|
|
+ o = e.borderSize,
|
|
|
+ s = e.contentSize,
|
|
|
+ a = e.left,
|
|
|
+ h = e.top,
|
|
|
+ d = s.width,
|
|
|
+ c = s.height,
|
|
|
+ l = s.left - o.left,
|
|
|
+ f = s.top - o.top,
|
|
|
+ u = i.color,
|
|
|
+ p = void 0 === u ? "#000000" : u,
|
|
|
+ g = i.lineHeight,
|
|
|
+ v = void 0 === g ? "1.4em" : g,
|
|
|
+ y = i.fontSize,
|
|
|
+ b = void 0 === y ? 14 : y,
|
|
|
+ x = i.fontWeight,
|
|
|
+ m = i.fontFamily,
|
|
|
+ w = i.fontStyle,
|
|
|
+ S = i.textAlign,
|
|
|
+ z = void 0 === S ? "left" : S,
|
|
|
+ M = i.verticalAlign,
|
|
|
+ B = void 0 === M ? yt : M,
|
|
|
+ k = i.backgroundColor,
|
|
|
+ I = i.lineClamp,
|
|
|
+ P = i.backgroundClip,
|
|
|
+ W = i.textShadow,
|
|
|
+ R = i.textDecoration;
|
|
|
+ if (this.drawView(e, i, P != ut), v = A(v, b), t) {
|
|
|
+ r.save(), this.setShadow({
|
|
|
+ boxShadow: W
|
|
|
+ }), a += l, h += f;
|
|
|
+ var L = n.fontHeight,
|
|
|
+ O = n.descent + n.ascent;
|
|
|
+ switch (r.setFonts({
|
|
|
+ fontFamily: m,
|
|
|
+ fontSize: b,
|
|
|
+ fontWeight: x,
|
|
|
+ fontStyle: w
|
|
|
+ }), r.setTextBaseline(O ? yt : B), r.setTextAlign(z), P ? this.setBackground(k, d,
|
|
|
+ c, a, h) : r.setFillStyle(p), z) {
|
|
|
+ case xt:
|
|
|
+ break;
|
|
|
+ case mt:
|
|
|
+ a += .5 * d;
|
|
|
+ break;
|
|
|
+ case wt:
|
|
|
+ a += d
|
|
|
+ }
|
|
|
+ var T = n.lines * v,
|
|
|
+ F = Math.ceil((c - T) / 2);
|
|
|
+ switch (F < 0 && (F = 0), B) {
|
|
|
+ case vt:
|
|
|
+ break;
|
|
|
+ case yt:
|
|
|
+ h += F;
|
|
|
+ break;
|
|
|
+ case bt:
|
|
|
+ h += 2 * F
|
|
|
+ }
|
|
|
+ var j = (v - L) / 2,
|
|
|
+ C = function(t) {
|
|
|
+ var e = r.measureText(t),
|
|
|
+ i = e.actualBoundingBoxDescent,
|
|
|
+ n = void 0 === i ? 0 : i,
|
|
|
+ o = e.actualBoundingBoxAscent;
|
|
|
+ return B == vt ? {
|
|
|
+ fix: O ? void 0 === o ? 0 : o : 0,
|
|
|
+ lineY: O ? 2 * j : j
|
|
|
+ } : B == yt ? {
|
|
|
+ fix: O ? v / 2 + n / 4 : v / 2,
|
|
|
+ lineY: (v - L) / 2
|
|
|
+ } : B == bt ? {
|
|
|
+ fix: O ? v - n : v + j,
|
|
|
+ lineY: 0
|
|
|
+ } : {
|
|
|
+ fix: 0,
|
|
|
+ height: 0,
|
|
|
+ lineY: 0
|
|
|
+ }
|
|
|
+ },
|
|
|
+ E = function(t, e, i) {
|
|
|
+ var o = t;
|
|
|
+ switch (z) {
|
|
|
+ case xt:
|
|
|
+ o += i;
|
|
|
+ break;
|
|
|
+ case mt:
|
|
|
+ o = (t -= i / 2) + i;
|
|
|
+ break;
|
|
|
+ case wt:
|
|
|
+ o = t, t -= i
|
|
|
+ }
|
|
|
+ if (R) {
|
|
|
+ r.setLineWidth(b / 13), r.beginPath();
|
|
|
+ var s = .1 * n.fontHeight;
|
|
|
+ /\bunderline\b/.test(R) && (r.moveTo(t, e + s), r.lineTo(o, e + s)),
|
|
|
+ /\boverline\b/.test(R) && (O || (e -= j), r.moveTo(t, e - n.fontHeight -
|
|
|
+ s), r.lineTo(o, e - n.fontHeight - s)), /\bline-through\b/.test(
|
|
|
+ R) && (r.moveTo(t, e - .5 * n.fontHeight), r.lineTo(o, e - .5 * n
|
|
|
+ .fontHeight)), r.closePath(), r.setStrokeStyle(p), r.stroke()
|
|
|
+ }
|
|
|
+ };
|
|
|
+ if (!n.widths || 1 == n.widths.length && n.widths[0].total <= s.width) {
|
|
|
+ var H = C(t),
|
|
|
+ U = H.fix,
|
|
|
+ Y = H.lineY;
|
|
|
+ return r.fillText(t, a, h + U), E(a, (h += v) - Y, n && n.widths && n.widths[0]
|
|
|
+ .total || n.text), r.restore(), void this.setBorder(e, i)
|
|
|
+ }
|
|
|
+ for (var $ = t.split(""), D = h, _ = a, X = "", N = 0, V = 0; V <= $.length; V++) {
|
|
|
+ var G = $[V] || "",
|
|
|
+ q = "\n" === G,
|
|
|
+ J = "" == G,
|
|
|
+ Q = X + (G = q ? "" : G),
|
|
|
+ Z = r.measureText(Q).width;
|
|
|
+ if (N >= I) break;
|
|
|
+ if (_ = a, Z > s.width || q || J) {
|
|
|
+ if (N++, X = J && Z <= s.width ? Q : X, N === I && Z > d) {
|
|
|
+ for (; r.measureText("".concat(X, "...")).width > s.width && !(X.length <=
|
|
|
+ 1);) X = X.substring(0, X.length - 1);
|
|
|
+ X += "..."
|
|
|
+ }
|
|
|
+ var K = C(X);
|
|
|
+ U = K.fix, Y = K.lineY;
|
|
|
+ if (r.fillText(X, _, h + U), E(_, (h += v) - Y, Z), X = G, h > D + c) break
|
|
|
+ } else X = Q
|
|
|
+ }
|
|
|
+ r.restore()
|
|
|
+ }
|
|
|
+ }, t.prototype.source = function(t) {
|
|
|
+ return i(this, void 0, void 0, (function() {
|
|
|
+ var e, i, r, o = this;
|
|
|
+ return n(this, (function(n) {
|
|
|
+ switch (n.label) {
|
|
|
+ case 0:
|
|
|
+ if (this.node = null, e = +new Date, "{}" == JSON
|
|
|
+ .stringify(t)) return [2];
|
|
|
+ if (!t.type)
|
|
|
+ for (i in t.type = gt, t.css = t.css || {}, t)[
|
|
|
+ "views", "children", "type", "css"]
|
|
|
+ .includes(i) || (t.css[i] = t[i], delete t[
|
|
|
+ i]);
|
|
|
+ return t.css && !t.css.width && (t.css || (t
|
|
|
+ .css = {})), [4, this.create(t)];
|
|
|
+ case 1:
|
|
|
+ return (r = n.sent()) ? (this.size = r.layout() ||
|
|
|
+ {}, this.node = r, this.onEffectFinished()
|
|
|
+ .then((function(t) {
|
|
|
+ return o.lifecycle(
|
|
|
+ "onEffectSuccess", t)
|
|
|
+ })).catch((function(t) {
|
|
|
+ return o.lifecycle(
|
|
|
+ "onEffectFail", t)
|
|
|
+ })), console.log("布局用时:" + (+new Date - e) +
|
|
|
+ "ms"), [2, this.size]) : [2, console
|
|
|
+ .warn("no node")
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ }))
|
|
|
+ }))
|
|
|
+ }, t.prototype.getImageInfo = function(t) {
|
|
|
+ return this.imageBus[t] || (this.imageBus[t] = this.createImage(t, this.useCORS)), this
|
|
|
+ .imageBus[t]
|
|
|
+ }, t.prototype.create = function(t, r) {
|
|
|
+ return i(this, void 0, void 0, (function() {
|
|
|
+ var i, o, s, a, h, d, c, l, f, u, p, g, v, y, b, x, w;
|
|
|
+ return n(this, (function(n) {
|
|
|
+ switch (n.label) {
|
|
|
+ case 0:
|
|
|
+ if (i = t.type == ft, o = [ut, pt].includes(t.type),
|
|
|
+ s = t.css || {}, a = s.backgroundImage, h = s
|
|
|
+ .display, i && !t.src && !t.url || o && !t.text)
|
|
|
+ return [2];
|
|
|
+ if (h == m) return [2];
|
|
|
+ if (o && (t.text = String(t.text)), !(i || t.type ==
|
|
|
+ gt && a)) return [3, 4];
|
|
|
+ d = i ? t.src : "", c = /url\((.+)\)/.exec(a), a &&
|
|
|
+ c && c[1] && (d = c[1] || ""), n.label = 1;
|
|
|
+ case 1:
|
|
|
+ return n.trys.push([1, 3, , 4]), [4, this
|
|
|
+ .getImageInfo(d)
|
|
|
+ ];
|
|
|
+ case 2:
|
|
|
+ return l = n.sent(), f = l.width, u = l.height, !(
|
|
|
+ p = l.path) && i ? [2] : (p && (t
|
|
|
+ .attributes = Object.assign(t
|
|
|
+ .attributes || {}, {
|
|
|
+ width: f,
|
|
|
+ height: u,
|
|
|
+ path: p,
|
|
|
+ src: p,
|
|
|
+ naturalSrc: d
|
|
|
+ })), [3, 4]);
|
|
|
+ case 3:
|
|
|
+ return g = n.sent(), t.type != gt ? [2] : (this
|
|
|
+ .lifecycle("onEffectFail", e(e({}, g), {
|
|
|
+ src: d
|
|
|
+ })), [3, 4]);
|
|
|
+ case 4:
|
|
|
+ if (this.count += 1, v = new ct(t, r, this.root,
|
|
|
+ this.ctx), !(y = t.views || t.children))
|
|
|
+ return [3, 8];
|
|
|
+ b = 0, n.label = 5;
|
|
|
+ case 5:
|
|
|
+ return b < y.length ? (x = y[b], [4, this.create(x,
|
|
|
+ v)]) : [3, 8];
|
|
|
+ case 6:
|
|
|
+ (w = n.sent()) && v.add(w), n.label = 7;
|
|
|
+ case 7:
|
|
|
+ return b++, [3, 5];
|
|
|
+ case 8:
|
|
|
+ return [2, v]
|
|
|
+ }
|
|
|
+ }))
|
|
|
+ }))
|
|
|
+ }, t.prototype.drawNode = function(t, e) {
|
|
|
+ return void 0 === e && (e = !1), i(this, void 0, void 0, (function() {
|
|
|
+ var i, r, o, s, a, h, d, c, l, f, u, p, g, v, y, b, x, m, w, S;
|
|
|
+ return n(this, (function(n) {
|
|
|
+ switch (n.label) {
|
|
|
+ case 0:
|
|
|
+ return i = t.layoutBox, r = t.computedStyle, o = t
|
|
|
+ .attributes, s = t.name, a = t.children, h = t
|
|
|
+ .fixedLine, d = t.attributes, c = d.src, l = d
|
|
|
+ .text, ["fixed"].includes(r.position) && !e ? [
|
|
|
+ 2] : (this.ctx.save(), s !== gt ? [3, 7] :
|
|
|
+ c ? r.backgroundRepeat ? [4, this
|
|
|
+ .drawPattern(o, i, r)
|
|
|
+ ] : [3, 2] : [3, 5]);
|
|
|
+ case 1:
|
|
|
+ return n.sent(), [3, 4];
|
|
|
+ case 2:
|
|
|
+ return [4, this.drawImage(o, i, r, !1)];
|
|
|
+ case 3:
|
|
|
+ n.sent(), n.label = 4;
|
|
|
+ case 4:
|
|
|
+ return [3, 6];
|
|
|
+ case 5:
|
|
|
+ this.drawView(i, r), n.label = 6;
|
|
|
+ case 6:
|
|
|
+ return [3, 10];
|
|
|
+ case 7:
|
|
|
+ return s === ft && c ? [4, this.drawImage(o, i, r, !
|
|
|
+ 1)] : [3, 9];
|
|
|
+ case 8:
|
|
|
+ return n.sent(), [3, 10];
|
|
|
+ case 9:
|
|
|
+ s === ut ? this.drawText(l, i, r, o) : s === pt &&
|
|
|
+ lt.api && lt.api.draw(l, this, i, r), n.label =
|
|
|
+ 10;
|
|
|
+ case 10:
|
|
|
+ if (this.progress += 1, u = (f = h || {})
|
|
|
+ .beforeElements, p = f.afterElements, !u)
|
|
|
+ return [3, 14];
|
|
|
+ g = 0, v = u, n.label = 11;
|
|
|
+ case 11:
|
|
|
+ return g < v.length ? (S = v[g], [4, this.drawNode(
|
|
|
+ S)]) : [3, 14];
|
|
|
+ case 12:
|
|
|
+ n.sent(), n.label = 13;
|
|
|
+ case 13:
|
|
|
+ return g++, [3, 11];
|
|
|
+ case 14:
|
|
|
+ if (!a) return [3, 18];
|
|
|
+ y = Object.values ? Object.values(a) : Object.keys(
|
|
|
+ a).map((function(t) {
|
|
|
+ return a[t]
|
|
|
+ })), b = 0, x = y, n.label = 15;
|
|
|
+ case 15:
|
|
|
+ return b < x.length ? "absolute" === (S = x[b])
|
|
|
+ .computedStyle.position ? [3, 17] : [4, this
|
|
|
+ .drawNode(S)
|
|
|
+ ] : [3, 18];
|
|
|
+ case 16:
|
|
|
+ n.sent(), n.label = 17;
|
|
|
+ case 17:
|
|
|
+ return b++, [3, 15];
|
|
|
+ case 18:
|
|
|
+ if (!p) return [3, 22];
|
|
|
+ m = 0, w = p, n.label = 19;
|
|
|
+ case 19:
|
|
|
+ return m < w.length ? (S = w[m], [4, this.drawNode(
|
|
|
+ S)]) : [3, 22];
|
|
|
+ case 20:
|
|
|
+ n.sent(), n.label = 21;
|
|
|
+ case 21:
|
|
|
+ return m++, [3, 19];
|
|
|
+ case 22:
|
|
|
+ return this.ctx.restore(), [2]
|
|
|
+ }
|
|
|
+ }))
|
|
|
+ }))
|
|
|
+ }, t.prototype.render = function(t) {
|
|
|
+ var e = this;
|
|
|
+ return void 0 === t && (t = 30), new Promise((function(r, o) {
|
|
|
+ return i(e, void 0, void 0, (function() {
|
|
|
+ var e, i, s, a, h, d, c, l, f, u;
|
|
|
+ return n(this, (function(n) {
|
|
|
+ switch (n.label) {
|
|
|
+ case 0:
|
|
|
+ return e = +new Date, this.init(), [
|
|
|
+ 4, (p = t, void 0 === p && (
|
|
|
+ p = 0), new Promise(
|
|
|
+ (function(t) {
|
|
|
+ return setTimeout(
|
|
|
+ t, p
|
|
|
+ )
|
|
|
+ })))
|
|
|
+ ];
|
|
|
+ case 1:
|
|
|
+ n.sent(), n.label = 2;
|
|
|
+ case 2:
|
|
|
+ if (n.trys.push([2, 14, , 15]), !
|
|
|
+ this.node) return [3, 12];
|
|
|
+ if (i = this.root.fixedLine || {},
|
|
|
+ s = i.beforeElements, a = i
|
|
|
+ .afterElements, !s) return [3,
|
|
|
+ 6];
|
|
|
+ h = 0, d = s, n.label = 3;
|
|
|
+ case 3:
|
|
|
+ return h < d.length ? (f = d[h], [4,
|
|
|
+ this.drawNode(f, !0)
|
|
|
+ ]) : [3, 6];
|
|
|
+ case 4:
|
|
|
+ n.sent(), n.label = 5;
|
|
|
+ case 5:
|
|
|
+ return h++, [3, 3];
|
|
|
+ case 6:
|
|
|
+ return [4, this.drawNode(this
|
|
|
+ .node)];
|
|
|
+ case 7:
|
|
|
+ if (n.sent(), !a) return [3, 11];
|
|
|
+ c = 0, l = a, n.label = 8;
|
|
|
+ case 8:
|
|
|
+ return c < l.length ? (f = l[c], [4,
|
|
|
+ this.drawNode(f, !0)
|
|
|
+ ]) : [3, 11];
|
|
|
+ case 9:
|
|
|
+ n.sent(), n.label = 10;
|
|
|
+ case 10:
|
|
|
+ return c++, [3, 8];
|
|
|
+ case 11:
|
|
|
+ return r(this.node), [3, 13];
|
|
|
+ case 12:
|
|
|
+ this.lifecycle("onEffectFail",
|
|
|
+ "node is empty"), n.label =
|
|
|
+ 13;
|
|
|
+ case 13:
|
|
|
+ return [3, 15];
|
|
|
+ case 14:
|
|
|
+ return u = n.sent(), this.lifecycle(
|
|
|
+ "onEffectFail", u), o(u), [
|
|
|
+ 3, 15
|
|
|
+ ];
|
|
|
+ case 15:
|
|
|
+ return console.log("渲染用时:" + (+
|
|
|
+ new Date - e - 30) +
|
|
|
+ "ms"), [2]
|
|
|
+ }
|
|
|
+ var p
|
|
|
+ }))
|
|
|
+ }))
|
|
|
+ }))
|
|
|
+ }, t.prototype.onEffectFinished = function() {
|
|
|
+ var t = this,
|
|
|
+ e = Object.keys(this.imageBus).map((function(e) {
|
|
|
+ return t.imageBus[e]
|
|
|
+ }));
|
|
|
+ return Promise.all(e)
|
|
|
+ }, t.prototype.destroy = function() {
|
|
|
+ this.node = []
|
|
|
+ }, t.prototype.save = function(t) {
|
|
|
+ try {
|
|
|
+ var e = t || {},
|
|
|
+ i = e.fileType,
|
|
|
+ n = void 0 === i ? "png" : i,
|
|
|
+ r = e.quality,
|
|
|
+ o = void 0 === r ? 1 : r;
|
|
|
+ return this.canvas.toDataURL("image/".concat(n), o)
|
|
|
+ } catch (t) {
|
|
|
+ return this.lifecycle("onEffectFail", "image cross domain"), t
|
|
|
+ }
|
|
|
+ }, t
|
|
|
+ }();
|
|
|
+ r.WEB == R && (window.Painter = St), t.Painter = St, t.default = St, Object.defineProperty(t,
|
|
|
+ "__esModule", {
|
|
|
+ value: !0
|
|
|
+ })
|
|
|
+}));
|