1 line
27 KiB
JSON
1 line
27 KiB
JSON
{"ast":null,"code":"/*\r\n* Licensed to the Apache Software Foundation (ASF) under one\r\n* or more contributor license agreements. See the NOTICE file\r\n* distributed with this work for additional information\r\n* regarding copyright ownership. The ASF licenses this file\r\n* to you under the Apache License, Version 2.0 (the\r\n* \"License\"); you may not use this file except in compliance\r\n* with the License. You may obtain a copy of the License at\r\n*\r\n* http://www.apache.org/licenses/LICENSE-2.0\r\n*\r\n* Unless required by applicable law or agreed to in writing,\r\n* software distributed under the License is distributed on an\r\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n* KIND, either express or implied. See the License for the\r\n* specific language governing permissions and limitations\r\n* under the License.\r\n*/\n\n/**\r\n * AUTO-GENERATED FILE. DO NOT MODIFY.\r\n */\n\n/*\r\n* Licensed to the Apache Software Foundation (ASF) under one\r\n* or more contributor license agreements. See the NOTICE file\r\n* distributed with this work for additional information\r\n* regarding copyright ownership. The ASF licenses this file\r\n* to you under the Apache License, Version 2.0 (the\r\n* \"License\"); you may not use this file except in compliance\r\n* with the License. You may obtain a copy of the License at\r\n*\r\n* http://www.apache.org/licenses/LICENSE-2.0\r\n*\r\n* Unless required by applicable law or agreed to in writing,\r\n* software distributed under the License is distributed on an\r\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n* KIND, either express or implied. See the License for the\r\n* specific language governing permissions and limitations\r\n* under the License.\r\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 /**\r\n * Notice: only enable needed types. For example, if 'zoom'\r\n * is not needed, 'zoom' should not be enabled, otherwise\r\n * default mousewheel behaviour (scroll page) will be disabled.\r\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) || e.target && e.target.draggable) {\n return;\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/qingge-Market/qingge-vue/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","target","draggable","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":["\r\n/*\r\n* Licensed to the Apache Software Foundation (ASF) under one\r\n* or more contributor license agreements. See the NOTICE file\r\n* distributed with this work for additional information\r\n* regarding copyright ownership. The ASF licenses this file\r\n* to you under the Apache License, Version 2.0 (the\r\n* \"License\"); you may not use this file except in compliance\r\n* with the License. You may obtain a copy of the License at\r\n*\r\n* http://www.apache.org/licenses/LICENSE-2.0\r\n*\r\n* Unless required by applicable law or agreed to in writing,\r\n* software distributed under the License is distributed on an\r\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n* KIND, either express or implied. See the License for the\r\n* specific language governing permissions and limitations\r\n* under the License.\r\n*/\r\n\r\n\r\n/**\r\n * AUTO-GENERATED FILE. DO NOT MODIFY.\r\n */\r\n\r\n/*\r\n* Licensed to the Apache Software Foundation (ASF) under one\r\n* or more contributor license agreements. See the NOTICE file\r\n* distributed with this work for additional information\r\n* regarding copyright ownership. The ASF licenses this file\r\n* to you under the Apache License, Version 2.0 (the\r\n* \"License\"); you may not use this file except in compliance\r\n* with the License. You may obtain a copy of the License at\r\n*\r\n* http://www.apache.org/licenses/LICENSE-2.0\r\n*\r\n* Unless required by applicable law or agreed to in writing,\r\n* software distributed under the License is distributed on an\r\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n* KIND, either express or implied. See the License for the\r\n* specific language governing permissions and limitations\r\n* under the License.\r\n*/\r\nimport { __extends } from \"tslib\";\r\nimport Eventful from 'zrender/lib/core/Eventful.js';\r\nimport * as eventTool from 'zrender/lib/core/event.js';\r\nimport * as interactionMutex from './interactionMutex.js';\r\nimport { isString, bind, defaults, clone } from 'zrender/lib/core/util.js';\r\n;\r\n\r\nvar RoamController =\r\n/** @class */\r\nfunction (_super) {\r\n __extends(RoamController, _super);\r\n\r\n function RoamController(zr) {\r\n var _this = _super.call(this) || this;\r\n\r\n _this._zr = zr; // Avoid two roamController bind the same handler\r\n\r\n var mousedownHandler = bind(_this._mousedownHandler, _this);\r\n var mousemoveHandler = bind(_this._mousemoveHandler, _this);\r\n var mouseupHandler = bind(_this._mouseupHandler, _this);\r\n var mousewheelHandler = bind(_this._mousewheelHandler, _this);\r\n var pinchHandler = bind(_this._pinchHandler, _this);\r\n /**\r\n * Notice: only enable needed types. For example, if 'zoom'\r\n * is not needed, 'zoom' should not be enabled, otherwise\r\n * default mousewheel behaviour (scroll page) will be disabled.\r\n */\r\n\r\n _this.enable = function (controlType, opt) {\r\n // Disable previous first\r\n this.disable();\r\n this._opt = defaults(clone(opt) || {}, {\r\n zoomOnMouseWheel: true,\r\n moveOnMouseMove: true,\r\n // By default, wheel do not trigger move.\r\n moveOnMouseWheel: false,\r\n preventDefaultMouseMove: true\r\n });\r\n\r\n if (controlType == null) {\r\n controlType = true;\r\n }\r\n\r\n if (controlType === true || controlType === 'move' || controlType === 'pan') {\r\n zr.on('mousedown', mousedownHandler);\r\n zr.on('mousemove', mousemoveHandler);\r\n zr.on('mouseup', mouseupHandler);\r\n }\r\n\r\n if (controlType === true || controlType === 'scale' || controlType === 'zoom') {\r\n zr.on('mousewheel', mousewheelHandler);\r\n zr.on('pinch', pinchHandler);\r\n }\r\n };\r\n\r\n _this.disable = function () {\r\n zr.off('mousedown', mousedownHandler);\r\n zr.off('mousemove', mousemoveHandler);\r\n zr.off('mouseup', mouseupHandler);\r\n zr.off('mousewheel', mousewheelHandler);\r\n zr.off('pinch', pinchHandler);\r\n };\r\n\r\n return _this;\r\n }\r\n\r\n RoamController.prototype.isDragging = function () {\r\n return this._dragging;\r\n };\r\n\r\n RoamController.prototype.isPinching = function () {\r\n return this._pinching;\r\n };\r\n\r\n RoamController.prototype.setPointerChecker = function (pointerChecker) {\r\n this.pointerChecker = pointerChecker;\r\n };\r\n\r\n RoamController.prototype.dispose = function () {\r\n this.disable();\r\n };\r\n\r\n RoamController.prototype._mousedownHandler = function (e) {\r\n if (eventTool.isMiddleOrRightButtonOnMouseUpDown(e) || e.target && e.target.draggable) {\r\n return;\r\n }\r\n\r\n var x = e.offsetX;\r\n var y = e.offsetY; // Only check on mosedown, but not mousemove.\r\n // Mouse can be out of target when mouse moving.\r\n\r\n if (this.pointerChecker && this.pointerChecker(e, x, y)) {\r\n this._x = x;\r\n this._y = y;\r\n this._dragging = true;\r\n }\r\n };\r\n\r\n RoamController.prototype._mousemoveHandler = function (e) {\r\n if (!this._dragging || !isAvailableBehavior('moveOnMouseMove', e, this._opt) || e.gestureEvent === 'pinch' || interactionMutex.isTaken(this._zr, 'globalPan')) {\r\n return;\r\n }\r\n\r\n var x = e.offsetX;\r\n var y = e.offsetY;\r\n var oldX = this._x;\r\n var oldY = this._y;\r\n var dx = x - oldX;\r\n var dy = y - oldY;\r\n this._x = x;\r\n this._y = y;\r\n this._opt.preventDefaultMouseMove && eventTool.stop(e.event);\r\n trigger(this, 'pan', 'moveOnMouseMove', e, {\r\n dx: dx,\r\n dy: dy,\r\n oldX: oldX,\r\n oldY: oldY,\r\n newX: x,\r\n newY: y,\r\n isAvailableBehavior: null\r\n });\r\n };\r\n\r\n RoamController.prototype._mouseupHandler = function (e) {\r\n if (!eventTool.isMiddleOrRightButtonOnMouseUpDown(e)) {\r\n this._dragging = false;\r\n }\r\n };\r\n\r\n RoamController.prototype._mousewheelHandler = function (e) {\r\n var shouldZoom = isAvailableBehavior('zoomOnMouseWheel', e, this._opt);\r\n var shouldMove = isAvailableBehavior('moveOnMouseWheel', e, this._opt);\r\n var wheelDelta = e.wheelDelta;\r\n var absWheelDeltaDelta = Math.abs(wheelDelta);\r\n var originX = e.offsetX;\r\n var originY = e.offsetY; // wheelDelta maybe -0 in chrome mac.\r\n\r\n if (wheelDelta === 0 || !shouldZoom && !shouldMove) {\r\n return;\r\n } // If both `shouldZoom` and `shouldMove` is true, trigger\r\n // their event both, and the final behavior is determined\r\n // by event listener themselves.\r\n\r\n\r\n if (shouldZoom) {\r\n // Convenience:\r\n // Mac and VM Windows on Mac: scroll up: zoom out.\r\n // Windows: scroll up: zoom in.\r\n // FIXME: Should do more test in different environment.\r\n // wheelDelta is too complicated in difference nvironment\r\n // (https://developer.mozilla.org/en-US/docs/Web/Events/mousewheel),\r\n // although it has been normallized by zrender.\r\n // wheelDelta of mouse wheel is bigger than touch pad.\r\n var factor = absWheelDeltaDelta > 3 ? 1.4 : absWheelDeltaDelta > 1 ? 1.2 : 1.1;\r\n var scale = wheelDelta > 0 ? factor : 1 / factor;\r\n checkPointerAndTrigger(this, 'zoom', 'zoomOnMouseWheel', e, {\r\n scale: scale,\r\n originX: originX,\r\n originY: originY,\r\n isAvailableBehavior: null\r\n });\r\n }\r\n\r\n if (shouldMove) {\r\n // FIXME: Should do more test in different environment.\r\n var absDelta = Math.abs(wheelDelta); // wheelDelta of mouse wheel is bigger than touch pad.\r\n\r\n var scrollDelta = (wheelDelta > 0 ? 1 : -1) * (absDelta > 3 ? 0.4 : absDelta > 1 ? 0.15 : 0.05);\r\n checkPointerAndTrigger(this, 'scrollMove', 'moveOnMouseWheel', e, {\r\n scrollDelta: scrollDelta,\r\n originX: originX,\r\n originY: originY,\r\n isAvailableBehavior: null\r\n });\r\n }\r\n };\r\n\r\n RoamController.prototype._pinchHandler = function (e) {\r\n if (interactionMutex.isTaken(this._zr, 'globalPan')) {\r\n return;\r\n }\r\n\r\n var scale = e.pinchScale > 1 ? 1.1 : 1 / 1.1;\r\n checkPointerAndTrigger(this, 'zoom', null, e, {\r\n scale: scale,\r\n originX: e.pinchX,\r\n originY: e.pinchY,\r\n isAvailableBehavior: null\r\n });\r\n };\r\n\r\n return RoamController;\r\n}(Eventful);\r\n\r\nfunction checkPointerAndTrigger(controller, eventName, behaviorToCheck, e, contollerEvent) {\r\n if (controller.pointerChecker && controller.pointerChecker(e, contollerEvent.originX, contollerEvent.originY)) {\r\n // When mouse is out of roamController rect,\r\n // default befavoius should not be be disabled, otherwise\r\n // page sliding is disabled, contrary to expectation.\r\n eventTool.stop(e.event);\r\n trigger(controller, eventName, behaviorToCheck, e, contollerEvent);\r\n }\r\n}\r\n\r\nfunction trigger(controller, eventName, behaviorToCheck, e, contollerEvent) {\r\n // Also provide behavior checker for event listener, for some case that\r\n // multiple components share one listener.\r\n contollerEvent.isAvailableBehavior = bind(isAvailableBehavior, null, behaviorToCheck, e); // TODO should not have type issue.\r\n\r\n controller.trigger(eventName, contollerEvent);\r\n} // settings: {\r\n// zoomOnMouseWheel\r\n// moveOnMouseMove\r\n// moveOnMouseWheel\r\n// }\r\n// The value can be: true / false / 'shift' / 'ctrl' / 'alt'.\r\n\r\n\r\nfunction isAvailableBehavior(behaviorToCheck, e, settings) {\r\n var setting = settings[behaviorToCheck];\r\n return !behaviorToCheck || setting && (!isString(setting) || e.event[setting + 'Key']);\r\n}\r\n\r\nexport default RoamController;"]},"metadata":{},"sourceType":"module"} |