UNPKG

devextreme

Version:

JavaScript/TypeScript Component Suite for Responsive Web Development

76 lines (75 loc) 2.36 kB
/** * DevExtreme (esm/__internal/events/core/m_wheel.js) * Version: 25.2.7 * Build date: Tue May 05 2026 * * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/ */ import registerEvent from "../../../common/core/events/core/event_registrator"; import eventsEngine from "../../../common/core/events/core/events_engine"; import { addNamespace, fireEvent } from "../../../common/core/events/utils/index"; import $ from "../../../core/renderer"; const EVENT_NAME = "dxmousewheel"; const EVENT_NAMESPACE = "dxWheel"; const NATIVE_EVENT_NAME = "wheel"; const PIXEL_MODE = 0; const DELTA_MULTIPLIER = 30; var DeltaMode; ! function(DeltaMode) { DeltaMode[DeltaMode.DOM_DELTA_PIXEL = 0] = "DOM_DELTA_PIXEL"; DeltaMode[DeltaMode.DOM_DELTA_LINE = 1] = "DOM_DELTA_LINE"; DeltaMode[DeltaMode.DOM_DELTA_PAGE = 2] = "DOM_DELTA_PAGE" }(DeltaMode || (DeltaMode = {})); const wheel = { setup(element) { const $element = $(element); eventsEngine.on($element, addNamespace("wheel", "dxWheel"), wheel._wheelHandler.bind(wheel)) }, teardown(element) { eventsEngine.off(element, ".dxWheel") }, _wheelHandler(e) { const { deltaMode: deltaMode, deltaY: deltaY, deltaX: deltaX, deltaZ: deltaZ } = e.originalEvent; const delta = this._getWheelDelta(deltaY, deltaX); fireEvent({ type: EVENT_NAME, originalEvent: e, delta: this._normalizeDelta(delta, deltaMode), deltaX: deltaX, deltaY: deltaY, deltaZ: deltaZ, deltaMode: deltaMode, pointerType: "mouse" }); e.stopPropagation() }, _normalizeDelta(delta) { let deltaMode = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0; if (0 === deltaMode) { return -delta } return -30 * delta }, _getWheelDelta(deltaY, deltaX) { if (deltaY) { return deltaY } if (deltaX) { return deltaX } return 0 } }; registerEvent(EVENT_NAME, wheel); export { EVENT_NAME as name };