From 384e89a1722a64cc21d38495e5d430ce2f9a7f84 Mon Sep 17 00:00:00 2001 From: Jamie Li Date: Wed, 24 Feb 2021 10:02:27 -0800 Subject: [PATCH] Improve typescript bindings - Make MapEvent.point/lngLat 2-arrays - From MjolnirEvent make deltaX/deltaY/scale/rotation/metaKey optional, as they are undocumented and don't exist for all events - From MjolnirEvent make delta/pointerType/rightButton optional, as the API documentation states they are only present for some events - From MjolnirEvent add stopImmediatePropagation/leftButton/middleButton/key which are supposed to exist per docs - From MjolnirEvent make typings for stopPropagation/preventDefault/srcEvent more specific --- src/components/interactive-map.d.ts | 4 ++-- src/utils/map-controller.d.ts | 26 +++++++++++++++----------- 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/src/components/interactive-map.d.ts b/src/components/interactive-map.d.ts index 9718c8fa9..2843e640a 100644 --- a/src/components/interactive-map.d.ts +++ b/src/components/interactive-map.d.ts @@ -9,8 +9,8 @@ type State = { }; export type MapEvent = MjolnirEvent & { - point: Array, - lngLat: Array, + point: [x: number, y: number], + lngLat: [longitude: number, latitude: number], features?: Array }; diff --git a/src/utils/map-controller.d.ts b/src/utils/map-controller.d.ts index 680a73271..dfdc73892 100644 --- a/src/utils/map-controller.d.ts +++ b/src/utils/map-controller.d.ts @@ -5,18 +5,22 @@ export type MjolnirEvent = { type: string, center: {x: number, y: number}, offsetCenter: {x: number, y: number}, - deltaX: number, - deltaY: number, - delta: number, - scale: number, - rotation: number, - pointerType: string, - metaKey: boolean, - rightButton: boolean, - stopPropagation: Function, - preventDefault: Function, + deltaX?: number, + deltaY?: number, + delta?: number, + scale?: number, + rotation?: number, + pointerType?: string, + metaKey?: boolean, + key?: number, + leftButton?: boolean, + middleButton?: boolean, + rightButton?: boolean, + stopPropagation: () => void, + stopImmediatePropagation: () => void, + preventDefault: () => void, target: HTMLElement, - srcEvent: any + srcEvent: MouseEvent | PointerEvent | TouchEvent }; export const LINEAR_TRANSITION_PROPS: any;