54 lines
3.8 KiB
TypeScript
54 lines
3.8 KiB
TypeScript
import type { MapDataProductBinding, MapSubjectState } from "./mapPageContract.js";
|
|
import type { MapPresentationFilters, MapPresentationProfile } from "./mapPresentationProfile.js";
|
|
import type { GridSectorSelection } from "./mapRendererContract.js";
|
|
import type { SectorGridLodProfile } from "./mapSectorWorkspace.js";
|
|
import type { MapRuntimeBinding, MapRuntimeFact } from "./useMapDataProductRuntime.js";
|
|
|
|
export type MapSelectableEntity = {
|
|
id: string;
|
|
title: string;
|
|
kind: string;
|
|
status: string;
|
|
bindingId: string;
|
|
dataProductId: string;
|
|
fact: MapRuntimeFact;
|
|
};
|
|
|
|
export type MapSectorScope = {
|
|
excludedBindingIds: string[];
|
|
excludedProviders: string[];
|
|
excludedObjectKinds: string[];
|
|
};
|
|
|
|
export type MapPresentationSummary = {
|
|
bindingId: string;
|
|
displayName: string;
|
|
profile: MapPresentationProfile;
|
|
total: number;
|
|
counts: Record<string, Record<string, number>>;
|
|
};
|
|
|
|
export type MapFilteredTarget = {
|
|
bindingId: string;
|
|
entityId: string;
|
|
title: string;
|
|
status: string;
|
|
renderable: boolean;
|
|
};
|
|
|
|
export function mapProfileHasSubjectWindowControls(profile: MapPresentationProfile): boolean;
|
|
export function primaryMapBindingConfigs(bindingConfigs: MapDataProductBinding[]): MapDataProductBinding[];
|
|
export function primaryMapRuntimeBindings(runtimeBindings: MapRuntimeBinding[], bindingConfigs: MapDataProductBinding[]): MapRuntimeBinding[];
|
|
export function buildMapPresentationFilters(subjectStates: Record<string, MapSubjectState>, bindingConfigs: MapDataProductBinding[], profiles: MapPresentationProfile[]): MapPresentationFilters;
|
|
export function buildSelectableMapEntities(runtimeBindings: MapRuntimeBinding[], bindingConfigs: MapDataProductBinding[], profiles: MapPresentationProfile[]): MapSelectableEntity[];
|
|
export function buildSectorSpatialEntities(selectable: MapSelectableEntity[], selection: GridSectorSelection | null, profiles: SectorGridLodProfile[], origin: { latitude: number; longitude: number }): MapSelectableEntity[];
|
|
export function buildSectorBindingOptions(bindingConfigs: MapDataProductBinding[], sectorEntities: MapSelectableEntity[]): Array<{ value: string; label: string; count: number }>;
|
|
export function bindingProjectsField(bindingConfigs: MapDataProductBinding[], field: string): boolean;
|
|
export function buildSectorScopeOptions(sectorEntities: MapSelectableEntity[], field: string, enabled?: boolean): Array<{ value: string; label: string; count: number }>;
|
|
export function sectorEntityIsExcluded(entity: MapSelectableEntity, scope: MapSectorScope): boolean;
|
|
export function buildSectorVisibleEntities(input: { sectorEntities: MapSelectableEntity[]; bindingConfigs: MapDataProductBinding[]; presentationProfiles: MapPresentationProfile[]; presentationFilters: MapPresentationFilters; scope: MapSectorScope }): MapSelectableEntity[];
|
|
export function scopeMapRuntimeBindings(input: { runtimeBindings: MapRuntimeBinding[]; selection: GridSectorSelection | null; gridProfiles: SectorGridLodProfile[]; origin: { latitude: number; longitude: number }; hideOutsideSector: boolean; scope: MapSectorScope }): MapRuntimeBinding[];
|
|
export function buildMapPresentationSummaries(bindingConfigs: MapDataProductBinding[], runtimeBindings: MapRuntimeBinding[], profiles: MapPresentationProfile[]): MapPresentationSummary[];
|
|
export function buildFilteredMapTargets(runtimeBindings: MapRuntimeBinding[], bindingConfigs: MapDataProductBinding[], profiles: MapPresentationProfile[], filters: MapPresentationFilters): MapFilteredTarget[];
|
|
export function planMapSubjectReveal(input: { entity: MapSelectableEntity; subjectState: MapSubjectState; profile: MapPresentationProfile | undefined; selectedSector: GridSectorSelection | null; gridProfiles: SectorGridLodProfile[]; origin: { latitude: number; longitude: number }; hideOutsideSector: boolean; scope: MapSectorScope }): { subjectState: MapSubjectState; hideOutsideSector: boolean; scope: MapSectorScope };
|