1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665 |
- ! 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
- })
- }));
|