(scene)
| 134 | var touchEventCapturedTargets = {}; |
| 135 | |
| 136 | function delegateEvents(scene) { |
| 137 | var events = ['mousedown', 'mouseup', 'mousemove', 'mousewheel', 'wheel', 'touchstart', 'touchend', 'touchmove', 'touchcancel', 'click', 'dblclick', 'longpress', 'tap', 'contextmenu']; |
| 138 | var container = scene.container; |
| 139 | container.addEventListener('mouseleave', function (event) { |
| 140 | var enteredTargets = scene[_enteredTargets]; |
| 141 | |
| 142 | if (enteredTargets.size) { |
| 143 | var leaveEvent = new _event.default('mouseleave'); |
| 144 | leaveEvent.setOriginalEvent(event); |
| 145 | (0, _toConsumableArray2.default)(enteredTargets).forEach(function (target) { |
| 146 | target.dispatchEvent(leaveEvent); |
| 147 | }); |
| 148 | |
| 149 | scene[_enteredTargets].clear(); |
| 150 | } |
| 151 | }, { |
| 152 | passive: true |
| 153 | }); |
| 154 | events.forEach(function (eventType) { |
| 155 | container.addEventListener(eventType, function (event) { |
| 156 | var _scene$options = scene.options, |
| 157 | left = _scene$options.left, |
| 158 | top = _scene$options.top, |
| 159 | displayRatio = _scene$options.displayRatio; |
| 160 | var layers = scene.orderedChildren; |
| 161 | var pointerEvents = (0, _pointerEvents.default)(event, { |
| 162 | offsetLeft: left, |
| 163 | offsetTop: top, |
| 164 | displayRatio: displayRatio |
| 165 | }); |
| 166 | pointerEvents.forEach(function (evt) { |
| 167 | // evt.scene = scene; |
| 168 | var id = evt.identifier; |
| 169 | |
| 170 | if (evt.type === 'touchmove' || evt.type === 'touchend') { |
| 171 | var capturedTarget = touchEventCapturedTargets[id]; |
| 172 | if (capturedTarget) capturedTarget.dispatchEvent(evt); |
| 173 | if (evt.type === 'touchend') delete touchEventCapturedTargets[id]; |
| 174 | } else { |
| 175 | for (var i = layers.length - 1; i >= 0; i--) { |
| 176 | var layer = layers[i]; |
| 177 | |
| 178 | if (layer.options.handleEvent !== false) { |
| 179 | var ret = layer.dispatchPointerEvent(evt); |
| 180 | if (ret && evt.target !== layer) break;else evt.cancelBubble = false; // prepare passing to next layer |
| 181 | } |
| 182 | } |
| 183 | |
| 184 | if (evt.target === layers[0]) { |
| 185 | // trigger event on top layer |
| 186 | for (var _i = layers.length - 1; _i >= 0; _i--) { |
| 187 | var _layer = layers[_i]; |
| 188 | |
| 189 | if (_layer.options.handleEvent !== false) { |
| 190 | evt.target = _layer; |
| 191 | break; |
| 192 | } |
| 193 | } |
no test coverage detected