UNPKG

@visactor/vchart

Version:

charts lib based @visactor/VGrammar

55 lines (50 loc) 1.89 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: !0 }), exports.Bubble = void 0; const event_1 = require("../constant/event"); class Bubble { constructor() { this._map = new Map, this._levelNodes = new Map, this._levelNodes.set(event_1.Event_Bubble_Level.vchart, []), this._levelNodes.set(event_1.Event_Bubble_Level.chart, []), this._levelNodes.set(event_1.Event_Bubble_Level.model, []), this._levelNodes.set(event_1.Event_Bubble_Level.mark, []); } addHandler(handler, level) { var _a; const node = { level: level, handler: handler }; return null === (_a = this._levelNodes.get(level)) || void 0 === _a || _a.push(node), this._map.set(handler.callback, node), this; } removeHandler(handler) { const node = this._map.get(handler.callback); if (!node) return this; this._map.delete(handler.callback); const nodes = this._levelNodes.get(node.level), index = null == nodes ? void 0 : nodes.findIndex((n => n.handler.callback === handler.callback)); return void 0 !== index && index >= 0 && (null == nodes || nodes.splice(index, 1)), this; } preventHandler(handler) { return handler && (handler.prevented = !0), this; } allowHandler(handler) { return handler && (handler.prevented = !1), this; } getHandlers(level) { var _a; return (null === (_a = this._levelNodes.get(level)) || void 0 === _a ? void 0 : _a.map((node => node.handler))) || []; } getAllHandlers() { return Array.from(this._map.values()).map((node => node.handler)) || []; } getCount() { return this._map.size; } release() { this._map.clear(), this._levelNodes.clear(); } } exports.Bubble = Bubble; //# sourceMappingURL=bubble.js.map