UNPKG

devextreme

Version:

HTML5 JavaScript Component Suite for Responsive Web Development

57 lines (49 loc) 1.5 kB
"use strict"; var Callbacks = require("./utils/callbacks"), isFunction = require("./utils/type").isFunction, each = require("./utils/iterator").each, Class = require("./class"); module.exports = Class.inherit({ ctor: function ctor(owner) { this._events = {}; this._owner = owner; }, hasEvent: function hasEvent(eventName) { var callbacks = this._events[eventName]; if (callbacks) { return callbacks.has(); } return false; }, fireEvent: function fireEvent(eventName, eventArgs) { var callbacks = this._events[eventName]; if (callbacks) { callbacks.fireWith(this._owner, eventArgs); } }, on: function on(eventName, eventHandler) { var callbacks = this._events[eventName], addFn; if (!callbacks) { callbacks = Callbacks(); this._events[eventName] = callbacks; } addFn = callbacks.originalAdd || callbacks.add; addFn.call(callbacks, eventHandler); }, off: function off(eventName, eventHandler) { var callbacks = this._events[eventName]; if (callbacks) { if (isFunction(eventHandler)) { callbacks.remove(eventHandler); } else { callbacks.empty(); } } }, dispose: function dispose() { each(this._events, function () { this.empty(); }); } });