SourceTermAnalysisSystem_vue/node_modules/@antv/x6-common/es/dom/event/main.js
2026-05-15 10:22:44 +08:00

112 lines
3.8 KiB
JavaScript

/* eslint-disable no-param-reassign */
import { Core } from './core';
import { Util } from './util';
export var Event;
(function (Event) {
function on(elem, events, selector, data, handler) {
Private.on(elem, events, selector, data, handler);
return elem;
}
Event.on = on;
function once(elem, events, selector, data, handler) {
Private.on(elem, events, selector, data, handler, true);
return elem;
}
Event.once = once;
function off(elem, events, selector, handler) {
Private.off(elem, events, selector, handler);
return elem;
}
Event.off = off;
function trigger(elem, event, args,
/**
* When onlyHandlers is `true`
* - Will not call `.event()` on the element it is triggered on. This means
* `.trigger('submit', [], true)` on a form will not call `.submit()` on
* the form.
* - Events will not bubble up the DOM hierarchy; if they are not handled
* by the target element directly, they do nothing.
*/
onlyHandlers) {
Core.trigger(event, args, elem, onlyHandlers);
return elem;
}
Event.trigger = trigger;
})(Event || (Event = {}));
var Private;
(function (Private) {
function on(elem, types, selector, data, fn, once) {
// Types can be a map of types/handlers
if (typeof types === 'object') {
// ( types-Object, selector, data )
if (typeof selector !== 'string') {
// ( types-Object, data )
data = data || selector;
selector = undefined;
}
Object.keys(types).forEach((type) => on(elem, type, selector, data, types[type], once));
return;
}
if (data == null && fn == null) {
// ( types, fn )
fn = selector;
data = selector = undefined;
}
else if (fn == null) {
if (typeof selector === 'string') {
// ( types, selector, fn )
fn = data;
data = undefined;
}
else {
// ( types, data, fn )
fn = data;
data = selector;
selector = undefined;
}
}
if (fn === false) {
fn = Util.returnFalse;
}
else if (!fn) {
return;
}
if (once) {
const originHandler = fn;
fn = function (event, ...args) {
// Can use an empty set, since event contains the info
Private.off(elem, event);
return originHandler.call(this, event, ...args);
};
// Use same guid so caller can remove using origFn
Util.setHandlerId(fn, Util.ensureHandlerId(originHandler));
}
Core.on(elem, types, fn, data, selector);
}
Private.on = on;
function off(elem, events, selector, fn) {
const evt = events;
if (evt && evt.preventDefault != null && evt.handleObj != null) {
const obj = evt.handleObj;
off(evt.delegateTarget, obj.namespace ? `${obj.originType}.${obj.namespace}` : obj.originType, obj.selector, obj.handler);
return;
}
if (typeof events === 'object') {
// ( types-object [, selector] )
const types = events;
Object.keys(types).forEach((type) => off(elem, type, selector, types[type]));
return;
}
if (selector === false || typeof selector === 'function') {
// ( types [, fn] )
fn = selector;
selector = undefined;
}
if (fn === false) {
fn = Util.returnFalse;
}
Core.off(elem, events, fn, selector);
}
Private.off = off;
})(Private || (Private = {}));
//# sourceMappingURL=main.js.map