@whitesev/pops
Version:
弹窗库
247 lines (232 loc) • 5.5 kB
TypeScript
export type PopsDOMUtilsEventObject<T extends Node> = Event & {
target: T;
};
export type PopsDOMUtilsCreateElementAttributesMap = {
style?: string;
id?: string;
class?: string;
"data-"?: string;
type?: string;
[key: string]: any;
};
/**
* 鼠标事件
* + https://blog.csdn.net/weixin_68658847/article/details/126939879
*/
export interface PopsDOMUtils_MouseEvent {
click: MouseEvent | PointerEvent;
contextmenu: MouseEvent | PointerEvent;
dblclick: MouseEvent | PointerEvent;
mousedown: MouseEvent | PointerEvent;
mouseenter: MouseEvent | PointerEvent;
mouseleave: MouseEvent | PointerEvent;
mousemove: MouseEvent | PointerEvent;
mouseover: MouseEvent | PointerEvent;
mouseout: MouseEvent | PointerEvent;
mouseup: MouseEvent | PointerEvent;
hover: MouseEvent;
}
export type PopsDOMUtils_MouseEventType = keyof PopsDOMUtils_MouseEvent;
/**
* 鼠标事件
*/
export interface PopsDOMUtils_KeyboardEvent {
keydown: KeyboardEvent;
keypress: KeyboardEvent;
keyup: KeyboardEvent;
}
export type PopsDOMUtils_KeyboardEventType = keyof PopsDOMUtils_KeyboardEvent;
/**
* 框架/对象事件
*/
export interface PopsDOMUtils_Frame_Object_Event {
abort: Event;
beforeunload: Event;
error: Event;
hashchange: Event;
load: Event;
pageshow: Event;
pagehide: Event;
resize: Event;
scroll: Event;
unload: Event;
}
export type PopsDOMUtils_Frame_Object_EventType =
keyof PopsDOMUtils_Frame_Object_Event;
/**
* 表单事件
*/
export interface PopsDOMUtils_FormEvent {
blur: Event;
change: Event;
focus: Event;
focusin: Event;
focusout: Event;
input: Event;
reset: Event;
search: Event;
}
export type PopsDOMUtils_FormEventType = keyof PopsDOMUtils_FormEvent;
/**
* 剪贴板事件
*/
export interface PopsDOMUtils_ClipboardEvent {
copy: ClipboardEvent;
cut: ClipboardEvent;
paste: ClipboardEvent;
}
export type PopsDOMUtils_ClipboardEventType = keyof PopsDOMUtils_ClipboardEvent;
/**
* 打印事件
*/
export interface PopsDOMUtils_PrintEvent {
afterprint: Event;
beforeprint: Event;
}
export type PopsDOMUtils_PrintEventType = keyof PopsDOMUtils_PrintEvent;
/**
* 拖动事件
*/
export interface PopsDOMUtils_DragEvent {
drag: DragEvent;
dragend: DragEvent;
dragenter: DragEvent;
dragleave: DragEvent;
dragover: DragEvent;
dragstart: DragEvent;
drop: DragEvent;
}
export type PopsDOMUtils_DragEventType = keyof PopsDOMUtils_DragEvent;
/**
* 多媒体(Media)事件
*/
export interface PopsDOMUtils_MediaEvent {
abort: Event;
canplay: Event;
canplaythrough: Event;
durationchange: Event;
emptied: Event;
ended: Event;
error: Event;
loadeddata: Event;
loadedmetadata: Event;
loadstart: Event;
pause: Event;
play: Event;
playing: Event;
progress: Event;
ratechange: Event;
seeked: Event;
seeking: Event;
stalled: Event;
suspend: Event;
timeupdate: Event;
volumechange: Event;
waiting: Event;
}
export type PopsDOMUtils_MediaEventType = keyof PopsDOMUtils_MediaEvent;
/**
* 动画事件
*/
export interface PopsDOMUtils_AnimationEvent {
animationend: AnimationEvent;
animationiteration: AnimationEvent;
animationstart: AnimationEvent;
}
export type PopsDOMUtils_AnimationEventType = keyof PopsDOMUtils_AnimationEvent;
/**
* 过渡事件
*/
export interface PopsDOMUtils_TransitionEvent {
transitionend: TransitionEvent;
}
export type PopsDOMUtils_TransitionEventType =
keyof PopsDOMUtils_TransitionEvent;
/**
* 触摸事件
*/
export interface PopsDOMUtils_TouchEvent {
touchstart: TouchEvent;
touchmove: TouchEvent;
touchend: TouchEvent;
touchcancel: TouchEvent;
touchenter: TouchEvent;
touchleave: TouchEvent;
}
export type PopsDOMUtils_TouchEventType = keyof PopsDOMUtils_TouchEvent;
/**
* 其它事件
*/
export interface PopsDOMUtils_OtherEvent {
message: Event;
online: Event;
offline: Event;
popstate: Event;
show: Event;
storage: Event;
toggle: Event;
wheel: Event;
propertychange: Event;
fullscreenchange: Event;
DOMContentLoaded: Event;
}
export type PopsDOMUtils_OtherEventType = keyof PopsDOMUtils_OtherEvent;
/**
* 全部事件
*/
export type PopsDOMUtils_Event = PopsDOMUtils_MouseEvent &
PopsDOMUtils_KeyboardEvent &
PopsDOMUtils_Frame_Object_Event &
PopsDOMUtils_FormEvent &
PopsDOMUtils_ClipboardEvent &
PopsDOMUtils_PrintEvent &
PopsDOMUtils_DragEvent &
PopsDOMUtils_MediaEvent &
PopsDOMUtils_AnimationEvent &
PopsDOMUtils_TransitionEvent &
PopsDOMUtils_TouchEvent &
PopsDOMUtils_OtherEvent;
/**
* 事件类型
*/
export type PopsDOMUtils_EventType = keyof PopsDOMUtils_Event;
/**
* 元素上的events属性
*/
export interface PopsDOMUtilsEventListenerOptionsAttribute {
/**
* 自定义的ownCallBack
*/
callback: () => void;
/**
* 属性配置
*/
option: AddEventListenerOptions;
/**
* 用户添加的事件
*/
originCallBack: () => void;
/**
* 子元素选择器
*/
selector?: string;
}
export type PopsDOMUtilsElementEventType =
| HTMLElement
| string
| NodeList
| (HTMLElement | Window | Document | Element | typeof globalThis)[]
| Window
| Document
| Element
| null
| typeof globalThis
| ShadowRoot
| EventTarget
| ChildNode
| Node;
export type ParseHTMLReturnType<T1, T2> = T1 extends true
? T2 extends true
? Document
: HTMLElement
: HTMLElement;