123456789101112131415161718192021222324252627282930313233343536373839 |
- import { eventList } from './shared';
- export function getEventObj(name, params) {
- const eventType = eventList.find(({ id }) => id === name)?.type ?? '';
- let event;
- switch (eventType) {
- case 'mouse-event':
- event = new MouseEvent(name, params);
- break;
- case 'focus-event':
- event = new FocusEvent(name, params);
- break;
- case 'touch-event':
- event = new TouchEvent(name, params);
- break;
- case 'keyboard-event':
- event = new KeyboardEvent(name, params);
- break;
- case 'wheel-event':
- event = new WheelEvent(name, params);
- break;
- default:
- event = new Event(name, params);
- }
- return event;
- }
- export default function (element, name, params) {
- const event = getEventObj(name, params);
- const useNativeEvents = ['focus', 'submit', 'blur'];
- if (useNativeEvents.includes(name) && element[name]) {
- element[name]();
- } else {
- element.dispatchEvent(event);
- }
- }
|