toMap property
Returns only the active event handlers for non-null callbacks.
Implementation
Map<String, void Function(Event)> get toMap {
final map = <String, void Function(Event)>{};
bool longPressConsumed = false;
Timer? longPressTimer;
void cancelLongPress({bool resetConsumed = false}) {
longPressTimer?.cancel();
longPressTimer = null;
if (resetConsumed) longPressConsumed = false;
}
if (onClick != null) {
map['click'] = (e) {
if (longPressConsumed) {
longPressConsumed = false;
return;
}
onClick!.call(e);
};
}
if (onLongPress != null) {
map['pointerdown'] = (e) {
cancelLongPress(resetConsumed: true);
final event = e as PointerEvent;
onPointerDown?.call(event);
longPressTimer = Timer(longPressDuration, () {
longPressConsumed = true;
onLongPress!.call(event);
});
};
map['pointerup'] = (e) {
cancelLongPress();
onPointerUp?.call(e as PointerEvent);
};
map['pointercancel'] = (e) {
cancelLongPress(resetConsumed: true);
onPointerCancel?.call(e as PointerEvent);
};
} else {
if (onPointerDown != null) {
map['pointerdown'] = (e) => onPointerDown!(e as PointerEvent);
}
if (onPointerUp != null) {
map['pointerup'] = (e) => onPointerUp!(e as PointerEvent);
}
if (onPointerCancel != null) {
map['pointercancel'] = (e) => onPointerCancel!(e as PointerEvent);
}
}
if (onDoubleClick != null) {
map['dblclick'] = (e) => onDoubleClick!(e as MouseEvent);
}
if (onPointerEnter != null) {
map['pointerenter'] = (e) => onPointerEnter!(e as PointerEvent);
}
if (onPointerLeave != null) {
map['pointerleave'] = (e) {
if (onLongPress != null) cancelLongPress(resetConsumed: true);
onPointerLeave!(e as PointerEvent);
};
} else if (onLongPress != null) {
map['pointerleave'] = (_) => cancelLongPress(resetConsumed: true);
}
if (onPointerMove != null) {
map['pointermove'] = (e) => onPointerMove!(e as PointerEvent);
}
if (onPointerOver != null) {
map['pointerover'] = (e) => onPointerOver!(e as PointerEvent);
}
if (onPointerOut != null) {
map['pointerout'] = (e) => onPointerOut!(e as PointerEvent);
}
if (onInput != null) map['input'] = (e) => onInput!(e);
if (onChange != null) map['change'] = (e) => onChange!(e);
if (onMouseDown != null) {
map['mousedown'] = (e) => onMouseDown!(e as MouseEvent);
}
if (onMouseUp != null) {
map['mouseup'] = (e) => onMouseUp!(e as MouseEvent);
}
if (onMouseEnter != null) {
map['mouseenter'] = (e) => onMouseEnter!(e as MouseEvent);
}
if (onMouseLeave != null) {
map['mouseleave'] = (e) => onMouseLeave!(e as MouseEvent);
}
if (onMouseMove != null) {
map['mousemove'] = (e) => onMouseMove!(e as MouseEvent);
}
if (onKeyDown != null) {
map['keydown'] = (e) => onKeyDown!(e as KeyboardEvent);
}
if (onKeyUp != null) {
map['keyup'] = (e) => onKeyUp!(e as KeyboardEvent);
}
if (onDrag != null) {
map['drag'] = (e) => onDrag!(e as DragEvent);
}
if (onDragEnd != null) {
map['dragend'] = (e) => onDragEnd!(e as DragEvent);
}
if (onDragEnter != null) {
map['dragenter'] = (e) => onDragEnter!(e as DragEvent);
}
if (onDragLeave != null) {
map['dragleave'] = (e) => onDragLeave!(e as DragEvent);
}
if (onDragOver != null) {
map['dragover'] = (e) => onDragOver!(e as DragEvent);
}
if (onDragStart != null) {
map['dragstart'] = (e) => onDragStart!(e as DragEvent);
}
if (onFocus != null) {
map['focus'] = (e) => onFocus!(e as FocusEvent);
}
if (onFocusIn != null) {
map['focusin'] = (e) => onFocusIn!(e as FocusEvent);
}
if (onFocusOut != null) {
map['focusout'] = (e) => onFocusOut!(e as FocusEvent);
}
if (onBlur != null) {
map['blur'] = (e) => onBlur!(e as FocusEvent);
}
if (onSelect != null) {
map['select'] = (e) => onSelect!(e);
}
if (onInvalid != null) {
map['invalid'] = (e) => onInvalid!(e);
}
if (onPaste != null) {
map['paste'] = (e) => onPaste!(e as ClipboardEvent);
}
if (onSubmit != null) {
map['submit'] = (e) => onSubmit!(e);
}
return map;
}