@awsui/components-react
Version:
AWS UI is a collection of [React](https://reactjs.org/) components that help create intuitive, responsive, and accessible user experiences for web applications. It is developed by Amazon Web Services (AWS). This work is available under the terms of the [A
46 lines (45 loc) • 1.48 kB
JavaScript
export function createCustomEvent(_a) {
var cancelable = _a.cancelable, detail = _a.detail;
var event = document.createEvent('CustomEvent');
event.initCustomEvent('awsui', false, cancelable, detail);
var origPreventDefault = event.preventDefault.bind(event);
event.preventDefault = function () {
origPreventDefault();
Object.defineProperty(this, 'defaultPrevented', {
get: function () { return true; },
configurable: true
});
};
return event;
}
export function fireNonCancelableEvent(handler, detail) {
if (!handler) {
return;
}
var event = createCustomEvent({ cancelable: false, detail: detail });
handler(event);
}
export function fireCancelableEvent(handler, detail, sourceEvent) {
if (!handler) {
return false;
}
var event = createCustomEvent({ cancelable: true, detail: detail });
handler(event);
if (event.defaultPrevented && sourceEvent) {
sourceEvent.preventDefault();
}
if (event.cancelBubble && sourceEvent) {
sourceEvent.stopPropagation();
}
return event.defaultPrevented;
}
export function fireKeyboardEvent(handler, reactEvent) {
return fireCancelableEvent(handler, {
keyCode: reactEvent.keyCode,
key: reactEvent.key,
ctrlKey: reactEvent.ctrlKey,
shiftKey: reactEvent.shiftKey,
altKey: reactEvent.altKey,
metaKey: reactEvent.metaKey
}, reactEvent);
}