Files
gods-eye-view/src/layers/firms/index.js
T

43 lines
1.7 KiB
JavaScript

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';