Select Git revision
TestCasesPane.svelte
-
Dorine Lambinet authored
Change les règles de la grid des cas type pour afficher des cas types plus large. Pour cela j'ai été obligée d'ajouté une catégorie xl au mediaqueries
Dorine Lambinet authoredChange les règles de la grid des cas type pour afficher des cas types plus large. Pour cela j'ai été obligée d'ajouté une catégorie xl au mediaqueries
TestCasesPane.svelte 3.61 KiB
<script lang="ts">
import { createEventDispatcher, getContext } from "svelte"
import type { Writable } from "svelte/store"
import type {
CalculationName,
DecompositionByName,
EvaluationByNameArrayByCalculationName,
} from "$lib/decompositions"
import type { EditionMode } from "$lib/editions"
import { entityByKey } from "$lib/entities"
import type { Axis, AxisDescription, Situation } from "$lib/situations"
import { indexOfSituationPopulationId } from "$lib/situations"
import TestCaseView from "./TestCaseView.svelte"
export let date: string
export let editionMode: EditionMode
export let year: number
let axisBySituationIndex: { [situationIndex: string]: Axis } = {}
const calculationName = getContext(
"calculationName",
) as Writable<CalculationName>
const decompositionByName = getContext(
"decompositionByName",
) as Writable<DecompositionByName>
const dispatch = createEventDispatcher()
const testCases = getContext("testCases") as Writable<Situation[]>
const vectorIndexes = getContext("vectorIndexes") as Writable<number[]>
function changeAxis(
situationIndex: number,
axisDescription: AxisDescription | null,
vectorIndex: number,
) {
if (axisDescription === null) {
axisBySituationIndex = { ...axisBySituationIndex }
delete axisBySituationIndex[situationIndex]
} else {
const entity = entityByKey[axisDescription.entityKey]
let previousSituationsPopulationCount = 0
for (const situation of $testCases.slice(0, situationIndex)) {
const entitySituation = situation[entity.key_plural] ?? {}
const populationCount = Object.keys(entitySituation).length
previousSituationsPopulationCount += populationCount
}
const axis = {
count: 100,
index:
previousSituationsPopulationCount +
indexOfSituationPopulationId(
entity,
$testCases[situationIndex],
axisDescription.populationId,
),
max: (100 - 1) * axisDescription.stepValue,
min: 0,
name: axisDescription.variableName,
period: year.toString(),
}
axisBySituationIndex = { ...axisBySituationIndex, [situationIndex]: axis }
}
dispatch("changeAxes", {
axisBySituationIndex,
situationIndex,
vectorIndex,
})