| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- /**
- * DevExtreme (core/events_strategy.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 Callbacks = require("./utils/callbacks");
- var isFunction = require("./utils/type").isFunction;
- var each = require("./utils/iterator").each;
- var Class = require("./class");
- module.exports = Class.inherit({
- ctor: function(owner) {
- this._events = {};
- this._owner = owner
- },
- hasEvent: function(eventName) {
- var callbacks = this._events[eventName];
- if (callbacks) {
- return callbacks.has()
- }
- return false
- },
- fireEvent: function(eventName, eventArgs) {
- var callbacks = this._events[eventName];
- if (callbacks) {
- callbacks.fireWith(this._owner, eventArgs)
- }
- },
- on: function(eventName, eventHandler) {
- var callbacks = this._events[eventName];
- if (!callbacks) {
- callbacks = Callbacks();
- this._events[eventName] = callbacks
- }
- var addFn = callbacks.originalAdd || callbacks.add;
- addFn.call(callbacks, eventHandler)
- },
- off: function(eventName, eventHandler) {
- var callbacks = this._events[eventName];
- if (callbacks) {
- if (isFunction(eventHandler)) {
- callbacks.remove(eventHandler)
- } else {
- callbacks.empty()
- }
- }
- },
- dispose: function() {
- each(this._events, function() {
- this.empty()
- })
- }
- });
|