{"version":3,"file":"FederatedMouseEvent.mjs","sources":["../../src/events/FederatedMouseEvent.ts"],"sourcesContent":["import { Point } from '../maths/point/Point';\nimport { FederatedEvent } from './FederatedEvent';\n\nimport type { PointData } from '../maths/point/PointData';\nimport type { Container } from '../scene/container/Container';\nimport type { PixiTouch } from './FederatedEvent';\n\n/**\n * A {@link FederatedEvent} for mouse events.\n * @memberof events\n */\nexport class FederatedMouseEvent extends FederatedEvent<\nMouseEvent | PointerEvent | PixiTouch\n> implements MouseEvent\n{\n    /** Whether the \"alt\" key was pressed when this mouse event occurred. */\n    public altKey: boolean;\n\n    /** The specific button that was pressed in this mouse event. */\n    public button: number;\n\n    /** The button depressed when this event occurred. */\n    public buttons: number;\n\n    /** Whether the \"control\" key was pressed when this mouse event occurred. */\n    public ctrlKey: boolean;\n\n    /** Whether the \"meta\" key was pressed when this mouse event occurred. */\n    public metaKey: boolean;\n\n    /** This is currently not implemented in the Federated Events API. */\n    public relatedTarget: EventTarget;\n\n    /** Whether the \"shift\" key was pressed when this mouse event occurred. */\n    public shiftKey: boolean;\n\n    /** The coordinates of the mouse event relative to the canvas. */\n    public client: Point = new Point();\n\n    /** @readonly */\n    public get clientX(): number { return this.client.x; }\n\n    /** @readonly */\n    public get clientY(): number { return this.client.y; }\n\n    /**\n     * Alias for {@link FederatedMouseEvent.clientX this.clientX}.\n     * @readonly\n     */\n    get x(): number { return this.clientX; }\n\n    /**\n     * Alias for {@link FederatedMouseEvent.clientY this.clientY}.\n     * @readonly\n     */\n    get y(): number { return this.clientY; }\n\n    /** This is the number of clicks that occurs in 200ms/click of each other. */\n    public detail: number;\n\n    /** The movement in this pointer relative to the last `mousemove` event. */\n    public movement: Point = new Point();\n\n    /** @readonly */\n    get movementX(): number { return this.movement.x; }\n\n    /** @readonly */\n    get movementY(): number { return this.movement.y; }\n\n    /** The offset of the pointer coordinates w.r.t. target Container in world space. This is not supported at the moment. */\n    public offset: Point = new Point();\n\n    /** @readonly */\n    get offsetX(): number { return this.offset.x; }\n\n    /** @readonly */\n    get offsetY(): number { return this.offset.y; }\n\n    /** The pointer coordinates in world space. */\n    public global: Point = new Point();\n\n    /** @readonly */\n    get globalX(): number { return this.global.x; }\n\n    /** @readonly */\n    get globalY(): number { return this.global.y; }\n\n    /**\n     * The pointer coordinates in the renderer's {@link Renderer.screen screen}. This has slightly\n     * different semantics than native PointerEvent screenX/screenY.\n     */\n    public screen: Point = new Point();\n\n    /**\n     * The pointer coordinates in the renderer's screen. Alias for {@code screen.x}.\n     * @readonly\n     */\n    get screenX(): number { return this.screen.x; }\n\n    /**\n     * The pointer coordinates in the renderer's screen. Alias for {@code screen.y}.\n     * @readonly\n     */\n    get screenY(): number { return this.screen.y; }\n\n    /**\n     * This will return the local coordinates of the specified container for this InteractionData\n     * @param {Container} container - The Container that you would like the local\n     *  coords off\n     * @param {PointData} point - A Point object in which to store the value, optional (otherwise\n     *  will create a new point)\n     * @param {PointData} globalPos - A Point object containing your custom global coords, optional\n     *  (otherwise will use the current global coords)\n     * @returns - A point containing the coordinates of the InteractionData position relative\n     *  to the Container\n     */\n    public getLocalPosition<P extends PointData = Point>(container: Container, point?: P, globalPos?: PointData): P\n    {\n        return container.worldTransform.applyInverse<P>(globalPos || this.global, point);\n    }\n\n    /**\n     * Whether the modifier key was pressed when this event natively occurred.\n     * @param key - The modifier key.\n     */\n    public getModifierState(key: string): boolean\n    {\n        return 'getModifierState' in this.nativeEvent && this.nativeEvent.getModifierState(key);\n    }\n\n    /**\n     * Not supported.\n     * @param _typeArg\n     * @param _canBubbleArg\n     * @param _cancelableArg\n     * @param _viewArg\n     * @param _detailArg\n     * @param _screenXArg\n     * @param _screenYArg\n     * @param _clientXArg\n     * @param _clientYArg\n     * @param _ctrlKeyArg\n     * @param _altKeyArg\n     * @param _shiftKeyArg\n     * @param _metaKeyArg\n     * @param _buttonArg\n     * @param _relatedTargetArg\n     * @deprecated since 7.0.0\n     */\n    // eslint-disable-next-line max-params\n    public initMouseEvent(\n        _typeArg: string,\n        _canBubbleArg: boolean,\n        _cancelableArg: boolean,\n        _viewArg: Window,\n        _detailArg: number,\n        _screenXArg: number,\n        _screenYArg: number,\n        _clientXArg: number,\n        _clientYArg: number,\n        _ctrlKeyArg: boolean,\n        _altKeyArg: boolean,\n        _shiftKeyArg: boolean,\n        _metaKeyArg: boolean,\n        _buttonArg: number,\n        _relatedTargetArg: EventTarget\n    ): void\n    {\n        throw new Error('Method not implemented.');\n    }\n}\n"],"names":[],"mappings":"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"}