diff --git a/index.html b/index.html index 6958d6203..81fe8f0f4 100644 --- a/index.html +++ b/index.html @@ -3,12 +3,15 @@ - prel2 + Syso
lOl
- + + + + diff --git a/package.json b/package.json index 5b93e19c5..0e944c0de 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "license": "AGPL-3.0", "repository": { "type": "git", - "url": "git@github.com:laem/prel2.git" + "url": "git@github.com:laem/syso.git" }, "description": "Expérimentation sur les prélèvements sociaux en code", "engines": { @@ -14,7 +14,10 @@ "babel-runtime": "^6.6.1", "classnames": "^2.2.1", "deep-assign": "^2.0.0", - "ramda": "^0.21.0", + "install": "^0.8.2", + "js-yaml": "^3.7.0", + "npm": "^4.0.3", + "ramda": "^0.22.1", "react": "^15.0.1", "react-dom": "^15.0.1", "react-hot-loader": "3.0.0-beta.2", diff --git a/règles/rémunération-travail/aides/différées.yaml b/règles/rémunération-travail/aides/différées.yaml deleted file mode 100644 index f247fb5bc..000000000 --- a/règles/rémunération-travail/aides/différées.yaml +++ /dev/null @@ -1,16 +0,0 @@ -- variable: crédit impot compétitivité emploi - abbreviation: CICE - depuis: 2013-1-1 - calc: ad hoc - -- variable: aide premier salarie - tags: - type aide: aide embauche - depuis: 2015-6-9 - calc: ad hoc - -- variable: aide embauche pme - tags: - type aide: aide embauche - depuis: 2015-1-18 - calc: ad hoc diff --git a/règles/rémunération-travail/aides/outre-mer/exonération-CUI-CAE-DOM.yaml b/règles/rémunération-travail/aides/outre-mer/exonération-CUI-CAE-DOM.brouillon.yaml similarity index 100% rename from règles/rémunération-travail/aides/outre-mer/exonération-CUI-CAE-DOM.yaml rename to règles/rémunération-travail/aides/outre-mer/exonération-CUI-CAE-DOM.brouillon.yaml diff --git a/règles/rémunération-travail/aides/outre-mer/exonération-lodeom.yaml b/règles/rémunération-travail/aides/outre-mer/exonération-lodeom.yaml index 082a8454a..a58f823c7 100644 --- a/règles/rémunération-travail/aides/outre-mer/exonération-lodeom.yaml +++ b/règles/rémunération-travail/aides/outre-mer/exonération-lodeom.yaml @@ -29,60 +29,60 @@ - allocations familiales +: - Aide: - variante: exonération de droit commun + - Aide: + variante: exonération de droit commun - conditions à remplir: - toutes ces conditions: - - effectif entreprise < 11 - #TODO règles de calcul de l'effectif, maintien partiel de l'éxo en cas de croissance : https://www.urssaf.fr/portail/home/outre-mer/employeur/exoneration-de-cotisations-dite/les-employeurs-concernes-par-lex/lexoneration-de-droit-commun-pou.html - - secteur Salariat ⊂ : # Voir la remarque "Bon à savoir" de l'URSSAF : c'est bien le secteur d'activité du salarié qui importe - - Bâtiment et travaux publics, industrie - - Restauration - - Presse, production audiovisuelle - - Energies renouvelables - - Nouvelles technologies de l'information, de la communication et centres d'appel - - Pêche, cultures marines, aquaculture - - Agriculture y compris les coopératives agricoles et les SICA et leurs unions, coopératives maritimes et leurs unions - - Tourisme, restauration de tourisme y compris les activités de loisirs s'y rapportant et hôtellerie - - Transport aérien #TODO conditionné - - Transport maritime ou fluvial #TODO conditionné + conditions à remplir: + toutes ces conditions: + - effectif entreprise < 11 + #TODO règles de calcul de l'effectif, maintien partiel de l'éxo en cas de croissance : https://www.urssaf.fr/portail/home/outre-mer/employeur/exoneration-de-cotisations-dite/les-employeurs-concernes-par-lex/lexoneration-de-droit-commun-pou.html + - secteur Salariat ⊂ : # Voir la remarque "Bon à savoir" de l'URSSAF : c'est bien le secteur d'activité du salarié qui importe + - Bâtiment et travaux publics, industrie + - Restauration + - Presse, production audiovisuelle + - Energies renouvelables + - Nouvelles technologies de l'information, de la communication et centres d'appel + - Pêche, cultures marines, aquaculture + - Agriculture y compris les coopératives agricoles et les SICA et leurs unions, coopératives maritimes et leurs unions + - Tourisme, restauration de tourisme y compris les activités de loisirs s'y rapportant et hôtellerie + - Transport aérien #TODO conditionné + - Transport maritime ou fluvial #TODO conditionné - # Méchanisme de calcul assez original - coefficient de réduction: - # Le principe de cette exonération : - # les cotisations cibles vont être rejouées, - # mais avec une assiette réduite à un coefficient * le smic, puis retranchées. - # la formule ci-dessous donne le coefficient qui varie sur des tranches - affine par morceaux: - base: smic proratisé - tranches: - - seuil: 0 - # Exonération totale des cotisations d’assurances sociales et d’allocations familiales - coefficient: 1 - - seuil: 1.4 - # Exonération sur la partie du salaire horaire brut limitée à 1.4 - coefficient: 1.4 - - seuil: 2 - # le coefficient suit une fonction linéaire passant par la borne précédente et la borne suivante - #TODO est-ce clair ? - coefficient: linéaire - - seuil: 3 - # Pas d’exonération dès le 1er euro versé - exonération: 0 + # Méchanisme de calcul assez original + coefficient de réduction: + # Le principe de cette exonération : + # les cotisations cibles vont être rejouées, + # mais avec une assiette réduite à un coefficient * le smic, puis retranchées. + # la formule ci-dessous donne le coefficient qui varie sur des tranches + affine par morceaux: + base: smic proratisé + tranches: + - seuil: 0 + # Exonération totale des cotisations d’assurances sociales et d’allocations familiales + coefficient: 1 + - seuil: 1.4 + # Exonération sur la partie du salaire horaire brut limitée à 1.4 + coefficient: 1.4 + - seuil: 2 + # le coefficient suit une fonction linéaire passant par la borne précédente et la borne suivante + #TODO est-ce clair ? + coefficient: linéaire + - seuil: 3 + # Pas d’exonération dès le 1er euro versé + exonération: 0 - # Faire le même pour les autres conditions : CICE: [oui, non], type de réduction: [effectif, secteur] + # Faire le même pour les autres conditions : CICE: [oui, non], type de réduction: [effectif, secteur] - +: - Aide: - variante: exonération renforcée - # Complexité énorme pour 'concerne' !!!!!!!!!!!!!! - conditions à remlir: - toutes ces conditions: - - effectif < 250 && CA < 50 000 000 - - condition complexe ... - - soumis de plein droit ou sur option à un régime réel d’imposition - #TODO IMPORTANT résoudre la syntaxe ET OU... - # si machin alors condition suppl - # méchanisme de calcul : IDEM exo droit commun + - Aide: + variante: exonération renforcée + # Complexité énorme pour 'concerne' !!!!!!!!!!!!!! + conditions à remlir: + toutes ces conditions: + - effectif < 250 && CA < 50 000 000 + - condition complexe ... + - soumis de plein droit ou sur option à un régime réel d’imposition + #TODO IMPORTANT résoudre la syntaxe ET OU... + # si machin alors condition suppl + + # méchanisme de calcul : IDEM exo droit commun diff --git a/règles/rémunération-travail/aides/outre-mer/exonération-mayotte.yaml b/règles/rémunération-travail/aides/outre-mer/exonération-mayotte.brouillon.yaml similarity index 100% rename from règles/rémunération-travail/aides/outre-mer/exonération-mayotte.yaml rename to règles/rémunération-travail/aides/outre-mer/exonération-mayotte.brouillon.yaml diff --git a/règles/rémunération-travail/aides/outre-mer/exonération-saint-pierre-miquelon.yaml b/règles/rémunération-travail/aides/outre-mer/exonération-saint-pierre-miquelon.brouillon.yaml similarity index 100% rename from règles/rémunération-travail/aides/outre-mer/exonération-saint-pierre-miquelon.yaml rename to règles/rémunération-travail/aides/outre-mer/exonération-saint-pierre-miquelon.brouillon.yaml diff --git a/règles/rémunération-travail/aides/réduction-générale-bas-salaires-fillon.yaml b/règles/rémunération-travail/aides/réduction-générale-bas-salaires-fillon.yaml index ab91d57a3..9529ecc1a 100644 --- a/règles/rémunération-travail/aides/réduction-générale-bas-salaires-fillon.yaml +++ b/règles/rémunération-travail/aides/réduction-générale-bas-salaires-fillon.yaml @@ -1,5 +1,4 @@ - Aide: réduction générale bas salaires - attributs: type: réduction de cotisations thème: aide bas salaires diff --git a/règles/rémunération-travail/alsace-moselle.yaml b/règles/rémunération-travail/alsace-moselle.yaml index 59e72f23a..f8ee8568c 100644 --- a/règles/rémunération-travail/alsace-moselle.yaml +++ b/règles/rémunération-travail/alsace-moselle.yaml @@ -1,4 +1,4 @@ -- variable: régime géographique = Alsace Moselle +- Variable: régime Alsace Moselle description: Appartenance au régime local de sécurité sociale Alsace-Moselle référence: http://regime-local.fr/salaries/ logique: diff --git a/règles/rémunération-travail/cdd/CIF.yaml b/règles/rémunération-travail/cdd/CIF.yaml index d763dc598..a1605ff2d 100644 --- a/règles/rémunération-travail/cdd/CIF.yaml +++ b/règles/rémunération-travail/cdd/CIF.yaml @@ -1,6 +1,6 @@ -- variable: CIF CDD +- Cotisation: CIF CDD description: Conrtibution au financement du congé individuel de formation spécifique aux CDD - tags: + attributs: collecteur: OPCA reference: Code du travail - Article L6322-37 ne concerne pas: @@ -12,6 +12,7 @@ - contrat aidé # voir la définition précise dans indemnité de fin de contrat - apprentissage - linear: - base: assiette cotisations sociales - historique: 0.01 + formule: + linéaire: + base: assiette cotisations sociales + historique: 0.01 diff --git a/règles/rémunération-travail/cdd/_cdd.yaml b/règles/rémunération-travail/cdd/_cdd.yaml deleted file mode 100644 index 210d5c40d..000000000 --- a/règles/rémunération-travail/cdd/_cdd.yaml +++ /dev/null @@ -1 +0,0 @@ -- CDD diff --git a/règles/rémunération-travail/cdd/indemnité_compensatrice_congés_payés.yaml b/règles/rémunération-travail/cdd/indemnité_compensatrice_congés_payés.yaml index 312e2394d..9b24679df 100644 --- a/règles/rémunération-travail/cdd/indemnité_compensatrice_congés_payés.yaml +++ b/règles/rémunération-travail/cdd/indemnité_compensatrice_congés_payés.yaml @@ -1,4 +1,4 @@ -- variable: indemnité compensatrice congés payés +- Cotisation: indemnité compensatrice congés payés references: - https://www.service-public.fr/particuliers/vosdroits/F2931 - https://www.easycdd.com/LEGISLATION-CDD/L-embauche-le-suivi-du-contrat-CDD-les-incidents-frequents/Conges-payes-et-contrat-CDD diff --git a/règles/rémunération-travail/cdd/indemnité_fin_contrat.yaml b/règles/rémunération-travail/cdd/indemnité_fin_contrat.yaml index 0c23ecaa1..575e24240 100644 --- a/règles/rémunération-travail/cdd/indemnité_fin_contrat.yaml +++ b/règles/rémunération-travail/cdd/indemnité_fin_contrat.yaml @@ -1,7 +1,7 @@ -- variable: indemnité de fin de contrat - tags: - - indemnité - alias: prime de précarité +- Cotisation: Indemnité de Fin de Contrat + attributs: + type: indemnité + alias: Prime de précarité description: Somme versée en fin de CDD comme compensation de précarité. notes: Attention, les exceptions sont légion. Conventions collectives. concerne: @@ -21,9 +21,10 @@ - contrat jeune vacances # (contrat conclu avec un jeune pendant ses vacances scolaires ou universitaires.) - engagement employeur complément formation professionnelle - saisonnier - linear: - base: salaire brut - taux: .1 + formule: + linéaire: + base: salaire brut + taux: .1 références: - Fin du CDD: https://www.service-public.fr/particuliers/vosdroits/F40 diff --git a/règles/rémunération-travail/cdd/misc.yaml b/règles/rémunération-travail/cdd/misc.yaml index 0f71f7ab0..cfbcb2825 100644 --- a/règles/rémunération-travail/cdd/misc.yaml +++ b/règles/rémunération-travail/cdd/misc.yaml @@ -1,4 +1,4 @@ -- variable: contrat aidé +- Variable: Contrat Aidé description: Contrat aidé dans le cadre de la polotique pour l'emploi notes: Il est assez difficile de déterminer ce que le terme contrat aidé regroupe logique: @@ -8,34 +8,35 @@ - étudiant apprenti professeur - CDD sénior -- variable: CDD transformé en CDI - logique: - - embauche en CDI suivant le CDD - - CDD requalifié en CDI # quand ça arrive ? +- Variable: CDD transformé en CDI + formule: + logique: + - embauche en CDI suivant le CDD + - CDD requalifié en CDI # quand ça arrive ? -- variable: CDD usage # Similaire pour intérim, mais domaines différents +- Variable: CDD usage # Similaire pour intérim, mais domaines différents référence: https://www.service-public.fr/particuliers/vosdroits/F32476 - si: emploi temporaire par nature - inclusion logique: - variable: secteur activité entreprise - possibilités: - - Déménagement - - Services à la personne - - Hôtellerie, restauration - - Centre de loisirs et de vacances - - Activité foraine - - Sport professionnel - - Enseignement - - Spectacle - - Action culturelle - - Audiovisuel, production cinématographique, édition phonographique - - Exploitation forestière - - Réparation navale - - Information - - Enquêtes, sondages - - Entreposage et stockage de la viande - - Bâtiment et travaux publics pour les chantiers à l'étranger - - Coopération, assistance technique d'ingénierie et de recherche à l'étranger - - Recherche scientifique dans le cadre d'un accord international (convention, arrangement administratif) - - Assistance technique ou logistique dans les institutions internationales ou dans l'Union européenne prévu par les traités - - + concerne: emploi temporaire par nature + formule: + inclusion logique: + variable: secteur activité entreprise + possibilités: + - Déménagement + - Services à la personne + - Hôtellerie, restauration + - Centre de loisirs et de vacances + - Activité foraine + - Sport professionnel + - Enseignement + - Spectacle + - Action culturelle + - Audiovisuel, production cinématographique, édition phonographique + - Exploitation forestière + - Réparation navale + - Information + - Enquêtes, sondages + - Entreposage et stockage de la viande + - Bâtiment et travaux publics pour les chantiers à l'étranger + - Coopération, assistance technique d'ingénierie et de recherche à l'étranger + - Recherche scientifique dans le cadre d'un accord international (convention, arrangement administratif) + - Assistance technique ou logistique dans les institutions internationales ou dans l'Union européenne prévu par les traités diff --git a/règles/rémunération-travail/cotisations/allocations-familiales.yaml b/règles/rémunération-travail/cotisations/allocations-familiales.yaml index f068145c2..2cadcdd88 100644 --- a/règles/rémunération-travail/cotisations/allocations-familiales.yaml +++ b/règles/rémunération-travail/cotisations/allocations-familiales.yaml @@ -1,4 +1,4 @@ -- Cotisation: allocations familiales +- Cotisation: Allocations Familiales attributes: dû par: employeur branche: famille diff --git a/règles/rémunération-travail/cotisations/chomage.yaml b/règles/rémunération-travail/cotisations/chomage.yaml index 6ec4610fa..5148fd5d3 100644 --- a/règles/rémunération-travail/cotisations/chomage.yaml +++ b/règles/rémunération-travail/cotisations/chomage.yaml @@ -1,4 +1,4 @@ -- Cotisation: chomage +- Cotisation: Chomage attributs: branche: chomage collecteur: Pôle-Emploi diff --git a/règles/rémunération-travail/cotisations/contribution-dialogue-social.yaml b/règles/rémunération-travail/cotisations/contribution-dialogue-social.yaml index 0941cbcbe..607afb3d0 100644 --- a/règles/rémunération-travail/cotisations/contribution-dialogue-social.yaml +++ b/règles/rémunération-travail/cotisations/contribution-dialogue-social.yaml @@ -1,4 +1,4 @@ -- Cotisation: contribution au dialogue social +- Cotisation: Contribution au Dialogue Social attributs: dû par: employeur branche: aucune idée diff --git a/règles/rémunération-travail/cotisations/cotisation-exceptionnelle-temporaire.yaml b/règles/rémunération-travail/cotisations/cotisation-exceptionnelle-temporaire.yaml index 33990f2ba..74388adee 100644 --- a/règles/rémunération-travail/cotisations/cotisation-exceptionnelle-temporaire.yaml +++ b/règles/rémunération-travail/cotisations/cotisation-exceptionnelle-temporaire.yaml @@ -1,4 +1,4 @@ -- Cotisation: cotisation exceptionnelle temporaire +- Cotisation: Cotisation Exceptionnelle Temporaire attributs: branche: retraite type de retraite: complémentaire @@ -15,19 +15,19 @@ - Cotisation: dû par: employeur taux: - 2016-01-01: .0022 - 2001-01-01: .0022 - 2000-01-01: .0017 - 1999-01-01: .0013 - 1998-01-01: .0009 - 1997-01-01: .00044 + 2016: .0022 + 2001: .0022 + 2000: .0017 + 1999: .0013 + 1998: .0009 + 1997: .00044 - Cotisation: dû par: salarié taux: - 2016-01-01: .0013 - 2001-01-01: .0013 - 2000-01-01: .0011 - 1999-01-01: .0008 - 1998-01-01: .0005 - 1997-01-01: .00026 + 2016: .0013 + 2001: .0013 + 2000: .0011 + 1999: .0008 + 1998: .0005 + 1997: .00026 diff --git a/règles/rémunération-travail/cotisations/formation-professionnelle.yaml b/règles/rémunération-travail/cotisations/formation-professionnelle.yaml index 2c1c10e90..19b960189 100644 --- a/règles/rémunération-travail/cotisations/formation-professionnelle.yaml +++ b/règles/rémunération-travail/cotisations/formation-professionnelle.yaml @@ -1,4 +1,4 @@ -- Cotisation: formation professionnelle +- Cotisation: Formation Professionnelle attributs: dû par: employeur collecteur: OPCA diff --git a/règles/rémunération-travail/cotisations/maladie.yaml b/règles/rémunération-travail/cotisations/maladie.yaml index ae8b5eaa8..c577a6c97 100644 --- a/règles/rémunération-travail/cotisations/maladie.yaml +++ b/règles/rémunération-travail/cotisations/maladie.yaml @@ -1,4 +1,4 @@ -- Cotisation: maladie +- Cotisation: Maladie attributs: branche: maladie initiales: MMID-CSA diff --git a/règles/rémunération-travail/cotisations/participation-effort-construction.yaml b/règles/rémunération-travail/cotisations/participation-effort-construction.yaml index 2d95e641a..68660da24 100644 --- a/règles/rémunération-travail/cotisations/participation-effort-construction.yaml +++ b/règles/rémunération-travail/cotisations/participation-effort-construction.yaml @@ -1,4 +1,4 @@ -- Cotisation: participation effort construction +- Cotisation: Participation Effort Construction attributs: branche: aucune idée dû par: employeur diff --git a/règles/rémunération-travail/cotisations/prévoyance-obligatoire-cadre.yaml b/règles/rémunération-travail/cotisations/prévoyance-obligatoire-cadre.yaml index e712dd4a0..769bd49d0 100644 --- a/règles/rémunération-travail/cotisations/prévoyance-obligatoire-cadre.yaml +++ b/règles/rémunération-travail/cotisations/prévoyance-obligatoire-cadre.yaml @@ -1,4 +1,4 @@ -- Cotisation: Prévoyance obligatoire cadre +- Cotisation: Prévoyance Obligatoire Cadre attributs: dû par: employeur concerne: catégorie salarié = cadre diff --git a/règles/rémunération-travail/cotisations/taxe-apprentissage.yaml b/règles/rémunération-travail/cotisations/taxe-apprentissage.yaml index d42183f37..05e1428a5 100644 --- a/règles/rémunération-travail/cotisations/taxe-apprentissage.yaml +++ b/règles/rémunération-travail/cotisations/taxe-apprentissage.yaml @@ -1,4 +1,4 @@ -- Cotisation: apprentissage +- Cotisation: Taxe pour l'Apprentissage attributs: branche: aucune idée collecteur: Organisme Collecteur de Taxe d'Apprentissage (OCTA) @@ -8,7 +8,7 @@ - https://www.service-public.fr/professionnels-entreprises/vosdroits/F22574 - http://www.opcalia.com/employeurs/financer-la-formation-et-lapprentissage/taxe-dapprentissage/contribution-supplementaire-a-lapprentissage-csa/ - notes: Taxe complexe, comportant notamment des exonérations non prises en compte ici. + notes: Taxe complexe, comportant notamment des exonérations non prises en compte ici. ne concerne pas: - Entreprise . association non lucrative @@ -32,8 +32,10 @@ description: Contribution supplémentaire à l'apprentissage abbreviation: CSA - concerne: effectif entreprise >= 250 - concerne: ratio alternants < 0.05 + conditions à remplir: + toutes ces conditions: + - effectif entreprise >= 250 + - ratio alternants < 0.05 variations: - si: régime géographique = général diff --git a/règles/rémunération-travail/cotisations/vieillesse.yaml b/règles/rémunération-travail/cotisations/vieillesse.yaml index 93feeb225..51b82a391 100644 --- a/règles/rémunération-travail/cotisations/vieillesse.yaml +++ b/règles/rémunération-travail/cotisations/vieillesse.yaml @@ -1,4 +1,4 @@ -- Cotisation: vieillesse +- Cotisation: Vieillesse attributs: branche: retraite type de retraite: de base diff --git a/règles/rémunération-travail/cout-du-travail.yaml b/règles/rémunération-travail/cout-du-travail.brouillon.yaml similarity index 100% rename from règles/rémunération-travail/cout-du-travail.yaml rename to règles/rémunération-travail/cout-du-travail.brouillon.yaml diff --git a/source/components/Rule.css b/source/components/Rule.css new file mode 100644 index 000000000..ef80ecfb0 --- /dev/null +++ b/source/components/Rule.css @@ -0,0 +1,3 @@ +#variable { + font-size: 150%; +} diff --git a/source/components/Rule.js b/source/components/Rule.js new file mode 100644 index 000000000..03042b24b --- /dev/null +++ b/source/components/Rule.js @@ -0,0 +1,19 @@ +import React, { Component } from 'react' +import {findRuleByName} from '../model.js' +import {safeDump} from 'js-yaml' +import './Rule.css' + +export default class Rule extends Component { + render() { + return ( +
+
+					
+						{safeDump(findRuleByName(this.props.params.name)[2])}
+					
+				
+
+ + ) + } +} diff --git a/source/containers/Home.css b/source/containers/Home.css index 03bdfb064..4076a9bec 100644 --- a/source/containers/Home.css +++ b/source/containers/Home.css @@ -50,3 +50,14 @@ margin: 0 auto; list-style: none; } + +#search-results li { + margin: .5em 0; +} + +#search-results .rule-type { + border: 1px solid lightGrey; + padding: 0 .5em; + font-size: 75%; + margin-right: 1em; +} diff --git a/source/containers/Home.js b/source/containers/Home.js index deb05c7f4..e4851c8b8 100644 --- a/source/containers/Home.js +++ b/source/containers/Home.js @@ -1,7 +1,7 @@ import React, { Component } from 'react' import './Home.css' - -console.log('rules', rules.length) +import {searchRules} from '../model.js' +import {Link} from 'react-router' export default class Home extends Component { state = { @@ -27,13 +27,19 @@ export default class Home extends Component {
) diff --git a/source/load-rules.js b/source/load-rules.js index 0e2238559..f640c4ebd 100644 --- a/source/load-rules.js +++ b/source/load-rules.js @@ -3,8 +3,8 @@ import R from 'ramda' /* Load yaml files */ let context = require.context( - '../règles/rémunération-travail/cotisations', false, - /([a-zA-Z]|\.|-|_)+.yaml$/) + '../règles/rémunération-travail', true, + /([a-zA-Z]|-|_)+.yaml$/) let rules = R.pipe( @@ -13,4 +13,5 @@ let rules = R.pipe( R.unnest, )(context.keys()) -export default rules + +export default rules.filter(r => r != null) diff --git a/source/model.js b/source/model.js new file mode 100644 index 000000000..d2e630daf --- /dev/null +++ b/source/model.js @@ -0,0 +1,25 @@ +import rules from './load-rules' +import possibleVariableTypes from './possibleVariableTypes.yaml' + + +export let findRuleByName = name => + rules + .map(extractRuleTypeAndName) + .find( ([, n]) => + n === name + ) + +export let searchRules = searchInput => + rules + .filter( rule => + rule && hasKnownRuleType(rule) && + JSON.stringify(rule).indexOf(searchInput) > -1) + .map(extractRuleTypeAndName) + + +export let extractRuleTypeAndName = rule => { + let type = possibleVariableTypes.find(t => rule[t]) + return [type, rule[type], rule] +} + +export let hasKnownRuleType = rule => rule && extractRuleTypeAndName(rule)[0] diff --git a/source/possibleVariableTypes.yaml b/source/possibleVariableTypes.yaml new file mode 100644 index 000000000..a21d7d5e5 --- /dev/null +++ b/source/possibleVariableTypes.yaml @@ -0,0 +1,3 @@ +# Ce fichier n'est que temporaire et remplace une vraie définition de types +- Cotisation +- Aide diff --git a/source/routes.js b/source/routes.js index 0cd775a8d..cc0c8fac7 100644 --- a/source/routes.js +++ b/source/routes.js @@ -6,7 +6,7 @@ import Rule from './components/Rule' export default ( - +

On vous a perdu !

} />