1 line
27 KiB
JSON
1 line
27 KiB
JSON
{"ast":null,"code":"/*\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*/\nimport { __extends } from \"tslib\";\nimport Eventful from 'zrender/lib/core/Eventful.js';\nimport * as eventTool from 'zrender/lib/core/event.js';\nimport * as interactionMutex from './interactionMutex.js';\nimport { isString, bind, defaults, clone } from 'zrender/lib/core/util.js';\n;\n\nvar RoamController =\n/** @class */\nfunction (_super) {\n __extends(RoamController, _super);\n\n function RoamController(zr) {\n var _this = _super.call(this) || this;\n\n _this._zr = zr; // Avoid two roamController bind the same handler\n\n var mousedownHandler = bind(_this._mousedownHandler, _this);\n var mousemoveHandler = bind(_this._mousemoveHandler, _this);\n var mouseupHandler = bind(_this._mouseupHandler, _this);\n var mousewheelHandler = bind(_this._mousewheelHandler, _this);\n var pinchHandler = bind(_this._pinchHandler, _this);\n /**\n * Notice: only enable needed types. For example, if 'zoom'\n * is not needed, 'zoom' should not be enabled, otherwise\n * default mousewheel behaviour (scroll page) will be disabled.\n */\n\n _this.enable = function (controlType, opt) {\n // Disable previous first\n this.disable();\n this._opt = defaults(clone(opt) || {}, {\n zoomOnMouseWheel: true,\n moveOnMouseMove: true,\n // By default, wheel do not trigger move.\n moveOnMouseWheel: false,\n preventDefaultMouseMove: true\n });\n\n if (controlType == null) {\n controlType = true;\n }\n\n if (controlType === true || controlType === 'move' || controlType === 'pan') {\n zr.on('mousedown', mousedownHandler);\n zr.on('mousemove', mousemoveHandler);\n zr.on('mouseup', mouseupHandler);\n }\n\n if (controlType === true || controlType === 'scale' || controlType === 'zoom') {\n zr.on('mousewheel', mousewheelHandler);\n zr.on('pinch', pinchHandler);\n }\n };\n\n _this.disable = function () {\n zr.off('mousedown', mousedownHandler);\n zr.off('mousemove', mousemoveHandler);\n zr.off('mouseup', mouseupHandler);\n zr.off('mousewheel', mousewheelHandler);\n zr.off('pinch', pinchHandler);\n };\n\n return _this;\n }\n\n RoamController.prototype.isDragging = function () {\n return this._dragging;\n };\n\n RoamController.prototype.isPinching = function () {\n return this._pinching;\n };\n\n RoamController.prototype.setPointerChecker = function (pointerChecker) {\n this.pointerChecker = pointerChecker;\n };\n\n RoamController.prototype.dispose = function () {\n this.disable();\n };\n\n RoamController.prototype._mousedownHandler = function (e) {\n if (eventTool.isMiddleOrRightButtonOnMouseUpDown(e)) {\n return;\n }\n\n var el = e.target;\n\n while (el) {\n if (el.draggable) {\n return;\n } // check if host is draggable\n\n\n el = el.__hostTarget || el.parent;\n }\n\n var x = e.offsetX;\n var y = e.offsetY; // Only check on mosedown, but not mousemove.\n // Mouse can be out of target when mouse moving.\n\n if (this.pointerChecker && this.pointerChecker(e, x, y)) {\n this._x = x;\n this._y = y;\n this._dragging = true;\n }\n };\n\n RoamController.prototype._mousemoveHandler = function (e) {\n if (!this._dragging || !isAvailableBehavior('moveOnMouseMove', e, this._opt) || e.gestureEvent === 'pinch' || interactionMutex.isTaken(this._zr, 'globalPan')) {\n return;\n }\n\n var x = e.offsetX;\n var y = e.offsetY;\n var oldX = this._x;\n var oldY = this._y;\n var dx = x - oldX;\n var dy = y - oldY;\n this._x = x;\n this._y = y;\n this._opt.preventDefaultMouseMove && eventTool.stop(e.event);\n trigger(this, 'pan', 'moveOnMouseMove', e, {\n dx: dx,\n dy: dy,\n oldX: oldX,\n oldY: oldY,\n newX: x,\n newY: y,\n isAvailableBehavior: null\n });\n };\n\n RoamController.prototype._mouseupHandler = function (e) {\n if (!eventTool.isMiddleOrRightButtonOnMouseUpDown(e)) {\n this._dragging = false;\n }\n };\n\n RoamController.prototype._mousewheelHandler = function (e) {\n var shouldZoom = isAvailableBehavior('zoomOnMouseWheel', e, this._opt);\n var shouldMove = isAvailableBehavior('moveOnMouseWheel', e, this._opt);\n var wheelDelta = e.wheelDelta;\n var absWheelDeltaDelta = Math.abs(wheelDelta);\n var originX = e.offsetX;\n var originY = e.offsetY; // wheelDelta maybe -0 in chrome mac.\n\n if (wheelDelta === 0 || !shouldZoom && !shouldMove) {\n return;\n } // If both `shouldZoom` and `shouldMove` is true, trigger\n // their event both, and the final behavior is determined\n // by event listener themselves.\n\n\n if (shouldZoom) {\n // Convenience:\n // Mac and VM Windows on Mac: scroll up: zoom out.\n // Windows: scroll up: zoom in.\n // FIXME: Should do more test in different environment.\n // wheelDelta is too complicated in difference nvironment\n // (https://developer.mozilla.org/en-US/docs/Web/Events/mousewheel),\n // although it has been normallized by zrender.\n // wheelDelta of mouse wheel is bigger than touch pad.\n var factor = absWheelDeltaDelta > 3 ? 1.4 : absWheelDeltaDelta > 1 ? 1.2 : 1.1;\n var scale = wheelDelta > 0 ? factor : 1 / factor;\n checkPointerAndTrigger(this, 'zoom', 'zoomOnMouseWheel', e, {\n scale: scale,\n originX: originX,\n originY: originY,\n isAvailableBehavior: null\n });\n }\n\n if (shouldMove) {\n // FIXME: Should do more test in different environment.\n var absDelta = Math.abs(wheelDelta); // wheelDelta of mouse wheel is bigger than touch pad.\n\n var scrollDelta = (wheelDelta > 0 ? 1 : -1) * (absDelta > 3 ? 0.4 : absDelta > 1 ? 0.15 : 0.05);\n checkPointerAndTrigger(this, 'scrollMove', 'moveOnMouseWheel', e, {\n scrollDelta: scrollDelta,\n originX: originX,\n originY: originY,\n isAvailableBehavior: null\n });\n }\n };\n\n RoamController.prototype._pinchHandler = function (e) {\n if (interactionMutex.isTaken(this._zr, 'globalPan')) {\n return;\n }\n\n var scale = e.pinchScale > 1 ? 1.1 : 1 / 1.1;\n checkPointerAndTrigger(this, 'zoom', null, e, {\n scale: scale,\n originX: e.pinchX,\n originY: e.pinchY,\n isAvailableBehavior: null\n });\n };\n\n return RoamController;\n}(Eventful);\n\nfunction checkPointerAndTrigger(controller, eventName, behaviorToCheck, e, contollerEvent) {\n if (controller.pointerChecker && controller.pointerChecker(e, contollerEvent.originX, contollerEvent.originY)) {\n // When mouse is out of roamController rect,\n // default befavoius should not be be disabled, otherwise\n // page sliding is disabled, contrary to expectation.\n eventTool.stop(e.event);\n trigger(controller, eventName, behaviorToCheck, e, contollerEvent);\n }\n}\n\nfunction trigger(controller, eventName, behaviorToCheck, e, contollerEvent) {\n // Also provide behavior checker for event listener, for some case that\n // multiple components share one listener.\n contollerEvent.isAvailableBehavior = bind(isAvailableBehavior, null, behaviorToCheck, e); // TODO should not have type issue.\n\n controller.trigger(eventName, contollerEvent);\n} // settings: {\n// zoomOnMouseWheel\n// moveOnMouseMove\n// moveOnMouseWheel\n// }\n// The value can be: true / false / 'shift' / 'ctrl' / 'alt'.\n\n\nfunction isAvailableBehavior(behaviorToCheck, e, settings) {\n var setting = settings[behaviorToCheck];\n return !behaviorToCheck || setting && (!isString(setting) || e.event[setting + 'Key']);\n}\n\nexport default RoamController;","map":{"version":3,"sources":["D:/Work/WorkSpace/GitWorkSpace/TenShop/resource/ElectronicMall/src啊/ElectronicMallVue/node_modules/echarts/lib/component/helper/RoamController.js"],"names":["__extends","Eventful","eventTool","interactionMutex","isString","bind","defaults","clone","RoamController","_super","zr","_this","call","_zr","mousedownHandler","_mousedownHandler","mousemoveHandler","_mousemoveHandler","mouseupHandler","_mouseupHandler","mousewheelHandler","_mousewheelHandler","pinchHandler","_pinchHandler","enable","controlType","opt","disable","_opt","zoomOnMouseWheel","moveOnMouseMove","moveOnMouseWheel","preventDefaultMouseMove","on","off","prototype","isDragging","_dragging","isPinching","_pinching","setPointerChecker","pointerChecker","dispose","e","isMiddleOrRightButtonOnMouseUpDown","el","target","draggable","__hostTarget","parent","x","offsetX","y","offsetY","_x","_y","isAvailableBehavior","gestureEvent","isTaken","oldX","oldY","dx","dy","stop","event","trigger","newX","newY","shouldZoom","shouldMove","wheelDelta","absWheelDeltaDelta","Math","abs","originX","originY","factor","scale","checkPointerAndTrigger","absDelta","scrollDelta","pinchScale","pinchX","pinchY","controller","eventName","behaviorToCheck","contollerEvent","settings","setting"],"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*/\nimport { __extends } from \"tslib\";\nimport Eventful from 'zrender/lib/core/Eventful.js';\nimport * as eventTool from 'zrender/lib/core/event.js';\nimport * as interactionMutex from './interactionMutex.js';\nimport { isString, bind, defaults, clone } from 'zrender/lib/core/util.js';\n;\n\nvar RoamController =\n/** @class */\nfunction (_super) {\n __extends(RoamController, _super);\n\n function RoamController(zr) {\n var _this = _super.call(this) || this;\n\n _this._zr = zr; // Avoid two roamController bind the same handler\n\n var mousedownHandler = bind(_this._mousedownHandler, _this);\n var mousemoveHandler = bind(_this._mousemoveHandler, _this);\n var mouseupHandler = bind(_this._mouseupHandler, _this);\n var mousewheelHandler = bind(_this._mousewheelHandler, _this);\n var pinchHandler = bind(_this._pinchHandler, _this);\n /**\n * Notice: only enable needed types. For example, if 'zoom'\n * is not needed, 'zoom' should not be enabled, otherwise\n * default mousewheel behaviour (scroll page) will be disabled.\n */\n\n _this.enable = function (controlType, opt) {\n // Disable previous first\n this.disable();\n this._opt = defaults(clone(opt) || {}, {\n zoomOnMouseWheel: true,\n moveOnMouseMove: true,\n // By default, wheel do not trigger move.\n moveOnMouseWheel: false,\n preventDefaultMouseMove: true\n });\n\n if (controlType == null) {\n controlType = true;\n }\n\n if (controlType === true || controlType === 'move' || controlType === 'pan') {\n zr.on('mousedown', mousedownHandler);\n zr.on('mousemove', mousemoveHandler);\n zr.on('mouseup', mouseupHandler);\n }\n\n if (controlType === true || controlType === 'scale' || controlType === 'zoom') {\n zr.on('mousewheel', mousewheelHandler);\n zr.on('pinch', pinchHandler);\n }\n };\n\n _this.disable = function () {\n zr.off('mousedown', mousedownHandler);\n zr.off('mousemove', mousemoveHandler);\n zr.off('mouseup', mouseupHandler);\n zr.off('mousewheel', mousewheelHandler);\n zr.off('pinch', pinchHandler);\n };\n\n return _this;\n }\n\n RoamController.prototype.isDragging = function () {\n return this._dragging;\n };\n\n RoamController.prototype.isPinching = function () {\n return this._pinching;\n };\n\n RoamController.prototype.setPointerChecker = function (pointerChecker) {\n this.pointerChecker = pointerChecker;\n };\n\n RoamController.prototype.dispose = function () {\n this.disable();\n };\n\n RoamController.prototype._mousedownHandler = function (e) {\n if (eventTool.isMiddleOrRightButtonOnMouseUpDown(e)) {\n return;\n }\n\n var el = e.target;\n\n while (el) {\n if (el.draggable) {\n return;\n } // check if host is draggable\n\n\n el = el.__hostTarget || el.parent;\n }\n\n var x = e.offsetX;\n var y = e.offsetY; // Only check on mosedown, but not mousemove.\n // Mouse can be out of target when mouse moving.\n\n if (this.pointerChecker && this.pointerChecker(e, x, y)) {\n this._x = x;\n this._y = y;\n this._dragging = true;\n }\n };\n\n RoamController.prototype._mousemoveHandler = function (e) {\n if (!this._dragging || !isAvailableBehavior('moveOnMouseMove', e, this._opt) || e.gestureEvent === 'pinch' || interactionMutex.isTaken(this._zr, 'globalPan')) {\n return;\n }\n\n var x = e.offsetX;\n var y = e.offsetY;\n var oldX = this._x;\n var oldY = this._y;\n var dx = x - oldX;\n var dy = y - oldY;\n this._x = x;\n this._y = y;\n this._opt.preventDefaultMouseMove && eventTool.stop(e.event);\n trigger(this, 'pan', 'moveOnMouseMove', e, {\n dx: dx,\n dy: dy,\n oldX: oldX,\n oldY: oldY,\n newX: x,\n newY: y,\n isAvailableBehavior: null\n });\n };\n\n RoamController.prototype._mouseupHandler = function (e) {\n if (!eventTool.isMiddleOrRightButtonOnMouseUpDown(e)) {\n this._dragging = false;\n }\n };\n\n RoamController.prototype._mousewheelHandler = function (e) {\n var shouldZoom = isAvailableBehavior('zoomOnMouseWheel', e, this._opt);\n var shouldMove = isAvailableBehavior('moveOnMouseWheel', e, this._opt);\n var wheelDelta = e.wheelDelta;\n var absWheelDeltaDelta = Math.abs(wheelDelta);\n var originX = e.offsetX;\n var originY = e.offsetY; // wheelDelta maybe -0 in chrome mac.\n\n if (wheelDelta === 0 || !shouldZoom && !shouldMove) {\n return;\n } // If both `shouldZoom` and `shouldMove` is true, trigger\n // their event both, and the final behavior is determined\n // by event listener themselves.\n\n\n if (shouldZoom) {\n // Convenience:\n // Mac and VM Windows on Mac: scroll up: zoom out.\n // Windows: scroll up: zoom in.\n // FIXME: Should do more test in different environment.\n // wheelDelta is too complicated in difference nvironment\n // (https://developer.mozilla.org/en-US/docs/Web/Events/mousewheel),\n // although it has been normallized by zrender.\n // wheelDelta of mouse wheel is bigger than touch pad.\n var factor = absWheelDeltaDelta > 3 ? 1.4 : absWheelDeltaDelta > 1 ? 1.2 : 1.1;\n var scale = wheelDelta > 0 ? factor : 1 / factor;\n checkPointerAndTrigger(this, 'zoom', 'zoomOnMouseWheel', e, {\n scale: scale,\n originX: originX,\n originY: originY,\n isAvailableBehavior: null\n });\n }\n\n if (shouldMove) {\n // FIXME: Should do more test in different environment.\n var absDelta = Math.abs(wheelDelta); // wheelDelta of mouse wheel is bigger than touch pad.\n\n var scrollDelta = (wheelDelta > 0 ? 1 : -1) * (absDelta > 3 ? 0.4 : absDelta > 1 ? 0.15 : 0.05);\n checkPointerAndTrigger(this, 'scrollMove', 'moveOnMouseWheel', e, {\n scrollDelta: scrollDelta,\n originX: originX,\n originY: originY,\n isAvailableBehavior: null\n });\n }\n };\n\n RoamController.prototype._pinchHandler = function (e) {\n if (interactionMutex.isTaken(this._zr, 'globalPan')) {\n return;\n }\n\n var scale = e.pinchScale > 1 ? 1.1 : 1 / 1.1;\n checkPointerAndTrigger(this, 'zoom', null, e, {\n scale: scale,\n originX: e.pinchX,\n originY: e.pinchY,\n isAvailableBehavior: null\n });\n };\n\n return RoamController;\n}(Eventful);\n\nfunction checkPointerAndTrigger(controller, eventName, behaviorToCheck, e, contollerEvent) {\n if (controller.pointerChecker && controller.pointerChecker(e, contollerEvent.originX, contollerEvent.originY)) {\n // When mouse is out of roamController rect,\n // default befavoius should not be be disabled, otherwise\n // page sliding is disabled, contrary to expectation.\n eventTool.stop(e.event);\n trigger(controller, eventName, behaviorToCheck, e, contollerEvent);\n }\n}\n\nfunction trigger(controller, eventName, behaviorToCheck, e, contollerEvent) {\n // Also provide behavior checker for event listener, for some case that\n // multiple components share one listener.\n contollerEvent.isAvailableBehavior = bind(isAvailableBehavior, null, behaviorToCheck, e); // TODO should not have type issue.\n\n controller.trigger(eventName, contollerEvent);\n} // settings: {\n// zoomOnMouseWheel\n// moveOnMouseMove\n// moveOnMouseWheel\n// }\n// The value can be: true / false / 'shift' / 'ctrl' / 'alt'.\n\n\nfunction isAvailableBehavior(behaviorToCheck, e, settings) {\n var setting = settings[behaviorToCheck];\n return !behaviorToCheck || setting && (!isString(setting) || e.event[setting + 'Key']);\n}\n\nexport default RoamController;"]},"metadata":{},"sourceType":"module"} |