Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 | 22x 22x 22x 22x 396x 44x | import type {
CapitalCostLineRead,
CostableItemRead,
CostCurveAuthoring,
CostCurveEquipmentCategoryRead,
CostCurveRead,
EconomicsLangFactorDefaultRead,
EconomicsResultLineRead,
EquipmentMappingRead,
PatchedCapitalCostLine,
PatchedCostableItem,
PatchedEquipmentMapping,
SimulationObjectRead,
} from "@/api/apiStore.gen";
import { generatedCapitalLineForCostableItem } from "../model/capitalLineHelpers";
import type { UnitCostRow } from "../model/capitalLineTypes";
import { UnitCostCard } from "./UnitCostCard";
export function UnitCostCardList({
rows,
curves,
equipmentOptions,
langFactorDefaults,
capitalLines,
resultLines,
canEdit,
busy,
onEnableCosting,
onCostableItemPatch,
onMappingPatch,
onCapitalLinePatch,
onCreateCurve,
costCurveSaving,
resultStale,
resultRunId,
focusedSimulationObjectId,
}: {
rows: UnitCostRow[];
curves: CostCurveRead[];
equipmentOptions: readonly CostCurveEquipmentCategoryRead[];
langFactorDefaults: EconomicsLangFactorDefaultRead[];
capitalLines: CapitalCostLineRead[];
resultLines: EconomicsResultLineRead[];
canEdit: boolean;
busy: boolean;
onEnableCosting: (unit: SimulationObjectRead) => Promise<void>;
onCostableItemPatch: (
item: CostableItemRead,
patch: PatchedCostableItem,
) => Promise<void>;
onMappingPatch: (
mapping: EquipmentMappingRead,
patch: PatchedEquipmentMapping,
) => Promise<void>;
onCapitalLinePatch: (
line: CapitalCostLineRead,
patch: PatchedCapitalCostLine,
) => Promise<void>;
onCreateCurve: (curve: CostCurveAuthoring) => Promise<CostCurveRead>;
costCurveSaving: boolean;
resultStale: boolean;
resultRunId: number | null;
focusedSimulationObjectId?: number;
}) {
return (
<div className="grid gap-3">
{rows.map((row) => (
<UnitCostCard
key={row.unit.id}
row={row}
curves={curves}
equipmentOptions={equipmentOptions}
langFactorDefaults={langFactorDefaults}
capitalLine={generatedCapitalLineForCostableItem(
capitalLines,
row.costableItem,
)}
resultLines={resultLines}
canEdit={canEdit}
busy={busy}
onEnableCosting={onEnableCosting}
onCostableItemPatch={onCostableItemPatch}
onMappingPatch={onMappingPatch}
onCapitalLinePatch={onCapitalLinePatch}
onCreateCurve={onCreateCurve}
costCurveSaving={costCurveSaving}
resultStale={resultStale}
resultRunId={resultRunId}
isFocused={row.unit.id === focusedSimulationObjectId}
/>
))}
</div>
);
}
|