| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- /**
- * DevExtreme (events/pointer/base.js)
- * Version: 19.1.16
- * Build date: Tue Oct 18 2022
- *
- * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED
- * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
- */
- "use strict";
- var eventsEngine = require("../../events/core/events_engine");
- var browser = require("../../core/utils/browser");
- var domAdapter = require("../../core/dom_adapter");
- var Class = require("../../core/class");
- var eventUtils = require("../utils");
- var POINTER_EVENTS_NAMESPACE = "dxPointerEvents";
- var BaseStrategy = Class.inherit({
- ctor: function(eventName, originalEvents) {
- this._eventName = eventName;
- this._originalEvents = eventUtils.addNamespace(originalEvents, POINTER_EVENTS_NAMESPACE);
- this._handlerCount = 0;
- this.noBubble = this._isNoBubble()
- },
- _isNoBubble: function() {
- var eventName = this._eventName;
- return "dxpointerenter" === eventName || "dxpointerleave" === eventName
- },
- _handler: function(e) {
- var delegateTarget = this._getDelegateTarget(e);
- return this._fireEvent({
- type: this._eventName,
- pointerType: e.pointerType || eventUtils.eventSource(e),
- originalEvent: e,
- delegateTarget: delegateTarget,
- timeStamp: browser.mozilla ? (new Date).getTime() : e.timeStamp
- })
- },
- _getDelegateTarget: function(e) {
- var delegateTarget;
- if (this.noBubble) {
- delegateTarget = e.delegateTarget
- }
- return delegateTarget
- },
- _fireEvent: function(args) {
- return eventUtils.fireEvent(args)
- },
- _setSelector: function(handleObj) {
- this._selector = this.noBubble && handleObj ? handleObj.selector : null
- },
- _getSelector: function() {
- return this._selector
- },
- setup: function() {
- return true
- },
- add: function(element, handleObj) {
- if (this._handlerCount <= 0 || this.noBubble) {
- element = this.noBubble ? element : domAdapter.getDocument();
- this._setSelector(handleObj);
- var that = this;
- eventsEngine.on(element, this._originalEvents, this._getSelector(), function(e) {
- that._handler(e)
- })
- }
- if (!this.noBubble) {
- this._handlerCount++
- }
- },
- remove: function(handleObj) {
- this._setSelector(handleObj);
- if (!this.noBubble) {
- this._handlerCount--
- }
- },
- teardown: function(element) {
- if (this._handlerCount && !this.noBubble) {
- return
- }
- element = this.noBubble ? element : domAdapter.getDocument();
- if (this._originalEvents !== "." + POINTER_EVENTS_NAMESPACE) {
- eventsEngine.off(element, this._originalEvents, this._getSelector())
- }
- },
- dispose: function(element) {
- element = this.noBubble ? element : domAdapter.getDocument();
- eventsEngine.off(element, this._originalEvents)
- }
- });
- module.exports = BaseStrategy;
|