Skip to content
Snippets Groups Projects
Select Git revision
  • 4a88576a67b6c6db667e15ef54a8fa3aeb6d2ac9
  • master default protected
  • 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
  • 294-afficher-le-salaire-des-cas-types-en-nombre-de-smic
  • 0.0.1124
  • 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
41 results

ScholarWaterfall.svelte

Blame
  • ScholarWaterfall.svelte 15.11 KiB
    <script lang="ts">
      import { createEventDispatcher, getContext } from "svelte"
      import type { Writable } from "svelte/store"
    
      import { session } from "$app/stores"
      import PictoFemme from "$lib/components/pictos/PictoFemme.svelte"
      import PictoEntreprise from "$lib/components/pictos/PictoEntreprise.svelte"
      import type { Decomposition, DecompositionByName } from "$lib/decompositions"
      import {
        iterDecompositionChildren,
        walkDecompositions,
      } from "$lib/decompositions"
    
      export let vectorIndex: number
    
      const adaptAmountsScale = getContext("adaptAmountsScale") as Writable<boolean>
      const decompositionByName = getContext(
        "decompositionByName",
      ) as Writable<DecompositionByName>
      const deltaFormatter = new Intl.NumberFormat("fr-FR", {
        currency: "EUR",
        maximumFractionDigits: 0,
        minimumFractionDigits: 0,
        signDisplay: "never",
        style: "currency",
      })
      const dispatch = createEventDispatcher()
      const firstDeltaFormatter = new Intl.NumberFormat("fr-FR", {
        currency: "EUR",
        maximumFractionDigits: 0,
        minimumFractionDigits: 0,
        style: "currency",
      })
      const showNulls = getContext("showNulls") as Writable<boolean>
      let waterfallWidth = 100
    
      $: rootDecompositionName = $session.rootDecompositionName
    
      $: nodes = [
        ...walkVisibleDecomposition(
          $decompositionByName,
          rootDecompositionName,
          $showNulls,
        ),
      ]
    
      $: [valueMin, valueMax] = computeXDomain(
        $decompositionByName,
        rootDecompositionName,
        vectorIndex,
        $adaptAmountsScale,
      )
    
      $: widthMax = waterfallWidth - 1
    
      function computeXDomain(
        decompositionByName: DecompositionByName,
        name: string,
        vectorIndex: number,
        adaptAmountsScale: boolean,
      ): [number, number] {
        let valueMin = undefined
        let valueMax = undefined
        for (const node of walkDecompositions(
          decompositionByName,
          name,
          false,
          false,
        )) {
          if (adaptAmountsScale) {