import type { ModelInstance } from "./model-instances"; import { getModelInstances } from "./model-instances"; import type { ProjectAssetRecord } from "./project-assets"; function getModelInstanceBaseLabel(modelInstance: ModelInstance, assets: Record): string { if (modelInstance.name !== undefined) { return modelInstance.name; } const asset = assets[modelInstance.assetId]; if (asset === undefined) { return "Model Instance"; } return asset.sourceName; } export function getModelInstanceDisplayLabel(modelInstance: ModelInstance, assets: Record): string { return getModelInstanceBaseLabel(modelInstance, assets); } export function getModelInstanceDisplayLabelById( modelInstanceId: string, modelInstances: Record, assets: Record ): string { const modelInstance = modelInstances[modelInstanceId]; if (modelInstance === undefined) { return "Model Instance"; } return getModelInstanceDisplayLabel(modelInstance, assets); } export function getSortedModelInstanceDisplayLabels( modelInstances: Record, assets: Record ): Array<{ modelInstance: ModelInstance; label: string }> { return getModelInstances(modelInstances).map((modelInstance) => ({ modelInstance, label: getModelInstanceDisplayLabel(modelInstance, assets) })); }