devextreme
Version:
HTML5 JavaScript Component Suite for Responsive Web Development
55 lines (52 loc) • 1.55 kB
JavaScript
/**
* DevExtreme (cjs/__internal/viz/vector_map/data_exchanger.js)
* Version: 25.2.3
* Build date: Fri Dec 12 2025
*
* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
* Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
*/
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.DataExchanger = DataExchanger;
var _callbacks = _interopRequireDefault(require("../../../core/utils/callbacks"));
function _interopRequireDefault(e) {
return e && e.__esModule ? e : {
default: e
}
}
function DataExchanger() {
this._store = {}
}
DataExchanger.prototype = {
constructor: DataExchanger,
dispose() {
this._store = null;
return this
},
_get(category, name) {
const store = this._store[category] || (this._store[category] = {});
return store[name] || (store[name] = {
callbacks: (0, _callbacks.default)()
})
},
set(category, name, data) {
const item = this._get(category, name);
item.data = data;
item.callbacks.fire(data);
return this
},
bind(category, name, callback) {
const item = this._get(category, name);
item.callbacks.add(callback);
item.data && callback(item.data);
return this
},
unbind(category, name, callback) {
const item = this._get(category, name);
item.callbacks.remove(callback);
return this
}
};