{"version":3,"sources":["jsdelivr-header.js","/npm/ms-zrender@4.0.0/lib/zrender.js"],"names":[],"mappings":"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","file":"/npm/ms-zrender@4.0.0/lib/zrender.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/ms-zrender@4.0.0/lib/zrender.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","/*!\n * ZRender, a high performance 2d drawing library.\n *\n * Copyright (c) 2013, Baidu Inc.\n * All rights reserved.\n *\n * LICENSE\n * https://github.com/ecomfe/zrender/blob/master/LICENSE.txt\n */\n// Global defines\n\n    var guid = require('./core/guid');\n    var env = require('./core/env');\n\n    var Handler = require('./Handler');\n    var Storage = require('./Storage');\n    var Animation = require('./animation/Animation');\n    var HandlerProxy = require('./dom/HandlerProxy');\n\n    var useVML = !env.canvasSupported;\n\n    var painterCtors = {\n        canvas: require('./Painter')\n    };\n\n    var instances = {};    // ZRender实例map索引\n\n    var zrender = {};\n    /**\n     * @type {string}\n     */\n    zrender.version = '3.1.2';\n\n    /**\n     * Initializing a zrender instance\n     * @param {HTMLElement} dom\n     * @param {Object} opts\n     * @param {string} [opts.renderer='canvas'] 'canvas' or 'svg'\n     * @param {number} [opts.devicePixelRatio]\n     * @return {module:zrender/ZRender}\n     */\n    zrender.init = function(dom, opts) {\n        var zr = new ZRender(guid(), dom, opts);\n        instances[zr.id] = zr;\n        return zr;\n    };\n\n    /**\n     * Dispose zrender instance\n     * @param {module:zrender/ZRender} zr\n     */\n    zrender.dispose = function (zr) {\n        if (zr) {\n            zr.dispose();\n        }\n        else {\n            for (var key in instances) {\n                instances[key].dispose();\n            }\n            instances = {};\n        }\n\n        return zrender;\n    };\n\n    /**\n     * Get zrender instance by id\n     * @param {string} id zrender instance id\n     * @return {module:zrender/ZRender}\n     */\n    zrender.getInstance = function (id) {\n        return instances[id];\n    };\n\n    zrender.registerPainter = function (name, Ctor) {\n        painterCtors[name] = Ctor;\n    };\n\n    function delInstance(id) {\n        delete instances[id];\n    }\n\n    /**\n     * @module zrender/ZRender\n     */\n    /**\n     * @constructor\n     * @alias module:zrender/ZRender\n     * @param {string} id\n     * @param {HTMLDomElement} dom\n     * @param {Object} opts\n     * @param {string} [opts.renderer='canvas'] 'canvas' or 'svg'\n     * @param {number} [opts.devicePixelRatio]\n     */\n    var ZRender = function(id, dom, opts) {\n\n        opts = opts || {};\n\n        /**\n         * @type {HTMLDomElement}\n         */\n        this.dom = dom;\n\n        /**\n         * @type {string}\n         */\n        this.id = id;\n\n        var self = this;\n        var storage = new Storage();\n\n        var rendererType = opts.renderer;\n        if (useVML) {\n            if (!painterCtors.vml) {\n                throw new Error('You need to require \\'zrender/vml/vml\\' to support IE8');\n            }\n            rendererType = 'vml';\n        }\n        else if (!rendererType || !painterCtors[rendererType]) {\n            rendererType = 'canvas';\n        }\n        var painter = new painterCtors[rendererType](dom, storage, opts);\n\n        this.storage = storage;\n        this.painter = painter;\n\n        var handerProxy = !env.node ? new HandlerProxy(painter.getViewportRoot()) : null;\n        this.handler = new Handler(storage, painter, handerProxy);\n\n        /**\n         * @type {module:zrender/animation/Animation}\n         */\n        this.animation = new Animation({\n            stage: {\n                update: function () {\n                    if (self._needsRefresh) {\n                        self.refreshImmediately();\n                    }\n                    if (self._needsRefreshHover) {\n                        self.refreshHoverImmediately();\n                    }\n                }\n            }\n        });\n        this.animation.start();\n\n        /**\n         * @type {boolean}\n         * @private\n         */\n        this._needsRefresh;\n\n        // 修改 storage.delFromMap, 每次删除元素之前删除动画\n        // FIXME 有点ugly\n        var oldDelFromMap = storage.delFromMap;\n        var oldAddToMap = storage.addToMap;\n\n        storage.delFromMap = function (elId) {\n            var el = storage.get(elId);\n\n            oldDelFromMap.call(storage, elId);\n\n            el && el.removeSelfFromZr(self);\n        };\n\n        storage.addToMap = function (el) {\n            oldAddToMap.call(storage, el);\n\n            el.addSelfToZr(self);\n        };\n    };\n\n    ZRender.prototype = {\n\n        constructor: ZRender,\n        /**\n         * 获取实例唯一标识\n         * @return {string}\n         */\n        getId: function () {\n            return this.id;\n        },\n\n        /**\n         * 添加元素\n         * @param  {module:zrender/Element} el\n         */\n        add: function (el) {\n            this.storage.addRoot(el);\n            this._needsRefresh = true;\n        },\n\n        /**\n         * 删除元素\n         * @param  {module:zrender/Element} el\n         */\n        remove: function (el) {\n            this.storage.delRoot(el);\n            this._needsRefresh = true;\n        },\n\n        /**\n         * Change configuration of layer\n         * @param {string} zLevel\n         * @param {Object} config\n         * @param {string} [config.clearColor=0] Clear color\n         * @param {string} [config.motionBlur=false] If enable motion blur\n         * @param {number} [config.lastFrameAlpha=0.7] Motion blur factor. Larger value cause longer trailer\n        */\n        configLayer: function (zLevel, config) {\n            this.painter.configLayer(zLevel, config);\n            this._needsRefresh = true;\n        },\n\n        /**\n         * Repaint the canvas immediately\n         */\n        refreshImmediately: function () {\n            // Clear needsRefresh ahead to avoid something wrong happens in refresh\n            // Or it will cause zrender refreshes again and again.\n            this._needsRefresh = false;\n            this.painter.refresh();\n            /**\n             * Avoid trigger zr.refresh in Element#beforeUpdate hook\n             */\n            this._needsRefresh = false;\n        },\n\n        /**\n         * Mark and repaint the canvas in the next frame of browser\n         */\n        refresh: function() {\n            this._needsRefresh = true;\n        },\n\n        /**\n         * Add element to hover layer\n         * @param  {module:zrender/Element} el\n         * @param {Object} style\n         */\n        addHover: function (el, style) {\n            if (this.painter.addHover) {\n                this.painter.addHover(el, style);\n                this.refreshHover();\n            }\n        },\n\n        /**\n         * Add element from hover layer\n         * @param  {module:zrender/Element} el\n         */\n        removeHover: function (el) {\n            if (this.painter.removeHover) {\n                this.painter.removeHover(el);\n                this.refreshHover();\n            }\n        },\n\n        /**\n         * Clear all hover elements in hover layer\n         * @param  {module:zrender/Element} el\n         */\n        clearHover: function () {\n            if (this.painter.clearHover) {\n                this.painter.clearHover();\n                this.refreshHover();\n            }\n        },\n\n        /**\n         * Refresh hover in next frame\n         */\n        refreshHover: function () {\n            this._needsRefreshHover = true;\n        },\n\n        /**\n         * Refresh hover immediately\n         */\n        refreshHoverImmediately: function () {\n            this._needsRefreshHover = false;\n            this.painter.refreshHover && this.painter.refreshHover();\n        },\n\n        /**\n         * Resize the canvas.\n         * Should be invoked when container size is changed\n         */\n        resize: function() {\n            this.painter.resize();\n            this.handler.resize();\n        },\n\n        /**\n         * Stop and clear all animation immediately\n         */\n        clearAnimation: function () {\n            this.animation.clear();\n        },\n\n        /**\n         * Get container width\n         */\n        getWidth: function() {\n            return this.painter.getWidth();\n        },\n\n        /**\n         * Get container height\n         */\n        getHeight: function() {\n            return this.painter.getHeight();\n        },\n\n        /**\n         * Export the canvas as Base64 URL\n         * @param {string} type\n         * @param {string} [backgroundColor='#fff']\n         * @return {string} Base64 URL\n         */\n        // toDataURL: function(type, backgroundColor) {\n        //     return this.painter.getRenderedCanvas({\n        //         backgroundColor: backgroundColor\n        //     }).toDataURL(type);\n        // },\n\n        /**\n         * Converting a path to image.\n         * It has much better performance of drawing image rather than drawing a vector path.\n         * @param {module:zrender/graphic/Path} e\n         * @param {number} width\n         * @param {number} height\n         */\n        pathToImage: function(e, width, height) {\n            var id = guid();\n            return this.painter.pathToImage(id, e, width, height);\n        },\n\n        /**\n         * Set default cursor\n         * @param {string} [cursorStyle='default'] 例如 crosshair\n         */\n        setCursorStyle: function (cursorStyle) {\n            this.handler.setCursorStyle(cursorStyle);\n        },\n\n        /**\n         * Bind event\n         *\n         * @param {string} eventName Event name\n         * @param {Function} eventHandler Handler function\n         * @param {Object} [context] Context object\n         */\n        on: function(eventName, eventHandler, context) {\n            this.handler.on(eventName, eventHandler, context);\n        },\n\n        /**\n         * Unbind event\n         * @param {string} eventName Event name\n         * @param {Function} [eventHandler] Handler function\n         */\n        off: function(eventName, eventHandler) {\n            this.handler.off(eventName, eventHandler);\n        },\n\n        /**\n         * Trigger event manually\n         *\n         * @param {string} eventName Event name\n         * @param {event=} event Event object\n         */\n        trigger: function (eventName, event) {\n            this.handler.trigger(eventName, event);\n        },\n\n\n        /**\n         * Clear all objects and the canvas.\n         */\n        clear: function () {\n            this.storage.delRoot();\n            this.painter.clear();\n        },\n\n        /**\n         * Dispose self.\n         */\n        dispose: function () {\n            this.animation.stop();\n\n            this.clear();\n            this.storage.dispose();\n            this.painter.dispose();\n            this.handler.dispose();\n\n            this.animation =\n            this.storage =\n            this.painter =\n            this.handler = null;\n\n            delInstance(this.id);\n        }\n    };\n\n    module.exports = zrender;\n\n"]}