Server IP : 80.87.202.40 / Your IP : 216.73.216.169 Web Server : Apache System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64 User : bitrix ( 600) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/bitrix/ext_www/rospirotorg.ru/bitrix/js/main/core/src/lib/event/ |
Upload File : |
import Type from '../type'; export class Registry { registry: WeakMap = new WeakMap(); set(target: Element, event: string, listener: Function) { const events = this.get(target); if (!Type.isSet(events[event])) { events[event] = new Set(); } events[event].add(listener); this.registry.set(target, events); } get(target: Element): {[event: string]: Set<Function>} { return this.registry.get(target) || {}; } has(target: Element, event?: string, listener?: Function): boolean { if (event && listener) { return ( this.registry.has(target) && this.registry.get(target)[event].has(listener) ); } return this.registry.has(target); } delete(target: Element, event?: string, listener?: Function) { if (!Type.isDomNode(target)) { return; } if (Type.isString(event) && Type.isFunction(listener)) { const events = this.registry.get(target); if (Type.isPlainObject(events) && Type.isSet(events[event])) { events[event].delete(listener); } return; } if (Type.isString(event)) { const events = this.registry.get(target); if (Type.isPlainObject(events) && Type.isSet(events[event])) { events[event] = new Set(); } return; } this.registry.delete(target); } } export default new Registry();