local J={}local U={copy={EventType="\067\108\105\112\098\111\097\114\100\069\118\101\110\116",defaultInit={bubbles=true;cancelable=true;composed=true}};cut={EventType="\067\108\105\112\098\111\097\114\100\069\118\101\110\116",defaultInit={bubbles=true,cancelable=true,composed=true}};paste={EventType="\067\108\105\112\098\111\097\114\100\069\118\101\110\116";defaultInit={bubbles=true,cancelable=true,composed=true}};compositionEnd={EventType="\067\111\109\112\111\115\105\116\105\111\110\069\118\101\110\116",defaultInit={bubbles=true;cancelable=true,composed=true}},compositionStart={EventType="\067\111\109\112\111\115\105\116\105\111\110\069\118\101\110\116",defaultInit={bubbles=true,cancelable=true,composed=true}},compositionUpdate={EventType="\067\111\109\112\111\115\105\116\105\111\110\069\118\101\110\116",defaultInit={bubbles=true;cancelable=true;composed=true}},keyDown={EventType="\075\101\121\098\111\097\114\100\069\118\101\110\116",defaultInit={bubbles=true;cancelable=true;charCode=0;composed=true}},keyPress={EventType="\075\101\121\098\111\097\114\100\069\118\101\110\116";defaultInit={bubbles=true;cancelable=true;charCode=0;composed=true}};keyUp={EventType="\075\101\121\098\111\097\114\100\069\118\101\110\116",defaultInit={bubbles=true;cancelable=true;charCode=0,composed=true}},focus={EventType="\070\111\099\117\115\069\118\101\110\116",defaultInit={bubbles=false;cancelable=false;composed=true}},blur={EventType="\070\111\099\117\115\069\118\101\110\116";defaultInit={bubbles=false;cancelable=false;composed=true}};focusIn={EventType="\070\111\099\117\115\069\118\101\110\116";defaultInit={bubbles=true,cancelable=false,composed=true}},focusOut={EventType="\070\111\099\117\115\069\118\101\110\116",defaultInit={bubbles=true;cancelable=false,composed=true}};change={EventType="\069\118\101\110\116",defaultInit={bubbles=true;cancelable=false}};input={EventType="\073\110\112\117\116\069\118\101\110\116",defaultInit={bubbles=true;cancelable=false;composed=true}};invalid={EventType="\069\118\101\110\116",defaultInit={bubbles=false,cancelable=true}},submit={EventType="\069\118\101\110\116",defaultInit={bubbles=true,cancelable=true}};reset={EventType="\069\118\101\110\116";defaultInit={bubbles=true;cancelable=true}};click={EventType="\077\111\117\115\101\069\118\101\110\116";defaultInit={bubbles=true,cancelable=true;button=0,composed=true}};contextMenu={EventType="\077\111\117\115\101\069\118\101\110\116",defaultInit={bubbles=true,cancelable=true,composed=true}};dblClick={EventType="\077\111\117\115\101\069\118\101\110\116";defaultInit={bubbles=true,cancelable=true;composed=true}},drag={EventType="\068\114\097\103\069\118\101\110\116",defaultInit={bubbles=true;cancelable=true,composed=true}},dragEnd={EventType="\068\114\097\103\069\118\101\110\116",defaultInit={bubbles=true;cancelable=false,composed=true}};dragEnter={EventType="\068\114\097\103\069\118\101\110\116";defaultInit={bubbles=true;cancelable=true;composed=true}};dragExit={EventType="\068\114\097\103\069\118\101\110\116",defaultInit={bubbles=true;cancelable=false,composed=true}};dragLeave={EventType="\068\114\097\103\069\118\101\110\116";defaultInit={bubbles=true;cancelable=false,composed=true}},dragOver={EventType="\068\114\097\103\069\118\101\110\116";defaultInit={bubbles=true;cancelable=true,composed=true}},dragStart={EventType="\068\114\097\103\069\118\101\110\116",defaultInit={bubbles=true,cancelable=true,composed=true}},drop={EventType="\068\114\097\103\069\118\101\110\116";defaultInit={bubbles=true,cancelable=true,composed=true}};mouseDown={EventType="\077\111\117\115\101\069\118\101\110\116",defaultInit={bubbles=true;cancelable=true,composed=true}},mouseEnter={EventType="\077\111\117\115\101\069\118\101\110\116";defaultInit={bubbles=false;cancelable=false;composed=true}},mouseLeave={EventType="\077\111\117\115\101\069\118\101\110\116",defaultInit={bubbles=false;cancelable=false;composed=true}},mouseMove={EventType="\077\111\117\115\101\069\118\101\110\116",defaultInit={bubbles=true,cancelable=true,composed=true}},mouseOut={EventType="\077\111\117\115\101\069\118\101\110\116",defaultInit={bubbles=true;cancelable=true;composed=true}};mouseOver={EventType="\077\111\117\115\101\069\118\101\110\116";defaultInit={bubbles=true;cancelable=true,composed=true}},mouseUp={EventType="\077\111\117\115\101\069\118\101\110\116";defaultInit={bubbles=true,cancelable=true;composed=true}},select={EventType="\069\118\101\110\116";defaultInit={bubbles=true;cancelable=false}};touchCancel={EventType="\084\111\117\099\104\069\118\101\110\116",defaultInit={bubbles=true;cancelable=false;composed=true}};touchEnd={EventType="\084\111\117\099\104\069\118\101\110\116";defaultInit={bubbles=true,cancelable=true;composed=true}},touchMove={EventType="\084\111\117\099\104\069\118\101\110\116",defaultInit={bubbles=true,cancelable=true,composed=true}};touchStart={EventType="\084\111\117\099\104\069\118\101\110\116";defaultInit={bubbles=true,cancelable=true,composed=true}};resize={EventType="\085\073\069\118\101\110\116",defaultInit={bubbles=false;cancelable=false}};scroll={EventType="\085\073\069\118\101\110\116",defaultInit={bubbles=false;cancelable=false}};wheel={EventType="\087\104\101\101\108\069\118\101\110\116",defaultInit={bubbles=true;cancelable=true,composed=true}},abort={EventType="\069\118\101\110\116";defaultInit={bubbles=false;cancelable=false}},canPlay={EventType="\069\118\101\110\116",defaultInit={bubbles=false,cancelable=false}};canPlayThrough={EventType="\069\118\101\110\116";defaultInit={bubbles=false;cancelable=false}};durationChange={EventType="\069\118\101\110\116",defaultInit={bubbles=false,cancelable=false}},emptied={EventType="\069\118\101\110\116";defaultInit={bubbles=false,cancelable=false}};encrypted={EventType="\069\118\101\110\116";defaultInit={bubbles=false,cancelable=false}};ended={EventType="\069\118\101\110\116",defaultInit={bubbles=false;cancelable=false}},loadedData={EventType="\069\118\101\110\116",defaultInit={bubbles=false;cancelable=false}},loadedMetadata={EventType="\069\118\101\110\116";defaultInit={bubbles=false;cancelable=false}};loadStart={EventType="\080\114\111\103\114\101\115\115\069\118\101\110\116";defaultInit={bubbles=false;cancelable=false}};pause={EventType="\069\118\101\110\116",defaultInit={bubbles=false,cancelable=false}},play={EventType="\069\118\101\110\116";defaultInit={bubbles=false,cancelable=false}},playing={EventType="\069\118\101\110\116";defaultInit={bubbles=false;cancelable=false}};progress={EventType="\080\114\111\103\114\101\115\115\069\118\101\110\116",defaultInit={bubbles=false,cancelable=false}},rateChange={EventType="\069\118\101\110\116";defaultInit={bubbles=false;cancelable=false}},seeked={EventType="\069\118\101\110\116";defaultInit={bubbles=false,cancelable=false}},seeking={EventType="\069\118\101\110\116";defaultInit={bubbles=false;cancelable=false}};stalled={EventType="\069\118\101\110\116";defaultInit={bubbles=false,cancelable=false}},suspend={EventType="\069\118\101\110\116",defaultInit={bubbles=false,cancelable=false}},timeUpdate={EventType="\069\118\101\110\116";defaultInit={bubbles=false,cancelable=false}},volumeChange={EventType="\069\118\101\110\116",defaultInit={bubbles=false,cancelable=false}},waiting={EventType="\069\118\101\110\116";defaultInit={bubbles=false,cancelable=false}},load={EventType="\085\073\069\118\101\110\116",defaultInit={bubbles=false;cancelable=false}};error={EventType="\069\118\101\110\116";defaultInit={bubbles=false;cancelable=false}},animationStart={EventType="\065\110\105\109\097\116\105\111\110\069\118\101\110\116",defaultInit={bubbles=true;cancelable=false}};animationEnd={EventType="\065\110\105\109\097\116\105\111\110\069\118\101\110\116";defaultInit={bubbles=true;cancelable=false}},animationIteration={EventType="\065\110\105\109\097\116\105\111\110\069\118\101\110\116",defaultInit={bubbles=true;cancelable=false}},transitionCancel={EventType="\084\114\097\110\115\105\116\105\111\110\069\118\101\110\116";defaultInit={bubbles=true,cancelable=false}},transitionEnd={EventType="\084\114\097\110\115\105\116\105\111\110\069\118\101\110\116",defaultInit={bubbles=true;cancelable=true}};transitionRun={EventType="\084\114\097\110\115\105\116\105\111\110\069\118\101\110\116";defaultInit={bubbles=true;cancelable=false}},transitionStart={EventType="\084\114\097\110\115\105\116\105\111\110\069\118\101\110\116";defaultInit={bubbles=true;cancelable=false}},pointerOver={EventType="\080\111\105\110\116\101\114\069\118\101\110\116";defaultInit={bubbles=true;cancelable=true;composed=true}};pointerEnter={EventType="\080\111\105\110\116\101\114\069\118\101\110\116";defaultInit={bubbles=false,cancelable=false}};pointerDown={EventType="\080\111\105\110\116\101\114\069\118\101\110\116",defaultInit={bubbles=true,cancelable=true,composed=true}},pointerMove={EventType="\080\111\105\110\116\101\114\069\118\101\110\116";defaultInit={bubbles=true;cancelable=true,composed=true}};pointerUp={EventType="\080\111\105\110\116\101\114\069\118\101\110\116",defaultInit={bubbles=true;cancelable=true;composed=true}};pointerCancel={EventType="\080\111\105\110\116\101\114\069\118\101\110\116",defaultInit={bubbles=true,cancelable=false;composed=true}},pointerOut={EventType="\080\111\105\110\116\101\114\069\118\101\110\116";defaultInit={bubbles=true,cancelable=true;composed=true}};pointerLeave={EventType="\080\111\105\110\116\101\114\069\118\101\110\116";defaultInit={bubbles=false;cancelable=false}},gotPointerCapture={EventType="\080\111\105\110\116\101\114\069\118\101\110\116",defaultInit={bubbles=true,cancelable=false,composed=true}},lostPointerCapture={EventType="\080\111\105\110\116\101\114\069\118\101\110\116",defaultInit={bubbles=true;cancelable=false,composed=true}};popState={EventType="\080\111\112\083\116\097\116\101\069\118\101\110\116";defaultInit={bubbles=true;cancelable=false}}}J.eventMap=U local f={doubleClick="\100\098\108\067\108\105\099\107"}J.eventAliasMap=f return J
-- ROBLOX upstream: https://github.com/testing-library/dom-testing-library/blob/v8.14.0/src/event-map.js
local exports = {}

local eventMap = {
	-- Clipboard Events
	copy = {
		EventType = "ClipboardEvent",
		defaultInit = { bubbles = true, cancelable = true, composed = true },
	},
	cut = {
		EventType = "ClipboardEvent",
		defaultInit = { bubbles = true, cancelable = true, composed = true },
	},
	paste = {
		EventType = "ClipboardEvent",
		defaultInit = { bubbles = true, cancelable = true, composed = true },
	},
	-- Composition Events
	compositionEnd = {
		EventType = "CompositionEvent",
		defaultInit = { bubbles = true, cancelable = true, composed = true },
	},
	compositionStart = {
		EventType = "CompositionEvent",
		defaultInit = { bubbles = true, cancelable = true, composed = true },
	},
	compositionUpdate = {
		EventType = "CompositionEvent",
		defaultInit = { bubbles = true, cancelable = true, composed = true },
	},
	-- Keyboard Events
	keyDown = {
		EventType = "KeyboardEvent",
		defaultInit = { bubbles = true, cancelable = true, charCode = 0, composed = true },
	},
	keyPress = {
		EventType = "KeyboardEvent",
		defaultInit = { bubbles = true, cancelable = true, charCode = 0, composed = true },
	},
	keyUp = {
		EventType = "KeyboardEvent",
		defaultInit = { bubbles = true, cancelable = true, charCode = 0, composed = true },
	},
	-- Focus Events
	focus = {
		EventType = "FocusEvent",
		defaultInit = { bubbles = false, cancelable = false, composed = true },
	},
	blur = {
		EventType = "FocusEvent",
		defaultInit = { bubbles = false, cancelable = false, composed = true },
	},
	focusIn = {
		EventType = "FocusEvent",
		defaultInit = { bubbles = true, cancelable = false, composed = true },
	},
	focusOut = {
		EventType = "FocusEvent",
		defaultInit = { bubbles = true, cancelable = false, composed = true },
	},
	-- Form Events
	change = { EventType = "Event", defaultInit = { bubbles = true, cancelable = false } },
	input = {
		EventType = "InputEvent",
		defaultInit = { bubbles = true, cancelable = false, composed = true },
	},
	invalid = { EventType = "Event", defaultInit = { bubbles = false, cancelable = true } },
	submit = { EventType = "Event", defaultInit = { bubbles = true, cancelable = true } },
	reset = { EventType = "Event", defaultInit = { bubbles = true, cancelable = true } },
	-- Mouse Events
	click = {
		EventType = "MouseEvent",
		defaultInit = { bubbles = true, cancelable = true, button = 0, composed = true },
	},
	contextMenu = {
		EventType = "MouseEvent",
		defaultInit = { bubbles = true, cancelable = true, composed = true },
	},
	dblClick = {
		EventType = "MouseEvent",
		defaultInit = { bubbles = true, cancelable = true, composed = true },
	},
	drag = {
		EventType = "DragEvent",
		defaultInit = { bubbles = true, cancelable = true, composed = true },
	},
	dragEnd = {
		EventType = "DragEvent",
		defaultInit = { bubbles = true, cancelable = false, composed = true },
	},
	dragEnter = {
		EventType = "DragEvent",
		defaultInit = { bubbles = true, cancelable = true, composed = true },
	},
	dragExit = {
		EventType = "DragEvent",
		defaultInit = { bubbles = true, cancelable = false, composed = true },
	},
	dragLeave = {
		EventType = "DragEvent",
		defaultInit = { bubbles = true, cancelable = false, composed = true },
	},
	dragOver = {
		EventType = "DragEvent",
		defaultInit = { bubbles = true, cancelable = true, composed = true },
	},
	dragStart = {
		EventType = "DragEvent",
		defaultInit = { bubbles = true, cancelable = true, composed = true },
	},
	drop = {
		EventType = "DragEvent",
		defaultInit = { bubbles = true, cancelable = true, composed = true },
	},
	mouseDown = {
		EventType = "MouseEvent",
		defaultInit = { bubbles = true, cancelable = true, composed = true },
	},
	mouseEnter = {
		EventType = "MouseEvent",
		defaultInit = { bubbles = false, cancelable = false, composed = true },
	},
	mouseLeave = {
		EventType = "MouseEvent",
		defaultInit = { bubbles = false, cancelable = false, composed = true },
	},
	mouseMove = {
		EventType = "MouseEvent",
		defaultInit = { bubbles = true, cancelable = true, composed = true },
	},
	mouseOut = {
		EventType = "MouseEvent",
		defaultInit = { bubbles = true, cancelable = true, composed = true },
	},
	mouseOver = {
		EventType = "MouseEvent",
		defaultInit = { bubbles = true, cancelable = true, composed = true },
	},
	mouseUp = {
		EventType = "MouseEvent",
		defaultInit = { bubbles = true, cancelable = true, composed = true },
	},
	-- Selection Events
	select = { EventType = "Event", defaultInit = { bubbles = true, cancelable = false } },
	-- Touch Events
	touchCancel = {
		EventType = "TouchEvent",
		defaultInit = { bubbles = true, cancelable = false, composed = true },
	},
	touchEnd = {
		EventType = "TouchEvent",
		defaultInit = { bubbles = true, cancelable = true, composed = true },
	},
	touchMove = {
		EventType = "TouchEvent",
		defaultInit = { bubbles = true, cancelable = true, composed = true },
	},
	touchStart = {
		EventType = "TouchEvent",
		defaultInit = { bubbles = true, cancelable = true, composed = true },
	},
	-- UI Events
	resize = { EventType = "UIEvent", defaultInit = { bubbles = false, cancelable = false } },
	scroll = { EventType = "UIEvent", defaultInit = { bubbles = false, cancelable = false } },
	-- Wheel Events
	wheel = {
		EventType = "WheelEvent",
		defaultInit = { bubbles = true, cancelable = true, composed = true },
	},
	-- Media Events
	abort = { EventType = "Event", defaultInit = { bubbles = false, cancelable = false } },
	canPlay = { EventType = "Event", defaultInit = { bubbles = false, cancelable = false } },
	canPlayThrough = { EventType = "Event", defaultInit = { bubbles = false, cancelable = false } },
	durationChange = { EventType = "Event", defaultInit = { bubbles = false, cancelable = false } },
	emptied = { EventType = "Event", defaultInit = { bubbles = false, cancelable = false } },
	encrypted = { EventType = "Event", defaultInit = { bubbles = false, cancelable = false } },
	ended = { EventType = "Event", defaultInit = { bubbles = false, cancelable = false } },
	loadedData = { EventType = "Event", defaultInit = { bubbles = false, cancelable = false } },
	loadedMetadata = { EventType = "Event", defaultInit = { bubbles = false, cancelable = false } },
	loadStart = {
		EventType = "ProgressEvent",
		defaultInit = { bubbles = false, cancelable = false },
	},
	pause = { EventType = "Event", defaultInit = { bubbles = false, cancelable = false } },
	play = { EventType = "Event", defaultInit = { bubbles = false, cancelable = false } },
	playing = { EventType = "Event", defaultInit = { bubbles = false, cancelable = false } },
	progress = {
		EventType = "ProgressEvent",
		defaultInit = { bubbles = false, cancelable = false },
	},
	rateChange = { EventType = "Event", defaultInit = { bubbles = false, cancelable = false } },
	seeked = { EventType = "Event", defaultInit = { bubbles = false, cancelable = false } },
	seeking = { EventType = "Event", defaultInit = { bubbles = false, cancelable = false } },
	stalled = { EventType = "Event", defaultInit = { bubbles = false, cancelable = false } },
	suspend = { EventType = "Event", defaultInit = { bubbles = false, cancelable = false } },
	timeUpdate = { EventType = "Event", defaultInit = { bubbles = false, cancelable = false } },
	volumeChange = { EventType = "Event", defaultInit = { bubbles = false, cancelable = false } },
	waiting = { EventType = "Event", defaultInit = { bubbles = false, cancelable = false } },
	-- Image Events
	load = { EventType = "UIEvent", defaultInit = { bubbles = false, cancelable = false } },
	error = { EventType = "Event", defaultInit = { bubbles = false, cancelable = false } },
	-- Animation Events
	animationStart = {
		EventType = "AnimationEvent",
		defaultInit = { bubbles = true, cancelable = false },
	},
	animationEnd = {
		EventType = "AnimationEvent",
		defaultInit = { bubbles = true, cancelable = false },
	},
	animationIteration = {
		EventType = "AnimationEvent",
		defaultInit = { bubbles = true, cancelable = false },
	},
	-- Transition Events
	transitionCancel = {
		EventType = "TransitionEvent",
		defaultInit = { bubbles = true, cancelable = false },
	},
	transitionEnd = {
		EventType = "TransitionEvent",
		defaultInit = { bubbles = true, cancelable = true },
	},
	transitionRun = {
		EventType = "TransitionEvent",
		defaultInit = { bubbles = true, cancelable = false },
	},
	transitionStart = {
		EventType = "TransitionEvent",
		defaultInit = { bubbles = true, cancelable = false },
	},
	-- pointer events
	pointerOver = {
		EventType = "PointerEvent",
		defaultInit = { bubbles = true, cancelable = true, composed = true },
	},
	pointerEnter = {
		EventType = "PointerEvent",
		defaultInit = { bubbles = false, cancelable = false },
	},
	pointerDown = {
		EventType = "PointerEvent",
		defaultInit = { bubbles = true, cancelable = true, composed = true },
	},
	pointerMove = {
		EventType = "PointerEvent",
		defaultInit = { bubbles = true, cancelable = true, composed = true },
	},
	pointerUp = {
		EventType = "PointerEvent",
		defaultInit = { bubbles = true, cancelable = true, composed = true },
	},
	pointerCancel = {
		EventType = "PointerEvent",
		defaultInit = { bubbles = true, cancelable = false, composed = true },
	},
	pointerOut = {
		EventType = "PointerEvent",
		defaultInit = { bubbles = true, cancelable = true, composed = true },
	},
	pointerLeave = {
		EventType = "PointerEvent",
		defaultInit = { bubbles = false, cancelable = false },
	},
	gotPointerCapture = {
		EventType = "PointerEvent",
		defaultInit = { bubbles = true, cancelable = false, composed = true },
	},
	lostPointerCapture = {
		EventType = "PointerEvent",
		defaultInit = { bubbles = true, cancelable = false, composed = true },
	},
	-- history events
	popState = {
		EventType = "PopStateEvent",
		defaultInit = { bubbles = true, cancelable = false },
	},
}
exports.eventMap = eventMap

local eventAliasMap = { doubleClick = "dblClick" }
exports.eventAliasMap = eventAliasMap

return exports
