UNPKG

devextreme

Version:

HTML5 JavaScript Component Suite for Responsive Web Development

43 lines (34 loc) 1.07 kB
"use strict"; var Callbacks = require("../../core/utils/callbacks"); function DataExchanger() { this._store = {}; } DataExchanger.prototype = { constructor: DataExchanger, dispose: function dispose() { this._store = null; return this; }, _get: function _get(category, name) { var store = this._store[category] || (this._store[category] = {}); return store[name] || (store[name] = { callbacks: Callbacks() }); }, set: function set(category, name, data) { var item = this._get(category, name); item.data = data; item.callbacks.fire(data); return this; }, bind: function bind(category, name, callback) { var item = this._get(category, name); item.callbacks.add(callback); item.data && callback(item.data); return this; }, unbind: function unbind(category, name, callback) { var item = this._get(category, name); item.callbacks.remove(callback); return this; } }; exports.DataExchanger = DataExchanger;