Select Git revision
decompositions.ts
decompositions.ts 53.59 KiB
import decompositionCoreByNameUnknown from "@leximpact/socio-fiscal-openfisca-json/decompositions.json"
import waterfallsUnknown from "@leximpact/socio-fiscal-openfisca-json/waterfalls.json"
import type {
Decomposition as DecompositionCore,
DecompositionByName as DecompositionCoreByName,
DecompositionReference,
EntityByKey,
Variable,
VariableByName,
Waterfall,
WaterfallOptions,
} from "@openfisca/json-model"
import type { CalculationName } from "$lib/calculations"
import { reformChangesByName } from "$lib/reforms"
import type { Situation } from "$lib/situations"
import {
variableSummaryByName,
variableSummaryByNameByReformName,
} from "$lib/variables"
import deepEqual from "deep-equal"
export type {
Decomposition as DecompositionCore,
DecompositionByName as DecompositionCoreByName,
} from "@openfisca/json-model"
export interface CalculationEvaluation {
delta: number[]
deltaAtVectorIndex: number
}
export type CalculationEvaluationByName = Partial<{
[name in CalculationName]: CalculationEvaluation
}>
export interface Decomposition extends DecompositionCore {
name: string
open?: boolean
}
export type DecompositionByName = { [name: string]: Decomposition }
export interface Evaluation {
calculationEvaluationByName: CalculationEvaluationByName
fromOpenFisca?: boolean
}
export type EvaluationByName = { [name: string]: Evaluation }
export interface LatchkeyDataItem {
aggregate?: Decomposition
leaf: Decomposition
}
export interface VisibleDecomposition extends VisibleDecompositionBase {
rows: VisibleRow[]
visibleEvaluationByCalculationName: VisibleEvaluationByCalculationName
}
export interface VisibleDecompositionBase {
decomposition: Decomposition
depth: number
trunk: boolean
variable?: Variable
/// These children are not always the same as the one from the decomposition,
/// because, the visible children of a decomposition, are not always the same
/// as the children used to calculate the evaluation of the decomposition
/// from OpenFisca variables.
visibleChildren?: DecompositionReference[]