1 line
34 KiB
JSON
1 line
34 KiB
JSON
{"ast":null,"code":"import \"core-js/modules/es.array.splice.js\";\nimport \"core-js/modules/es.array.slice.js\";\nimport { __extends } from \"tslib\";\nimport * as util from '../core/util.js';\nimport { devicePixelRatio } from '../config.js';\nimport Eventful from '../core/Eventful.js';\nimport { getCanvasGradient } from './helper.js';\nimport { createCanvasPattern } from './graphic.js';\nimport BoundingRect from '../core/BoundingRect.js';\nimport { REDRAW_BIT } from '../graphic/constants.js';\nimport { platformApi } from '../core/platform.js';\n\nfunction createDom(id, painter, dpr) {\n var newDom = platformApi.createCanvas();\n var width = painter.getWidth();\n var height = painter.getHeight();\n var newDomStyle = newDom.style;\n\n if (newDomStyle) {\n newDomStyle.position = 'absolute';\n newDomStyle.left = '0';\n newDomStyle.top = '0';\n newDomStyle.width = width + 'px';\n newDomStyle.height = height + 'px';\n newDom.setAttribute('data-zr-dom-id', id);\n }\n\n newDom.width = width * dpr;\n newDom.height = height * dpr;\n return newDom;\n}\n\n;\n\nvar Layer = function (_super) {\n __extends(Layer, _super);\n\n function Layer(id, painter, dpr) {\n var _this = _super.call(this) || this;\n\n _this.motionBlur = false;\n _this.lastFrameAlpha = 0.7;\n _this.dpr = 1;\n _this.virtual = false;\n _this.config = {};\n _this.incremental = false;\n _this.zlevel = 0;\n _this.maxRepaintRectCount = 5;\n _this.__dirty = true;\n _this.__firstTimePaint = true;\n _this.__used = false;\n _this.__drawIndex = 0;\n _this.__startIndex = 0;\n _this.__endIndex = 0;\n _this.__prevStartIndex = null;\n _this.__prevEndIndex = null;\n var dom;\n dpr = dpr || devicePixelRatio;\n\n if (typeof id === 'string') {\n dom = createDom(id, painter, dpr);\n } else if (util.isObject(id)) {\n dom = id;\n id = dom.id;\n }\n\n _this.id = id;\n _this.dom = dom;\n var domStyle = dom.style;\n\n if (domStyle) {\n util.disableUserSelect(dom);\n\n dom.onselectstart = function () {\n return false;\n };\n\n domStyle.padding = '0';\n domStyle.margin = '0';\n domStyle.borderWidth = '0';\n }\n\n _this.painter = painter;\n _this.dpr = dpr;\n return _this;\n }\n\n Layer.prototype.getElementCount = function () {\n return this.__endIndex - this.__startIndex;\n };\n\n Layer.prototype.afterBrush = function () {\n this.__prevStartIndex = this.__startIndex;\n this.__prevEndIndex = this.__endIndex;\n };\n\n Layer.prototype.initContext = function () {\n this.ctx = this.dom.getContext('2d');\n this.ctx.dpr = this.dpr;\n };\n\n Layer.prototype.setUnpainted = function () {\n this.__firstTimePaint = true;\n };\n\n Layer.prototype.createBackBuffer = function () {\n var dpr = this.dpr;\n this.domBack = createDom('back-' + this.id, this.painter, dpr);\n this.ctxBack = this.domBack.getContext('2d');\n\n if (dpr !== 1) {\n this.ctxBack.scale(dpr, dpr);\n }\n };\n\n Layer.prototype.createRepaintRects = function (displayList, prevList, viewWidth, viewHeight) {\n if (this.__firstTimePaint) {\n this.__firstTimePaint = false;\n return null;\n }\n\n var mergedRepaintRects = [];\n var maxRepaintRectCount = this.maxRepaintRectCount;\n var full = false;\n var pendingRect = new BoundingRect(0, 0, 0, 0);\n\n function addRectToMergePool(rect) {\n if (!rect.isFinite() || rect.isZero()) {\n return;\n }\n\n if (mergedRepaintRects.length === 0) {\n var boundingRect = new BoundingRect(0, 0, 0, 0);\n boundingRect.copy(rect);\n mergedRepaintRects.push(boundingRect);\n } else {\n var isMerged = false;\n var minDeltaArea = Infinity;\n var bestRectToMergeIdx = 0;\n\n for (var i = 0; i < mergedRepaintRects.length; ++i) {\n var mergedRect = mergedRepaintRects[i];\n\n if (mergedRect.intersect(rect)) {\n var pendingRect_1 = new BoundingRect(0, 0, 0, 0);\n pendingRect_1.copy(mergedRect);\n pendingRect_1.union(rect);\n mergedRepaintRects[i] = pendingRect_1;\n isMerged = true;\n break;\n } else if (full) {\n pendingRect.copy(rect);\n pendingRect.union(mergedRect);\n var aArea = rect.width * rect.height;\n var bArea = mergedRect.width * mergedRect.height;\n var pendingArea = pendingRect.width * pendingRect.height;\n var deltaArea = pendingArea - aArea - bArea;\n\n if (deltaArea < minDeltaArea) {\n minDeltaArea = deltaArea;\n bestRectToMergeIdx = i;\n }\n }\n }\n\n if (full) {\n mergedRepaintRects[bestRectToMergeIdx].union(rect);\n isMerged = true;\n }\n\n if (!isMerged) {\n var boundingRect = new BoundingRect(0, 0, 0, 0);\n boundingRect.copy(rect);\n mergedRepaintRects.push(boundingRect);\n }\n\n if (!full) {\n full = mergedRepaintRects.length >= maxRepaintRectCount;\n }\n }\n }\n\n for (var i = this.__startIndex; i < this.__endIndex; ++i) {\n var el = displayList[i];\n\n if (el) {\n var shouldPaint = el.shouldBePainted(viewWidth, viewHeight, true, true);\n var prevRect = el.__isRendered && (el.__dirty & REDRAW_BIT || !shouldPaint) ? el.getPrevPaintRect() : null;\n\n if (prevRect) {\n addRectToMergePool(prevRect);\n }\n\n var curRect = shouldPaint && (el.__dirty & REDRAW_BIT || !el.__isRendered) ? el.getPaintRect() : null;\n\n if (curRect) {\n addRectToMergePool(curRect);\n }\n }\n }\n\n for (var i = this.__prevStartIndex; i < this.__prevEndIndex; ++i) {\n var el = prevList[i];\n var shouldPaint = el.shouldBePainted(viewWidth, viewHeight, true, true);\n\n if (el && (!shouldPaint || !el.__zr) && el.__isRendered) {\n var prevRect = el.getPrevPaintRect();\n\n if (prevRect) {\n addRectToMergePool(prevRect);\n }\n }\n }\n\n var hasIntersections;\n\n do {\n hasIntersections = false;\n\n for (var i = 0; i < mergedRepaintRects.length;) {\n if (mergedRepaintRects[i].isZero()) {\n mergedRepaintRects.splice(i, 1);\n continue;\n }\n\n for (var j = i + 1; j < mergedRepaintRects.length;) {\n if (mergedRepaintRects[i].intersect(mergedRepaintRects[j])) {\n hasIntersections = true;\n mergedRepaintRects[i].union(mergedRepaintRects[j]);\n mergedRepaintRects.splice(j, 1);\n } else {\n j++;\n }\n }\n\n i++;\n }\n } while (hasIntersections);\n\n this._paintRects = mergedRepaintRects;\n return mergedRepaintRects;\n };\n\n Layer.prototype.debugGetPaintRects = function () {\n return (this._paintRects || []).slice();\n };\n\n Layer.prototype.resize = function (width, height) {\n var dpr = this.dpr;\n var dom = this.dom;\n var domStyle = dom.style;\n var domBack = this.domBack;\n\n if (domStyle) {\n domStyle.width = width + 'px';\n domStyle.height = height + 'px';\n }\n\n dom.width = width * dpr;\n dom.height = height * dpr;\n\n if (domBack) {\n domBack.width = width * dpr;\n domBack.height = height * dpr;\n\n if (dpr !== 1) {\n this.ctxBack.scale(dpr, dpr);\n }\n }\n };\n\n Layer.prototype.clear = function (clearAll, clearColor, repaintRects) {\n var dom = this.dom;\n var ctx = this.ctx;\n var width = dom.width;\n var height = dom.height;\n clearColor = clearColor || this.clearColor;\n var haveMotionBLur = this.motionBlur && !clearAll;\n var lastFrameAlpha = this.lastFrameAlpha;\n var dpr = this.dpr;\n var self = this;\n\n if (haveMotionBLur) {\n if (!this.domBack) {\n this.createBackBuffer();\n }\n\n this.ctxBack.globalCompositeOperation = 'copy';\n this.ctxBack.drawImage(dom, 0, 0, width / dpr, height / dpr);\n }\n\n var domBack = this.domBack;\n\n function doClear(x, y, width, height) {\n ctx.clearRect(x, y, width, height);\n\n if (clearColor && clearColor !== 'transparent') {\n var clearColorGradientOrPattern = void 0;\n\n if (util.isGradientObject(clearColor)) {\n var shouldCache = clearColor.global || clearColor.__width === width && clearColor.__height === height;\n clearColorGradientOrPattern = shouldCache && clearColor.__canvasGradient || getCanvasGradient(ctx, clearColor, {\n x: 0,\n y: 0,\n width: width,\n height: height\n });\n clearColor.__canvasGradient = clearColorGradientOrPattern;\n clearColor.__width = width;\n clearColor.__height = height;\n } else if (util.isImagePatternObject(clearColor)) {\n clearColor.scaleX = clearColor.scaleX || dpr;\n clearColor.scaleY = clearColor.scaleY || dpr;\n clearColorGradientOrPattern = createCanvasPattern(ctx, clearColor, {\n dirty: function dirty() {\n self.setUnpainted();\n\n self.__painter.refresh();\n }\n });\n }\n\n ctx.save();\n ctx.fillStyle = clearColorGradientOrPattern || clearColor;\n ctx.fillRect(x, y, width, height);\n ctx.restore();\n }\n\n if (haveMotionBLur) {\n ctx.save();\n ctx.globalAlpha = lastFrameAlpha;\n ctx.drawImage(domBack, x, y, width, height);\n ctx.restore();\n }\n }\n\n ;\n\n if (!repaintRects || haveMotionBLur) {\n doClear(0, 0, width, height);\n } else if (repaintRects.length) {\n util.each(repaintRects, function (rect) {\n doClear(rect.x * dpr, rect.y * dpr, rect.width * dpr, rect.height * dpr);\n });\n }\n };\n\n return Layer;\n}(Eventful);\n\nexport default Layer;","map":{"version":3,"sources":["D:/Work/WorkSpace/GitWorkSpace/TenShop/resource/ElectronicMall/src/ElectronicMallVue/node_modules/zrender/lib/canvas/Layer.js"],"names":["__extends","util","devicePixelRatio","Eventful","getCanvasGradient","createCanvasPattern","BoundingRect","REDRAW_BIT","platformApi","createDom","id","painter","dpr","newDom","createCanvas","width","getWidth","height","getHeight","newDomStyle","style","position","left","top","setAttribute","Layer","_super","_this","call","motionBlur","lastFrameAlpha","virtual","config","incremental","zlevel","maxRepaintRectCount","__dirty","__firstTimePaint","__used","__drawIndex","__startIndex","__endIndex","__prevStartIndex","__prevEndIndex","dom","isObject","domStyle","disableUserSelect","onselectstart","padding","margin","borderWidth","prototype","getElementCount","afterBrush","initContext","ctx","getContext","setUnpainted","createBackBuffer","domBack","ctxBack","scale","createRepaintRects","displayList","prevList","viewWidth","viewHeight","mergedRepaintRects","full","pendingRect","addRectToMergePool","rect","isFinite","isZero","length","boundingRect","copy","push","isMerged","minDeltaArea","Infinity","bestRectToMergeIdx","i","mergedRect","intersect","pendingRect_1","union","aArea","bArea","pendingArea","deltaArea","el","shouldPaint","shouldBePainted","prevRect","__isRendered","getPrevPaintRect","curRect","getPaintRect","__zr","hasIntersections","splice","j","_paintRects","debugGetPaintRects","slice","resize","clear","clearAll","clearColor","repaintRects","haveMotionBLur","self","globalCompositeOperation","drawImage","doClear","x","y","clearRect","clearColorGradientOrPattern","isGradientObject","shouldCache","global","__width","__height","__canvasGradient","isImagePatternObject","scaleX","scaleY","dirty","__painter","refresh","save","fillStyle","fillRect","restore","globalAlpha","each"],"mappings":";;AAAA,SAASA,SAAT,QAA0B,OAA1B;AACA,OAAO,KAAKC,IAAZ,MAAsB,iBAAtB;AACA,SAASC,gBAAT,QAAiC,cAAjC;AACA,OAAOC,QAAP,MAAqB,qBAArB;AACA,SAASC,iBAAT,QAAkC,aAAlC;AACA,SAASC,mBAAT,QAAoC,cAApC;AACA,OAAOC,YAAP,MAAyB,yBAAzB;AACA,SAASC,UAAT,QAA2B,yBAA3B;AACA,SAASC,WAAT,QAA4B,qBAA5B;;AACA,SAASC,SAAT,CAAmBC,EAAnB,EAAuBC,OAAvB,EAAgCC,GAAhC,EAAqC;AACjC,MAAIC,MAAM,GAAGL,WAAW,CAACM,YAAZ,EAAb;AACA,MAAIC,KAAK,GAAGJ,OAAO,CAACK,QAAR,EAAZ;AACA,MAAIC,MAAM,GAAGN,OAAO,CAACO,SAAR,EAAb;AACA,MAAIC,WAAW,GAAGN,MAAM,CAACO,KAAzB;;AACA,MAAID,WAAJ,EAAiB;AACbA,IAAAA,WAAW,CAACE,QAAZ,GAAuB,UAAvB;AACAF,IAAAA,WAAW,CAACG,IAAZ,GAAmB,GAAnB;AACAH,IAAAA,WAAW,CAACI,GAAZ,GAAkB,GAAlB;AACAJ,IAAAA,WAAW,CAACJ,KAAZ,GAAoBA,KAAK,GAAG,IAA5B;AACAI,IAAAA,WAAW,CAACF,MAAZ,GAAqBA,MAAM,GAAG,IAA9B;AACAJ,IAAAA,MAAM,CAACW,YAAP,CAAoB,gBAApB,EAAsCd,EAAtC;AACH;;AACDG,EAAAA,MAAM,CAACE,KAAP,GAAeA,KAAK,GAAGH,GAAvB;AACAC,EAAAA,MAAM,CAACI,MAAP,GAAgBA,MAAM,GAAGL,GAAzB;AACA,SAAOC,MAAP;AACH;;AACD;;AACA,IAAIY,KAAK,GAAI,UAAUC,MAAV,EAAkB;AAC3B1B,EAAAA,SAAS,CAACyB,KAAD,EAAQC,MAAR,CAAT;;AACA,WAASD,KAAT,CAAef,EAAf,EAAmBC,OAAnB,EAA4BC,GAA5B,EAAiC;AAC7B,QAAIe,KAAK,GAAGD,MAAM,CAACE,IAAP,CAAY,IAAZ,KAAqB,IAAjC;;AACAD,IAAAA,KAAK,CAACE,UAAN,GAAmB,KAAnB;AACAF,IAAAA,KAAK,CAACG,cAAN,GAAuB,GAAvB;AACAH,IAAAA,KAAK,CAACf,GAAN,GAAY,CAAZ;AACAe,IAAAA,KAAK,CAACI,OAAN,GAAgB,KAAhB;AACAJ,IAAAA,KAAK,CAACK,MAAN,GAAe,EAAf;AACAL,IAAAA,KAAK,CAACM,WAAN,GAAoB,KAApB;AACAN,IAAAA,KAAK,CAACO,MAAN,GAAe,CAAf;AACAP,IAAAA,KAAK,CAACQ,mBAAN,GAA4B,CAA5B;AACAR,IAAAA,KAAK,CAACS,OAAN,GAAgB,IAAhB;AACAT,IAAAA,KAAK,CAACU,gBAAN,GAAyB,IAAzB;AACAV,IAAAA,KAAK,CAACW,MAAN,GAAe,KAAf;AACAX,IAAAA,KAAK,CAACY,WAAN,GAAoB,CAApB;AACAZ,IAAAA,KAAK,CAACa,YAAN,GAAqB,CAArB;AACAb,IAAAA,KAAK,CAACc,UAAN,GAAmB,CAAnB;AACAd,IAAAA,KAAK,CAACe,gBAAN,GAAyB,IAAzB;AACAf,IAAAA,KAAK,CAACgB,cAAN,GAAuB,IAAvB;AACA,QAAIC,GAAJ;AACAhC,IAAAA,GAAG,GAAGA,GAAG,IAAIV,gBAAb;;AACA,QAAI,OAAOQ,EAAP,KAAc,QAAlB,EAA4B;AACxBkC,MAAAA,GAAG,GAAGnC,SAAS,CAACC,EAAD,EAAKC,OAAL,EAAcC,GAAd,CAAf;AACH,KAFD,MAGK,IAAIX,IAAI,CAAC4C,QAAL,CAAcnC,EAAd,CAAJ,EAAuB;AACxBkC,MAAAA,GAAG,GAAGlC,EAAN;AACAA,MAAAA,EAAE,GAAGkC,GAAG,CAAClC,EAAT;AACH;;AACDiB,IAAAA,KAAK,CAACjB,EAAN,GAAWA,EAAX;AACAiB,IAAAA,KAAK,CAACiB,GAAN,GAAYA,GAAZ;AACA,QAAIE,QAAQ,GAAGF,GAAG,CAACxB,KAAnB;;AACA,QAAI0B,QAAJ,EAAc;AACV7C,MAAAA,IAAI,CAAC8C,iBAAL,CAAuBH,GAAvB;;AACAA,MAAAA,GAAG,CAACI,aAAJ,GAAoB,YAAY;AAAE,eAAO,KAAP;AAAe,OAAjD;;AACAF,MAAAA,QAAQ,CAACG,OAAT,GAAmB,GAAnB;AACAH,MAAAA,QAAQ,CAACI,MAAT,GAAkB,GAAlB;AACAJ,MAAAA,QAAQ,CAACK,WAAT,GAAuB,GAAvB;AACH;;AACDxB,IAAAA,KAAK,CAAChB,OAAN,GAAgBA,OAAhB;AACAgB,IAAAA,KAAK,CAACf,GAAN,GAAYA,GAAZ;AACA,WAAOe,KAAP;AACH;;AACDF,EAAAA,KAAK,CAAC2B,SAAN,CAAgBC,eAAhB,GAAkC,YAAY;AAC1C,WAAO,KAAKZ,UAAL,GAAkB,KAAKD,YAA9B;AACH,GAFD;;AAGAf,EAAAA,KAAK,CAAC2B,SAAN,CAAgBE,UAAhB,GAA6B,YAAY;AACrC,SAAKZ,gBAAL,GAAwB,KAAKF,YAA7B;AACA,SAAKG,cAAL,GAAsB,KAAKF,UAA3B;AACH,GAHD;;AAIAhB,EAAAA,KAAK,CAAC2B,SAAN,CAAgBG,WAAhB,GAA8B,YAAY;AACtC,SAAKC,GAAL,GAAW,KAAKZ,GAAL,CAASa,UAAT,CAAoB,IAApB,CAAX;AACA,SAAKD,GAAL,CAAS5C,GAAT,GAAe,KAAKA,GAApB;AACH,GAHD;;AAIAa,EAAAA,KAAK,CAAC2B,SAAN,CAAgBM,YAAhB,GAA+B,YAAY;AACvC,SAAKrB,gBAAL,GAAwB,IAAxB;AACH,GAFD;;AAGAZ,EAAAA,KAAK,CAAC2B,SAAN,CAAgBO,gBAAhB,GAAmC,YAAY;AAC3C,QAAI/C,GAAG,GAAG,KAAKA,GAAf;AACA,SAAKgD,OAAL,GAAenD,SAAS,CAAC,UAAU,KAAKC,EAAhB,EAAoB,KAAKC,OAAzB,EAAkCC,GAAlC,CAAxB;AACA,SAAKiD,OAAL,GAAe,KAAKD,OAAL,CAAaH,UAAb,CAAwB,IAAxB,CAAf;;AACA,QAAI7C,GAAG,KAAK,CAAZ,EAAe;AACX,WAAKiD,OAAL,CAAaC,KAAb,CAAmBlD,GAAnB,EAAwBA,GAAxB;AACH;AACJ,GAPD;;AAQAa,EAAAA,KAAK,CAAC2B,SAAN,CAAgBW,kBAAhB,GAAqC,UAAUC,WAAV,EAAuBC,QAAvB,EAAiCC,SAAjC,EAA4CC,UAA5C,EAAwD;AACzF,QAAI,KAAK9B,gBAAT,EAA2B;AACvB,WAAKA,gBAAL,GAAwB,KAAxB;AACA,aAAO,IAAP;AACH;;AACD,QAAI+B,kBAAkB,GAAG,EAAzB;AACA,QAAIjC,mBAAmB,GAAG,KAAKA,mBAA/B;AACA,QAAIkC,IAAI,GAAG,KAAX;AACA,QAAIC,WAAW,GAAG,IAAIhE,YAAJ,CAAiB,CAAjB,EAAoB,CAApB,EAAuB,CAAvB,EAA0B,CAA1B,CAAlB;;AACA,aAASiE,kBAAT,CAA4BC,IAA5B,EAAkC;AAC9B,UAAI,CAACA,IAAI,CAACC,QAAL,EAAD,IAAoBD,IAAI,CAACE,MAAL,EAAxB,EAAuC;AACnC;AACH;;AACD,UAAIN,kBAAkB,CAACO,MAAnB,KAA8B,CAAlC,EAAqC;AACjC,YAAIC,YAAY,GAAG,IAAItE,YAAJ,CAAiB,CAAjB,EAAoB,CAApB,EAAuB,CAAvB,EAA0B,CAA1B,CAAnB;AACAsE,QAAAA,YAAY,CAACC,IAAb,CAAkBL,IAAlB;AACAJ,QAAAA,kBAAkB,CAACU,IAAnB,CAAwBF,YAAxB;AACH,OAJD,MAKK;AACD,YAAIG,QAAQ,GAAG,KAAf;AACA,YAAIC,YAAY,GAAGC,QAAnB;AACA,YAAIC,kBAAkB,GAAG,CAAzB;;AACA,aAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGf,kBAAkB,CAACO,MAAvC,EAA+C,EAAEQ,CAAjD,EAAoD;AAChD,cAAIC,UAAU,GAAGhB,kBAAkB,CAACe,CAAD,CAAnC;;AACA,cAAIC,UAAU,CAACC,SAAX,CAAqBb,IAArB,CAAJ,EAAgC;AAC5B,gBAAIc,aAAa,GAAG,IAAIhF,YAAJ,CAAiB,CAAjB,EAAoB,CAApB,EAAuB,CAAvB,EAA0B,CAA1B,CAApB;AACAgF,YAAAA,aAAa,CAACT,IAAd,CAAmBO,UAAnB;AACAE,YAAAA,aAAa,CAACC,KAAd,CAAoBf,IAApB;AACAJ,YAAAA,kBAAkB,CAACe,CAAD,CAAlB,GAAwBG,aAAxB;AACAP,YAAAA,QAAQ,GAAG,IAAX;AACA;AACH,WAPD,MAQK,IAAIV,IAAJ,EAAU;AACXC,YAAAA,WAAW,CAACO,IAAZ,CAAiBL,IAAjB;AACAF,YAAAA,WAAW,CAACiB,KAAZ,CAAkBH,UAAlB;AACA,gBAAII,KAAK,GAAGhB,IAAI,CAACzD,KAAL,GAAayD,IAAI,CAACvD,MAA9B;AACA,gBAAIwE,KAAK,GAAGL,UAAU,CAACrE,KAAX,GAAmBqE,UAAU,CAACnE,MAA1C;AACA,gBAAIyE,WAAW,GAAGpB,WAAW,CAACvD,KAAZ,GAAoBuD,WAAW,CAACrD,MAAlD;AACA,gBAAI0E,SAAS,GAAGD,WAAW,GAAGF,KAAd,GAAsBC,KAAtC;;AACA,gBAAIE,SAAS,GAAGX,YAAhB,EAA8B;AAC1BA,cAAAA,YAAY,GAAGW,SAAf;AACAT,cAAAA,kBAAkB,GAAGC,CAArB;AACH;AACJ;AACJ;;AACD,YAAId,IAAJ,EAAU;AACND,UAAAA,kBAAkB,CAACc,kBAAD,CAAlB,CAAuCK,KAAvC,CAA6Cf,IAA7C;AACAO,UAAAA,QAAQ,GAAG,IAAX;AACH;;AACD,YAAI,CAACA,QAAL,EAAe;AACX,cAAIH,YAAY,GAAG,IAAItE,YAAJ,CAAiB,CAAjB,EAAoB,CAApB,EAAuB,CAAvB,EAA0B,CAA1B,CAAnB;AACAsE,UAAAA,YAAY,CAACC,IAAb,CAAkBL,IAAlB;AACAJ,UAAAA,kBAAkB,CAACU,IAAnB,CAAwBF,YAAxB;AACH;;AACD,YAAI,CAACP,IAAL,EAAW;AACPA,UAAAA,IAAI,GAAGD,kBAAkB,CAACO,MAAnB,IAA6BxC,mBAApC;AACH;AACJ;AACJ;;AACD,SAAK,IAAIgD,CAAC,GAAG,KAAK3C,YAAlB,EAAgC2C,CAAC,GAAG,KAAK1C,UAAzC,EAAqD,EAAE0C,CAAvD,EAA0D;AACtD,UAAIS,EAAE,GAAG5B,WAAW,CAACmB,CAAD,CAApB;;AACA,UAAIS,EAAJ,EAAQ;AACJ,YAAIC,WAAW,GAAGD,EAAE,CAACE,eAAH,CAAmB5B,SAAnB,EAA8BC,UAA9B,EAA0C,IAA1C,EAAgD,IAAhD,CAAlB;AACA,YAAI4B,QAAQ,GAAGH,EAAE,CAACI,YAAH,KAAqBJ,EAAE,CAACxD,OAAH,GAAa7B,UAAd,IAA6B,CAACsF,WAAlD,IACTD,EAAE,CAACK,gBAAH,EADS,GAET,IAFN;;AAGA,YAAIF,QAAJ,EAAc;AACVxB,UAAAA,kBAAkB,CAACwB,QAAD,CAAlB;AACH;;AACD,YAAIG,OAAO,GAAGL,WAAW,KAAMD,EAAE,CAACxD,OAAH,GAAa7B,UAAd,IAA6B,CAACqF,EAAE,CAACI,YAAtC,CAAX,GACRJ,EAAE,CAACO,YAAH,EADQ,GAER,IAFN;;AAGA,YAAID,OAAJ,EAAa;AACT3B,UAAAA,kBAAkB,CAAC2B,OAAD,CAAlB;AACH;AACJ;AACJ;;AACD,SAAK,IAAIf,CAAC,GAAG,KAAKzC,gBAAlB,EAAoCyC,CAAC,GAAG,KAAKxC,cAA7C,EAA6D,EAAEwC,CAA/D,EAAkE;AAC9D,UAAIS,EAAE,GAAG3B,QAAQ,CAACkB,CAAD,CAAjB;AACA,UAAIU,WAAW,GAAGD,EAAE,CAACE,eAAH,CAAmB5B,SAAnB,EAA8BC,UAA9B,EAA0C,IAA1C,EAAgD,IAAhD,CAAlB;;AACA,UAAIyB,EAAE,KAAK,CAACC,WAAD,IAAgB,CAACD,EAAE,CAACQ,IAAzB,CAAF,IAAoCR,EAAE,CAACI,YAA3C,EAAyD;AACrD,YAAID,QAAQ,GAAGH,EAAE,CAACK,gBAAH,EAAf;;AACA,YAAIF,QAAJ,EAAc;AACVxB,UAAAA,kBAAkB,CAACwB,QAAD,CAAlB;AACH;AACJ;AACJ;;AACD,QAAIM,gBAAJ;;AACA,OAAG;AACCA,MAAAA,gBAAgB,GAAG,KAAnB;;AACA,WAAK,IAAIlB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGf,kBAAkB,CAACO,MAAvC,GAAgD;AAC5C,YAAIP,kBAAkB,CAACe,CAAD,CAAlB,CAAsBT,MAAtB,EAAJ,EAAoC;AAChCN,UAAAA,kBAAkB,CAACkC,MAAnB,CAA0BnB,CAA1B,EAA6B,CAA7B;AACA;AACH;;AACD,aAAK,IAAIoB,CAAC,GAAGpB,CAAC,GAAG,CAAjB,EAAoBoB,CAAC,GAAGnC,kBAAkB,CAACO,MAA3C,GAAoD;AAChD,cAAIP,kBAAkB,CAACe,CAAD,CAAlB,CAAsBE,SAAtB,CAAgCjB,kBAAkB,CAACmC,CAAD,CAAlD,CAAJ,EAA4D;AACxDF,YAAAA,gBAAgB,GAAG,IAAnB;AACAjC,YAAAA,kBAAkB,CAACe,CAAD,CAAlB,CAAsBI,KAAtB,CAA4BnB,kBAAkB,CAACmC,CAAD,CAA9C;AACAnC,YAAAA,kBAAkB,CAACkC,MAAnB,CAA0BC,CAA1B,EAA6B,CAA7B;AACH,WAJD,MAKK;AACDA,YAAAA,CAAC;AACJ;AACJ;;AACDpB,QAAAA,CAAC;AACJ;AACJ,KAnBD,QAmBSkB,gBAnBT;;AAoBA,SAAKG,WAAL,GAAmBpC,kBAAnB;AACA,WAAOA,kBAAP;AACH,GA9GD;;AA+GA3C,EAAAA,KAAK,CAAC2B,SAAN,CAAgBqD,kBAAhB,GAAqC,YAAY;AAC7C,WAAO,CAAC,KAAKD,WAAL,IAAoB,EAArB,EAAyBE,KAAzB,EAAP;AACH,GAFD;;AAGAjF,EAAAA,KAAK,CAAC2B,SAAN,CAAgBuD,MAAhB,GAAyB,UAAU5F,KAAV,EAAiBE,MAAjB,EAAyB;AAC9C,QAAIL,GAAG,GAAG,KAAKA,GAAf;AACA,QAAIgC,GAAG,GAAG,KAAKA,GAAf;AACA,QAAIE,QAAQ,GAAGF,GAAG,CAACxB,KAAnB;AACA,QAAIwC,OAAO,GAAG,KAAKA,OAAnB;;AACA,QAAId,QAAJ,EAAc;AACVA,MAAAA,QAAQ,CAAC/B,KAAT,GAAiBA,KAAK,GAAG,IAAzB;AACA+B,MAAAA,QAAQ,CAAC7B,MAAT,GAAkBA,MAAM,GAAG,IAA3B;AACH;;AACD2B,IAAAA,GAAG,CAAC7B,KAAJ,GAAYA,KAAK,GAAGH,GAApB;AACAgC,IAAAA,GAAG,CAAC3B,MAAJ,GAAaA,MAAM,GAAGL,GAAtB;;AACA,QAAIgD,OAAJ,EAAa;AACTA,MAAAA,OAAO,CAAC7C,KAAR,GAAgBA,KAAK,GAAGH,GAAxB;AACAgD,MAAAA,OAAO,CAAC3C,MAAR,GAAiBA,MAAM,GAAGL,GAA1B;;AACA,UAAIA,GAAG,KAAK,CAAZ,EAAe;AACX,aAAKiD,OAAL,CAAaC,KAAb,CAAmBlD,GAAnB,EAAwBA,GAAxB;AACH;AACJ;AACJ,GAlBD;;AAmBAa,EAAAA,KAAK,CAAC2B,SAAN,CAAgBwD,KAAhB,GAAwB,UAAUC,QAAV,EAAoBC,UAApB,EAAgCC,YAAhC,EAA8C;AAClE,QAAInE,GAAG,GAAG,KAAKA,GAAf;AACA,QAAIY,GAAG,GAAG,KAAKA,GAAf;AACA,QAAIzC,KAAK,GAAG6B,GAAG,CAAC7B,KAAhB;AACA,QAAIE,MAAM,GAAG2B,GAAG,CAAC3B,MAAjB;AACA6F,IAAAA,UAAU,GAAGA,UAAU,IAAI,KAAKA,UAAhC;AACA,QAAIE,cAAc,GAAG,KAAKnF,UAAL,IAAmB,CAACgF,QAAzC;AACA,QAAI/E,cAAc,GAAG,KAAKA,cAA1B;AACA,QAAIlB,GAAG,GAAG,KAAKA,GAAf;AACA,QAAIqG,IAAI,GAAG,IAAX;;AACA,QAAID,cAAJ,EAAoB;AAChB,UAAI,CAAC,KAAKpD,OAAV,EAAmB;AACf,aAAKD,gBAAL;AACH;;AACD,WAAKE,OAAL,CAAaqD,wBAAb,GAAwC,MAAxC;AACA,WAAKrD,OAAL,CAAasD,SAAb,CAAuBvE,GAAvB,EAA4B,CAA5B,EAA+B,CAA/B,EAAkC7B,KAAK,GAAGH,GAA1C,EAA+CK,MAAM,GAAGL,GAAxD;AACH;;AACD,QAAIgD,OAAO,GAAG,KAAKA,OAAnB;;AACA,aAASwD,OAAT,CAAiBC,CAAjB,EAAoBC,CAApB,EAAuBvG,KAAvB,EAA8BE,MAA9B,EAAsC;AAClCuC,MAAAA,GAAG,CAAC+D,SAAJ,CAAcF,CAAd,EAAiBC,CAAjB,EAAoBvG,KAApB,EAA2BE,MAA3B;;AACA,UAAI6F,UAAU,IAAIA,UAAU,KAAK,aAAjC,EAAgD;AAC5C,YAAIU,2BAA2B,GAAG,KAAK,CAAvC;;AACA,YAAIvH,IAAI,CAACwH,gBAAL,CAAsBX,UAAtB,CAAJ,EAAuC;AACnC,cAAIY,WAAW,GAAGZ,UAAU,CAACa,MAAX,IAAsBb,UAAU,CAACc,OAAX,KAAuB7G,KAAvB,IACjC+F,UAAU,CAACe,QAAX,KAAwB5G,MAD/B;AAEAuG,UAAAA,2BAA2B,GAAGE,WAAW,IAClCZ,UAAU,CAACgB,gBADY,IAEvB1H,iBAAiB,CAACoD,GAAD,EAAMsD,UAAN,EAAkB;AAClCO,YAAAA,CAAC,EAAE,CAD+B;AAElCC,YAAAA,CAAC,EAAE,CAF+B;AAGlCvG,YAAAA,KAAK,EAAEA,KAH2B;AAIlCE,YAAAA,MAAM,EAAEA;AAJ0B,WAAlB,CAFxB;AAQA6F,UAAAA,UAAU,CAACgB,gBAAX,GAA8BN,2BAA9B;AACAV,UAAAA,UAAU,CAACc,OAAX,GAAqB7G,KAArB;AACA+F,UAAAA,UAAU,CAACe,QAAX,GAAsB5G,MAAtB;AACH,SAdD,MAeK,IAAIhB,IAAI,CAAC8H,oBAAL,CAA0BjB,UAA1B,CAAJ,EAA2C;AAC5CA,UAAAA,UAAU,CAACkB,MAAX,GAAoBlB,UAAU,CAACkB,MAAX,IAAqBpH,GAAzC;AACAkG,UAAAA,UAAU,CAACmB,MAAX,GAAoBnB,UAAU,CAACmB,MAAX,IAAqBrH,GAAzC;AACA4G,UAAAA,2BAA2B,GAAGnH,mBAAmB,CAACmD,GAAD,EAAMsD,UAAN,EAAkB;AAC/DoB,YAAAA,KAAK,EAAE,iBAAY;AACfjB,cAAAA,IAAI,CAACvD,YAAL;;AACAuD,cAAAA,IAAI,CAACkB,SAAL,CAAeC,OAAf;AACH;AAJ8D,WAAlB,CAAjD;AAMH;;AACD5E,QAAAA,GAAG,CAAC6E,IAAJ;AACA7E,QAAAA,GAAG,CAAC8E,SAAJ,GAAgBd,2BAA2B,IAAIV,UAA/C;AACAtD,QAAAA,GAAG,CAAC+E,QAAJ,CAAalB,CAAb,EAAgBC,CAAhB,EAAmBvG,KAAnB,EAA0BE,MAA1B;AACAuC,QAAAA,GAAG,CAACgF,OAAJ;AACH;;AACD,UAAIxB,cAAJ,EAAoB;AAChBxD,QAAAA,GAAG,CAAC6E,IAAJ;AACA7E,QAAAA,GAAG,CAACiF,WAAJ,GAAkB3G,cAAlB;AACA0B,QAAAA,GAAG,CAAC2D,SAAJ,CAAcvD,OAAd,EAAuByD,CAAvB,EAA0BC,CAA1B,EAA6BvG,KAA7B,EAAoCE,MAApC;AACAuC,QAAAA,GAAG,CAACgF,OAAJ;AACH;AACJ;;AACD;;AACA,QAAI,CAACzB,YAAD,IAAiBC,cAArB,EAAqC;AACjCI,MAAAA,OAAO,CAAC,CAAD,EAAI,CAAJ,EAAOrG,KAAP,EAAcE,MAAd,CAAP;AACH,KAFD,MAGK,IAAI8F,YAAY,CAACpC,MAAjB,EAAyB;AAC1B1E,MAAAA,IAAI,CAACyI,IAAL,CAAU3B,YAAV,EAAwB,UAAUvC,IAAV,EAAgB;AACpC4C,QAAAA,OAAO,CAAC5C,IAAI,CAAC6C,CAAL,GAASzG,GAAV,EAAe4D,IAAI,CAAC8C,CAAL,GAAS1G,GAAxB,EAA6B4D,IAAI,CAACzD,KAAL,GAAaH,GAA1C,EAA+C4D,IAAI,CAACvD,MAAL,GAAcL,GAA7D,CAAP;AACH,OAFD;AAGH;AACJ,GApED;;AAqEA,SAAOa,KAAP;AACH,CA5QY,CA4QXtB,QA5QW,CAAb;;AA6QA,eAAesB,KAAf","sourcesContent":["import { __extends } from \"tslib\";\nimport * as util from '../core/util.js';\nimport { devicePixelRatio } from '../config.js';\nimport Eventful from '../core/Eventful.js';\nimport { getCanvasGradient } from './helper.js';\nimport { createCanvasPattern } from './graphic.js';\nimport BoundingRect from '../core/BoundingRect.js';\nimport { REDRAW_BIT } from '../graphic/constants.js';\nimport { platformApi } from '../core/platform.js';\nfunction createDom(id, painter, dpr) {\n var newDom = platformApi.createCanvas();\n var width = painter.getWidth();\n var height = painter.getHeight();\n var newDomStyle = newDom.style;\n if (newDomStyle) {\n newDomStyle.position = 'absolute';\n newDomStyle.left = '0';\n newDomStyle.top = '0';\n newDomStyle.width = width + 'px';\n newDomStyle.height = height + 'px';\n newDom.setAttribute('data-zr-dom-id', id);\n }\n newDom.width = width * dpr;\n newDom.height = height * dpr;\n return newDom;\n}\n;\nvar Layer = (function (_super) {\n __extends(Layer, _super);\n function Layer(id, painter, dpr) {\n var _this = _super.call(this) || this;\n _this.motionBlur = false;\n _this.lastFrameAlpha = 0.7;\n _this.dpr = 1;\n _this.virtual = false;\n _this.config = {};\n _this.incremental = false;\n _this.zlevel = 0;\n _this.maxRepaintRectCount = 5;\n _this.__dirty = true;\n _this.__firstTimePaint = true;\n _this.__used = false;\n _this.__drawIndex = 0;\n _this.__startIndex = 0;\n _this.__endIndex = 0;\n _this.__prevStartIndex = null;\n _this.__prevEndIndex = null;\n var dom;\n dpr = dpr || devicePixelRatio;\n if (typeof id === 'string') {\n dom = createDom(id, painter, dpr);\n }\n else if (util.isObject(id)) {\n dom = id;\n id = dom.id;\n }\n _this.id = id;\n _this.dom = dom;\n var domStyle = dom.style;\n if (domStyle) {\n util.disableUserSelect(dom);\n dom.onselectstart = function () { return false; };\n domStyle.padding = '0';\n domStyle.margin = '0';\n domStyle.borderWidth = '0';\n }\n _this.painter = painter;\n _this.dpr = dpr;\n return _this;\n }\n Layer.prototype.getElementCount = function () {\n return this.__endIndex - this.__startIndex;\n };\n Layer.prototype.afterBrush = function () {\n this.__prevStartIndex = this.__startIndex;\n this.__prevEndIndex = this.__endIndex;\n };\n Layer.prototype.initContext = function () {\n this.ctx = this.dom.getContext('2d');\n this.ctx.dpr = this.dpr;\n };\n Layer.prototype.setUnpainted = function () {\n this.__firstTimePaint = true;\n };\n Layer.prototype.createBackBuffer = function () {\n var dpr = this.dpr;\n this.domBack = createDom('back-' + this.id, this.painter, dpr);\n this.ctxBack = this.domBack.getContext('2d');\n if (dpr !== 1) {\n this.ctxBack.scale(dpr, dpr);\n }\n };\n Layer.prototype.createRepaintRects = function (displayList, prevList, viewWidth, viewHeight) {\n if (this.__firstTimePaint) {\n this.__firstTimePaint = false;\n return null;\n }\n var mergedRepaintRects = [];\n var maxRepaintRectCount = this.maxRepaintRectCount;\n var full = false;\n var pendingRect = new BoundingRect(0, 0, 0, 0);\n function addRectToMergePool(rect) {\n if (!rect.isFinite() || rect.isZero()) {\n return;\n }\n if (mergedRepaintRects.length === 0) {\n var boundingRect = new BoundingRect(0, 0, 0, 0);\n boundingRect.copy(rect);\n mergedRepaintRects.push(boundingRect);\n }\n else {\n var isMerged = false;\n var minDeltaArea = Infinity;\n var bestRectToMergeIdx = 0;\n for (var i = 0; i < mergedRepaintRects.length; ++i) {\n var mergedRect = mergedRepaintRects[i];\n if (mergedRect.intersect(rect)) {\n var pendingRect_1 = new BoundingRect(0, 0, 0, 0);\n pendingRect_1.copy(mergedRect);\n pendingRect_1.union(rect);\n mergedRepaintRects[i] = pendingRect_1;\n isMerged = true;\n break;\n }\n else if (full) {\n pendingRect.copy(rect);\n pendingRect.union(mergedRect);\n var aArea = rect.width * rect.height;\n var bArea = mergedRect.width * mergedRect.height;\n var pendingArea = pendingRect.width * pendingRect.height;\n var deltaArea = pendingArea - aArea - bArea;\n if (deltaArea < minDeltaArea) {\n minDeltaArea = deltaArea;\n bestRectToMergeIdx = i;\n }\n }\n }\n if (full) {\n mergedRepaintRects[bestRectToMergeIdx].union(rect);\n isMerged = true;\n }\n if (!isMerged) {\n var boundingRect = new BoundingRect(0, 0, 0, 0);\n boundingRect.copy(rect);\n mergedRepaintRects.push(boundingRect);\n }\n if (!full) {\n full = mergedRepaintRects.length >= maxRepaintRectCount;\n }\n }\n }\n for (var i = this.__startIndex; i < this.__endIndex; ++i) {\n var el = displayList[i];\n if (el) {\n var shouldPaint = el.shouldBePainted(viewWidth, viewHeight, true, true);\n var prevRect = el.__isRendered && ((el.__dirty & REDRAW_BIT) || !shouldPaint)\n ? el.getPrevPaintRect()\n : null;\n if (prevRect) {\n addRectToMergePool(prevRect);\n }\n var curRect = shouldPaint && ((el.__dirty & REDRAW_BIT) || !el.__isRendered)\n ? el.getPaintRect()\n : null;\n if (curRect) {\n addRectToMergePool(curRect);\n }\n }\n }\n for (var i = this.__prevStartIndex; i < this.__prevEndIndex; ++i) {\n var el = prevList[i];\n var shouldPaint = el.shouldBePainted(viewWidth, viewHeight, true, true);\n if (el && (!shouldPaint || !el.__zr) && el.__isRendered) {\n var prevRect = el.getPrevPaintRect();\n if (prevRect) {\n addRectToMergePool(prevRect);\n }\n }\n }\n var hasIntersections;\n do {\n hasIntersections = false;\n for (var i = 0; i < mergedRepaintRects.length;) {\n if (mergedRepaintRects[i].isZero()) {\n mergedRepaintRects.splice(i, 1);\n continue;\n }\n for (var j = i + 1; j < mergedRepaintRects.length;) {\n if (mergedRepaintRects[i].intersect(mergedRepaintRects[j])) {\n hasIntersections = true;\n mergedRepaintRects[i].union(mergedRepaintRects[j]);\n mergedRepaintRects.splice(j, 1);\n }\n else {\n j++;\n }\n }\n i++;\n }\n } while (hasIntersections);\n this._paintRects = mergedRepaintRects;\n return mergedRepaintRects;\n };\n Layer.prototype.debugGetPaintRects = function () {\n return (this._paintRects || []).slice();\n };\n Layer.prototype.resize = function (width, height) {\n var dpr = this.dpr;\n var dom = this.dom;\n var domStyle = dom.style;\n var domBack = this.domBack;\n if (domStyle) {\n domStyle.width = width + 'px';\n domStyle.height = height + 'px';\n }\n dom.width = width * dpr;\n dom.height = height * dpr;\n if (domBack) {\n domBack.width = width * dpr;\n domBack.height = height * dpr;\n if (dpr !== 1) {\n this.ctxBack.scale(dpr, dpr);\n }\n }\n };\n Layer.prototype.clear = function (clearAll, clearColor, repaintRects) {\n var dom = this.dom;\n var ctx = this.ctx;\n var width = dom.width;\n var height = dom.height;\n clearColor = clearColor || this.clearColor;\n var haveMotionBLur = this.motionBlur && !clearAll;\n var lastFrameAlpha = this.lastFrameAlpha;\n var dpr = this.dpr;\n var self = this;\n if (haveMotionBLur) {\n if (!this.domBack) {\n this.createBackBuffer();\n }\n this.ctxBack.globalCompositeOperation = 'copy';\n this.ctxBack.drawImage(dom, 0, 0, width / dpr, height / dpr);\n }\n var domBack = this.domBack;\n function doClear(x, y, width, height) {\n ctx.clearRect(x, y, width, height);\n if (clearColor && clearColor !== 'transparent') {\n var clearColorGradientOrPattern = void 0;\n if (util.isGradientObject(clearColor)) {\n var shouldCache = clearColor.global || (clearColor.__width === width\n && clearColor.__height === height);\n clearColorGradientOrPattern = shouldCache\n && clearColor.__canvasGradient\n || getCanvasGradient(ctx, clearColor, {\n x: 0,\n y: 0,\n width: width,\n height: height\n });\n clearColor.__canvasGradient = clearColorGradientOrPattern;\n clearColor.__width = width;\n clearColor.__height = height;\n }\n else if (util.isImagePatternObject(clearColor)) {\n clearColor.scaleX = clearColor.scaleX || dpr;\n clearColor.scaleY = clearColor.scaleY || dpr;\n clearColorGradientOrPattern = createCanvasPattern(ctx, clearColor, {\n dirty: function () {\n self.setUnpainted();\n self.__painter.refresh();\n }\n });\n }\n ctx.save();\n ctx.fillStyle = clearColorGradientOrPattern || clearColor;\n ctx.fillRect(x, y, width, height);\n ctx.restore();\n }\n if (haveMotionBLur) {\n ctx.save();\n ctx.globalAlpha = lastFrameAlpha;\n ctx.drawImage(domBack, x, y, width, height);\n ctx.restore();\n }\n }\n ;\n if (!repaintRects || haveMotionBLur) {\n doClear(0, 0, width, height);\n }\n else if (repaintRects.length) {\n util.each(repaintRects, function (rect) {\n doClear(rect.x * dpr, rect.y * dpr, rect.width * dpr, rect.height * dpr);\n });\n }\n };\n return Layer;\n}(Eventful));\nexport default Layer;\n"]},"metadata":{},"sourceType":"module"} |