move TransformEvent to own file

This commit is contained in:
Orion Reed 2024-12-06 17:07:20 -05:00
parent 0aae04a8af
commit ba2b819ea4
1 changed files with 61 additions and 0 deletions

View File

@ -0,0 +1,61 @@
import type { TransformDOMRectReadonly } from './TransformDOMRect';
// TODO: expose previous and current rects
export class TransformEvent extends Event {
readonly #current: TransformDOMRectReadonly;
readonly #previous: TransformDOMRectReadonly;
constructor(current: TransformDOMRectReadonly, previous?: TransformDOMRectReadonly) {
super('transform', { cancelable: true, bubbles: true });
this.#current = current;
this.#previous = previous ?? current;
}
get current() {
return this.#current;
}
get previous() {
return this.#previous;
}
#xPrevented = false;
get xPrevented() {
return this.defaultPrevented || this.#xPrevented;
}
preventX() {
this.#xPrevented = true;
}
#yPrevented = false;
get yPrevented() {
return this.defaultPrevented || this.#yPrevented;
}
preventY() {
this.#yPrevented = true;
}
#heightPrevented = false;
get heightPrevented() {
return this.defaultPrevented || this.#heightPrevented;
}
preventHeight() {
this.#heightPrevented = true;
}
#widthPrevented = false;
get widthPrevented() {
return this.defaultPrevented || this.#widthPrevented;
}
preventWidth() {
this.#widthPrevented = true;
}
#rotatePrevented = false;
get rotatePrevented() {
return this.defaultPrevented || this.#rotatePrevented;
}
preventRotate() {
this.#rotatePrevented = true;
}
}