Skip to content
Snippets Groups Projects
Select Git revision
  • c55fd2b4b730f32fea5593a16967326cb4d10447
  • master default protected
  • ajout_ppa_rsa_budgetaire
  • 365-ouvrir-l-onglet-employeur-ou-taxes-carburant-quand-c-est-le-cas-pour-un-dispositif
  • 381-pb-affichage-labels-des-parametres-sur-plus-de-3-lignes
  • ajoute-duplicate-aide-logement
  • poc_castype_ia
  • parametres-editables-budget
  • ui-parametres
  • 366-signe-a-cote-du-droit-en-vigueur-sur-l-ui-pour-indiquer-que-la-reforme-a-eu-lieu-mais-qu-elle-n
  • 355-les-dispositifs-prestations-sociales-du-graphique-se-cachent-montrent-en-meme-temps-2
  • 358-les-variables-dont-le-montant-est-nul-apparaissent-en-bleu-et-non-cliquables
  • 356-ajuster-la-largeur-sur-les-graphiques-budgetaires
  • incoherence_cas_type_0
  • fix-ui-suppression-tranches-baremes
  • ajout-agregat-cehr-version-plf
  • impact_carbone
  • xlsx
  • header_revamp
  • 270-concevoir-la-page-d-accueil-leximpact
  • 219-conversion-des-montants-min-et-max-de-l-axe-des-x-en-smic
  • 0.0.1123
  • 0.0.1122
  • 0.0.1121
  • 0.0.1120
  • 0.0.1119
  • 0.0.1118
  • 0.0.1117
  • 0.0.1116
  • 0.0.1115
  • 0.0.1114
  • 0.0.1113
  • 0.0.1112
  • 0.0.1111
  • 0.0.1110
  • 0.0.1109
  • 0.0.1108
  • 0.0.1107
  • 0.0.1106
  • 0.0.1105
  • 0.0.1104
41 results

variables.ts

Blame
  • variables.ts 6.43 KiB
    import variableSummaryByNameUnknown from "@openfisca/france-json/variables_summaries.json"
    import type {
      Formula,
      Reference,
      Variable,
      VariableByName,
    } from "@openfisca/json-model"
    
    import type { CalculationName } from "$lib/calculations"
    import { reformChangesByName } from "$lib/reforms"
    
    export interface InstantFormulaAndReferences {
      formula?: Formula
      instant: string
      references: Reference[]
    }
    
    export type ValuesByCalculationNameByVariableName = {
      [variableName: string]: VariableValuesByCalculationName
    }
    
    export type VariableValueByCalculationName = Partial<{
      [calculationName in CalculationName]: VariableValue
    }>
    
    export type VariableValuesByCalculationName = Partial<{
      [calculationName in CalculationName]: VariableValues
    }>
    
    export type VariableValue = boolean | number | string
    
    export type VariableValues = boolean[] | number[] | string[]
    
    /// Name of variables that must be calculated to be displayed in
    /// test case summaries.
    export const summaryCalculatedVariablesName = [
      "assiette_csg_revenus_capital",
      "assiette_csg_plus_values",
      "plus_values_base_large",
      "rente_viagere_titre_onereux_net",
      "rsa",
    ]
    
    export const variableSummaryByName =
      variableSummaryByNameUnknown as VariableByName
    
    export const variableSummaryByNameByReformName: {
      [name: string]: VariableByName
    } = Object.fromEntries(
      Object.entries(reformChangesByName).map(([reformName, reformChanges]) => [
        reformName,
        patchVariableSummaryByName(
          variableSummaryByName,
          reformChanges.variables_summaries,
        ),
      ]),
    )
    
    export function buildInstantFormulaAndReferencesArray(
      variable: Variable,
    ): InstantFormulaAndReferences[] {
      const instantFormulaAndReferencesByInstant: {
        [instant: string]: InstantFormulaAndReferences
      } = Object.fromEntries(
        Object.entries(variable.formulas ?? {}).map(([instant, formula]) => [
          instant,
          { formula, instant, references: [] },
        ]),
      )
      if (variable.reference !== undefined) {