const eventRegistry = {};
let uidCounter = 1;
function makeEventUid(element) {
return element.uidEvent || (element.uidEvent = uid-${uidCounter++});
}
function getElementEvents(element) {
const uid = makeEventUid(element);
element.uidEvent = uid;
eventRegistry[uid] = eventRegistry[uid] || {};
return eventRegistry[uid];
}
function hydrateObj(obj, props) {
for (const key in props) {
obj[key] = props[key];
}
}
const EventHandler = {
off: function (element, eventType, fn) {
element.removeEventListener(eventType, fn);
}
};
function bootstrapHandler(element, fn) {
return function handler(event) {
hydrateObj(event, {
delegateTarget: element
});
if (handler.oneOff) {
EventHandler.off(element, event.type, fn);
}
return fn.apply(element, [event]);
};
}
Originally posted by @Sahil3378 in #41482 (review)
const eventRegistry = {};
let uidCounter = 1;
function makeEventUid(element) {
return element.uidEvent || (element.uidEvent =
uid-${uidCounter++});}
function getElementEvents(element) {
const uid = makeEventUid(element);
element.uidEvent = uid;
eventRegistry[uid] = eventRegistry[uid] || {};
return eventRegistry[uid];
}
function hydrateObj(obj, props) {
for (const key in props) {
obj[key] = props[key];
}
}
const EventHandler = {
off: function (element, eventType, fn) {
element.removeEventListener(eventType, fn);
}
};
function bootstrapHandler(element, fn) {
return function handler(event) {
hydrateObj(event, {
delegateTarget: element
});
if (handler.oneOff) {
EventHandler.off(element, event.type, fn);
}
return fn.apply(element, [event]);
};
}
Originally posted by @Sahil3378 in #41482 (review)