LoadingManager
Defined in: packages/core/src/ui/loading-manager.ts:110
Manages loading states and optional UI overlays.
Remarks
Section titled “Remarks”Provides centralized loading state management with optional visual feedback. Emits events for all loading state changes, allowing external UI integration. Can optionally show built-in loading overlays with spinners and error messages.
Features:
- Event-driven state changes
- Optional loading UI overlays
- Customizable messages and spinner styles
- Minimum display time to prevent flashing
- Retry support with visual feedback
- Multiple concurrent loading operations
Example
Section titled “Example”const manager = new LoadingManager({ showUI: true, minDisplayTime: 300});
// Listen to loading eventsmanager.on('loading:start', ({ layerId }) => { console.log(`Loading ${layerId}...`);});
// Show loading stateconst container = document.getElementById('map-container');manager.showLoading('vehicles', container, 'Loading vehicle data...');
// Hide when completemanager.hideLoading('vehicles', { fromCache: false });
// Show error with retrymanager.showError('vehicles', container, new Error('Failed'), () => { // Retry logic});Extends
Section titled “Extends”Constructors
Section titled “Constructors”Constructor
Section titled “Constructor”new LoadingManager(
config?):LoadingManager
Defined in: packages/core/src/ui/loading-manager.ts:143
Create a new LoadingManager.
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
config? | Partial<LoadingConfig> | Loading manager configuration |
Returns
Section titled “Returns”LoadingManager
Example
Section titled “Example”const manager = new LoadingManager({ showUI: true, messages: { loading: 'Fetching data...', error: 'Could not load data' }, spinnerStyle: 'dots', minDisplayTime: 500});Overrides
Section titled “Overrides”Methods
Section titled “Methods”clearAll()
Section titled “clearAll()”clearAll():
void
Defined in: packages/core/src/ui/loading-manager.ts:376
Clear all loading states and UI.
Returns
Section titled “Returns”void
Example
Section titled “Example”manager.clearAll();destroy()
Section titled “destroy()”destroy():
void
Defined in: packages/core/src/ui/loading-manager.ts:396
Clean up all resources.
Returns
Section titled “Returns”void
Example
Section titled “Example”manager.destroy();eventNames()
Section titled “eventNames()”eventNames(): keyof
LoadingEvents[]
Defined in: packages/core/src/utils/event-emitter.ts:211
Get all event names that have registered handlers
Returns
Section titled “Returns”keyof LoadingEvents[]
Array of event names
Example
Section titled “Example”const events = emitter.eventNames();console.log('Events with handlers:', events);Inherited from
Section titled “Inherited from”getState()
Section titled “getState()”getState(
layerId):LoadingState|null
Defined in: packages/core/src/ui/loading-manager.ts:346
Get loading state for a layer.
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
layerId | string | Layer identifier |
Returns
Section titled “Returns”LoadingState | null
Loading state or null if not found
Example
Section titled “Example”const state = manager.getState('earthquakes');if (state?.isLoading) { console.log('Still loading...');}hasListeners()
Section titled “hasListeners()”hasListeners<
K>(event):boolean
Defined in: packages/core/src/utils/event-emitter.ts:228
Check if an event has any registered handlers
Type Parameters
Section titled “Type Parameters”| Type Parameter |
|---|
K extends keyof LoadingEvents |
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
event | K | Event name |
Returns
Section titled “Returns”boolean
True if the event has at least one handler
Example
Section titled “Example”if (emitter.hasListeners('message')) { emitter.emit('message', { text: 'Hello' });}Inherited from
Section titled “Inherited from”hideLoading()
Section titled “hideLoading()”hideLoading(
layerId,result?):void
Defined in: packages/core/src/ui/loading-manager.ts:211
Hide loading state for a layer.
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
layerId | string | Layer identifier |
result? | { fromCache: boolean; } | Optional result information |
result.fromCache? | boolean | - |
Returns
Section titled “Returns”void
Example
Section titled “Example”manager.hideLoading('earthquakes', { fromCache: true });isLoading()
Section titled “isLoading()”isLoading(
layerId):boolean
Defined in: packages/core/src/ui/loading-manager.ts:364
Check if a layer is currently loading.
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
layerId | string | Layer identifier |
Returns
Section titled “Returns”boolean
True if loading, false otherwise
Example
Section titled “Example”if (manager.isLoading('earthquakes')) { console.log('Loading in progress');}listenerCount()
Section titled “listenerCount()”listenerCount<
K>(event):number
Defined in: packages/core/src/utils/event-emitter.ts:195
Get the number of handlers registered for an event
Type Parameters
Section titled “Type Parameters”| Type Parameter |
|---|
K extends keyof LoadingEvents |
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
event | K | Event name |
Returns
Section titled “Returns”number
Number of registered handlers
Example
Section titled “Example”const count = emitter.listenerCount('message');console.log(`${count} handlers registered`);Inherited from
Section titled “Inherited from”off<
K>(event,handler):void
Defined in: packages/core/src/utils/event-emitter.ts:120
Remove an event handler
Type Parameters
Section titled “Type Parameters”| Type Parameter |
|---|
K extends keyof LoadingEvents |
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
event | K | Event name |
handler | EventHandler<LoadingEvents[K]> | Handler function to remove |
Returns
Section titled “Returns”void
Example
Section titled “Example”const handler = (data) => console.log(data);emitter.on('message', handler);emitter.off('message', handler);Inherited from
Section titled “Inherited from”on<
K>(event,handler): () =>void
Defined in: packages/core/src/utils/event-emitter.ts:65
Register an event handler
Type Parameters
Section titled “Type Parameters”| Type Parameter |
|---|
K extends keyof LoadingEvents |
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
event | K | Event name to listen for |
handler | EventHandler<LoadingEvents[K]> | Callback function to invoke when event is emitted |
Returns
Section titled “Returns”Unsubscribe function that removes this specific handler
() => void
Example
Section titled “Example”const unsubscribe = emitter.on('message', (data) => { console.log(data.text);});
// Later, to unsubscribe:unsubscribe();Inherited from
Section titled “Inherited from”once()
Section titled “once()”once<
K>(event,handler):void
Defined in: packages/core/src/utils/event-emitter.ts:95
Register a one-time event handler
Type Parameters
Section titled “Type Parameters”| Type Parameter |
|---|
K extends keyof LoadingEvents |
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
event | K | Event name to listen for |
handler | EventHandler<LoadingEvents[K]> | Callback function to invoke once |
Returns
Section titled “Returns”void
Remarks
Section titled “Remarks”The handler will be automatically removed after being invoked once.
Example
Section titled “Example”emitter.once('connect', () => { console.log('Connected!');});Inherited from
Section titled “Inherited from”removeAllListeners()
Section titled “removeAllListeners()”removeAllListeners<
K>(event?):void
Defined in: packages/core/src/utils/event-emitter.ts:175
Remove all handlers for an event, or all handlers for all events
Type Parameters
Section titled “Type Parameters”| Type Parameter |
|---|
K extends keyof LoadingEvents |
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
event? | K | Optional event name. If omitted, removes all handlers for all events. |
Returns
Section titled “Returns”void
Example
Section titled “Example”// Remove all handlers for 'message' eventemitter.removeAllListeners('message');
// Remove all handlers for all eventsemitter.removeAllListeners();Inherited from
Section titled “Inherited from”EventEmitter.removeAllListeners
showError()
Section titled “showError()”showError(
layerId,container,error,onRetry?):void
Defined in: packages/core/src/ui/loading-manager.ts:260
Show error state for a layer.
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
layerId | string | Layer identifier |
container | HTMLElement | Container element for UI overlay |
error | Error | Error that occurred |
onRetry? | () => void | Optional retry callback |
Returns
Section titled “Returns”void
Example
Section titled “Example”manager.showError('earthquakes', container, error, () => { // Retry loading fetchData();});showLoading()
Section titled “showLoading()”showLoading(
layerId,container,message?):void
Defined in: packages/core/src/ui/loading-manager.ts:169
Show loading state for a layer.
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
layerId | string | Layer identifier |
container | HTMLElement | Container element for UI overlay |
message? | string | Custom loading message |
Returns
Section titled “Returns”void
Example
Section titled “Example”const container = document.getElementById('map');manager.showLoading('earthquakes', container, 'Loading earthquake data...');showRetrying()
Section titled “showRetrying()”showRetrying(
layerId,attempt,delay):void
Defined in: packages/core/src/ui/loading-manager.ts:316
Show retrying state for a layer.
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
layerId | string | Layer identifier |
attempt | number | Current retry attempt number |
delay | number | Delay before retry in milliseconds |
Returns
Section titled “Returns”void
Example
Section titled “Example”manager.showRetrying('earthquakes', 2, 2000);