From 0d683beebdccd58a534d8cffadbdb87b3b8557ba Mon Sep 17 00:00:00 2001 From: Stepan Kuzmin Date: Mon, 27 Feb 2023 17:21:26 +0200 Subject: [PATCH] Cleanup --- src/source/source.js | 3 +- src/style/evaluation_parameters.js | 2 +- src/style/properties.js | 2 +- src/style/style_layer/symbol_style_layer.js | 2 +- src/symbol/grid_index.js | 48 ++++----------------- src/ui/camera.js | 5 ++- src/ui/control/attribution_control.js | 2 +- src/ui/control/geolocate_control.js | 8 ++-- src/ui/control/logo_control.js | 2 +- src/ui/control/navigation_control.js | 12 +++--- src/ui/events.js | 27 ++++++++++++ src/ui/handler/box_zoom.js | 2 +- src/ui/handler/scroll_zoom.js | 2 +- src/ui/handler_manager.js | 6 +-- src/ui/hash.js | 2 +- src/ui/map.js | 6 +-- src/ui/marker.js | 10 ++--- src/util/actor.js | 2 +- src/util/evented.js | 7 +-- src/util/image.js | 4 +- src/util/web_worker.js | 4 +- 21 files changed, 78 insertions(+), 80 deletions(-) diff --git a/src/source/source.js b/src/source/source.js index ed1f9f94d41..a3a1e92a424 100644 --- a/src/source/source.js +++ b/src/source/source.js @@ -8,6 +8,7 @@ import type Map from '../ui/map.js'; import type Tile from './tile.js'; import type {OverscaledTileID} from './tile_id.js'; import type {Callback} from '../types/callback.js'; +import type {MapEvent} from '../ui/events.js'; import {CanonicalTileID} from './tile_id.js'; /** @@ -58,7 +59,7 @@ export interface Source { loaded(): boolean; fire(event: Event): mixed; - on(type: *, listener: (Object) => any): Evented; + on(type: MapEvent, listener: (Object) => any): Evented; setEventedParent(parent: ?Evented, data?: Object | () => Object): Evented; +onAdd?: (map: Map) => void; diff --git a/src/style/evaluation_parameters.js b/src/style/evaluation_parameters.js index 6584faaa00f..2f7f10547a5 100644 --- a/src/style/evaluation_parameters.js +++ b/src/style/evaluation_parameters.js @@ -13,7 +13,7 @@ class EvaluationParameters { transition: TransitionSpecification; // "options" may also be another EvaluationParameters to copy - constructor(zoom: number, options?: *) { + constructor(zoom: number, options?: any) { this.zoom = zoom; if (options) { diff --git a/src/style/properties.js b/src/style/properties.js index c3b931be004..c16e9c34884 100644 --- a/src/style/properties.js +++ b/src/style/properties.js @@ -376,7 +376,7 @@ export class Layout { return clone(this._values[name].value); } - setValue(name: S, value: *) { + setValue(name: S, value: any) { this._values[name] = new PropertyValue(this._values[name].property, value === null ? undefined : clone(value)); } diff --git a/src/style/style_layer/symbol_style_layer.js b/src/style/style_layer/symbol_style_layer.js index 91d3fde249c..3bca5107599 100644 --- a/src/style/style_layer/symbol_style_layer.js +++ b/src/style/style_layer/symbol_style_layer.js @@ -96,7 +96,7 @@ class SymbolStyleLayer extends StyleLayer { this._setPaintOverrides(); } - getValueAndResolveTokens(name: *, feature: Feature, canonical: CanonicalTileID, availableImages: Array): string { + getValueAndResolveTokens(name: any, feature: Feature, canonical: CanonicalTileID, availableImages: Array): string { const value = this.layout.get(name).evaluate(feature, {}, canonical, availableImages); const unevaluated = this._unevaluatedLayout._values[name]; if (!unevaluated.isDataDriven() && !isExpression(unevaluated.value) && value) { diff --git a/src/symbol/grid_index.js b/src/symbol/grid_index.js index 60cb3c6336f..91b64fe1633 100644 --- a/src/symbol/grid_index.js +++ b/src/symbol/grid_index.js @@ -87,39 +87,25 @@ class GridIndex { this.circles.push(radius); } - _insertBoxCell: (( + _insertBoxCell: ( x1: number, y1: number, x2: number, y2: number, cellIndex: number, uid: number - ) => void) = ( - x1: number, - y1: number, - x2: number, - y2: number, - cellIndex: number, - uid: number - ) => { + ) => void = (x1, y1, x2, y2, cellIndex, uid) => { this.boxCells[cellIndex].push(uid); }; - _insertCircleCell: (( + _insertCircleCell: ( x1: number, y1: number, x2: number, y2: number, cellIndex: number, uid: number - ) => void) = ( - x1: number, - y1: number, - x2: number, - y2: number, - cellIndex: number, - uid: number - ) => { + ) => void = (x1, y1, x2, y2, cellIndex, uid) => { this.circleCells[cellIndex].push(uid); } @@ -200,7 +186,7 @@ class GridIndex { return (this._queryCircle(x, y, radius, true, predicate): any); } - _queryCell: (( + _queryCell: ( x1: number, y1: number, x2: number, @@ -209,16 +195,7 @@ class GridIndex { result: any, queryArgs: any, predicate?: any - ) => void | boolean) = ( - x1: number, - y1: number, - x2: number, - y2: number, - cellIndex: number, - result: any, - queryArgs: any, - predicate?: any, - ): void | boolean => { + ) => void | boolean = (x1, y1, x2, y2, cellIndex, result, queryArgs, predicate?) => { const seenUids = queryArgs.seenUids; const boxCell = this.boxCells[cellIndex]; if (boxCell !== null) { @@ -285,7 +262,7 @@ class GridIndex { } } - _queryCellCircle: (( + _queryCellCircle: ( x1: number, y1: number, x2: number, @@ -294,16 +271,7 @@ class GridIndex { result: any, queryArgs: any, predicate?: any - ) => void | boolean) = ( - x1: number, - y1: number, - x2: number, - y2: number, - cellIndex: number, - result: any, - queryArgs: any, - predicate?: any, - ): void | boolean => { + ) => void | boolean = (x1, y1, x2, y2, cellIndex, result, queryArgs, predicate?) => { const circle = queryArgs.circle; const seenUids = queryArgs.seenUids; const boxCell = this.boxCells[cellIndex]; diff --git a/src/ui/camera.js b/src/ui/camera.js index fc4e7546b07..58d029ed6d6 100644 --- a/src/ui/camera.js +++ b/src/ui/camera.js @@ -43,6 +43,7 @@ import type {Callback} from '../types/callback.js'; import type {PointLike} from '@mapbox/point-geometry'; import {Aabb} from '../util/primitives.js'; import type {PaddingOptions} from '../geo/edge_insets.js'; +import type {MapEvent} from './events.js'; /** * A helper type: converts all Object type values to non-maybe types. @@ -1782,7 +1783,7 @@ function addAssertions(camera: Camera) { //eslint-disable-line ['drag', 'zoom', 'rotate', 'pitch', 'move'].forEach(name => { inProgress[name] = false; - camera.on(`${name}start`, () => { + camera.on(((`${name}start`: any): MapEvent), () => { assert(!inProgress[name], `"${name}start" fired twice without a "${name}end"`); inProgress[name] = true; assert(inProgress.move); @@ -1793,7 +1794,7 @@ function addAssertions(camera: Camera) { //eslint-disable-line assert(inProgress.move); }); - camera.on(`${name}end`, () => { + camera.on(((`${name}end`: any): MapEvent), () => { assert(inProgress.move); assert(inProgress[name]); inProgress[name] = false; diff --git a/src/ui/control/attribution_control.js b/src/ui/control/attribution_control.js index 0e7e668cd89..c5062c3d675 100644 --- a/src/ui/control/attribution_control.js +++ b/src/ui/control/attribution_control.js @@ -138,7 +138,7 @@ class AttributionControl { } }; - _updateData: ((e: any) => void) = (e: any) => { + _updateData: (e: any) => void = (e) => { if (e && (e.sourceDataType === 'metadata' || e.sourceDataType === 'visibility' || e.dataType === 'style')) { this._updateAttributions(); this._updateEditLink(); diff --git a/src/ui/control/geolocate_control.js b/src/ui/control/geolocate_control.js index 09eaaf14e9d..44f75b2f324 100644 --- a/src/ui/control/geolocate_control.js +++ b/src/ui/control/geolocate_control.js @@ -234,7 +234,7 @@ class GeolocateControl extends Evented { * @param {Position} position the Geolocation API Position * @private */ - _onSuccess: ((position: Position) => void) = (position: Position) => { + _onSuccess: (position: Position) => void = (position) => { if (!this._map) { // control has since been removed return; @@ -368,7 +368,7 @@ class GeolocateControl extends Evented { } }; - _onError: ((error: PositionError) => void) = (error: PositionError) => { + _onError: (error: PositionError) => void = (error) => { if (!this._map) { // control has since been removed return; @@ -416,7 +416,7 @@ class GeolocateControl extends Evented { this._timeoutId = undefined; }; - _setupUI: ((supported: boolean) => void) = (supported: boolean) => { + _setupUI: (supported: boolean) => void = (supported) => { if (this._map === undefined) { // This control was removed from the map before geolocation // support was determined. @@ -508,7 +508,7 @@ class GeolocateControl extends Evented { * geolocate.trigger(); * }); */ - _onDeviceOrientation: ((deviceOrientationEvent: DeviceOrientationEvent) => void) = (deviceOrientationEvent: DeviceOrientationEvent) => { + _onDeviceOrientation: (deviceOrientationEvent: DeviceOrientationEvent) => void = (deviceOrientationEvent) => { // absolute is true if the orientation data is provided as the difference between the Earth's coordinate frame and the device's coordinate frame, or false if the orientation data is being provided in reference to some arbitrary, device-determined coordinate frame. if (this._userLocationDotMarker) { if (deviceOrientationEvent.webkitCompassHeading) { diff --git a/src/ui/control/logo_control.js b/src/ui/control/logo_control.js index d53bf1f5e90..9627f5e2eab 100644 --- a/src/ui/control/logo_control.js +++ b/src/ui/control/logo_control.js @@ -54,7 +54,7 @@ class LogoControl { return 'bottom-left'; }; - _updateLogo: ((e: any) => void) = (e: any) => { + _updateLogo: (e: any) => void = (e) => { if (!e || e.sourceDataType === 'metadata') { this._container.style.display = this._logoRequired() ? 'block' : 'none'; } diff --git a/src/ui/control/navigation_control.js b/src/ui/control/navigation_control.js index f3823d100fd..2f1eb5f9ecc 100644 --- a/src/ui/control/navigation_control.js +++ b/src/ui/control/navigation_control.js @@ -224,23 +224,23 @@ class MouseRotateWrapper { window.removeEventListener('mouseup', this.mouseup); } - mousedown: ((e: MouseEvent) => void) = (e: MouseEvent) => { + mousedown: (e: MouseEvent) => void = (e) => { this.down(extend({}, e, {ctrlKey: true, preventDefault: () => e.preventDefault()}), DOM.mousePos(this.element, e)); window.addEventListener('mousemove', this.mousemove); window.addEventListener('mouseup', this.mouseup); }; - mousemove: ((e: MouseEvent) => void) = (e: MouseEvent) => { + mousemove: (e: MouseEvent) => void = (e) => { this.move(e, DOM.mousePos(this.element, e)); }; - mouseup: ((e: MouseEvent) => void) = (e: MouseEvent) => { + mouseup: (e: MouseEvent) => void = (e) => { this.mouseRotate.mouseupWindow(e); if (this.mousePitch) this.mousePitch.mouseupWindow(e); this.offTemp(); }; - touchstart: ((e: TouchEvent) => void) = (e: TouchEvent) => { + touchstart: (e: TouchEvent) => void = (e) => { if (e.targetTouches.length !== 1) { this.reset(); } else { @@ -249,7 +249,7 @@ class MouseRotateWrapper { } }; - touchmove: ((e: TouchEvent) => void) = (e: TouchEvent) => { + touchmove: (e: TouchEvent) => void = (e) => { if (e.targetTouches.length !== 1) { this.reset(); } else { @@ -258,7 +258,7 @@ class MouseRotateWrapper { } }; - touchend: ((e: TouchEvent) => void) = (e: TouchEvent) => { + touchend: (e: TouchEvent) => void = (e) => { if (e.targetTouches.length === 0 && this._startPos && this._lastPos && diff --git a/src/ui/events.js b/src/ui/events.js index 51bd9f8ae75..e310208cfb5 100644 --- a/src/ui/events.js +++ b/src/ui/events.js @@ -1521,4 +1521,31 @@ export type MapEvent = * }); */ | 'speedindexcompleted' + + /** + * Fired after RTL text plugin state changes. + * + * @event pluginStateChange + * @instance + * @private + */ + | 'pluginStateChange' + + /** + * Fired in worker.js after sprite loaded. + * + * @event pluginStateChange + * @instance + * @private + */ + | 'isSpriteLoaded' + + /** + * Fired in style.js after layer order changed. + * + * @event pluginStateChange + * @instance + * @private + */ + | 'neworder' ; diff --git a/src/ui/handler/box_zoom.js b/src/ui/handler/box_zoom.js index 9b2bc437e0d..406b0a22c6f 100644 --- a/src/ui/handler/box_zoom.js +++ b/src/ui/handler/box_zoom.js @@ -175,7 +175,7 @@ class BoxZoomHandler { delete this._lastPos; } - _fireEvent(type: string, e: *): Map { + _fireEvent(type: string, e: any): Map { return this._map.fire(new Event(type, {originalEvent: e})); } } diff --git a/src/ui/handler/scroll_zoom.js b/src/ui/handler/scroll_zoom.js index 1d4a4a2ec8f..9c4b54f4ee6 100644 --- a/src/ui/handler/scroll_zoom.js +++ b/src/ui/handler/scroll_zoom.js @@ -227,7 +227,7 @@ class ScrollZoomHandler { e.preventDefault(); } - _onTimeout: ((initialEvent: WheelEvent) => void) = (initialEvent: WheelEvent) => { + _onTimeout: (initialEvent: WheelEvent) => void = (initialEvent) => { this._type = 'wheel'; this._delta -= this._lastValue; if (!this._active) { diff --git a/src/ui/handler_manager.js b/src/ui/handler_manager.js index 372fa18a07b..c0264f351bd 100644 --- a/src/ui/handler_manager.js +++ b/src/ui/handler_manager.js @@ -339,7 +339,7 @@ class HandlerManager { return false; } - handleWindowEvent: ((e: InputEvent) => void) = (e: InputEvent) => { + handleWindowEvent: (e: InputEvent) => void = (e) => { this.handleEvent(e, `${e.type}Window`); } @@ -354,7 +354,7 @@ class HandlerManager { return ((mapTouches: any): TouchList); } - handleEvent: ((e: InputEvent | RenderFrameEvent, eventName?: string) => void) = (e: InputEvent | RenderFrameEvent, eventName?: string) => { + handleEvent: (e: InputEvent | RenderFrameEvent, eventName?: string) => void = (e, eventName) => { this._updatingCamera = true; assert(e.timeStamp !== undefined); @@ -673,7 +673,7 @@ class HandlerManager { } - _fireEvent(type: string, e: *) { + _fireEvent(type: string, e: any) { this._map.fire(new Event(type, e ? {originalEvent: e} : {})); } diff --git a/src/ui/hash.js b/src/ui/hash.js index 563af94a6b0..607739937bd 100644 --- a/src/ui/hash.js +++ b/src/ui/hash.js @@ -102,7 +102,7 @@ export default class Hash { return hash.split('/'); } - _onHashChange: (() => boolean) = (): boolean => { + _onHashChange: () => boolean = () => { const map = this._map; if (!map) return false; const loc = this._getCurrentHash(); diff --git a/src/ui/map.js b/src/ui/map.js index 762851bd012..4e62f2b7181 100755 --- a/src/ui/map.js +++ b/src/ui/map.js @@ -2993,7 +2993,7 @@ class Map extends Camera { webpSupported.testSupport(gl); } - _contextLost: (event: *) => void = (event: *) => { + _contextLost: (event: any) => void = (event) => { event.preventDefault(); if (this._frame) { this._frame.cancel(); @@ -3002,14 +3002,14 @@ class Map extends Camera { this.fire(new Event('webglcontextlost', {originalEvent: event})); } - _contextRestored: (event: *) => void = (event: *) => { + _contextRestored: (event: any) => void = (event) => { this._setupPainter(); this.resize(); this._update(); this.fire(new Event('webglcontextrestored', {originalEvent: event})); } - _onMapScroll: (event: *) => ?boolean = (event: *) => { + _onMapScroll: (event: any) => ?boolean = (event) => { if (event.target !== this._container) return; // Revert any scroll which would move the canvas outside of the view diff --git a/src/ui/marker.js b/src/ui/marker.js index 2c8c3f08f79..d3bfe400d82 100644 --- a/src/ui/marker.js +++ b/src/ui/marker.js @@ -352,7 +352,7 @@ export default class Marker extends Evented { return this; } - _onKeyPress: ((e: KeyboardEvent) => void) = (e: KeyboardEvent) => { + _onKeyPress: (e: KeyboardEvent) => void = (e) => { const code = e.code; const legacyCode = e.charCode || e.keyCode; @@ -364,7 +364,7 @@ export default class Marker extends Evented { } } - _onMapClick: ((e: MapMouseEvent) => void) = (e: MapMouseEvent) => { + _onMapClick: (e: MapMouseEvent) => void = (e) => { const targetElement = e.originalEvent.target; const element = this._element; @@ -545,7 +545,7 @@ export default class Marker extends Evented { return rotation ? `rotateZ(${rotation}deg)` : ''; } - _update: ((delaySnap?: boolean) => void) = (delaySnap?: boolean) => { + _update: (delaySnap?: boolean) => void = (delaySnap) => { window.cancelAnimationFrame(this._updateFrameId); const map = this._map; if (!map) return; @@ -608,7 +608,7 @@ export default class Marker extends Evented { return this; } - _onMove: ((e: MapMouseEvent | MapTouchEvent) => void) = (e: MapMouseEvent | MapTouchEvent) => { + _onMove: (e: MapMouseEvent | MapTouchEvent) => void = (e) => { const map = this._map; if (!map) return; @@ -688,7 +688,7 @@ export default class Marker extends Evented { this._state = 'inactive'; } - _addDragHandler: ((e: MapMouseEvent | MapTouchEvent) => void) = (e: MapMouseEvent | MapTouchEvent) => { + _addDragHandler: (e: MapMouseEvent | MapTouchEvent) => void = (e) => { const map = this._map; const pos = this._pos; if (!map || !pos) return; diff --git a/src/util/actor.js b/src/util/actor.js index b981c2c0f5a..255101ff332 100644 --- a/src/util/actor.js +++ b/src/util/actor.js @@ -85,7 +85,7 @@ class Actor { }; } - receive: ((message: any) => void) = (message: Object) => { + receive: (message: any) => void = (message) => { const data = message.data, id = data.id; diff --git a/src/util/evented.js b/src/util/evented.js index 76579900211..19ec3dcd154 100644 --- a/src/util/evented.js +++ b/src/util/evented.js @@ -1,6 +1,7 @@ // @flow import {extend} from './util.js'; +import type {MapEvent} from '../ui/events.js'; type Listener = (Object) => any; type Listeners = {[_: string]: Array }; @@ -67,7 +68,7 @@ export class Evented { * extended with `target` and `type` properties. * @returns {Object} Returns itself to allow for method chaining. */ - on(type: *, listener: Listener): this { + on(type: MapEvent, listener: Listener): this { this._listeners = this._listeners || {}; _addEventListener(type, listener, this._listeners); @@ -81,7 +82,7 @@ export class Evented { * @param {Function} listener The listener function to remove. * @returns {Object} Returns itself to allow for method chaining. */ - off(type: *, listener: Listener): this { + off(type: MapEvent, listener: Listener): this { _removeEventListener(type, listener, this._listeners); _removeEventListener(type, listener, this._oneTimeListeners); @@ -98,7 +99,7 @@ export class Evented { * If not provided, returns a Promise that will be resolved when the event is fired once. * @returns {Object} Returns `this` | Promise. */ - once(type: *, listener?: Listener): this | Promise { + once(type: MapEvent, listener?: Listener): this | Promise { if (!listener) { return new Promise(resolve => this.once(type, resolve)); } diff --git a/src/util/image.js b/src/util/image.js index 673d98ccaad..dffc642484a 100644 --- a/src/util/image.js +++ b/src/util/image.js @@ -5,8 +5,8 @@ import assert from 'assert'; import {register} from './web_worker_transfer.js'; export type Size = interface { - width: number, - height: number, + width: number, + height: number, }; export interface SpritePosition { diff --git a/src/util/web_worker.js b/src/util/web_worker.js index 44c3532a67f..1c69db2bdb0 100644 --- a/src/util/web_worker.js +++ b/src/util/web_worker.js @@ -32,8 +32,8 @@ class MessageBus implements WorkerInterface, WorkerGlobalScopeInterface { addListeners: Array; postListeners: Array; target: MessageBus; - registerWorkerSource: *; - registerRTLTextPlugin: *; + registerWorkerSource: any; + registerRTLTextPlugin: any; constructor(addListeners: Array, postListeners: Array) { this.addListeners = addListeners;