vue-material-adapter
Version:
Vue 3 wrapper arround Material Components for the Web
30 lines (25 loc) • 679 B
JavaScript
export function emitCustomEvent(
element,
eventType,
eventData,
shouldBubble = false,
) {
if (element) {
eventType = eventType.toLowerCase();
const event_ =
typeof CustomEvent === 'function'
? new CustomEvent(eventType, {
detail: eventData,
bubbles: shouldBubble,
})
: createCustomEvent(eventType, shouldBubble, eventData);
element.dispatchEvent(event_);
}
}
// ===
// Private functions
// ===
const createCustomEvent = (eventType, shouldBubble, eventData) => {
const event_ = document.createEvent('CustomEvent');
return event_.initCustomEvent(eventType, shouldBubble, false, eventData);
};