1 line
19 KiB
JSON
1 line
19 KiB
JSON
{"ast":null,"code":"import \"core-js/modules/es.array.fill.js\";\nimport \"core-js/modules/es.object.to-string.js\";\nimport \"core-js/modules/es.typed-array.uint8-clamped-array.js\";\nimport \"core-js/modules/es.typed-array.at.js\";\nimport \"core-js/modules/es.typed-array.copy-within.js\";\nimport \"core-js/modules/es.typed-array.every.js\";\nimport \"core-js/modules/es.typed-array.fill.js\";\nimport \"core-js/modules/es.typed-array.filter.js\";\nimport \"core-js/modules/es.typed-array.find.js\";\nimport \"core-js/modules/es.typed-array.find-index.js\";\nimport \"core-js/modules/es.typed-array.for-each.js\";\nimport \"core-js/modules/es.typed-array.includes.js\";\nimport \"core-js/modules/es.typed-array.index-of.js\";\nimport \"core-js/modules/es.typed-array.iterator.js\";\nimport \"core-js/modules/es.typed-array.join.js\";\nimport \"core-js/modules/es.typed-array.last-index-of.js\";\nimport \"core-js/modules/es.typed-array.map.js\";\nimport \"core-js/modules/es.typed-array.reduce.js\";\nimport \"core-js/modules/es.typed-array.reduce-right.js\";\nimport \"core-js/modules/es.typed-array.reverse.js\";\nimport \"core-js/modules/es.typed-array.set.js\";\nimport \"core-js/modules/es.typed-array.slice.js\";\nimport \"core-js/modules/es.typed-array.some.js\";\nimport \"core-js/modules/es.typed-array.sort.js\";\nimport \"core-js/modules/es.typed-array.subarray.js\";\nimport \"core-js/modules/es.typed-array.to-locale-string.js\";\nimport \"core-js/modules/es.typed-array.to-string.js\";\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/* global Uint8ClampedArray */\nimport { platformApi } from 'zrender/lib/core/platform.js';\nvar GRADIENT_LEVELS = 256;\n\nvar HeatmapLayer =\n/** @class */\nfunction () {\n function HeatmapLayer() {\n this.blurSize = 30;\n this.pointSize = 20;\n this.maxOpacity = 1;\n this.minOpacity = 0;\n this._gradientPixels = {\n inRange: null,\n outOfRange: null\n };\n var canvas = platformApi.createCanvas();\n this.canvas = canvas;\n }\n /**\n * Renders Heatmap and returns the rendered canvas\n * @param data array of data, each has x, y, value\n * @param width canvas width\n * @param height canvas height\n */\n\n\n HeatmapLayer.prototype.update = function (data, width, height, normalize, colorFunc, isInRange) {\n var brush = this._getBrush();\n\n var gradientInRange = this._getGradient(colorFunc, 'inRange');\n\n var gradientOutOfRange = this._getGradient(colorFunc, 'outOfRange');\n\n var r = this.pointSize + this.blurSize;\n var canvas = this.canvas;\n var ctx = canvas.getContext('2d');\n var len = data.length;\n canvas.width = width;\n canvas.height = height;\n\n for (var i = 0; i < len; ++i) {\n var p = data[i];\n var x = p[0];\n var y = p[1];\n var value = p[2]; // calculate alpha using value\n\n var alpha = normalize(value); // draw with the circle brush with alpha\n\n ctx.globalAlpha = alpha;\n ctx.drawImage(brush, x - r, y - r);\n }\n\n if (!canvas.width || !canvas.height) {\n // Avoid \"Uncaught DOMException: Failed to execute 'getImageData' on\n // 'CanvasRenderingContext2D': The source height is 0.\"\n return canvas;\n } // colorize the canvas using alpha value and set with gradient\n\n\n var imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);\n var pixels = imageData.data;\n var offset = 0;\n var pixelLen = pixels.length;\n var minOpacity = this.minOpacity;\n var maxOpacity = this.maxOpacity;\n var diffOpacity = maxOpacity - minOpacity;\n\n while (offset < pixelLen) {\n var alpha = pixels[offset + 3] / 256;\n var gradientOffset = Math.floor(alpha * (GRADIENT_LEVELS - 1)) * 4; // Simple optimize to ignore the empty data\n\n if (alpha > 0) {\n var gradient = isInRange(alpha) ? gradientInRange : gradientOutOfRange; // Any alpha > 0 will be mapped to [minOpacity, maxOpacity]\n\n alpha > 0 && (alpha = alpha * diffOpacity + minOpacity);\n pixels[offset++] = gradient[gradientOffset];\n pixels[offset++] = gradient[gradientOffset + 1];\n pixels[offset++] = gradient[gradientOffset + 2];\n pixels[offset++] = gradient[gradientOffset + 3] * alpha * 256;\n } else {\n offset += 4;\n }\n }\n\n ctx.putImageData(imageData, 0, 0);\n return canvas;\n };\n /**\n * get canvas of a black circle brush used for canvas to draw later\n */\n\n\n HeatmapLayer.prototype._getBrush = function () {\n var brushCanvas = this._brushCanvas || (this._brushCanvas = platformApi.createCanvas()); // set brush size\n\n var r = this.pointSize + this.blurSize;\n var d = r * 2;\n brushCanvas.width = d;\n brushCanvas.height = d;\n var ctx = brushCanvas.getContext('2d');\n ctx.clearRect(0, 0, d, d); // in order to render shadow without the distinct circle,\n // draw the distinct circle in an invisible place,\n // and use shadowOffset to draw shadow in the center of the canvas\n\n ctx.shadowOffsetX = d;\n ctx.shadowBlur = this.blurSize; // draw the shadow in black, and use alpha and shadow blur to generate\n // color in color map\n\n ctx.shadowColor = '#000'; // draw circle in the left to the canvas\n\n ctx.beginPath();\n ctx.arc(-r, r, this.pointSize, 0, Math.PI * 2, true);\n ctx.closePath();\n ctx.fill();\n return brushCanvas;\n };\n /**\n * get gradient color map\n * @private\n */\n\n\n HeatmapLayer.prototype._getGradient = function (colorFunc, state) {\n var gradientPixels = this._gradientPixels;\n var pixelsSingleState = gradientPixels[state] || (gradientPixels[state] = new Uint8ClampedArray(256 * 4));\n var color = [0, 0, 0, 0];\n var off = 0;\n\n for (var i = 0; i < 256; i++) {\n colorFunc[state](i / 255, true, color);\n pixelsSingleState[off++] = color[0];\n pixelsSingleState[off++] = color[1];\n pixelsSingleState[off++] = color[2];\n pixelsSingleState[off++] = color[3];\n }\n\n return pixelsSingleState;\n };\n\n return HeatmapLayer;\n}();\n\nexport default HeatmapLayer;","map":{"version":3,"sources":["D:/Work/WorkSpace/GitWorkSpace/TenShop/resource/ElectronicMall/src/ElectronicMallVue/node_modules/echarts/lib/chart/heatmap/HeatmapLayer.js"],"names":["platformApi","GRADIENT_LEVELS","HeatmapLayer","blurSize","pointSize","maxOpacity","minOpacity","_gradientPixels","inRange","outOfRange","canvas","createCanvas","prototype","update","data","width","height","normalize","colorFunc","isInRange","brush","_getBrush","gradientInRange","_getGradient","gradientOutOfRange","r","ctx","getContext","len","length","i","p","x","y","value","alpha","globalAlpha","drawImage","imageData","getImageData","pixels","offset","pixelLen","diffOpacity","gradientOffset","Math","floor","gradient","putImageData","brushCanvas","_brushCanvas","d","clearRect","shadowOffsetX","shadowBlur","shadowColor","beginPath","arc","PI","closePath","fill","state","gradientPixels","pixelsSingleState","Uint8ClampedArray","color","off"],"mappings":"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","sourcesContent":["\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements. See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership. The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License. You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied. See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n/* global Uint8ClampedArray */\nimport { platformApi } from 'zrender/lib/core/platform.js';\nvar GRADIENT_LEVELS = 256;\n\nvar HeatmapLayer =\n/** @class */\nfunction () {\n function HeatmapLayer() {\n this.blurSize = 30;\n this.pointSize = 20;\n this.maxOpacity = 1;\n this.minOpacity = 0;\n this._gradientPixels = {\n inRange: null,\n outOfRange: null\n };\n var canvas = platformApi.createCanvas();\n this.canvas = canvas;\n }\n /**\n * Renders Heatmap and returns the rendered canvas\n * @param data array of data, each has x, y, value\n * @param width canvas width\n * @param height canvas height\n */\n\n\n HeatmapLayer.prototype.update = function (data, width, height, normalize, colorFunc, isInRange) {\n var brush = this._getBrush();\n\n var gradientInRange = this._getGradient(colorFunc, 'inRange');\n\n var gradientOutOfRange = this._getGradient(colorFunc, 'outOfRange');\n\n var r = this.pointSize + this.blurSize;\n var canvas = this.canvas;\n var ctx = canvas.getContext('2d');\n var len = data.length;\n canvas.width = width;\n canvas.height = height;\n\n for (var i = 0; i < len; ++i) {\n var p = data[i];\n var x = p[0];\n var y = p[1];\n var value = p[2]; // calculate alpha using value\n\n var alpha = normalize(value); // draw with the circle brush with alpha\n\n ctx.globalAlpha = alpha;\n ctx.drawImage(brush, x - r, y - r);\n }\n\n if (!canvas.width || !canvas.height) {\n // Avoid \"Uncaught DOMException: Failed to execute 'getImageData' on\n // 'CanvasRenderingContext2D': The source height is 0.\"\n return canvas;\n } // colorize the canvas using alpha value and set with gradient\n\n\n var imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);\n var pixels = imageData.data;\n var offset = 0;\n var pixelLen = pixels.length;\n var minOpacity = this.minOpacity;\n var maxOpacity = this.maxOpacity;\n var diffOpacity = maxOpacity - minOpacity;\n\n while (offset < pixelLen) {\n var alpha = pixels[offset + 3] / 256;\n var gradientOffset = Math.floor(alpha * (GRADIENT_LEVELS - 1)) * 4; // Simple optimize to ignore the empty data\n\n if (alpha > 0) {\n var gradient = isInRange(alpha) ? gradientInRange : gradientOutOfRange; // Any alpha > 0 will be mapped to [minOpacity, maxOpacity]\n\n alpha > 0 && (alpha = alpha * diffOpacity + minOpacity);\n pixels[offset++] = gradient[gradientOffset];\n pixels[offset++] = gradient[gradientOffset + 1];\n pixels[offset++] = gradient[gradientOffset + 2];\n pixels[offset++] = gradient[gradientOffset + 3] * alpha * 256;\n } else {\n offset += 4;\n }\n }\n\n ctx.putImageData(imageData, 0, 0);\n return canvas;\n };\n /**\n * get canvas of a black circle brush used for canvas to draw later\n */\n\n\n HeatmapLayer.prototype._getBrush = function () {\n var brushCanvas = this._brushCanvas || (this._brushCanvas = platformApi.createCanvas()); // set brush size\n\n var r = this.pointSize + this.blurSize;\n var d = r * 2;\n brushCanvas.width = d;\n brushCanvas.height = d;\n var ctx = brushCanvas.getContext('2d');\n ctx.clearRect(0, 0, d, d); // in order to render shadow without the distinct circle,\n // draw the distinct circle in an invisible place,\n // and use shadowOffset to draw shadow in the center of the canvas\n\n ctx.shadowOffsetX = d;\n ctx.shadowBlur = this.blurSize; // draw the shadow in black, and use alpha and shadow blur to generate\n // color in color map\n\n ctx.shadowColor = '#000'; // draw circle in the left to the canvas\n\n ctx.beginPath();\n ctx.arc(-r, r, this.pointSize, 0, Math.PI * 2, true);\n ctx.closePath();\n ctx.fill();\n return brushCanvas;\n };\n /**\n * get gradient color map\n * @private\n */\n\n\n HeatmapLayer.prototype._getGradient = function (colorFunc, state) {\n var gradientPixels = this._gradientPixels;\n var pixelsSingleState = gradientPixels[state] || (gradientPixels[state] = new Uint8ClampedArray(256 * 4));\n var color = [0, 0, 0, 0];\n var off = 0;\n\n for (var i = 0; i < 256; i++) {\n colorFunc[state](i / 255, true, color);\n pixelsSingleState[off++] = color[0];\n pixelsSingleState[off++] = color[1];\n pixelsSingleState[off++] = color[2];\n pixelsSingleState[off++] = color[3];\n }\n\n return pixelsSingleState;\n };\n\n return HeatmapLayer;\n}();\n\nexport default HeatmapLayer;"]},"metadata":{},"sourceType":"module"} |