PageSourceSearch

https://www.smartdatapay.app/_next/static/chunks/0vimo8njuuc0d.js

js smartdatapay.app collected 2026-09-24 14:32:54 UTC 248,464 bytes, 2 lines download raw bytes

1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,535418,223948,e=>{"use strict";let t="contrat-de-travail",a=Object.freeze({typeContrat:Object.freeze({CDI:"CDI",CDD:"CDD"}),employeur:Object.freeze({dossier:"L’entreprise du dossier ouvert",autre:"Une autre entreprise"}),signataireQualite:Object.freeze({"Gérant(e)":"Gérant(e)","Président(e)":"Président(e)","Directeur(rice) général(e)":"Directeur(rice) général(e)","Directeur(rice) des ressources humaines":"Directeur(rice) des ressources humaines",autre:"Autre"}),civilite:Object.freeze({Monsieur:"Monsieur",Madame:"Madame"}),salarieAdresse:Object.freeze({paie:"Reprendre du logiciel de paie",saisir:"La saisir"}),statut:Object.freeze({ouvrier:"Ouvrier",employe:"Employé",technicien:"Technicien",agent_maitrise:"Agent de maîtrise",cadre:"Cadre"}),lieuTravail:Object.freeze({siege:"À l’adresse de l’employeur",autre:"Un autre lieu"}),motifCDD:Object.freeze({remplacement:"Remplacement d’un salarié absent",accroissement:"Accroissement temporaire d’activité",saisonnier:"Emploi saisonnier",usage:"CDD d’usage (secteur autorisé)",attente_recrutement:"Attente de l’entrée en service d’un salarié en CDI"}),termeCDD:Object.freeze({precis:"Oui, une date de fin",imprecis:"Non, une durée minimale"}),posteRisques:Object.freeze({non:"Non",oui:"Oui"}),caisseRetraite:Object.freeze({referentiel:"Celle du référentiel Agirc-Arrco (convention et département)",saisir:"La saisir"}),primes:Object.freeze({aucune:"Aucune",oui:"Oui, à préciser"}),tempsTravail:Object.freeze({temps_plein:"Temps plein",temps_partiel:"Temps partiel"}),modificationHoraires:Object.freeze({standard:"Surcroît temporaire d’activité ou absence d’un salarié, avec 7 jours ouvrés de prévenance",autre:"Autre"}),communicationHoraires:Object.freeze({ecrit:"Par écrit (planning remis au salarié), au moins 7 jours ouvrés avant",autre:"Autre"}),heuresComplementaires:Object.freeze({dixieme:"Le dixième de la durée du contrat (règle légale)",tiers:"Le tiers de la durée du contrat (si un accord collectif le permet)",autre:"Autre"}),periodeEssai:Object.freeze({maximum:"Oui, la durée maximale autorisée",autre:"Oui, une autre durée",aucune:"Non, sans période d’essai"})}),i=Object.freeze({employeurNom:200,employeurAdresse:300,signataireNom:120,signataireQualite:120,signataireQualiteTexte:120,salarie:160,salarieAdresseTexte:300,poste:160,classification:160,missions:1500,lieuTravailTexte:300,motifPrecision:600,salarieRemplace:200,dureeMinimale:60,posteRisquesDetails:600,caisseRetraiteTexte:300,caisseRetraiteAdresse:300,primesTexte:600,repartition:600,modificationHorairesTexte:600,communicationHorairesTexte:600,heuresComplementairesTexte:300,periodeEssaiDuree:60}),r=Object.freeze([Object.freeze({key:"typeContrat",equals:"CDD"})]),n=Object.freeze([Object.freeze({key:"tempsTravail",equals:"temps_partiel"})]);function l(e,t,a){return{key:e,question:t,type:"string",enum:Object.keys(a),choix:a}}function s(e,t,a={}){return{key:e,question:t,type:"string",maxLength:i[e],...a}}function o(e,t,a,i){return s(e,t,{optional:!0,requiredWhen:[{key:a,equals:i}]})}let u=Object.freeze({entreprise:Object.freeze({type:"entreprise",champs:Object.freeze({adresse:"employeurAdresse"})}),salarie:Object.freeze({type:"salarie",si:Object.freeze([Object.freeze({key:"employeur",equals:"dossier"})])})}),c=Object.freeze({label:"Contrat de travail",toolName:"genererContratTravail",api:"/api/agent/contrat-travail",params:[l("typeContrat","Quel **type de contrat** ?",a.typeContrat),{...l("employeur","Quel est l’**employeur** ?",a.employeur),choixAvecDossier:["dossier"]},{...o("employeurNom","**Raison sociale** de l’employeur ?","employeur","autre"),selecteur:u.entreprise},o("employeurAdresse","Adresse complète de l’employeur (numéro, rue, code postal, ville) ?","employeur","autre"),s("signataireNom","Qui **signe pour l’employeur** ? (prénom et nom)"),l("signataireQualite","En quelle **qualité** ?",a.signataireQualite),o("signataireQualiteTexte","Quelle est sa **qualité** ? (ex. « Directrice d’agence »)","signataireQualite","autre"),l("civilite","Le salarié : **Monsieur** ou **Madame** ?",a.civilite),{...s("salarie","**Prénom et nom du salarié** ? (ou son matricule, s’il est déjà dans votre logiciel de paie)"),selecteur:u.salarie},l("salarieAdresse","Son **adresse** ?",a.salarieAdresse),o("salarieAdresseTexte","Adresse du salarié (numéro, rue, code postal, ville) ?","salarieAdresse","saisir"),{key:"idcc",question:"Quelle **convention collective** ? (numéro IDCC)",type:"idcc"},s("poste","**Intitulé du poste** ?"),l("statut","**Catégorie professionnelle** ?",a.statut),s("classification","**Classification** dans la convention (niveau, échelon, coefficient) ?"),s("missions","**Fonctions et missions** principales, en une ou deux phrases ?"),l("lieuTravail","**Lieu de travail** ?",a.lieuTravail),o("lieuTravailTexte","Adresse du **lieu de travail** ?","lieuTravail","autre"),{key:"dateDebut",question:"**Premier jour** du contrat (AAAA-MM-JJ) ?",type:"date"},{...l("motifCDD","**Motif** du recours au CDD ?",a.motifCDD),optional:!0,requiredWhen:r},s("motifPrecision","Précisez le motif (ex. « remplacement de Mme X, en congé maternité, poste d’assistante ») ?",{optional:!0,requiredWhen:r}),s("salarieRemplace","**Nom et qualification** du salarié remplacé ? (pour une attente de recrutement : le salarié dont le poste est repris)",{optional:!0,requiredWhen:[{key:"motifCDD",in:["remplacement","attente_recrutement"]}]}),{...l("termeCDD","Le CDD a-t-il une **date de fin** ?",a.termeCDD),optional:!0,requiredWhen:[{key:"typeContrat",equals:"CDD"},{key:"motifCDD",notIn:["accroissement"]}]},{key:"dateFin",question:"**Dernier jour** du contrat (AAAA-MM-JJ) ?",type:"date",optional:!0,requiredWhen:[{key:"typeContrat",equals:"CDD"},{key:"termeCDD",notIn:["imprecis"]}]},o("dureeMinimale","**Durée minimale** du contrat (ex. 3 mois) ?","terme
1CDD","imprecis"),{...l("posteRisques","Le poste figure-t-il sur la **liste des postes à risques particuliers** de l’entreprise ?",a.posteRisques),optional:!0,requiredWhen:r},o("posteRisquesDetails","Précisez (formation renforcée à la sécurité, dérogation) ?","posteRisques","oui"),{...l("caisseRetraite","**Caisse de retraite complémentaire** ?",a.caisseRetraite),optional:!0,requiredWhen:r},o("caisseRetraiteTexte","Nom et adresse de la **caisse de retraite complémentaire** ?","caisseRetraite","saisir"),o("caisseRetraiteAdresse","**Adresse** de cette caisse de retraite complémentaire (numéro, rue, code postal, ville) ?","caisseRetraite","referentiel"),{key:"salaireBrut",question:"**Salaire brut mensuel** (en euros) ?",type:"number"},{...l("primes","**Primes ou accessoires de salaire** convenus ?",a.primes),optional:!0,requiredWhen:r},o("primesTexte","Lesquels ? (nature, montant ou mode de calcul, périodicité)","primes","oui"),l("tempsTravail","**Temps plein** ou **temps partiel** ?",a.tempsTravail),{key:"heuresHebdo",question:"**Durée hebdomadaire** de travail (en heures) ?",type:"number"},s("repartition","**Répartition** de la durée entre les jours de la semaine (ou les semaines du mois) ?",{optional:!0,requiredWhen:n}),{...l("modificationHoraires","Dans quels **cas la répartition peut-elle être modifiée** ?",a.modificationHoraires),optional:!0,requiredWhen:n},o("modificationHorairesTexte","Cas de modification de la répartition, et délai de prévenance ?","modificationHoraires","autre"),{...l("communicationHoraires","Comment les **horaires** de chaque journée sont-ils communiqués ?",a.communicationHoraires),optional:!0,requiredWhen:n},o("communicationHorairesTexte","Modalités de communication des horaires ?","communicationHoraires","autre"),{...l("heuresComplementaires","**Limite des heures complémentaires** ?",a.heuresComplementaires),optional:!0,requiredWhen:n},o("heuresComplementairesTexte","Limite des heures complémentaires applicable ?","heuresComplementaires","autre"),l("periodeEssai","**Période d’essai** ?",a.periodeEssai),o("periodeEssaiDuree","Quelle **durée** ? (ex. 1 mois, 2 semaines, 10 jours)","periodeEssai","autre"),{key:"confirmation",question:"Vous **confirmez** que ces informations (identités, dates, poste, rémunération, temps de travail) sont celles du contrat à établir ? Vous relirez le contrat avant de le faire signer.",type:"boolean"}]}),d=Object.freeze({typeContrat:"le type de contrat",employeur:"l’employeur",employeurNom:"la raison sociale",employeurAdresse:"l’adresse de l’employeur",signataireNom:"le signataire",signataireQualite:"la qualité du signataire",signataireQualiteTexte:"la qualité du signataire",civilite:"la civilité",salarie:"le salarié",salarieAdresse:"l’adresse du salarié",salarieAdresseTexte:"l’adresse du salarié",poste:"le poste",classification:"la classification",missions:"les missions",lieuTravail:"le lieu de travail",lieuTravailTexte:"l’adresse du lieu de travail",motifCDD:"le motif du CDD",motifPrecision:"la précision du motif",salarieRemplace:"le salarié remplacé",termeCDD:"le terme du CDD",dureeMinimale:"la durée minimale",posteRisques:"le poste à risques",posteRisquesDetails:"la précision sur les risques",caisseRetraite:"la caisse de retraite",caisseRetraiteTexte:"la caisse de retraite",caisseRetraiteAdresse:"l’adresse de la caisse de retraite",salaireBrut:"le salaire brut mensuel",primes:"les primes et accessoires",primesTexte:"les primes et accessoires",tempsTravail:"le temps de travail",heuresHebdo:"les heures par semaine",repartition:"la répartition des horaires",modificationHoraires:"la modification des horaires",modificationHorairesTexte:"la modification des horaires",communicationHoraires:"la communication des horaires",communicationHorairesTexte:"la communication des horaires",heuresComplementaires:"les heures complémentaires",heuresComplementairesTexte:"les heures complémentaires",periodeEssai:"la période d’essai",periodeEssaiDuree:"la durée de l’essai",confirmation:"la confirmation"}),m=Object.freeze({id:t,label:"Contrat de travail",subtitle:"CDI ou CDD, prérempli depuis le dossier, en Word et en PDF",category:"Documents",view:"documents/contrat-de-travail",isFree:!1,isAvailable:!0});e.s(["COMMANDE_CONTRAT_DE_TRAVAIL",0,m,"CONTRAT_DE_TRAVAIL_ID",0,t,"LIBELLES_CONTRAT_DE_TRAVAIL",0,d,"PARCOURS_CONTRAT_DE_TRAVAIL",0,c],223948);let p=e=>/^[aeiouy]/i.test(e.normalize("NFD").replace(/[̀-ͯ]/g,""))?`d'${e}`:`de ${e}`,f=Object.freeze({sens:"le sens de la conversion",hebdo:"la durée hebdomadaire",mensuel:"la durée mensuelle",salaireMensuel:"le salaire net mensuel",personnesACharge:"les personnes à charge",typeSaisie:"le type de saisie",majorationType:"le type de majoration",monday:"les heures du lundi",tuesday:"les heures du mardi",wednesday:"les heures du mercredi",thursday:"les heures du jeudi",friday:"les heures du vendredi",saturday:"les heures du samedi",sunday:"les heures du dimanche",signatureDate:"la date de signature du contrat",period1:"le premier mois de la 1re année",majoration1:"la majoration de 15 % de la 1re année",period2:"le premier mois de la 2e année",majoration2:"la majoration de 15 % de la 2e année",period3:"le premier mois de la 3e année",majoration3:"la majoration de 15 % de la 3e année",previousPercentage:"le pourcentage du contrat d'apprentissage précédent",selectedYear:"l'année civile",maternityDays:"les jours de congé maternité ou paternité",annee:"l'année",typeSalarie:"la situation du salarié",heuresContrat:"les heures contractuelles hebdomadaires",dureeLegale:"la durée légale hebdomadaire",renonceAjustement:"la renonciation à l'ajustement du plafond",periodicitePayee:"la périodicité de la paie",jourDebutPaie:"le premier jour de la période de paie",jourFinPaie:"le dernier jour de la période de paie",payePiece:"la paie à la pièce ou à la tâche",hasEntreeSortie:"une entrée ou une sortie dans le mois",hasAbsence:"une suspension du contrat de travail",hasCongePaye:"la caisse de congés payés",hasMultiEmployeur:"le plafond multi-employeur",jourEntree:"le jour d'entrée",jourSortie:"le jour de sortie",jourDebutAbsence:"le premier jour d'absence",jourFinAbsence:"le dernier jour d'absence",maintienSalaire:"le maintien de salaire",joursCarence:"les jours de carence",indemniteIJSS:"les indemnités complémentaires aux IJSS",jourDebutConge:"le premier jour de congé",jourFinConge:"le dernier jour de congé",modeCalculMulti:"le mode de calcul multi-employeur",salaireCourant:"le salaire chez l'employeur actuel",salaireAutresStr:"les salaires chez les autres employeurs",heuresCourant:"les heures chez l'employeur actuel",heuresAutresStr:"les heures chez les autres employeurs",zone:"la zone géographique",typeEmployeur:"le type d'employeur",rapportTVA:"le rapport d'assujettissement à la TVA",assietteMode:"le mode de saisie de l'assiette",salaries:"les salariés",effectif:"l'effectif (taux FNAL)",moisEnCours:"le mois en cours",caisseCP:"la caisse de congés payés",hasDFS:"la déduction forfaitaire spécifique",tauxDFS:"le taux de DFS",tauxATMP:"le taux AT/MP",tauxRetraite:"le taux de retraite complémentaire",...Object.fromEntries(["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"].flatMap((e,t)=>[[`brut${t}`,`le brut ${p(e)}`],[`fraisPro${t}`,`les frais professionnels ${p(e)}`],[`smicFillon${t}`,`le SMIC Fillon ${p(e)}`],[`reductionAppliquee${t}`,`la r\xe9duction appliqu\xe9e ${p(e)}`]])),variableEntree:"la valeur connue",montantEntree:"le montant",contrat:"le type de contrat",statutCadre:"le statut cadre",tempsPartiel:"le temps partiel",quotite:"la quotité de travail",cddDuree:"la durée du CDD",cddPrecarite:"l'indemnité de fin de contrat",apprentiAnciennete:"l'ancienneté dans le contrat d'apprentissage",apprentiDiplome:"le diplôme préparé",proMoins30:"le salarié de moins de 30 ans",pro45Plus:"le salarié de 45 ans et plus",heuresSupp:"les heures supplémentaires",heuresComp:"les heures complémentaires",zfu:"la zone franche urbaine",alsaceMoselle:"le régime Alsace-Moselle",impatrie:"le régime des impatriés",dfs:"la déduction forfaitaire spécifique",dfsProfession:"la profession ouvrant droit à la DFS",convention:"la convention collective",impotMethode:"le mode de calcul de l'impôt",tauxPerso:"le taux personnalisé d'impôt"}),b="/accueil",y="parcours";Object.freeze({"indemnite-licenciement":"Calculer l'indemnité","calendrier-procedure":"Établir le calendrier","solde-de-tout-compte":"Préparer le reçu pour solde de tout compte"});let h=Object.freeze({idcc:"la convention collective (IDCC)",typeContrat:"le type de contrat",motif:"le motif",categorie:"la catégorie",ancienneteAnnees:"les années d'ancienneté",ancienneteMois:"les mois d'ancienneté",dateEffet:"la date d'effet",dateDebutPreavis:"le point de départ du préavis",pointDepartPreavis:"le fondement du point de départ",exceptionsCalendairesAbsentes:"l'absence de suspension ou de report",periodeEssai:"la période d'essai",accordPartiesDifferent:"un préavis convenu entre les parties",eligibiliteRetraiteConfirmee:"l'éligibilité à la retraite",horaireTravail:"l'horaire de travail",preavisExecute:"l'exécution du préavis",depart:"la date connue dont on part",dateReference:"cette date",signatureLeJourMeme:"la signature le jour de l'entretien",departement:"le département de l'établissement",motifLicenciement:"le motif de la rupture",classification:"la classification",salaireReference:"le salaire de référence",salaireReferenceLegal:"le salaire de référence légal",ancienneteSortieAnnees:"les années d'ancienneté à la sortie",ancienneteSortieMois:"les mois d'ancienneté à la sortie",ancienneteNotificationAnnees:"les années d'ancienneté à la notification",ancienneteNotificationMois:"les mois d'ancienneté à la notification",dateRupture:"la date de rupture",reclassificationRefusalAbusive:"le refus abusif de reclassement",monthlyPaymentEligible:"la mensualisation",compensationMode:"le mode de rémunération",endOfCareerReducedHours:"le temps rédu
1it de fin de carrière",fullTimeEquivalentReferenceSalary:"le salaire équivalent temps plein",retirementEligibilityConfirmed:"l'éligibilité à la retraite",civilite:"la civilité",nom:"le nom",prenom:"le prénom",dateEntree:"la date d'entrée",dateSortie:"la date de sortie",entreprise:"l'employeur",sommes:"les sommes versées",ruleCodes:"les règles à consulter",sujet:"le sujet",ancienneteSortie:"l'ancienneté à la sortie",ancienneteNotification:"l'ancienneté à la notification",typeArret:"le type d'arrêt",sousType:"le type d'arrêt (accident ou maladie professionnelle)",dateAccident:"la date de l'accident",typeConge:"le type de congé",situationFamiliale:"la situation familiale",situationPaternite:"la situation familiale",salaireM1:"le salaire brut du mois précédant l'arrêt",salaireM2:"le salaire brut du 2e mois précédant l'arrêt",salaireM3:"le salaire brut du 3e mois précédant l'arrêt",salaireMoisPrecedent:"le salaire brut du mois précédant l'arrêt",brut:"le salaire brut",statut:"le statut",tauxAT:"le taux AT/MP",mode:"le calcul",dateDebut:"la date de début",dateFin:"la date de fin",priorGrossSalaries:"les salaires de référence",priorNonPayableDaysConsumed:"les jours non indemnisables déjà décomptés",priorPaidDaysInEntitlementWindow:"les jours déjà indemnisés",employmentStartDate:"la date d'entrée",isProlongation:"la prolongation",dateDebutArretInitial:"le début de l'arrêt initial",continuationBinding:"la référence du calcul initial",medicalCertificateProvided:"le certificat médical",certificateSubmissionDelayHours:"le délai d'envoi du certificat",careTerritory:"le lieu des soins",socialSecurityCovered:"la prise en charge Sécurité sociale",priorCompensatedAbsenceHistory:"les absences déjà indemnisées",grossDailyReference:"le brut journalier de référence",employerFundedProvident:"la prévoyance employeur",maximumEmployerComplement:"le complément employeur maximal",netMensuel:"le salaire net",nbPersonnesCharge:"les personnes à charge",pensionAlimentaire:"la pension alimentaire",heuresSemaine:"les heures de la semaine",tauxHoraire:"le taux horaire",dureeContractuelle:"la durée contractuelle",valeur:"la valeur",direction:"le sens de conversion",dureeContratJours:"la durée du CDD précédent",dureeValeur:"la durée d'essai",dureeUnite:"l'unité de durée",dateNotification:"la date d'envoi de la rupture",typeConge:"le type de congé",nbEnfantsExistants:"les enfants à charge",grossesseMultiple:"la grossesse multiple",nbEnfantsAttendus:"les enfants attendus",quotiteTravail:"la quotité de travail",joursEntree:"le jour d'entrée",joursMois:"les jours du mois",absencesNonRemunerees:"les absences non rémunérées",masseSalarialeBrute:"la masse salariale brute",ratioAssujettissement:"le ratio d'assujettissement",salaire:"le salaire",methodeCalcul:"la méthode de calcul",joursAbsence:"les jours d'absence",heuresAbsence:"les heures d'absence",typeAbsence:"le type d'absence",motifDepart:"le motif du départ",salaireAnnuelN1:"le salaire annuel N-1",indemnites:"les indemnités",anciennete:"l'ancienneté",tailleEntreprise:"la taille de l'entreprise",mois:"le détail mensuel",calculationMonth:"le mois",totalHours:"les heures de stage",hourlyRate:"le taux horaire",transportEnabled:"l'abonnement transport",transportAmount:"le montant du transport",periodType:"la période",startDate:"la date de début",endDate:"la date de fin",forfaitDays:"les jours du forfait",calculationMode:"le mode de calcul",paidLeaveAcquired:"les congés acquis",absenceDaysReducingRtt:"les absences qui réduisent les RTT",paidLeaveTaken:"les congés pris",sickDays:"les jours d'arrêt maladie",unpaidAbsence:"les absences non rémunérées",publicHolidays:"les jours fériés chômés",dateReprise:"la date de reprise",dateInformation:"la date d'information du salarié",cpNonPris:"les congés non pris",empeche:"l'empêchement de prendre les congés",joursAcquisParPeriode:"les périodes d'acquisition",dureeHebdo:"la durée hebdomadaire",remunerationPeriodeRef:"la rémunération de la période de référence",joursAcquisTotal:"les jours acquis",joursAcquisNonPris:"les jours acquis non pris",salaireMensuelBrut:"le salaire mensuel brut",joursOuvrablesMois:"les jours ouvrables par mois",fiscalPower:"la puissance fiscale",kilometers:"les kilomètres",isElectric:"le véhicule électrique",vehicleType:"le type de véhicule",method:"la méthode d'évaluation",rooms:"les pièces principales",salary:"le salaire brut",cadastralValue:"la valeur locative cadastrale",serviceNecessity:"la nécessité de service",mixedUse:"l'usage mixte",professionalSurface:"la surface professionnelle",remunerationBruteAnnuelle:"la rémunération brute annuelle",heuresAnnuelles:"les heures annuelles",age:"l'âge",anneeContrat:"l'année du contrat",joursCalendaires:"les jours calendaires",njt:"les jours travaillés",tauxCsg:"le taux de CSG",hours:"les heures par jour",purchasePrice:"le prix d'achat",deploymentDate:"la date de mise à disposition",vehicleAge:"l'âge du véhicule",fuelType:"le c
1arburant",fuelCoverage:"la prise en charge du carburant",fuelCost:"le coût du carburant",monthlySalary:"le salaire mensuel",employeeContribution:"la participation du salarié",paidAmount:"le montant déjà versé depuis le début de l'année",accessoireEau:"l'eau (avantage accessoire)",accessoireGaz:"le gaz (avantage accessoire)",accessoireElectricite:"l'électricité (avantage accessoire)",accessoireChauffage:"le chauffage (avantage accessoire)",accessoireGarage:"le garage (avantage accessoire)",totalKm:"le kilométrage annuel total",privateKm:"le kilométrage privé annuel",evaluationMethod:"la méthode d'évaluation",depreciationCost:"l'amortissement annuel",insuranceCost:"l'assurance annuelle",maintenanceCost:"l'entretien annuel",renouvellementValeur:"la durée du renouvellement de l'essai",renouvellementUnite:"l'unité du renouvellement",absences:"les absences pendant l'essai",partieRompant:"qui rompt l'essai",...d,...f}),j=()=>null,v=/^[a-z0-9-]{2,64}$/,g=/^[A-Za-z0-9_.:-]{1,64}$/;e.s(["coercePrefillValues",0,function(e,t={}){let a=new Map((e?.params??[]).map(e=>[e.key,e])),i={};for(let[e,r]of Object.entries(t??{})){let t=a.get(e);if(t&&(!t.optional||t.requiredWhen?.length)){if("idcc"===t.type){let t=Number(r);Number.isInteger(t)&&t>0&&t<=9999&&(i[e]=t);continue}if("boolean"===t.type){"true"===r||!0===r?i[e]=!0:("false"===r||!1===r)&&(i[e]=!1);continue}if("number"===t.type){let t=Number(r);Number.isFinite(t)&&(i[e]=t);continue}(!Array.isArray(t.enum)||t.enum.includes(r))&&(i[e]=r)}}return i},"enregistrerLibellesDeSpecification",0,function(e){j="function"==typeof e?e:()=>null},"libelleParcoursKey",0,function(e){if(h[e])return h[e];let t=j(e);return t||String(e).replace(/([a-z])([A-Z])/g,"$1 $2").toLowerCase()},"parseParcoursHref",0,function(e){let t;if(e instanceof URLSearchParams)t=e;else{let a=String(e??"");if(!a.startsWith(`${b}?`))return null;t=new URLSearchParams(a.slice(b.length+1))}let a=t.get(y);if(!a||!v.test(a))return null;let i={};for(let[e,a]of t.entries())e!==y&&g.test(e)&&g.test(a)&&(i[e]=a);return{id:a,prefill:i}}],535418)},404713,e=>{"use strict";let t=Object.freeze(["personnel","economique","faute_grave","faute_lourde","demission","depart_retraite","mise_retraite"]),a="rupture_conventionnelle",i=Object.freeze([...t,a]),r=Object.freeze(["convocation","entretien","signature","sortie"]),n=Object.freeze({idcc:Object.freeze([Object.freeze({key:"motif",notIn:Object.freeze([a])})]),typeContrat:Object.freeze([Object.freeze({key:"motif",notIn:Object.freeze([a])})]),categorie:Object.freeze([Object.freeze({key:"motif",notIn:Object.freeze([a])})]),ancienneteAnnees:Object.freeze([Object.freeze({key:"motif",notIn:Object.freeze([a])})]),ancienneteMois:Object.freeze([Object.freeze({key:"motif",notIn:Object.freeze([a])})]),dateEffet:Object.freeze([Object.freeze({key:"motif",notIn:Object.freeze([a])})]),depart:Object.freeze([Object.freeze({key:"motif",equals:a})]),dateReference:Object.freeze([Object.freeze({key:"motif",equals:a})]),signatureLeJourMeme:Object.freeze([Object.freeze({key:"motif",equals:a})]),departement:Object.freeze([Object.freeze({key:"motif",equals:a})]),periodeEssai:Object.freeze([Object.freeze({key:"motif",in:Object.freeze(["personnel","economique","faute_grave","faute_lourde"])})]),accordPartiesDifferent:Object.freeze([Object.freeze({key:"motif",equals:"demission"})]),eligibiliteRetraiteConfirmee:Object.freeze([Object.freeze({key:"motif",in:Object.freeze(["depart_retraite","mise_retraite"])})]),pointDepartPreavis:Object.freeze([Object.freeze({key:"dateDebutPreavis",notIn:Object.freeze([void 0,null,""])})]),exceptionsCalendairesAbsentes:Object.freeze([Object.freeze({key:"dateDebutPreavis",notIn:Object.freeze([void 0,null,""])})]),horaireTravail:Object.freeze([Object.freeze({key:"motif",in:Object.freeze(["personnel","economique"])})]),preavisExecute:Object.freeze([Object.freeze({key:"motif",in:Object.freeze(["personnel","economique"])})])});function l(e,t={}){return!e?.optional||!!Array.isArray(e.requiredWhen)&&0!==e.requiredWhen.length&&e.requiredWhen.every(e=>(function(e,t){if(!e||"object"!=typeof e||Array.isArray(e))throw TypeError("SLASH_REQUIREMENT_CONDITION_INVA
1LID");let a=[Object.hasOwn(e,"equals"),Object.hasOwn(e,"in"),Object.hasOwn(e,"notIn")].filter(Boolean),i=new Set(["key","equals","in","notIn"]);if("string"!=typeof e.key||0===e.key.length||1!==a.length||Object.keys(e).some(e=>!i.has(e))||Object.hasOwn(e,"in")&&(!Array.isArray(e.in)||0===e.in.length)||Object.hasOwn(e,"notIn")&&(!Array.isArray(e.notIn)||0===e.notIn.length))throw TypeError("SLASH_REQUIREMENT_CONDITION_INVALID");let r=t?.[e.key];return Object.hasOwn(e,"in")?e.in.includes(r):Object.hasOwn(e,"notIn")?!e.notIn.includes(r):r===e.equals})(e,t))}e.s(["C09_CALENDAR_MOTIFS",0,i,"C09_CALENDAR_RUPTURE_CONVENTIONNELLE_DEPARTS",0,r,"C09_CALENDAR_SLASH_REQUIRED_WHEN",0,n,"flattenSlashWorkflowValues",0,function(e){let t={};for(let[a,i]of Object.entries(e||{}))i&&"object"==typeof i&&"duration"===i.__type?(t[`${a}Annees`]=i.annees,t[`${a}Mois`]=i.mois):t[a]=i;return t},"getRequiredSlashParams",0,function(e,t={}){return(e?.params||[]).filter(e=>l(e,t))},"isSlashParamRequired",0,l,"parseNormalizedSlashPayload",0,function(e){let t=String(e||""),a="JSON normalise :",i=t.indexOf(a);if(i<0)return null;let r=t.indexOf("\nTool attendu :",i+a.length);if(r<0)return null;let n=t.slice(i+a.length,r).trim();if(!n||n.length>65536)return null;try{let e=JSON.parse(n);return e&&"object"==typeof e&&!Array.isArray(e)?e:null}catch{return null}}])},664326,e=>{"use strict";e.i(535418);let t=Object.freeze({parcours:"calendrier-procedure",libelle:"Établir le calendrier",avecConvention:!0}),a=Object.freeze([Object.freeze({id:"essai",libelle:"Période d’essai",enMinuscule:"la durée de la période d’essai",ruleCode:"employment.trial.cdi.duration",aiguillage:Object.freeze({parcours:"periode-essai",libelle:"Calculer la fin de la période d’essai",prefill:Object.freeze({})})}),Object.freeze({id:"essai-renouvellement",libelle:"Renouvellement de la période d’essai",enMinuscule:"le renouvellement de la période d’essai",ruleCode:"employment.trial.cdi.renewal_duration",aiguillage:Object.freeze({parcours:"periode-essai",libelle:"Calculer la fin de la période d’essai",prefill:Object.freeze({})})}),Object.freeze({id:"preavis-licenciement",libelle:"Préavis de licenciement",enMinuscule:"le préavis de licenciement",ruleCode:null,pourquoi:"la durée dépend de la catégorie, de l’ancienneté et de la situation du salarié ; elle se calcule en quelques questions.",aiguillage:Object.freeze({...t,prefill:Object.freeze({motif:"personnel"})})}),Object.freeze({id:"preavis-demission",libelle:"Préavis de démission",enMinuscule:"le préavis de démission",ruleCode:null,pourquoi:"la durée dépend de la catégorie et de l’ancienneté ; elle se calcule en quelques questions.",aiguillage:Object.freeze({...t,prefill:Object.freeze({motif:"demission"})})}),Object.freeze({id:"preavis-retraite",libelle:"Préavis de départ ou de mise à la retraite",enMinuscule:"le préavis de départ ou de mise à la retraite",ruleCode:null,pourquoi:"la durée dépend de la catégorie et de l’ancienneté ; elle se calcule en quelques questions.",aiguillage:Object.freeze({...t,prefill:Object.freeze({})})}),Object.freeze({id:"indemnite-licenciement",libelle:"Indemnité de licenciement",enMinuscule:"l’indemnité de licenciement",ruleCode:null,pourquoi:"le montant dépend du salaire, de l’ancienneté et du motif ; il se calcule en quelques questions.",aiguillage:Object.freeze({parcours:"indemnite-licenciement",libelle:"Calculer l’indemnité",avecConvention:!0,prefill:Object.freeze({})})})]);a.map(e=>[e.id,e]);let i=Object.freeze(Object.fromEntries(a.map(e=>[e.id,e.libelle])));e.s(["CHOIX_SUJETS_CONVENTION",0,i])},234906,615115,e=>{"use strict";let t=[{label:"Avant 1er avril 2025",startDate:"2024-01-01",endDate:"2025-03-31",smic:1801.8,pmssMonthly:3925,maladiePlafond:3243.24,maladiePlafondDaily:41.47,atMpPlafond1to28:235.69,atMpPlafond29plus:314.25,mpSjrPlafond:392.81,materniteMinDaily:11.02,materniteMaxDaily:101.94,maladieCoefLabel:"1,8 SMIC"},{label:"A partir du 1er avril 2025",startDate:"2025-04-01",endD
1ate:"2025-12-31",smic:1801.8,pmssMonthly:3925,maladiePlafond:2522.52,maladiePlafondDaily:41.47,atMpPlafond1to28:235.69,atMpPlafond29plus:314.25,mpSjrPlafond:392.81,materniteMinDaily:11.02,materniteMaxDaily:101.94,maladieCoefLabel:"1,4 SMIC"},{label:"Du 1er janvier au 30 juin 2026",startDate:"2026-01-01",endDate:"2026-06-30",smic:1823.03,pmssMonthly:4005,maladiePlafond:2552.24,maladiePlafondDaily:41.95,atMpPlafond1to28:240.49,atMpPlafond29plus:320.66,mpSjrPlafond:400.82,materniteMinDaily:11.12,materniteMaxDaily:104.02,maladieCoefLabel:"1,4 SMIC"},{label:"A partir du 1er juillet 2026",startDate:"2026-07-01",endDate:"2026-12-31",smic:1867.02,pmssMonthly:4005,maladiePlafond:2613.83,maladiePlafondDaily:42.97,atMpPlafond1to28:240.49,atMpPlafond29plus:320.66,mpSjrPlafond:400.82,materniteMinDaily:11.12,materniteMaxDaily:104.02,maladieCoefLabel:"1,4 SMIC"}],a=3,i=.5,r={carence:0,taux:{"1-28":.6,"29plus":.8}},n={carence:0,taux:{"1-28":.6,"29plus":.8}},l=.79,s=[{value:"1-2",label:"1er ou 2e enfant",jours:112,detail:"16 semaines (6 avant + 10 apres)"},{value:"3+",label:"3e enfant ou plus",jours:182,detail:"26 semaines (8 avant + 18 apres)"},{value:"jumeaux",label:"Jumeaux",jours:238,detail:"34 semaines (12 avant + 22 apres)"},{value:"triples",label:"Triples ou plus",jours:322,detail:"46 semaines (24 avant + 22 apres)"}],o=[{value:"simple",label:"Naissance simple",jours:25,detail:"25 jours calendaires"},{value:"multiple",label:"Naissances multiples",jours:32,detail:"32 jours calendaires"}],u="Indemnités journalières de Sécurité sociale";function c(e){return new Intl.NumberFormat("fr-FR",{style:"currency",currency:"EUR"}).format(e)}function d(e){let t=String(e??"").trim().match(/^(\d{4})-(\d{2})-(\d{2})$/);if(!t)return null;let[a,i,r]=[t[1],t[2],t[3]].map(Number),n=new Date(Date.UTC(a,i-1,r));return n.getUTCFullYear()!==a||n.getUTCMonth()!==i-1||n.getUTCDate()!==r?null:n}function m(e){let t=e instanceof Date?e:d(e);if(!t||Number.isNaN(t.getTime()))return String(e??"");let a=e=>String(e).padStart(2,"0"),[i,r,n]=e instanceof Date?[t.getFullYear(),t.getMonth()+1,t.getDate()]:[t.getUTCFullYear(),t.getUTCMonth()+1,t.getUTCDate()];return`${a(n)}/${a(r)}/${i}`}function p(e,t){if(!e)return`Mois -${t}`;let a=new Date(e);return a.setMonth(a.getMonth()-t),new Intl.DateTimeFormat("fr-FR",{month:"long",year:"numeric"}).format(a)}e.s(["TITRE_IJSS",0,u,"calculerIJSS",0,function(e={}){let u,m,f,{typeArret:b="maladie",dateDebut:y,dateFin:h,sousType:j="at",dateAccident:v="",typeConge:g="maternite",situationFamiliale:S="1-2",situationPaternite:O="simple"}=e;if(!y||!h)return null;let C=(u=d(y),m=d(h),u&&m&&!(m<u)?Math.round((m.getTime()-u.getTime())/864e5)+1:NaN);if(!Number.isFinite(C))return null;let A=(f=new Date(new Date(y)))<new Date("2025-04-01")?t[0]:f<new Date("2026-01-01")?t[1]:f<new Date("2026-07-01")?t[2]:t[3],x=0,_=[];
1if("maladie"===b){let t=parseFloat(e.salaireM1)||0,r=parseFloat(e.salaireM2)||0,n=parseFloat(e.salaireM3)||0,l=A.maladiePlafond,s=Math.min(t,l),o=Math.min(r,l),u=Math.min(n,l),d=(s+o+u)/91.25,m=d*i;m=Math.min(m,A.maladiePlafondDaily);let f=a,b=Math.max(0,C-f);x=m*b,_=[{label:"Salaires retenus (plafonnés)",value:"",subtext:`Plafond mensuel : ${c(l)} (${A.maladieCoefLabel})`},{label:p(y,1),value:t>l?`${c(l)} (plafonn\xe9)`:c(t)},{label:p(y,2),value:r>l?`${c(l)} (plafonn\xe9)`:c(r)},{label:p(y,3),value:n>l?`${c(l)} (plafonn\xe9)`:c(n)},{label:"Somme des salaires retenus",value:s+o+u},{label:"Salaire Journalier de Base (SJB)",value:d},{label:"Taux d'indemnisation",value:"50 %"},{label:"Indemnité Journalière (IJ)",value:m,highlight:!0},{label:"Durée de l'arrêt",value:`${C} jours`},{label:"Délai de carence",value:`${f} jours`},{label:"Jours indemnisés",value:`${b} jours`}]}else if("at-mp"===b){let t=parseFloat(e.salaireMoisPrecedent)||0,a="at"===j?r:n,i=t/30.42;"mp"===j&&(i=Math.min(i,A.mpSjrPlafond));let l=Math.min(i*a.taux["1-28"],A.atMpPlafond1to28),s=Math.min(i*a.taux["29plus"],A.atMpPlafond29plus),o=C,u=!1;"at"===j&&v&&y===v&&(o=Math.max(0,C-1),u=!0),x=o<=28?l*o:28*l+s*(o-28),_=[{label:"Salaire du mois précédent",value:t},{label:"Salaire Journalier de Référence (SJR)",value:i},{label:"IJ Jours 1 à 28",value:l,subtext:`Taux : ${100*a.taux["1-28"]} %`},{label:"IJ à partir du 29e jour",value:s,subtext:`Taux : ${100*a.taux["29plus"]} %`},{label:"Durée totale de l'arrêt",value:`${C} jours`}],u&&(_.push({label:"Jour de l'accident",value:"Payé par l'employeur",subtext:"Exclu du calcul IJSS"}),_.push({label:"Jours indemnisés par la Sécu",value:`${o} jours`}))}else if("maternite-paternite"===b){let t=parseFloat(e.salaireM1)||0,a=parseFloat(e.salaireM2)||0,i=parseFloat(e.salaireM3)||0,r=(t+a+i)/91.25,n=r*l;x=(n=Math.min(n=Math.max(n,A.materniteMinDaily),A.materniteMaxDaily))*C;let u="paternite"===g?o.find(e=>e.value===O):s.find(e=>e.value===S);_=[{label:"Somme des 3 derniers salaires",value:t+a+i},{label:"Salaire Journalier de Base (SJB)",value:r},{label:"Indemnité Journalière nette",value:n,subtext:"Après déduction CSG/CRDS (21 %)",highlight:!0},{label:"Durée du congé saisie",value:`${C} jours`},{label:"Durée légale indicative",value:u?u.detail:"",subtext:u?u.label:""}]}let z=null;return"maladie"===b?z={label:"Imposable à 100 %",montantImposable:x,note:"Les IJSS maladie sont imposables en totalité (sauf ALD exonérée à 100 %)."}:"at-mp"===b?z={label:"Exonéré à 50 %",montantImposable:.5*x,note:"Les IJSS AT-MP sont exonérées à 50 %. Seule la moitié est soumise à l'impôt sur le revenu."}:"maternite-paternite"===b&&(z={label:"Imposable à 100 %",montantImposable:x,note:"maternite"===g?"Les IJSS maternité sont imposables en totalité.":"Les IJSS paternité sont imposables en totalité."}),{total:x,details:_,fiscal:z}},"dateIso",0,d,"enTeteIJSS",0,function(e={},t=new Date){let a=[{label:"Type d'arrêt",value:function(e={}){return"at-mp"===e.typeArret?"mp"===e.sousType?"Maladie professionnelle":"Accident du travail":"maternite-paternite"===e.typeArret?"paternite"===e.typeConge?"Paternité":"Maternité":"Maladie ordinaire"}(e)},{label:"Période d'arrêt",value:`du ${m(e.dateDebut)} au ${m(e.dateFin)}`}];if("at-mp"===e.typeArret&&"at"===(e.sousType||"at")&&a.push({label:"Date de l'accident",value:e.dateAccident?m(e.dateAccident):"Non renseignée"}),"maternite-paternite"===e.typeArret){let t="paternite"===e.typeConge?o.find(t=>t.value===(e.situationPaternite||"simple")):s.find(t=>t.value===(e.situationFamiliale||"1-2"));t&&a.push({label:"Situation familiale",value:`${t.label} (${t.detail})`})}return a.push({label:"Date du calcul",value:m(t)}),{titre:u,lignes:a}},"formatEuro",0,c,"getMonthLabel",0,p,"titreIJSS",0,function(e={}){return"maladie"===e.typeArret?"IJSS - Maladie":"maternite-paternite"===e.typeArret?"paternite"===e.typeConge?"IJSS - Paternité":"IJSS - Maternité":"IJSS - AT/MP"}],615115);let f=Object.freeze([Object.freeze({key:"typeArret",equals:"at-mp"})]),b=Object.freeze([Object.freeze({key:"typeArret",notIn:Object.freeze(["at-mp"])})]),y=Object.freeze([Object.freeze({key:"typeArret",equals:"maternite-paternite"})]),h=e=>Object.fromEntries(e.map(e=>[e.value,e.label])),j=e=>Object.fromEntries(e.map(e=>[e.value,e.detail])),v=Object.freeze({1:"1er",2:"2e",3:"3e"});function g(e){return Object.freeze({key:`salaireM${e}`,type:"number",libelle:t=>{let a;return`Salaire brut ${a=p(t?.dateDebut,e),/^[aeiouyéèê]/i.test(a)?`d'${a}`:`de ${a}`}`},question:t=>t?.dateDebut?`Quel est le salaire brut de ${p(t.dateDebut,e)} (${v[e]} mois pr\xe9c\xe9dant l'arr\xeat), en euros ?`:`Quel est le salaire brut du ${v[e]} mois pr\xe9c\xe9dant l'arr\xeat, en euros ?`,unite:"€",min:0,requiredWhen:b,section:"Salaires bruts",intro:"Indiquez les salaires bruts des 3 mois précédant l'arrêt de travail."})}let S=Object.freeze({id:"ijss",titre:u,verifier:function(e={}){let t=d(e.dateDebut),a=d(e.dateFin);return t&&a&&a<t?{key:"dateFin",erreur:"La date de fin de l'arrêt est antérieure à sa date de début : vérifiez les deux dates."}:null},champs:Object.freeze([Object.freeze({key:"typeArret",type:"string",libelle:"Type d'arrêt",question:"Quel type d'arrêt de travail ?",enum:Object.freeze(["maladie","at-mp","maternite-paternite"]),choix:Object.freeze({maladie:"Maladie ordinaire","at-mp":"Accident Travail / MP","maternite-paternite":"Maternité / Paternité"}),alias:Object.freeze({maternite:"maternite-paternite",paternite:"maternite-paternite","conge maternite":"maternite-paternite","conge paternite":"maternite-paternite",at:"at-mp",mp:"at-mp","at mp":"at-mp","at/mp":"at-mp",accident:"at-mp","accident travail":"at-mp","accident du travail":"at-mp","accident de travail":"at-mp","maladie professionnelle":"at-mp","maladie pro":"at-mp","maladie ordinaire":"maladie","arret maladie":"maladie"}),defaut:"maladie",presentation:"onglets"}
1),Object.freeze({key:"dateDebut",type:"date",libelle:"Date de début",question:"Quelle est la date de début de l'arrêt ?",section:"Période d'arrêt"}),Object.freeze({key:"dateFin",type:"date",libelle:"Date de fin",question:"Quelle est la date de fin de l'arrêt ?",section:"Période d'arrêt"}),Object.freeze({key:"sousType",type:"string",libelle:"Type d'arrêt",question:"Accident du travail ou maladie professionnelle ?",enum:Object.freeze(["at","mp"]),choix:Object.freeze({at:"Accident du Travail",mp:"Maladie Professionnelle"}),defaut:"at",requiredWhen:f,section:"Type d'arrêt"}),Object.freeze({key:"dateAccident",type:"date",libelle:"Date de l'accident",question:"Quelle est la date de l'accident ? (facultatif : le jour de l'accident est intégralement payé par l'employeur)",aide:"Le jour de l'accident est intégralement payé par l'employeur.",facultatif:!0,requiredWhen:Object.freeze([...f,Object.freeze({key:"sousType",equals:"at"})]),section:"Type d'arrêt"}),Object.freeze({key:"typeConge",type:"string",libelle:"Type de congé",question:"Maternité ou paternité ?",enum:Object.freeze(["maternite","paternite"]),choix:Object.freeze({maternite:"Maternité",paternite:"Paternité"}),defaut:"maternite",requiredWhen:y,section:"Type de congé"}),Object.freeze({key:"situationFamiliale",type:"string",libelle:"Situation familiale",question:"Quelle est la situation familiale ?",enum:Object.freeze(s.map(e=>e.value)),choix:Object.freeze(h(s)),detailChoix:Object.freeze(j(s)),defaut:"1-2",requiredWhen:Object.freeze([...y,Object.freeze({key:"typeConge",equals:"maternite"})]),section:"Type de congé"}),Object.freeze({key:"situationPaternite",type:"string",libelle:"Situation familiale",question:"Naissance simple ou naissances multiples ?",enum:Object.freeze(o.map(e=>e.value)),choix:Object.freeze(h(o)),detailChoix:Object.freeze(j(o)),defaut:"simple",requiredWhen:Object.freeze([...y,Object.freeze({key:"typeConge",equals:"paternite"})]),section:"Type de congé"}),g(1),g(2),g(3),Object.freeze({key:"salaireMoisPrecedent",type:"number",libelle:"Salaire du mois précédent l'arrêt",question:"Quel est le salaire brut du mois précédant l'arrêt, en euros ?",aide:"Salaire brut soumis à cotisations",unite:"€",min:0,requiredWhen:f,section:"Salaires bruts"})])});e.s(["SPEC_IJSS",0,S],234906)},13728,228964,87054,379575,563399,899635,708794,847767,762233,443991,965978,244935,899112,560467,253204,630949,462439,707374,925095,607789,83455,63619,944361,572042,e=>{"use strict";let t={voiture:[{cv:3,tranches:[[5e3,.529,0],[2e4,.316,1065],[1/0,.37,0]]},{cv:4,tranches:[[5e3,.606,0],[2e4,.34,1330],[1/0,.407,0]]},{cv:5,tranches:[[5e3,.636,0],[2e4,.357,1395],[1/0,.427,0]]},{cv:6,tranches:[[5e3,.665,0],[2e4,.374,1457],[1/0,.447,0]]},{cv:1/0,tranches:[[5e3,.697,0],[2e4,.394,1515],[1/0,.47,0]]}],moto:[{cv:2,tranches:[[3e3,.395,0],[6e3,.099,891],[1/0,.248,0]]},{cv:5,tranches:[[3e3,.468,0],[6e3,.082,1158],[1/0,.275,0]]},{cv:1/0,tranches:[[3e3,.606,0],[6e3,.079,1583],[1/0,.343,0]]}],cyclomoteur:[{cv:1/0,tranches:[[3e3,.315,0],[6e3,.079,711],[1/0,.198,0]]}]};function a(e){return new Intl.NumberFormat("fr-FR",{style:"currency",currency:"EUR"}).format(Number(e)||0)}function i(e){let t=String(e??"").trim().match(/^(\d{4})-(\d{2})-(\d{2})$/);if(!t)return null;let[a,i,r]=[t[1],t[2],t[3]].map(Number),n=new Date(Date.UTC(a,i-1,r));return n.getUTCFullYear()!==a||n.getUTCMonth()!==i-1||n.getUTCDate()!==r?null:n}function r(e){let t=e instanceof Date?e:i(e);if(!t||Number.isNaN(t.getTime()))return String(e??"");let a=e=>String(e).padStart(2,"0"),[r,n,l]=e instanceof Date?[t.getFullYear(),t.getMonth()+1,t.getDate()]:[t.getUTCFullYear(),t.getUTCMonth()+1,t.getUTCDate()];return`${a(l)}/${a(n)}/${r}`}function n(e){return!0===e||"true"===String(e).toLowerCase()||"oui"===String(e).toLowerCase()?"Oui":"Non"}function l(e,t=2){return new Intl.NumberFormat("fr-FR",{minimumFractionDigits:0,maximumFractionDigits:t}).format(Number(e)||0)}function s(e){return String(e??"").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}let o=e=>"number"==typeof e?a(e):String(e??"");function u(e,t,a=""){let i=a?`<br><small>${s(a)}</small>`:"";return`<tr><td>${s(e)}${i}</td><td align="right">${s(t)}</td></tr>`}e.s(["dateDuJourIso",0,function(e=new Date){let t=e=>String(e).padStart(2,"0");return`${e.getFullYear()}-${t(e.getMonth()+1)}-${t(e.getDate())}`},"dateFr",0,r,"dateIso",0,i,"formatEuro",0,a,"formatNombre",0,l,"htmlDocumentResultat",0,function(e,t){if(!e||!t)return"";let a=[`<h1>${s(e.titre)}</h1>`,`<table>${(e.lignes||[]).map(e=>u(e.label,e.value)).join("")}</table>`];for(let e of(t.principal&&a.push(`<h2>${s(t.principal.label)}</h2>`,`<p><strong>${s(t.principal.valeur)}</strong>${t.principal.sous?` — ${s(t.principal.sous)}`:""}</p>`),t.sections||[]))e.titre&&a.push(`<h2>${s(e.titre)}</h2>`),e.lignes?.length&&a.push(`<table>${e.lignes.map(e=>u(e.label,o(e.value),e.subtext)).join("")}</table>`),e.note&&a.push(`<p>${s(e.note)}</p>`);return t.notes?.length&&a.push("<h2>Important</h2>",...t.notes.map(e=>`<p>${s(e)}</p>`)),a.join("\n")},"ouiNon",0,n],228964);let c="Indemnité kilométrique",d=Object.freeze({voiture:"Voiture",moto:"Moto",cyclomoteur:"Deux roues < 50 cm3"}),m=Object.freeze(["Ces calculs sont basés sur le barème kilométrique fiscal en vigueur (arrêté du 27 mars 2023, NOR ECOE2306864A), reconduit pour la déclaration 2026 des revenus 2025. 
1Ces indemnités sont destinées à couvrir les frais de carburant et d'entretien liés à l'utilisation de votre véhicule personnel pour des déplacements professionnels."]);e.s(["TITRE_IK",0,c,"calculerIK",0,function(e={}){let a,i=String(e.vehicleType||"");if(!d[i])return null;let r=Number.parseFloat(e.kilometers);if(!Number.isFinite(r))return null;let n=!0===(a=e.isElectric)||"true"===String(a).toLowerCase()||"oui"===String(a).toLowerCase(),l=Number.parseInt(e.fiscalPower,10),s=Number.parseFloat(e.paidAmount),o=function({vehicleType:e,isElectric:a,fiscalPower:i,kilometers:r}){let n,l=parseFloat(r)||0,s=parseFloat(i)||0,o=t[e];if(!o)return{amount:0,formula:"",baseAmount:0,electricMultiplier:1};let u=o.find(e=>s<=e.cv)||o[o.length-1],[,c,d]=u.tranches.find(([e])=>l<=e)||u.tranches[u.tranches.length-1],m=l*c+d;n=d>0?`(${l} km \xd7 ${c.toFixed(3)} €) + ${d} €`:`${l} km \xd7 ${c.toFixed(3)} €`;let p=a?1.2:1;return{amount:m*p,formula:n,baseAmount:m,electricMultiplier:p}}({vehicleType:i,isElectric:n,fiscalPower:l,kilometers:r}),u=o.amount,c=u-(Number.isFinite(s)?s:0);return{vehicleType:i,isElectric:n,fiscalPower:Number.isFinite(l)?l:null,kilometers:r,paidAmount:Number.isFinite(s)?s:0,result:o,indemnity:u,remainingIndemnity:c}},"enTeteIK",0,function(e={},t=new Date){let i=[{label:"Type de véhicule",value:d[e.vehicleType]||String(e.vehicleType||"")}];return("voiture"===e.vehicleType||"moto"===e.vehicleType)&&i.push({label:"Puissance fiscale",value:`${l(e.fiscalPower,0)} CV`}),i.push({label:"Véhicule électrique",value:n(e.isElectric)},{label:"Kilomètres parcourus depuis le début de l'année",value:`${l(e.kilometers)} km`},{label:"Montant déjà versé depuis le début de l'année",value:a(e.paidAmount)},{label:"Date du calcul",value:r(t)}),{titre:c,lignes:i}},"presentationIK",0,function(e){if(!e)return null;let{result:t}=e,i=[{label:"cyclomoteur"===e.vehicleType?"Barème pour cyclomoteur ≤ 50 cm³":`Bar\xe8me pour ${d[e.vehicleType].toLowerCase()} de ${l(e.fiscalPower,0)} CV`,value:""},{label:"Formule appliquée",value:t.formula},{label:"Montant de base",value:t.baseAmount}];return t.electricMultiplier>1&&i.push({label:"Majoration véhicule électrique",value:"+20 %"},{label:"Montant final",value:`${a(t.baseAmount)} \xd7 1,2 = ${a(t.baseAmount*t.electricMultiplier)}`}),{principal:{label:"Montant total de l'indemnité",valeur:a(e.indemnity),sous:"pour les kilomètres parcourus depuis le début de l'année"},sections:[{titre:"Détail du calcul",lignes:i},{titre:"Résultats",lignes:[{label:"Montant total de l'indemnité",value:e.indemnity},{label:"Montant déjà versé",value:e.paidAmount},{label:"Montant restant à verser",value:Math.abs(e.remainingIndemnity),highlight:!0}]}],notes:[...m]}}],87054);let p=Object.freeze([Object.freeze({key:"vehicleType",in:Object.freeze(["voiture","moto"])})]),f=Object.freeze({id:"ik",titre:c,champs:Object.freeze([Object.freeze({key:"vehicleType",type:"string",libelle:"Type de véhicule",question:"Quel est le type de véhicule ?",enum:Object.freeze(["voiture","moto","cyclomoteur"]),choix:Object.freeze({voiture:"Voiture",moto:"Moto",cyclomoteur:"Deux roues < 50 cm3"}),alias:Object.freeze({auto:"voiture",automobile:"voiture",scooter:"cyclomoteur",mobylette:"cyclomoteur","deux roues":"cyclomoteur","deux-roues":"cyclomoteur"}),section:"Véhicule"}),Object.freeze({key:"fiscalPower",type:"number",libelle:"Puissance fiscale (en CV)",question:"Quelle est la puissance fiscale du véhicule, en CV ?",min:1,requiredWhen:p,section:"Véhicule"}),Object.freeze({key:"isElectric",type:"boolean",libelle:"Véhicule électrique",question:"Le véhicule est-il électrique ? (majoration de 20 %)",presentation:"radio",section:"Véhicule"}),Object.freeze({key:"kilometers",type:"number",libelle:"Nombre de kilomètres parcourus depuis le début de l'année",question:"Combien de kilomètres ont été parcourus à titre professionnel depuis le début de l'année ?",min:1,unite:"km",section:"Kilomètres et montants"}),Object.freeze({key:"paidAmount",type:"number",libelle:"Montant déjà versé depuis le début de l'année",question:"Quel montant d'indemnités kilométriques a déjà été versé depuis le début de l'année, en euros ? (0 si aucun)",min:0,unite:"€",section:"Kilomètres et montants"})])});e.s(["SPEC_IK",0,f],13728);let b=["replacement","seasonal","usage"],y="Délai de carence entre deux CDD",h=Object.freeze({standard:"CDD standard",replacement:"Remplacement d'un salarié absent",seasonal:"Emploi saisonnier",usage:"Contrat d'usage"});e.s(["TITRE_DELAI_CDD",0,y,"calculerDelaiCDD",0,function(e={}){let t=String(e.typeContrat||"");if(!h[t])return null;let a=Number.parseInt(e.dureeContratJours,10);if(!Number.isFinite(a)||a<1)return null;let{delai:i,unite:r,raison:n,message:l}=function({dureeContratJours:e,typeContrat:t}){let a=parseInt(e)||0;if(b.includes(t))return{delai:0,unite:"jours_ouverture",raison:"type_exonere",message:"Aucun délai de carence n'est nécessaire pour ce type de contrat (art. L.1244-4-1 du Code du travail)."};let i="Ce délai se décompte en jours d'ouverture de l'entreprise (jours où elle est effectivement ouverte), et non en jours calendaires.";if(a<14){let e=Math.ceil(a/2);return{delai:e,unite:"jours_ouverture",raison:"court",message:`Le d\xe9lai de carence est de ${e} jour${e>1?"s":""} d'ouverture (moiti\xe9 de la dur\xe9e du contrat pour les CDD de moins de 14 jours — art. L.1244-3-1 du Code du travail). ${i}`}}let r=Math.ceil(a/3);return{delai:r,unite:"jours_ouverture",raison:"long",message:`Le d\xe9lai de carence est de ${r} jours d'ouverture (1/3 de la dur\xe9e du contrat — art. L.1244-3-1 du Code du travail). ${i}`}}
1({dureeContratJours:a,typeContrat:t});return{dureeContratJours:a,typeContrat:t,delai:i,unite:r,raison:n,message:l}},"enTeteDelaiCDD",0,function(e={},t=new Date){return{titre:y,lignes:[{label:"Durée du CDD initial",value:`${l(e.dureeContratJours,0)} jours`},{label:"Type de contrat",value:h[e.typeContrat]||String(e.typeContrat||"")},{label:"Date du calcul",value:r(t)}]}},"presentationDelaiCDD",0,function(e){return e?{principal:{label:"Délai de carence",valeur:e.delai>0?`${e.delai} jour${e.delai>1?"s":""} d'ouverture`:"Aucun délai",sous:e.delai>0?"avant de conclure un nouveau CDD sur le même poste":"ce type de contrat en est dispensé"},sections:[{titre:"Explication",lignes:[],note:e.message}],notes:["Art. L.1244-3-1 et L.1244-4-1 du Code du travail."]}:null}],379575);let j=Object.freeze({id:"delai-cdd",titre:y,champs:Object.freeze([Object.freeze({key:"dureeContratJours",type:"number",libelle:"Durée du CDD initial (en jours)",question:"Quelle est la durée du CDD initial, en jours calendaires (renouvellement inclus) ?",min:1,unite:"jours",section:"Le CDD initial"}),Object.freeze({key:"typeContrat",type:"string",libelle:"Type de contrat",question:"Quel est le type de contrat ?",enum:Object.freeze(["standard","replacement","seasonal","usage"]),choix:Object.freeze({standard:"CDD standard",replacement:"Remplacement d'un salarié absent",seasonal:"Emploi saisonnier",usage:"Contrat d'usage"}),alias:Object.freeze({cdd:"standard",classique:"standard","accroissement d activite":"standard",remplacement:"replacement","remplacement d un salarie absent":"replacement",saisonnier:"seasonal",saison:"seasonal","contrat saisonnier":"seasonal","cdd d usage":"usage","d usage":"usage",extra:"usage"}),presentation:"boutons",section:"Le CDD initial"})])});e.s(["SPEC_DELAI_CDD",0,j],563399);let v=[{limit:2002.49,piece1:79.7,pieceN:42.6},{limit:2402.99,piece1:93,pieceN:59.7},{limit:2803.49,piece1:106.2,pieceN:79.7},{limit:3604.49,piece1:119.4,pieceN:99.5},{limit:4405.49,piece1:146.4,pieceN:126.1},{limit:5206.49,piece1:172.6,pieceN:152.4},{limit:6007.49,piece1:199.4,pieceN:185.7},{limit:1/0,piece1:225.6,pieceN:212.3}],g={eau:20,gaz:30,electricite:50,chauffage:100,garage:70},S="Avantage en nature logement",O=Object.freeze([Object.freeze({key:"accessoireEau",valeur:"eau",libelle:"Eau",question:"L'eau est-elle incluse ? (avantage accessoire)"}),Object.freeze({key:"accessoireGaz",valeur:"gaz",libelle:"Gaz",question:"Le gaz est-il inclus ? (avantage accessoire)"}),Object.freeze({key:"accessoireElectricite",valeur:"electricite",libelle:"Électricité",question:"L'électricité est-elle incluse ? (avantage accessoire)"}),Object.freeze({key:"accessoireChauffage",valeur:"chauffage",libelle:"Chauffage",question:"Le chauffage est-il inclus ? (avantage accessoire)"}),Object.freeze({key:"accessoireGarage",valeur:"garage",libelle:"Garage",question:"Un garage est-il inclus ? (avantage accessoire)"})]),C=e=>!0===e||["true","oui"].includes(String(e).toLowerCase()),A=Object.freeze({forfait:"Forfaitaire",reel:"Valeur locative"}),x=Object.freeze(["Les montants sont calculés selon le barème URSSAF 2026.","Ce calcul est fourni à titre indicatif.","Les avantages accessoires sont inclus dans le forfait."]);e.s(["ACCESSOIRES_LOGEMENT",0,O,"TITRE_AVANTAGE_LOGEMENT",0,S,"calculerAvantageLogementSimulateur",0,function(e={}){let t=String(e.method||"");if("forfait"!==t&&"reel"!==t)return null;let a=Number.parseFloat(e.salary),i=Number.parseInt(e.rooms,10);if(!Number.isFinite(a)||!Number.isFinite(i))return null;let r="reel"===t?function(e={}){return O.filter(t=>C(e[t.key])).map(e=>e.valeur)}(e):[],n=C(e.serviceNecessity),l=C(e.mixedUse),s=l?Number.parseFloat(e.professionalSurface):NaN,o="reel"===t?Number.parseFloat(e.cadastralValue):NaN,{benefit:u}=function({method:e,salary:t,rooms:a,accessories:i,cadastralValue:r=0,serviceNecessity:n=!1,mixedUse:l=!1,professionalSurface:s=0,bareme:o=v}){let u=0,c=null;if("forfait"===e)(c=o.find(e=>t<=e.limit))&&(u=1===a?c.piece1:c.pieceN*a);else for(let e of(u=(r||0)/12,i instanceof Set?Array.from(i):Array.isArray(i)?i:[]))u+=g[e]||0;return l&&s>0&&(u*=1-s/100),n&&(u*=.7),{benefit:u,trancheUsed:c}}({method:t,salary:a,rooms:i,accessories:r,cadastralValue:o,serviceNecessity:n,mixedUse:l,professionalSurface:s});return{method:t,salary:a,rooms:i,accessories:r,cadastralValue:Number.isFinite(o)?o:null,serviceNecessity:n,mixedUse:l,professionalSurface:Number.isFinite(s)?s:null,benefit:u}},"enTeteAvantageLogement",0,function(e={},t=new Date){let i=[{label:"Méthode d'évaluation",value:A[e.method]||String(e.method||"")},{label:"Rémunération brute mensuelle",value:a(e.salary)},{label:"Nombre de pièces principales",value:l(e.rooms,0)}];if("reel"===e.method){i.push({label:"Valeur locative cadastrale annuelle",value:a(e.cadastralValue)});let t=O.filter(t=>C(e[t.key])).map(e=>e.libelle.toLowerCase());i.push({label:"Avantages accessoires inclus",value:t.length?t.join(", "):"Aucun"})}return i.push({label:"Nécessité absolue de service",value:n(e.serviceNecessity)}),C(e.mixedUse)&&i.push({label:"Surface à usage professionnel",value:`${l(e.professionalSurface)} %`}),i.push({label:"Date du calcul",value:r(t)}
1),{titre:S,lignes:i}},"presentationAvantageLogement",0,function(e){if(!e)return null;let t=[{label:"Méthode d'évaluation",value:A[e.method]},{label:"Rémunération mensuelle",value:e.salary},{label:"Nombre de pièces",value:l(e.rooms,0)}];return"reel"===e.method&&t.push({label:"Valeur locative annuelle",value:e.cadastralValue??0}),{principal:{label:"Montant de l'avantage en nature",valeur:`${a(e.benefit)} / mois`,sous:`${a(12*e.benefit)} / an`},sections:[{titre:"Récapitulatif des informations",lignes:t},{titre:"Montant de l'avantage en nature",lignes:[{label:"Par mois",value:e.benefit,highlight:!0},{label:"Par an",value:12*e.benefit}]}],notes:[...x]}}],899635);let _=Object.freeze([Object.freeze({key:"method",equals:"reel"})]),z=Object.freeze([Object.freeze({key:"mixedUse",equals:!0})]),E=Object.freeze({id:"avantage-logement",titre:S,champs:Object.freeze([Object.freeze({key:"method",type:"string",libelle:"Méthode d'évaluation",question:"Quelle méthode d'évaluation ? (forfaitaire : d'après la rémunération et le nombre de pièces ; valeur locative : d'après la valeur locative cadastrale)",enum:Object.freeze(["forfait","reel"]),choix:Object.freeze({forfait:"Évaluation Forfaitaire",reel:"Valeur Locative"}),detailChoix:Object.freeze({forfait:"Calcul basé sur la rémunération et le nombre de pièces",reel:"Calcul basé sur la valeur locative cadastrale"}),alias:Object.freeze({forfaitaire:"forfait","evaluation forfaitaire":"forfait",reelle:"reel","valeur locative":"reel","valeur locative cadastrale":"reel",cadastrale:"reel"}),defaut:"forfait",presentation:"cartes",section:"Méthode d'évaluation"}),Object.freeze({key:"salary",type:"number",libelle:"Rémunération brute mensuelle",question:"Quelle est la rémunération brute mensuelle du salarié, en euros ?",min:0,unite:"€",section:"Caractéristiques du logement"}),Object.freeze({key:"rooms",type:"number",libelle:"Nombre de pièces principales",question:"Combien de pièces principales compte le logement ? (séjour et chambres ; la cuisine et la salle d’eau ne comptent pas)",aide:"Pièces destinées au séjour et au sommeil uniquement. Les pièces de service (cuisine, salle d'eau) ne sont pas comptées.",min:1,section:"Caractéristiques du logement"}),Object.freeze({key:"cadastralValue",type:"number",libelle:"Valeur locative cadastrale annuelle",question:"Quelle est la valeur locative cadastrale annuelle du logement, en euros ?",min:0,unite:"€",requiredWhen:_,section:"Valeur locative"}),...O.map(({key:e,libelle:t,question:a})=>Object.freeze({key:e,type:"boolean",libelle:t,question:a,presentation:"case",defaut:!1,requiredWhen:_,section:"Avantages accessoires inclus"})),Object.freeze({key:"serviceNecessity",type:"boolean",libelle:"Logement par nécessité absolue de service",question:"Le logement est-il fourni par nécessité absolue de service ? (personnel de sécurité, gardiennage… mentionné dans le contrat de travail : abattement de 30 %)",aide:"Personnel de sécurité, gardiennage, etc. mentionné dans le contrat de travail. Implique un abattement de 30%.",presentation:"case",defaut:!1,section:"Conditions particulières"}),Object.freeze({key:"mixedUse",type:"boolean",libelle:"Usage partiellement professionnel",question:"Le logement a-t-il un usage partiellement professionnel ?",presentation:"case",defaut:!1,section:"Conditions particulières"}),Object.freeze({key:"professionalSurface",type:"number",libelle:"Surface à usage professionnel",question:"Quelle part de la surface est à usage professionnel, en % (0 à 100) ?",min:0,max:100,unite:"%",requiredWhen:z,section:"Conditions particulières"})])});e.s(["SPEC_AVANTAGE_LOGEMENT",0,E],708794);let D={achat:{moins_5_ans:.15,plus_5_ans:.1},location:.67},q={achat:{moins_5_ans:.09,plus_5_ans:.06},location:.3},P=new Date("2025-02-01");function T(e,t,a){let i=e=>Math.round(100*e)/100,r=.42*e,n=.08*e,l=.08*e,s=.005*e;return{advantageAnnual:i(e),advantageMonthly:i(e/12),cotisationsPatronales:i(r),cotisationsSalariales:i(n),csg:i(l),crds:i(s),totalCharges:i(r+n+l+s),details:a}}let N="Avantage en nature véhicule";function M(e={}){return{vehicleType:String(e.vehicleType||""),deploymentDate:String(e.deploymentDate||""),purchasePrice:Number.parseFloat(e.purchasePrice)||0,vehicleAge:String(e.vehicleAge||"5ans_moins"),fuelType:String(e.fuelType||""),totalKm:Number.parseInt(e.totalKm,10)||0,privateKm:Number.parseInt(e.privateKm,10)||0,fuelCoverage:String(e.fuelCoverage||"non"),fuelCost:e.fuelCost?Number.parseFloat(e.fuelCost):0,monthlySalary:Number.parseFloat(e.monthlySalary)||0,employeeContribution:Number.parseFloat(e.employeeContribution)||0,evaluationMethod:String(e.evaluationMethod||""),insuranceCost:e.insuranceCost?Number.parseFloat(e.insuranceCost):0,maintenanceCost:e.maintenanceCost?Number.parseFloat(e.maintenanceCost):0,depreciationCost:e.depreciationCost?Number.parseFloat(e.depreciationCost):0}}let I=Object.freeze({vehicleType:Object.freeze({achat:"Acheté",location:"Loué (LOA/LLD)"}),vehicleAge:Object.freeze({"5ans_moins":"≤ 5 ans","5ans_plus":"> 5 ans"}),evaluationMethod:Object.freeze({forfaitaire:"Forfaitaire",reelle:"Dépenses réelles"})});function k(e={},t=null){let i,n=M(e),s=[{label:"Type de véhicule",value:I.vehicleType[n.vehicleType]||n.vehicleType},{label:"Coût",value:a(n.purchasePrice)}];return"achat"===n.vehicleType&&s.push({label:"Ancienneté",value:I.vehicleAge[n.vehicleAge]||n.vehicleAge}),s.push({label:"Date de mise à disposition",value:r(n.deploymentDate)},{label:"Énergie",value:(i=n.fuelType)?i.charAt(0).toUpperCase()+i.slice(1):""},{label:"Km privé / total",value:`${l(n.privateKm,0)} / ${l(n.totalKm,0)} km`},{label:"Carburant pris en charge",value:"oui"===n.fuelCoverage?`Oui (${a(n.fuelCost)}/an)`:"Non"},{label:"Salaire brut mensuel",value:a(n.monthlySalary)}),n.employeeContribution>0&&s.push({label:"Participation salarié",value:`${a(n.employeeContribution)}/mois`}),s.push({label:"Méthode",value:I.evaluationMethod[n.evaluationMethod]||n.evaluationMethod}),t?.details?.bareme&&s.push({label:"Barème",value:t.details.bareme}),s}let R=Object.freeze(["Calcul indicatif basé sur les barèmes URSSAF en vigueur. Ne constitue pas un avis juridique. Les taux de cotisations sont des estimations moyennes."]);e.s(["TITRE_AVANTAGE_VOITURE",0,N,"calculerAvantageVoiture",0,function(e={}){let t,a,i,r,n,l,s=M(e);if(!s.vehicleType||!s.evaluationMethod||!s.deploymentDate)return null;let o="forfaitaire"===s.evaluationMethod?(a=(t=new Date(s.deploymentDate)>=P)?D:q,i=0,r=0,n=0,l=0,"achat"===s.vehicleType?(r="5ans_moins"===s.vehicleAge?a.achat.moins_5_ans:a.achat.plus_5_ans,i=n=s.purchasePrice*r,"oui"===s.fuelCoverage&&s.fuelCost&&(t?i+=s.fuelCost:i+=2*s.fuelCost/3)):(r=a.location,i=n=s.purchasePrice*r,"oui"===s.fuelCoverage&&s.fuelCost&&(t||(i+=2*s.fuelCost/3))),"electrique"===s.fuelType&&(l=Math.min(.7*i,4582),i-=l),i-=12*s.employeeContribution,T(i=Math.max(0,i),s.monthlySalary,{bareme:t?"A partir du 01/02/2025":"Avant le 01/02/2025",taux:r,avantage_brut:n,reduction_electrique:l>0?l:void 0,carburant_ajoute:"oui"===s.fuelCoverage?s.fuelCost:void 0})):function(e){let t=e.depreciationCost||0,a=e.insuranceCost||0,i=e.maintenanceCost||0,r="oui"===e.fuelCoverage&&e.fuelCost?e.fuelCost:0,n=t+a+i+r,l=e.totalKm>0?e.privateKm/e.totalKm:0,s=n*l;if("electrique"===e.fuelType){let e=Math.min(.7*s,4582);s-=e}return s-=12*e.employeeContribution,T(s=Math.max(0,s),e.monthlySalary,{bareme:"Methode reelle",taux:l,avantage_brut:n,ratio_prive:l,detail_depenses:{depreciationCost:t,insuranceCost:a,maintenanceCost:i,fuelCostPrivate:r}}
1)}(s);return o&&Number.isFinite(o.advantageAnnual)?{input:s,...o}:null},"enTeteAvantageVoiture",0,function(e={},t=new Date,a=null){return{titre:N,lignes:[...k(e,a),{label:"Date du calcul",value:r(t)}]}},"presentationAvantageVoiture",0,function(e,t={}){if(!e)return null;let i=e.details||{},r=[{label:"Base de calcul",value:i.avantage_brut??0},{label:`Taux appliqu\xe9 : ${(100*(i.taux||0)).toFixed(0)} %`,value:i.bareme||""}];return i.carburant_ajoute&&r.push({label:"Carburant ajouté",value:i.carburant_ajoute}),i.reduction_electrique&&r.push({label:"Réduction électrique (-70 %)",value:`-${a(i.reduction_electrique)}`}),void 0!==i.ratio_prive&&r.push({label:"Ratio d'utilisation privée",value:`${(100*i.ratio_prive).toFixed(1)} %`}),{principal:{label:"Avantage en nature annuel",valeur:a(e.advantageAnnual),sous:`${a(e.advantageMonthly)} / mois`},sections:[{titre:"Résumé des paramètres",lignes:k(t,e)},{titre:"Détail du calcul",lignes:r},{titre:"Cotisations sociales annuelles",lignes:[{label:"Cotisations patronales (42 %)",value:e.cotisationsPatronales},{label:"Cotisations salariales (8 %)",value:e.cotisationsSalariales},{label:"CSG (8 %)",value:e.csg},{label:"CRDS (0,5 %)",value:e.crds},{label:"Total charges annuelles",value:e.totalCharges,highlight:!0}]}],notes:[...R]}}],847767);let $=Object.freeze([Object.freeze({key:"vehicleType",equals:"achat"})]),L=Object.freeze([Object.freeze({key:"fuelCoverage",equals:"oui"})]),F=Object.freeze([Object.freeze({key:"evaluationMethod",equals:"reelle"})]),w=({key:e,libelle:t,question:a,aide:i})=>Object.freeze({key:e,type:"number",libelle:t,question:a,aide:i,min:0,unite:"€",facultatif:!0,requiredWhen:F,section:"Méthode d'évaluation"}),J=Object.freeze({id:"avantage-voiture",titre:N,verifier:function(e={}){return"reelle"!==e.evaluationMethod||["depreciationCost","insuranceCost","maintenanceCost"].some(t=>null!==e[t]&&void 0!==e[t]&&""!==e[t])?null:{key:"depreciationCost",erreur:"Dépenses réelles : indiquez au moins l'amortissement, l'assurance ou l'entretien annuel."}},champs:Object.freeze([Object.freeze({key:"vehicleType",type:"string",libelle:"Type de véhicule",question:"Le véhicule est-il acheté par l'entreprise ou loué (LOA / LLD) ?",enum:Object.freeze(["achat","location"]),choix:Object.freeze({achat:"Acheté par l'entreprise",location:"Loué (LOA/LLD)"}),alias:Object.freeze({achete:"achat",loue:"location",loa:"location",lld:"location",leasing:"location"}),defaut:"achat",section:"Type de véhicule"}),Object.freeze({key:"deploymentDate",type:"date",libelle:"Date de mise à disposition",question:"Quelle est la date de mise à disposition du véhicule au salarié ?",aide:"La date détermine le barème URSSAF applicable (avant ou après le 01/02/2025).",defautDuJour:!0,section:"Type de véhicule"}),Object.freeze({key:"purchasePrice",type:"number",libelle:e=>e?.vehicleType==="location"?"Coût de location annuel TTC":"Prix d'achat TTC du véhicule",question:e=>e?.vehicleType==="location"?"Quel est le coût de location annuel TTC du véhicule, en euros ?":"Quel est le prix d'achat TTC du véhicule, en euros ?",min:1,unite:"€",section:"Caractéristiques"}),Object.freeze({key:"vehicleAge",type:"string",libelle:"Ancienneté du véhicule",question:"Le véhicule a-t-il 5 ans ou moins, ou plus de 5 ans ?",aide:"L'ancienneté détermine le taux d'évaluation forfaitaire. Un véhicule de plus de 5 ans bénéficie d'un taux réduit.",enum:Object.freeze(["5ans_moins","5ans_plus"]),choix:Object.freeze({"5ans_moins":"5 ans ou moins","5ans_plus":"Plus de 5 ans"}),alias:Object.freeze({"moins de 5 ans":"5ans_moins",recent:"5ans_moins",neuf:"5ans_moins","plus de 5 ans":"5ans_plus",ancien:"5ans_plus"}),defaut:"5ans_moins",requiredWhen:$,section:"Caractéristiques"}),Object.freeze({key:"fuelType",type:"string",libelle:"Type de carburant / énergie",question:"Quel est le type de carburant ou d’énergie ?",enum:Object.freeze(["essence","diesel","hybride","electrique"]),choix:Object.freeze({essence:"Essence",diesel:"Diesel",hybride:"Hybride",electrique:"100% Électrique"}),alias:Object.freeze({gazole:"diesel",gasoil:"diesel",ev:"electrique","100% electrique":"electrique"}),defaut:"essence",section:"Caractéristiques"}),Object.freeze({key:"totalKm",type:"number",libelle:"Kilométrage annuel total",question:"Quel est le kilométrage annuel total du véhicule ?",min:1,unite:"km",section:"Utilisation"}),Object.freeze({key:"privateKm",type:"number",libelle:"Kilométrage privé annuel",question:"Quel est le kilométrage privé annuel (trajets personnels du salarié : domicile-travail, loisirs…) ?",aide:"Trajets personnels du salarié (domicile-travail, loisirs...). Sert à calculer le ratio d'utilisation privée.",min:1,unite:"km",section:"Utilisation"}),Object.freeze({key:"fuelCoverage",type:"string",libelle:"Prise en charge du carburant par l'employeur",question:"L'employeur prend-il en charge le carburant (carte essence, remboursement) ?",aide:"Si l'entreprise prend en charge le carburant (carte essence, remboursement), cela constitue un avantage supplémentaire.",enum:Object.freeze(["non","oui"]),choix:Object.freeze({non:"Non, le salarié paie",oui:"Oui, l'entreprise paie"}),alias:Object.freeze({o:"oui",n:"non",yes:"oui",no:"non","le salarie paie":"non","l entreprise paie":"oui"}),defaut:"non",section:"Utilisation"}),Object.freeze({key:"fuelCost",type:"number",libelle:"Coût annuel du carburant",question:"Quel est le coût annuel du carburant pris en charge par l'employeur, en euros ?",min:0,unite:"€",facultatif:!0,requiredWhen:L,section:"Utilisation"}),Object.freeze({key:"monthlySalary",type:"number",libelle:"Salaire brut mensuel",question:"Quel est le salaire brut mensuel du salarié, en euros ?",min:1,unite:"€",section:"Salaire"}),Object.freeze({key:"employeeContribution",type:"number",libelle:"Participation mensuelle du salarié",question:"Quelle est la participation mensuelle du salarié, en euros ? (0 si aucune)",aide:"Si le salarié participe financièrement à l'utilisation du véhicule, ce montant vient réduire l'avantage en nature imposable.",min:0,unite:"€",defaut:0,section:"Salaire"}),Object.freeze({key:"evaluationMethod",type:"string",libelle:"Méthode d'évaluation",question:"Quelle méthode d'évaluation : forfaitaire (recommandée) ou dépenses réelles ?",aide:"Forfaitaire : calcul simplifié basé sur le coût du véhicule et des barèmes URSSAF. Réelle : basée sur les dépenses effectives.",enum:Object.freeze(["forfaitaire","reelle"]),choix:Object.freeze({forfaitaire:"Forfaitaire (recommandé)",reelle:"Dépenses réelles"}
1),alias:Object.freeze({forfait:"forfaitaire",reel:"reelle","depenses reelles":"reelle",reelles:"reelle"}),defaut:"forfaitaire",section:"Méthode d'évaluation"}),w({key:"depreciationCost",libelle:"Amortissement annuel",question:"Quel est l'amortissement annuel du véhicule, en euros ? (prix / durée d'amortissement)",aide:"Coût d'amortissement annuel du véhicule (prix / durée d'amortissement)."}),w({key:"insuranceCost",libelle:"Assurance annuelle",question:"Quel est le coût annuel de l'assurance, en euros ?"}),w({key:"maintenanceCost",libelle:"Entretien annuel",question:"Quel est le coût annuel de l'entretien, en euros ?"})])});e.s(["SPEC_AVANTAGE_VOITURE",0,J],762233);var Q=e.i(435757);let U="Date de fin de période d'essai",H=Object.freeze({CDI:"CDI",CDD:"CDD",interim:"Intérim"}),W=Object.freeze({jours:"jour(s)",semaines:"semaine(s)",mois:"mois"}),V=Object.freeze({employeur:"L'employeur",salarie:"Le salarié"});function G(e){let t=String(e??"").trim();if(t.match(/^(\d{4})-(\d{2})-(\d{2})$/))return i(t)?t:null;let a=t.match(/^(\d{1,2})[./-](\d{1,2})[./-](\d{4})$/);if(!a)return null;let r=`${a[3]}-${a[2].padStart(2,"0")}-${a[1].padStart(2,"0")}`;return i(r)?r:null}let B=/\d{4}-\d{2}-\d{2}|\d{1,2}[./-]\d{1,2}[./-]\d{4}/g;function Y(e,t){let a=G(e?.debut),i=G(e?.fin),r=e?.reprise?G(e.reprise):null,n=t?` (absence n\xb0 ${t})`:"";return a&&i?i<a?{ok:!1,error:`le dernier jour d'absence doit \xeatre post\xe9rieur ou \xe9gal au premier${n}.`}:e?.reprise&&!r?{ok:!1,error:`la date de reprise n'est pas une date valide${n}.`}:r&&r<=i?{ok:!1,error:`la reprise effective doit \xeatre post\xe9rieure au dernier jour d'absence${n}.`}:{ok:!0,value:r?{debut:a,fin:i,reprise:r}:{debut:a,fin:i}}:{ok:!1,error:`renseignez le premier ET le dernier jour d'absence${n}, en dates (JJ/MM/AAAA).`}}function X(e){if(null==e)return{ok:!0,value:[]};if(Array.isArray(e)){let t=[];for(let[a,i]of e.entries()){let r=Y(i,e.length>1?a+1:0);if(!r.ok)return r;t.push(r.value)}return{ok:!0,value:t}}let t=String(e).trim();if(!t||/^(aucune?|non|pas d.absence|sans)$/i.test(t))return{ok:!0,value:[]};let a=t.split(/\s*(?:;|\n|,\s*(?=du\b))\s*/i).filter(Boolean),i=[];for(let[e,t]of a.entries()){let r=t.match(B)||[];if(r.length<2)return{ok:!1,error:`indiquez pour chaque absence le premier et le dernier jour, par exemple \xab du 02/03/2026 au 06/03/2026 \xbb${a.length>1?` (absence n\xb0 ${e+1})`:""}.`};if(r.length>3)return{ok:!1,error:`s\xe9parez chaque absence par \xab ; \xbb : \xab du 02/03/2026 au 06/03/2026 ; du 10/03/2026 au 11/03/2026 \xbb${a.length>1?` (absence n\xb0 ${e+1})`:""}.`};let n=Y({debut:r[0],fin:r[1],reprise:r[2]},a.length>1?e+1:0);if(!n.ok)return n;i.push(n.value)}return{ok:!0,value:i}}function K(e){return`du ${r(e.debut)} au ${r(e.fin)}${e.reprise?` — reprise le ${r(e.reprise)}`:""}`}function Z(e={}){let t=String(e.typeContrat||"CDI");return"CDI"!==t||e.categorie?(0,Q.dureeLegaleEssai)({typeContrat:t,categorie:e.categorie||null,dureeContratJours:Number(e.dureeContratJours)||0}):null}let ee=e=>e?`${e.valeur} ${W[e.unite]||e.unite}`:"",et=(e,t)=>`${e} ${t}${e>1?"s":""}`;e.s(["LIBELLES_PARTIE",0,V,"LIBELLES_TYPE_CONTRAT",0,H,"LIBELLES_UNITES",0,W,"TITRE_PERIODE_ESSAI",0,U,"absenceEnTexte",0,K,"calculerPeriodeEssaiSimulateur",0,function(e={}){if(!i(e.dateDebut))return null;let t=H[e.typeContrat]?String(e.typeContrat):"CDI",a="CDI"===t&&Q.CATEGORIES[e.categorie]?String(e.categorie):null,r=null,n="contrat";if(Number(e.dureeValeur)>0)r={valeur:Number(e.dureeValeur),unite:String(e.dureeUnite||"mois")};else{let i=Z({...e,typeContrat:t,categorie:a});if(!i?.duree||!(Number(i.duree.valeur)>0))return{error:"Indiquez la durée de la période d'essai : aucune durée légale ne peut être déduite de ces informations."};r=i.duree,n=`maximum l\xe9gal — ${i.source}`}let l=Number(e.renouvellementValeur)>0?{valeur:Number(e.renouvellementValeur),unite:String(e.renouvellementUnite||"mois")}:null,s=X(e.absences);if(!s.ok)return{error:`Absences : ${s.error}`};let o=i(e.dateNotification)?String(e.dateNotification):null,u="salarie"===e.partieRompant?"salarie":"employeur",c={typeContrat:t,categorie:a,dureeContratJours:Number(e.dureeContratJours)||0,dateDebut:String(e.dateDebut),duree:r,renouvellement:l,absences:s.value,dateNotification:o,partieRompant:u};return{result:(0,Q.calculerPeriodeEssai)({dateDebut:c.dateDebut,duree:r,renouvellement:l,absences:s.value,categorie:a,typeContrat:t,dateNotification:o,partieRompant:u}
1),saisie:c,dureeAppliquee:r,dureeSource:n}},"dureeLegalePourValeurs",0,Z,"enTetePeriodeEssai",0,function(e={},t=new Date,a=null){let n=a?.saisie,l=[{label:"Type de contrat",value:H[e.typeContrat]||"CDI"}];"CDI"===(e.typeContrat||"CDI")?l.push({label:"Catégorie du salarié",value:Q.CATEGORIES[e.categorie]?.label||String(e.categorie||"")}):l.push({label:"Durée prévue du contrat",value:`${Number(e.dureeContratJours)||0} jours`}),l.push({label:"Premier jour du contrat",value:r(e.dateDebut)});let s=n?.duree||(Number(e.dureeValeur)>0?{valeur:Number(e.dureeValeur),unite:e.dureeUnite||"mois"}:null);l.push({label:"Durée de la période d'essai",value:s?`${ee(s)}${a?.dureeSource&&"contrat"!==a.dureeSource?` (${a.dureeSource})`:""}`:"Maximum légal"}),Number(e.renouvellementValeur)>0&&l.push({label:"Renouvellement",value:ee({valeur:Number(e.renouvellementValeur),unite:e.renouvellementUnite||"mois"})});let o=X(e.absences);return o.ok&&o.value.length&&l.push({label:"Absences pendant l'essai",value:o.value.map(K).join(" ; ")}),i(e.dateNotification)&&(l.push({label:"Qui rompt l'essai",value:V[e.partieRompant]||V.employeur}),l.push({label:"Date d'envoi envisagée de la notification",value:r(e.dateNotification)})),l.push({label:"Date du calcul",value:r(t)}),{titre:U,lignes:l}}
1,"lireAbsences",0,X,"presentationPeriodeEssai",0,function(e){var t;let a,n=e?.result;if(!n)return null;let l=e.saisie||{},s=[{label:"Dernier jour pour notifier la rupture",value:r(n.dateLimiteNotification),subtext:"La date d'envoi de la lettre fait foi — Cass. soc. 11 mai 2005, n° 03-40.650",highlight:!0}];n.dateLimitePrevenanceIncluse&&s.push({label:"Pour une prévenance exécutée entièrement pendant l’essai, notifier au plus tard le",value:r(n.dateLimitePrevenanceIncluse),subtext:n.prevenanceAuTerme?`Pr\xe9venance de ${n.prevenanceAuTerme.libelle} — ${n.prevenanceAuTerme.source}`:""});let o=[{titre:"Rupture de la période d’essai",lignes:s}];n.zoneIncertitude&&(o[0].note=`En comptant les jours de repos accol\xe9s aux absences (admis par Cass. soc. 11 septembre 2019, n\xb0 17-21.976), la fin pourrait s'\xe9tendre jusqu'au ${r(n.finProlongeeEtendue)} — zone d'incertitude : par prudence, la date retenue est la plus pr\xe9coce.`),n.alertes?.length&&o.push({titre:"Alertes",lignes:n.alertes.map(e=>({label:e.message,value:""}))});let u=[{label:"1. Point de départ",value:r(l.dateDebut),subtext:"L'essai débute le premier jour du contrat et ne peut pas être décalé."},{label:"2. Terme théorique",value:r(n.finInitialeTheorique),subtext:`D\xe9compte calendaire, de date \xe0 date (Cass. soc. 28 avril 2011, n\xb0 09-40.464)${n.finTheorique!==n.finInitialeTheorique?` ; renouvellement compris, fin th\xe9orique le ${r(n.finTheorique)}`:""}.`}];if(n.detailProlongations?.length){for(let[e,t]of n.detailProlongations.entries())u.push({label:`${0===e?"3. Prolongation par les absences — ":""}absence du ${r(t.debut)} au ${r(t.finAbsence)}`,value:t.compte?`+${et(t.jours,"jour")} → ${r(t.nouvelleFin)}`:"sans effet",subtext:0===e?"L'essai est prolongé d'une durée égale à celle de l'absence, en jours calendaires (Cass. soc. 31 janvier 2018, n° 16-11.598).":t.compte?"":"Elle débute après la fin de l'essai."});u.push({label:"Total de la prolongation",value:`${et(n.prolongationJours,"jour")} → fin le ${r(n.finProlongee)}`,subtext:n.zoneIncertitude?`En incluant les jours de repos accol\xe9s jusqu'\xe0 la reprise effective (${n.prolongationJoursEtendue} jours — Cass. soc. 11 septembre 2019, n\xb0 17-21.976), la fin pourrait s'\xe9tendre au ${r(n.finProlongeeEtendue)}.`:""})}else u.push({label:"3. Absences",value:"Aucune",subtext:"Aucune absence saisie : pas de prolongation."});return n.prevenance&&u.push({label:"4. Délai de prévenance",value:n.prevenance.libelle,subtext:`\xc0 la date de notification envisag\xe9e (${r(l.dateNotification)}), la pr\xe9sence est de ${n.prevenance.joursPresence} jours (${n.prevenance.source})${n.finPrevenance?`, d\xe9lai qui court jusqu'au ${r(n.finPrevenance)}`:""}.`}),o.push({titre:"Détail du calcul",lignes:u}),o.push({titre:"Sources officielles",lignes:Q.SOURCES_PERIODE_ESSAI.map(e=>({label:e.ref,value:"",subtext:e.objet})),note:"Règles vérifiées sur Légifrance. En cas d'absence encadrée de jours de repos, le calcul retient la solution la plus prudente (prolongation jusqu'à la reprise effective)."}),{principal:{label:"Fin de la période d'essai (absences comprises)",valeur:`${!(a=i(t=n.finProlongee))?String(t??""):a.toLocaleDateString("fr-FR",{weekday:"long",day:"numeric",month:"long",year:"numeric",timeZone:"UTC"})} \xe0 minuit`,sous:n.zoneIncertitude?`au plus tard le ${r(n.finProlongeeEtendue)} en comptant les jours de repos accol\xe9s`:""},sections:o,notes:[]}}],443991);let ea=Object.freeze([Object.freeze({key:"typeContrat",equals:"CDI"})]),ei=Object.freeze([Object.freeze({key:"typeContrat",in:Object.freeze(["CDD","interim"])})]),er=Object.freeze(Object.keys(W)),en=Object.freeze({jour:"jours",j:"jours",semaine:"semaines",sem:"semaines",s:"semaines",m:"mois"}),el=Object.freeze({id:"periode-essai",titre:U,champs:Object.freeze([Object.freeze({key:"typeContrat",type:"string",libelle:"Type de contrat",question:"Quel est le type de contrat : CDI, CDD ou intérim ?",enum:Object.freeze(Object.keys(H)),choix:Object.freeze({...H}),alias:Object.freeze({interimaire:"interim","mission d interim":"interim",mission:"interim"}),defaut:"CDI",presentation:"boutons",section:"Le contrat"}),Object.freeze({key:"categorie",type:"string",libelle:"Catégorie du salarié",question:"Quelle est la catégorie du salarié ?",enum:Object.freeze(Object.keys(Q.CATEGORIES)),choix:Object.freeze(Object.fromEntries(Object.entries(Q.CATEGORIES).map(([e,t])=>[e,t.label]))),alias:Object.freeze({ouvrier:"ouvrier_employe",employe:"ouvrier_employe","ouvrier ou employe":"ouvrier_employe",technicien:"agent_maitrise_technicien","agent de maitrise":"agent_maitrise_technicien","agent de maitrise ou technicien":"agent_maitrise_technicien",etam:"agent_maitrise_technicien"}),requiredWhen:ea,section:"Le contrat"}),Object.freeze({key:"dureeContratJours",type:"number",libelle:"Durée prévue du contrat (jours)",question:"Quelle est la durée prévue du contrat, en jours ?",min:1,unite:"jours",requiredWhen:ei,section:"Le contrat"}),Object.freeze({key:"dateDebut",type:"date",libelle:"Premier jour du contrat",question:"Quel est le premier jour du contrat ?",section:"Le contrat"}),Object.freeze({key:"dureeValeur",type:"number",libelle:"Durée de la période d'essai",question:"Quelle est la durée de la période d'essai prévue au contrat (le nombre) ? Passez pour appliquer le maximum légal.",aide:function(e={}){let t=Z(e);return t?.duree&&Number(t.duree.valeur)>0?`Vide : le maximum l\xe9gal s'applique — ${t.duree.valeur} ${t.duree.unite} (${t.source}).`:"Vide : le maximum légal s'applique."},min:1,facultatif:!0,section:"La période d'essai"}),Object.freeze({key:"dureeUnite",type:"string",libelle:"Unité de la durée",question:"Dans quelle unité est cette durée ?",enum:er,choix:Object.freeze({...W}),alias:en,defaut:"mois",section:"La période d'essai"}),Object.freeze({key:"renouvellementValeur",type:"number",libelle:"Durée du renouvellement",question:"L'essai est-il renouvelé ? Si oui, pour quelle durée (le nombre) ? Passez sinon.",aide:"Possible une seule fois, si un accord de branche étendu le prévoit et si le contrat le stipule (Art. L.1221-21 et L.1221-23), avec l'accord exprès du salarié avant le terme initial.",min:1,facultatif:!0,section:"Renouvellement de l'essai"}),Object.freeze({key:"renouvellementUnite",type:"string",libelle:"Unité du renouvellement",question:"Dans quelle unité est le renouvellement ?",enum:er,choix:Object.freeze({...W}),alias:en,defaut:"mois",section:"Renouvellement de l'essai"}
1),Object.freeze({key:"absences",type:"array",libelle:"Absences pendant l'essai (maladie, congés…)",question:"Y a-t-il eu des absences pendant l'essai (maladie, congés, RTT…) ? Indiquez chacune : « du JJ/MM/AAAA au JJ/MM/AAAA », et la reprise effective si des jours de repos suivent (« reprise le JJ/MM/AAAA »), séparées par « ; ». Passez sinon.",aide:"Chaque absence (maladie, congés, RTT…) prolonge l'essai d'une durée égale, en jours calendaires (Cass. soc. 31 janvier 2018, n° 16-11.598).",lire:X,enTexte:e=>Array.isArray(e)&&e.length?e.map(K).join(" ; "):"",items:Object.freeze({type:"object",properties:Object.freeze({debut:Object.freeze({type:"string",description:"Premier jour d'absence (AAAA-MM-JJ)"}),fin:Object.freeze({type:"string",description:"Dernier jour d'absence, inclus (AAAA-MM-JJ)"}),reprise:Object.freeze({type:"string",description:"Reprise effective si des jours de repos suivent (AAAA-MM-JJ), facultatif"})}),required:Object.freeze(["debut","fin"])}),facultatif:!0,section:"Absences pendant l'essai"}),Object.freeze({key:"partieRompant",type:"string",libelle:"Qui rompt l'essai",question:"Qui rompt l'essai : l'employeur ou le salarié ?",enum:Object.freeze(Object.keys(V)),choix:Object.freeze({...V}),alias:Object.freeze({entreprise:"employeur","le salarie":"salarie","l employeur":"employeur"}),defaut:"employeur",presentation:"boutons",section:"Rupture envisagée (délai de prévenance)"}),Object.freeze({key:"dateNotification",type:"date",libelle:"Date d'envoi envisagée de la notification",question:"Une date d'envoi de la notification de rupture est-elle envisagée ? Indiquez-la, ou passez.",facultatif:!0,section:"Rupture envisagée (délai de prévenance)"})])});e.s(["SPEC_PERIODE_ESSAI",0,el],965978);let es=Object.freeze([Object.freeze({key:"sens",equals:"mensuel"})]),eo=Object.freeze([Object.freeze({key:"sens",equals:"hebdo"})]),eu="Mensualisation des heures de travail",ec=Object.freeze({id:"mensualisation",titre:eu,champs:Object.freeze([Object.freeze({key:"sens",type:"string",libelle:"Sens de la conversion",question:"Que voulez-vous convertir ?",enum:Object.freeze(["mensuel","hebdo"]),choix:Object.freeze({mensuel:"Heures hebdomadaires → heures mensuelles",hebdo:"Heures mensuelles → heures hebdomadaires"}),alias:Object.freeze({"hebdo vers mensuel":"mensuel","semaine vers mois":"mensuel","vers mensuel":"mensuel","en mensuel":"mensuel","mensuel vers hebdo":"hebdo","mois vers semaine":"hebdo","vers hebdo":"hebdo","en hebdo":"hebdo",hebdomadaire:"hebdo",mensualiser:"mensuel"}),defaut:"mensuel"}),Object.freeze({key:"hebdo",type:"number",libelle:"Heures hebdomadaires",question:"Combien d'heures par semaine ?",unite:"h",min:0,pas:.5,requiredWhen:es}),Object.freeze({key:"mensuel",type:"number",libelle:"Heures mensuelles",question:"Combien d'heures par mois ?",unite:"h",min:0,pas:.01,requiredWhen:eo})])});e.s(["SPEC_MENSUALISATION",0,ec,"TITRE_MENSUALISATION",0,eu],244935);let ed=[{id:"monday",label:"Lundi"},{id:"tuesday",label:"Mardi"},{id:"wednesday",label:"Mercredi"},{id:"thursday",label:"Jeudi"},{id:"friday",label:"Vendredi"},{id:"saturday",label:"Samedi"},{id:"sunday",label:"Dimanche"}],em=[{id:"1",label:"Standard (Legal) : 25% / 50%",description:"25% (8 premieres heures) puis 50%"}];e.s(["DAYS",0,ed,"MAJORATION_TYPES",0,em,"computeRepartitionResults",0,function(e,t){if("1"!==String(t))throw TypeError("Seul le barème légal est accepté par ce moteur");let a=ed.reduce((t,a)=>t+(e[a.id]||0),0),i=0,r=0,n=0;if(a<=35)i=a;else{i=35;let e=a-35;r=Math.min(e,8),n=Math.max(0,e-8)}let l={total:a,normal:i,hs1:r,hs2:n,hs10:0,hs20:0,hs30:0};return{dailyResults:ed.map(t=>{let l=e[t.id]||0;if(0===l||0===a)return{day:t.label,total:0,normal:0,hs1:0,hs2:0,hs10:0,hs20:0,hs30:0,ratio:0};let s=l/a;return{day:t.label,total:l,normal:i*s,hs1:r*s,hs2:n*s,hs10:0*s,hs20:0*s,hs30:0*s,ratio:s}}),totals:l}},"getColumnsForMajoration",0,function(e){if("1"!==String(e))throw TypeError("Seul le barème légal est accepté par ce moteur");return[{key:"hs1",label:"HS 25%"},{key:"hs2",label:"HS 50%"}]}],899112);let ep="Répartition des heures supplémentaires dans la semaine",ef=Object.freeze({id:"repartition-hs",titre:ep,champs:Object.freeze([Object.freeze({key:"majorationType",type:"string",libelle:"Type de majoration",question:"Quel type de majoration ?",enum:Object.freeze(em.map(e=>e.id)),choix:Object.freeze(Object.fromEntries(em.map(e=>[e.id,e.label]))),detailChoix:Object.freeze(Object.fromEntries(em.map(e=>[e.id,e.description]))),alias:Object.freeze({legal:"1",standard:"1","standard legal":"1","bareme legal":"1"}),defaut:em[0].id}),...ed.map(({id:e,label:t})=>Object.freeze({key:e,type:"number",libelle:t,question:`Combien d'heures travaill\xe9es le ${t.toLowerCase()} ? (0 pour un jour non travaill\xe9)`,unite:"h",min:0,max:24,pas:.5,defaut:0,section:"Heures travaillées par jour"}))])}),eb=Object.freeze(ed.map(e=>e.id));e.s(["CLES_JOURS",0,eb,"SPEC_REPARTITION_HS",0,ef,"TITRE_REPARTITION_HS",0,ep],560467);let ey=Object.freeze({id:"saisie-salaire",titre:"Saisie sur salaire",champs:Object.freeze([Object.freeze({key:"salaireMensuel",type:"number",libelle:"Salaire net mensuel",question:"Quel est le salaire net mensuel du salarié, en euros ?",aide:"Rémunération nette mensuelle avant saisie",unite:"€",min:0,pas:.01}),Object.freeze({key:"personnesACharge",type:"number",libelle:"Personnes à charge",question:"Combien de personnes à charge (conjoint, enfants, ascendants) ?",aide:"Conjoint, enfants, ascendants à charge",min:0,max:20,entier:!0,defaut:0}),Object.freeze({key:"typeSaisie",type:"string",libelle:"Type de saisie",question:"Quel type de saisie ?",enum:Object.freeze(["classique","pension"]),choix:Object.freeze({classique:"Saisie classique",pension:"Pension alimentaire"}),detailChoix:Object.freeze({classique:"Barème progressif par tranches",pension:"Totalité saisissable sauf RSA"}),alias:Object.freeze({classique:"classique","saisie classique":"classique",ordinaire:"classique","saisie ordinaire":"classique",pension:"pension","pension alimentaire":"pension",alimentaire:"pension"}),defaut:"classique"})])});e.s(["SPEC_SAISIE_SALAIRE",0,ey],253204);let eh=Object.freeze([Object.freeze({key:"periodType",equals:"full_year"})]),ej=Object.freeze([Object.freeze({key:"periodType",equals:"partial_year"})]),ev=Object.freeze(Array.from({length:10},(e,t)=>String(2024+t))),eg=(e,t,a,{min:i=0,max:r=366,defaut:n,aide:l,section:s}={})=>Object.freeze({key:e,type:"number",libelle:t,question:a,unite:"jours",min:i,max:r,entier:!1,...void 0!==n?{defaut:n}:{},...l?{aide:l}:{},section:s}),eS=Object.freeze({id:"rtt-forfait",titre:"Calcul des RTT en forfait-jours",verifier:function(e={}){if("partial_year"!==e.periodType)return null;let t=String(e.startDate||""),a=String(e.endDate||"");return t&&a&&t>a?{key:"endDate",erreur:"La date de fin est antérieure à la date de début : vérifiez les deux dates."}:t&&a&&t.slice(0,4)!==a.slice(0,4)?{key:"endDate",erreur:"La période doit rester dans une même année civile."}:null},champs:Object.freeze([Object.freeze({key:"idcc",type:"idcc",libelle:"Convention collective (optionnel)",question:"Quelle convention collective ? (numéro IDCC, ou « aucune » : elle préremplit le forfait conventionnel et vérifie ses conditions de validité)",aide:"Sélectionnez la convention pour pré-remplir le forfait conventionnel et vérifier les conditions de validité.",facultatif:!0,section:"Convention collective"}),Object.freeze({key:"periodType",type:"string",libelle:"Type de période",question:"Sur quelle période : une année civile complète, ou une entrée/sortie en cours d’année ?",enum:Object.freeze(["full_year","partial_year"]),choix:Object.freeze({full_year:"Année civile",partial_year:"Entrée/Sortie"}),alias:Object.freeze({"annee civile":"full_year",annee:"full_year",civil:"full_year","annee complete":"full_year",partial:"partial_year",partiel:"partial_year","entree sortie":"partial_year","entree/sortie":"partial_year","periode partielle":"partial_year"}),defaut:"full_year",section:"Période de référence"}),Object.freeze({key:"selectedYear",type:"string",libelle:"Année",question:"Quelle année civile ?",enum:ev,choix:Object.freeze(Object.fromEntries(ev.map(e=>[e,e]))),defaut:String(new Date().getFullYear()),requiredWhen:eh,section:"Période de référence"}),Object.freeze({key:"startDate",type:"date",libelle:"Date de début",question:"Quelle est la date de début de la période ?",requiredWhen:ej,section:"Période de référence"}),Object.freeze({key:"endDate",type:"date",libelle:"Date de fin",question:"Quelle est la date de fin de la période ?",requiredWhen:ej,section:"Période de référence"}),eg("forfaitDays","Forfait annuel (jours)","Quel est le forfait annuel en jours ?",{min:1,aide:"Saisissez la valeur prévue par l'accord et le forfait individuel, ou sélectionnez une règle conventionnelle publiée.",section:"Forfait jour"}),Object.freeze({key:"calculationMode",type:"string",libelle:"Mode de calcul",question:"Quel mode de calcul des RTT ?",enum:Object.freeze(["acquisition","forfaitaire"]),choix:Object.freeze({acquisition:"Acquisition (progressif)",forfaitaire:"Forfaitaire (fixe)"}),alias:Object.freeze({acquisition:"acquisition",progressif:"acquisition",forfaitaire:"forfaitaire",forfait:"forfaitaire",fixe:"forfaitaire"}),aide:"Indiquez la méthode prévue par le régime applicable. L'impact des absences reste une saisie séparée et n'est jamais déduit par catégorie automatiquement.",defaut:"acquisition",section:"Mode de calcul RTT"}),eg("paidLeaveAcquired","Jours acquis pour la période","Combien de jours de congés payés sont acquis pour la période ?",{aide:"Saisissez les jours effectivement acquis pour la période selon le régime applicable. Cette valeur n'est pas proratisée une seconde fois.",section:"Congés payés"}),eg("paidLeaveTaken","Jours pris","Combien de jours de congés payés ont été pris dans la période ?",{max:30,defaut:0,section:"Congés payés"}),eg("absenceDaysReducingRtt","Absences réduisant les RTT (jours)","Selon le régime applicable, combien de jours d’absence réduisent les RTT ?",{aide:"Saisissez le total déterminé par l'accord ou la règle applicable. Les catégories ci-dessous restent informatives.",section:"Absence
1s"}),eg("sickDays","Jours de maladie","Combien de jours de maladie dans la période ? (information de suivi)",{max:365,defaut:0,aide:"Information de suivi ; aucune conséquence RTT n'est déduite automatiquement.",section:"Absences"}),eg("maternityDays","Jours de maternité/paternité","Combien de jours de maternité ou paternité dans la période ? (information de suivi)",{max:200,defaut:0,aide:"Information de suivi ; aucune conséquence RTT n'est déduite automatiquement.",section:"Absences"}),eg("unpaidAbsence","Absence non rémunérée (jours)","Combien de jours d’absence non rémunérée ?",{max:365,defaut:0,section:"Absences"}),eg("publicHolidays","Jours fériés chômés","Combien de jours fériés chômés compris dans la période ?",{aide:"Saisissez le nombre réel de jours fériés chômés compris dans la période ; il dépend du calendrier et du régime applicables.",section:"Jours fériés"})])});e.s(["SPEC_RTT_FORFAIT",0,eS],630949);let eO={2025:3925,2026:4005},eC=["","Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre"];function eA(e,t=null){let a=Number(t);return Number.isFinite(a)&&a>0?a:eO[e]??eO[Math.max(...Object.keys(eO).map(Number))]}function ex(e,t){return new Date(t,e,0).getDate()}function e_(e,t=2){return new Intl.NumberFormat("fr-FR",{minimumFractionDigits:t,maximumFractionDigits:t}).format(e)}function ez(e,t){let a=new Date(e),i=new Date(t);return a.setHours(0,0,0,0),i.setHours(0,0,0,0),Math.round((i-a)/864e5)}e.s(["MOIS_NOMS",0,eC,"PMSS_VALUES",0,eO,"calculerProrata",0,function(e){let t=eA(e.annee,e.pmss),a=t,i=1,r=[],n=[],l={},s=[],o=ex(e.mois,e.annee),u={joursMois:o};l["Type de salarié"]=({mensualise:"Mensualisé à temps plein",tempspartiel:"Temps partiel",nonmensualise:"Non mensualisé",multiemployeur:"Multi-employeur"})[e.typeSalarie]||e.typeSalarie,l.Mois=`${e.mois}/${e.annee}`,l["Jours du mois"]=`${o} jours`,r.push(`Plafond mensuel de la S\xe9curit\xe9 sociale ${e.annee} : ${e_(t)} €${e.mentionPmss||""}`),r.push(`Mois de calcul : ${e.mois}/${e.annee} (${o} jours)`);let c=t,d=null;if("multiemployeur"===e.typeSalarie&&(e.salaireCourant||e.heuresCourant))if("salaire"===(e.modeCalculMulti||"salaire")){let a=[e.salaireCourant||0,...e.salaireAutresEmployeurs||[]],o=a.reduce((e,t)=>e+t,0);if(o>0){let u=(e.salaireCourant||0)/o,m=t*u,p=a.map((e,a)=>{let i=e/o*t;return{employeur:0===a?"Employeur courant":`Employeur ${String.fromCharCode(65+a)}`,salaire:e,plafond:i,excedent:Math.max(0,e-i)}});i=u,c=m;let f=`PMSS \xd7 (Salaire employeur / Total salaires) = ${e_(t)} \xd7 (${e_(e.salaireCourant||0)} / ${e_(o)})`;d={totalSalaires:o,totalHeures:0,partEmployeurCourant:u,baseCotisationsPlafonnees:m,baseExcedent:Math.max(0,(e.salaireCourant||0)-m),formuleCalcul:f,repartitionPlafonds:p},s.push({type:"Multi-employeur (prorata salaires)",valeurInitiale:t,valeurFinale:m,pourcentage:100*u,explication:"Répartition selon les salaires perçus chez chaque employeur",formule:f}),n.push("Application de la règle multi-employeur par salaires"),n.push("Formule : PMSS × (Salaire employeur / Total salaires)"),n.push(`Calcul : ${e_(t)} \xd7 (${e_(e.salaireCourant||0)} / ${e_(o)}) = ${e_(m)} €`),l["Salaire courant"]=`${e_(e.salaireCourant||0)} €`,l["Total salaires"]=`${e_(o)} €`,l["Part employeur"]=`${e_(100*u,2)} %`,r.push(`Total des r\xe9mun\xe9rations per\xe7ues : ${e_(o)} €`),r.push(`Part de l'employeur courant : ${e_(e.salaireCourant||0)} € (${e_(100*u,2)}%)`)}}else{let a=[e.heuresCourant||0,...e.heuresAutresEmployeurs||[]],o=a.reduce((e,t)=>e+t,0);if(o>0){let u=(e.heuresCourant||0)/o,m=t*u,p=a.map((e,a)=>{let i=e/o*t;return{employeur:0===a?"Employeur courant":`Employeur ${String.fromCharCode(65+a)}`,salaire:0,plafond:i,excedent:0}});i=u,c=m;let f=`PMSS \xd7 (Heures employeur / Total heures) = ${e_(t)} \xd7 (${e.heuresCourant} / ${o})`;d={totalSalaires:0,totalHeures:o,partEmployeurCourant:u,baseCotisationsPlafonnees:m,baseExcedent:0,formuleCalcul:f,repartitionPlafonds:p},s.push({type:"Multi-employeur (prorata heures)",valeurInitiale:t,valeurFinale:m,pourcentage:100*u,explication:"Répartition selon les heures travaillées chez chaque employeur",formule:f}),n.push("Application de la règle multi-employeur par heures"),n.push("Formule : PMSS × (Heures employeur / Total heures)"),n.push(`Calcul : ${e_(t)} \xd7 (${e.heuresCourant} / ${o}) = ${e_(m)} €`),l["Heures courantes"]=`${e.heuresCourant} h`,l["Total heures"]=`${o} h`,l["Part employeur"]=`${e_(100*u,2)}
1 %`,r.push(`Total des heures travaill\xe9es : ${o} h`),r.push(`Part de l'employeur courant : ${e.heuresCourant} h (${e_(100*u,2)}%)`)}}if(e.hasMultiEmployeur&&"multiemployeur"!==e.typeSalarie&&(e.salaireCourant||e.heuresCourant)&&"salaire"===(e.modeCalculMulti||"salaire")){let t=(e.salaireAutresEmployeurs||[]).reduce((e,t)=>e+t,e.salaireCourant||0);if(t>0){let a=(e.salaireCourant||0)/t,r=c*a;s.push({type:"Multi-employeur (prorata salaires)",valeurInitiale:c,valeurFinale:r,pourcentage:100*a,explication:`Part employeur : ${e_(e.salaireCourant||0)} € / Total : ${e_(t)} €`,formule:`${e_(c)} \xd7 ${e_(a)} = ${e_(r)}`}),i*=a,c=r,n.push(`Calcul prorata multi-employeur par salaires : ${e_(e.salaireCourant||0)} € / ${e_(t)} € = ${e_(a)}`)}}switch(e.typeSalarie){case"mensualise":n.push("Salarié mensualisé à temps plein — pas de réduction de base"),r.push("Aucune réduction n'est appliquée pour un salarié mensualisé à temps plein");break;case"tempspartiel":if(e.renonceAjustement)n.push("Salarié a renoncé à l'ajustement — pas de réduction"),r.push("Le salarié a renoncé au bénéfice de l'ajustement pour taux réduits");else if(e.heuresContrat&&e.dureeLegale){let t=52*e.heuresContrat/12+(e.heuresComplementaires||0),a=52*e.dureeLegale/12,o=t/a;u.heuresReference=a,u.heuresTravaillees=t,s.push({type:"Temps partiel",valeurInitiale:c,valeurFinale:c*o,pourcentage:100*o,explication:`Heures travaill\xe9es : ${e_(t)} h / Heures r\xe9f\xe9rence : ${e_(a)} h`,formule:`${e_(c)} \xd7 (${e_(t)} / ${e_(a)}) = ${e_(c*o)}`}),i*=o,c*=o,n.push(`Calcul prorata temps partiel : ${e_(t)} h / ${e_(a)} h = ${e_(o)}`),l["Heures contrat"]=`${e.heuresContrat} h`,l["Heures référence"]=`${e_(a)} h`,e.heuresComplementaires&&(l["Heures complémentaires"]=`${e.heuresComplementaires} h`),r.push(`Temps partiel : ${e_(100*o,2)}% d'un temps plein`)}break;case"nonmensualise":if(e.payePiece)s.push({type:"Paiement à la pièce",valeurInitiale:c,valeurFinale:.5*c,pourcentage:50,explication:"Réduction forfaitaire de 50% pour le paiement à la pièce",formule:`${e_(c)} \xd7 50% = ${e_(.5*c)}`}),i*=.5,c*=.5,n.push("Salarié payé à la pièce — réduction forfaitaire 50%");else if(e.jourDebutPaie&&e.jourFinPaie){let t=ez(e.jourDebutPaie,e.jourFinPaie)+1,a=t/o;u.joursPresence=t,u.facteurTemporel=a,s.push({type:"Prorata temporis",valeurInitiale:c,valeurFinale:c*a,pourcentage:100*a,explication:`Jours pay\xe9s : ${t} j sur ${o} j du mois`,formule:`${e_(c)} \xd7 (${t} / ${o}) = ${e_(c*a)}`}),i*=a,c*=a,n.push(`Calcul prorata jours pay\xe9s : ${t} j / ${o} j = ${e_(a)}`),r.push(`Prorata sur ${t} jours pay\xe9s dans le mois`)}}if(e.jourEntree||e.jourSortie){let t,a=(t=e.jourEntree&&e.jourSortie?ez(e.jourEntree,e.jourSortie)+1:e.jourEntree?new Date(e.annee,e.mois,0).getDate()-new Date(e.jourEntree).getDate()+1:e.jourSortie?new Date(e.jourSortie).getDate():o)/o;u.joursPresence=t,u.facteurTemporel=a,s.push({type:"Entrée/Sortie",valeurInitiale:c,valeurFinale:c*a,pourcentage:100*a,explication:`Pr\xe9sence : ${t} j sur ${o} j du mois (jour d'entr\xe9e inclus)`,formule:`${e_(c)} \xd7 (${t} / ${o}) = ${e_(c*a)}`}),i*=a,c*=a,n.push(`Ajustement entr\xe9e/sortie : ${t} j / ${o} j = ${e_(a)}`),n.push("Note : le jour d'entrée est inclus dans le calcul"),e.jourEntree&&(l["Date d'entrée"]=new Date(e.jourEntree).toLocaleDateString("fr-FR")+" (incluse)",r.push(`Entr\xe9e le ${new Date(e.jourEntree).toLocaleDateString("fr-FR")} (jour inclus)`)),e.jourSortie&&(l["Date de sortie"]=new Date(e.jourSortie).toLocaleDateString("fr-FR"),r.push(`Sortie le ${new Date(e.jourSortie).toLocaleDateString("fr-FR")}`))}if(e.jourDebutAbsence&&e.jourFinAbsence){let t=ez(e.jourDebutAbsence,e.jourFinAbsence)+1;if(u.joursAbsence=t,l["Période d'absence"]=`${new Date(e.jourDebutAbsence).toLocaleDateString("fr-FR")} – ${new Date(e.jourFinAbsence).toLocaleDateString("fr-FR")}`,l["Jours d'absence"]=`${t} jours`,e.maintienSalaire)r.push(`Absence avec maintien de salaire : ${t} jours — pas d'impact sur le plafond`);else{let a=o-t,l=a/o;s.push({type:"Absence sans maintien de salaire",valeurInitiale:c,valeurFinale:c*l,pourcentage:100*l,explication:`Jours de pr\xe9sence : ${a} j sur ${o} j (${t} j d'absence)`,formule:`${e_(c)} \xd7 (${a} / ${o}) = ${e_(c*l)}`}),i*=l,c*=l,n.push(`R\xe9duction pour absence sans maintien : ${a} j / ${o} j = ${e_(l)}`),r.push(`Absence sans maintien de salaire : ${t} jours — plafond r\xe9duit au prorata`),e.indemniteIJSS&&r.push("Indemnités IJSS perçues pendant l'absence")}}if(e.jourDebutConge&&e.jourFinConge){let t=ez(e.jourDebutConge,e.
1jourFinConge)+1;u.joursConges=t,l["Période de congés"]=`${new Date(e.jourDebutConge).toLocaleDateString("fr-FR")} – ${new Date(e.jourFinConge).toLocaleDateString("fr-FR")}`,l["Jours de congés"]=`${t} jours`,r.push(`Cong\xe9s pay\xe9s : ${t} jours — pas d'impact sur le plafond`)}let m=Math.min(a=t*i,e.salaireCourant||a),p=Math.max(0,(e.salaireCourant||0)-a);return r.push(`Plafond final apr\xe8s application des r\xe8gles : ${e_(a)} €`),e.salaireCourant&&(r.push(`Base cotisations plafonn\xe9es : ${e_(m)} €`),p>0&&r.push(`Base exc\xe9dent (d\xe9plafonn\xe9e) : ${e_(p)} €`)),{plafond:a,facteurReduction:i,explications:r,etapes:n,params:l,details:{pmssBase:t,plafondFinal:a,baseCotisationsPlafonnees:m,baseExcedent:p,reductionsAppliquees:s,calculsDetailles:u,...d&&{multiEmployeur:d}}}},"formatEuro",0,function(e){return new Intl.NumberFormat("fr-FR",{style:"currency",currency:"EUR",minimumFractionDigits:2,maximumFractionDigits:2}).format(e)},"formatNumber",0,e_,"getJoursMois",0,ex,"getPMSS",0,eA],462439);let eE=new Intl.DateTimeFormat("fr-FR",{timeZone:"Europe/Paris",year:"numeric"}),eD=(e=new Date)=>Number(eE.format(e));function eq(e,t){let a=()=>Object.freeze(function(e,t=new Date){return[...new Set([...e.map(Number),eD(t)])].filter(Number.isFinite).sort((e,t)=>e-t).map(String)}(e));return Object.freeze(Object.defineProperties({...t,defaut:()=>String(eD())},{enum:{get:a,enumerable:!0},choix:{get:()=>Object.freeze(Object.fromEntries(a().map(e=>[e,e]))),enumerable:!0}}))}e.s(["anneeDeLaValeur",0,function(e,t,a){return null!=a||Object.hasOwn(e,Number(t))?Number(t):Math.max(...Object.keys(e).map(Number).filter(Number.isFinite))},"anneeEnCours",0,eD,"champAnnee",0,eq,"listeDynamique",0,e=>"function"==typeof Object.getOwnPropertyDescriptor(e??{},"enum")?.get,"mentionDeSecours",0,function(e,t){let a=Number(e),i=Number(t);return a===i?"":a>i?` (valeur ${i} : celle de ${a} n'est pas encore disponible)`:` (valeur ${i} : celle de ${a} n'est pas disponible)`},"secoursPourAnnee",0,function(e,t){let a=Number(t);if(Object.hasOwn(e,a))return e[a];let i=Math.max(...Object.keys(e).map(Number).filter(Number.isFinite));return e[i]}],707374);let eP=Object.freeze([Object.freeze({key:"typeSalarie",equals:"tempspartiel"})]),eT=Object.freeze([Object.freeze({key:"typeSalarie",equals:"nonmensualise"})]),eN=Object.freeze([Object.freeze({key:"typeSalarie",in:Object.freeze(["mensualise","nonmensualise","tempspartiel","multiemployeur"])})]),eM=Object.freeze([...eN,Object.freeze({key:"hasEntreeSortie",equals:!0})]),eI=Object.freeze([...eN,Object.freeze({key:"hasAbsence",equals:!0})]),ek=Object.freeze([...eI,Object.freeze({key:"maintienSalaire",equals:!0})]),eR=Object.freeze([...eN,Object.freeze({key:"hasCongePaye",equals:!0})]),e$=Object.freeze([...eN,Object.freeze({key:"hasMultiEmployeur",equals:!0})]),eL=Object.freeze([...e$,Object.freeze({key:"modeCalculMulti",equals:"salaire"})]),eF=Object.freeze([...e$,Object.freeze({key:"modeCalculMulti",equals:"horaire"})]),ew=Object.freeze(Array.from({length:12},(e,t)=>String(t+1))),eJ=Object.freeze(Object.fromEntries(ew.map(e=>[eC[Number(e)].toLowerCase().normalize("NFD").replace(/[̀-ͯ]/g,""),e]))),eQ=(e,t,a,i=`${t} ?`)=>Object.freeze({key:e,type:"boolean",libelle:t,question:i,defaut:!1,requiredWhen:a}),eU=(e,t,a,i)=>Object.freeze({key:e,type:"date",libelle:t,question:i,facultatif:!0,requiredWhen:a});function eH(e){if(null==e)return{ok:!0,value:null};let t=(Array.isArray(e)?e:String(e).split(/\s*[;,\n]\s*/)).map(e=>String(e??"").replace(/[\s  ]/g,"")).filter(Boolean);if(0===t.length)return{ok:!0,value:null};let a=[];for(let e of t){if(!/^\d+(?:\.\d+)?$/.test(e)||0>=Number(e))return{ok:!1,error:`\xab ${e} \xbb n'est pas un montant : indiquez un nombre par employeur, s\xe9par\xe9s par des virgules (par exemple 1500, 800 ; les d\xe9cimales avec un point).`};a.push(Number(e))}return{ok:!0,value:a.join(", ")}}let eW=Object.freeze({id:"prorata-plafond",titre:"Prorata du plafond de la Sécurité sociale",verifier:function(e={}){for(let[t,a,i,r]of[["hasEntreeSortie","jourEntree","jourSortie","Entrée/Sortie"],["hasAbsence","jourDebutAbsence","jourFinAbsence","Absence"],["hasCongePaye","jourDebutConge","jourFinConge","Congés"]])if(!0===e[t]&&e[a]&&e[i]&&new Date(e[a])>
1new Date(e[i]))return{key:i,erreur:`${r} : la date de d\xe9but doit \xeatre ant\xe9rieure \xe0 la date de fin.`};return"nonmensualise"===e.typeSalarie&&e.jourDebutPaie&&e.jourFinPaie&&new Date(e.jourDebutPaie)>new Date(e.jourFinPaie)?{key:"jourFinPaie",erreur:"Période de paie : la date de début doit être antérieure à la date de fin."}:null},champs:Object.freeze([Object.freeze({key:"mois",type:"string",libelle:"Mois",question:"Pour quel mois ?",enum:ew,choix:Object.freeze(Object.fromEntries(ew.map(e=>[e,eC[Number(e)]]))),alias:eJ,section:"Période de calcul"}),eq(Object.keys(eO),{key:"annee",type:"string",libelle:"Année",question:"Pour quelle année ?",section:"Période de calcul"}),Object.freeze({key:"typeSalarie",type:"string",libelle:"Situation",question:"Quelle est la situation du salarié ?",enum:Object.freeze(["mensualise","nonmensualise","tempspartiel","multiemployeur"]),choix:Object.freeze({mensualise:"Salarié mensualisé à temps plein",nonmensualise:"Salarié non mensualisé",tempspartiel:"Salarié à temps partiel",multiemployeur:"Plafond multi-employeur"}),alias:Object.freeze({mensualise:"mensualise","temps plein":"mensualise","mensualise a temps plein":"mensualise","non mensualise":"nonmensualise","temps partiel":"tempspartiel",partiel:"tempspartiel","multi employeur":"multiemployeur","multi-employeur":"multiemployeur",multiemployeurs:"multiemployeur","plusieurs employeurs":"multiemployeur"}),section:"Type de salarié"}),Object.freeze({key:"heuresContrat",type:"number",libelle:"Heures contractuelles hebdomadaires",question:"Combien d’heures contractuelles par semaine ?",unite:"h",min:0,pas:.5,defaut:0,requiredWhen:eP,section:"Paramètres temps partiel"}),Object.freeze({key:"heuresComplementaires",type:"number",libelle:"Heures complémentaires (mensuelles)",question:"Combien d’heures complémentaires dans le mois ?",unite:"h",min:0,pas:.5,defaut:0,requiredWhen:eP,section:"Paramètres temps partiel"}),Object.freeze({key:"dureeLegale",type:"number",libelle:"Durée légale hebdomadaire",question:"Quelle durée légale hebdomadaire ? (35 heures par défaut)",aide:"Valeur par défaut : 35 heures",unite:"h",min:0,defaut:35,requiredWhen:eP,section:"Paramètres temps partiel"}),eQ("renonceAjustement","Le salarié a renoncé à l'ajustement du plafond",eP,"Le salarié a-t-il renoncé à l'ajustement du plafond ?"),Object.freeze({key:"periodicitePayee",type:"string",libelle:"Périodicité de la paie",question:"Quelle périodicité de paie ?",enum:Object.freeze(["hebdomadaire","quinzaine","autre"]),choix:Object.freeze({hebdomadaire:"Hebdomadaire",quinzaine:"À la quinzaine",autre:"Autre"}),alias:Object.freeze({hebdo:"hebdomadaire",semaine:"hebdomadaire","a la quinzaine":"quinzaine","quinze jours":"quinzaine"}),requiredWhen:eT,section:"Paramètres salarié non mensualisé"}),eU("jourDebutPaie","Début de période",eT,"Quelle est la date de début de la période de paie ?"),eU("jourFinPaie","Fin de période",eT,"Quelle est la date de fin de la période de paie ?"),eQ("payePiece","Salarié payé à la pièce pour une mission de plus de 15 jours",eT,"Le salarié est-il payé à la pièce pour une mission de plus de 15 jours ?"),eQ("hasEntreeSortie","Entrée/sortie en cours de mois",eN,"Y a-t-il une entrée ou une sortie en cours de mois ?"),eQ("hasAbsence","Suspension du contrat de travail (maladie, congé sans solde)",eN,"Y a-t-il une suspension du contrat de travail (maladie, congé sans solde) ?"),eQ("hasCongePaye","Caisse de congés payés",eN,"Le salarié relève-t-il d’une caisse de congés payés ?"),Object.freeze({...eQ("hasMultiEmployeur","Plafond multi-employeur",eN,"Faut-il un plafond multi-employeur ?"),force:Object.freeze({key:"typeSalarie",equals:"multiemployeur",valeur:!0})}),eU("jourEntree","Date d'entrée",eM,"Quelle est la date d'entrée ? (facultatif)"),eU("jourSortie","Date de sortie",eM,"Quelle est la date de sortie ? (facultatif)"),eU("jourDebutAbsence","Début d'absence",eI,"Quelle est la date de début d'absence ? (facultatif)"),eU("jourFinAbsence","Fin d'absence",eI,"Quelle est la date de fin d'absence ? (facultatif)"),eQ("maintienSalaire","Maintien de salaire pendant cette période",eI,"Le salaire est-il maintenu pendant cette période ?"),Object.freeze({key:"joursCarence",type:"number",libelle:"Jours de carence",question:"Combien de jours de carence ?",unite:"jours",min:0,defaut:0,requiredWhen:ek,section:"Suspension du contrat"}),eQ("indemniteIJSS","Versement d'indemnités complémentaires aux IJSS",eI,"Des indemnités complémentaires aux IJSS sont-elles versées ?"),eU("jourDebutConge","Début des congés",eR,"Quelle est la date de début des congés ? (facultatif)"),eU("jourFinConge","Fin des congés",eR,"Quelle est la date de fin des congés ? (facultatif)"),Object.freeze({key:"modeCalculMulti",type:"string",libelle:"Mode de calcul",question:"Au prorata des salaires ou des heures ?",enum:Object.freeze(["salaire","horaire"]),choix:Object.freeze({salaire:"Au prorata des salaires",horaire:"Au prorata des heures"}
1),alias:Object.freeze({salaires:"salaire","prorata des salaires":"salaire",heures:"horaire","prorata des heures":"horaire"}),defaut:"salaire",requiredWhen:e$,section:"Multi-employeur"}),Object.freeze({key:"salaireCourant",type:"number",libelle:"Salaire employeur actuel (€)",question:"Quel est le salaire chez l'employeur actuel, en euros ?",unite:"€",min:0,pas:.01,defaut:0,requiredWhen:eL,section:"Multi-employeur"}),Object.freeze({key:"salaireAutresStr",type:"string",libelle:"Salaires autres employeurs",question:"Quels salaires chez les autres employeurs ? (séparés par des virgules, par exemple 1500, 800)",aide:"Séparés par des virgules",facultatif:!0,maxLength:200,requiredWhen:eL,section:"Multi-employeur",lire:eH}),Object.freeze({key:"heuresCourant",type:"number",libelle:"Heures employeur actuel",question:"Combien d'heures chez l'employeur actuel ?",unite:"h",min:0,pas:.5,defaut:0,requiredWhen:eF,section:"Multi-employeur"}),Object.freeze({key:"heuresAutresStr",type:"string",libelle:"Heures autres employeurs",question:"Combien d’heures chez les autres employeurs ? (séparées par des virgules, par exemple 80, 40)",aide:"Séparées par des virgules",facultatif:!0,maxLength:200,requiredWhen:eF,section:"Multi-employeur",lire:eH})])});e.s(["SPEC_PRORATA_PLAFOND",0,eW],925095);let eV=Object.freeze({id:"taxe-salaires",titre:"Taxe sur les salaires",verifier:function(e={}){let t=function(e){for(let t of String(e??"").split(/\r?\n/).map(e=>e.trim()).filter(Boolean))if(!(t.includes("	")?t.split("	"):t.includes(";")?t.split(";"):t.includes(",")&&!/^\s*[\d\s]+,\d+\s*$/.test(t)?t.split(","):[t]).some(e=>{let t=String(e).replace(/\s+/g,"").replace(/[€$]/g,"").replace(",",".").trim();return""!==t&&/^-?\d+(?:\.\d+)?$/.test(t)}))return t;return null}(e.salaries);return null!==t?{key:"salaries",erreur:`R\xe9mun\xe9rations par salari\xe9 : la ligne \xab ${t.slice(0,40)}${t.length>40?"…":""} \xbb n'a pas de montant lisible. Un salari\xe9 par ligne : le montant, ou Nom ; montant (colonnes s\xe9par\xe9es par \xab ; \xbb).`}:null},champs:Object.freeze([Object.freeze({key:"annee",type:"string",libelle:"Année fiscale",question:"Pour quelle année fiscale (année de versement des salaires) ?",aide:"L'année de versement des salaires. La taxe est généralement payable l'année suivante.",enum:Object.freeze(["2026","2025","2024","2023"]),choix:Object.freeze({2026:"2026 (Confirmé)",2025:"2025",2024:"2024",2023:"2023"}),defaut:"2026",section:"Paramètres généraux"}),Object.freeze({key:"zone",type:"string",libelle:"Zone géographique",question:"Dans quelle zone géographique ?",aide:"Les taux sont différents en métropole et en outre-mer.",enum:Object.freeze(["metropole","guadeloupe","martinique","reunion","guyane","mayotte"]),choix:Object.freeze({metropole:"Métropole",guadeloupe:"Guadeloupe",martinique:"Martinique",reunion:"Réunion",guyane:"Guyane",mayotte:"Mayotte"}),alias:Object.freeze({metropole:"metropole",france:"metropole","la reunion":"reunion"}),defaut:"metropole",section:"Paramètres généraux"}),Object.freeze({key:"typeEmployeur",type:"string",libelle:"Type d'employeur",question:"Quel type d'employeur ?",aide:"Les associations, syndicats et fondations bénéficient d'un abattement sur le montant de la taxe (CGI art. 1679 A).",enum:Object.freeze(["standard","association"]),choix:Object.freeze({standard:"Employeur standard",association:"Association / Syndicat / Fondation"}),alias:Object.freeze({standard:"standard",entreprise:"standard",association:"association",syndicat:"association",fondation:"association"}),defaut:"standard",section:"Paramètres généraux"}),Object.freeze({key:"rapportTVA",type:"number",libelle:"Rapport d'assujettissement",question:"Quel rapport d'assujettissement, en % (recettes non soumises à TVA sur le total des recettes) ?",aide:"Pourcentage des recettes NON soumises à TVA sur le total des recettes.",unite:"%",min:0,max:100,defaut:100,section:"Paramètres généraux"}),Object.freeze({key:"assietteMode",type:"string",libelle:"Saisie de l'assiette",question:"Comment renseigner l'assiette de chaque salarié ?",enum:Object.freeze(["direct","detailed"]),choix:Object.freeze({direct:"Saisir l'assiette TS",detailed:"Calculer (Brut + PP mutuelle…)"}),alias:Object.freeze({direct:"direct",assiette:"direct",detailed:"detailed",detaille:"detailed",calculer:"detailed",brut:"detailed"}),defaut:"direct",section:"Rémunérations par salarié (assiette TS)"}
1),Object.freeze({key:"salaries",type:"string",libelle:"Rémunérations par salarié (assiette TS)",question:e=>e?.assietteMode==="detailed"?"Les salariés, un par ligne : Brut ; PP mutuelle ; PP prévoyance ; PP retraite supplémentaire ; Indemnités imposables (nom facultatif en premier). Par exemple : 35000 ; 800 ; 300 ; 1500 ; 0":"Les salariés, un par ligne : l'assiette taxe sur les salaires (nom facultatif en premier). Par exemple : 35000 ou Nom du salarié ; 35000",aide:"Un salarié par ligne, nom facultatif en premier ; colonnes séparées par « ; », une tabulation ou une virgule.",maxLength:6e3,section:"Rémunérations par salarié (assiette TS)"})])});e.s(["SPEC_TAXE_SALAIRES",0,eV],607789);let eG=Object.freeze([{n:1,libelle:"1ère année"},{n:2,libelle:"2ème année"},{n:3,libelle:"3ème année"}]),eB=/^(0[1-9]|1[0-2])\/\d{4}$/,eY=Object.freeze({id:"apprentis",titre:"Salaire minimum des apprentis",verifier:function(e={}){if(e.startDate&&e.endDate&&String(e.endDate)<=String(e.startDate))return{key:"endDate",erreur:"La date de fin ne peut être antérieure ou égale à la date de début"};for(let{n:t,libelle:a}of eG){let i=e[`period${t}`];if(i&&!eB.test(String(i).trim()))return{key:`period${t}`,erreur:`${a} : indiquez la p\xe9riode au format MM/AAAA.`}}return null},champs:Object.freeze([Object.freeze({key:"idcc",type:"idcc",libelle:"Convention collective",question:"Quelle convention collective ? (numéro IDCC, ou « aucune » — applique la grille apprentis spécifique si elle existe)",aide:"Optionnel — applique la grille apprentis spécifique si elle existe.",facultatif:!0}),Object.freeze({key:"signatureDate",type:"date",libelle:"Date de signature",question:"Quelle est la date de signature du contrat ?"}),Object.freeze({key:"startDate",type:"date",libelle:"Date début du contrat",question:"Quelle est la date de début du contrat ?"}),Object.freeze({key:"endDate",type:"date",libelle:"Date fin de contrat",question:"Quelle est la date de fin du contrat ?"}),Object.freeze({key:"age",type:"number",libelle:"Âge de l'apprenti au début du contrat",question:"Quel est l'âge de l'apprenti au début du contrat (16 à 29 ans) ?",unite:"ans",min:16,max:29,entier:!0}),...eG.flatMap(({n:e,libelle:t})=>[Object.freeze({key:`period${e}`,type:"string",libelle:t,question:`${t} : \xe0 partir de quel mois (MM/AAAA) ? Laissez vide pour la d\xe9duire des dates du contrat.`,aide:"Rempli d'après les dates du contrat (MM/AAAA)",facultatif:!0,maxLength:7,section:"Années du contrat"}),Object.freeze({key:`majoration${e}`,type:"boolean",libelle:"Majoration 15%",question:`${t} : majoration de 15 % ?`,defaut:!1,section:"Années du contrat"})]),Object.freeze({key:"previousPercentage",type:"number",libelle:"Pourcentage du contrat d'apprentissage précédent",question:"Quel pourcentage du SMIC percevait l'apprenti dans son contrat précédent ? (0 s'il n'y en a pas)",unite:"%",min:0,max:100,defaut:0})])});e.s(["PERIODE_VALIDE",0,eB,"SPEC_APPRENTIS",0,eY],83455);let eX=[{value:.07,label:"7 % — Ouvriers du bâtiment (2026)"},{value:.03,label:"3 % — Propreté (2026)"},{value:.05,label:"5 % — Casinos et cercles de jeux (2026, base 8 %)"},{value:.16,label:"16 % — Spectacle vivant, ancien taux 20 % (2026)"},{value:.17,label:"17 % — Transport routier de marchandises (2026)"},{value:.18,label:"18 % — Spectacle vivant, ancien taux 25 % (2026)"},{value:.24,label:"24 % — VRP, journalistes (2026)"},{value:.26,label:"26 % — Aviation civile (2026)"}];function eK(e){return""===e||null==e?0:parseFloat(String(e).replace(",",".").replace(/\s/g,""))||0}e.s(["P",0,1.75,"RGDU_RUNTIME_VALIDATED",0,!0,"SEUIL",0,3,"SMIC_HORAIRE_2026",0,12.02,"TAUX_DFS_OPTIONS",0,eX,"TMIN",0,.02,"calculerCoefficient",0,function(e,t,a,i){if(t<=0||e<=0||t>=3*e||!Number.isFinite(i)||i<=.02)return 0;let r=.02+(i-.02)*Math.pow(Math.max(.5*(e/t*3-1),0),1.75);return r=Math.min(r,i),a&&(r=100/90*r),Math.round(1e4*r)/1e4},"calculerTMax",0,function(e,t,a){let i=(28.91+(null==t||""===t?.49:Math.min(eK(t),.49))+.3+("sup50"===e?.5:.1)+(null==a||""===a?6.01:Math.min(eK(a),6.01))+4)/100;return Math.round(1e4*Math.min(.02+("sup50"===e?.3821:.3781),i))/1e4},"parseVal",0,eK],63619);let eZ=Object.freeze(["Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre"]),e0=Object.freeze(eZ.map((e,t)=>String(t))),e1=e=>e.toLowerCase().normalize("NFD").replace(/[̀-ͯ]/g,""),e2=e=>/^[aeiouy]/i.test(e1(e))?`d'${e.toLowerCase()}`:`de ${e.toLowerCase()}`,e5=Object.freeze([Object.freeze({key:"hasDFS",equals:!0})]),e9=e=>Object.freeze([Object.freeze({key:"moisEnCours",in:Object.freeze(e0.slice(e))})]),e3=Object.freeze({id:"fillon",titre:"Contrôle de la réduction générale (RGDU)",champs:Object.freeze([Object.freeze({key:"effectif",type:"string",libelle:"Taux FNAL applicable",question:"Quel taux FNAL appliquez-vous ?",aide:"Le taux de FNAL que vous appliquez réellement.",precision:"Le critère légal est le taux de la contribution FNAL (L.813-5 CSS), pas l’effectif brut : 0,10 % en dessous de 50 salariés, 0,50 % à partir de 50 salariés — avec la neutralisation de 5 ans au franchissement du seuil (L.130-1). Choisissez le taux que vous appliquez réellement.",enum:Object.freeze(["sup50","inf50"]),choix:Object.freeze({sup50:"FNAL 0,50 % (50 salariés et plus)",inf50:"FNAL 0,10 % (moins de 50 salariés)"}),alias:Object.freeze({"0,50":"sup50","0.50":"sup50","0,5":"sup50","plus de 50":"sup50","50 et plus":"sup50",plus_50:"sup50","0,10":"inf50","0.10":"inf50","0,1":"inf50","moins de 50":"inf50",moins_50:"inf50"}),defaut:"sup50",section:"Paramètres"}),Object.freeze({key:"heuresHebdo",type:"number",libelle:"Heures contractuelles (hebdo)",question:"Combien d’heures contractuelles par semaine ?",unite:"h",min:0,pas:.5,defaut:35,section:"Paramètres"}),Object.freeze({key:"moisEnCours",type:"string",libelle:"Mois en cours",question:"Quel est le mois en cours (celui dont on calcule la réduction) ?",enum:e0,choix:Object.freeze(Object.fromEntries(e0.map(e=>[e,eZ[Number(e)]]))),alias:Object.freeze(Object.fromEntries(e0.map(e=>[e1(eZ[Number(e)]),e]))),defaut:"3",section:"Paramètres"}),Object.freeze({key:"caisseCP",type:"string",libelle:"Caisse de congés payés ?",question:"Les congés payés sont-ils versés par une caisse de congés payés (BTP, spectacle, transport…) ?",aide:"Si oui, le coefficient est majoré × 100/90.",precision:"Secteurs BTP, spectacle, transport : le coefficient est majoré × 100/90 car les CP sont versés par une caisse externe.",enum:Object.freeze(["non","oui"]),choix:Object.freeze({non:"Non",oui:"Oui (BTP, spectacle, transport...)"}),alias:Object.freeze({oui:"oui",non:"non",caisse:"oui"}),defaut:"non",section:"Paramètres"}),Object.freeze({key:"hasDFS",type:"boolean",libelle:"Déduction Forfaitaire Spécifique (DFS) ?",question:"Une déduction forfaitaire spécifique (DFS) s’applique-t-elle ?",aide:"Abattement pour frais professionnels de certaines professions (BTP, transport, journalistes, VRP).",precision:"Abattement sur le brut pour frais professionnels. Concerne certaines professions (BTP, transport, journalistes, VRP…), à des taux qui baissent chaque année jusqu’à extinction (taux 2026 proposés). Sur l’année, la réduction avec DFS est plafonnée à 130 % de celle sans DFS.",defaut:!1,section:"Paramètres"}),Object.freeze({key:"tauxDFS",type:"string",libelle:"Taux de DFS",question:"Quel taux de DFS ?",aide:"Plafond : sur l’année, la réduction avec DFS ne peut dépasser 130 % de la réduction sans DFS (cumul depuis janvier)",enum:Object.freeze(eX.map(e=>String(e.value))),choix:Object.freeze(Object.fromEntries(eX.map(e=>[String(e.value),e.label]))),alias:Object.freeze({3:"0.03","3%":"0.03",5:"0.05","5%":"0.05",7:"0.07","7%":"0.07",16:"0.16","16%":"0.16",17:"0.17","17%":"0.17",18:"0.18","18%":"0.18",24:"0.24","24%":"0.24",26:"0.26","26%":"0.26",vrp:"0.24",journaliste:"0.24",btp:"0.07"}),defaut:String(eX[0].value),requiredWhen:e5,section:"Paramètres"}),Object.freeze({key:"tauxATMP",type:"number",libelle:"Taux AT/MP notifié (%)",question:"Quel taux AT/MP notifié, en % ? (retenu au plus 0,49 %)",aide:"Retenu au plus 0,49 %.",precision:"Art. D.241-7 III : T est fixé par décret (Tmin + Tdelta) mais il est réduit lorsque la somme des taux réellement à la charge de l’employeur est plus basse — le taux AT/MP n’est retenu que dans la limite de 0,49 %.",unite:"%",min:0,max:.49,pas:.01,defaut:.49,section:"Paramètres"}),Object.freeze({key:"tauxRetraite",type:"number",libelle:"Retraite complémentaire patronale (%)",question:"Quel taux patronal de retraite complémentaire, en % ? (retenu au plus 6,01 %)",aide:"Retenu au plus 6,01 %.",precision:"AGIRC-ARRCO (4,72 %) + CEG (1,29 %) = 6,01 % au plus. Un taux plus bas rédu
1it T d’autant (D.241-7 III).",unite:"%",min:0,max:6.01,pas:.01,defaut:6.01,section:"Paramètres"}),...eZ.flatMap((e,t)=>{let a,i;return a=eZ[t],i=[Object.freeze({key:`brut${t}`,type:"number",libelle:`Brut ${e2(a)}`,question:`Quelle est la r\xe9mun\xe9ration brute ${e2(a)}, en euros ?`,aide:0===t?"Rémunération brute soumise à cotisations sociales. La réduction s'applique jusqu'à 3 SMIC.":void 0,unite:"€",min:0,pas:.01,requiredWhen:e9(t),section:"Saisie et validation mensuelle"}),Object.freeze({key:`fraisPro${t}`,type:"number",libelle:`Frais pro ${e2(a)}`,question:`Quels frais professionnels ${e2(a)}, en euros ? (0 s'il n'y en a pas)`,unite:"€",min:0,pas:.01,defaut:0,requiredWhen:Object.freeze([...e5,...e9(t)]),section:"Saisie et validation mensuelle"}),Object.freeze({key:`smicFillon${t}`,type:"number",libelle:`SMIC Fillon ${e2(a)}`,question:`Quel SMIC Fillon ${e2(a)}, en euros ? (vide : SMIC horaire \xd7 heures mensuelles ; sinon le SMIC proratis\xe9 du mois, absence ou entr\xe9e/sortie comprises, heures sup ajout\xe9es)`,aide:0===t?"Vide : SMIC horaire × heures mensuelles. Sinon le SMIC personnalisé du mois (absence, entrée/sortie, heures sup).":void 0,unite:"€",min:0,pas:.01,facultatif:!0,requiredWhen:e9(t),section:"Saisie et validation mensuelle"}),Object.freeze({key:`reductionAppliquee${t}`,type:"number",libelle:`R\xe9duction appliqu\xe9e ${e2(a)}`,question:`Quelle r\xe9duction a r\xe9ellement \xe9t\xe9 appliqu\xe9e ${e2(a)}, en euros ? (vide : la r\xe9duction calcul\xe9e)`,aide:0===t?"Vide : la réduction calculée. Sinon la réduction réellement passée en paie (l’écart est régularisé sur le mois en cours).":void 0,unite:"€",min:0,pas:.01,facultatif:!0,requiredWhen:t<11?Object.freeze([Object.freeze({key:"moisEnCours",in:Object.freeze(e0.slice(t+1))})]):void 0,section:"Saisie et validation mensuelle"})],t<11?i:i.slice(0,3)})])});e.s(["MOIS_NOMS_FILLON",0,eZ,"SPEC_FILLON",0,e3],944361);let e4=Object.freeze([Object.freeze({key:"tempsPartiel",equals:!0})]),e6=Object.freeze([Object.freeze({key:"contrat",equals:"CDD"})]),e7=Object.freeze([Object.freeze({key:"contrat",equals:"apprentissage"})]),e8=Object.freeze([Object.freeze({key:"contrat",equals:"professionnalisation"})]),te=Object.freeze([Object.freeze({key:"dfs",equals:!0})]),tt=Object.freeze([Object.freeze({key:"impotMethode",equals:"taux personnalisé"})]),ta=(e,t,a,{defaut:i=!1,requiredWhen:r,section:n}={})=>Object.freeze({key:e,type:"boolean",libelle:t,question:a,defaut:i,...r?{requiredWhen:r}:{},section:n}),ti=Object.freeze({id:"calcul-brut-net",titre:"Bulletin de paie — brut, net et coût employeur",champs:Object.freeze([Object.freeze({key:"variableEntree",type:"string",libelle:"Je connais...",question:"Quel montant connaissez-vous ?",enum:Object.freeze(["brut","netAvant","netApres","coutEmployeur"]),choix:Object.freeze({brut:"Le salaire brut",netAvant:"Le net avant impôt",netApres:"Le net après impôt",coutEmployeur:"Le coût employeur"}),alias:Object.freeze({brut:"brut","salaire brut":"brut",net:"netAvant","net avant impot":"netAvant","net apres impot":"netApres","net a payer":"netApres","cout employeur":"coutEmployeur","cout total":"coutEmployeur"}),defaut:"brut",section:"Rémunération"}),Object.freeze({key:"montantEntree",type:"number",libelle:"Montant (€/mois)",question:"Quel est ce montant, en euros par mois ?",unite:"€",min:0,pas:50,defaut:2500,section:"Rémunération"}),Object.freeze({key:"contrat",type:"string",libelle:"Type de contrat",question:"Quel type de contrat ?",enum:Object.freeze(["CDI","CDD","apprentissage","professionnalisation","stage"]),choix:Object.freeze({CDI:"CDI",CDD:"CDD",apprentissage:"Apprentissage",professionnalisation:"Professionnalisation",stage:"Stage"}),alias:Object.freeze({cdi:"CDI",cdd:"CDD",apprenti:"apprentissage","contrat pro":"professionnalisation",pro:"professionnalisation",stagiaire:"stage"}),defaut:"CDI",section:"Contrat de travail"}),ta("statutCadre","Statut cadre","Le salarié est-il cadre ?",{section:"Contrat de travail"}),ta("tempsPartiel","Temps partiel","Le salarié est-il à temps partiel ?",{section:"Contrat de travail"}),Object.freeze({key:"quotite",type:"number",libelle:"Quotité (%)",question:"Quelle quotité de temps de travail, en % ?",unite:"%",min:10,max:100,defaut:100,requiredWhen:e4,section:"Contrat de travail"}),Object.freeze({key:"cddDuree",type:"number",libelle:"Durée du contrat (mois)",question:"Quelle est la durée du CDD, en mois ?",unite:"mois",min:1,max:36,defaut:6,requiredWhen:e6,section:"Contrat de travail"}),ta("cddPrecarite","Indemnité de fin de contrat (10%)","Une indemnité de fin de contrat (10 %) est-elle due ?",{defaut:!0,requiredWhen:e6,section:"Contrat de travail"}),Object.freeze({key:"apprentiAnciennete",type:"string",libelle:"Ancienneté dans le contrat",question:"Quelle année du contrat d'apprentissage ?",enum:Object.freeze(["moins d'un an","moins de deux ans","moins de trois ans","moins de quatre ans"]),choix:Object.freeze({"moins d'un an":"1ère année","moins de deux ans":"2ème année","moins de trois ans":"3ème année","moins de quatre ans":"4ème année"}),alias:Object.freeze({1:"moins d'un an","premiere annee":"moins d'un an",2:"moins de deux ans","deuxieme annee":"moins de deux ans",3:"moins de trois ans","troisieme annee":"moins de trois ans",4:"moins de quatre ans","quatrieme annee":"moins de quatre ans"}),defaut:"moins d'un an",requiredWhen:e7,section:"Contrat de travail"}),Object.freeze({key:"apprentiDiplome",type:"string",libelle:"Diplôme préparé",question:"Quel niveau de diplôme est préparé ?",enum:Object.freeze(["niveau bac ou moins","niveau supérieur au bac"]),choix:Object.freeze({"niveau bac ou moins":"Niveau bac ou moins","niveau supérieur au bac":"Niveau supérieur au bac"}),alias:Object.freeze({bac:"niveau bac ou moins","bac ou moins":"niveau bac ou moins","superieur au bac":"niveau supérieur au bac","post bac":"niveau supérieur au bac"}),defaut:"niveau supérieur au bac",requiredWhen:e7,section:"Contrat de travail"}),ta("proMoins30","Salarié de moins de 30 ans","Le salarié a-t-il moins de 30 ans ?",{defaut:!0,requiredWhen:e8,section:"Contrat de travail"}),ta("pro45Plus","Salarié de 45 ans et plus","Le salarié a-t-il 45 ans ou plus ?",{requiredWhen:e8,section:"Contrat de travail"}),Object.freeze({key:"heuresSupp",type:"number",libelle:"Heures supplémentaires (par mois)",question:"Combien d’heures supplémentaires par mois ?",unite:"h",min:0,max:50,defaut:0,section:"Temps de travail"}),Object.freeze({key:"heuresComp",type:"number",libelle:"Heures complémentaires (temps partiel)",question:"Combien d’heures complémentaires par mois (temps partiel) ?",unite:"h",min:0,max:50,defaut:0,section:"Temps de travail"}),Object.freeze({key:"tauxATMP",type:"number",libelle:"Taux AT/MP (%)",question:"Quel taux AT/MP, en % ?",unite:"%",min:.1,max:15,pas:.01,defaut:1.1,section:"Établissement"}),Object.freeze({key:"effectif",type:"number",libelle:"Effectif de l'entreprise (nombre de salariés)",question:"Quel est l'effectif de l'entreprise ?",aide:"Impact sur FNAL, versement mobilité, formation professionnelle...",unite:"salariés",min:1,max:1e4,entier:!0,defaut:10,section:"Établissement"}),ta("zfu","Zone Franche Urbaine (ZFU)","L'établissement est-il en zone franche urbaine (ZFU) ?",{section:"Établissement"}),ta("alsaceMoselle","Alsace-Moselle","Le régime Alsace-Moselle s’applique-t-il ?",{section:"Régimes spécifiques"}),ta("impatrie","Régime des impatriés","Le régime des impatriés s’applique-t-il ?",{section:"Régimes spécifiques"}),ta("dfs","Déduction Forfaitaire Spécifique (DFS)","Une déduction forfaitaire spécifique (DFS) s’applique-t-elle ?",{section:"Régimes spécifiques"}),Object.freeze({key:"dfsProfession",type:"string",libelle:"Profession DFS",question:"Quelle profession ouvre la DFS ?",enum:Object.freeze(["journaliste","ouvrier du bâtiment","artiste musicien","artiste dramatique","pilote de ligne ou personnel navigant","voyageur, représentant et placier"]),choix:Object.freeze({journaliste:"Journaliste","ouvrier du bâtiment":"Ouvrier du bâtiment","artiste musicien":"Artiste musicien","artiste dramatique":"Artiste dramatique","pilote de ligne ou personnel navigant":"Pilote / personnel navigant","voyageur, représentant et placier":"VRP"}),alias:Object.freeze({vrp:"voyageur, représentant et placier",batiment:"ouvr
1ier du bâtiment",pilote:"pilote de ligne ou personnel navigant",navigant:"pilote de ligne ou personnel navigant",musicien:"artiste musicien",comedien:"artiste dramatique"}),defaut:"journaliste",requiredWhen:te,section:"Régimes spécifiques"}),Object.freeze({key:"convention",type:"string",libelle:"Convention applicable",question:"Quelle convention collective, parmi celles du modèle ?",enum:Object.freeze(["droit commun","HCR","BTP","sport","SVP","optique","compta"]),choix:Object.freeze({"droit commun":"Droit commun",HCR:"HCR - Hôtels, cafés, restaurants",BTP:"BTP - Bâtiment",sport:"Sport",SVP:"SVP - Spectacle vivant",optique:"Optique",compta:"Experts-comptables"}),alias:Object.freeze({"droit commun":"droit commun",aucune:"droit commun",hcr:"HCR","hotels cafes restaurants":"HCR",btp:"BTP",batiment:"BTP",sport:"sport",svp:"SVP",spectacle:"SVP",optique:"optique",compta:"compta","experts comptables":"compta"}),defaut:"droit commun",section:"Convention collective"}),Object.freeze({key:"impotMethode",type:"string",libelle:"Méthode de calcul",question:"Quelle méthode pour le prélèvement à la source ?",enum:Object.freeze(["taux neutre","taux personnalisé"]),choix:Object.freeze({"taux neutre":"Taux neutre (barème)","taux personnalisé":"Taux personnalisé"}),alias:Object.freeze({neutre:"taux neutre",bareme:"taux neutre",personnalise:"taux personnalisé",perso:"taux personnalisé"}),defaut:"taux neutre",section:"Prélèvement à la source"}),Object.freeze({key:"tauxPerso",type:"number",libelle:"Taux personnalisé (%)",question:"Quel taux personnalisé, en % ?",unite:"%",min:0,max:45,pas:.1,defaut:0,requiredWhen:tt,section:"Prélèvement à la source"})])});e.s(["SPEC_BRUT_NET",0,ti],572042)},862981,e=>{"use strict";e.s(["dateDuJour",()=>l,"dateFr",()=>n,"dateIso",()=>r,"echapper",()=>d,"enTeteDepuisSpec",()=>c,"enTeteHtml",()=>p,"formatEuro",()=>a,"formatNombre",()=>i,"joursEntre",()=>u,"ligneHtml",()=>m,"moisDuJour",()=>s,"moisEnClair",()=>o]);var t=e.i(615277);function a(e,t=2){return new Intl.NumberFormat("fr-FR",{style:"currency",currency:"EUR",minimumFractionDigits:t,maximumFractionDigits:t}).format(Number(e)||0)}function i(e,t=2){return new Intl.NumberFormat("fr-FR",{minimumFractionDigits:t,maximumFractionDigits:t}).format(Number(e)||0)}function r(e){let t=String(e??"").trim().match(/^(\d{4})-(\d{2})-(\d{2})$/);if(!t)return null;let[a,i,r]=[t[1],t[2],t[3]].map(Number),n=new Date(Date.UTC(a,i-1,r));return n.getUTCFullYear()!==a||n.getUTCMonth()!==i-1||n.getUTCDate()!==r?null:n}function n(e){let t=e instanceof Date?e:r(e);if(!t||Number.isNaN(t.getTime()))return String(e??"");let a=e=>String(e).padStart(2,"0"),[i,n,l]=e instanceof Date?[t.getFullYear(),t.getMonth()+1,t.getDate()]:[t.getUTCFullYear(),t.getUTCMonth()+1,t.getUTCDate()];return`${a(l)}/${a(n)}/${i}`}function l(e=new Date){let t=e=>String(e).padStart(2,"0");return`${e.getFullYear()}-${t(e.getMonth()+1)}-${t(e.getDate())}`}function s(e=new Date){return l(e).slice(0,7)}function o(e){let t=String(e??"").match(/^(\d{4})-(\d{2})$/);return t?new Intl.DateTimeFormat("fr-FR",{month:"long",year:"numeric"}).format(new Date(Number(t[1]),Number(t[2])-1,1)):String(e??"")}function u(e,t){let a=r(e),i=r(t);return a&&i&&!(i<a)?Math.round((i.getTime()-a.getTime())/864e5)+1:NaN}function c(e,r={},l=new Date,{omettre:s=[]}={}){let o=new Set(s),u=(0,t.champsVisibles)(e,r).filter(e=>!o.has(e.key)).map(e=>({label:(0,t.texteDuChamp)(e.libelle,r),value:function(e,r){if(null==r||""===r)return e?.facultatif?"Non renseignée":"";if(Array.isArray(e?.enum)){let a=(0,t.choixDuChamp)(e).find(e=>e.valeur===String(r));return a?a.detail?`${a.libelle} (${a.detail})`:a.libelle:String(r)}if(e?.type==="boolean")return!0===r||"true"===r?"Oui":"Non";if(e?.type==="date")return n(r);if(e?.type==="number"){let t=Number(r);
1if(!Number.isFinite(t))return String(r);let n="€"===e.unite?a(t):i(t,2*!Number.isInteger(t));return e.unite&&"€"!==e.unite?`${n} ${e.unite}`:n}return String(r)}(e,r[e.key])})).filter(e=>""!==e.value);return u.push({label:"Date du calcul",value:n(l)}),{titre:e.titre,lignes:u}}function d(e){return String(e??"").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")}function m(e,t,a=""){let i=a?`<br><small>${d(a)}</small>`:"";return`<tr><td>${d(e)}${i}</td><td align="right">${d(t)}</td></tr>`}function p(e){return`<h1>${d(e.titre)}</h1>
2<table>${e.lignes.map(e=>m(e.label,e.value)).join("")}</table>`}},847375,422207,e=>{"use strict";e.s(["JOURS_SEMAINE",()=>u,"NOMBRE_MAX_ABSENCES",()=>o,"NOMBRE_MAX_PALIERS",()=>s,"SPEC_MAINTIEN_SALAIRE",()=>y,"TITRE_MAINTIEN_SALAIRE",()=>a,"cleHeures",()=>c],847375);var t=e.i(862981);let a="Maintien de salaire",i=Object.freeze([Object.freeze({key:"regles",equals:"manuel"})]),r=Object.freeze([Object.freeze({key:"regles",equals:"convention"})]),n=Object.freeze([Object.freeze({key:"isProlongation",equals:!0})]),l=Object.freeze([...r,Object.freeze({key:"typeArret",notIn:Object.freeze(["at_mp"])})]),s=5,o=5,u=Object.freeze([Object.freeze({key:"lundi",libelle:"Lundi",defaut:7}),Object.freeze({key:"mardi",libelle:"Mardi",defaut:7}),Object.freeze({key:"mercredi",libelle:"Mercredi",defaut:7}),Object.freeze({key:"jeudi",libelle:"Jeudi",defaut:7}),Object.freeze({key:"vendredi",libelle:"Vendredi",defaut:7}),Object.freeze({key:"samedi",libelle:"Samedi",defaut:0}),Object.freeze({key:"dimanche",libelle:"Dimanche",defaut:0})]),c=e=>`heures${e.charAt(0).toUpperCase()}${e.slice(1)}`,d=Object.freeze({SICKNESS_NON_OCCUPATIONAL:"Maladie",NON_OCCUPATIONAL_ACCIDENT:"Accident de droit commun",COMMUTING_ACCIDENT:"Accident de trajet",OCCUPATIONAL_ACCIDENT:"Accident du travail",OCCUPATIONAL_DISEASE:"Maladie professionnelle"}),m=e=>Object.freeze(Array.from({length:s-e+1},(t,a)=>String(e+a)));function p(e){let t=Object.freeze([...i,Object.freeze({key:"nombrePaliers",in:m(e)})]);return[Object.freeze({key:`palier${e}Taux`,type:"number",libelle:`Palier ${e} — taux (%)`,question:`Palier ${e} : quel taux de maintien, en % du salaire ?`,unite:"%",min:0,max:100,requiredWhen:t,section:"Paliers de maintien"}),Object.freeze({key:`palier${e}Duree`,type:"number",libelle:`Palier ${e} — dur\xe9e (jours)`,question:`Palier ${e} : pendant combien de jours ?`,unite:"jours",min:1,requiredWhen:t,section:"Paliers de maintien"})]}function f(e){let t=Object.freeze([...r,Object.freeze({key:"nombreAbsencesAnterieures",in:Object.freeze(Array.from({length:o-e+1},(t,a)=>String(e+a)))})]),a="Absences déjà indemnisées sur douze mois";return[Object.freeze({key:`absence${e}Debut`,type:"date",libelle:`Arr\xeat ant\xe9rieur ${e} — d\xe9but`,question:`Arr\xeat ant\xe9rieur ${e} : quelle date de d\xe9but ?`,requiredWhen:t,section:a}),Object.freeze({key:`absence${e}Fin`,type:"date",libelle:`Arr\xeat ant\xe9rieur ${e} — fin`,question:`Arr\xeat ant\xe9rieur ${e} : quelle date de fin ?`,requiredWhen:t,section:a}),Object.freeze({key:`absence${e}Motif`,type:"string",libelle:`Arr\xeat ant\xe9rieur ${e} — motif`,question:`Arr\xeat ant\xe9rieur ${e} : quel motif ?`,enum:Object.freeze(Object.keys(d)),choix:d,defaut:"SICKNESS_NON_OCCUPATIONAL",requiredWhen:t,section:a}),Object.freeze({key:`absence${e}Rangs`,type:"string",libelle:`Arr\xeat ant\xe9rieur ${e} — rangs indemnis\xe9s`,question:`Arr\xeat ant\xe9rieur ${e} : quels rangs de jours ont \xe9t\xe9 indemnis\xe9s ? (par exemple 11, 12, 13)`,aide:"Ex. 11, 12, 13",maxLength:300,requiredWhen:t,section:a})]}let b=/^\d+(?:\s*,\s*\d+)*$/,y=Object.freeze({id:"maintien-salaire",titre:a,verifier:function(e={}){let a=(0,t.dateIso)(e.dateDebut),i=(0,t.dateIso)(e.dateFin);if(a&&i&&i<a)return{key:"dateFin",erreur:"La date de fin de l'arrêt est antérieure à sa date de début : vérifiez les deux dates."};if("number"==typeof e.salaireBrutMensuel&&e.salaireBrutMensuel<=0)return{key:"salaireBrutMensuel",erreur:"Le salaire brut mensuel doit être supérieur à 0."};
2if(!0===e.isProlongation&&a&&1!==a.getUTCDate())return{key:"isProlongation",erreur:"Une prolongation n'est possible que si l'arrêt commence le 1er du mois (l'arrêt initial couvre le mois précédent)."};let r=!0===e.isProlongation?(0,t.dateIso)(e.dateDebutArretInitial):a,n=(0,t.dateIso)(e.employmentStartDate);if(n&&r&&n>r)return{key:"employmentStartDate",erreur:"La date d'entrée dans l'entreprise est postérieure au premier jour de l'arrêt : vérifiez les dates."};if("string"==typeof e.moisPaie&&e.moisPaie&&!/^\d{4}-(0[1-9]|1[0-2])$/.test(e.moisPaie))return{key:"moisPaie",erreur:"Le mois de paie s’écrit AAAA-MM (par exemple 2026-09)."};let l=u.map(t=>e[c(t.key)]).filter(e=>"number"==typeof e);if(l.length===u.length&&0>=l.reduce((e,t)=>e+t,0))return{key:c("lundi"),erreur:"Indiquez au moins une heure de travail dans la semaine."};for(let a=1;a<=o;a+=1){let i=e[`absence${a}Rangs`];if("string"==typeof i&&i&&!b.test(i))return{key:`absence${a}Rangs`,erreur:`Arr\xeat ant\xe9rieur ${a} : indiquez les rangs indemnis\xe9s en nombres s\xe9par\xe9s par des virgules (par exemple 11, 12, 13).`};let r=(0,t.dateIso)(e[`absence${a}Debut`]),n=(0,t.dateIso)(e[`absence${a}Fin`]);if(r&&n&&n<r)return{key:`absence${a}Fin`,erreur:`Arr\xeat ant\xe9rieur ${a} : la fin est ant\xe9rieure au d\xe9but.`}}return a&&i&&Number.isNaN((0,t.joursEntre)(e.dateDebut,e.dateFin))?{key:"dateFin",erreur:"Les dates de l'arrêt sont illisibles : indiquez-les au format AAAA-MM-JJ."}:null},champs:Object.freeze([Object.freeze({key:"regles",type:"string",libelle:"Règles de maintien",question:"D'où viennent les règles de maintien de salaire ?",enum:Object.freeze(["manuel","convention"]),choix:Object.freeze({manuel:"Règles saisies (carence, paliers)",convention:"Règle publiée d’une convention collective"}),alias:Object.freeze({manuelles:"manuel",saisie:"manuel",saisies:"manuel",ccn:"convention",conventionnel:"convention",conventionnelle:"convention","convention collective":"convention"}),defaut:"manuel",section:"Paramètres de maintien de salaire"}),Object.freeze({key:"idcc",type:"idcc",libelle:"Convention collective",question:"Quelle convention collective (nom ou numéro IDCC) ?",aide:"Recherchez votre convention ; la règle publiée sera appliquée après saisie du contexte.",requiredWhen:r,section:"Consulter une convention collective"}),Object.freeze({key:"carenceEmployeur",type:"number",libelle:"Carence employeur (jours)",question:"Combien de jours de carence employeur ?",aide:"Valeur issue de votre accord ou saisie personnalisée.",unite:"jours",min:0,defaut:0,requiredWhen:i,section:"Paramètres de maintien de salaire"}),Object.freeze({key:"typeMaintien",type:"string",libelle:"Type de maintien",question:"Quel type de maintien ?",enum:Object.freeze(["brut","brut_limite_net","net"]),choix:Object.freeze({brut:"Maintien du brut",brut_limite_net:"Maintien du brut (limité à 100% du net)",net:"Maintien du net"}),defaut:"brut",requiredWhen:i,section:"Paramètres de maintien de salaire"}),Object.freeze({key:"nombrePaliers",type:"string",libelle:"Nombre de paliers",question:"Combien de paliers de maintien ?",enum:m(1),choix:Object.freeze(Object.fromEntries(m(1).map(e=>{let t;return[e,(t=Number(e),`${t} ${t>1?"paliers":"palier"}`)]}))),defaut:"1",requiredWhen:i,section:"Paliers de maintien"}),...p(1),...p(2),...p(3),...p(4),...p(5),Object.freeze({key:"salaireBrutMensuel",type:"number",libelle:"Salaire brut mensuel (€)",question:"Quel est le salaire brut mensuel, en euros ?",unite:"€",min:0,defaut:2500,section:"Informations salarié"}),Object.freeze({key:"ijssBrutJournalier",type:"number",libelle:"IJSS brutes journalières (€)",question:"Quel est le montant brut des IJSS par jour, en euros ?",aide:"Indemnités Journalières Sécurité Sociale",unite:"€",min:0,defaut:30,section:"Informations salarié"}),Object.freeze({key:"employmentStartDate",type:"date",libelle:"Date d'entrée dans l'entreprise",question:"Quelle est la date d'entrée dans l'entreprise ?",aide:"L'ancienneté est calculée au premier jour de l'arrêt initial.",section:"Informations salarié"}),Object.freeze({key:"typeArret",type:"string",libelle:"Nature de l'arrêt",question:"Quelle est la nature de l'arrêt ?",enum:Object.freeze(["maladie","accident_non_professionnel","accident_trajet","at_mp","maternite","paternite","adoption"]),choix:Object.freeze({maladie:"Maladie",accident_non_professionnel:"Accident de droit commun",accident_trajet:"Accident de trajet",at_mp:"Accident du travail / maladie professionnelle",maternite:"Maternité",paternite:"Paternité",adoption:"Adoption"}),alias:Object.freeze({at:"at_mp",mp:"at_mp","at mp":"at_mp","at/mp":"at_mp",accident_travail:"at_mp","accident du travail":"at_mp","accident de travail":"at_mp",maladie_pro:"at_mp","maladie professionnelle":"at_mp","maladie pro":"at_mp","accident non professionnel":"accident_non_professionnel","droit commun":"accident_non_professionnel",trajet:"accident_trajet"}),defaut:"maladie",section:"Informations salarié"}),Object.freeze({key:"subrogation",type:"boolean",libelle:"Subrogation employeur",question:"L'employeur est-il subrogé (il perçoit les IJSS à la place du salarié) ?",defaut:!0,section:"Informations salarié"}),Object.freeze({key:"isProlongation",type:"boolean",libelle:"Prolongation (arrêt initial antérieur)",question:"S'agit-il d'une prolongation d'un arrêt commencé avant ce mois ?",aide:"Possible seulement si l'arrêt commence le 1er du mois.",defaut:!1,section:"Informations salarié"}),Object.freeze({key:"dateDebutArretInitial",type:"date",libelle:"Date de début de l'arrêt initial",question:"Quel est le premier jour de l'arrêt initial ?",requiredWhen:n,section:"Prolongation"}),Object.freeze({key:"joursDejaMaintenus",type:"number",libelle:"Jours déjà maintenus (période précédente)",question:"Combien de jours ont déjà été maintenus sur la période précédente ?",unite:"jours",min:0,defaut:0,requiredWhen:n,section:"Prolongation"}),Object.freeze({key:"categorie",type:"string",libelle:"Catégorie conventionnelle",question:"Quelle est la catégorie conventionnelle du salarié (celle portée par le dossier) ?",maxLength:120,defaut:"ALL_EMPLOYEES",requiredWhen:r,section:"Contexte conventionnel et projections paie"}),Object.freeze({key:"certificateSubmissionDelayHours",type:"number",libelle:"Délai de remise du certificat (heures)",question:"Sous combien d’heures le certificat médical a-t-il été remis ?",unite:"heures",min:0,defaut:48,requiredWhen:r,section:"Contexte conventionnel et projections paie"}),Object.freeze({key:"careTerritory",type:"string",libelle:"Territoire des soins",question:"Où les s
2oins ont-ils lieu ?",enum:Object.freeze(["FRANCE","OTHER_EEC_COUNTRY"]),choix:Object.freeze({FRANCE:"France",OTHER_EEC_COUNTRY:"Autre pays de la CEE"}),defaut:"FRANCE",requiredWhen:r,section:"Contexte conventionnel et projections paie"}),Object.freeze({key:"medicalCertificateProvided",type:"boolean",libelle:"Certificat médical fourni",question:"Le certificat médical a-t-il été fourni ?",defaut:!0,requiredWhen:r,section:"Contexte conventionnel et projections paie"}),Object.freeze({key:"socialSecurityCovered",type:"boolean",libelle:"Prise en charge par la sécurité sociale",question:"Le salarié est-il pris en charge par la Sécurité sociale ?",defaut:!0,requiredWhen:r,section:"Contexte conventionnel et projections paie"}),Object.freeze({key:"salaireReference1",type:"number",libelle:"Salaire de référence 1 (€)",question:"Quel est le salaire brut de référence 1 (mois précédant l’arrêt), en euros ?",unite:"€",min:0,requiredWhen:r,section:"Salaires bruts de référence IJSS",intro:"Le calcul légal requiert les salaires bruts de référence, saisis séparément (un seul pour un accident du travail ou une maladie professionnelle)."}),Object.freeze({key:"salaireReference2",type:"number",libelle:"Salaire de référence 2 (€)",question:"Quel est le salaire brut de référence 2, en euros ?",unite:"€",min:0,requiredWhen:l,section:"Salaires bruts de référence IJSS"}),Object.freeze({key:"salaireReference3",type:"number",libelle:"Salaire de référence 3 (€)",question:"Quel est le salaire brut de référence 3, en euros ?",unite:"€",min:0,requiredWhen:l,section:"Salaires bruts de référence IJSS"}),Object.freeze({key:"priorNonPayableDaysConsumed",type:"number",libelle:"Jours initiaux non payables déjà consommés",question:"Combien de jours initiaux non payables ont déjà été consommés ?",unite:"jours",min:0,defaut:0,requiredWhen:r,section:"Salaires bruts de référence IJSS"}),Object.freeze({key:"priorPaidDaysInEntitlementWindow",type:"number",libelle:"Jours IJSS déjà payés dans la fenêtre légale",question:"Combien de jours d’IJSS ont déjà été payés dans la fenêtre légale ?",unite:"jours",min:0,defaut:0,requiredWhen:r,section:"Salaires bruts de référence IJSS"}),Object.freeze({key:"grossDailyReferenceEuros",type:"number",libelle:"Référence brute journalière (€)",question:"Quelle est la référence brute journalière projetée en paie, en euros ?",unite:"€",min:0,requiredWhen:r,section:"Projections nécessaires au complément employeur"}),Object.freeze({key:"employerFundedProvidentEuros",type:"number",libelle:"Prévoyance financée employeur (€)",question:"Quelle prévoyance financée par l’employeur faut-il déduire, en euros (0 si aucune) ?",unite:"€",min:0,defaut:0,requiredWhen:r,section:"Projections nécessaires au complément employeur"}),Object.freeze({key:"maximumEmployerComplementEuros",type:"number",libelle:"Complément maximal selon le net (€)",question:"Quel est le complément employeur maximal selon le net projeté, en euros ?",unite:"€",min:0,requiredWhen:r,section:"Projections nécessaires au complément employeur"}),Object.freeze({key:"nombreAbsencesAnterieures",type:"string",libelle:"Arrêts antérieurs déjà indemnisés",question:"Combien d’arrêts déjà indemnisés dans les douze derniers mois ?",enum:Object.freeze(["0","1","2","3","4","5"]),choix:Object.freeze({0:"Aucun",1:"1 arrêt antérieur",2:"2 arrêts antérieurs",3:"3 arrêts antérieurs",4:"4 arrêts antérieurs",5:"5 arrêts antérieurs"}),alias:Object.freeze({aucune:"0",aucun:"0",zero:"0"}),defaut:"0",requiredWhen:r,section:"Absences déjà indemnisées sur douze mois",intro:"Saisissez les rangs réellement indemnisés ; les autres jours ne sont pas comptés."}),...f(1),...f(2),...f(3),...f(4),...f(5),Object.freeze({key:"moisPaie",type:"string",libelle:"Mois de paie",question:"Pour quel mois de paie (AAAA-MM) ?",aide:"AAAA-MM, par exemple 2026-09",maxLength:20,defaut:()=>(0,t.moisDuJour)(),section:"Mois de simulation & période d'arrêt"}),Object.freeze({key:"dateDebut",type:"date",libelle:"Date de début",question:"Quelle est la date de début de l'arrêt ?",section:"Mois de simulation & période d'arrêt"}),Object.freeze({key:"dateFin",type:"date",libelle:"Date de fin",question:"Quelle est la date de fin de l'arrêt ?",section:"Mois de simulation & période d'arrêt"}),...u.map(e=>Object.freeze({key:c(e.key),type:"number",libelle:e.libelle,question:`Combien d'heures travaill\xe9es le ${e.libelle.toLowerCase()} ?`,unite:"h",min:0,max:24,defaut:e.defaut,section:"Horaires & méthode de calcul",intro:"Heures par jour de la semaine + régime des heures supplémentaires"})),Object.freeze({key:"regimeMajorationHS",type:"string",libelle:"Régime de majoration HS",question:"Quel régime de majoration des heures supplémentaires ?",enum:Object.freeze(["legal"]),choix:Object.freeze({legal:"Barème légal (25 % puis 50 %)"}),defaut:"legal",section:"Horaires & méthode de calcul"}),Object.freeze({key:"methodeCalculAbsence",type:"string",libelle:"Méthode de calcul de l'absence",question:"Comment valoriser l'absence ?",enum:Object.freeze(["heures_reelles","jours_calendaires"]),choix:Object.freeze({heures_reelles:"Heures réelles (recommandé)",jours_calendaires:"Jours calendaires (base 30e)"}),alias:Object.freeze({reel:"heures_reelles",reelles:"heures_reelles","heures reelles":"heures_reelles",calendaire:"jours_calendaires",calendaires:"jours_calendaires","jours calendaires":"jours_calendaires","30e":"jours_calendaires"}),defaut:"heures_reelles",section:"Horaires & méthode de calcul"})])}),h="Convertisseur Minutes ⇔ Centièmes",j=e=>"number"==typeof e&&Number.isFinite(e)?e:null,v=Object.freeze({id:"conversion-min-centieme",titre:h,verifier:function(e={}){let t=j(e.minutes),a=j(e.centiemes);return null===t&&null===a&&("minutes"in e||"centiemes"in e)?{key:"centiemes"in e?"minutes":"centiemes",erreur:"Indiquez les minutes ou les centièmes à convertir."}:null!==t&&null!==a?{key:"centiemes",erreur:"Indiquez soit les minutes, soit les centièmes : l’autre valeur est calculée."}:null},champs:Object.freeze([Object.freeze({key:"minutes",type:"number",libelle:"Minutes",question:"Combien de minutes à convertir en centièmes ? (laissez vide si vous partez des centièmes)",aide:"Ex: 45",min:0,facultatif:!0}),Object.freeze({key:"centiemes",type:"number",libelle:"Centièmes",question:"Combien de centièmes d’heure à convertir en minutes ? (laissez vide si vous partez des minutes)",aide:"Ex: 75",min:0,facultatif:!0})])});e.s(["SPEC_CONVERSION",0,v,"TITRE_CONVERSION",0,h],422207)},657149,e=>{"use strict";let t={PARTIE_FIXE:13.18,TAUX_SJR:.404,TAUX_MIN_SJR:.57,TAUX_MAX_SJR:.75,ALLOCATION_MIN:32.13,PMSS_2026:4005,PLAFOND_MENSUEL_SR:16020,SEUIL_DEGRESSIVITE_JOURNALIER:92.57,AGE_EXCLUSION_DEGRESSIVITE:55,TAUX_DEGRESSIVITE:.7,PLANCHER_DEGRESSIVITE:92.57,TAUX_RETRAITE_COMPLEMENTAIRE:.03,TAUX_CRDS:.005,ASSIETTE_CSG_CRDS:.9825,SMIC_JOURNALIER_BRUT:83.16},a=[{value:"exonere",label:"Exoneration (RFR faible)",taux:0},{value:"reduit",label:"Taux reduit (3,8 %)",taux:.038},{value:"normal",label:"Taux normal (6,2 %)",taux:.062}];e.s(["ARE_CONSTANTS",0,t,"ARE_TAUX_CSG_OPTIONS",0,a,"calculerARE",0,function({age:e,salaire:i,joursCalendaires:r,njtInput:n=null,tauxCsg:l="normal"}){let s,o,u=a.find(e=>e.value===l)||a[2];if(n&&n>0&&n<=r){let e=Math.min(r-n,.75*n);s=n+e,o="officiel"}else s=r,o="approximatif";let c=12*t.PLAFOND_MENSUEL_SR/365,d=i/s,m=Math.min(d,c),p=m*t.TAUX_SJR,f=t.PARTIE_FIXE+p;f=Math.max(f=Math.min(f=Math.max(f,m*t.TAUX_MIN_SJR),m*t.TAUX_MAX_SJR),t.ALLOCATION_MIN);let b=e<t.AGE_EXCLUSION_DEGRESSIVITE&&f>t.SEUIL_DEGRESSIVITE_JOURNALIER,y=b?Math.max(f*t.TAUX_DEGRESSIVITE,t.PLANCHER_DEGRESSIVITE):null,h=m*t.TAUX_RETRAITE_COMPLEMENTAIRE,j=f>=t.SMIC_JOURNALIER_BRUT,v=f*t.ASSIETTE_CSG_CRDS,g=j?v*u.taux:0,S=j&&"exonere"!==u.value?v*t.TAUX_CRDS:0,O=h+g
2+S;O=Math.max(O=Math.min(O,f-t.ALLOCATION_MIN),0);let C=f-O;return{age:e,joursCalendaires:r,diviseurSJR:s,modeSJR:o,njtInput:n,sjr:m,sjrBrut:d,sjrPlafond:c,sjrPlafonne:d>c,partiFixe:t.PARTIE_FIXE,partieVariable:p,montantBrutJournalier:f,montantMinimum:t.ALLOCATION_MIN,montantDegressif:y,degressiviteAppliquee:b,seuilDegressivite:t.SEUIL_DEGRESSIVITE_JOURNALIER,prelevementRetraiteComp:h,prelevementCSG:g,prelevementCRDS:S,prelevementsTotal:O,montantNetJournalier:C,tauxCsgLabel:u.label}}])},572184,e=>{"use strict";var t=e.i(657149);let a="ARE (Allocation Retour Emploi)",i=e=>53>Number(e)?2:3,r=Object.freeze({id:"are",titre:a,champs:Object.freeze([Object.freeze({key:"age",type:"number",libelle:"Votre âge :",question:"Quel est l’âge du salarié à la fin du contrat ?",min:16,max:100}),Object.freeze({key:"salaire",type:"number",libelle:e=>`Salaire total brut sur les ${i(e?.age||0)} derni\xe8res ann\xe9es :`,question:e=>e?.age?`Quel est le salaire total brut sur les ${i(e.age)} derni\xe8res ann\xe9es, en euros ?`:"Quel est le salaire total brut sur les 2 dernières années (3 à partir de 53 ans), en euros ?",unite:"€",min:1}),Object.freeze({key:"dateFin",type:"date",libelle:"Date de fin du dernier contrat de travail :",question:"Quelle est la date de fin du dernier contrat de travail ?"}),Object.freeze({key:"joursTravailles",type:"number",libelle:"Jours travaillés durant la période (optionnel) :",question:"Combien de jours travaillés durant la période ? (facultatif : laissez vide pour une estimation approximative)",aide:"Laissez vide pour une estimation approximative",min:1,facultatif:!0}),Object.freeze({key:"tauxCsg",type:"string",libelle:"Taux de CSG applicable :",question:"Quel taux de CSG s’applique ?",enum:Object.freeze(t.ARE_TAUX_CSG_OPTIONS.map(e=>e.value)),choix:Object.freeze(Object.fromEntries(t.ARE_TAUX_CSG_OPTIONS.map(e=>[e.value,e.label]))),alias:Object.freeze({exoneration:"exonere",exonere:"exonere","taux reduit":"reduit",reduit:"reduit","taux normal":"normal",normal:"normal"}),defaut:"normal"})])});e.s(["SPEC_ARE",0,r,"TITRE_ARE",0,a,"periodeAnneesARE",0,i])},502571,e=>{"use strict";let t=e=>Math.round(100*e)/100+0,a=(e,t,a)=>a<=0?0:t>=a?e:e*t/a;e.s(["CONFIG_REINTEGRATION",0,{2026:{pass:48060},2025:{pass:47100}},"calculerReintegrationMensuelle",0,function(e,i){let r={brut:0,santePat:0,prevPat:0,retPat:0,prevSal:0,santeSal:0,retSal:0,abondement:0},n={socPrev:0,socRetraite:0,fiscMutuelle:0,fiscPrev:0,fiscRetraite:0,fiscPrevSalarie:0,fiscRetraiteSalarie:0},l=[];e.forEach(e=>{r.brut+=Number(e.brut)||0,r.santePat+=Number(e.mutuelle)||0,r.prevPat+=Number(e.prevoyance)||0,r.retPat+=Number(e.retraite)||0,r.prevSal+=Number(e.prevoyanceSalarie)||0,r.santeSal+=Number(e.santeSalarie)||0,r.retSal+=Number(e.retraiteSalarie)||0,r.abondement+=Number(e.abondement)||0;let s=Math.min(.06*i+.015*r.brut,.12*i),o=Math.max(.05*i,.05*Math.min(r.brut,5*i)),u=t(Math.max(0,r.prevPat+r.santePat-s)),c=t(Math.min(r.retPat,Math.max(0,r.retPat+r.abondement-o))),d=r.brut+r.santePat,m=Math.min(.05*i+.02*d,.16*i),p=Math.max(0,.08*Math.min(d,8*i)-r.abondement),f=r.prevSal+r.santeSal+r.prevPat,b=r.retSal+r.retPat,y=Math.max(0,f-m),h=Math.max(0,b-p),j=t(r.santePat),v=a(y,r.prevPat,f),g=a(h,r.retPat,b),S=t(v),O=t(g),C=Math.max(0,t(y-v)),A=Math.max(0,t(h-g)),x=t(u-n.socPrev),_=t(c-n.socRetraite),z=t(j-n.fiscMutuelle),E=t(S-n.fiscPrev),D=t(O-n.fiscRetraite),q=t(C-n.fiscPrevSalarie),P=t(A-n.fiscRetraiteSalarie);l.push({socPrev:x,socRetraite:_,totalSociale:t(x+_),fiscMutuelle:z,fiscPrev:E,fiscRetraite:D,totalFiscale:t(z+E+D),fiscPrevSalarie:q,fiscRetraiteSalarie:P,totalNonDeductibleSalarie:t(q+P),plafondSocPrev:s,plafondSocRetraite:o,plafondFiscPrev:m,plafondFiscRetraite:p,cumulBrut:r.brut,remunerationFiscale:d,cumulPrevPP:r.prevPat,cumulRetraitePP:r.retPat,cumulMutuellePP:r.santePat,reintSocPrevCumul:u,reintSocRetraiteCumul:c,reintFiscMutuelleCumul:j,reintFiscPrevCumul:S,reintFiscRetraiteCumul:O,nonDeductiblePrevCumul:C,nonDeductibleRetraiteCumul:A}),n.socPrev=u,n.socRetraite=c,n.fiscMutuelle=j,n.fiscPrev=S,n.fiscRetraite=O,n.fiscPrevSalarie=C,n.fiscRetraiteSalarie=A});let s=l.length>0?l[l.length-1]:null,o=e=>s?s[e]:0;return{results:l,totals:{socPrev:o("reintSocPrevCumul"),socRetraite:o("reintSocRetraiteCumul"),totalSociale:t(o("reintSocPrevCumul")+o("reintSocRetraiteCumul")),fiscMutuelle:o("reintFiscMutuelleCumul"),fiscPrev:o("reintFiscPrevCumul"),fiscRetraite:o("reintFiscRetraiteCumul"),totalFiscale:t(o("reintFiscMutuelleCumul")+o("reintFiscPrevCumul")+o("reintFiscRetraiteCumul")),fiscPrevSalarie:o("nonDeductiblePrevCumul"),fiscRetraiteSalarie:o("nonDeductibleRetraiteCumul"),totalNonDeductibleSalarie:t(o("nonDeductiblePrevCumul")+o("nonDeductibleRetraiteCumul"))}}}])},685375,e=>{"use strict";var t=e.i(502571),a=e.i(707374);let i="Réintégration sociale et fiscale",r=Object.freeze(["Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre"]),n=Object.freeze([Object.freeze({key:"partSalariale",equals:!0})]),l=Object.freeze([Object.freeze({key:"abondementEpargneRetraite",equals:!0})]),s=Object.freeze([Object.freeze({cle:"brut",libelle:"Salaire brut",champ:"brut"}),Object.freeze({cle:"mutuelle",libelle:"Mutuelle PP",champ:"mutuelle"}),Object.freeze({cle:"prevoyance",libelle:"Prévoyance PP",champ:"prevoyance"}),Object.freeze({cle:"retraite",libelle:"Retraite sup. PP",champ:"retraite"}),Object.freeze({cle:"santeSalarie",libelle:"Mutuelle PS",champ:"santeSalarie",si:n}),Object.freeze({cle:"prevoyanceSalarie",libelle:"Prévoyance PS",champ:"prevoyanceSalarie",si:n}),Object.freeze({cle:"retraiteSalarie",libelle:"Retraite sup. PS",champ:"retraiteSalarie",si:n}),Object.freeze({cle:"abondement",libelle:"Abondement PER",champ:"abondement",si:l})]),o=(e,t)=>`${e}M${t}`,u=Object.freeze({id:"reintegration",titre:i,libellesHistoriques:Object.freeze(Object.fromEntries(r.map((e,t)=>[o("plafond",t+1),`${e} — Plafond SS`]))),champs:Object.freeze([(0,a.champAnnee)(Object.keys(t.CONFIG_REINTEGRATION),{key:"annee",type:"string",libelle:"Année",question:"Pour quelle année ?"}),Object.freeze({key:"partSalariale",type:"boolean",libelle:"Le salarié cotise aussi",question:"Le salarié paie-t-il aussi une part obligatoire de la mutuelle, de la prévoyance ou de la retraite supplémentaire du contrat collectif ?",aide:"Côté impôt, la limite porte sur le total des cotisations obligatoires, salarié compris (art. 83 CGI). Les versements volontaires sur un plan d’épargne retraite n’entrent pas ici.",defaut:!1,facultatif:!0}),Object.freeze({key:"abondementEpargneRetraite",type:"boolean",libelle:"Abondement à un plan d’épargne retraite",question:"L’employeur abonde-t-il un plan d’épargne retraite collectif (PERCO, PER collectif) ?",aide:"L’abondement exonéré compte dans la limite de la retraite supplémentaire (art. L.242-1 CSS et 83 CGI). Les cotisations de l’employeur à un PE
2R obligatoire se saisissent dans « Retraite sup. PP ».",defaut:!1,facultatif:!0}),...r.flatMap((e,t)=>s.map(e=>{var a;let i;return i=r[(a=t+1)-1],Object.freeze({key:o(e.cle,a),type:"number",libelle:`${i} — ${e.libelle}`,question:`${i} : ${e.libelle.toLowerCase()}, en euros ?`,unite:"€",min:0,defaut:0,...e.si?{requiredWhen:e.si}:{},section:i})}))])});e.s(["COLONNES_REINTEGRATION",0,s,"MOIS_REINTEGRATION",0,r,"SPEC_REINTEGRATION",0,u,"TITRE_REINTEGRATION",0,i,"cleCellule",0,o,"colonnesVisibles",0,function(e={}){return s.filter(t=>!t.si||t.si.every(t=>e[t.key]===t.equals))}])},807208,e=>{"use strict";let t=["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"];function a(e,t="exact"){return"up"===t?Math.ceil(e):"half"===t?Math.round(2*e)/2:Math.round(100*e)/100}function i(e,t,a={}){let r={};for(let e=1;e<=7;e++)r[String(e)]=0;let n=new Date(e,t,0).getDate();for(let i=1;i<=n;i++){let n=new Date(e,t-1,i);if(`${e}-${String(t).padStart(2,"0")}-${String(i).padStart(2,"0")}`in a)continue;let l=n.getDay(),s=0===l?7:l;r[String(s)]++}return r}function r(e){return a(e.normal+1.1*e.hs10+1.2*e.hs20+1.25*e.hs25+1.5*e.hs50,"exact")}function n(e){let t=new Date(e).getDay();return String(0===t?7:t)}e.s(["DAYS_LABELS",0,["Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi","Dimanche"],"MONTH_NAMES",0,t,"calculateAbsence",0,function(e,l,s,o,u,c={}){if(!s||0===s.length)return{total_deduction:0,nb_absences:0,calculation_detail:"Aucune absence sélectionnée"};let d=s.filter(e=>!(e in c));if(0===d.length)return{total_deduction:0,nb_absences:0,calculation_detail:"Aucune absence effective (les jours sélectionnés sont fériés)"};let m=new Date(Math.min(...d.map(e=>new Date(e).getTime()))),p=m.getMonth()+1,f=m.getFullYear(),b=t[p-1],y=s.length-d.length;if("average_days"===o){let t={};for(let[e,a]of Object.entries(u))t[String(e)]=a;let a=Object.values(t).filter(Boolean).length;if(0===a)return{total_deduction:0,nb_absences:0,calculation_detail:"Erreur : Aucun jour de travail configuré",daily_rate:0};let r=Math.round(52*a/12*100)/100,l=Math.round(e/r*100)/100,s=0;for(let e of d)t[n(e)]&&s++;let o=r-s,m=i(f,p,c),h=0;for(let[e,a]of Object.entries(m))t[e]&&(h+=a);h-=s;let j=s;s>6&&h>o&&(j=r-h);let v=Math.round(l*j*100)/100,g=["1. Calcul du taux journalier moyen :",`Jours travaill\xe9s par semaine : ${a} jours`,`Base mensuelle moyenne : ${r} jours (${a} \xd7 52 \xf7 12)`,`Taux journalier : ${e}€ \xf7 ${r} jours = ${l}€/jour`,""];return s>6?g.push("2. Vérification des jours travaillés :",`Jours d'absence th\xe9oriques : ${s} jours`,`Seuil th\xe9orique : ${o.toFixed(2)} jours`,`Jours r\xe9ellement travaill\xe9s en ${b} ${f} : ${h} jours`,""):g.push("2. Vérification des jours travaillés :","(Pas de vérification de seuil pour ≤ 6 jours d'absence)",""),y>0&&g.push(`Note : ${y} jour(s) f\xe9ri\xe9(s) exclu(s) du d\xe9compte`,""),g.push("3. Calcul de la déduction :",`Jours \xe0 d\xe9duire : ${j.toFixed(2)} jours`,`D\xe9duction : ${j.toFixed(2)} \xd7 ${l}€ = ${v}€`),{total_deduction:v,nb_absences:s,nb_feries:y,calculation_detail:g.join("\n"),daily_rate:l,method_label:"Jours moyens"}}if("real_days"===o){let t={};for(let[e,a]of Object.entries(u))t[String(e)]=a;let a=i(f,p,c),r=function(e,t,a,i){let r=0,n=new Date(e,t,0).getDate();for(let l=1;l<=n;l++){if(!(`${e}-${String(t).padStart(2,"0")}-${String(l).padStart(2,"0")}`in a))continue;let n=new Date(e,t-1,l).getDay();i[String(0===n?7:n)]&&r++}return r}(f,p,c,t),l=0;for(let[e,i]of Object.entries(t))i&&a[e]&&(l+=a[e]);if(0===l)return{total_deduction:0,nb_absences:0,calculation_detail:"Erreur : Aucun jour de travail dans ce mois",daily_rate:0};let s=Math.round(e/l*100)/100,o=0;for(let e of d)t[n(e)]&&o++;let m=Math.round(s*o*100)/100,h=["1. Calcul du taux journalier :",`Jours ouvr\xe9s en ${b} ${f} : ${l} jours${r>0?` (${r} f\xe9ri\xe9(s) exclu(s))`:""}`,`Taux journalier : ${e}€ \xf7 ${l} = ${s}€/jour`,""];return y>0&&h.push(`Note : ${y}
2 jour(s) f\xe9ri\xe9(s) exclu(s) des absences`,""),h.push("2. Calcul de la déduction :",`Jours d'absence effectifs : ${o} jours`,`D\xe9duction : ${o} \xd7 ${s}€ = ${m}€`),{total_deduction:m,nb_absences:o,nb_feries:y,calculation_detail:h.join("\n"),daily_rate:s,method_label:"Jours réels"}}if("average_hours"===o){let t,o=52/12,u={normal:0,hs10:0,hs20:0,hs25:0,hs50:0};for(let e of Object.values(l))for(let[t,i]of Object.entries(e))t in u&&(u[t]+=a(i,"exact"));let m=a(u.normal*o,"exact"),b=a(u.hs10*o,"exact"),h=a(u.hs20*o,"exact"),j=a(u.hs25*o,"exact"),v=a(u.hs50*o,"exact"),g=a(m+1.1*b+1.2*h+1.25*j+1.5*v,"exact");if(0===g)return{total_deduction:0,nb_absences:s.length,calculation_detail:"Erreur : Aucune heure configurée",hourly_rate:0};let S=Math.round(e/g*100)/100,O=i(f,p,c),C={};for(let e=1;e<=7;e++)C[String(e)]=0;for(let e of d)C[n(e)]++;let A={normal:0,hs10:0,hs20:0,hs25:0,hs50:0},x={normal:0,hs10:0,hs20:0,hs25:0,hs50:0};for(let[e,t]of Object.entries(l)){let i=(O[e]||0)-(C[e]||0);for(let[e,r]of Object.entries(t))e in x&&(x[e]+=a(r*i,"exact"));if(C[e]>0)for(let[i,r]of Object.entries(t))i in A&&(A[i]+=a(r*C[e],"exact"))}let _=r(A),z=r(x),E=g-_,D=d.length;if(D<=6||E>=z)t={...A};else{let e=Math.max(0,g-z);if(_>0&&e>0){let i=Math.min(e/_,1);t=Object.fromEntries(Object.entries(A).map(([e,t])=>[e,a(t*i,"exact")]))}else t={normal:0,hs10:0,hs20:0,hs25:0,hs50:0}}let q={normal:Math.round(t.normal*S*100)/100,hs10:Math.round(t.hs10*S*1.1*100)/100,hs20:Math.round(t.hs20*S*120)/100,hs25:Math.round(t.hs25*S*125)/100,hs50:Math.round(t.hs50*S*150)/100},P=Object.values(q).reduce((e,t)=>Math.round((e+t)*100)/100,0),T=["1. Calcul du taux horaire moyen mensuel :",`Mensualisation normale : ${m.toFixed(2)}h`,`Mensualisation HS 10% : ${b.toFixed(2)}h \xd7 1.10 = ${a(1.1*b,"exact").toFixed(2)}h`,`Mensualisation HS 20% : ${h.toFixed(2)}h \xd7 1.20 = ${a(1.2*h,"exact").toFixed(2)}h`,`Mensualisation HS 25% : ${j.toFixed(2)}h \xd7 1.25 = ${a(1.25*j,"exact").toFixed(2)}h`,`Mensualisation HS 50% : ${v.toFixed(2)}h \xd7 1.50 = ${a(1.5*v,"exact").toFixed(2)}h`,`Total pond\xe9r\xe9 : ${g.toFixed(2)}h`,`Taux horaire : ${e}€ \xf7 ${g.toFixed(2)}h = ${S.toFixed(2)}€/h`,"","2. Vérification :",`Heures d'absence th\xe9oriques : ${_.toFixed(2)}h`,`Reste th\xe9orique : ${E.toFixed(2)}h`,`Heures effectu\xe9es : ${z.toFixed(2)}h`,"","3. Résultat :",`Normales : ${t.normal.toFixed(2)}h \xd7 ${S.toFixed(2)}€ = ${q.normal.toFixed(2)}€`,`HS 10% : ${t.hs10.toFixed(2)}h \xd7 ${(1.1*S).toFixed(2)}€ = ${q.hs10.toFixed(2)}€`,`HS 20% : ${t.hs20.toFixed(2)}h \xd7 ${(1.2*S).toFixed(2)}€ = ${q.hs20.toFixed(2)}€`,`HS 25% : ${t.hs25.toFixed(2)}h \xd7 ${(1.25*S).toFixed(2)}€ = ${q.hs25.toFixed(2)}€`,`HS 50% : ${t.hs50.toFixed(2)}h \xd7 ${(1.5*S).toFixed(2)}€ = ${q.hs50.toFixed(2)}€`,`Total : ${P.toFixed(2)}€`];return y>0&&T.push("",`Note : ${y} jour(s) f\xe9ri\xe9(s) exclu(s) du d\xe9compte`),{total_deduction:P,nb_absences:D,nb_feries:y,calculation_detail:T.join("\n"),hourly_rate:S,monthly_hours:g,method_label:"Heures moyennes",normal_hours:t.normal,normal_deduction:q.normal,hs10_hours:t.hs10,hs10_deduction:q.hs10,hs20_hours:t.hs20,hs20_deduction:q.hs20,hs25_hours:t.hs25,hs25_deduction:q.hs25,hs50_hours:t.hs50,hs50_deduction:q.hs50}}if("real_hours"===o){let t=function(e,t,r,n={}){let l=i(e,t,n),s={normal:0,hs10:0,hs20:0,hs25:0,hs50:0};for(let[e,t]of Object.entries(l))if(r[e])for(let[a,i]of Object.entries(r[e]))a in s&&(s[a]+=i*t);return Object.fromEntries(Object.entries(s).map(([e,t])=>[e,a(t,"half")]))}(f,p,l,c),s=r(t);if(0===s)return{total_deduction:0,nb_absences:d.length,calculation_detail:"Erreur : Aucune heure configurée",hourly_rate:0};let o=Math.round(e/s*100)/100,u={normal:{hours:0,amount:0},hs10:{hours:0,amount:0},hs20:{hours:0,amount:0},hs25:{hours:0,amount:0},hs50:{hours:0,amount:0}},m={normal:1,hs10:1.1,hs20:1.2,hs25:1.25,hs50:1.5},h=0;for(let e of d){let t=n(e);if(l[t]){for(let[e,a]of Object.entries(l[t]))if(e in u){u[e].hours+=a;let t=Math.round(a*o*m[e]*100)/100;u[e].amount=Math.round((u[e].amount+t)*100)/100,h=Math.round((h+t)*100)/100}}}let j=e=>Object.values(l).reduce((t,a)=>t+(a[e]||0),0),v=[`1. Calcul du taux horaire r\xe9el de ${b} ${f} :`,`Normales : ${j("normal").toFixed(2)}h/sem → ${t.normal.toFixed(2)}h/mois`,`HS 10% : ${j("hs10").toFixed(2)}h \xd7 1.10 → ${a(1.1*t.hs10,"exact").toFixed(2)}h`,`HS 20% : ${j("hs20").toFixed(2)}h \xd7 1.20 → ${a(1.2*t.hs20,"exact").toFixed(2)}h`,`HS 25% : ${j("hs25").toFixed(2)}h \xd7 1.25 → ${a(1.25*t.hs25,"exact").toFixed(2)}h`,`HS 50% : ${j("hs50").toFixed(2)}h \xd7 1.50 → ${a(1.5*t.hs50,"exact").toFixed(2)}h`,`Total pond\xe9r\xe9 : ${s.toFixed(2)}h`,`Taux horaire : ${e}€ \xf7 ${s.toFixed(2)}h = ${o.toFixed(2)}€/h`,"","2. Heures d'absence :",`Normales : ${u.normal.hours.toFixed(2)}h \xd7 ${o.toFixed(2)}€ = ${u.normal.amount.toFixed(2)}€`,`HS 10% : ${u.hs10.hours.toFixed(2)}h \xd7 ${(1.1*o).toFixed(2)}€ = ${u.hs10.amount.toFixed(2)}€`,`HS 20% : ${u.hs20.hours.toFixed(2)}h \xd7 ${(1.2*o).toFixed(2)}€ = ${u.hs20.amount.toFixed(2)}€`,`HS 25% : ${u.hs25.hours.toFixed(2)}h \xd7 ${(1.25*o).toFixed(2)}€ = ${u.hs25.amount.toFixed(2)}€`,`HS 50% : ${u.hs50.hours.toFixed(2)}h \xd7 ${(1.5*o).toFixed(2)}€ = ${u.hs50.amount.toFixed(2)}€`];return y>0&&v.push("",`Note : ${y} jour(s) f\xe9ri\xe9(s) exclu(s) du d\xe9compte`),{total_deduction:h,nb_absences:d.length,nb_feries:y,calculation_detail
2:v.join("\n"),hourly_rate:o,monthly_hours:s,method_label:"Heures réelles",normal_hours:a(u.normal.hours,"exact"),normal_deduction:u.normal.amount,hs10_hours:a(u.hs10.hours,"exact"),hs10_deduction:u.hs10.amount,hs20_hours:a(u.hs20.hours,"exact"),hs20_deduction:u.hs20.amount,hs25_hours:a(u.hs25.hours,"exact"),hs25_deduction:u.hs25.amount,hs50_hours:a(u.hs50.hours,"exact"),hs50_deduction:u.hs50.amount}}return{total_deduction:0,nb_absences:0,calculation_detail:"Méthode non reconnue"}},"distributeOvertime",0,function(e,t){if(e<=35)return{normal:e,hs10:0,hs20:0,hs25:0,hs50:0};let a=e-35;return"type2"===t?{normal:35,hs10:Math.min(a,4),hs20:Math.min(Math.max(a-4,0),4),hs25:0,hs50:Math.max(a-8,0)}:{normal:35,hs10:0,hs20:0,hs25:Math.min(a,8),hs50:Math.max(a-8,0)}},"getFrenchHolidays",0,function(e){let t,a,i,r,n,l,s,o,u,c=(t=e%19,a=Math.floor(e/100),i=e%100,r=Math.floor(a/4),n=Math.floor((a+8)/25),l=Math.floor((a-n+1)/3),s=(19*t+a-r-l+15)%30,o=(32+a%4*2+2*Math.floor(i/4)-s-i%4)%7,u=Math.floor((t+11*s+22*o)/451),new Date(e,Math.floor((s+o-7*u+114)/31)-1,(s+o-7*u+114)%31+1)),d=(e,t)=>{let a=new Date(e);return a.setDate(a.getDate()+t),a},m=e=>`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`,p=d(c,1),f=d(c,39),b=d(c,50);return{[m(new Date(e,0,1))]:"Jour de l'An",[m(p)]:"Lundi de Pâques",[m(new Date(e,4,1))]:"Fête du Travail",[m(new Date(e,4,8))]:"Victoire 1945",[m(f)]:"Ascension",[m(b)]:"Lundi de Pentecôte",[m(new Date(e,6,14))]:"Fête nationale",[m(new Date(e,7,15))]:"Assomption",[m(new Date(e,10,1))]:"Toussaint",[m(new Date(e,10,11))]:"Armistice 1918",[m(new Date(e,11,25))]:"Noël"}},"roundHours",0,a])},970866,e=>{"use strict";var t=e.i(807208);let a="Calculateur des Absences",i=Object.freeze({real_hours:"Décompte en heures réelles",average_hours:"Décompte en heures moyennes",real_days:"Décompte en jours réels",average_days:"Décompte en jours moyens"}),r=Object.freeze(["real_hours","average_hours"]),n=Object.freeze(["real_days","average_days"]),l=Object.freeze([Object.freeze({key:"methode",in:r})]),s=Object.freeze([Object.freeze({key:"methode",in:n})]),o=Object.freeze(t.DAYS_LABELS.map((e,t)=>Object.freeze({numero:String(t+1),libelle:e,heures:7*(t<5),travaille:t<5}))),u=e=>e.normalize("NFD").replace(/[\u0300-\u036f]/g,""),c=e=>`heures${u(e.libelle)}`,d=e=>`travaille${u(e.libelle)}`,m=Object.freeze({id:"calculateur-absences",titre:a,verifier:function(e={}){return"number"==typeof e.salaire&&e.salaire<=0?{key:"salaire",erreur:"Le salaire mensuel brut doit être supérieur à 0."}:null},champs:Object.freeze([Object.freeze({key:"methode",type:"string",libelle:"Méthode de calcul",question:"Quelle méthode de décompte des absences ?",enum:Object.freeze(Object.keys(i)),choix:i,alias:Object.freeze({"heures reelles":"real_hours",reelles:"real_hours","heures moyennes":"average_hours","jours reels":"real_days",reels:"real_days","jours moyens":"average_days",moyens:"average_days"}),section:"Méthode de calcul",intro:"Sélectionnez la méthode de décompte des absences à appliquer."}),Object.freeze({key:"typeMajorationHS",type:"string",libelle:"Type de majoration des heures supplémentaires",question:"Quel type de majoration des heures supplémentaires ?",enum:Object.freeze(["type1","type2"]),choix:Object.freeze({type1:"25% (8h) puis 50%",type2:"10% (4h), 20% (4h) puis 50%"}),defaut:"type1",requiredWhen:l,section:"Méthode de calcul"}),Object.freeze({key:"salaire",type:"number",libelle:"Salaire mensuel brut (y compris HS et primes liées à l'absence)",question:"Quel est le salaire mensuel brut, heures supplémentaires et primes liées à l'absence comprises, en euros ?",aide:"Inclure le salaire de base, les heures supplémentaires habituelles, et les primes avec impact sur l'absence (13ème mois, ancienneté…). Exclure les remboursements de frais et primes exceptionnelles.",unite:"€",min:0,section:"Informations salariales"}),...o.map(e=>Object.freeze({key:c(e),type:"number",libelle:e.libelle,question:`Combien d'heures th\xe9oriques travaill\xe9es le ${e.libelle.toLowerCase()} ?`,unite:"h",min:0,max:24,defaut:e.heures,requiredWhen:l,section:"Heures hebdomadaires",intro:"Saisissez les heures théoriques travaillées chaque jour."})),...o.map(e=>Object.freeze({key:d(e),type:"boolean",libelle:e.libelle,question:`Le ${e.libelle.toLowerCase()} est-il habituellement travaill\xe9 ?`,defaut:e.travaille,requiredWhen:s,section:"Jours travaillés",intro:"Cochez les jours habituellement travaillés dans la semaine."})),Object.freeze({key:"joursAbsence",type:"dates",libelle:"Sélection des absences",question:"Quels sont les jours d'absence ? (dates AAAA-MM-JJ, séparées par des virgules)",aide:"Dates AAAA-MM-JJ, séparées par des virgules",section:"Sélection des absences",intro:"Cliquez sur les jours d'absence dans le calendrier."})])});e.s(["JOURS_ABSENCE",0,o,"METHODES_ABSENCE",0,i,"METHODES_EN_HEURES",0,r,"METHODES_EN_JOURS",0,n,"SPEC_CALCULATEUR_ABSENCES",0,m,"TITRE_CALCULATEUR_ABSENCES",0,a,"cleHeuresJour",0,c,"cleTravailleJour",0,d])},508900,e=>{"use strict";var t=e.i(522456);let a={maternite:{premier:{prenatal:6,postnatal:10,unit:"weeks"},deuxieme:{prenatal:6,postnatal:10,unit:"weeks"},troisieme:{prenatal:8,postnatal:18,unit:"weeks"},jumeaux:{prenatal:12,postnatal:22,unit:"weeks"},triples:{prenatal:24,postnatal:22,unit:"weeks"}},paternite:{premier:{prenatal:0,postnatal:25,unit:"days"},deuxieme:{prenatal:0,postnatal:25,unit:"days"},troisieme:{prenatal:0,postnatal:25,unit:"days"},jumeaux:{prenatal:0,postnatal:32,unit:"days"},triples:{prenatal:0,postnatal:32,unit:"days"}},adoption:{premier:{prenatal:0,postnatal:16,unit:"weeks"},deuxieme:{prenatal:0,postnatal:16,unit:"weeks"},troisieme:{prenatal:0,postnatal:18,unit:"weeks"},jumeaux:{prenatal:0,postnatal:22,unit:"weeks"},triples:{prenatal:0,postnatal:22,unit:"weeks"}}};function i(e){return 0!==e.getDay()&&!(0,t.joursFeriesFrance)(e.getFullYear()).has((0,t.isoLocal)(e))}function r(e){let t=new Date(e);for(;!i(t);)t.setDate(t.getDate()+1);return t}let n=e=>e.toLocaleDateString("fr-FR",{weekday:"long",day:"numeric",month:"long",year:"numeric"});function l(e,s,o=!1){let u=a.paternite?.[s];if(!u)return null;
2let c=new Date(e);if(Number.isNaN(c.getTime()))return null;let d=new Date(c);o&&d.setDate(d.getDate()+1);let m=r(d),p=function(e){let t=r(e),a=1;for(;a<3;)t.setDate(t.getDate()+1),i(t)&&a++;return t}(m),f=new Date(p);f.setDate(f.getDate()+1);let b=new Date(f);b.setDate(b.getDate()+3);let y=u.postnatal-4;return{startNextWorkingDay:o,birthLeave:{days:3,startDate:n(m),endDate:n(p),startISO:(0,t.isoLocal)(m),endISO:(0,t.isoLocal)(p)},mandatory:{days:4,startDate:n(f),endDate:n(b),startISO:(0,t.isoLocal)(f),endISO:(0,t.isoLocal)(b)},optionalDays:y,totalPaternity:u.postnatal}}e.s(["MAX_PRENATAL_REPORT_WEEKS",0,3,"calculateLeave",0,function(e,t,i,r=0){let n=a[e]?.[t];if(!n)return null;let s=new Date(i),o=n.prenatal-r,u=n.postnatal+r,c=new Date(s),d=new Date(s);"weeks"===n.unit?(c.setDate(c.getDate()-7*o),d.setDate(d.getDate()+7*u)):(c=new Date(s),d.setDate(d.getDate()+n.postnatal));let m=e=>e.toLocaleDateString("fr-FR",{day:"numeric",month:"long",year:"numeric"});return{prenatal:o,postnatal:u,originalPrenatal:n.prenatal,originalPostnatal:n.postnatal,prenatalReportWeeks:r,total:n.prenatal+n.postnatal,startDate:m(c),endDate:m(d),rawDueDate:s,leaveType:e,familySituation:t,unit:n.unit,periods:"paternite"===e?l(i,t,!1):null}},"calculatePaternityPeriods",0,l])},41908,488644,e=>{"use strict";var t=e.i(508900);let a="Durée Congé Maternité et Paternité",i=Object.freeze([Object.freeze({key:"typeConge",equals:"maternite"})]),r=Object.freeze([Object.freeze({key:"typeConge",equals:"paternite"})]),n=Object.freeze([Object.freeze({key:"typeConge",equals:"adoption"})]),l=Object.freeze({maternite:"Congé Maternité",paternite:"Congé Paternité et d'accueil",adoption:"Congé d'Adoption"}),s=Object.freeze({maternite:"Pour la mère salariée, périodes prénatale et postnatale",paternite:"Pour le père salarié ou conjoint(e), après la naissance",adoption:"Pour le parent adoptant, à compter de l'arrivée de l'enfant"}),o=Object.freeze({maternite:Object.freeze({premier:Object.freeze({libelle:"Premier ou deuxième enfant",detail:"16 semaines (6 prénatal + 10 postnatal)"}),troisieme:Object.freeze({libelle:"Troisième enfant et plus",detail:"26 semaines (8 prénatal + 18 postnatal)"}),jumeaux:Object.freeze({libelle:"Jumeaux",detail:"34 semaines (12 prénatal + 22 postnatal)"}),triples:Object.freeze({libelle:"Triplés ou plus",detail:"46 semaines (24 prénatal + 22 postnatal)"})}),paternite:Object.freeze({premier:Object.freeze({libelle:"Un enfant",detail:"25 jours calendaires"}),jumeaux:Object.freeze({libelle:"Jumeaux ou plus",detail:"32 jours calendaires"})}),adoption:Object.freeze({premier:Object.freeze({libelle:"1er ou 2e enfant adopté",detail:"16 semaines"}),troisieme:Object.freeze({libelle:"3e enfant adopté et plus",detail:"18 semaines"}),jumeaux:Object.freeze({libelle:"Adoption multiple",detail:"22 semaines"})})}),u=Object.freeze({maternite:"situationMaternite",paternite:"situationPaternite",adoption:"situationAdoption"}),c=Object.freeze({maternite:"Date d'accouchement prévue",paternite:"Date de naissance prévue",adoption:"Date d'arrivée de l'enfant"}),d=e=>Object.freeze(Object.fromEntries(Object.entries(o[e]).map(([e,t])=>[e,t.libelle]))),m=e=>Object.freeze(Object.fromEntries(Object.entries(o[e]).map(([e,t])=>[e,t.detail]))),p=Object.freeze(Array.from({length:t.MAX_PRENATAL_REPORT_WEEKS+1},(e,t)=>String(t))),f=Object.freeze({id:"conge-maternite",titre:a,champs:Object.freeze([Object.freeze({key:"typeConge",type:"string",libelle:"Type de congé",question:"Quel type de congé ?",enum:Object.freeze(Object.keys(l)),choix:l,detailChoix:s,alias:Object.freeze({maternite:"maternite",paternite:"paternite",adoption:"adoption",accueil:"paternite","paternite et d'accueil":"paternite"}),section:"Type de congé",intro:"Sélectionnez le type de congé à calculer pour le salarié"}),Object.freeze({key:"situationMaternite",type:"string",libelle:"Situation familiale",question:"Quelle est la situation familiale ?",enum:Object.freeze(Object.keys(o.maternite)),choix:d("maternite"),detailChoix:m("maternite"),requiredWhen:i,section:"Situation familiale",intro:"Sélectionnez votre situation pour calculer la durée du congé maternité"}),Object.freeze({key:"situationPaternite",type:"string",libelle:"Nombre d'enfants attendus",question:"Combien d'enfants sont attendus ?",enum:Object.freeze(Object.keys(o.paternite)),choix:d("paternite"),detailChoix:m("paternite"),requiredWhen:r,section:"Nombre d'enfants attendus",intro:"Le congé paternité varie selon le nombre d'enfants attendus"}
2),Object.freeze({key:"situationAdoption",type:"string",libelle:"Situation d'adoption",question:"Quelle est la situation d'adoption ?",enum:Object.freeze(Object.keys(o.adoption)),choix:d("adoption"),detailChoix:m("adoption"),requiredWhen:n,section:"Situation d'adoption",intro:"La durée dépend du nombre d'enfants adoptés et du rang dans la famille"}),Object.freeze({key:"dateEvenement",type:"date",libelle:e=>c[e?.typeConge]||"Date d'accouchement prévue",question:e=>`Quelle est la ${(c[e?.typeConge]||"date d'accouchement prévue").charAt(0).toLowerCase()}${(c[e?.typeConge]||"date d'accouchement prévue").slice(1)} ?`,section:"Date"}),Object.freeze({key:"semainesReportees",type:"string",libelle:"Semaines reportées",question:"Combien de semaines reporter du prénatal vers le postnatal (avis médical favorable, jusqu’à 3) ?",aide:"Report prénatal → postnatal (Art. L1225-17) : avec avis médical favorable, jusqu'à 3 semaines peuvent être reportées du prénatal vers le postnatal.",enum:p,choix:Object.freeze(Object.fromEntries(p.map(e=>[e,`${e} semaine${Number(e)>1?"s":""}`]))),alias:Object.freeze({aucune:"0",aucun:"0",zero:"0",une:"1",deux:"2",trois:"3"}),defaut:"0",requiredWhen:i,section:"Date"}),Object.freeze({key:"congeNaissanceLendemain",type:"boolean",libelle:"Le congé de naissance débute le 1er jour ouvrable suivant la naissance (le lendemain) plutôt que le jour même.",question:"Le congé de naissance débute-t-il le 1er jour ouvrable suivant la naissance (le lendemain) plutôt que le jour même ?",defaut:!1,requiredWhen:r,section:"Date"})])});e.s(["CLE_SITUATION",0,u,"LIBELLES_DATE",0,c,"SITUATIONS_CONGE",0,o,"SPEC_CONGE",0,f,"TITRE_CONGE",0,a,"TYPES_CONGE",0,l],41908),e.s(["HEURES_PAR_JOUR_PAR_DEFAUT",()=>A,"SPEC_GRATIFICATION",()=>_,"TAUX_PMSS",()=>h,"TITRE_GRATIFICATION",()=>y,"estJourOuvre",()=>O,"joursOuvresDuMois",()=>C,"tauxHoraireParDefaut",()=>g],488644);var b=e.i(862981);let y="Gratification stagiaire",h=Object.freeze({2024:Object.freeze({tauxHoraire:4.35,libelle:"2024 — 4,35 €/h"}),2025:Object.freeze({tauxHoraire:4.35,libelle:"2025 — 4,35 €/h"}),2026:Object.freeze({tauxHoraire:4.5,libelle:"2026 — 4,50 €/h"})}),j=Object.freeze(Object.keys(h)),v=(e=new Date)=>h[((e=new Date)=>String(e.getFullYear()))(e)]?((e=new Date)=>String(e.getFullYear()))(e):j[j.length-1],g=e=>h[e]?.tauxHoraire??4.5;function S(e,t){let a=new Date(e);return a.setDate(a.getDate()+t),a}let O=e=>{var t,a;let i,r,n,l,s,o,u,c,d,m;return 0!==e.getDay()&&6!==e.getDay()&&!(i=(a=t=e.getFullYear())%19,r=Math.floor(a/100),n=a%100,l=Math.floor(r/4),s=Math.floor((r+8)/25),o=Math.floor((r-s+1)/3),u=(19*i+r-l-o+15)%30,c=(32+r%4*2+2*Math.floor(n/4)-u-n%4)%7,d=Math.floor((i+11*u+22*c)/451),m=new Date(a,Math.floor((u+c-7*d+114)/31)-1,(u+c-7*d+114)%31+1),[new Date(t,0,1),new Date(t,4,1),new Date(t,4,8),new Date(t,6,14),new Date(t,7,15),new Date(t,10,1),new Date(t,10,11),new Date(t,11,25),S(m,1),S(m,39),S(m,50)]).some(t=>t.getDate()===e.getDate()&&t.getMonth()===e.getMonth()&&t.getFullYear()===e.getFullYear())};function C(e){let t=String(e??"").match(/^(\d{4})-(0[1-9]|1[0-2])$/);if(!t)return 0;let a=Number(t[1]),i=Number(t[2]),r=new Date(a,i,0).getDate(),n=0;for(let e=1;e<=r;e++)O(new Date(a,i-1,e))&&n++;return n}let A=7,x=Object.freeze([Object.freeze({key:"transportEnabled",equals:!0})]),_=Object.freeze({id:"gratification-stagiaire",titre:y,champs:Object.freeze([Object.freeze({key:"calculationMonth",type:"string",libelle:"Mois de calcul",question:"Pour quel mois (AAAA-MM) ?",defaut:()=>(0,b.moisDuJour)(),section:"Période et temps de travail"}),Object.freeze({key:"totalHours",type:"number",libelle:"Heures totales du mois",question:"Combien d'heures de stage dans le mois ?",aide:"La page propose les jours ouvrés du mois × 7 h ; indiquez les heures réelles si elles diffèrent.",defaut:()=>((e=(0,b.moisDuJour)())=>C(e)*A)(),min:0,unite:"h",section:"Période et temps de travail"}),Object.freeze({key:"selectedYear",type:"string",libelle:"Année PMSS",question:"Quelle année du plafond de la Sécurité sociale ?",enum:j,choix:Object.freeze(Object.fromEntries(j.map(e=>[e,h[e].libelle]))),defaut:()=>v(),section:"Période et temps de travail"}),Object.freeze({key:"hourlyRate",type:"number",libelle:"Taux horaire (€/h)",question:"Quel taux horaire est versé (€/h) ?",aide:"Le minimum légal est 15 % du plafond horaire de la Sécurité sociale ; au-delà, la part excédentaire est soumise à cotisations.",defaut:()=>g(v()),min:0,unite:"€/h",section:"Période et temps de travail"}),Object.freeze({key:"transportEnabled",type:"boolean",libelle:"Remboursement transport (50%)",question:"L'employeur rembourse-t-il 50 % de l'abonnement de transport ?",defaut:!1,section:"Période et temps de travail"}),Object.freeze({key:"transportAmount",type:"number",libelle:"Montant abonnement transport (€)",question:"Quel est le montant mensuel de l'abonnement de transport (€) ?",aide:"Ex : Navigo = 86,40 € → remboursement 50% = 43,20 €",min:0,unite:"€",requiredWhen:x,section:"Période et temps de travail"}),Object.freeze({key:"idcc",type:"idcc",libelle:"Convention collective",question:"Quelle convention collective (nom ou numéro IDCC) ? Facultatif : « aucune » pour le minimum légal.",aide:"Sélectionnez la convention collective pour vérifier si elle prévoit une gratification supérieure au minimum légal (principe de faveur).",facultatif:!0,section:"Convention collective (facultatif)"}),Object.freeze({key:"companySiret",type:"string",libelle:"SIRET",question:"Quel est le SIRET de l'entreprise d'accueil ? (facultatif)",facultatif:!0,maxLength:14,section:"Entreprise d'accueil (facultatif)"}),Object.freeze({key:"companyName",type:"string",libelle:"Nom de l'entreprise",question:"Quel est le nom de l'entreprise d'accueil ? (facultatif)",facultatif:!0,maxLength:200,section:"Entreprise d'accueil (facultatif)"}),Object.freeze({key:"companyAddress",type:"string",libelle:"Adresse",question:"Quelle est l'adresse de l'entreprise d'accueil ? (facultatif)",facultatif:!0,maxLength:300,section:"Entreprise d'accueil (facultatif)"}),Object.freeze({key:"employeeFirstName",type:"string",libelle:"Prénom",question:"Quel est le prénom du stagiaire ? (facultatif)",facultatif:!0,maxLength:100,section:"Stagiaire (facultatif)"}),Object.freeze({key:"employeeLastName",type:"string",libelle:"Nom",question:"Quel est le nom du stagiaire ? (facultatif)",facultatif:!0,maxLength:100,section:"Stagiaire (facultatif)"}),Object.freeze({key:"employeeAddress",type:"string",libelle:"Adresse du stagiaire",question:"Quelle est l'adresse du stagiaire ? (facultatif)",facultatif:!0,maxLength:300,section:"Stagiaire (facultatif)"})]),verifier:e=>/^\d{4}-(0[1-9]|1[0-2])$/.test(String(e.calculationMonth||""))?Number(e.totalHours)>0?Number(e.hourlyRate)>0?null:{key:"hourlyRate",erreur:"Taux horaire (€/h) : indiquez un taux supérieur à 0."}:{key:"totalHours",erreur:"Heures totales du mois : indiquez un nombre d’heures supérieur à 0."}:{key:"calculationMonth",erreur:"Mois de calcul : indiquez un mois au format AAAA-MM (ex. 2026-09)."}})},88331,e=>{"use strict";let t={2024:46368,2025:47100,2026:48060};function a(e,i=null){let r=Number(i);return Number.isFinite(r)&&r>0?r:t[Number(String(e).slice(0,4))]??t[Math.max(...Object.keys(t).map(Number))]}let i=[{value:"indemnite_licenciement",label:"Indemnité de Licenciement (Légale ou Conv.)",group:"Rupture"}
2,{value:"indemnite_rupture_conv",label:"Indemnité de Rupture Conventionnelle",group:"Rupture"},{value:"indemnite_mise_retraite",label:"Indemnité de Mise à la Retraite",group:"Rupture"},{value:"indemnite_transactionnelle",label:"Indemnité Transactionnelle (Nature Indemnitaire)",group:"Rupture"},{value:"indemnite_transactionnelle_salariale",label:"Indemnité Transactionnelle (Nature Salariale)",group:"Salaire"},{value:"indemnite_cp",label:"Indemnité Compensatrice de Congés Payés (ICCP)",group:"Salaire"},{value:"indemnite_preavis",label:"Indemnité Compensatrice de Préavis",group:"Salaire"},{value:"indemnite_precarite",label:"Prime de Précarité (CDD)",group:"Salaire"},{value:"rappel_salaire",label:"Rappel de Salaire",group:"Salaire"},{value:"indemnite_concurrence",label:"Indemnité de Non-Concurrence",group:"Spécifique"},{value:"indemnite_clientele",label:"Indemnité de Clientèle",group:"Spécifique"},{value:"dommages_interets",label:"Dommages et Intérêts",group:"Divers"},{value:"autre",label:"Autre élément",group:"Divers"}];e.s(["MOTIFS",0,[{value:"demission",label:"Démission",group:"Démission & Rupture"},{value:"rupture_conv",label:"Rupture Conventionnelle",group:"Démission & Rupture"},{value:"fin_essai",label:"Fin de Période d'Essai",group:"Démission & Rupture"},{value:"licenciement_perso",label:"Licenciement Motif Personnel",group:"Licenciement"},{value:"licenciement_eco",label:"Licenciement Économique",group:"Licenciement"},{value:"licenciement_inaptitude_non_pro",label:"Licenciement Inaptitude (Non Pro)",group:"Licenciement"},{value:"licenciement_inaptitude_pro",label:"Licenciement Inaptitude (Pro)",group:"Licenciement"},{value:"licenciement_faute_grave",label:"Licenciement Faute Grave",group:"Licenciement"},{value:"licenciement_faute_lourde",label:"Licenciement Faute Lourde",group:"Licenciement"},{value:"fin_cdd",label:"Fin de CDD",group:"Contrats Courts"},{value:"retraite_depart",label:"Départ à la Retraite (Volontaire)",group:"Retraite"},{value:"retraite_mise",label:"Mise à la Retraite (Employeur)",group:"Retraite"}],"PASS_ANNEES",0,t,"TAUX_CSG_CRDS",0,.097,"TYPES_INDEMNITES",0,i,"auditerSoldeToutCompte",0,function(e){let t=a(e.dateDepart,e.pass),i=[],r=e.indemnites.filter(e=>["indemnite_licenciement","indemnite_transactionnelle","indemnite_rupture_conv","indemnite_mise_retraite"].includes(e.type)).reduce((e,t)=>e+t.montant,0),n=0;e.indemnites.forEach(e=>{["indemnite_licenciement","indemnite_rupture_conv","indemnite_mise_retraite"].includes(e.type)&&(!1!==e.isMinimumLegal?n+=e.montant:n+=e.montantLegal||0)});let l=n,s=e.salaireBrutAnnuelN1||0,o=("retraite_mise"===e.motif?5:6)*t,u=Math.min(2*s,o),c=Math.min(.5*r,o),d=2*t,m=Math.max(l,u,c),p="Montant légal/conventionnel";m===u&&u>l&&(p="2 fois la rémunération annuelle N-1 (plafonné à 6 PASS)"),m===c&&c>l&&c>=u&&(p="50 % de l'indemnité versée (plafonné à 6 PASS)");let f=["demission","retraite_depart","fin_essai","fin_cdd"].includes(e.motif);f&&(m=0,p="Aucune exonération (motif non éligible)");let b="licenciement_inaptitude_pro"===e.motif;b&&n>0&&(p=`${p} — indemnit\xe9 sp\xe9ciale L.1226-14 exon\xe9r\xe9e en totalit\xe9`);let y=Math.min(n,d),h=d-y,j=f?0:Math.max(0,m-n);e.indemnites.forEach(e=>{let a={label:{indemnite_licenciement:"Indemnité de Licenciement",indemnite_transactionnelle:"Indemnité Transactionnelle",indemnite_transactionnelle_salariale:"Ind. Transactionnelle (Salariale)",indemnite_rupture_conv:"Indemnité Rupture Conv.",indemnite_mise_retraite:"Indemnité Mise à la Retraite",indemnite_cp:"ICCP",indemnite_preavis:"Indemnité Préavis",indemnite_precarite:"Prime Précarité",rappel_salaire:"Rappel de Salaire",indemnite_concurrence:"Non-Concurrence",indemnite_clientele:"Indemnité Clientèle",dommages_interets:"Dommages et Intérêts",autre:"Autre Élément"}[e.type]||"Autre",type:e.type,montantTotal:e.montant,partSoumiseSocial:0,partSoumiseCSG:0,partExoneree:0,partImposable:0,details:[]};if("indemnite_transactionnelle_salariale"===e.type)a.partSoumiseSocial=e.montant,a.partSoumiseCSG=e.montant,a.partImposable=e.montant,a.details.push("Nature salariale : 100% soumis");else if(["indemnite_cp","indemnite_preavis","indemnite_precarite","rappel_salaire","indemnite_concurrence","indemnite_clientele"].includes(e.type))a.partSoumiseSocial=e.montant,a.partSoumiseCSG=e.montant,a.partImposable=e.montant,a.details.push("Élément de salaire : 100% soumis");else if("dommages_interets"===e.type){a.partExoneree=e.montant;let t=f?0:Math.min(e.montant,h);h-=t,a.partSoumiseSocial=e.montant-t,a.partSoumiseCSG=e.montant-t,a.details.push("Dommages et intérêts : exonérés d'impôt (sous réserve du jugement)"),a.partSoumiseSocial>0&&a.details.push("Soumis à cotisations et CSG/CRDS au-delà de l'enveloppe sociale de 2 PASS")}else if(["indemnite_licenciement","indemnite_transactionnelle","indemnite_rupture_c
2onv","indemnite_mise_retraite"].includes(e.type))if(f)a.partSoumiseSocial=e.montant,a.partSoumiseCSG=e.montant,a.partImposable=e.montant,a.details.push("Motif n'ouvrant pas droit à exonération");else if(r>10*t)a.partSoumiseSocial=e.montant,a.partSoumiseCSG=e.montant,a.partImposable=e.montant,a.details.push("Parachute doré (> 10 PASS) : 100% soumis");else{let t=0,i=0;if(["indemnite_licenciement","indemnite_rupture_conv","indemnite_mise_retraite"].includes(e.type))if(!1!==e.isMinimumLegal)t=e.montant;else{let a=e.montantLegal||0;t=Math.min(e.montant,a),i=Math.max(0,e.montant-t)}else i=e.montant;let r=Math.min(i,j);j-=r;let n=i-r;a.partExoneree=t+r,a.partImposable=n;let l=Math.min(t,y);y-=l;let s=Math.min(r,h);h-=s;let o=l+s;a.partSoumiseSocial=e.montant-o;let u=Math.min(t,o);a.partSoumiseCSG=e.montant-u,b&&t>0?a.details.push("Indemnité spéciale L.1226-14 : exonérée fiscalement en totalité"):t>0&&a.details.push("Part légale/conventionnelle : exonérée fiscalement"),i>0&&r>0&&a.details.push("Supra-légal : exonéré fiscalement dans la limite du plafond 80 duodecies"),n>0&&a.details.push("Dépassement du plafond fiscal : imposable"),a.partSoumiseSocial>0&&a.details.push("Soumis à cotisations : au-delà de la fraction exonérée ou du plafond social (2 PASS)"),a.partSoumiseCSG>0&&a.details.push("Soumis CSG/CRDS : au-delà du montant légal/conventionnel exclu")}else a.partSoumiseSocial=e.montant,a.partSoumiseCSG=e.montant,a.partImposable=e.montant,a.details.push("Élément soumis par défaut");i.push(a)});let v={totalVerse:i.reduce((e,t)=>e+t.montantTotal,0),totalSoumisSocial:i.reduce((e,t)=>e+t.partSoumiseSocial,0),totalSoumisCSG:i.reduce((e,t)=>e+t.partSoumiseCSG,0),totalExonere:i.reduce((e,t)=>e+t.partExoneree,0),totalImposable:i.reduce((e,t)=>e+t.partImposable,0)},g=null;if(["rupture_conv","retraite_mise"].includes(e.motif)&&!f){let t=Number(String(e.dateDepart).slice(0,4))>=2026?.4:.3,a=i.filter(e=>["indemnite_rupture_conv","indemnite_mise_retraite","indemnite_licenciement","indemnite_transactionnelle"].includes(e.type)).reduce((e,t)=>e+Math.max(0,t.montantTotal-t.partSoumiseSocial),0);a>0&&(g={taux:t,assiette:a,montant:Math.round(a*t*100)/100,label:"rupture_conv"===e.motif?"Contribution patronale spécifique (Rupture Conventionnelle)":"Contribution patronale spécifique (Mise à la Retraite)"})}return{lignes:i,synthese:v,contributionPatronale:g,plafondRetenu:p,montantPlafond:m,plafondSocial:d,_limites:{legal:l,deuxRemun:u,moitieIndemnite:c,sixPASS:o,deuxPASS_social:d}}},"getIndemnitesAutorisees",0,function(e){let t=["indemnite_cp","rappel_salaire","indemnite_concurrence","indemnite_clientele","autre"];switch(e){case"licenciement_perso":case"licenciement_eco":case"licenciement_inaptitude_non_pro":case"licenciement_inaptitude_pro":return[...t,"indemnite_licenciement","indemnite_transactionnelle","indemnite_transactionnelle_salariale","indemnite_preavis","dommages_interets"];case"licenciement_faute_grave":case"licenciement_faute_lourde":return[...t,"indemnite_transactionnelle","indemnite_transactionnelle_salariale","dommages_interets"];case"rupture_conv":return[...t,"indemnite_rupture_conv","indemnite_transactionnelle","indemnite_transactionnelle_salariale"];case"demission":case"fin_essai":return[...t,"indemnite_preavis"];case"fin_cdd":return[...t,"indemnite_precarite"];case"retraite_depart":return[...t,"indemnite_licenciement","indemnite_preavis"];case"retraite_mise":return[...t,"indemnite_mise_retraite","indemnite_preavis","indemnite_transactionnelle","indemnite_transactionnelle_salariale"];default:return i.map(e=>e.value)}},"getPASS",0,a,"needsLegalReference",0,function(e){return["indemnite_licenciement","indemnite_rupture_conv","indemnite_mise_retraite"].includes(e)}])},615277,812956,895581,e=>{"use strict";e.s(["champDeLaSpec",()=>ej,"champVisible",()=>eg,"champsVisibles",()=>eS,"choixDuChamp",()=>eO,"paramsDepuisSpec",()=>ex,"specDuParcours",()=>ey,"texteDuChamp",()=>eh,"valeurForcee",()=>ev,"valeursParDefaut",()=>eA,"validerSelonSpec",()=>eD],615277);var t=e.i(404713),a=e.i(535418),i=e.i(234906),r=e.i(13728),n=e.i(563399),l=e.i(708794),s=e.i(762233),o=e.i(965978),u=e.i(244935),c=e.i(560467),d=e.i(253204),m=e.i(630949),p=e.i(925095),f=e.i(607789),b=e.i(83455),y=e.i(944361),h=e.i(572042),j=e.i(847375),v=e.i(422207),g=e.i(572184),S=e.i(685375),O=e.i(970866),C=e.i(41908),A=e.i(488644);e.s(["CHOIX_MOTIFS",()=>q,"CHOIX_TYPES",()=>P,"NOMBRE_MAX_INDEMNITES",()=>E,"SPEC_ASSUJETTISSEMENT",()=>k,"TITRE_ASSUJETTISSEMENT",()=>z,"TYPES_AVEC_REFERENCE_LEGALE",()=>D,"anneeN1",()=>T,"cleIndemnite",()=>N],812956);var x=e.i(88331),_=e.i(862981);let z="Assujettissement social et fiscal des indemnités de départ",E=8,D=Object.freeze(x.TYPES_INDEMNITES.map(e=>e.value).filter(x.needsLegalReference)),q=Object.freeze(Object.fromEntries(x.MOTIFS.map(e=>[e.value,e.label]))),P=Object.freeze(Object.fromEntries(x.TYPES_INDEMNITES.map(e=>[e.value,e.label])));function T(e){let t=(0,_.dateIso)(e);return(t?t.getUTCFullYear():new Date().getFullYear())-1}let N=(e,t)=>`indemnite${e}${t}`,M=Object.freeze(Array.from({length:E},(e,t)=>t+1)),I=e=>Object.freeze(Array.from({length:E-e+1},(t,a)=>String(e+a))),k=Object.freeze({id:"assujettissement",titre:z,champs:Object.freeze([Object.freeze({key:"motif",type:"string",libelle:"Motif de la rupture",question:"Quel est le motif de la rupture ?",enum:Object.freeze(Object.keys(q)),choix:q,alias:Object.freeze({licenciement:"licenciement_perso","licenciement personnel":"licenciement_perso","licenciement economique":"licenciement_eco","rupture conventionnelle":"rupture_c
2onv","inaptitude professionnelle":"licenciement_inaptitude_pro","inaptitude non professionnelle":"licenciement_inaptitude_non_pro",inaptitude:"licenciement_inaptitude_non_pro","faute grave":"licenciement_faute_grave","faute lourde":"licenciement_faute_lourde","mise a la retraite":"retraite_mise","depart a la retraite":"retraite_depart",retraite:"retraite_depart",cdd:"fin_cdd","periode d essai":"fin_essai"}),defaut:"licenciement_perso",section:"Contexte de la rupture"}),Object.freeze({key:"dateDepart",type:"date",libelle:"Date de sortie",question:"Quelle est la date de sortie ?",aide:"Détermine le PASS applicable.",defaut:()=>(0,_.dateDuJour)(),section:"Contexte de la rupture"}),Object.freeze({key:"salaireBrutN1",type:"number",libelle:e=>`R\xe9mun\xe9ration Brute Annuelle ${T(e?.dateDepart)}`,question:e=>`Quelle est la r\xe9mun\xe9ration brute annuelle ${T(e?.dateDepart)} (€) ?`,aide:"Total brut perçu du 1er janvier au 31 décembre de l'année civile précédant la sortie : le plafond d'exonération fiscale est calculé selon 3 limites, dont l'une est basée sur 2 fois cette rémunération.",min:0,unite:"€",section:"Références salariales"}),Object.freeze({key:"nombreIndemnites",type:"string",libelle:"Nombre d'éléments versés",question:"Combien d'éléments sont versés à l'occasion du départ ?",enum:I(1),choix:Object.freeze(Object.fromEntries(I(1).map(e=>{let t;return[e,(t=Number(e),`${t} \xe9l\xe9ment${t>1?"s":""}`)]}))),defaut:"1",section:"Éléments versés à l'occasion du départ"}),...M.flatMap(function(e){let t=Object.freeze([Object.freeze({key:"nombreIndemnites",in:I(e)})]),a=Object.freeze([...t,Object.freeze({key:N(e,"Type"),in:D})]),i=Object.freeze([...a,Object.freeze({key:N(e,"MinimumLegal"),equals:!1})]),r="Éléments versés à l'occasion du départ";return[Object.freeze({key:N(e,"Type"),type:"string",libelle:`\xc9l\xe9ment ${e} — type`,question:`\xc9l\xe9ment ${e} : quel type d'\xe9l\xe9ment ?`,enum:Object.freeze(Object.keys(P)),choix:P,requiredWhen:t,section:r}),Object.freeze({key:N(e,"Montant"),type:"number",libelle:`\xc9l\xe9ment ${e} — montant vers\xe9 (€)`,question:`\xc9l\xe9ment ${e} : quel montant est vers\xe9 (€) ?`,min:0,unite:"€",requiredWhen:t,section:r}),Object.freeze({key:N(e,"MinimumLegal"),type:"boolean",libelle:`\xc9l\xe9ment ${e} — ce montant correspond au minimum l\xe9gal ou conventionnel obligatoire`,question:`\xc9l\xe9ment ${e} : ce montant correspond-il au minimum l\xe9gal ou conventionnel obligatoire ?`,defaut:!0,requiredWhen:a,section:r}),Object.freeze({key:N(e,"MontantLegal"),type:"number",libelle:`\xc9l\xe9ment ${e} — montant l\xe9gal/conv (€)`,question:`\xc9l\xe9ment ${e} : quel est le montant minimum d\xfb, l\xe9gal ou conventionnel (€) ? La diff\xe9rence sera consid\xe9r\xe9e comme supra-l\xe9gale.`,min:0,unite:"€",requiredWhen:i,section:r})]})]),verifier:function(e={}){if(!(Number(e.salaireBrutN1)>0))return{key:"salaireBrutN1",erreur:`R\xe9mun\xe9ration Brute Annuelle ${T(e.dateDepart)} : ce champ est obligatoire pour calculer les plafonds.`};let t=(0,x.getIndemnitesAutorisees)(e.motif),a=Number(e.nombreIndemnites)||0,i=!1;for(let r=1;r<=a;r++){let a=e[N(r,"Type")];if(a&&!t.includes(a)){let i=t.map(e=>`${P[e]} (${e})`).join(", ");return{key:N(r,"Type"),erreur:`\xc9l\xe9ment ${r} — type : \xab ${P[a]||a} \xbb n'est pas propos\xe9 pour le motif \xab ${q[e.motif]||e.motif} \xbb ; choisissez parmi ${i}.`}}Number(e[N(r,"Montant")])>0&&(i=!0)}return i?null:{key:N(1,"Montant"),erreur:"Éléments versés : indiquez au moins un montant versé supérieur à 0."}}});e.s(["AIDE_PRIMES_DU_MOIS",()=>er,"CHOIX_MODE_SAISIE",()=>L,"COLONNES_SALAIRE",()=>X,"LIBELLES_COMPTAGE",()=>H,"LIBELLES_PERIODE_REFERENCE",()=>U,"PERIODES",()=>K,"PRISE_MALADIE_80",()=>Q,"SPEC_ICCP",()=>ep,"TITRE_ICCP",()=>R,"UNITES_COMPTAGE",()=>W,"bornesDeLaPeriode",()=>ei,"cleParMois",()=>ee,"cleParPeriode",()=>Z,"moisDesPeriodes",()=>et],895581);let R="Indemnité compensatrice de congés payés (ICCP)",$=Object.freeze(["Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre"]),L=Object.freeze({periode:"Par période (totaux)",mensuel:"Mois par mois"}),F=Object.freeze({"juin-mai":"1er juin – 31 mai",civile:"Année civile (1er janv. – 31 déc.)"}),w=Object.freeze({ouvrables:"Jours ouvrables (lundi au samedi)",ouvres:"Jours ouvrés (jours travaillés)"}),J=Object.freeze({"100%":"À 100 %","80%":"À 80 %"}),Q="80%",U=Object.freeze({"juin-mai":"1er juin – 31 mai",civile:"Année civile"}),H=Object.freeze({ouvrables:"Jours ouvrables",ouvres:"Jours ouvrés"}),W=Object.freeze({ouvrables:"j. ouvrables",ouvres:"j. ouvrés"}),V=Object.freeze([Object.freeze({key:"connaitSalaireRef",equals:!0})]),G=Object.freeze([Object.freeze({key:"connaitSalaireRef",equals:!1})]),B=Object.freeze([...G,Object.freeze({key:"modeSaisie",equals:"periode"})]),Y=Object.freeze([...G,Object.freeze({key:"modeSaisie",equals:"mensuel"})]),X=Object.freeze([Object.freeze({cle:"salaireBase",libelle:"Salaire de base total",libelleMois:"Salaire base"}),Object.freeze({cle:"primes",libelle:"Primes et compléments du mois",libelleMois:"Primes"}
2),Object.freeze({cle:"absencesAutres",libelle:"Absences non rémunérées (hors maladie)",libelleMois:"Abs. autres"}),Object.freeze({cle:"absencesMaladie",libelle:"Absences maladie non prof.",libelleMois:"Abs. maladie"})]),K=Object.freeze([Object.freeze({cle:"N1",libelle:"Période N-1",court:"N-1"}),Object.freeze({cle:"N",libelle:"Période N",court:"N"})]),Z=(e,t)=>`${e}${t}`,ee=(e,t)=>`mois${t}${e.charAt(0).toUpperCase()}${e.slice(1)}`;function et(e={}){let t,a,i,r;if(!(0,_.dateIso)(e.dateEntree)||!(0,_.dateIso)(e.dateSortie))return{moisN1:[],moisN:[]};let[n,l,s]=String(e.dateEntree).split("-").map(Number),[o,u,c]=String(e.dateSortie).split("-").map(Number),d=new Date(n,l-1,s),m=new Date(o,u-1,c),p=[],f=[];if("civile"!==e.periodeReference){let e=u<=5?o-1:o;i=new Date(e,5,1),r=m,a=new Date(e,4,31),t=new Date(e-1,5,1)}else a=new Date(o-1,11,31),t=new Date(o-1,0,1),i=new Date(o,0,1),r=m;return d>t&&(t=new Date(d)),d>i&&(i=new Date(d)),ea(p,t,a,12),ea(f,i,r,null,a),{moisN1:p,moisN:f}}function ea(e,t,a,i,r=null){if(!(t instanceof Date)||!(a instanceof Date)||t>a)return;let n=t.getFullYear(),l=t.getMonth(),s=a.getFullYear(),o=a.getMonth();for(;n<s||n===s&&l<=o;){if(null!=i&&e.length>=i)return;(!r||new Date(n,l,1)>r)&&e.push({id:`${n}-${l}`,label:`${$[l]} ${n}`}),(l+=1)>11&&(l=0,n+=1)}}function ei(e,t){let a=et(e)["N1"===t?"moisN1":"moisN"];if(!a.length)return"";let[i,r,n]=String(e.dateEntree??"").split("-").map(Number),[l,s,o]=String(e.dateSortie??"").split("-").map(Number),u=({id:e},t)=>{let[a,u]=e.split("-").map(Number),c=t?new Date(a,u+1,0):new Date(a,u,1);return t||a!==i||u!==r-1||(c=new Date(a,u,n)),t&&a===l&&u===s-1&&(c=new Date(a,u,o)),`${String(c.getDate()).padStart(2,"0")}/${String(c.getMonth()+1).padStart(2,"0")}/${c.getFullYear()}`};return`${u(a[0],!1)} – ${u(a.at(-1),!0)}`}let er="Commissions, primes de rendement ou d’objectifs, heures supplémentaires, majorations, prime d’ancienneté : tout ce qui baisse quand le salarié s’absente. Les primes annuelles versées en totalité même en cas de congé se saisissent à part.";function en(e,t){return et(e)["N1"===t?"moisN1":"moisN"].map(e=>e.label).join(" ; ")}let el=e=>W[e?.comptageCp]||W.ouvrables,es=(e,t)=>{let a=ei(e,t);return a?` (${a})`:""};function eo(e){let t="Congés payés";return[Object.freeze({key:`congesAcquis${e.cle}`,type:"number",libelle:`Cong\xe9s acquis ${e.court}`,question:t=>`Combien de cong\xe9s acquis sur la p\xe9riode ${e.court}${es(t,e.cle)} (${el(t)}) ?`,min:0,unite:"jours",section:t}),Object.freeze({key:`congesPris${e.cle}`,type:"number",libelle:`Cong\xe9s pris ${e.court}`,question:t=>`Combien de cong\xe9s pris sur la p\xe9riode ${e.court}${es(t,e.cle)} (${el(t)}) ?`,min:0,unite:"jours",section:t})]}function eu(e){return Object.freeze({key:`primesAnnuelles${e.cle}`,type:"number",libelle:`Primes annuelles vers\xe9es en totalit\xe9 m\xeame en cas de cong\xe9 ${e.court}`,question:t=>`${e.libelle}${es(t,e.cle)} : montant des primes annuelles vers\xe9es en totalit\xe9 m\xeame en cas de cong\xe9 (€, 0 si aucune) ?`,aide:"13e mois, prime de fin d’année, prime annuelle forfaitaire : les primes dont le montant ne change pas selon que le salarié prend ou non ses congés. Elles sont déjà versées en entier, elles ne sont donc pas réindemnisées.",min:0,unite:"€",facultatif:!0,requiredWhen:G,section:"Éléments de salaire par période"})}function ec(e){return X.map(t=>Object.freeze({key:Z(t.cle,e.cle),type:"number",libelle:`${t.libelle} ${e.court}`,question:a=>`${e.libelle}${es(a,e.cle)} : ${t.libelle.charAt(0).toLowerCase()}${t.libelle.slice(1)} (€) ?`,aide:"primes"===t.cle?er:void 0,min:0,unite:"€",facultatif:!0,requiredWhen:B,section:"Éléments de salaire par période"}))}function ed(e){return X.map(t=>Object.freeze({key:ee(t.cle,e.cle),type:"array",libelle:`${t.libelleMois} par mois ${e.court}`,question:a=>{let i=en(a,e.cle);return`${e.libelle}${es(a,e.cle)} : ${t.libelleMois.toLowerCase()} de chaque mois (€, 0 si aucun), s\xe9par\xe9s par \xab ; \xbb${i?` — dans l'ordre : ${i}`:""} ?`},aide:a=>{let i=en(a,e.cle),r=i?`Un montant par mois (0 si aucun), s\xe9par\xe9s par \xab ; \xbb, dans l'ordre : ${i}.`:"Un montant par mois de la période (0 si aucun), séparés par « ; » — les mois suivent les dates saisies.";return"primes"===t.cle?`${r} ${er}`:r},lire:em,enTexte:e=>(Array.isArray(e)?e:[]).join(" ; "),facultatif:!0,requiredWhen:Y,section:"Éléments de salaire mensuels"}))}function em(e){let t=(Array.isArray(e)?e:String(e??"").split(/\s*(?:;|\n)\s*/)).map(e=>"number"==typeof e?e:String(e??"").trim());for(;t.length&&""===t[t.length-1];)t.pop();let a=[];for(let e of t){let t=""===e?0:function(e){if("number"==typeof e)return e;let t=String(e??"").replace(/[\s  ]/g,"");return/^\d+,\d{1,2}$/.test(t)?Number(t.replace(",",".")):/^\d+(?:\.\d+)?$/.test(t)?Number(t):NaN}(e);if(!Number.isFinite(t))return{ok:!1,error:`\xab ${e} \xbb n'est pas un montant : indiquez un montant par mois (0 si aucun), s\xe9par\xe9s par \xab ; \xbb, par exemple \xab 2000 ; 1950,50 ; 0 \xbb.`};if(t<0)return{ok:!1,error:`\xab ${e} \xbb : un montant ne peut pas \xeatre n\xe9gatif.`};a.push(t)}return{ok:!0,value:a}}let ep=Object.freeze({id:"iccp",titre:R,champs:Object.freeze([Object.freeze({key:"idcc",type:"idcc",libelle:"Convention collective",question:"Quelle convention collective (nom ou numéro IDCC), ou « aucune » ?",aide:"Sélectionnez la convention pour vérifier les congés supplémentaires (ancienneté…) et les éventuelles règles d'indemnité plus favorables.",facultatif:!0,section:"Convention collective (optionnel)"}),Object.freeze({key:"connaitSalaireRef",type:"boolean",libelle:"Connaissez-vous le salaire de référence ?",question:"Connaissez-vous le salaire de référence ?",defaut:!0,section:"Salaire de référence"}),Object.freeze({key:"modeSaisie",type:"string",libelle:"Mode de saisie",question:"Comment saisir les salaires : par période (totaux) ou mois par mois ?",enum:Object.freeze(Object.keys(L)),choix:L,alias:Object.freeze({periode:"peri
2ode",totaux:"periode","par periode":"periode",mensuel:"mensuel","mois par mois":"mensuel",mois:"mensuel"}),defaut:"periode",requiredWhen:G,section:"Salaire de référence"}),Object.freeze({key:"salaireMensuel",type:"number",libelle:"Salaire brut habituel",question:"Quel est le salaire brut habituel (€) ?",min:0,unite:"€",requiredWhen:V,section:"Salaire de référence"}),Object.freeze({key:"dateEntree",type:"date",libelle:"Date d'entrée du salarié",question:"Quelle est la date d'entrée du salarié ?",section:"Informations générales"}),Object.freeze({key:"dateSortie",type:"date",libelle:"Date de sortie du salarié",question:"Quelle est la date de sortie du salarié ?",section:"Informations générales"}),Object.freeze({key:"periodeReference",type:"string",libelle:"Période de référence pour les congés",question:"Quelle période de référence pour les congés ?",enum:Object.freeze(Object.keys(F)),choix:F,alias:Object.freeze({"juin mai":"juin-mai",juin:"juin-mai","1er juin":"juin-mai",civile:"civile","annee civile":"civile",janvier:"civile"}),defaut:"juin-mai",section:"Informations générales"}),Object.freeze({key:"comptageCp",type:"string",libelle:"Mode de décompte des congés payés",question:"Quel mode de décompte des congés payés ?",enum:Object.freeze(Object.keys(w)),choix:w,alias:Object.freeze({ouvrables:"ouvrables","jours ouvrables":"ouvrables",ouvres:"ouvres","jours ouvres":"ouvres"}),defaut:"ouvrables",section:"Informations générales"}),Object.freeze({key:"priseMaladie",type:"string",libelle:"Prise en compte des absences maladie",question:"Les absences maladie sont-elles prises en compte à 100 % ou à 80 % ?",enum:Object.freeze(Object.keys(J)),choix:J,alias:Object.freeze({100:"100%","100 %":"100%","a 100 %":"100%","a 100%":"100%",80:"80%","80 %":"80%","a 80 %":"80%","a 80%":"80%"}),defaut:"100%",section:"Informations générales"}),...eo(K[0]),...eo(K[1]),Object.freeze({key:"salaireReferenceN1",type:"number",libelle:"Rémunération brute totale N-1",question:e=>`Quelle est la r\xe9mun\xe9ration brute totale de la p\xe9riode N-1${es(e,"N1")} (€) ?`,aide:e=>`Total brut per\xe7u sur la p\xe9riode de r\xe9f\xe9rence N-1${es(e,"N1")}, hors primes annuelles vers\xe9es en totalit\xe9 m\xeame en cas de cong\xe9 (13e mois)`,min:0,unite:"€",requiredWhen:V,section:"Salaires de référence"}),Object.freeze({key:"salaireReferenceN",type:"number",libelle:"Rémunération brute totale N",question:e=>`Quelle est la r\xe9mun\xe9ration brute totale de la p\xe9riode N${es(e,"N")} (€) ?`,aide:e=>`Total brut per\xe7u sur la p\xe9riode de r\xe9f\xe9rence N${es(e,"N")}, hors primes annuelles vers\xe9es en totalit\xe9 m\xeame en cas de cong\xe9 (13e mois)`,min:0,unite:"€",requiredWhen:V,section:"Salaires de référence"}),...ec(K[0]),...ec(K[1]),...ed(K[0]),...ed(K[1]),eu(K[0]),eu(K[1])]),verifier:function(e={}){let t=(0,_.dateIso)(e.dateEntree),a=(0,_.dateIso)(e.dateSortie);if(t&&a&&t>=a)return{key:"dateEntree",erreur:"La date d'entrée doit être antérieure à la date de sortie."};for(let t of K)if(Number(e[`congesPris${t.cle}`])>Number(e[`congesAcquis${t.cle}`]))return{key:`congesPris${t.cle}`,erreur:`Cong\xe9s pris ${t.court} : ne peut d\xe9passer les acquis (${e[`congesAcquis${t.cle}`]}).`};if("mensuel"===e.modeSaisie){let t=et(e);for(let a of K){let i=("N1"===a.cle?t.moisN1:t.moisN).length;for(let t of X){let r=e[ee(t.cle,a.cle)];if(Array.isArray(r)&&r.length>i)return{key:ee(t.cle,a.cle),erreur:0===i?`La p\xe9riode ${a.court} ne contient aucun mois : le salari\xe9 n'\xe9tait pas encore dans l'entreprise. Laissez cette ligne vide.`:`${t.libelleMois} par mois ${a.court} : ${r.length} montants pour ${i} mois (${en(e,a.cle)}).`}}}}return null}});var ef=e.i(707374);let eb=Object.freeze({[i.SPEC_IJSS.id]:i.SPEC_IJSS,[r.SPEC_IK.id]:r.SPEC_IK,[n.SPEC_DELAI_CDD.id]:n.SPEC_DELAI_CDD,[l.SPEC_AVANTAGE_LOGEMENT.id]:l.SPEC_AVANTAGE_LOGEMENT,[s.SPEC_AVANTAGE_VOITURE.id]:s.SPEC_AVANTAGE_VOITURE,[o.SPEC_PERIODE_ESSAI.id]:o.SPEC_PERIODE_ESSAI,[u.SPEC_MENSUALISATION.id]:u.SPEC_MENSUALISATION,[c.SPEC_REPARTITION_HS.id]:c.SPEC_REPARTITION_HS,[d.SPEC_SAISIE_SALAIRE.id]:d.SPEC_SAISIE_SALAIRE,[m.SPEC_RTT_FORFAIT.id]:m.SPEC_RTT_FORFAIT,[p.SPEC_PRORATA_PLAFOND.id]:p.SPEC_PRORATA_PLAFOND,[f.SPEC_TAXE_SALAIRES.id]:f.SPEC_TAXE_SALAIRES,[b.SPEC_APPRENTIS.id]:b.SPEC_APPRENTIS,[y.SPEC_FILLON.id]:y.SPEC_FILLON,[h.SPEC_BRUT_NET.id]:h.SPEC_BRUT_NET,[j.SPEC_MAINTIEN_SALAIRE.id]:j.SPEC_MAINTIEN_SALAIRE,[v.SPEC_CONVERSION.id]:v.SPEC_CONVERSION,[g.SPEC_ARE.id]:g.SPEC_ARE,[S.SPEC_REINTEGRATION.id]:S.SPEC_REINTEGRATION,[O.SPEC_CALCULATEUR_ABSENCES.id]:O.SPEC_CALCULATEUR_ABSENCES,[C.SPEC_CONGE.id]:C.SPEC_CONGE,[A.SPEC_GRATIFICATION.id]:A.SPEC_GRATIFICATION,[k.id]:k,[ep.id]:ep});function ey(e){return eb[String(e||"")]??null}function eh(e,t={}){return"function"==typeof e?String(e(t||{})??""):String(e??"")}function ej(e,t){return(e?.champs||[]).find(e=>e.key===t)??null}function ev(e,a={}){let i=e?.force;if(i&&"object"==typeof i&&(0,t.isSlashParamRequired)({optional:!0,requiredWhen:[{key:i.key,...Object.hasOwn(i,"in")?{in:i.in}:{equals:i.equals}}]},a))return i.valeur}function eg(e,a={}){return!!e&&(!Array.isArray(e.requiredWhen)||0===e.requiredWhen.length||(0,t.isSlashParamRequired)({optional:!0,requiredWhen:e.requiredWhen},a))}function eS(e,t={}){return(e?.champs||[]).filter(e=>eg(e,t))}function eO(e){return e?.choix&&"object"==typeof e.choix?Object.entries(e.choix).map(([t,a])=>({valeur:t,libelle:String(a),detail:e.detailChoix?.[t]??null})):[]}function eC(e){if(e&&void 0!==e.defaut)return"function"==typeof e.defaut?e.defaut():e.defaut}function eA(e){let t={};for(let a of e?.champs||[]){let e=eC(a);void 0!==e?t[a.key]=e:a.defautDuJour&&(t[a.key]=function(e=new Date){let t=e=>String(e).padStart(2,"0");return`${e.getFullYear()}-${t(e.getMonth()+1)}-${t(e.getDate())}`}())}return t}function ex(e){return(e?.champs||[]).map(t=>{let a=t.question??t.libelle,i={key:t.key,question:eh(a,{}),type:t.type,libelle:t.libelle,spec:e.id};return"function"==typeof a&&(i.questionDynamique=a),Array.isArray(t.enum)&&(0,ef.listeDynamique)(t)?(Object.defineProperty(i,"enum",{get:()=>[...t.enum],enumerable:!0}),Object.defineProperty(i,"choix",{get:()=>({...t.choix}),enumerable:!0})):Array.isArray(t.enum)&&(i.enum=[...t.enum],i.choix={...t.choix},t.detailChoix&&(i.detailChoix={...t.detailChoix}),t.alias&&(i.alias={...t.alias})),Array.isArray(t.requiredWhen)&&t.requiredWhen.length>0&&(i.optional=!0,i.requiredWhen=t.requiredWhen),t.facultatif&&(i.facultatif=!0),t.force&&(i.force=t.force),i.depuisSpec=!0,void 0!==t.defaut&&(i.defaut=t.defaut),t.defautDuJour&&(i.defautDuJour=!0),t.aide&&(i.aide=t.aide),"function"==typeof t.lire&&(i.lire=t.lire),"function"==typeof t.enTexte&&(i.enTexte=t.enTexte),t.unite&&(i.unite=t.unite),void 0!==t.min&&(i.min=t.min),void 0!==t.max&&(i.max=t.max),t.entier&&(i.entier=!0),void 0!==t.pas&&(i.pas=t.pas),void 0!==t.maxLength&&(i.maxLength=t.maxLength),t.section&&(i.section=t.section),t.intro&&(i.intro=t.intro),i})}function e_(e){let t=String(e??"").trim().match(/^(\d{4})-(\d{2})-(\d{2})$/);if(!t)return!1;let[a,i,r]=[t[1],t[2],t[3]].map(Number),n=new Date(Date.UTC(a,i-1,r));return n.getUTCFullYear()===a&&n.getUTCMonth()===i-1&&n.getUTCDate()===r}(0,a.enregistrerLibellesDeSpecification)(function(e){for(let t of Object.values(eb)){let a=(t.champs||[]).find(t=>t.key===e);if(a)return eh(a.libelle,{});if(t.libellesHistoriques&&Object.hasOwn(t.libellesHistoriques,e))return t.libellesHistoriques[e]}return null});let ez=e=>null==e||""===String(e).trim(),eE=e=>!0===e||["true","oui","o","yes","vrai"].includes(String(e).trim().toLowerCase());function eD(e,t={}){let a=t&&"object"==typeof t?t:{},i={},r=[];for(let t of e?.champs||[]){let e=ev(t,i);if(void 0!==e){i[t.key]=e;continue}if("boolean"===t.type&&!Array.isArray(t.enum)){if(!eg(t,i))continue;let e=a[t.key];if(ez(e)){void 0!==t.defaut?i[t.key]=t.defaut:t.facultatif?i[t.key]=null:r.push(t);continue}i[t.key]=eE(e);continue}if(!Array.isArray(t.enum))continue;let n=a[t.key];if(ez(n)){let e=eC(t);void 0!==e?i[t.key]=e:t.facultatif||r.push(t);continue}let l=String(n).trim();if(!t.enum.includes(l)){let e=eO(t).map(e=>`${e.libelle} (${e.valeur})`).join(", ");return{ok:!1,key:t.key,erreur:`${eh(t.libelle,a).replace(/\s*:\s*$/,"")} : choisissez parmi ${e}.`}}i[t.key]=l}let n=r.find(e=>eg(e,i));if(n){let e=Array.isArray(n.enum)?eO(n).map(e=>e.libelle).join(", "):"oui, non";return{ok:!1,key:n.key,erreur:`${eh(n.libelle,a)} : cette valeur est n\xe9cessaire (${e}).`}}let l=[];for(let t of e?.champs||[]){if(Object.hasOwn(i,t.key)&&void 0!==ev(t,i)||Array.isArray(t.enum)||"boolean"===t.type&&Object.hasOwn(i,t.key)||!eg(t,
2i))continue;let e=a[t.key],r=eh(t.libelle,{...a,...i}).replace(/\s*:\s*$/,"");if(ez(e)){let e=eC(t);if(void 0!==e){i[t.key]=e;continue}if(t.facultatif||"idcc"===t.type){i[t.key]=null;continue}if("date"===t.type){l.push(r);continue}return{ok:!1,key:t.key,erreur:`${r} : cette valeur est n\xe9cessaire.`}}if("function"==typeof t.lire){let a=t.lire(e);if(!a?.ok)return{ok:!1,key:t.key,erreur:`${r} : ${a?.error||"réponse non reconnue."}`};i[t.key]=a.value;continue}if("date"===t.type){if(!e_(e))return{ok:!1,key:t.key,erreur:`${r} : indiquez une date valide au format AAAA-MM-JJ.`};i[t.key]=String(e).trim();continue}if("dates"===t.type){let a=(Array.isArray(e)?e:String(e).split(/[;,\s]+/)).map(e=>String(e).trim()).filter(Boolean);if(0===a.length)return{ok:!1,key:t.key,erreur:`${r} : cette valeur est n\xe9cessaire.`};let n=a.find(e=>!e_(e));if(n)return{ok:!1,key:t.key,erreur:`${r} : \xab ${n} \xbb n'est pas une date valide (AAAA-MM-JJ).`};i[t.key]=[...new Set(a)].sort();continue}if("array"===t.type){let a=Array.isArray(e)?e:String(e).split(/\s*;\s*/);i[t.key]=a.map(e=>String(e).trim()).filter(Boolean);continue}if("idcc"===t.type){let a=String(e).trim().toLowerCase();if(["aucune","aucun","non","0","code du travail"].includes(a)){i[t.key]=null;continue}let n=Number(a);if(!Number.isInteger(n)||n<=0||n>9999)return{ok:!1,key:t.key,erreur:`${r} : indiquez le num\xe9ro IDCC de la convention (jusqu’\xe0 4 chiffres), ou \xab aucune \xbb.`};i[t.key]=n;continue}if("number"===t.type){let a=function(e){if("number"==typeof e)return e;let t=String(e??"").replace(/[\s  ]/g,"");return/^-?\d+,\d{1,2}$/.test(t)?Number(t.replace(",",".")):/^-?\d+(?:\.\d+)?$/.test(t)?Number(t):NaN}(e);if(!Number.isFinite(a))return{ok:!1,key:t.key,erreur:`${r} : indiquez un nombre.`};if(void 0!==t.min&&a<t.min)return{ok:!1,key:t.key,erreur:0===t.min?`${r} : le montant ne peut pas \xeatre n\xe9gatif.`:`${r} : au moins ${t.min}.`};if(void 0!==t.max&&a>t.max)return{ok:!1,key:t.key,erreur:`${r} : au plus ${t.max}.`};if(t.entier&&!Number.isInteger(a))return{ok:!1,key:t.key,erreur:`${r} : indiquez un nombre entier.`};i[t.key]=a;continue}if("boolean"===t.type){i[t.key]=eE(e);continue}let n=String(e).trim();if(void 0!==t.maxLength&&n.length>t.maxLength)return{ok:!1,key:t.key,erreur:`${r} : ${t.maxLength} caract\xe8res au maximum.`};i[t.key]=n}if(l.length)return{ok:!1,key:(e?.champs||[]).filter(e=>"date"===e.type&&!e.facultatif).map(e=>e.key).find(e=>ez(a[e]))||null,erreur:l.length>1?`${l.join(" et ")} : ces dates sont n\xe9cessaires (AAAA-MM-JJ).`:`${l[0]} : cette date est n\xe9cessaire (AAAA-MM-JJ).`};let s="function"==typeof e?.verifier?e.verifier(i):null;return s?.erreur?{ok:!1,key:s.key??null,erreur:s.erreur}:{ok:!0,valeurs:i}}Object.freeze({string:"string",date:"string",number:"number",boolean:"boolean",array:"array",idcc:"number"})},95746,590105,e=>{"use strict";var t=e.i(83646),a=e.i(866285),i=e.i(404713),r=e.i(664326),n=e.i(223948),l=e.i(615277),s=e.i(234906),o=e.i(13728),u=e.i(563399),c=e.i(708794),d=e.i(762233),m=e.i(965978),p=e.i(244935),f=e.i(572042),b=e.i(944361),y=e.i(83455),h=e.i(607789),j=e.i(925095),v=e.i(630949),g=e.i(253204),S=e.i(560467),O=e.i(847375),
2C=e.i(422207),A=e.i(572184),x=e.i(685375),_=e.i(970866),z=e.i(41908),E=e.i(488644),D=e.i(812956),q=e.i(895581);let P=new Set,T={"renumeration/indemnite-depart/rupture-de-contrat":"indemnite-licenciement","renumeration/indemnite-depart/compensatrice":"iccp","arret-de-travail/ijss":"ijss","renumeration/reduction-generale-dégressive-unique":"fillon","renumeration/bulletin-de-paie":"bulletin-paie","renumeration/allocation-retour-emploi":"are","renumeration/calcul-brut-net/bulletin-de-paie":"calcul-brut-net","duree-du-travail/repartition-des-hs-dans-la-semaine":"repartition-hs","renumeration/gratification-stagiaire":"gratification-stagiaire","renumeration/indemnite-kilometrique":"ik","renumeration/saisie-sur-salaire":"saisie-salaire","renumeration/avantages-en-nature/voiture":"avantage-voiture","renumeration/avantages-en-nature/logement":"avantage-logement","renumeration/salaire-des-apprentis":"apprentis","renumeration/calculateur-de-prorata-du-plafond-de-la-securite":"prorata-plafond","renumeration/calcul-rtt-forfait":"rtt-forfait","renumeration/assujettissement-social-et-fiscal-des-indemnités-de-depart":"assujettissement","renumeration/bulletin-prudhomme":"bulletin-prudhomme","renumeration/reintegration-sociale-et-fiscale":"reintegration","renumeration/calculateur-des-absences":"calculateur-absences","duree-du-travail/hs-hc":"hs-hc","duree-du-travail/mensualisation":"mensualisation","duree-du-travail/conversion-minute-centieme":"conversion-min-centieme","outils/delai-entre-deux-cdd":"delai-cdd","outils/date-fin-periode-essai":"periode-essai","outils/taxe-sur-les-salaires":"taxe-salaires","outils/calendrier-de-procedure/rupture-conventionnelle":"rupture-conventionnelle","outils/calendrier-de-procedure/mise-a-la-retraite":"calendrier-mise-
2a-la-retraite","outils/calendrier-de-procedure/licenciement-pour-motif-personnel":"calendrier-licenciement-personnel","outils/calendrier-de-procedure/licenciement-pour-motif-economique-individuel":"calendrier-licenciement-economique","arret-de-travail/maintiens-de-salaire":"maintien-salaire","arret-de-travail/duree-conge-maternite-et-paternite":"conge-maternite","arret-de-travail/calcul-du-report-de-cp-maladie":"report-cp-maladie"};function N(){let e=[];for(let i of t.default){if(!i||"object"!=typeof i||P.has(i.title))continue;let t=(i,r)=>{let n=Array.isArray(i.items)?i.items:[];if(0===n.length&&i.view)return void e.push({id:T[i.view]||(0,a.default)(i.title||""),label:i.title,subtitle:i.subtitle||i.title,category:r,view:i.view,isFree:!!i.is_free,isAvailable:!1!==i.is_available});for(let e of n)t(e,r)};t(i,i.title)}e.push({id:"faits-ccn",label:"Convention collective",subtitle:"Préavis, indemnités, période d’essai…",category:"Convention collective",view:"c12/faits-ccn",isFree:!0,isAvailable:!0}),e.push({id:"solde-de-tout-compte",label:"Reçu pour solde de tout compte",subtitle:"Le reçu, à partir des sommes du dernier bulletin",category:"Documents",view:"documents/solde-de-tout-compte",isFree:!1,isAvailable:!0}),e.push({...n.COMMANDE_CONTRAT_DE_TRAVAIL});let i=new Map;for(let t of e.filter(e=>e.isAvailable&&e.view))i.has(t.id)||i.set(t.id,t);return Array.from(i.values())}let M={"faits-ccn":{label:"Convention collective",toolName:"resoudreFaitsConventionnels",a
2pi:"/api/chat",params:[{key:"idcc",question:"Quel est le numéro IDCC de la convention collective ?",type:"idcc"},{key:"sujet",question:"Sur quel sujet ?",type:"string",enum:Object.keys(r.CHOIX_SUJETS_CONVENTION),choix:r.CHOIX_SUJETS_CONVENTION}]},"indemnite-licenciement":{label:"Indemnité de licenciement / rupture de contrat",toolName:"runIndemniteLicenciement",api:"/api/indemnites/calcul",params:[{key:"idcc",question:"Quelle est la convention collective ? (numéro IDCC, par exemple 1979 pour les hôtels-cafés-restaurants, 1486 pour Syntec — ou « aucune » pour appliquer uniquement le Code du travail)",type:"idcc"},{key:"typeContrat",question:"Le contrat est-il bien un **CDI** ? Ce calcul d'indemnité ne couvre pas les autres contrats.",type:"string",enum:["CDI"],choix:{CDI:"CDI"}},{key:"motifLicenciement",question:"Quel est le motif de la rupture ?",type:"motif",choix:{personal:"Motif personnel",economic:"Motif économique",medical_professional:"Inaptitude d’origine professionnelle",medical_non_professional:"Inaptitude d’origine non professionnelle",conventional_termination:"Rupture conventionnelle",voluntary_retirement:"Départ volontaire à la retraite",employer_retirement:"Mise à la retraite",gross_misconduct:"Faute grave",serious_misconduct:"Faute lourde"},enum:["personal","economic","medical_professional","medical_non_professional","conventional_termination","voluntary_retirement","employer_retirement","gross_misconduct","serious_misconduct"]},{key:"classification",question:"Quel est le statut professionnel du salarié ?",type:"classification",enum:["ouvrier","employe","technicien","agent_maitrise","cadre","etam","non_cadre"],choix:{ouvrier:"Ouvrier",employe:"Employé",technicien:"Technicien",agent_maitrise:"Agent de maîtrise",cadre:"Cadre",etam:"ETAM",non_cadre:"Non-cadre"}},{key:"salaireReference",question:"Quel est le **salaire mensuel brut de référence** en euros ? (généralement la moyenne des 12 ou 3 derniers mois, on prend la plus favorable)",type:"number"},{key:"salaireReferenceLegal",question:"Pour un départ volontaire à la retraite, quelle est la **base légale D.1237-2 distincte** ? Elle prorate les primes annuelles du trimestre contrairement à la base conventionnelle article 33.",type:"number",optional:!0,requiredWhen:[{key:"motifLicenciement",equals:"voluntary_retirement"}]},{key:"ancienneteSortie",question:"Quelle est l'**ancienneté à la date de sortie effective** (fin du préavis) ? Indique années et mois — ex. « 8 ans et 4 mois »",type:"duration"},{key:"ancienneteNotification",question:"Quelle est l'**ancienneté à la date de notification** de la rupture ? Donne-la explicitement : elle ne sera jamais déduite de l'ancienneté de sortie.",type:"duration"},{key:"dateRupture",question:"Quelle est la **date effective de rupture** (AAAA-MM-JJ) ? Elle est obligatoire pour dater la règle conventionnelle.",type:"date"},{key:"monthlyPaymentEligible",question:"En HCR, le salarié **bénéficie-t-il de la mensualisation** ? Cette réponse est obligatoire pour une mise à la retraite employeur et au-delà de 10 ans pour les autres indemnités concernées. (oui/non)",type:"boolean",optional:!0,requiredWhen:[{key:"idcc",in:[1979,"1979"]},{key:"motifLicenciement",in:["personal","economic","medical_professional","medical_non_professional","conventional_termination","employer_retirement"]}]},{key:"reclassificationRefusalAbusive",question:"Pour une inaptitude professionnelle, le refus de la proposition de reclassement a-t-il été **qualifié d’abusif** ? (oui/non)",type:"boolean",optional:!0,requiredWhen:[{key:"motifLicenciement",equals:"medical_professional"}]},{key:"compensationMode",question:"Pour un départ volontaire HCR, quel est le **mode de rémunération** ?",type:"string",enum:["fixed","service_percentage"],choix:{fixed:"Fixe",service_percentage:"Au pourcentage service"},optional:!0,requiredWhen:[{key:"idcc",in:[1979,"1979"]},{key:"motifLicenciement",equals:"voluntary_retirement"},{key:"classification",notIn:["cadre"]}]},{key:"endOfCareerReducedHours",question:"Le salarié bénéficie-t-il d’un **aménagement du temps de travail de fin de carrière** ? (oui/non)",type:"boolean",optional:!0,requiredWhen:[{key:"idcc",in:[1979,"1979"]},{key:"motifLicenciement",equals:"voluntary_retirement"}]}
2,{key:"fullTimeEquivalentReferenceSalary",question:"Quel est le **salaire mensuel brut équivalent temps plein** en euros ?",type:"number",optional:!0,requiredWhen:[{key:"idcc",in:[1979,"1979"]},{key:"motifLicenciement",equals:"voluntary_retirement"},{key:"endOfCareerReducedHours",equals:!0}]},{key:"retirementEligibilityConfirmed",question:"Pour une retraite, avez-vous vérifié que le salarié remplit les **conditions légales** du départ ou de la mise à la retraite ? (oui/non)",type:"boolean",optional:!0,requiredWhen:[{key:"motifLicenciement",in:["voluntary_retirement","employer_retirement"]}]}]},ijss:{label:"Indemnités Journalières Sécurité Sociale (arrêt maladie / AT / maternité / paternité)",toolName:"runIJSS",moteur:"@/library/simulateurs/ijss/calcul",spec:s.SPEC_IJSS.id,params:(0,l.paramsDepuisSpec)(s.SPEC_IJSS)},"calcul-brut-net":{label:"Calcul Brut → Net (et coût employeur)",toolName:"runBrutNet",moteur:"@/library/simulateurs/brut-net/calcul",spec:f.SPEC_BRUT_NET.id,params:(0,l.paramsDepuisSpec)(f.SPEC_BRUT_NET)},"maintien-salaire":{label:"Maintien de salaire",toolName:"runMaintienSalaire",api:"/api/maintien-salaire/calcul",moteur:"@/library/simulateurs/maintien-salaire/calcul",spec:O.SPEC_MAINTIEN_SALAIRE.id,params:(0,l.paramsDepuisSpec)(O.SPEC_MAINTIEN_SALAIRE)},"saisie-salaire":{label:"Saisie sur salaire (quotité saisissable)",toolName:"runSaisieSalaire",moteur:"@/library/simulateurs/saisie-salaire/calcul",spec:g.SPEC_SAISIE_SALAIRE.id,params:(0,l.paramsDepuisSpec)(g.SPEC_SAISIE_SALAIRE)},"hs-hc":{label:"Heures supplémentaires et complémentaires (HS / HC)",toolName:"runHSHC",api:"/api/simulateurs/hs-hc",params:[{key:"heuresSemaine",question:"Combien d'**heures effectuées dans la semaine** ?",type:"number"},{key:"tauxHoraire",question:"Quel est le **taux horaire brut** du salarié ?",type:"number"},{key:"dureeContractuelle",question:"Quelle est la **durée contractuelle hebdomadaire** ?",type:"number"}]},"calendrier-procedure":{label:"Calendrier de procédure et préavis",toolName:"runCalendrierProcedure",api:"/api/calendrier-procedure/preavis",params:[{key:"motif",question:"Quel est le **motif** ? (l’inaptitude a son propre calendrier)",type:"string",enum:[...i.C09_CALENDAR_MOTIFS],choix:{rupture_conventionnelle:"Rupture conventionnelle",personnel:"Licenciement pour motif personnel",economique:"Licenciement économique",faute_grave:"Licenciement pour faute grave",faute_lourde:"Licenciement pour faute lourde",demission:"Démission",depart_retraite:"Départ volontaire à la retraite",mise_retraite:"Mise à la retraite"}},{key:"depart",question:"De quelle **date connue** partons-nous ? (convocation, entretien, signature ou sortie — donnez la plus sûre, les autres seront calculées)",type:"string",enum:[...i.C09_CALENDAR_RUPTURE_CONVENTIONNELLE_DEPARTS],choix:{convocation:"Convocation",entretien:"Entretien",signature:"Signature",sortie:"Sortie"},optional:!0,requiredWhen:i.C09_CALENDAR_SLASH_REQUIRED_WHEN.depart},{key:"dateReference",question:"Quelle est **cette date** (AAAA-MM-JJ) ?",type:"date",optional:!0,requiredWhen:i.C09_CALENDAR_SLASH_REQUIRED_WHEN.dateReference},{key:"signatureLeJourMeme",question:"La convention est-elle **signée le jour de l’entretien** ? (oui / non — non : le lendemain)",type:"boolean",optional:!0,requiredWhen:i.C09_CALENDAR_SLASH_REQUIRED_WHEN.signatureLeJourMeme},{key:"departement",question:"Dans quel **département** est l’établissement ? (le numéro — 67, 974… — ou « France » : seuls l’Alsace-Moselle et l’outre-mer ont des jours fériés locaux qui décalent les délais)",type:"string",optional:!0,requiredWhen:i.C09_CALENDAR_SLASH_REQUIRED_WHEN.departement},{key:"idcc",question:"Quel est l'**IDCC** de la convention collective ?",type:"string",optional:!0,requiredWhen:i.C09_CALENDAR_SLASH_REQUIRED_WHEN.idcc},{key:"typeContrat",question:"Quel est le **type de contrat** ? Pour la convention HCR, seul le CDI est pris en charge.",type:"string",enum:["CDI"],choix:{CDI:"CDI"},optional:!0,requiredWhen:i.C09_CALENDAR_SLASH_REQUIRED_WHEN.typeContrat},{key:"categorie",question:"Quelle est la **catégorie** du salarié ?",type:"string",choix:{employee:"Employé",supervisor:"Agent de maîtrise",executive:"Cadre"},optional:!0,requiredWhen:i.C09_CALENDAR_SLASH_REQUIRED_WHEN.categorie},{key:"ancienneteAnnees",question:"Combien d'**années complètes d'ancienneté** ?",type:"number",optional:!0,requiredWhen:i.C09_CALENDAR_SLASH_REQUIRED_WHEN.ancienneteAnnees},{key:"ancienneteMois",question:"Combien de **mois supplémentaires d'ancienneté** (0 à 11) ?",type:"number",optional:!0,requiredWhen:i.C09_CALENDAR_SLASH_REQUIRED_WHEN.ancienneteMois},{key:"dateEffet",question:"Quelle est la **date d'effet de la règle conventionnelle** (AAAA-MM-JJ) ? Ce n'est pas nécessairement le point de départ du préavis.",type:"date",optional:!0,requiredWhen:i.C09_CALENDAR_SLASH_REQUIRED_WHEN.dateEffet},{key:"dateDebutPreavis",question:"Si une date de fin est demandée, quel est le **point de départ réel du préavis** (AAAA-MM-JJ) ? Laisser vide pour ne résoudre que la durée.",type:"date",optional:!0},{key:"pointDepartPreavis",question:"Quel est le fondement du point de départ : première présentation de la lettre de licenciement, ou notification de la démission connue de l’employeur ?",type:"string",enum:["premiere_presentation_lettre_licenciement","notification_demission_connue_employeur"],optional:!0,requiredWhen:i.C09_CALENDAR_SLASH_REQUIRED_WHEN.pointDepartPreavis,choix:{premiere_presentation_lettre_licenciement:"Première présentation de la lettre de licenciement",notification_demission_connue_employeur:"Démission portée à la connaissance de l’employeur"}},{key:"exceptionsCalendairesAbsentes",question:"Confirmez-vous qu’il n’existe **aucune suspension, aucun report ni départ différé** du préavis ? (oui/non)",type:"boolean",optional:!0,requiredWhen:i.C09_CALENDAR_SLASH_REQUIRED_WHEN.exceptionsCalendairesAbsentes},{key:"periodeEssai",question:"Pour un licenciement, le salarié est-il encore en **période d’essai** ? (oui/non)",type:"boolean",optional:!0,requiredWhen:i.C09_CALENDAR_SLASH_REQUIRED_WHEN.periodeEssai},{key:"accordPartiesDifferent",question:"Pour une démission, les parties ont-elles convenu d’un **préavis différent** ? (oui/non)",type:"boolean",optional:!0,requiredWhen:i.C09_CALENDAR_SLASH_REQUIRED_WHEN.accordPartiesDifferent},{key:"eligibiliteRetraiteConfirmee",question:"Pour une retraite, avez-vous vérifié que le salarié remplit les **conditions légales** du départ ou de la mise à la retraite ? (oui/non)",type:"boolean",optional:!0,requiredWhen:i.C09_CALENDAR_SLASH_REQUIRED_WHEN.eligibiliteRetraiteConfirmee},{key:"horaireTravail",question:"Le salarié travaille-t-il à **temps complet** ou à **temps partiel** ?",type:"string",enum:["temps_complet","temps_partiel"],choix:{temps_complet:"Temps complet",temps_partiel:"Temps partiel"},optional:!0,requiredWhen:i.C09_CALENDAR_SLASH_REQUIRED_WHEN.horaireTravail},{key:"preavisExecute",question:"Le préavis sera-t-il **effectivement exécuté** ? (oui/non)",type:"boolean",optional:!0,requiredWhen:i.C09_CALENDAR_SLASH_REQUIRED_WHEN.preavisExecute}]},"solde-de-tout-compte":{label:"Reçu pour solde de tout compte",toolName:"genererSoldeToutCompte",api:"/api/documents/solde-tout-compte",params:[{key:"civilite",question:"Le salarié : **M.** ou **Mme** ?",type:"string",enum:["M.","Mme"],choix:{"M.":"M.",Mme:"Mme"}},{key:"nom",question:"Quel est son **nom** ?",type:"string"},{key:"prenom",question:"Quel est son **prénom** ?",type:"string"},{key:"dateEntree",question:"Quelle est sa **date d'entrée** (AAAA-MM-JJ) ?",type:"date"},{key:"dateSortie",question:"Quelle est sa **date de sortie** (AAAA-MM-JJ) ?",type:"date"},{key:"motif",question:"Quel est le **motif de la rupture** ?",type:"string",enum:["demission","licenciement","rupture_c
2onventionnelle","fin_cdd","depart_retraite","mise_retraite","autre"],choix:{demission:"Démission",licenciement:"Licenciement",rupture_conventionnelle:"Rupture conventionnelle",fin_cdd:"Fin de CDD",depart_retraite:"Départ à la retraite",mise_retraite:"Mise à la retraite",autre:"Autre"}},{key:"entreprise",question:"Quelle est la **raison sociale** de l'employeur ?",type:"string"},{key:"sommes",question:"Listez les **sommes versées** telles qu’elles figurent sur le dernier bulletin, séparées par « ; » : « libellé : montant brut » ou « libellé : brut / net » (ex. Salaire du mois : 2 350 ; Indemnité compensatrice de congés payés : 812,40 / 640,15)",type:"array"}]},"conversion-min-centieme":{label:"Convertisseur Minutes ⇔ Centièmes",toolName:"runConversionMinCentieme",moteur:"@/library/simulateurs/conversion-min-centieme/calcul",spec:C.SPEC_CONVERSION.id,params:(0,l.paramsDepuisSpec)(C.SPEC_CONVERSION)},"delai-cdd":{label:"Délai de carence entre 2 CDD (Art. L.1244-3)",toolName:"runDelaiCDD",moteur:"@/library/simulateurs/delai-cdd/calcul",spec:u.SPEC_DELAI_CDD.id,params:(0,l.paramsDepuisSpec)(u.SPEC_DELAI_CDD)},"periode-essai":{label:"Date de fin de période d'essai (Art. L.1221-19 à L.1221-26)",toolName:"runPeriodeEssai",moteur:"@/library/simulateurs/periode-essai/calcul",spec:m.SPEC_PERIODE_ESSAI.id,params:(0,l.paramsDepuisSpec)(m.SPEC_PERIODE_ESSAI)},"conge-maternite":{label:"Durée du congé maternité / paternité / adoption",toolName:"runCongeMaternite",moteur:"@/library/simulateurs/conge-maternite/calcul",spec:z.SPEC_CONGE.id,params:(0,l.paramsDepuisSpec)(z.SPEC_CONGE)},"prorata-plafond":{label:"Prorata du plafond mensuel Sécurité sociale (PMSS)",toolName:"runProrataPlafond",moteur:"@/library/simulateurs/prorata-plafond/calcul",spec:j.SPEC_PRORATA_PLAFOND.id,params:(0,l.paramsDepuisSpec)(j.SPEC_PRORATA_PLAFOND)},"taxe-salaires":{label:"Taxe sur les salaires (entreprises non assujetties TVA)",toolName:"runTaxeSalaires",moteur:"@/library/simulateurs/taxe-salaires/calcul",spec:h.SPEC_TAXE_SALAIRES.id,params:(0,l.paramsDepuisSpec)(h.SPEC_TAXE_SALAIRES)},"calculateur-absences":{label:"Calculateur des absences (retenue sur salaire)",toolName:"runCalculateurAbsences",moteur:"@/library/simulateurs/calculateur-absences/calcul",spec:_.SPEC_CALCULATEUR_ABSENCES.id,params:(0,l.paramsDepuisSpec)(_.SPEC_CALCULATEUR_ABSENCES)},assujettissement:{label:"Assujettissement social et fiscal des indemnités de départ",toolName:"runAssujettissement",moteur:"@/library/simulateurs/assujettissement/calcul",spec:D.SPEC_ASSUJETTISSEMENT.id,params:(0,l.paramsDepuisSpec)(D.SPEC_ASSUJETTISSEMENT)},"bulletin-prudhomme":{label:"Barème Macron — Indemnités prud'homales (Art. L.1235-3)",toolName:"runBulletinPrudhomme",api:"/api/simulateurs/bulletin-prudhomme",params:[{key:"salaireReference",question:"Quel est le **salaire mensuel brut de référence** ?",type:"number"},{key:"anciennete",question:"Quelle **ancienneté** en années (entiers) ?",type:"number"},{key:"motif",question:"Quel est le **motif de la saisine** ?",type:"string",enum:["sans_cause_reelle","nullite"],choix:{sans_cause_reelle:"Licenciement sans cause réelle et sérieuse",nullite:"Licenciement nul"}},{key:"tailleEntreprise",question:"Quelle est la **taille de l'entreprise** ?",type:"string",enum:["plus_11","moins_11"],choix:{plus_11:"11 salariés ou plus",moins_11:"Moins de 11 salariés"}}]},reintegration:{label:"Réintégration sociale et fiscale",toolName:"runReintegration",moteur:"@/library/simulateurs/reintegration/calcul",spec:x.SPEC_REINTEGRATION.id,params:(0,l.paramsDepuisSpec)(x.SPEC_REINTEGRATION)},"gratification-stagiaire":{label:"Gratification stagiaire",toolName:"runGratificationStagiaire",api:"/api/gratification-stagiaire/calcul",moteur:"@/library/simulateurs/gratification-stagiaire/calcul",spec:E.SPEC_GRATIFICATION.id,params:(0,l.paramsDepuisSpec)(E.SPEC_GRATIFICATION)},"rtt-forfait":{label:"RTT en forfait-jours (acquisition ou utilisation)",toolName:"runRTTForfait",moteur:"@/library/simulateurs/rtt-forfait/calcul",spec:v.SPEC_RTT_FORFAIT.id,params:(0,l.paramsDepuisSpec)(v.SPEC_RTT_FORFAIT)},"report-cp-maladie":{label:"Report des congés payés acquis pendant un arrêt maladie",toolName:"runReportCPMaladie",api:"/api/conges-report/calculer",params:[{key:"typeArret",question:"Quel **type d'arrêt** ?",type:"string",enum:["professionnel","non_professionnel"],
2choix:{professionnel:"Professionnel (accident du travail, maladie professionnelle)",non_professionnel:"Non professionnel (maladie ordinaire)"}},{key:"dateDebut",question:"**Date de début** de l'arrêt (AAAA-MM-JJ) ?",type:"date"},{key:"dateFin",question:"**Date de fin** de l'arrêt (AAAA-MM-JJ) ?",type:"date"},{key:"dateReprise",question:"**Date de reprise** effective du travail (AAAA-MM-JJ) ?",type:"date"},{key:"dateInformation",question:"**Date à laquelle l'employeur a informé** le salarié de ses droits aux CP reportés (AAAA-MM-JJ) ?",type:"date"},{key:"cpNonPris",question:"Combien de **jours de CP non pris** au moment du début de l'arrêt ?",type:"number",optional:!0},{key:"empeche",question:"Le salarié a-t-il été **empêché de prendre ses CP** avant l'arrêt ? (oui/non)",type:"boolean",optional:!0},{key:"joursAcquisParPeriode",question:"Détaille les **périodes d'acquisition** sur la durée de l'arrêt : pour chaque sous-période, donne la date de début, la date de fin et les jours acquis (typiquement 2,08 ou 2,5 par mois). Exemple : « du 2025-01-15 au 2025-02-14 : 2.08 jours ; du 2025-02-15 au 2025-03-14 : 2.08 jours ».",type:"array"}]},mensualisation:{label:"Mensualisation des heures (semaine ↔ mois)",toolName:"runMensualisation",moteur:"@/library/simulateurs/mensualisation/calcul",spec:p.SPEC_MENSUALISATION.id,params:(0,l.paramsDepuisSpec)(p.SPEC_MENSUALISATION)},iccp:{label:"Indemnité compensatrice de congés payés (ICCP)",toolName:"runICCP",moteur:"@/library/simulateurs/iccp/calcul",spec:q.SPEC_ICCP.id,params:(0,l.paramsDepuisSpec)(q.SPEC_ICCP)},ik:{label:"Indemnité Kilométrique (barème fiscal Art. 83 CGI)",toolName:"runIK",moteur:"@/library/simulateurs/ik/calcul",spec:o.SPEC_IK.id,params:(0,l.paramsDepuisSpec)(o.SPEC_IK)},"avantage-logement":{label:"Avantage en nature logement (forfait URSSAF ou réel)",toolName:"runAvantageLogement",moteur:"@/library/simulateurs/avantage-logement/calcul",spec:c.SPEC_AVANTAGE_LOGEMENT.id,params:(0,l.paramsDepuisSpec)(c.SPEC_AVANTAGE_LOGEMENT)},fillon:{label:"Réduction générale dégressive (« Fillon » — contrôle mensuel)",toolName:"runFillon",moteur:"@/library/simulateurs/fillon/calcul",spec:b.SPEC_FILLON.id,params:(0,l.paramsDepuisSpec)(b.SPEC_FILLON)},apprentis:{label:"Salaire minimum apprenti (Art. D.6222-26 Code du travail)",toolName:"runApprentis",moteur:"@/library/simulateurs/apprentis/calcul",spec:y.SPEC_APPRENTIS.id,params:(0,l.paramsDepuisSpec)(y.SPEC_APPRENTIS)},are:{label:"ARE (Allocation Retour Emploi)",toolName:"runARE",moteur:"@/library/simulateurs/are/calcul",spec:A.SPEC_ARE.id,params:(0,l.paramsDepuisSpec)(A.SPEC_ARE)},"repartition-hs":{label:"Répartition des HS dans la semaine",toolName:"runRepartitionHS",moteur:"@/library/simulateurs/repartition-hs/calcul",spec:S.SPEC_REPARTITION_HS.id,params:(0,l.paramsDepuisSpec)(S.SPEC_REPARTITION_HS)},"bulletin-paie":{label:"Bulletin de paie (Brut → Net + cotisations détaillées)",toolName:"runBrutNet",api:"/api/simulateurs/brut-net",params:[{key:"brut",question:"Quel est le **salaire brut mensuel** en euros ?",type:"number"},{key:"statut",question:"Quel est le **statut** du salarié ?",type:"string",enum:["cadre","non_cadre"],choix:{cadre:"Cadre",non_cadre:"Non-cadre"}},{key:"tauxAT",question:"Quel **taux AT/MP** applicable (en décimal, ex. 0.02 pour 2 %) ? Si tu ne sais pas, on appliquera 2 %.",type:"number",optional:!0}]},"avantage-voiture":{label:"Avantage en nature voiture (forfaitaire ou dépenses réelles)",toolName:"runAvantageVoiture",moteur:"@/library/simulateurs/avantage-voiture/calcul",spec:d.SPEC_AVANTAGE_VOITURE.id,params:(0,l.paramsDepuisSpec)(d.SPEC_AVANTAGE_VOITURE)},[n.CONTRAT_DE_TRAVAIL_ID]:n.PARCOURS_CONTRAT_DE_TRAVAIL},I=Object.freeze({"rupture-conventionnelle":Object.freeze({workflow:"calendrier-procedure",label:"Rupture conventionnelle — calendrier des dates",prefill:Object.freeze({motif:"rupture_conventionnelle"})}
2),"calendrier-mise-a-la-retraite":Object.freeze({workflow:"calendrier-procedure",label:"Mise à la retraite — préavis conventionnel",prefill:Object.freeze({motif:"mise_retraite"})}),"calendrier-licenciement-personnel":Object.freeze({workflow:"calendrier-procedure",label:"Licenciement pour motif personnel — préavis conventionnel",prefill:Object.freeze({motif:"personnel"})}),"calendrier-licenciement-economique":Object.freeze({workflow:"calendrier-procedure",label:"Licenciement économique individuel — préavis conventionnel",prefill:Object.freeze({motif:"economique"})})});function k(e){let t=String(e||"");return M[t]?t:I[t]?.workflow??null}function R(e){let t=String(e||"");if(M[t])return M[t];let a=I[t];return a&&M[a.workflow]?{...M[a.workflow],id:a.workflow,label:a.label,prefill:{...a.prefill}}:null}e.s(["SLASH_WORKFLOW_ALIASES",0,I,"filterSlashCommands",0,function(e){let t=N(),a=String(e||"").trim().toLowerCase();if(!a)return t;let i=e=>(e||"").normalize("NFD").replace(/[̀-ͯ]/g,"").toLowerCase(),r=i(a);return t.filter(e=>{let t=R(e.id)?.label||"";return i(`${e.id} ${e.label} ${t} ${e.category} ${e.subtitle||""}`).includes(r)})},"getSlashCommands",0,N,"getSlashWorkflow",0,R,"groupSlashCommandsByCategory",0,function(e){let t=new Map;for(let a of e){let e=a.category||"Autres";t.has(e)||t.set(e,[]),t.get(e).push(a)}return Array.from(t.entries()).map(([e,t])=>({category:e,items:t}))},"resolveSlashWorkflowId",0,k],590105);var $=e.i(618921);let L="prefill";e.s(["hrefSimulateurPrerempli",0,function(e,t={}){let a=function(e,t={}){let a=k(e);if(!a)return null;let i=N();for(let[e,r]of Object.entries(I)){if(r.workflow!==a||!function(e,t){return Object.entries(e.prefill||{}).every(([e,a])=>String(t?.[e]??"")===String(a))}(r,t))continue;let n=i.find(t=>t.id===e);if(n)return n}let r=i.find(e=>e.id===a);return!r||r.view.startsWith("c12/")||r.view.startsWith("documents/")?null:r}(e,t);if(!a)return null;let i=JSON.stringify({parcours:k(e),...t});return i.length>8e3?(0,$.simulatorHref)(a.label):`${(0,$.simulatorHref)(a.label)}?${L}=${encodeURIComponent(i)}`},"prefillDeLaPage",0,function(){return function(e){let t=(e instanceof URLSearchParams?e:new URLSearchParams(String(e??""))).get(L);if(!t||t.length>8e3)return null;try{let e=JSON.parse(t);if(!e||"object"!=typeof e||Array.isArray(e))return null;let a={};for(let[t,i]of Object.entries(e))/^[A-Za-z0-9_]{1,64}$/.test(t)&&(null===i||["string","number","boolean"].includes(typeof i)||Array.isArray(i)&&i.every(e=>["string","number"].includes(typeof e))?a[t]=i:Array.isArray(i)&&i.every(e=>e&&"object"==typeof e&&!Array.isArray(e)&&Object.values(e).every(e=>null===e||["string","number","boolean"].includes(typeof e)))&&(a[t]=i));return Object.keys(a).length?a:null}catch{return null}}(window.location.search)}],95746)}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.