refactor(fires): separate source, rendering and interaction components

This commit is contained in:
Sameh Khamis committed 2026-09-13 12:48:26 -07:00
1 parent e99cc8cf68
commit 6a9f13eab8
28 files changed
+2540 -1731

No files matched your search

+42
View File
@@ -0,0 +1,42 @@
import { createModel } from './model.js';
import { createIngestion } from './ingestion.js';
import { createRendering } from './rendering.js';
import { createCards } from './cards.js';
import { createSelection } from './selection.js';
import { createViewport } from './viewport.js';
import { createLifecycle } from './lifecycle.js';
import { createQueries } from './queries.js';
import { createFirmsState } from './state.js';
export function createFirmsHelpers({ services }) {
const layerState = createFirmsState({ services, config: {} });
return createModel({ layerState, services, config: {}, components: {} });
}
/** Compose one fire layer with explicit source and scene operations. */
export function createFirmsHeatmapLayer({ services, feed, ...config }) {
if (typeof feed?.getSnapshot !== 'function')
throw new TypeError('Fires require a snapshot source');
const layerState = createFirmsState({ services, config });
const components = {};
const context = { layerState, services, config, components, feed };
components.model = createModel(context);
components.ingestion = createIngestion(context);
components.rendering = createRendering(context);
components.cards = createCards(context);
components.selection = createSelection(context);
components.viewport = createViewport(context);
components.lifecycle = createLifecycle(context);
components.queries = createQueries(context);
return Object.assign(
{},
components.queries.methods,
components.lifecycle.methods,
components.ingestion.methods,
);
}
export { createFirmsSource } from './source.js';
export { createFireAnchors, FIRE_ANCHOR_LIFT_M } from './anchors.js';
export * from '../../data/firmsAdapt.js';
export * from '../../data/firmsLabels.js';