NuclearDispersionSystem/ant-design-vue-jeecg/node_modules/@antv/g2-brush/build/g2-brush.js.map
2023-09-14 14:47:11 +08:00

1 line
24 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{"version":3,"file":"g2-brush.js","sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 1c6a07b265900d71928f","webpack:///./index.js","webpack:///./src/brush.js","webpack:///./src/util.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Brush\"] = factory();\n\telse\n\t\troot[\"Brush\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 1c6a07b265900d71928f","/**\n * g2-brush\n * @author sima.zhang1990@gmail.com\n */\nvar Brush = require('./src/brush');\nmodule.exports = Brush;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./index.js\n// module id = 0\n// module chunks = 0","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * g2-brush\n * @author sima.zhang1990@gmail.com\n */\nvar Util = require('./util');\nvar BRUSH_TYPES = ['X', 'Y', 'XY', 'POLYGON'];\n\nvar Brush = function () {\n function Brush(cfg) {\n _classCallCheck(this, Brush);\n\n /**\n * keep the first mousedown point\n * @type {object}\n */\n this.startPoint = null;\n /**\n * keep the brush state\n * @type {Boolean}\n */\n this.brushing = false;\n /**\n * keep the drag state\n * @type {Boolean}\n */\n this.dragging = false;\n /**\n * the brush shape\n * @type {G.Shape}\n */\n this.brushShape = null;\n /**\n * the brush container\n * @type {G.Group}\n */\n this.container = null;\n /**\n * keep polygon path\n * @type {String}\n */\n this.polygonPath = null;\n /**\n * brush style\n * @type {Object}\n */\n this.style = {\n fill: '#C5D4EB',\n opacity: 0.3,\n lineWidth: 1,\n stroke: '#82A6DD'\n };\n /**\n * brush type\n * @type {string}\n */\n this.type = 'XY';\n /**\n * is brushShape can be dragable, default is false\n * @type {Boolean}\n */\n this.dragable = false;\n this.dragoffX = 0;\n this.dragoffY = 0;\n /**\n * is limited in plot, default value is true\n * @type {Boolean}\n */\n this.inPlot = true;\n /**\n * xField\n * @type {string}\n */\n this.xField = null;\n /**\n * yFiels\n * @type {string}\n */\n this.yField = null;\n /**\n * Whether to filter the datadefault is true\n * @type {Boolean}\n */\n this.filter = !cfg.dragable;\n this.onBrushstart = null;\n this.onBrushmove = null;\n this.onBrushend = null;\n this.onDragstart = null;\n this.onDragmove = null;\n this.onDragend = null;\n\n this._init(cfg);\n }\n\n Brush.prototype._init = function _init(cfg) {\n Util.mix(this, cfg);\n this.type = this.type.toUpperCase();\n if (BRUSH_TYPES.indexOf(this.type) === -1) {\n this.type = 'XY';\n }\n var canvas = this.canvas;\n if (canvas) {\n var plotRange = void 0;\n canvas.get('children').map(function (child) {\n if (child.get('type') === 'plotBack') {\n plotRange = child.get('plotRange');\n return false;\n }\n return child;\n });\n this.plot = {\n start: plotRange.bl,\n end: plotRange.tr\n };\n\n this.bindCanvasEvent();\n }\n\n if (this.chart) {\n var chart = this.chart;\n var coord = chart.get('coord');\n this.plot = {\n start: coord.start,\n end: coord.end\n };\n var xScales = chart._getScales('x');\n var yScales = chart._getScales('y');\n this.xScale = this.xField ? xScales[this.xField] : chart.getXScale();\n this.yScale = this.yField ? yScales[this.yField] : chart.getYScales()[0];\n }\n };\n\n Brush.prototype.clearEvents = function clearEvents() {\n this.onMouseDownListener && this.onMouseDownListener.remove();\n this.onMouseMoveListener && this.onMouseMoveListener.remove();\n this.onMouseupListener && this.onMouseupListener.remove();\n };\n\n Brush.prototype.bindCanvasEvent = function bindCanvasEvent() {\n var canvas = this.canvas;\n\n var canvasDOM = canvas.get('canvasDOM');\n this.clearEvents();\n this.onMouseDownListener = Util.addEventListener(canvasDOM, 'mousedown', Util.wrapBehavior(this, '_onCanvasMouseDown'));\n this.onMouseMoveListener = Util.addEventListener(canvasDOM, 'mousemove', Util.wrapBehavior(this, '_onCanvasMouseMove'));\n this.onMouseUpListener = Util.addEventListener(canvasDOM, 'mouseup', Util.wrapBehavior(this, '_onCanvasMouseUp'));\n };\n\n Brush.prototype._onCanvasMouseDown = function _onCanvasMouseDown(ev) {\n var me = this;\n var canvas = me.canvas,\n type = me.type,\n brushShape = me.brushShape;\n\n\n if (!type) {\n return;\n }\n\n var startPoint = { x: ev.offsetX, y: ev.offsetY };\n var isInPlot = me.plot && me.inPlot;\n var canvasDOM = canvas.get('canvasDOM');\n var pixelRatio = canvas.get('pixelRatio');\n\n if (me.selection) {\n me.selection = null;\n }\n\n if (me.dragable && brushShape && !brushShape.get('destroyed')) {\n // allow drag the brushShape\n if (brushShape.isHit(startPoint.x * pixelRatio, startPoint.y * pixelRatio)) {\n canvasDOM.style.cursor = 'move';\n me.selection = brushShape;\n me.dragging = true;\n if (type === 'X') {\n me.dragoffX = startPoint.x - brushShape.attr('x');\n me.dragoffY = 0;\n } else if (type === 'Y') {\n me.dragoffX = 0;\n me.dragoffY = startPoint.y - brushShape.attr('y');\n } else if (type === 'XY') {\n me.dragoffX = startPoint.x - brushShape.attr('x');\n me.dragoffY = startPoint.y - brushShape.attr('y');\n } else if (type === 'POLYGON') {\n var box = brushShape.getBBox();\n me.dragoffX = startPoint.x - box.minX;\n me.dragoffY = startPoint.y - box.minY;\n }\n\n if (isInPlot) {\n me.selection.attr('clip', canvas.addShape('rect', {\n attrs: {\n x: this.plot.start.x,\n y: this.plot.end.y,\n width: this.plot.end.x - this.plot.start.x,\n height: this.plot.start.y - this.plot.end.y,\n fill: '#fff',\n fillOpacity: 0\n }\n }));\n }\n me.onDragstart && me.onDragstart(ev);\n }\n me.prePoint = startPoint;\n }\n\n if (!me.dragging) {\n // brush start\n me.onBrushstart && me.onBrushstart(startPoint);\n var container = me.container;\n if (isInPlot) {\n var _me$plot = me.plot,\n start = _me$plot.start,\n end = _me$plot.end;\n\n if (startPoint.x < start.x || startPoint.x > end.x || startPoint.y < end.y || startPoint.y > start.y) {\n return;\n }\n }\n canvasDOM.style.cursor = 'crosshair';\n me.startPoint = startPoint;\n me.brushShape = null;\n me.brushing = true;\n\n if (!container) {\n container = canvas.addGroup({\n zIndex: 5 // upper\n });\n container.initTransform();\n } else {\n container.clear();\n }\n me.container = container;\n\n if (type === 'POLYGON') {\n me.polygonPath = 'M ' + startPoint.x + ' ' + startPoint.y;\n }\n }\n };\n\n Brush.prototype._onCanvasMouseMove = function _onCanvasMouseMove(ev) {\n var me = this;\n var brushing = me.brushing,\n dragging = me.dragging,\n type = me.type,\n plot = me.plot,\n startPoint = me.startPoint,\n xScale = me.xScale,\n yScale = me.yScale,\n canvas = me.canvas;\n\n\n if (!brushing && !dragging) {\n return;\n }\n var currentPoint = {\n x: ev.offsetX,\n y: ev.offsetY\n };\n var canvasDOM = canvas.get('canvasDOM');\n\n if (brushing) {\n canvasDOM.style.cursor = 'crosshair';\n var start = plot.start,\n end = plot.end;\n\n var polygonPath = me.polygonPath;\n var brushShape = me.brushShape;\n var container = me.container;\n if (me.plot && me.inPlot) {\n currentPoint = me._limitCoordScope(currentPoint);\n }\n\n var rectStartX = void 0;\n var rectStartY = void 0;\n var rectWidth = void 0;\n var rectHeight = void 0;\n\n if (type === 'Y') {\n rectStartX = start.x;\n rectStartY = currentPoint.y >= startPoint.y ? startPoint.y : currentPoint.y;\n rectWidth = Math.abs(start.x - end.x);\n rectHeight = Math.abs(startPoint.y - currentPoint.y);\n } else if (type === 'X') {\n rectStartX = currentPoint.x >= startPoint.x ? startPoint.x : currentPoint.x;\n rectStartY = end.y;\n rectWidth = Math.abs(startPoint.x - currentPoint.x);\n rectHeight = Math.abs(end.y - start.y);\n } else if (type === 'XY') {\n if (currentPoint.x >= startPoint.x) {\n rectStartX = startPoint.x;\n rectStartY = currentPoint.y >= startPoint.y ? startPoint.y : currentPoint.y;\n } else {\n rectStartX = currentPoint.x;\n rectStartY = currentPoint.y >= startPoint.y ? startPoint.y : currentPoint.y;\n }\n rectWidth = Math.abs(startPoint.x - currentPoint.x);\n rectHeight = Math.abs(startPoint.y - currentPoint.y);\n } else if (type === 'POLYGON') {\n polygonPath += 'L ' + currentPoint.x + ' ' + currentPoint.y;\n me.polygonPath = polygonPath;\n if (!brushShape) {\n brushShape = container.addShape('path', {\n attrs: Util.mix(me.style, {\n path: polygonPath\n })\n });\n } else {\n !brushShape.get('destroyed') && brushShape.attr(Util.mix({}, brushShape.__attrs, {\n path: polygonPath\n }));\n }\n }\n if (type !== 'POLYGON') {\n if (!brushShape) {\n brushShape = container.addShape('rect', {\n attrs: Util.mix(me.style, {\n x: rectStartX,\n y: rectStartY,\n width: rectWidth,\n height: rectHeight\n })\n });\n } else {\n !brushShape.get('destroyed') && brushShape.attr(Util.mix({}, brushShape.__attrs, {\n x: rectStartX,\n y: rectStartY,\n width: rectWidth,\n height: rectHeight\n }));\n }\n }\n\n me.brushShape = brushShape;\n } else if (dragging) {\n canvasDOM.style.cursor = 'move';\n var selection = me.selection;\n if (selection && !selection.get('destroyed')) {\n if (type === 'POLYGON') {\n var prePoint = me.prePoint;\n me.selection.translate(currentPoint.x - prePoint.x, currentPoint.y - prePoint.y);\n } else {\n me.dragoffX && selection.attr('x', currentPoint.x - me.dragoffX);\n me.dragoffY && selection.attr('y', currentPoint.y - me.dragoffY);\n }\n }\n }\n\n me.prePoint = currentPoint;\n canvas.draw();\n\n var _me$_getSelected = me._getSelected(),\n data = _me$_getSelected.data,\n shapes = _me$_getSelected.shapes,\n xValues = _me$_getSelected.xValues,\n yValues = _me$_getSelected.yValues;\n\n var eventObj = {\n data: data,\n shapes: shapes,\n x: currentPoint.x,\n y: currentPoint.y\n };\n\n if (xScale) {\n eventObj[xScale.field] = xValues;\n }\n if (yScale) {\n eventObj[yScale.field] = yValues;\n }\n me.onDragmove && me.onDragmove(eventObj);\n me.onBrushmove && me.onBrushmove(eventObj);\n };\n\n Brush.prototype._onCanvasMouseUp = function _onCanvasMouseUp(ev) {\n var me = this;\n var data = me.data,\n shapes = me.shapes,\n xValues = me.xValues,\n yValues = me.yValues,\n canvas = me.canvas,\n type = me.type,\n startPoint = me.startPoint,\n chart = me.chart,\n container = me.container,\n xScale = me.xScale,\n yScale = me.yScale;\n var offsetX = ev.offsetX,\n offsetY = ev.offsetY;\n\n var canvasDOM = canvas.get('canvasDOM');\n canvasDOM.style.cursor = 'default';\n\n if (Math.abs(startPoint.x - offsetX) <= 1 && Math.abs(startPoint.y - offsetY) <= 1) {\n // 防止点击事件\n me.brushing = false;\n me.dragging = false;\n return;\n }\n\n var eventObj = {\n data: data,\n shapes: shapes,\n x: offsetX,\n y: offsetY\n };\n if (xScale) {\n eventObj[xScale.field] = xValues;\n }\n if (yScale) {\n eventObj[yScale.field] = yValues;\n }\n\n if (me.dragging) {\n me.dragging = false;\n me.onDragend && me.onDragend(eventObj);\n } else if (me.brushing) {\n me.brushing = false;\n var brushShape = me.brushShape;\n var polygonPath = me.polygonPath;\n\n if (type === 'POLYGON') {\n polygonPath += 'z';\n\n brushShape && !brushShape.get('destroyed') && brushShape.attr(Util.mix({}, brushShape.__attrs, {\n path: polygonPath\n }));\n me.polygonPath = polygonPath;\n canvas.draw();\n }\n\n if (me.onBrushend) {\n me.onBrushend(eventObj);\n } else if (chart && me.filter) {\n container.clear(); // clear the brush\n // filter data\n if (type === 'X') {\n xScale && chart.filter(xScale.field, function (val) {\n return xValues.indexOf(val) > -1;\n });\n } else if (type === 'Y') {\n yScale && chart.filter(yScale.field, function (val) {\n return yValues.indexOf(val) > -1;\n });\n } else {\n xScale && chart.filter(xScale.field, function (val) {\n return xValues.indexOf(val) > -1;\n });\n yScale && chart.filter(yScale.field, function (val) {\n return yValues.indexOf(val) > -1;\n });\n }\n chart.repaint();\n }\n }\n };\n\n Brush.prototype.setType = function setType(type) {\n if (!type) {\n return;\n }\n\n this.type = type.toUpperCase();\n };\n\n Brush.prototype.destroy = function destroy() {\n this.clearEvents();\n };\n\n Brush.prototype._limitCoordScope = function _limitCoordScope(point) {\n var plot = this.plot;\n var start = plot.start,\n end = plot.end;\n\n\n if (point.x < start.x) {\n point.x = start.x;\n }\n if (point.x > end.x) {\n point.x = end.x;\n }\n if (point.y < end.y) {\n point.y = end.y;\n }\n if (point.y > start.y) {\n point.y = start.y;\n }\n return point;\n };\n\n Brush.prototype._getSelected = function _getSelected() {\n var chart = this.chart,\n xScale = this.xScale,\n yScale = this.yScale,\n brushShape = this.brushShape,\n canvas = this.canvas;\n\n var pixelRatio = canvas.get('pixelRatio');\n var selectedShapes = [];\n var xValues = [];\n var yValues = [];\n var selectedData = [];\n if (chart) {\n var geoms = chart.get('geoms');\n geoms.map(function (geom) {\n var shapes = geom.getShapes();\n shapes.map(function (shape) {\n var shapeData = shape.get('origin');\n if (!Array.isArray(shapeData)) {\n // 线图、区域图等\n shapeData = [shapeData];\n }\n\n shapeData.map(function (each) {\n if (brushShape.isHit(each.x * pixelRatio, each.y * pixelRatio)) {\n selectedShapes.push(shape);\n var origin = each._origin;\n selectedData.push(origin);\n xScale && xValues.push(origin[xScale.field]);\n yScale && yValues.push(origin[yScale.field]);\n }\n return each;\n });\n\n return shape;\n });\n return geom;\n });\n }\n this.shapes = selectedShapes;\n this.xValues = xValues;\n this.yValues = yValues;\n this.data = selectedData;\n return {\n data: selectedData,\n xValues: xValues,\n yValues: yValues,\n shapes: selectedShapes\n };\n };\n\n return Brush;\n}();\n\nmodule.exports = Brush;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/brush.js\n// module id = 1\n// module chunks = 0","function _mix(dist, obj) {\n for (var k in obj) {\n if (obj.hasOwnProperty(k) && k !== 'constructor' && obj[k] !== undefined) {\n dist[k] = obj[k];\n }\n }\n}\n\nvar Util = {\n mix: function mix(dist, obj1, obj2, obj3) {\n if (obj1) {\n _mix(dist, obj1);\n }\n\n if (obj2) {\n _mix(dist, obj2);\n }\n\n if (obj3) {\n _mix(dist, obj3);\n }\n return dist;\n },\n\n /**\n * 添加事件监听器\n * @param {Object} target DOM对象\n * @param {String} eventType 事件名\n * @param {Funtion} callback 回调函数\n * @return {Object} 返回对象\n */\n addEventListener: function addEventListener(target, eventType, callback) {\n if (target.addEventListener) {\n target.addEventListener(eventType, callback, false);\n return {\n remove: function remove() {\n target.removeEventListener(eventType, callback, false);\n }\n };\n } else if (target.attachEvent) {\n target.attachEvent('on' + eventType, callback);\n return {\n remove: function remove() {\n target.detachEvent('on' + eventType, callback);\n }\n };\n }\n },\n\n /**\n * 封装事件便于使用上下文this,和便于解除事件时使用\n * @protected\n * @param {Object} obj 对象\n * @param {String} action 事件名称\n * @return {Function} 返回事件处理函数\n */\n wrapBehavior: function wrapBehavior(obj, action) {\n if (obj['_wrap_' + action]) {\n return obj['_wrap_' + action];\n }\n var method = function method(e) {\n obj[action](e);\n };\n obj['_wrap_' + action] = method;\n return method;\n },\n\n /**\n * 获取封装的事件\n * @protected\n * @param {Object} obj 对象\n * @param {String} action 事件名称\n * @return {Function} 返回事件处理函数\n */\n getWrapBehavior: function getWrapBehavior(obj, action) {\n return obj['_wrap_' + action];\n }\n};\n\nmodule.exports = Util;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/util.js\n// module id = 2\n// module chunks = 0"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;ACjiBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;A","sourceRoot":""}