HEX
Server: nginx/1.24.0
System: Linux nowruzgan 6.8.0-57-generic #59-Ubuntu SMP PREEMPT_DYNAMIC Sat Mar 15 17:40:59 UTC 2025 x86_64
User: babak (1000)
PHP: 8.3.6
Disabled: NONE
Upload Files
File: /var/www/school/wp-content/themes/blocksy/static/js/events.js
class DomEvents {
	_callbacksMap = {}

	on(topic, callback) {
		const cb = (e) => {
			callback(e.detail)
		}

		this._callbacksMap[callback] = cb

		document.addEventListener(topic, cb)
	}

	once(topic, callback) {
		const cb = (e) => {
			callback(e.detail)
		}

		document.addEventListener(topic, cb, { once: true })
	}

	off(topic, callback) {
		document.removeEventListener(topic, this._callbacksMap[callback])
	}

	trigger(topic, data) {
		document.dispatchEvent(new CustomEvent(topic, { detail: data }))
	}
}

const events = new DomEvents()

window.ctEvents = events

export default events